pulumi-gcp 7.24.0a1716510380__py3-none-any.whl → 7.25.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pulumi_gcp/__init__.py +104 -0
- pulumi_gcp/accesscontextmanager/access_policy_iam_binding.py +12 -12
- pulumi_gcp/accesscontextmanager/access_policy_iam_member.py +12 -12
- pulumi_gcp/accesscontextmanager/access_policy_iam_policy.py +12 -12
- pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +0 -64
- pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +0 -70
- pulumi_gcp/alloydb/backup.py +50 -42
- pulumi_gcp/alloydb/cluster.py +56 -48
- pulumi_gcp/alloydb/instance.py +50 -42
- pulumi_gcp/alloydb/user.py +32 -24
- pulumi_gcp/apigateway/api_config.py +0 -114
- pulumi_gcp/apigateway/api_config_iam_binding.py +8 -8
- pulumi_gcp/apigateway/api_config_iam_member.py +8 -8
- pulumi_gcp/apigateway/api_config_iam_policy.py +8 -8
- pulumi_gcp/apigateway/api_iam_binding.py +8 -8
- pulumi_gcp/apigateway/api_iam_member.py +8 -8
- pulumi_gcp/apigateway/api_iam_policy.py +8 -8
- pulumi_gcp/apigateway/gateway.py +0 -44
- pulumi_gcp/apigateway/gateway_iam_binding.py +8 -8
- pulumi_gcp/apigateway/gateway_iam_member.py +8 -8
- pulumi_gcp/apigateway/gateway_iam_policy.py +8 -8
- pulumi_gcp/apigee/addons_config.py +14 -4
- pulumi_gcp/apigee/endpoint_attachment.py +4 -2
- pulumi_gcp/apigee/env_group.py +4 -2
- pulumi_gcp/apigee/environment.py +4 -2
- pulumi_gcp/apigee/environment_iam_binding.py +12 -12
- pulumi_gcp/apigee/environment_iam_member.py +12 -12
- pulumi_gcp/apigee/environment_iam_policy.py +12 -12
- pulumi_gcp/apigee/instance.py +22 -8
- pulumi_gcp/apigee/keystores_aliases_self_signed_cert.py +26 -10
- pulumi_gcp/apigee/nat_address.py +10 -2
- pulumi_gcp/apigee/organization.py +18 -6
- pulumi_gcp/apigee/sync_authorization.py +8 -4
- pulumi_gcp/apigee/target_server.py +26 -10
- pulumi_gcp/appengine/_inputs.py +18 -0
- pulumi_gcp/appengine/domain_mapping.py +1 -1
- pulumi_gcp/appengine/outputs.py +16 -0
- pulumi_gcp/apphub/service.py +40 -20
- pulumi_gcp/apphub/service_project_attachment.py +16 -8
- pulumi_gcp/apphub/workload.py +0 -418
- pulumi_gcp/applicationintegration/auth_config.py +4 -2
- pulumi_gcp/artifactregistry/repository.py +14 -12
- pulumi_gcp/artifactregistry/repository_iam_binding.py +12 -12
- pulumi_gcp/artifactregistry/repository_iam_member.py +12 -12
- pulumi_gcp/artifactregistry/repository_iam_policy.py +12 -12
- pulumi_gcp/backupdisasterrecovery/management_server.py +4 -2
- pulumi_gcp/bigquery/_inputs.py +286 -2
- pulumi_gcp/bigquery/connection.py +126 -0
- pulumi_gcp/bigquery/connection_iam_binding.py +12 -12
- pulumi_gcp/bigquery/connection_iam_member.py +12 -12
- pulumi_gcp/bigquery/connection_iam_policy.py +12 -12
- pulumi_gcp/bigquery/data_transfer_config.py +8 -4
- pulumi_gcp/bigquery/dataset_iam_binding.py +12 -12
- pulumi_gcp/bigquery/dataset_iam_member.py +12 -12
- pulumi_gcp/bigquery/dataset_iam_policy.py +12 -12
- pulumi_gcp/bigquery/iam_binding.py +12 -12
- pulumi_gcp/bigquery/iam_member.py +12 -12
- pulumi_gcp/bigquery/iam_policy.py +12 -12
- pulumi_gcp/bigquery/job.py +22 -16
- pulumi_gcp/bigquery/outputs.py +289 -2
- pulumi_gcp/bigquery/routine.py +2 -2
- pulumi_gcp/bigquery/table.py +77 -35
- pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_binding.py +12 -12
- pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_member.py +12 -12
- pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_policy.py +12 -12
- pulumi_gcp/bigqueryanalyticshub/listing_iam_binding.py +12 -12
- pulumi_gcp/bigqueryanalyticshub/listing_iam_member.py +12 -12
- pulumi_gcp/bigqueryanalyticshub/listing_iam_policy.py +12 -12
- pulumi_gcp/bigquerydatapolicy/data_policy_iam_binding.py +12 -12
- pulumi_gcp/bigquerydatapolicy/data_policy_iam_member.py +12 -12
- pulumi_gcp/bigquerydatapolicy/data_policy_iam_policy.py +12 -12
- pulumi_gcp/bigtable/instance_iam_binding.py +12 -12
- pulumi_gcp/bigtable/instance_iam_member.py +12 -12
- pulumi_gcp/bigtable/instance_iam_policy.py +12 -12
- pulumi_gcp/bigtable/table_iam_binding.py +12 -12
- pulumi_gcp/bigtable/table_iam_member.py +12 -12
- pulumi_gcp/bigtable/table_iam_policy.py +12 -12
- pulumi_gcp/billing/account_iam_binding.py +12 -12
- pulumi_gcp/billing/account_iam_member.py +12 -12
- pulumi_gcp/billing/account_iam_policy.py +12 -12
- pulumi_gcp/billing/project_info.py +4 -4
- pulumi_gcp/binaryauthorization/attestor_iam_binding.py +12 -12
- pulumi_gcp/binaryauthorization/attestor_iam_member.py +12 -12
- pulumi_gcp/binaryauthorization/attestor_iam_policy.py +12 -12
- pulumi_gcp/certificateauthority/authority.py +10 -2
- pulumi_gcp/certificateauthority/ca_pool_iam_binding.py +12 -12
- pulumi_gcp/certificateauthority/ca_pool_iam_member.py +12 -12
- pulumi_gcp/certificateauthority/ca_pool_iam_policy.py +12 -12
- pulumi_gcp/certificateauthority/certificate.py +8 -4
- pulumi_gcp/certificateauthority/certificate_template_iam_binding.py +12 -12
- pulumi_gcp/certificateauthority/certificate_template_iam_member.py +12 -12
- pulumi_gcp/certificateauthority/certificate_template_iam_policy.py +12 -12
- pulumi_gcp/certificatemanager/certificate.py +84 -80
- pulumi_gcp/certificatemanager/certificate_issuance_config.py +32 -30
- pulumi_gcp/cloudasset/__init__.py +1 -0
- pulumi_gcp/cloudasset/get_search_all_resources.py +197 -0
- pulumi_gcp/cloudasset/outputs.py +184 -0
- pulumi_gcp/cloudbuild/bitbucket_server_config.py +12 -6
- pulumi_gcp/cloudbuild/trigger.py +22 -14
- pulumi_gcp/cloudbuild/worker_pool.py +12 -6
- pulumi_gcp/cloudbuildv2/connection.py +10 -2
- pulumi_gcp/cloudbuildv2/connection_iam_binding.py +12 -12
- pulumi_gcp/cloudbuildv2/connection_iam_member.py +12 -12
- pulumi_gcp/cloudbuildv2/connection_iam_policy.py +12 -12
- pulumi_gcp/cloudbuildv2/repository.py +10 -2
- pulumi_gcp/cloudfunctions/function_iam_binding.py +12 -12
- pulumi_gcp/cloudfunctions/function_iam_member.py +12 -12
- pulumi_gcp/cloudfunctions/function_iam_policy.py +12 -12
- pulumi_gcp/cloudfunctionsv2/function.py +110 -66
- pulumi_gcp/cloudfunctionsv2/function_iam_binding.py +12 -12
- pulumi_gcp/cloudfunctionsv2/function_iam_member.py +12 -12
- pulumi_gcp/cloudfunctionsv2/function_iam_policy.py +12 -12
- pulumi_gcp/cloudids/endpoint.py +4 -2
- pulumi_gcp/cloudrun/_inputs.py +80 -4
- pulumi_gcp/cloudrun/iam_binding.py +12 -12
- pulumi_gcp/cloudrun/iam_member.py +12 -12
- pulumi_gcp/cloudrun/iam_policy.py +12 -12
- pulumi_gcp/cloudrun/outputs.py +137 -4
- pulumi_gcp/cloudrunv2/job.py +32 -20
- pulumi_gcp/cloudrunv2/job_iam_binding.py +12 -12
- pulumi_gcp/cloudrunv2/job_iam_member.py +12 -12
- pulumi_gcp/cloudrunv2/job_iam_policy.py +12 -12
- pulumi_gcp/cloudrunv2/service.py +28 -20
- pulumi_gcp/cloudrunv2/service_iam_binding.py +12 -12
- pulumi_gcp/cloudrunv2/service_iam_member.py +12 -12
- pulumi_gcp/cloudrunv2/service_iam_policy.py +12 -12
- pulumi_gcp/cloudtasks/queue_iam_binding.py +12 -12
- pulumi_gcp/cloudtasks/queue_iam_member.py +12 -12
- pulumi_gcp/cloudtasks/queue_iam_policy.py +12 -12
- pulumi_gcp/composer/user_workloads_secret.py +4 -4
- pulumi_gcp/compute/__init__.py +2 -0
- pulumi_gcp/compute/_inputs.py +805 -182
- pulumi_gcp/compute/disk_iam_binding.py +12 -12
- pulumi_gcp/compute/disk_iam_member.py +12 -12
- pulumi_gcp/compute/disk_iam_policy.py +12 -12
- pulumi_gcp/compute/forwarding_rule.py +231 -823
- pulumi_gcp/compute/get_network_endpoint_group.py +2 -2
- pulumi_gcp/compute/get_region_network_endpoint_group.py +2 -2
- pulumi_gcp/compute/get_router_nat.py +11 -1
- pulumi_gcp/compute/get_snapshot.py +2 -0
- pulumi_gcp/compute/get_subnetworks.py +157 -0
- pulumi_gcp/compute/global_forwarding_rule.py +0 -766
- pulumi_gcp/compute/image_iam_binding.py +12 -12
- pulumi_gcp/compute/image_iam_member.py +12 -12
- pulumi_gcp/compute/image_iam_policy.py +12 -12
- pulumi_gcp/compute/instance_group.py +0 -100
- pulumi_gcp/compute/instance_group_membership.py +2 -2
- pulumi_gcp/compute/instance_iam_binding.py +12 -12
- pulumi_gcp/compute/instance_iam_member.py +12 -12
- pulumi_gcp/compute/instance_iam_policy.py +12 -12
- pulumi_gcp/compute/interconnect.py +1683 -0
- pulumi_gcp/compute/interconnect_attachment.py +82 -0
- pulumi_gcp/compute/machine_image_iam_binding.py +8 -8
- pulumi_gcp/compute/machine_image_iam_member.py +8 -8
- pulumi_gcp/compute/machine_image_iam_policy.py +8 -8
- pulumi_gcp/compute/network_endpoint.py +2 -2
- pulumi_gcp/compute/network_endpoint_list.py +2 -2
- pulumi_gcp/compute/outputs.py +1022 -161
- pulumi_gcp/compute/packet_mirroring.py +4 -2
- pulumi_gcp/compute/region_disk_iam_binding.py +12 -12
- pulumi_gcp/compute/region_disk_iam_member.py +12 -12
- pulumi_gcp/compute/region_disk_iam_policy.py +12 -12
- pulumi_gcp/compute/region_security_policy_rule.py +4 -2
- pulumi_gcp/compute/region_ssl_certificate.py +0 -188
- pulumi_gcp/compute/region_ssl_policy.py +39 -40
- pulumi_gcp/compute/route.py +10 -2
- pulumi_gcp/compute/router_nat.py +68 -0
- pulumi_gcp/compute/security_policy_rule.py +55 -1
- pulumi_gcp/compute/snapshot_iam_binding.py +12 -12
- pulumi_gcp/compute/snapshot_iam_member.py +12 -12
- pulumi_gcp/compute/snapshot_iam_policy.py +12 -12
- pulumi_gcp/compute/ssl_certificate.py +0 -166
- pulumi_gcp/compute/subnetwork_iam_binding.py +12 -12
- pulumi_gcp/compute/subnetwork_iam_member.py +12 -12
- pulumi_gcp/compute/subnetwork_iam_policy.py +12 -12
- pulumi_gcp/compute/target_instance.py +8 -6
- pulumi_gcp/compute/target_pool.py +21 -21
- pulumi_gcp/compute/vpn_gateway.py +12 -2
- pulumi_gcp/compute/vpn_tunnel.py +26 -16
- pulumi_gcp/container/_inputs.py +562 -2
- pulumi_gcp/container/outputs.py +1110 -55
- pulumi_gcp/containeranalysis/note_iam_binding.py +12 -12
- pulumi_gcp/containeranalysis/note_iam_member.py +12 -12
- pulumi_gcp/containeranalysis/note_iam_policy.py +12 -12
- pulumi_gcp/databasemigrationservice/connection_profile.py +38 -22
- pulumi_gcp/datacatalog/entry_group_iam_binding.py +12 -12
- pulumi_gcp/datacatalog/entry_group_iam_member.py +12 -12
- pulumi_gcp/datacatalog/entry_group_iam_policy.py +12 -12
- pulumi_gcp/datacatalog/policy_tag.py +4 -2
- pulumi_gcp/datacatalog/policy_tag_iam_binding.py +12 -12
- pulumi_gcp/datacatalog/policy_tag_iam_member.py +12 -12
- pulumi_gcp/datacatalog/policy_tag_iam_policy.py +12 -12
- pulumi_gcp/datacatalog/tag_template_iam_binding.py +12 -12
- pulumi_gcp/datacatalog/tag_template_iam_member.py +12 -12
- pulumi_gcp/datacatalog/tag_template_iam_policy.py +12 -12
- pulumi_gcp/datacatalog/taxonomy_iam_binding.py +12 -12
- pulumi_gcp/datacatalog/taxonomy_iam_member.py +12 -12
- pulumi_gcp/datacatalog/taxonomy_iam_policy.py +12 -12
- pulumi_gcp/datafusion/instance.py +14 -12
- pulumi_gcp/dataloss/_inputs.py +420 -13
- pulumi_gcp/dataloss/outputs.py +439 -13
- pulumi_gcp/dataplex/__init__.py +10 -0
- pulumi_gcp/dataplex/_inputs.py +160 -0
- pulumi_gcp/dataplex/aspect_type.py +1077 -0
- pulumi_gcp/dataplex/aspect_type_iam_binding.py +765 -0
- pulumi_gcp/dataplex/aspect_type_iam_member.py +765 -0
- pulumi_gcp/dataplex/aspect_type_iam_policy.py +604 -0
- pulumi_gcp/dataplex/asset.py +4 -2
- pulumi_gcp/dataplex/asset_iam_binding.py +12 -12
- pulumi_gcp/dataplex/asset_iam_member.py +12 -12
- pulumi_gcp/dataplex/asset_iam_policy.py +12 -12
- pulumi_gcp/dataplex/datascan.py +16 -14
- pulumi_gcp/dataplex/datascan_iam_binding.py +12 -12
- pulumi_gcp/dataplex/datascan_iam_member.py +12 -12
- pulumi_gcp/dataplex/datascan_iam_policy.py +12 -12
- pulumi_gcp/dataplex/entry_group.py +722 -0
- pulumi_gcp/dataplex/entry_group_iam_binding.py +765 -0
- pulumi_gcp/dataplex/entry_group_iam_member.py +765 -0
- pulumi_gcp/dataplex/entry_group_iam_policy.py +604 -0
- pulumi_gcp/dataplex/get_aspect_type_iam_policy.py +164 -0
- pulumi_gcp/dataplex/get_entry_group_iam_policy.py +164 -0
- pulumi_gcp/dataplex/lake_iam_binding.py +12 -12
- pulumi_gcp/dataplex/lake_iam_member.py +12 -12
- pulumi_gcp/dataplex/lake_iam_policy.py +12 -12
- pulumi_gcp/dataplex/outputs.py +112 -0
- pulumi_gcp/dataplex/task.py +16 -16
- pulumi_gcp/dataplex/task_iam_binding.py +12 -12
- pulumi_gcp/dataplex/task_iam_member.py +12 -12
- pulumi_gcp/dataplex/task_iam_policy.py +12 -12
- pulumi_gcp/dataplex/zone_iam_binding.py +12 -12
- pulumi_gcp/dataplex/zone_iam_member.py +12 -12
- pulumi_gcp/dataplex/zone_iam_policy.py +12 -12
- pulumi_gcp/dataproc/_inputs.py +70 -0
- pulumi_gcp/dataproc/autoscaling_policy_iam_binding.py +12 -12
- pulumi_gcp/dataproc/autoscaling_policy_iam_member.py +12 -12
- pulumi_gcp/dataproc/autoscaling_policy_iam_policy.py +12 -12
- pulumi_gcp/dataproc/cluster_iam_binding.py +12 -12
- pulumi_gcp/dataproc/cluster_iam_member.py +12 -12
- pulumi_gcp/dataproc/cluster_iam_policy.py +12 -12
- pulumi_gcp/dataproc/get_metastore_federation_iam_policy.py +26 -2
- pulumi_gcp/dataproc/job_iam_binding.py +12 -12
- pulumi_gcp/dataproc/job_iam_member.py +12 -12
- pulumi_gcp/dataproc/job_iam_policy.py +12 -12
- pulumi_gcp/dataproc/metastore_federation.py +4 -0
- pulumi_gcp/dataproc/metastore_federation_iam_binding.py +208 -0
- pulumi_gcp/dataproc/metastore_federation_iam_member.py +208 -0
- pulumi_gcp/dataproc/metastore_federation_iam_policy.py +208 -0
- pulumi_gcp/dataproc/metastore_service_iam_binding.py +12 -12
- pulumi_gcp/dataproc/metastore_service_iam_member.py +12 -12
- pulumi_gcp/dataproc/metastore_service_iam_policy.py +12 -12
- pulumi_gcp/dataproc/outputs.py +62 -0
- pulumi_gcp/datastore/data_store_index.py +4 -2
- pulumi_gcp/datastream/_inputs.py +1789 -820
- pulumi_gcp/datastream/connection_profile.py +210 -3
- pulumi_gcp/datastream/outputs.py +864 -5
- pulumi_gcp/datastream/private_connection.py +47 -0
- pulumi_gcp/datastream/stream.py +231 -4
- pulumi_gcp/diagflow/cx_test_case.py +4 -4
- pulumi_gcp/diagflow/entity_type.py +4 -2
- pulumi_gcp/diagflow/fulfillment.py +4 -2
- pulumi_gcp/diagflow/intent.py +8 -4
- pulumi_gcp/dns/dns_managed_zone_iam_binding.py +12 -12
- pulumi_gcp/dns/dns_managed_zone_iam_member.py +12 -12
- pulumi_gcp/dns/dns_managed_zone_iam_policy.py +12 -12
- pulumi_gcp/dns/get_managed_zone.py +3 -3
- pulumi_gcp/dns/managed_zone.py +7 -7
- pulumi_gcp/dns/outputs.py +2 -2
- pulumi_gcp/edgecontainer/node_pool.py +4 -2
- pulumi_gcp/edgecontainer/vpn_connection.py +4 -2
- pulumi_gcp/endpoints/service_iam_binding.py +12 -12
- pulumi_gcp/endpoints/service_iam_member.py +12 -12
- pulumi_gcp/endpoints/service_iam_policy.py +12 -12
- pulumi_gcp/eventarc/channel.py +4 -2
- pulumi_gcp/eventarc/google_channel_config.py +4 -2
- pulumi_gcp/firebase/app_check_app_attest_config.py +16 -8
- pulumi_gcp/firebase/app_check_debug_token.py +8 -4
- pulumi_gcp/firebase/app_check_device_check_config.py +8 -4
- pulumi_gcp/firebase/app_check_play_integrity_config.py +16 -8
- pulumi_gcp/firebase/app_check_recaptcha_enterprise_config.py +8 -4
- pulumi_gcp/firebase/app_check_recaptcha_v3_config.py +8 -4
- pulumi_gcp/firebase/app_check_service_config.py +12 -6
- pulumi_gcp/firebase/database_instance.py +4 -2
- pulumi_gcp/firebaserules/release.py +0 -98
- pulumi_gcp/firestore/database.py +24 -20
- pulumi_gcp/firestore/document.py +24 -12
- pulumi_gcp/firestore/field.py +4 -4
- pulumi_gcp/folder/access_approval_settings.py +4 -2
- pulumi_gcp/folder/iam_audit_config.py +23 -23
- pulumi_gcp/folder/iam_member.py +16 -16
- pulumi_gcp/folder/iam_policy.py +16 -16
- pulumi_gcp/gkebackup/backup_plan_iam_binding.py +12 -12
- pulumi_gcp/gkebackup/backup_plan_iam_member.py +12 -12
- pulumi_gcp/gkebackup/backup_plan_iam_policy.py +12 -12
- pulumi_gcp/gkehub/feature_iam_binding.py +12 -12
- pulumi_gcp/gkehub/feature_iam_member.py +12 -12
- pulumi_gcp/gkehub/feature_iam_policy.py +12 -12
- pulumi_gcp/gkehub/membership_binding.py +20 -10
- pulumi_gcp/gkehub/membership_iam_binding.py +12 -12
- pulumi_gcp/gkehub/membership_iam_member.py +12 -12
- pulumi_gcp/gkehub/membership_iam_policy.py +12 -12
- pulumi_gcp/gkehub/membership_rbac_role_binding.py +12 -8
- pulumi_gcp/gkehub/namespace.py +8 -6
- pulumi_gcp/gkehub/scope_iam_binding.py +12 -12
- pulumi_gcp/gkehub/scope_iam_member.py +12 -12
- pulumi_gcp/gkehub/scope_iam_policy.py +12 -12
- pulumi_gcp/gkehub/scope_rbac_role_binding.py +8 -6
- pulumi_gcp/healthcare/consent_store_iam_binding.py +12 -12
- pulumi_gcp/healthcare/consent_store_iam_member.py +12 -12
- pulumi_gcp/healthcare/consent_store_iam_policy.py +12 -12
- pulumi_gcp/healthcare/dataset_iam_binding.py +12 -12
- pulumi_gcp/healthcare/dataset_iam_member.py +12 -12
- pulumi_gcp/healthcare/dataset_iam_policy.py +12 -12
- pulumi_gcp/healthcare/dicom_store_iam_binding.py +12 -12
- pulumi_gcp/healthcare/dicom_store_iam_member.py +12 -12
- pulumi_gcp/healthcare/dicom_store_iam_policy.py +12 -12
- pulumi_gcp/healthcare/fhir_store_iam_binding.py +12 -12
- pulumi_gcp/healthcare/fhir_store_iam_member.py +12 -12
- pulumi_gcp/healthcare/fhir_store_iam_policy.py +12 -12
- pulumi_gcp/healthcare/hl7_store_iam_binding.py +12 -12
- pulumi_gcp/healthcare/hl7_store_iam_member.py +12 -12
- pulumi_gcp/healthcare/hl7_store_iam_policy.py +12 -12
- pulumi_gcp/iap/app_engine_service_iam_binding.py +12 -12
- pulumi_gcp/iap/app_engine_service_iam_member.py +12 -12
- pulumi_gcp/iap/app_engine_service_iam_policy.py +12 -12
- pulumi_gcp/iap/app_engine_version_iam_binding.py +12 -12
- pulumi_gcp/iap/app_engine_version_iam_member.py +12 -12
- pulumi_gcp/iap/app_engine_version_iam_policy.py +12 -12
- pulumi_gcp/iap/tunnel_dest_group.py +2 -2
- pulumi_gcp/iap/tunnel_dest_group_iam_binding.py +12 -12
- pulumi_gcp/iap/tunnel_dest_group_iam_member.py +12 -12
- pulumi_gcp/iap/tunnel_dest_group_iam_policy.py +12 -12
- pulumi_gcp/iap/tunnel_iam_binding.py +12 -12
- pulumi_gcp/iap/tunnel_iam_member.py +12 -12
- pulumi_gcp/iap/tunnel_iam_policy.py +12 -12
- pulumi_gcp/iap/tunnel_instance_iam_binding.py +12 -12
- pulumi_gcp/iap/tunnel_instance_iam_member.py +12 -12
- pulumi_gcp/iap/tunnel_instance_iam_policy.py +12 -12
- pulumi_gcp/iap/web_backend_service_iam_binding.py +12 -12
- pulumi_gcp/iap/web_backend_service_iam_member.py +12 -12
- pulumi_gcp/iap/web_backend_service_iam_policy.py +12 -12
- pulumi_gcp/iap/web_iam_binding.py +12 -12
- pulumi_gcp/iap/web_iam_member.py +12 -12
- pulumi_gcp/iap/web_iam_policy.py +12 -12
- pulumi_gcp/iap/web_region_backend_service_iam_binding.py +12 -12
- pulumi_gcp/iap/web_region_backend_service_iam_member.py +12 -12
- pulumi_gcp/iap/web_region_backend_service_iam_policy.py +12 -12
- pulumi_gcp/iap/web_type_app_enging_iam_binding.py +12 -12
- pulumi_gcp/iap/web_type_app_enging_iam_member.py +12 -12
- pulumi_gcp/iap/web_type_app_enging_iam_policy.py +12 -12
- pulumi_gcp/iap/web_type_compute_iam_binding.py +12 -12
- pulumi_gcp/iap/web_type_compute_iam_member.py +12 -12
- pulumi_gcp/iap/web_type_compute_iam_policy.py +12 -12
- pulumi_gcp/integrationconnectors/connection.py +4 -2
- pulumi_gcp/integrationconnectors/managed_zone.py +26 -14
- pulumi_gcp/kms/__init__.py +2 -0
- pulumi_gcp/kms/autokey_config.py +366 -0
- pulumi_gcp/kms/key_handle.py +548 -0
- pulumi_gcp/kms/key_ring_iam_binding.py +12 -12
- pulumi_gcp/kms/key_ring_iam_member.py +12 -12
- pulumi_gcp/kms/key_ring_iam_policy.py +12 -12
- pulumi_gcp/logging/folder_settings.py +12 -10
- pulumi_gcp/logging/linked_dataset.py +4 -2
- pulumi_gcp/logging/organization_settings.py +12 -10
- pulumi_gcp/logging/project_bucket_config.py +4 -2
- pulumi_gcp/looker/instance.py +12 -10
- pulumi_gcp/netapp/storage_pool.py +7 -7
- pulumi_gcp/netapp/volume.py +4 -4
- pulumi_gcp/netapp/volume_replication.py +4 -2
- pulumi_gcp/netapp/volume_snapshot.py +4 -2
- pulumi_gcp/networkconnectivity/internal_range.py +14 -12
- pulumi_gcp/networksecurity/gateway_security_policy.py +20 -8
- pulumi_gcp/networksecurity/tls_inspection_policy.py +437 -5
- pulumi_gcp/networkservices/__init__.py +2 -0
- pulumi_gcp/networkservices/_inputs.py +454 -0
- pulumi_gcp/networkservices/gateway.py +12 -6
- pulumi_gcp/networkservices/lb_route_extension.py +663 -0
- pulumi_gcp/networkservices/lb_traffic_extension.py +669 -0
- pulumi_gcp/networkservices/outputs.py +478 -0
- pulumi_gcp/notebooks/instance_iam_binding.py +12 -12
- pulumi_gcp/notebooks/instance_iam_member.py +12 -12
- pulumi_gcp/notebooks/instance_iam_policy.py +12 -12
- pulumi_gcp/notebooks/runtime_iam_binding.py +12 -12
- pulumi_gcp/notebooks/runtime_iam_member.py +12 -12
- pulumi_gcp/notebooks/runtime_iam_policy.py +12 -12
- pulumi_gcp/organizations/access_approval_settings.py +4 -2
- pulumi_gcp/organizations/iam_member.py +16 -16
- pulumi_gcp/organizations/iam_policy.py +16 -16
- pulumi_gcp/orgpolicy/policy.py +2 -2
- pulumi_gcp/parallelstore/instance.py +20 -18
- pulumi_gcp/projects/access_approval_settings.py +4 -2
- pulumi_gcp/projects/iam_audit_config.py +23 -23
- pulumi_gcp/projects/iam_binding.py +23 -23
- pulumi_gcp/projects/iam_member.py +23 -23
- pulumi_gcp/projects/iam_policy.py +16 -16
- pulumi_gcp/projects/service.py +2 -43
- pulumi_gcp/pubsub/_inputs.py +16 -0
- pulumi_gcp/pubsub/outputs.py +25 -0
- pulumi_gcp/pubsub/schema.py +4 -2
- pulumi_gcp/pubsub/schema_iam_binding.py +12 -12
- pulumi_gcp/pubsub/schema_iam_member.py +12 -12
- pulumi_gcp/pubsub/schema_iam_policy.py +12 -12
- pulumi_gcp/pubsub/subscription.py +102 -66
- pulumi_gcp/pubsub/subscription_iam_binding.py +12 -12
- pulumi_gcp/pubsub/subscription_iam_member.py +12 -12
- pulumi_gcp/pubsub/subscription_iam_policy.py +12 -12
- pulumi_gcp/pubsub/topic.py +4 -2
- pulumi_gcp/pubsub/topic_iam_binding.py +12 -12
- pulumi_gcp/pubsub/topic_iam_member.py +12 -12
- pulumi_gcp/pubsub/topic_iam_policy.py +12 -12
- pulumi_gcp/pulumi-plugin.json +1 -1
- pulumi_gcp/redis/cluster.py +30 -28
- pulumi_gcp/redis/instance.py +4 -2
- pulumi_gcp/secretmanager/secret.py +4 -2
- pulumi_gcp/secretmanager/secret_iam_binding.py +12 -12
- pulumi_gcp/secretmanager/secret_iam_member.py +12 -12
- pulumi_gcp/secretmanager/secret_iam_policy.py +12 -12
- pulumi_gcp/securesourcemanager/instance.py +20 -8
- pulumi_gcp/securitycenter/instance_iam_binding.py +14 -12
- pulumi_gcp/securitycenter/instance_iam_member.py +14 -12
- pulumi_gcp/securitycenter/instance_iam_policy.py +14 -12
- pulumi_gcp/serviceaccount/key.py +2 -2
- pulumi_gcp/servicedirectory/namespace_iam_binding.py +8 -8
- pulumi_gcp/servicedirectory/namespace_iam_member.py +8 -8
- pulumi_gcp/servicedirectory/namespace_iam_policy.py +8 -8
- pulumi_gcp/servicedirectory/service_iam_binding.py +8 -8
- pulumi_gcp/servicedirectory/service_iam_member.py +8 -8
- pulumi_gcp/servicedirectory/service_iam_policy.py +8 -8
- pulumi_gcp/sourcerepo/repository_iam_binding.py +12 -12
- pulumi_gcp/sourcerepo/repository_iam_member.py +12 -12
- pulumi_gcp/sourcerepo/repository_iam_policy.py +12 -12
- pulumi_gcp/spanner/database_iam_binding.py +12 -12
- pulumi_gcp/spanner/database_iam_member.py +12 -12
- pulumi_gcp/spanner/database_iam_policy.py +12 -12
- pulumi_gcp/spanner/instance_iam_binding.py +12 -12
- pulumi_gcp/spanner/instance_iam_member.py +12 -12
- pulumi_gcp/spanner/instance_iam_policy.py +12 -12
- pulumi_gcp/sql/database_instance.py +4 -2
- pulumi_gcp/sql/user.py +4 -4
- pulumi_gcp/storage/_inputs.py +12 -10
- pulumi_gcp/storage/bucket.py +44 -0
- pulumi_gcp/storage/bucket_iam_binding.py +12 -12
- pulumi_gcp/storage/bucket_iam_member.py +12 -12
- pulumi_gcp/storage/bucket_iam_policy.py +12 -12
- pulumi_gcp/storage/get_project_service_account.py +4 -2
- pulumi_gcp/storage/insights_report_config.py +12 -10
- pulumi_gcp/storage/notification.py +18 -16
- pulumi_gcp/storage/outputs.py +12 -10
- pulumi_gcp/storage/transfer_agent_pool.py +4 -2
- pulumi_gcp/storage/transfer_job.py +14 -4
- pulumi_gcp/tags/tag_key_iam_binding.py +12 -12
- pulumi_gcp/tags/tag_key_iam_member.py +12 -12
- pulumi_gcp/tags/tag_key_iam_policy.py +12 -12
- pulumi_gcp/tags/tag_value_iam_binding.py +12 -12
- pulumi_gcp/tags/tag_value_iam_member.py +12 -12
- pulumi_gcp/tags/tag_value_iam_policy.py +12 -12
- pulumi_gcp/tpu/_inputs.py +2 -2
- pulumi_gcp/tpu/outputs.py +2 -2
- pulumi_gcp/tpu/v2_vm.py +10 -6
- pulumi_gcp/vertex/ai_endpoint.py +24 -22
- pulumi_gcp/vertex/ai_index_endpoint.py +20 -18
- pulumi_gcp/vertex/ai_tensorboard.py +14 -12
- pulumi_gcp/vmwareengine/external_address.py +4 -2
- pulumi_gcp/vmwareengine/network.py +8 -4
- {pulumi_gcp-7.24.0a1716510380.dist-info → pulumi_gcp-7.25.0.dist-info}/METADATA +1 -1
- {pulumi_gcp-7.24.0a1716510380.dist-info → pulumi_gcp-7.25.0.dist-info}/RECORD +467 -450
- {pulumi_gcp-7.24.0a1716510380.dist-info → pulumi_gcp-7.25.0.dist-info}/WHEEL +0 -0
- {pulumi_gcp-7.24.0a1716510380.dist-info → pulumi_gcp-7.25.0.dist-info}/top_level.txt +0 -0
pulumi_gcp/compute/_inputs.py
CHANGED
@@ -100,6 +100,7 @@ __all__ = [
|
|
100
100
|
'InstanceFromMachineImageSchedulingLocalSsdRecoveryTimeoutArgs',
|
101
101
|
'InstanceFromMachineImageSchedulingMaxRunDurationArgs',
|
102
102
|
'InstanceFromMachineImageSchedulingNodeAffinityArgs',
|
103
|
+
'InstanceFromMachineImageSchedulingOnInstanceStopActionArgs',
|
103
104
|
'InstanceFromMachineImageScratchDiskArgs',
|
104
105
|
'InstanceFromMachineImageServiceAccountArgs',
|
105
106
|
'InstanceFromMachineImageShieldedInstanceConfigArgs',
|
@@ -121,6 +122,7 @@ __all__ = [
|
|
121
122
|
'InstanceFromTemplateSchedulingLocalSsdRecoveryTimeoutArgs',
|
122
123
|
'InstanceFromTemplateSchedulingMaxRunDurationArgs',
|
123
124
|
'InstanceFromTemplateSchedulingNodeAffinityArgs',
|
125
|
+
'InstanceFromTemplateSchedulingOnInstanceStopActionArgs',
|
124
126
|
'InstanceFromTemplateScratchDiskArgs',
|
125
127
|
'InstanceFromTemplateServiceAccountArgs',
|
126
128
|
'InstanceFromTemplateShieldedInstanceConfigArgs',
|
@@ -156,6 +158,7 @@ __all__ = [
|
|
156
158
|
'InstanceSchedulingLocalSsdRecoveryTimeoutArgs',
|
157
159
|
'InstanceSchedulingMaxRunDurationArgs',
|
158
160
|
'InstanceSchedulingNodeAffinityArgs',
|
161
|
+
'InstanceSchedulingOnInstanceStopActionArgs',
|
159
162
|
'InstanceScratchDiskArgs',
|
160
163
|
'InstanceServiceAccountArgs',
|
161
164
|
'InstanceSettingsMetadataArgs',
|
@@ -178,9 +181,14 @@ __all__ = [
|
|
178
181
|
'InstanceTemplateSchedulingLocalSsdRecoveryTimeoutArgs',
|
179
182
|
'InstanceTemplateSchedulingMaxRunDurationArgs',
|
180
183
|
'InstanceTemplateSchedulingNodeAffinityArgs',
|
184
|
+
'InstanceTemplateSchedulingOnInstanceStopActionArgs',
|
181
185
|
'InstanceTemplateServiceAccountArgs',
|
182
186
|
'InstanceTemplateShieldedInstanceConfigArgs',
|
183
187
|
'InterconnectAttachmentPrivateInterconnectInfoArgs',
|
188
|
+
'InterconnectCircuitInfoArgs',
|
189
|
+
'InterconnectExpectedOutageArgs',
|
190
|
+
'InterconnectMacsecArgs',
|
191
|
+
'InterconnectMacsecPreSharedKeyArgs',
|
184
192
|
'MachineImageIamBindingConditionArgs',
|
185
193
|
'MachineImageIamMemberConditionArgs',
|
186
194
|
'MachineImageMachineImageEncryptionKeyArgs',
|
@@ -290,6 +298,7 @@ __all__ = [
|
|
290
298
|
'RegionInstanceTemplateSchedulingLocalSsdRecoveryTimeoutArgs',
|
291
299
|
'RegionInstanceTemplateSchedulingMaxRunDurationArgs',
|
292
300
|
'RegionInstanceTemplateSchedulingNodeAffinityArgs',
|
301
|
+
'RegionInstanceTemplateSchedulingOnInstanceStopActionArgs',
|
293
302
|
'RegionInstanceTemplateServiceAccountArgs',
|
294
303
|
'RegionInstanceTemplateShieldedInstanceConfigArgs',
|
295
304
|
'RegionNetworkEndpointGroupAppEngineArgs',
|
@@ -309,6 +318,7 @@ __all__ = [
|
|
309
318
|
'RegionSecurityPolicyDdosProtectionConfigArgs',
|
310
319
|
'RegionSecurityPolicyRuleMatchArgs',
|
311
320
|
'RegionSecurityPolicyRuleMatchConfigArgs',
|
321
|
+
'RegionSecurityPolicyRuleMatchExprArgs',
|
312
322
|
'RegionSecurityPolicyRuleNetworkMatchArgs',
|
313
323
|
'RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArgs',
|
314
324
|
'RegionSecurityPolicyRulePreconfiguredWafConfigArgs',
|
@@ -7437,6 +7447,7 @@ class InstanceFromMachineImageSchedulingArgs:
|
|
7437
7447
|
min_node_cpus: Optional[pulumi.Input[int]] = None,
|
7438
7448
|
node_affinities: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceFromMachineImageSchedulingNodeAffinityArgs']]]] = None,
|
7439
7449
|
on_host_maintenance: Optional[pulumi.Input[str]] = None,
|
7450
|
+
on_instance_stop_action: Optional[pulumi.Input['InstanceFromMachineImageSchedulingOnInstanceStopActionArgs']] = None,
|
7440
7451
|
preemptible: Optional[pulumi.Input[bool]] = None,
|
7441
7452
|
provisioning_model: Optional[pulumi.Input[str]] = None):
|
7442
7453
|
"""
|
@@ -7450,6 +7461,7 @@ class InstanceFromMachineImageSchedulingArgs:
|
|
7450
7461
|
:param pulumi.Input['InstanceFromMachineImageSchedulingMaxRunDurationArgs'] max_run_duration: The timeout for new network connections to hosts.
|
7451
7462
|
:param pulumi.Input[Sequence[pulumi.Input['InstanceFromMachineImageSchedulingNodeAffinityArgs']]] node_affinities: Specifies node affinities or anti-affinities to determine which sole-tenant nodes your instances and managed instance groups will use as host systems.
|
7452
7463
|
:param pulumi.Input[str] on_host_maintenance: Describes maintenance behavior for the instance. One of MIGRATE or TERMINATE,
|
7464
|
+
:param pulumi.Input['InstanceFromMachineImageSchedulingOnInstanceStopActionArgs'] on_instance_stop_action: Defines the behaviour for instances with the instance_termination_action.
|
7453
7465
|
:param pulumi.Input[bool] preemptible: Whether the instance is preemptible.
|
7454
7466
|
:param pulumi.Input[str] provisioning_model: Whether the instance is spot. If this is set as SPOT.
|
7455
7467
|
"""
|
@@ -7469,6 +7481,8 @@ class InstanceFromMachineImageSchedulingArgs:
|
|
7469
7481
|
pulumi.set(__self__, "node_affinities", node_affinities)
|
7470
7482
|
if on_host_maintenance is not None:
|
7471
7483
|
pulumi.set(__self__, "on_host_maintenance", on_host_maintenance)
|
7484
|
+
if on_instance_stop_action is not None:
|
7485
|
+
pulumi.set(__self__, "on_instance_stop_action", on_instance_stop_action)
|
7472
7486
|
if preemptible is not None:
|
7473
7487
|
pulumi.set(__self__, "preemptible", preemptible)
|
7474
7488
|
if provisioning_model is not None:
|
@@ -7570,6 +7584,18 @@ class InstanceFromMachineImageSchedulingArgs:
|
|
7570
7584
|
def on_host_maintenance(self, value: Optional[pulumi.Input[str]]):
|
7571
7585
|
pulumi.set(self, "on_host_maintenance", value)
|
7572
7586
|
|
7587
|
+
@property
|
7588
|
+
@pulumi.getter(name="onInstanceStopAction")
|
7589
|
+
def on_instance_stop_action(self) -> Optional[pulumi.Input['InstanceFromMachineImageSchedulingOnInstanceStopActionArgs']]:
|
7590
|
+
"""
|
7591
|
+
Defines the behaviour for instances with the instance_termination_action.
|
7592
|
+
"""
|
7593
|
+
return pulumi.get(self, "on_instance_stop_action")
|
7594
|
+
|
7595
|
+
@on_instance_stop_action.setter
|
7596
|
+
def on_instance_stop_action(self, value: Optional[pulumi.Input['InstanceFromMachineImageSchedulingOnInstanceStopActionArgs']]):
|
7597
|
+
pulumi.set(self, "on_instance_stop_action", value)
|
7598
|
+
|
7573
7599
|
@property
|
7574
7600
|
@pulumi.getter
|
7575
7601
|
def preemptible(self) -> Optional[pulumi.Input[bool]]:
|
@@ -7725,6 +7751,29 @@ class InstanceFromMachineImageSchedulingNodeAffinityArgs:
|
|
7725
7751
|
pulumi.set(self, "values", value)
|
7726
7752
|
|
7727
7753
|
|
7754
|
+
@pulumi.input_type
|
7755
|
+
class InstanceFromMachineImageSchedulingOnInstanceStopActionArgs:
|
7756
|
+
def __init__(__self__, *,
|
7757
|
+
discard_local_ssd: Optional[pulumi.Input[bool]] = None):
|
7758
|
+
"""
|
7759
|
+
:param pulumi.Input[bool] discard_local_ssd: If true, the contents of any attached Local SSD disks will be discarded.
|
7760
|
+
"""
|
7761
|
+
if discard_local_ssd is not None:
|
7762
|
+
pulumi.set(__self__, "discard_local_ssd", discard_local_ssd)
|
7763
|
+
|
7764
|
+
@property
|
7765
|
+
@pulumi.getter(name="discardLocalSsd")
|
7766
|
+
def discard_local_ssd(self) -> Optional[pulumi.Input[bool]]:
|
7767
|
+
"""
|
7768
|
+
If true, the contents of any attached Local SSD disks will be discarded.
|
7769
|
+
"""
|
7770
|
+
return pulumi.get(self, "discard_local_ssd")
|
7771
|
+
|
7772
|
+
@discard_local_ssd.setter
|
7773
|
+
def discard_local_ssd(self, value: Optional[pulumi.Input[bool]]):
|
7774
|
+
pulumi.set(self, "discard_local_ssd", value)
|
7775
|
+
|
7776
|
+
|
7728
7777
|
@pulumi.input_type
|
7729
7778
|
class InstanceFromMachineImageScratchDiskArgs:
|
7730
7779
|
def __init__(__self__, *,
|
@@ -8988,6 +9037,7 @@ class InstanceFromTemplateSchedulingArgs:
|
|
8988
9037
|
min_node_cpus: Optional[pulumi.Input[int]] = None,
|
8989
9038
|
node_affinities: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceFromTemplateSchedulingNodeAffinityArgs']]]] = None,
|
8990
9039
|
on_host_maintenance: Optional[pulumi.Input[str]] = None,
|
9040
|
+
on_instance_stop_action: Optional[pulumi.Input['InstanceFromTemplateSchedulingOnInstanceStopActionArgs']] = None,
|
8991
9041
|
preemptible: Optional[pulumi.Input[bool]] = None,
|
8992
9042
|
provisioning_model: Optional[pulumi.Input[str]] = None):
|
8993
9043
|
"""
|
@@ -9001,6 +9051,7 @@ class InstanceFromTemplateSchedulingArgs:
|
|
9001
9051
|
:param pulumi.Input['InstanceFromTemplateSchedulingMaxRunDurationArgs'] max_run_duration: The timeout for new network connections to hosts.
|
9002
9052
|
:param pulumi.Input[Sequence[pulumi.Input['InstanceFromTemplateSchedulingNodeAffinityArgs']]] node_affinities: Specifies node affinities or anti-affinities to determine which sole-tenant nodes your instances and managed instance groups will use as host systems.
|
9003
9053
|
:param pulumi.Input[str] on_host_maintenance: Describes maintenance behavior for the instance. One of MIGRATE or TERMINATE,
|
9054
|
+
:param pulumi.Input['InstanceFromTemplateSchedulingOnInstanceStopActionArgs'] on_instance_stop_action: Defines the behaviour for instances with the instance_termination_action.
|
9004
9055
|
:param pulumi.Input[bool] preemptible: Whether the instance is preemptible.
|
9005
9056
|
:param pulumi.Input[str] provisioning_model: Whether the instance is spot. If this is set as SPOT.
|
9006
9057
|
"""
|
@@ -9020,6 +9071,8 @@ class InstanceFromTemplateSchedulingArgs:
|
|
9020
9071
|
pulumi.set(__self__, "node_affinities", node_affinities)
|
9021
9072
|
if on_host_maintenance is not None:
|
9022
9073
|
pulumi.set(__self__, "on_host_maintenance", on_host_maintenance)
|
9074
|
+
if on_instance_stop_action is not None:
|
9075
|
+
pulumi.set(__self__, "on_instance_stop_action", on_instance_stop_action)
|
9023
9076
|
if preemptible is not None:
|
9024
9077
|
pulumi.set(__self__, "preemptible", preemptible)
|
9025
9078
|
if provisioning_model is not None:
|
@@ -9121,6 +9174,18 @@ class InstanceFromTemplateSchedulingArgs:
|
|
9121
9174
|
def on_host_maintenance(self, value: Optional[pulumi.Input[str]]):
|
9122
9175
|
pulumi.set(self, "on_host_maintenance", value)
|
9123
9176
|
|
9177
|
+
@property
|
9178
|
+
@pulumi.getter(name="onInstanceStopAction")
|
9179
|
+
def on_instance_stop_action(self) -> Optional[pulumi.Input['InstanceFromTemplateSchedulingOnInstanceStopActionArgs']]:
|
9180
|
+
"""
|
9181
|
+
Defines the behaviour for instances with the instance_termination_action.
|
9182
|
+
"""
|
9183
|
+
return pulumi.get(self, "on_instance_stop_action")
|
9184
|
+
|
9185
|
+
@on_instance_stop_action.setter
|
9186
|
+
def on_instance_stop_action(self, value: Optional[pulumi.Input['InstanceFromTemplateSchedulingOnInstanceStopActionArgs']]):
|
9187
|
+
pulumi.set(self, "on_instance_stop_action", value)
|
9188
|
+
|
9124
9189
|
@property
|
9125
9190
|
@pulumi.getter
|
9126
9191
|
def preemptible(self) -> Optional[pulumi.Input[bool]]:
|
@@ -9276,6 +9341,29 @@ class InstanceFromTemplateSchedulingNodeAffinityArgs:
|
|
9276
9341
|
pulumi.set(self, "values", value)
|
9277
9342
|
|
9278
9343
|
|
9344
|
+
@pulumi.input_type
|
9345
|
+
class InstanceFromTemplateSchedulingOnInstanceStopActionArgs:
|
9346
|
+
def __init__(__self__, *,
|
9347
|
+
discard_local_ssd: Optional[pulumi.Input[bool]] = None):
|
9348
|
+
"""
|
9349
|
+
:param pulumi.Input[bool] discard_local_ssd: If true, the contents of any attached Local SSD disks will be discarded.
|
9350
|
+
"""
|
9351
|
+
if discard_local_ssd is not None:
|
9352
|
+
pulumi.set(__self__, "discard_local_ssd", discard_local_ssd)
|
9353
|
+
|
9354
|
+
@property
|
9355
|
+
@pulumi.getter(name="discardLocalSsd")
|
9356
|
+
def discard_local_ssd(self) -> Optional[pulumi.Input[bool]]:
|
9357
|
+
"""
|
9358
|
+
If true, the contents of any attached Local SSD disks will be discarded.
|
9359
|
+
"""
|
9360
|
+
return pulumi.get(self, "discard_local_ssd")
|
9361
|
+
|
9362
|
+
@discard_local_ssd.setter
|
9363
|
+
def discard_local_ssd(self, value: Optional[pulumi.Input[bool]]):
|
9364
|
+
pulumi.set(self, "discard_local_ssd", value)
|
9365
|
+
|
9366
|
+
|
9279
9367
|
@pulumi.input_type
|
9280
9368
|
class InstanceFromTemplateScratchDiskArgs:
|
9281
9369
|
def __init__(__self__, *,
|
@@ -11036,6 +11124,7 @@ class InstanceSchedulingArgs:
|
|
11036
11124
|
min_node_cpus: Optional[pulumi.Input[int]] = None,
|
11037
11125
|
node_affinities: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceSchedulingNodeAffinityArgs']]]] = None,
|
11038
11126
|
on_host_maintenance: Optional[pulumi.Input[str]] = None,
|
11127
|
+
on_instance_stop_action: Optional[pulumi.Input['InstanceSchedulingOnInstanceStopActionArgs']] = None,
|
11039
11128
|
preemptible: Optional[pulumi.Input[bool]] = None,
|
11040
11129
|
provisioning_model: Optional[pulumi.Input[str]] = None):
|
11041
11130
|
"""
|
@@ -11048,8 +11137,7 @@ class InstanceSchedulingArgs:
|
|
11048
11137
|
between 0 and 168 hours with hour granularity and the default value being 1
|
11049
11138
|
hour.
|
11050
11139
|
:param pulumi.Input[str] maintenance_interval: Specifies the frequency of planned maintenance events. The accepted values are: `PERIODIC`.
|
11051
|
-
:param pulumi.Input['InstanceSchedulingMaxRunDurationArgs'] max_run_duration: The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in `instance_termination_action`.
|
11052
|
-
<a name="nested_max_run_duration"></a>The `max_run_duration` block supports:
|
11140
|
+
:param pulumi.Input['InstanceSchedulingMaxRunDurationArgs'] max_run_duration: The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in `instance_termination_action`. Structure is documented below.
|
11053
11141
|
:param pulumi.Input[int] min_node_cpus: The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node.
|
11054
11142
|
:param pulumi.Input[Sequence[pulumi.Input['InstanceSchedulingNodeAffinityArgs']]] node_affinities: Specifies node affinities or anti-affinities
|
11055
11143
|
to determine which sole-tenant nodes your instances and managed instance
|
@@ -11059,6 +11147,7 @@ class InstanceSchedulingArgs:
|
|
11059
11147
|
:param pulumi.Input[str] on_host_maintenance: Describes maintenance behavior for the
|
11060
11148
|
instance. Can be MIGRATE or TERMINATE, for more info, read
|
11061
11149
|
[here](https://cloud.google.com/compute/docs/instances/setting-instance-scheduling-options).
|
11150
|
+
:param pulumi.Input['InstanceSchedulingOnInstanceStopActionArgs'] on_instance_stop_action: Specifies the action to be performed when the instance is terminated using `max_run_duration` and `STOP` `instance_termination_action`. Only support `true` `discard_local_ssd` at this point. Structure is documented below.
|
11062
11151
|
:param pulumi.Input[bool] preemptible: Specifies if the instance is preemptible.
|
11063
11152
|
If this field is set to true, then `automatic_restart` must be
|
11064
11153
|
set to false. Defaults to false.
|
@@ -11083,6 +11172,8 @@ class InstanceSchedulingArgs:
|
|
11083
11172
|
pulumi.set(__self__, "node_affinities", node_affinities)
|
11084
11173
|
if on_host_maintenance is not None:
|
11085
11174
|
pulumi.set(__self__, "on_host_maintenance", on_host_maintenance)
|
11175
|
+
if on_instance_stop_action is not None:
|
11176
|
+
pulumi.set(__self__, "on_instance_stop_action", on_instance_stop_action)
|
11086
11177
|
if preemptible is not None:
|
11087
11178
|
pulumi.set(__self__, "preemptible", preemptible)
|
11088
11179
|
if provisioning_model is not None:
|
@@ -11145,8 +11236,7 @@ class InstanceSchedulingArgs:
|
|
11145
11236
|
@pulumi.getter(name="maxRunDuration")
|
11146
11237
|
def max_run_duration(self) -> Optional[pulumi.Input['InstanceSchedulingMaxRunDurationArgs']]:
|
11147
11238
|
"""
|
11148
|
-
The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in `instance_termination_action`.
|
11149
|
-
<a name="nested_max_run_duration"></a>The `max_run_duration` block supports:
|
11239
|
+
The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in `instance_termination_action`. Structure is documented below.
|
11150
11240
|
"""
|
11151
11241
|
return pulumi.get(self, "max_run_duration")
|
11152
11242
|
|
@@ -11196,6 +11286,18 @@ class InstanceSchedulingArgs:
|
|
11196
11286
|
def on_host_maintenance(self, value: Optional[pulumi.Input[str]]):
|
11197
11287
|
pulumi.set(self, "on_host_maintenance", value)
|
11198
11288
|
|
11289
|
+
@property
|
11290
|
+
@pulumi.getter(name="onInstanceStopAction")
|
11291
|
+
def on_instance_stop_action(self) -> Optional[pulumi.Input['InstanceSchedulingOnInstanceStopActionArgs']]:
|
11292
|
+
"""
|
11293
|
+
Specifies the action to be performed when the instance is terminated using `max_run_duration` and `STOP` `instance_termination_action`. Only support `true` `discard_local_ssd` at this point. Structure is documented below.
|
11294
|
+
"""
|
11295
|
+
return pulumi.get(self, "on_instance_stop_action")
|
11296
|
+
|
11297
|
+
@on_instance_stop_action.setter
|
11298
|
+
def on_instance_stop_action(self, value: Optional[pulumi.Input['InstanceSchedulingOnInstanceStopActionArgs']]):
|
11299
|
+
pulumi.set(self, "on_instance_stop_action", value)
|
11300
|
+
|
11199
11301
|
@property
|
11200
11302
|
@pulumi.getter
|
11201
11303
|
def preemptible(self) -> Optional[pulumi.Input[bool]]:
|
@@ -11278,12 +11380,13 @@ class InstanceSchedulingMaxRunDurationArgs:
|
|
11278
11380
|
seconds: pulumi.Input[int],
|
11279
11381
|
nanos: Optional[pulumi.Input[int]] = None):
|
11280
11382
|
"""
|
11281
|
-
:param pulumi.Input[int] seconds: Span of time at a resolution of a second.
|
11282
|
-
|
11383
|
+
:param pulumi.Input[int] seconds: Span of time at a resolution of a second. Must be from 0 to
|
11384
|
+
315,576,000,000 inclusive. Note: these bounds are computed from: 60
|
11385
|
+
sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
|
11283
11386
|
:param pulumi.Input[int] nanos: Span of time that's a fraction of a second at nanosecond
|
11284
|
-
resolution. Durations less than one second are represented
|
11285
|
-
|
11286
|
-
|
11387
|
+
resolution. Durations less than one second are represented with a 0
|
11388
|
+
`seconds` field and a positive `nanos` field. Must be from 0 to
|
11389
|
+
999,999,999 inclusive.
|
11287
11390
|
"""
|
11288
11391
|
pulumi.set(__self__, "seconds", seconds)
|
11289
11392
|
if nanos is not None:
|
@@ -11293,8 +11396,9 @@ class InstanceSchedulingMaxRunDurationArgs:
|
|
11293
11396
|
@pulumi.getter
|
11294
11397
|
def seconds(self) -> pulumi.Input[int]:
|
11295
11398
|
"""
|
11296
|
-
Span of time at a resolution of a second.
|
11297
|
-
|
11399
|
+
Span of time at a resolution of a second. Must be from 0 to
|
11400
|
+
315,576,000,000 inclusive. Note: these bounds are computed from: 60
|
11401
|
+
sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
|
11298
11402
|
"""
|
11299
11403
|
return pulumi.get(self, "seconds")
|
11300
11404
|
|
@@ -11307,9 +11411,9 @@ class InstanceSchedulingMaxRunDurationArgs:
|
|
11307
11411
|
def nanos(self) -> Optional[pulumi.Input[int]]:
|
11308
11412
|
"""
|
11309
11413
|
Span of time that's a fraction of a second at nanosecond
|
11310
|
-
resolution. Durations less than one second are represented
|
11311
|
-
|
11312
|
-
|
11414
|
+
resolution. Durations less than one second are represented with a 0
|
11415
|
+
`seconds` field and a positive `nanos` field. Must be from 0 to
|
11416
|
+
999,999,999 inclusive.
|
11313
11417
|
"""
|
11314
11418
|
return pulumi.get(self, "nanos")
|
11315
11419
|
|
@@ -11372,6 +11476,29 @@ class InstanceSchedulingNodeAffinityArgs:
|
|
11372
11476
|
pulumi.set(self, "values", value)
|
11373
11477
|
|
11374
11478
|
|
11479
|
+
@pulumi.input_type
|
11480
|
+
class InstanceSchedulingOnInstanceStopActionArgs:
|
11481
|
+
def __init__(__self__, *,
|
11482
|
+
discard_local_ssd: Optional[pulumi.Input[bool]] = None):
|
11483
|
+
"""
|
11484
|
+
:param pulumi.Input[bool] discard_local_ssd: Whether to discard local SSDs attached to the VM while terminating using `max_run_duration`. Only supports `true` at this point.
|
11485
|
+
"""
|
11486
|
+
if discard_local_ssd is not None:
|
11487
|
+
pulumi.set(__self__, "discard_local_ssd", discard_local_ssd)
|
11488
|
+
|
11489
|
+
@property
|
11490
|
+
@pulumi.getter(name="discardLocalSsd")
|
11491
|
+
def discard_local_ssd(self) -> Optional[pulumi.Input[bool]]:
|
11492
|
+
"""
|
11493
|
+
Whether to discard local SSDs attached to the VM while terminating using `max_run_duration`. Only supports `true` at this point.
|
11494
|
+
"""
|
11495
|
+
return pulumi.get(self, "discard_local_ssd")
|
11496
|
+
|
11497
|
+
@discard_local_ssd.setter
|
11498
|
+
def discard_local_ssd(self, value: Optional[pulumi.Input[bool]]):
|
11499
|
+
pulumi.set(self, "discard_local_ssd", value)
|
11500
|
+
|
11501
|
+
|
11375
11502
|
@pulumi.input_type
|
11376
11503
|
class InstanceScratchDiskArgs:
|
11377
11504
|
def __init__(__self__, *,
|
@@ -12780,6 +12907,7 @@ class InstanceTemplateSchedulingArgs:
|
|
12780
12907
|
min_node_cpus: Optional[pulumi.Input[int]] = None,
|
12781
12908
|
node_affinities: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceTemplateSchedulingNodeAffinityArgs']]]] = None,
|
12782
12909
|
on_host_maintenance: Optional[pulumi.Input[str]] = None,
|
12910
|
+
on_instance_stop_action: Optional[pulumi.Input['InstanceTemplateSchedulingOnInstanceStopActionArgs']] = None,
|
12783
12911
|
preemptible: Optional[pulumi.Input[bool]] = None,
|
12784
12912
|
provisioning_model: Optional[pulumi.Input[str]] = None):
|
12785
12913
|
"""
|
@@ -12792,8 +12920,7 @@ class InstanceTemplateSchedulingArgs:
|
|
12792
12920
|
between 0 and 168 hours with hour granularity and the default value being 1
|
12793
12921
|
hour.
|
12794
12922
|
:param pulumi.Input[str] maintenance_interval: Specifies the frequency of planned maintenance events. The accepted values are: `PERIODIC`.
|
12795
|
-
:param pulumi.Input['InstanceTemplateSchedulingMaxRunDurationArgs'] max_run_duration: The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in `instance_termination_action`.
|
12796
|
-
<a name="nested_max_run_duration"></a>The `max_run_duration` block supports:
|
12923
|
+
:param pulumi.Input['InstanceTemplateSchedulingMaxRunDurationArgs'] max_run_duration: The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in `instance_termination_action`. Structure is documented below.
|
12797
12924
|
:param pulumi.Input[int] min_node_cpus: Minimum number of cpus for the instance.
|
12798
12925
|
:param pulumi.Input[Sequence[pulumi.Input['InstanceTemplateSchedulingNodeAffinityArgs']]] node_affinities: Specifies node affinities or anti-affinities
|
12799
12926
|
to determine which sole-tenant nodes your instances and managed instance
|
@@ -12802,6 +12929,7 @@ class InstanceTemplateSchedulingArgs:
|
|
12802
12929
|
Structure documented below.
|
12803
12930
|
:param pulumi.Input[str] on_host_maintenance: Defines the maintenance behavior for this
|
12804
12931
|
instance.
|
12932
|
+
:param pulumi.Input['InstanceTemplateSchedulingOnInstanceStopActionArgs'] on_instance_stop_action: Specifies the action to be performed when the instance is terminated using `max_run_duration` and `STOP` `instance_termination_action`. Only support `true` `discard_local_ssd` at this point. Structure is documented below.
|
12805
12933
|
:param pulumi.Input[bool] preemptible: Allows instance to be preempted. This defaults to
|
12806
12934
|
false. Read more on this
|
12807
12935
|
[here](https://cloud.google.com/compute/docs/instances/preemptible).
|
@@ -12826,6 +12954,8 @@ class InstanceTemplateSchedulingArgs:
|
|
12826
12954
|
pulumi.set(__self__, "node_affinities", node_affinities)
|
12827
12955
|
if on_host_maintenance is not None:
|
12828
12956
|
pulumi.set(__self__, "on_host_maintenance", on_host_maintenance)
|
12957
|
+
if on_instance_stop_action is not None:
|
12958
|
+
pulumi.set(__self__, "on_instance_stop_action", on_instance_stop_action)
|
12829
12959
|
if preemptible is not None:
|
12830
12960
|
pulumi.set(__self__, "preemptible", preemptible)
|
12831
12961
|
if provisioning_model is not None:
|
@@ -12888,8 +13018,7 @@ class InstanceTemplateSchedulingArgs:
|
|
12888
13018
|
@pulumi.getter(name="maxRunDuration")
|
12889
13019
|
def max_run_duration(self) -> Optional[pulumi.Input['InstanceTemplateSchedulingMaxRunDurationArgs']]:
|
12890
13020
|
"""
|
12891
|
-
The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in `instance_termination_action`.
|
12892
|
-
<a name="nested_max_run_duration"></a>The `max_run_duration` block supports:
|
13021
|
+
The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in `instance_termination_action`. Structure is documented below.
|
12893
13022
|
"""
|
12894
13023
|
return pulumi.get(self, "max_run_duration")
|
12895
13024
|
|
@@ -12938,6 +13067,18 @@ class InstanceTemplateSchedulingArgs:
|
|
12938
13067
|
def on_host_maintenance(self, value: Optional[pulumi.Input[str]]):
|
12939
13068
|
pulumi.set(self, "on_host_maintenance", value)
|
12940
13069
|
|
13070
|
+
@property
|
13071
|
+
@pulumi.getter(name="onInstanceStopAction")
|
13072
|
+
def on_instance_stop_action(self) -> Optional[pulumi.Input['InstanceTemplateSchedulingOnInstanceStopActionArgs']]:
|
13073
|
+
"""
|
13074
|
+
Specifies the action to be performed when the instance is terminated using `max_run_duration` and `STOP` `instance_termination_action`. Only support `true` `discard_local_ssd` at this point. Structure is documented below.
|
13075
|
+
"""
|
13076
|
+
return pulumi.get(self, "on_instance_stop_action")
|
13077
|
+
|
13078
|
+
@on_instance_stop_action.setter
|
13079
|
+
def on_instance_stop_action(self, value: Optional[pulumi.Input['InstanceTemplateSchedulingOnInstanceStopActionArgs']]):
|
13080
|
+
pulumi.set(self, "on_instance_stop_action", value)
|
13081
|
+
|
12941
13082
|
@property
|
12942
13083
|
@pulumi.getter
|
12943
13084
|
def preemptible(self) -> Optional[pulumi.Input[bool]]:
|
@@ -13020,12 +13161,13 @@ class InstanceTemplateSchedulingMaxRunDurationArgs:
|
|
13020
13161
|
seconds: pulumi.Input[int],
|
13021
13162
|
nanos: Optional[pulumi.Input[int]] = None):
|
13022
13163
|
"""
|
13023
|
-
:param pulumi.Input[int] seconds: Span of time at a resolution of a second.
|
13024
|
-
|
13164
|
+
:param pulumi.Input[int] seconds: Span of time at a resolution of a second. Must be from 0 to
|
13165
|
+
315,576,000,000 inclusive. Note: these bounds are computed from: 60
|
13166
|
+
sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
|
13025
13167
|
:param pulumi.Input[int] nanos: Span of time that's a fraction of a second at nanosecond
|
13026
|
-
resolution. Durations less than one second are represented
|
13027
|
-
|
13028
|
-
|
13168
|
+
resolution. Durations less than one second are represented with a 0
|
13169
|
+
`seconds` field and a positive `nanos` field. Must be from 0 to
|
13170
|
+
999,999,999 inclusive.
|
13029
13171
|
"""
|
13030
13172
|
pulumi.set(__self__, "seconds", seconds)
|
13031
13173
|
if nanos is not None:
|
@@ -13035,8 +13177,9 @@ class InstanceTemplateSchedulingMaxRunDurationArgs:
|
|
13035
13177
|
@pulumi.getter
|
13036
13178
|
def seconds(self) -> pulumi.Input[int]:
|
13037
13179
|
"""
|
13038
|
-
Span of time at a resolution of a second.
|
13039
|
-
|
13180
|
+
Span of time at a resolution of a second. Must be from 0 to
|
13181
|
+
315,576,000,000 inclusive. Note: these bounds are computed from: 60
|
13182
|
+
sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
|
13040
13183
|
"""
|
13041
13184
|
return pulumi.get(self, "seconds")
|
13042
13185
|
|
@@ -13049,9 +13192,9 @@ class InstanceTemplateSchedulingMaxRunDurationArgs:
|
|
13049
13192
|
def nanos(self) -> Optional[pulumi.Input[int]]:
|
13050
13193
|
"""
|
13051
13194
|
Span of time that's a fraction of a second at nanosecond
|
13052
|
-
resolution. Durations less than one second are represented
|
13053
|
-
|
13054
|
-
|
13195
|
+
resolution. Durations less than one second are represented with a 0
|
13196
|
+
`seconds` field and a positive `nanos` field. Must be from 0 to
|
13197
|
+
999,999,999 inclusive.
|
13055
13198
|
"""
|
13056
13199
|
return pulumi.get(self, "nanos")
|
13057
13200
|
|
@@ -13110,6 +13253,29 @@ class InstanceTemplateSchedulingNodeAffinityArgs:
|
|
13110
13253
|
pulumi.set(self, "values", value)
|
13111
13254
|
|
13112
13255
|
|
13256
|
+
@pulumi.input_type
|
13257
|
+
class InstanceTemplateSchedulingOnInstanceStopActionArgs:
|
13258
|
+
def __init__(__self__, *,
|
13259
|
+
discard_local_ssd: Optional[pulumi.Input[bool]] = None):
|
13260
|
+
"""
|
13261
|
+
:param pulumi.Input[bool] discard_local_ssd: Whether to discard local SSDs attached to the VM while terminating using `max_run_duration`. Only supports `true` at this point.
|
13262
|
+
"""
|
13263
|
+
if discard_local_ssd is not None:
|
13264
|
+
pulumi.set(__self__, "discard_local_ssd", discard_local_ssd)
|
13265
|
+
|
13266
|
+
@property
|
13267
|
+
@pulumi.getter(name="discardLocalSsd")
|
13268
|
+
def discard_local_ssd(self) -> Optional[pulumi.Input[bool]]:
|
13269
|
+
"""
|
13270
|
+
Whether to discard local SSDs attached to the VM while terminating using `max_run_duration`. Only supports `true` at this point.
|
13271
|
+
"""
|
13272
|
+
return pulumi.get(self, "discard_local_ssd")
|
13273
|
+
|
13274
|
+
@discard_local_ssd.setter
|
13275
|
+
def discard_local_ssd(self, value: Optional[pulumi.Input[bool]]):
|
13276
|
+
pulumi.set(self, "discard_local_ssd", value)
|
13277
|
+
|
13278
|
+
|
13113
13279
|
@pulumi.input_type
|
13114
13280
|
class InstanceTemplateServiceAccountArgs:
|
13115
13281
|
def __init__(__self__, *,
|
@@ -13250,6 +13416,362 @@ class InterconnectAttachmentPrivateInterconnectInfoArgs:
|
|
13250
13416
|
pulumi.set(self, "tag8021q", value)
|
13251
13417
|
|
13252
13418
|
|
13419
|
+
@pulumi.input_type
|
13420
|
+
class InterconnectCircuitInfoArgs:
|
13421
|
+
def __init__(__self__, *,
|
13422
|
+
customer_demarc_id: Optional[pulumi.Input[str]] = None,
|
13423
|
+
google_circuit_id: Optional[pulumi.Input[str]] = None,
|
13424
|
+
google_demarc_id: Optional[pulumi.Input[str]] = None):
|
13425
|
+
"""
|
13426
|
+
:param pulumi.Input[str] customer_demarc_id: (Output)
|
13427
|
+
Customer-side demarc ID for this circuit.
|
13428
|
+
:param pulumi.Input[str] google_circuit_id: (Output)
|
13429
|
+
Google-assigned unique ID for this circuit. Assigned at circuit turn-up.
|
13430
|
+
:param pulumi.Input[str] google_demarc_id: (Output)
|
13431
|
+
Google-side demarc ID for this circuit. Assigned at circuit turn-up and provided by
|
13432
|
+
Google to the customer in the LOA.
|
13433
|
+
"""
|
13434
|
+
if customer_demarc_id is not None:
|
13435
|
+
pulumi.set(__self__, "customer_demarc_id", customer_demarc_id)
|
13436
|
+
if google_circuit_id is not None:
|
13437
|
+
pulumi.set(__self__, "google_circuit_id", google_circuit_id)
|
13438
|
+
if google_demarc_id is not None:
|
13439
|
+
pulumi.set(__self__, "google_demarc_id", google_demarc_id)
|
13440
|
+
|
13441
|
+
@property
|
13442
|
+
@pulumi.getter(name="customerDemarcId")
|
13443
|
+
def customer_demarc_id(self) -> Optional[pulumi.Input[str]]:
|
13444
|
+
"""
|
13445
|
+
(Output)
|
13446
|
+
Customer-side demarc ID for this circuit.
|
13447
|
+
"""
|
13448
|
+
return pulumi.get(self, "customer_demarc_id")
|
13449
|
+
|
13450
|
+
@customer_demarc_id.setter
|
13451
|
+
def customer_demarc_id(self, value: Optional[pulumi.Input[str]]):
|
13452
|
+
pulumi.set(self, "customer_demarc_id", value)
|
13453
|
+
|
13454
|
+
@property
|
13455
|
+
@pulumi.getter(name="googleCircuitId")
|
13456
|
+
def google_circuit_id(self) -> Optional[pulumi.Input[str]]:
|
13457
|
+
"""
|
13458
|
+
(Output)
|
13459
|
+
Google-assigned unique ID for this circuit. Assigned at circuit turn-up.
|
13460
|
+
"""
|
13461
|
+
return pulumi.get(self, "google_circuit_id")
|
13462
|
+
|
13463
|
+
@google_circuit_id.setter
|
13464
|
+
def google_circuit_id(self, value: Optional[pulumi.Input[str]]):
|
13465
|
+
pulumi.set(self, "google_circuit_id", value)
|
13466
|
+
|
13467
|
+
@property
|
13468
|
+
@pulumi.getter(name="googleDemarcId")
|
13469
|
+
def google_demarc_id(self) -> Optional[pulumi.Input[str]]:
|
13470
|
+
"""
|
13471
|
+
(Output)
|
13472
|
+
Google-side demarc ID for this circuit. Assigned at circuit turn-up and provided by
|
13473
|
+
Google to the customer in the LOA.
|
13474
|
+
"""
|
13475
|
+
return pulumi.get(self, "google_demarc_id")
|
13476
|
+
|
13477
|
+
@google_demarc_id.setter
|
13478
|
+
def google_demarc_id(self, value: Optional[pulumi.Input[str]]):
|
13479
|
+
pulumi.set(self, "google_demarc_id", value)
|
13480
|
+
|
13481
|
+
|
13482
|
+
@pulumi.input_type
|
13483
|
+
class InterconnectExpectedOutageArgs:
|
13484
|
+
def __init__(__self__, *,
|
13485
|
+
affected_circuits: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
13486
|
+
description: Optional[pulumi.Input[str]] = None,
|
13487
|
+
end_time: Optional[pulumi.Input[str]] = None,
|
13488
|
+
issue_type: Optional[pulumi.Input[str]] = None,
|
13489
|
+
name: Optional[pulumi.Input[str]] = None,
|
13490
|
+
source: Optional[pulumi.Input[str]] = None,
|
13491
|
+
start_time: Optional[pulumi.Input[str]] = None,
|
13492
|
+
state: Optional[pulumi.Input[str]] = None):
|
13493
|
+
"""
|
13494
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] affected_circuits: (Output)
|
13495
|
+
If issueType is IT_PARTIAL_OUTAGE, a list of the Google-side circuit IDs that will be
|
13496
|
+
affected.
|
13497
|
+
:param pulumi.Input[str] description: An optional description of this resource. Provide this property when you create the resource.
|
13498
|
+
:param pulumi.Input[str] end_time: (Output)
|
13499
|
+
Scheduled end time for the outage (milliseconds since Unix epoch).
|
13500
|
+
:param pulumi.Input[str] issue_type: (Output)
|
13501
|
+
Form this outage is expected to take. Note that the versions of this enum prefixed with
|
13502
|
+
"IT_" have been deprecated in favor of the unprefixed values. Can take one of the
|
13503
|
+
following values:
|
13504
|
+
- OUTAGE: The Interconnect may be completely out of service for some or all of the
|
13505
|
+
specified window.
|
13506
|
+
- PARTIAL_OUTAGE: Some circuits comprising the Interconnect as a whole should remain
|
13507
|
+
up, but with reduced bandwidth.
|
13508
|
+
:param pulumi.Input[str] name: Name of the resource. Provided by the client when the resource is created. The name must be
|
13509
|
+
1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters
|
13510
|
+
long and match the regular expression `a-z?` which means the first
|
13511
|
+
character must be a lowercase letter, and all following characters must be a dash,
|
13512
|
+
lowercase letter, or digit, except the last character, which cannot be a dash.
|
13513
|
+
:param pulumi.Input[str] source: (Output)
|
13514
|
+
The party that generated this notification. Note that the value of NSRC_GOOGLE has been
|
13515
|
+
deprecated in favor of GOOGLE. Can take the following value:
|
13516
|
+
- GOOGLE: this notification as generated by Google.
|
13517
|
+
:param pulumi.Input[str] start_time: (Output)
|
13518
|
+
Scheduled start time for the outage (milliseconds since Unix epoch).
|
13519
|
+
:param pulumi.Input[str] state: (Output)
|
13520
|
+
State of this notification. Note that the versions of this enum prefixed with "NS_" have
|
13521
|
+
been deprecated in favor of the unprefixed values. Can take one of the following values:
|
13522
|
+
- ACTIVE: This outage notification is active. The event could be in the past, present,
|
13523
|
+
or future. See startTime and endTime for scheduling.
|
13524
|
+
- CANCELLED: The outage associated with this notification was cancelled before the
|
13525
|
+
outage was due to start.
|
13526
|
+
- COMPLETED: The outage associated with this notification is complete.
|
13527
|
+
"""
|
13528
|
+
if affected_circuits is not None:
|
13529
|
+
pulumi.set(__self__, "affected_circuits", affected_circuits)
|
13530
|
+
if description is not None:
|
13531
|
+
pulumi.set(__self__, "description", description)
|
13532
|
+
if end_time is not None:
|
13533
|
+
pulumi.set(__self__, "end_time", end_time)
|
13534
|
+
if issue_type is not None:
|
13535
|
+
pulumi.set(__self__, "issue_type", issue_type)
|
13536
|
+
if name is not None:
|
13537
|
+
pulumi.set(__self__, "name", name)
|
13538
|
+
if source is not None:
|
13539
|
+
pulumi.set(__self__, "source", source)
|
13540
|
+
if start_time is not None:
|
13541
|
+
pulumi.set(__self__, "start_time", start_time)
|
13542
|
+
if state is not None:
|
13543
|
+
pulumi.set(__self__, "state", state)
|
13544
|
+
|
13545
|
+
@property
|
13546
|
+
@pulumi.getter(name="affectedCircuits")
|
13547
|
+
def affected_circuits(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
|
13548
|
+
"""
|
13549
|
+
(Output)
|
13550
|
+
If issueType is IT_PARTIAL_OUTAGE, a list of the Google-side circuit IDs that will be
|
13551
|
+
affected.
|
13552
|
+
"""
|
13553
|
+
return pulumi.get(self, "affected_circuits")
|
13554
|
+
|
13555
|
+
@affected_circuits.setter
|
13556
|
+
def affected_circuits(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
|
13557
|
+
pulumi.set(self, "affected_circuits", value)
|
13558
|
+
|
13559
|
+
@property
|
13560
|
+
@pulumi.getter
|
13561
|
+
def description(self) -> Optional[pulumi.Input[str]]:
|
13562
|
+
"""
|
13563
|
+
An optional description of this resource. Provide this property when you create the resource.
|
13564
|
+
"""
|
13565
|
+
return pulumi.get(self, "description")
|
13566
|
+
|
13567
|
+
@description.setter
|
13568
|
+
def description(self, value: Optional[pulumi.Input[str]]):
|
13569
|
+
pulumi.set(self, "description", value)
|
13570
|
+
|
13571
|
+
@property
|
13572
|
+
@pulumi.getter(name="endTime")
|
13573
|
+
def end_time(self) -> Optional[pulumi.Input[str]]:
|
13574
|
+
"""
|
13575
|
+
(Output)
|
13576
|
+
Scheduled end time for the outage (milliseconds since Unix epoch).
|
13577
|
+
"""
|
13578
|
+
return pulumi.get(self, "end_time")
|
13579
|
+
|
13580
|
+
@end_time.setter
|
13581
|
+
def end_time(self, value: Optional[pulumi.Input[str]]):
|
13582
|
+
pulumi.set(self, "end_time", value)
|
13583
|
+
|
13584
|
+
@property
|
13585
|
+
@pulumi.getter(name="issueType")
|
13586
|
+
def issue_type(self) -> Optional[pulumi.Input[str]]:
|
13587
|
+
"""
|
13588
|
+
(Output)
|
13589
|
+
Form this outage is expected to take. Note that the versions of this enum prefixed with
|
13590
|
+
"IT_" have been deprecated in favor of the unprefixed values. Can take one of the
|
13591
|
+
following values:
|
13592
|
+
- OUTAGE: The Interconnect may be completely out of service for some or all of the
|
13593
|
+
specified window.
|
13594
|
+
- PARTIAL_OUTAGE: Some circuits comprising the Interconnect as a whole should remain
|
13595
|
+
up, but with reduced bandwidth.
|
13596
|
+
"""
|
13597
|
+
return pulumi.get(self, "issue_type")
|
13598
|
+
|
13599
|
+
@issue_type.setter
|
13600
|
+
def issue_type(self, value: Optional[pulumi.Input[str]]):
|
13601
|
+
pulumi.set(self, "issue_type", value)
|
13602
|
+
|
13603
|
+
@property
|
13604
|
+
@pulumi.getter
|
13605
|
+
def name(self) -> Optional[pulumi.Input[str]]:
|
13606
|
+
"""
|
13607
|
+
Name of the resource. Provided by the client when the resource is created. The name must be
|
13608
|
+
1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters
|
13609
|
+
long and match the regular expression `a-z?` which means the first
|
13610
|
+
character must be a lowercase letter, and all following characters must be a dash,
|
13611
|
+
lowercase letter, or digit, except the last character, which cannot be a dash.
|
13612
|
+
"""
|
13613
|
+
return pulumi.get(self, "name")
|
13614
|
+
|
13615
|
+
@name.setter
|
13616
|
+
def name(self, value: Optional[pulumi.Input[str]]):
|
13617
|
+
pulumi.set(self, "name", value)
|
13618
|
+
|
13619
|
+
@property
|
13620
|
+
@pulumi.getter
|
13621
|
+
def source(self) -> Optional[pulumi.Input[str]]:
|
13622
|
+
"""
|
13623
|
+
(Output)
|
13624
|
+
The party that generated this notification. Note that the value of NSRC_GOOGLE has been
|
13625
|
+
deprecated in favor of GOOGLE. Can take the following value:
|
13626
|
+
- GOOGLE: this notification as generated by Google.
|
13627
|
+
"""
|
13628
|
+
return pulumi.get(self, "source")
|
13629
|
+
|
13630
|
+
@source.setter
|
13631
|
+
def source(self, value: Optional[pulumi.Input[str]]):
|
13632
|
+
pulumi.set(self, "source", value)
|
13633
|
+
|
13634
|
+
@property
|
13635
|
+
@pulumi.getter(name="startTime")
|
13636
|
+
def start_time(self) -> Optional[pulumi.Input[str]]:
|
13637
|
+
"""
|
13638
|
+
(Output)
|
13639
|
+
Scheduled start time for the outage (milliseconds since Unix epoch).
|
13640
|
+
"""
|
13641
|
+
return pulumi.get(self, "start_time")
|
13642
|
+
|
13643
|
+
@start_time.setter
|
13644
|
+
def start_time(self, value: Optional[pulumi.Input[str]]):
|
13645
|
+
pulumi.set(self, "start_time", value)
|
13646
|
+
|
13647
|
+
@property
|
13648
|
+
@pulumi.getter
|
13649
|
+
def state(self) -> Optional[pulumi.Input[str]]:
|
13650
|
+
"""
|
13651
|
+
(Output)
|
13652
|
+
State of this notification. Note that the versions of this enum prefixed with "NS_" have
|
13653
|
+
been deprecated in favor of the unprefixed values. Can take one of the following values:
|
13654
|
+
- ACTIVE: This outage notification is active. The event could be in the past, present,
|
13655
|
+
or future. See startTime and endTime for scheduling.
|
13656
|
+
- CANCELLED: The outage associated with this notification was cancelled before the
|
13657
|
+
outage was due to start.
|
13658
|
+
- COMPLETED: The outage associated with this notification is complete.
|
13659
|
+
"""
|
13660
|
+
return pulumi.get(self, "state")
|
13661
|
+
|
13662
|
+
@state.setter
|
13663
|
+
def state(self, value: Optional[pulumi.Input[str]]):
|
13664
|
+
pulumi.set(self, "state", value)
|
13665
|
+
|
13666
|
+
|
13667
|
+
@pulumi.input_type
|
13668
|
+
class InterconnectMacsecArgs:
|
13669
|
+
def __init__(__self__, *,
|
13670
|
+
pre_shared_keys: pulumi.Input[Sequence[pulumi.Input['InterconnectMacsecPreSharedKeyArgs']]]):
|
13671
|
+
"""
|
13672
|
+
:param pulumi.Input[Sequence[pulumi.Input['InterconnectMacsecPreSharedKeyArgs']]] pre_shared_keys: A keychain placeholder describing a set of named key objects along with their
|
13673
|
+
start times. A MACsec CKN/CAK is generated for each key in the key chain.
|
13674
|
+
Google router automatically picks the key with the most recent startTime when establishing
|
13675
|
+
or re-establishing a MACsec secure link.
|
13676
|
+
Structure is documented below.
|
13677
|
+
"""
|
13678
|
+
pulumi.set(__self__, "pre_shared_keys", pre_shared_keys)
|
13679
|
+
|
13680
|
+
@property
|
13681
|
+
@pulumi.getter(name="preSharedKeys")
|
13682
|
+
def pre_shared_keys(self) -> pulumi.Input[Sequence[pulumi.Input['InterconnectMacsecPreSharedKeyArgs']]]:
|
13683
|
+
"""
|
13684
|
+
A keychain placeholder describing a set of named key objects along with their
|
13685
|
+
start times. A MACsec CKN/CAK is generated for each key in the key chain.
|
13686
|
+
Google router automatically picks the key with the most recent startTime when establishing
|
13687
|
+
or re-establishing a MACsec secure link.
|
13688
|
+
Structure is documented below.
|
13689
|
+
"""
|
13690
|
+
return pulumi.get(self, "pre_shared_keys")
|
13691
|
+
|
13692
|
+
@pre_shared_keys.setter
|
13693
|
+
def pre_shared_keys(self, value: pulumi.Input[Sequence[pulumi.Input['InterconnectMacsecPreSharedKeyArgs']]]):
|
13694
|
+
pulumi.set(self, "pre_shared_keys", value)
|
13695
|
+
|
13696
|
+
|
13697
|
+
@pulumi.input_type
|
13698
|
+
class InterconnectMacsecPreSharedKeyArgs:
|
13699
|
+
def __init__(__self__, *,
|
13700
|
+
name: pulumi.Input[str],
|
13701
|
+
fail_open: Optional[pulumi.Input[bool]] = None,
|
13702
|
+
start_time: Optional[pulumi.Input[str]] = None):
|
13703
|
+
"""
|
13704
|
+
:param pulumi.Input[str] name: A name for this pre-shared key. The name must be 1-63 characters long, and
|
13705
|
+
comply with RFC1035. Specifically, the name must be 1-63 characters long and match
|
13706
|
+
the regular expression `a-z?` which means the first character
|
13707
|
+
must be a lowercase letter, and all following characters must be a dash, lowercase
|
13708
|
+
letter, or digit, except the last character, which cannot be a dash.
|
13709
|
+
:param pulumi.Input[bool] fail_open: If set to true, the Interconnect connection is configured with a should-secure
|
13710
|
+
MACsec security policy, that allows the Google router to fallback to cleartext
|
13711
|
+
traffic if the MKA session cannot be established. By default, the Interconnect
|
13712
|
+
connection is configured with a must-secure security policy that drops all traffic
|
13713
|
+
if the MKA session cannot be established with your router.
|
13714
|
+
:param pulumi.Input[str] start_time: A RFC3339 timestamp on or after which the key is valid. startTime can be in the
|
13715
|
+
future. If the keychain has a single key, startTime can be omitted. If the keychain
|
13716
|
+
has multiple keys, startTime is mandatory for each key. The start times of keys must
|
13717
|
+
be in increasing order. The start times of two consecutive keys must be at least 6
|
13718
|
+
hours apart.
|
13719
|
+
"""
|
13720
|
+
pulumi.set(__self__, "name", name)
|
13721
|
+
if fail_open is not None:
|
13722
|
+
pulumi.set(__self__, "fail_open", fail_open)
|
13723
|
+
if start_time is not None:
|
13724
|
+
pulumi.set(__self__, "start_time", start_time)
|
13725
|
+
|
13726
|
+
@property
|
13727
|
+
@pulumi.getter
|
13728
|
+
def name(self) -> pulumi.Input[str]:
|
13729
|
+
"""
|
13730
|
+
A name for this pre-shared key. The name must be 1-63 characters long, and
|
13731
|
+
comply with RFC1035. Specifically, the name must be 1-63 characters long and match
|
13732
|
+
the regular expression `a-z?` which means the first character
|
13733
|
+
must be a lowercase letter, and all following characters must be a dash, lowercase
|
13734
|
+
letter, or digit, except the last character, which cannot be a dash.
|
13735
|
+
"""
|
13736
|
+
return pulumi.get(self, "name")
|
13737
|
+
|
13738
|
+
@name.setter
|
13739
|
+
def name(self, value: pulumi.Input[str]):
|
13740
|
+
pulumi.set(self, "name", value)
|
13741
|
+
|
13742
|
+
@property
|
13743
|
+
@pulumi.getter(name="failOpen")
|
13744
|
+
def fail_open(self) -> Optional[pulumi.Input[bool]]:
|
13745
|
+
"""
|
13746
|
+
If set to true, the Interconnect connection is configured with a should-secure
|
13747
|
+
MACsec security policy, that allows the Google router to fallback to cleartext
|
13748
|
+
traffic if the MKA session cannot be established. By default, the Interconnect
|
13749
|
+
connection is configured with a must-secure security policy that drops all traffic
|
13750
|
+
if the MKA session cannot be established with your router.
|
13751
|
+
"""
|
13752
|
+
return pulumi.get(self, "fail_open")
|
13753
|
+
|
13754
|
+
@fail_open.setter
|
13755
|
+
def fail_open(self, value: Optional[pulumi.Input[bool]]):
|
13756
|
+
pulumi.set(self, "fail_open", value)
|
13757
|
+
|
13758
|
+
@property
|
13759
|
+
@pulumi.getter(name="startTime")
|
13760
|
+
def start_time(self) -> Optional[pulumi.Input[str]]:
|
13761
|
+
"""
|
13762
|
+
A RFC3339 timestamp on or after which the key is valid. startTime can be in the
|
13763
|
+
future. If the keychain has a single key, startTime can be omitted. If the keychain
|
13764
|
+
has multiple keys, startTime is mandatory for each key. The start times of keys must
|
13765
|
+
be in increasing order. The start times of two consecutive keys must be at least 6
|
13766
|
+
hours apart.
|
13767
|
+
"""
|
13768
|
+
return pulumi.get(self, "start_time")
|
13769
|
+
|
13770
|
+
@start_time.setter
|
13771
|
+
def start_time(self, value: Optional[pulumi.Input[str]]):
|
13772
|
+
pulumi.set(self, "start_time", value)
|
13773
|
+
|
13774
|
+
|
13253
13775
|
@pulumi.input_type
|
13254
13776
|
class MachineImageIamBindingConditionArgs:
|
13255
13777
|
def __init__(__self__, *,
|
@@ -20730,6 +21252,7 @@ class RegionInstanceTemplateSchedulingArgs:
|
|
20730
21252
|
min_node_cpus: Optional[pulumi.Input[int]] = None,
|
20731
21253
|
node_affinities: Optional[pulumi.Input[Sequence[pulumi.Input['RegionInstanceTemplateSchedulingNodeAffinityArgs']]]] = None,
|
20732
21254
|
on_host_maintenance: Optional[pulumi.Input[str]] = None,
|
21255
|
+
on_instance_stop_action: Optional[pulumi.Input['RegionInstanceTemplateSchedulingOnInstanceStopActionArgs']] = None,
|
20733
21256
|
preemptible: Optional[pulumi.Input[bool]] = None,
|
20734
21257
|
provisioning_model: Optional[pulumi.Input[str]] = None):
|
20735
21258
|
"""
|
@@ -20751,6 +21274,7 @@ class RegionInstanceTemplateSchedulingArgs:
|
|
20751
21274
|
Structure documented below.
|
20752
21275
|
:param pulumi.Input[str] on_host_maintenance: Defines the maintenance behavior for this
|
20753
21276
|
instance.
|
21277
|
+
:param pulumi.Input['RegionInstanceTemplateSchedulingOnInstanceStopActionArgs'] on_instance_stop_action: Defines the behaviour for instances with the instance_termination_action.
|
20754
21278
|
:param pulumi.Input[bool] preemptible: Allows instance to be preempted. This defaults to
|
20755
21279
|
false. Read more on this
|
20756
21280
|
[here](https://cloud.google.com/compute/docs/instances/preemptible).
|
@@ -20775,6 +21299,8 @@ class RegionInstanceTemplateSchedulingArgs:
|
|
20775
21299
|
pulumi.set(__self__, "node_affinities", node_affinities)
|
20776
21300
|
if on_host_maintenance is not None:
|
20777
21301
|
pulumi.set(__self__, "on_host_maintenance", on_host_maintenance)
|
21302
|
+
if on_instance_stop_action is not None:
|
21303
|
+
pulumi.set(__self__, "on_instance_stop_action", on_instance_stop_action)
|
20778
21304
|
if preemptible is not None:
|
20779
21305
|
pulumi.set(__self__, "preemptible", preemptible)
|
20780
21306
|
if provisioning_model is not None:
|
@@ -20886,6 +21412,18 @@ class RegionInstanceTemplateSchedulingArgs:
|
|
20886
21412
|
def on_host_maintenance(self, value: Optional[pulumi.Input[str]]):
|
20887
21413
|
pulumi.set(self, "on_host_maintenance", value)
|
20888
21414
|
|
21415
|
+
@property
|
21416
|
+
@pulumi.getter(name="onInstanceStopAction")
|
21417
|
+
def on_instance_stop_action(self) -> Optional[pulumi.Input['RegionInstanceTemplateSchedulingOnInstanceStopActionArgs']]:
|
21418
|
+
"""
|
21419
|
+
Defines the behaviour for instances with the instance_termination_action.
|
21420
|
+
"""
|
21421
|
+
return pulumi.get(self, "on_instance_stop_action")
|
21422
|
+
|
21423
|
+
@on_instance_stop_action.setter
|
21424
|
+
def on_instance_stop_action(self, value: Optional[pulumi.Input['RegionInstanceTemplateSchedulingOnInstanceStopActionArgs']]):
|
21425
|
+
pulumi.set(self, "on_instance_stop_action", value)
|
21426
|
+
|
20889
21427
|
@property
|
20890
21428
|
@pulumi.getter
|
20891
21429
|
def preemptible(self) -> Optional[pulumi.Input[bool]]:
|
@@ -21051,13 +21589,36 @@ class RegionInstanceTemplateSchedulingNodeAffinityArgs:
|
|
21051
21589
|
pulumi.set(self, "operator", value)
|
21052
21590
|
|
21053
21591
|
@property
|
21054
|
-
@pulumi.getter
|
21055
|
-
def values(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
|
21056
|
-
return pulumi.get(self, "values")
|
21592
|
+
@pulumi.getter
|
21593
|
+
def values(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
|
21594
|
+
return pulumi.get(self, "values")
|
21595
|
+
|
21596
|
+
@values.setter
|
21597
|
+
def values(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]):
|
21598
|
+
pulumi.set(self, "values", value)
|
21599
|
+
|
21600
|
+
|
21601
|
+
@pulumi.input_type
|
21602
|
+
class RegionInstanceTemplateSchedulingOnInstanceStopActionArgs:
|
21603
|
+
def __init__(__self__, *,
|
21604
|
+
discard_local_ssd: Optional[pulumi.Input[bool]] = None):
|
21605
|
+
"""
|
21606
|
+
:param pulumi.Input[bool] discard_local_ssd: If true, the contents of any attached Local SSD disks will be discarded.
|
21607
|
+
"""
|
21608
|
+
if discard_local_ssd is not None:
|
21609
|
+
pulumi.set(__self__, "discard_local_ssd", discard_local_ssd)
|
21610
|
+
|
21611
|
+
@property
|
21612
|
+
@pulumi.getter(name="discardLocalSsd")
|
21613
|
+
def discard_local_ssd(self) -> Optional[pulumi.Input[bool]]:
|
21614
|
+
"""
|
21615
|
+
If true, the contents of any attached Local SSD disks will be discarded.
|
21616
|
+
"""
|
21617
|
+
return pulumi.get(self, "discard_local_ssd")
|
21057
21618
|
|
21058
|
-
@
|
21059
|
-
def
|
21060
|
-
pulumi.set(self, "
|
21619
|
+
@discard_local_ssd.setter
|
21620
|
+
def discard_local_ssd(self, value: Optional[pulumi.Input[bool]]):
|
21621
|
+
pulumi.set(self, "discard_local_ssd", value)
|
21061
21622
|
|
21062
21623
|
|
21063
21624
|
@pulumi.input_type
|
@@ -22142,17 +22703,22 @@ class RegionSecurityPolicyDdosProtectionConfigArgs:
|
|
22142
22703
|
class RegionSecurityPolicyRuleMatchArgs:
|
22143
22704
|
def __init__(__self__, *,
|
22144
22705
|
config: Optional[pulumi.Input['RegionSecurityPolicyRuleMatchConfigArgs']] = None,
|
22706
|
+
expr: Optional[pulumi.Input['RegionSecurityPolicyRuleMatchExprArgs']] = None,
|
22145
22707
|
versioned_expr: Optional[pulumi.Input[str]] = None):
|
22146
22708
|
"""
|
22147
22709
|
:param pulumi.Input['RegionSecurityPolicyRuleMatchConfigArgs'] config: The configuration options available when specifying versionedExpr.
|
22148
22710
|
This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified.
|
22149
22711
|
Structure is documented below.
|
22712
|
+
:param pulumi.Input['RegionSecurityPolicyRuleMatchExprArgs'] expr: 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.
|
22713
|
+
Structure is documented below.
|
22150
22714
|
:param pulumi.Input[str] versioned_expr: Preconfigured versioned expression. If this field is specified, config must also be specified.
|
22151
22715
|
Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config.
|
22152
22716
|
Possible values are: `SRC_IPS_V1`.
|
22153
22717
|
"""
|
22154
22718
|
if config is not None:
|
22155
22719
|
pulumi.set(__self__, "config", config)
|
22720
|
+
if expr is not None:
|
22721
|
+
pulumi.set(__self__, "expr", expr)
|
22156
22722
|
if versioned_expr is not None:
|
22157
22723
|
pulumi.set(__self__, "versioned_expr", versioned_expr)
|
22158
22724
|
|
@@ -22170,6 +22736,19 @@ class RegionSecurityPolicyRuleMatchArgs:
|
|
22170
22736
|
def config(self, value: Optional[pulumi.Input['RegionSecurityPolicyRuleMatchConfigArgs']]):
|
22171
22737
|
pulumi.set(self, "config", value)
|
22172
22738
|
|
22739
|
+
@property
|
22740
|
+
@pulumi.getter
|
22741
|
+
def expr(self) -> Optional[pulumi.Input['RegionSecurityPolicyRuleMatchExprArgs']]:
|
22742
|
+
"""
|
22743
|
+
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.
|
22744
|
+
Structure is documented below.
|
22745
|
+
"""
|
22746
|
+
return pulumi.get(self, "expr")
|
22747
|
+
|
22748
|
+
@expr.setter
|
22749
|
+
def expr(self, value: Optional[pulumi.Input['RegionSecurityPolicyRuleMatchExprArgs']]):
|
22750
|
+
pulumi.set(self, "expr", value)
|
22751
|
+
|
22173
22752
|
@property
|
22174
22753
|
@pulumi.getter(name="versionedExpr")
|
22175
22754
|
def versioned_expr(self) -> Optional[pulumi.Input[str]]:
|
@@ -22208,6 +22787,28 @@ class RegionSecurityPolicyRuleMatchConfigArgs:
|
|
22208
22787
|
pulumi.set(self, "src_ip_ranges", value)
|
22209
22788
|
|
22210
22789
|
|
22790
|
+
@pulumi.input_type
|
22791
|
+
class RegionSecurityPolicyRuleMatchExprArgs:
|
22792
|
+
def __init__(__self__, *,
|
22793
|
+
expression: pulumi.Input[str]):
|
22794
|
+
"""
|
22795
|
+
:param pulumi.Input[str] expression: 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.
|
22796
|
+
"""
|
22797
|
+
pulumi.set(__self__, "expression", expression)
|
22798
|
+
|
22799
|
+
@property
|
22800
|
+
@pulumi.getter
|
22801
|
+
def expression(self) -> pulumi.Input[str]:
|
22802
|
+
"""
|
22803
|
+
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.
|
22804
|
+
"""
|
22805
|
+
return pulumi.get(self, "expression")
|
22806
|
+
|
22807
|
+
@expression.setter
|
22808
|
+
def expression(self, value: pulumi.Input[str]):
|
22809
|
+
pulumi.set(self, "expression", value)
|
22810
|
+
|
22811
|
+
|
22211
22812
|
@pulumi.input_type
|
22212
22813
|
class RegionSecurityPolicyRuleNetworkMatchArgs:
|
22213
22814
|
def __init__(__self__, *,
|
@@ -29803,6 +30404,7 @@ class SecurityPolicyAdvancedOptionsConfigArgs:
|
|
29803
30404
|
:param pulumi.Input[str] json_parsing: Whether or not to JSON parse the payload body. Defaults to `DISABLED`.
|
29804
30405
|
* `DISABLED` - Don't parse JSON payloads in POST bodies.
|
29805
30406
|
* `STANDARD` - Parse JSON payloads in POST bodies.
|
30407
|
+
* `STANDARD_WITH_GRAPHQL` - Parse JSON and GraphQL payloads in POST bodies.
|
29806
30408
|
:param pulumi.Input[str] log_level: Log level to use. Defaults to `NORMAL`.
|
29807
30409
|
* `NORMAL` - Normal log level.
|
29808
30410
|
* `VERBOSE` - Verbose log level.
|
@@ -29837,6 +30439,7 @@ class SecurityPolicyAdvancedOptionsConfigArgs:
|
|
29837
30439
|
Whether or not to JSON parse the payload body. Defaults to `DISABLED`.
|
29838
30440
|
* `DISABLED` - Don't parse JSON payloads in POST bodies.
|
29839
30441
|
* `STANDARD` - Parse JSON payloads in POST bodies.
|
30442
|
+
* `STANDARD_WITH_GRAPHQL` - Parse JSON and GraphQL payloads in POST bodies.
|
29840
30443
|
"""
|
29841
30444
|
return pulumi.get(self, "json_parsing")
|
29842
30445
|
|
@@ -30597,102 +31200,73 @@ class SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs:
|
|
30597
31200
|
@pulumi.input_type
|
30598
31201
|
class SecurityPolicyRuleRateLimitOptionsArgs:
|
30599
31202
|
def __init__(__self__, *,
|
30600
|
-
conform_action: pulumi.Input[str],
|
30601
|
-
exceed_action: pulumi.Input[str],
|
30602
|
-
rate_limit_threshold: pulumi.Input['SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs'],
|
30603
31203
|
ban_duration_sec: Optional[pulumi.Input[int]] = None,
|
30604
31204
|
ban_threshold: Optional[pulumi.Input['SecurityPolicyRuleRateLimitOptionsBanThresholdArgs']] = None,
|
31205
|
+
conform_action: Optional[pulumi.Input[str]] = None,
|
30605
31206
|
enforce_on_key: Optional[pulumi.Input[str]] = None,
|
30606
31207
|
enforce_on_key_configs: Optional[pulumi.Input[Sequence[pulumi.Input['SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs']]]] = None,
|
30607
31208
|
enforce_on_key_name: Optional[pulumi.Input[str]] = None,
|
30608
|
-
|
31209
|
+
exceed_action: Optional[pulumi.Input[str]] = None,
|
31210
|
+
exceed_redirect_options: Optional[pulumi.Input['SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs']] = None,
|
31211
|
+
rate_limit_threshold: Optional[pulumi.Input['SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs']] = None):
|
30609
31212
|
"""
|
30610
|
-
:param pulumi.Input[
|
30611
|
-
:param pulumi.Input[str] exceed_action: When a request is denied, returns the HTTP response code specified.
|
30612
|
-
Valid options are `deny()` where valid values for status are 403, 404, 429, and 502.
|
30613
|
-
:param pulumi.Input['SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs'] rate_limit_threshold: Threshold at which to begin ratelimiting. Structure is documented below.
|
30614
|
-
:param pulumi.Input[int] ban_duration_sec: Can only be specified if the `action` for the rule is `rate_based_ban`.
|
31213
|
+
:param pulumi.Input[int] ban_duration_sec: Can only be specified if the action for the rule is "rate_based_ban".
|
30615
31214
|
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.
|
30616
|
-
:param pulumi.Input['SecurityPolicyRuleRateLimitOptionsBanThresholdArgs'] ban_threshold: Can only be specified if the
|
30617
|
-
If specified, the key will be banned for the configured
|
30618
|
-
|
30619
|
-
:param pulumi.Input[str]
|
30620
|
-
|
30621
|
-
|
30622
|
-
*
|
30623
|
-
*
|
30624
|
-
*
|
30625
|
-
*
|
30626
|
-
*
|
30627
|
-
*
|
30628
|
-
*
|
30629
|
-
|
30630
|
-
|
30631
|
-
|
31215
|
+
:param pulumi.Input['SecurityPolicyRuleRateLimitOptionsBanThresholdArgs'] ban_threshold: Can only be specified if the action for the rule is "rate_based_ban".
|
31216
|
+
If specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'.
|
31217
|
+
Structure is documented below.
|
31218
|
+
:param pulumi.Input[str] conform_action: Action to take for requests that are under the configured rate limit threshold.
|
31219
|
+
Valid option is "allow" only.
|
31220
|
+
:param pulumi.Input[str] enforce_on_key: Determines the key to enforce the rateLimitThreshold on. Possible values are:
|
31221
|
+
* 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.
|
31222
|
+
* IP: The source IP address of the request is the key. Each IP has this limit enforced separately.
|
31223
|
+
* 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.
|
31224
|
+
* 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.
|
31225
|
+
* 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.
|
31226
|
+
* HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes.
|
31227
|
+
* 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.
|
31228
|
+
* REGION_CODE: The country/region from which the request originates.
|
31229
|
+
* 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.
|
31230
|
+
* 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.
|
31231
|
+
Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`.
|
31232
|
+
:param pulumi.Input[Sequence[pulumi.Input['SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs']]] enforce_on_key_configs: If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced.
|
31233
|
+
You can specify up to 3 enforceOnKeyConfigs.
|
31234
|
+
If enforceOnKeyConfigs is specified, enforceOnKey must not be specified.
|
31235
|
+
Structure is documented below.
|
30632
31236
|
:param pulumi.Input[str] enforce_on_key_name: Rate limit key name applicable only for the following key types:
|
30633
|
-
|
30634
|
-
|
30635
|
-
|
30636
|
-
|
31237
|
+
HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value.
|
31238
|
+
HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.
|
31239
|
+
:param pulumi.Input[str] exceed_action: 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.
|
31240
|
+
Valid options are deny(STATUS), where valid values for STATUS are 403, 404, 429, and 502.
|
31241
|
+
:param pulumi.Input['SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs'] exceed_redirect_options: 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.
|
31242
|
+
Structure is documented below.
|
31243
|
+
:param pulumi.Input['SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs'] rate_limit_threshold: Threshold at which to begin ratelimiting.
|
31244
|
+
Structure is documented below.
|
30637
31245
|
"""
|
30638
|
-
pulumi.set(__self__, "conform_action", conform_action)
|
30639
|
-
pulumi.set(__self__, "exceed_action", exceed_action)
|
30640
|
-
pulumi.set(__self__, "rate_limit_threshold", rate_limit_threshold)
|
30641
31246
|
if ban_duration_sec is not None:
|
30642
31247
|
pulumi.set(__self__, "ban_duration_sec", ban_duration_sec)
|
30643
31248
|
if ban_threshold is not None:
|
30644
31249
|
pulumi.set(__self__, "ban_threshold", ban_threshold)
|
31250
|
+
if conform_action is not None:
|
31251
|
+
pulumi.set(__self__, "conform_action", conform_action)
|
30645
31252
|
if enforce_on_key is not None:
|
30646
31253
|
pulumi.set(__self__, "enforce_on_key", enforce_on_key)
|
30647
31254
|
if enforce_on_key_configs is not None:
|
30648
31255
|
pulumi.set(__self__, "enforce_on_key_configs", enforce_on_key_configs)
|
30649
31256
|
if enforce_on_key_name is not None:
|
30650
31257
|
pulumi.set(__self__, "enforce_on_key_name", enforce_on_key_name)
|
31258
|
+
if exceed_action is not None:
|
31259
|
+
pulumi.set(__self__, "exceed_action", exceed_action)
|
30651
31260
|
if exceed_redirect_options is not None:
|
30652
31261
|
pulumi.set(__self__, "exceed_redirect_options", exceed_redirect_options)
|
30653
|
-
|
30654
|
-
|
30655
|
-
@pulumi.getter(name="conformAction")
|
30656
|
-
def conform_action(self) -> pulumi.Input[str]:
|
30657
|
-
"""
|
30658
|
-
Action to take for requests that are under the configured rate limit threshold. Valid option is `allow` only.
|
30659
|
-
"""
|
30660
|
-
return pulumi.get(self, "conform_action")
|
30661
|
-
|
30662
|
-
@conform_action.setter
|
30663
|
-
def conform_action(self, value: pulumi.Input[str]):
|
30664
|
-
pulumi.set(self, "conform_action", value)
|
30665
|
-
|
30666
|
-
@property
|
30667
|
-
@pulumi.getter(name="exceedAction")
|
30668
|
-
def exceed_action(self) -> pulumi.Input[str]:
|
30669
|
-
"""
|
30670
|
-
When a request is denied, returns the HTTP response code specified.
|
30671
|
-
Valid options are `deny()` where valid values for status are 403, 404, 429, and 502.
|
30672
|
-
"""
|
30673
|
-
return pulumi.get(self, "exceed_action")
|
30674
|
-
|
30675
|
-
@exceed_action.setter
|
30676
|
-
def exceed_action(self, value: pulumi.Input[str]):
|
30677
|
-
pulumi.set(self, "exceed_action", value)
|
30678
|
-
|
30679
|
-
@property
|
30680
|
-
@pulumi.getter(name="rateLimitThreshold")
|
30681
|
-
def rate_limit_threshold(self) -> pulumi.Input['SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs']:
|
30682
|
-
"""
|
30683
|
-
Threshold at which to begin ratelimiting. Structure is documented below.
|
30684
|
-
"""
|
30685
|
-
return pulumi.get(self, "rate_limit_threshold")
|
30686
|
-
|
30687
|
-
@rate_limit_threshold.setter
|
30688
|
-
def rate_limit_threshold(self, value: pulumi.Input['SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs']):
|
30689
|
-
pulumi.set(self, "rate_limit_threshold", value)
|
31262
|
+
if rate_limit_threshold is not None:
|
31263
|
+
pulumi.set(__self__, "rate_limit_threshold", rate_limit_threshold)
|
30690
31264
|
|
30691
31265
|
@property
|
30692
31266
|
@pulumi.getter(name="banDurationSec")
|
30693
31267
|
def ban_duration_sec(self) -> Optional[pulumi.Input[int]]:
|
30694
31268
|
"""
|
30695
|
-
Can only be specified if the
|
31269
|
+
Can only be specified if the action for the rule is "rate_based_ban".
|
30696
31270
|
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.
|
30697
31271
|
"""
|
30698
31272
|
return pulumi.get(self, "ban_duration_sec")
|
@@ -30705,9 +31279,9 @@ class SecurityPolicyRuleRateLimitOptionsArgs:
|
|
30705
31279
|
@pulumi.getter(name="banThreshold")
|
30706
31280
|
def ban_threshold(self) -> Optional[pulumi.Input['SecurityPolicyRuleRateLimitOptionsBanThresholdArgs']]:
|
30707
31281
|
"""
|
30708
|
-
Can only be specified if the
|
30709
|
-
If specified, the key will be banned for the configured
|
30710
|
-
|
31282
|
+
Can only be specified if the action for the rule is "rate_based_ban".
|
31283
|
+
If specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'.
|
31284
|
+
Structure is documented below.
|
30711
31285
|
"""
|
30712
31286
|
return pulumi.get(self, "ban_threshold")
|
30713
31287
|
|
@@ -30715,20 +31289,35 @@ class SecurityPolicyRuleRateLimitOptionsArgs:
|
|
30715
31289
|
def ban_threshold(self, value: Optional[pulumi.Input['SecurityPolicyRuleRateLimitOptionsBanThresholdArgs']]):
|
30716
31290
|
pulumi.set(self, "ban_threshold", value)
|
30717
31291
|
|
31292
|
+
@property
|
31293
|
+
@pulumi.getter(name="conformAction")
|
31294
|
+
def conform_action(self) -> Optional[pulumi.Input[str]]:
|
31295
|
+
"""
|
31296
|
+
Action to take for requests that are under the configured rate limit threshold.
|
31297
|
+
Valid option is "allow" only.
|
31298
|
+
"""
|
31299
|
+
return pulumi.get(self, "conform_action")
|
31300
|
+
|
31301
|
+
@conform_action.setter
|
31302
|
+
def conform_action(self, value: Optional[pulumi.Input[str]]):
|
31303
|
+
pulumi.set(self, "conform_action", value)
|
31304
|
+
|
30718
31305
|
@property
|
30719
31306
|
@pulumi.getter(name="enforceOnKey")
|
30720
31307
|
def enforce_on_key(self) -> Optional[pulumi.Input[str]]:
|
30721
31308
|
"""
|
30722
|
-
Determines the key to enforce the
|
30723
|
-
|
30724
|
-
*
|
30725
|
-
*
|
30726
|
-
*
|
30727
|
-
*
|
30728
|
-
*
|
30729
|
-
*
|
30730
|
-
*
|
30731
|
-
*
|
31309
|
+
Determines the key to enforce the rateLimitThreshold on. Possible values are:
|
31310
|
+
* 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.
|
31311
|
+
* IP: The source IP address of the request is the key. Each IP has this limit enforced separately.
|
31312
|
+
* 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.
|
31313
|
+
* 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.
|
31314
|
+
* 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.
|
31315
|
+
* HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes.
|
31316
|
+
* 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.
|
31317
|
+
* REGION_CODE: The country/region from which the request originates.
|
31318
|
+
* 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.
|
31319
|
+
* 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.
|
31320
|
+
Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`.
|
30732
31321
|
"""
|
30733
31322
|
return pulumi.get(self, "enforce_on_key")
|
30734
31323
|
|
@@ -30740,9 +31329,10 @@ class SecurityPolicyRuleRateLimitOptionsArgs:
|
|
30740
31329
|
@pulumi.getter(name="enforceOnKeyConfigs")
|
30741
31330
|
def enforce_on_key_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs']]]]:
|
30742
31331
|
"""
|
30743
|
-
If specified, any combination of values of
|
30744
|
-
|
30745
|
-
|
31332
|
+
If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced.
|
31333
|
+
You can specify up to 3 enforceOnKeyConfigs.
|
31334
|
+
If enforceOnKeyConfigs is specified, enforceOnKey must not be specified.
|
31335
|
+
Structure is documented below.
|
30746
31336
|
"""
|
30747
31337
|
return pulumi.get(self, "enforce_on_key_configs")
|
30748
31338
|
|
@@ -30755,9 +31345,8 @@ class SecurityPolicyRuleRateLimitOptionsArgs:
|
|
30755
31345
|
def enforce_on_key_name(self) -> Optional[pulumi.Input[str]]:
|
30756
31346
|
"""
|
30757
31347
|
Rate limit key name applicable only for the following key types:
|
30758
|
-
|
30759
|
-
|
30760
|
-
* `HTTP_COOKIE` -- Name of the HTTP cookie whose value is taken as the key value.
|
31348
|
+
HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value.
|
31349
|
+
HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.
|
30761
31350
|
"""
|
30762
31351
|
return pulumi.get(self, "enforce_on_key_name")
|
30763
31352
|
|
@@ -30765,11 +31354,25 @@ class SecurityPolicyRuleRateLimitOptionsArgs:
|
|
30765
31354
|
def enforce_on_key_name(self, value: Optional[pulumi.Input[str]]):
|
30766
31355
|
pulumi.set(self, "enforce_on_key_name", value)
|
30767
31356
|
|
31357
|
+
@property
|
31358
|
+
@pulumi.getter(name="exceedAction")
|
31359
|
+
def exceed_action(self) -> Optional[pulumi.Input[str]]:
|
31360
|
+
"""
|
31361
|
+
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.
|
31362
|
+
Valid options are deny(STATUS), where valid values for STATUS are 403, 404, 429, and 502.
|
31363
|
+
"""
|
31364
|
+
return pulumi.get(self, "exceed_action")
|
31365
|
+
|
31366
|
+
@exceed_action.setter
|
31367
|
+
def exceed_action(self, value: Optional[pulumi.Input[str]]):
|
31368
|
+
pulumi.set(self, "exceed_action", value)
|
31369
|
+
|
30768
31370
|
@property
|
30769
31371
|
@pulumi.getter(name="exceedRedirectOptions")
|
30770
31372
|
def exceed_redirect_options(self) -> Optional[pulumi.Input['SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs']]:
|
30771
31373
|
"""
|
30772
|
-
Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect.
|
31374
|
+
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.
|
31375
|
+
Structure is documented below.
|
30773
31376
|
"""
|
30774
31377
|
return pulumi.get(self, "exceed_redirect_options")
|
30775
31378
|
|
@@ -30777,41 +31380,56 @@ class SecurityPolicyRuleRateLimitOptionsArgs:
|
|
30777
31380
|
def exceed_redirect_options(self, value: Optional[pulumi.Input['SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs']]):
|
30778
31381
|
pulumi.set(self, "exceed_redirect_options", value)
|
30779
31382
|
|
31383
|
+
@property
|
31384
|
+
@pulumi.getter(name="rateLimitThreshold")
|
31385
|
+
def rate_limit_threshold(self) -> Optional[pulumi.Input['SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs']]:
|
31386
|
+
"""
|
31387
|
+
Threshold at which to begin ratelimiting.
|
31388
|
+
Structure is documented below.
|
31389
|
+
"""
|
31390
|
+
return pulumi.get(self, "rate_limit_threshold")
|
31391
|
+
|
31392
|
+
@rate_limit_threshold.setter
|
31393
|
+
def rate_limit_threshold(self, value: Optional[pulumi.Input['SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs']]):
|
31394
|
+
pulumi.set(self, "rate_limit_threshold", value)
|
31395
|
+
|
30780
31396
|
|
30781
31397
|
@pulumi.input_type
|
30782
31398
|
class SecurityPolicyRuleRateLimitOptionsBanThresholdArgs:
|
30783
31399
|
def __init__(__self__, *,
|
30784
|
-
count: pulumi.Input[int],
|
30785
|
-
interval_sec: pulumi.Input[int]):
|
31400
|
+
count: Optional[pulumi.Input[int]] = None,
|
31401
|
+
interval_sec: Optional[pulumi.Input[int]] = None):
|
30786
31402
|
"""
|
30787
31403
|
:param pulumi.Input[int] count: Number of HTTP(S) requests for calculating the threshold.
|
30788
31404
|
:param pulumi.Input[int] interval_sec: Interval over which the threshold is computed.
|
30789
31405
|
"""
|
30790
|
-
|
30791
|
-
|
31406
|
+
if count is not None:
|
31407
|
+
pulumi.set(__self__, "count", count)
|
31408
|
+
if interval_sec is not None:
|
31409
|
+
pulumi.set(__self__, "interval_sec", interval_sec)
|
30792
31410
|
|
30793
31411
|
@property
|
30794
31412
|
@pulumi.getter
|
30795
|
-
def count(self) -> pulumi.Input[int]:
|
31413
|
+
def count(self) -> Optional[pulumi.Input[int]]:
|
30796
31414
|
"""
|
30797
31415
|
Number of HTTP(S) requests for calculating the threshold.
|
30798
31416
|
"""
|
30799
31417
|
return pulumi.get(self, "count")
|
30800
31418
|
|
30801
31419
|
@count.setter
|
30802
|
-
def count(self, value: pulumi.Input[int]):
|
31420
|
+
def count(self, value: Optional[pulumi.Input[int]]):
|
30803
31421
|
pulumi.set(self, "count", value)
|
30804
31422
|
|
30805
31423
|
@property
|
30806
31424
|
@pulumi.getter(name="intervalSec")
|
30807
|
-
def interval_sec(self) -> pulumi.Input[int]:
|
31425
|
+
def interval_sec(self) -> Optional[pulumi.Input[int]]:
|
30808
31426
|
"""
|
30809
31427
|
Interval over which the threshold is computed.
|
30810
31428
|
"""
|
30811
31429
|
return pulumi.get(self, "interval_sec")
|
30812
31430
|
|
30813
31431
|
@interval_sec.setter
|
30814
|
-
def interval_sec(self, value: pulumi.Input[int]):
|
31432
|
+
def interval_sec(self, value: Optional[pulumi.Input[int]]):
|
30815
31433
|
pulumi.set(self, "interval_sec", value)
|
30816
31434
|
|
30817
31435
|
|
@@ -30822,19 +31440,20 @@ class SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs:
|
|
30822
31440
|
enforce_on_key_type: Optional[pulumi.Input[str]] = None):
|
30823
31441
|
"""
|
30824
31442
|
:param pulumi.Input[str] enforce_on_key_name: Rate limit key name applicable only for the following key types:
|
30825
|
-
|
30826
|
-
|
30827
|
-
|
30828
|
-
|
30829
|
-
|
30830
|
-
*
|
30831
|
-
*
|
30832
|
-
*
|
30833
|
-
*
|
30834
|
-
*
|
30835
|
-
*
|
30836
|
-
*
|
30837
|
-
*
|
31443
|
+
HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value.
|
31444
|
+
HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.
|
31445
|
+
:param pulumi.Input[str] enforce_on_key_type: Determines the key to enforce the rateLimitThreshold on. Possible values are:
|
31446
|
+
* 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.
|
31447
|
+
* IP: The source IP address of the request is the key. Each IP has this limit enforced separately.
|
31448
|
+
* 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.
|
31449
|
+
* 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.
|
31450
|
+
* 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.
|
31451
|
+
* HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes.
|
31452
|
+
* 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.
|
31453
|
+
* REGION_CODE: The country/region from which the request originates.
|
31454
|
+
* 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.
|
31455
|
+
* 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.
|
31456
|
+
Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`.
|
30838
31457
|
"""
|
30839
31458
|
if enforce_on_key_name is not None:
|
30840
31459
|
pulumi.set(__self__, "enforce_on_key_name", enforce_on_key_name)
|
@@ -30846,9 +31465,8 @@ class SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs:
|
|
30846
31465
|
def enforce_on_key_name(self) -> Optional[pulumi.Input[str]]:
|
30847
31466
|
"""
|
30848
31467
|
Rate limit key name applicable only for the following key types:
|
30849
|
-
|
30850
|
-
|
30851
|
-
* `HTTP_COOKIE` -- Name of the HTTP cookie whose value is taken as the key value.
|
31468
|
+
HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value.
|
31469
|
+
HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.
|
30852
31470
|
"""
|
30853
31471
|
return pulumi.get(self, "enforce_on_key_name")
|
30854
31472
|
|
@@ -30860,16 +31478,18 @@ class SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs:
|
|
30860
31478
|
@pulumi.getter(name="enforceOnKeyType")
|
30861
31479
|
def enforce_on_key_type(self) -> Optional[pulumi.Input[str]]:
|
30862
31480
|
"""
|
30863
|
-
Determines the key to enforce the
|
30864
|
-
|
30865
|
-
*
|
30866
|
-
*
|
30867
|
-
*
|
30868
|
-
*
|
30869
|
-
*
|
30870
|
-
*
|
30871
|
-
*
|
30872
|
-
*
|
31481
|
+
Determines the key to enforce the rateLimitThreshold on. Possible values are:
|
31482
|
+
* 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.
|
31483
|
+
* IP: The source IP address of the request is the key. Each IP has this limit enforced separately.
|
31484
|
+
* 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.
|
31485
|
+
* 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.
|
31486
|
+
* 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.
|
31487
|
+
* HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes.
|
31488
|
+
* 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.
|
31489
|
+
* REGION_CODE: The country/region from which the request originates.
|
31490
|
+
* 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.
|
31491
|
+
* 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.
|
31492
|
+
Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`.
|
30873
31493
|
"""
|
30874
31494
|
return pulumi.get(self, "enforce_on_key_type")
|
30875
31495
|
|
@@ -30881,75 +31501,78 @@ class SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs:
|
|
30881
31501
|
@pulumi.input_type
|
30882
31502
|
class SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs:
|
30883
31503
|
def __init__(__self__, *,
|
30884
|
-
|
30885
|
-
|
31504
|
+
target: Optional[pulumi.Input[str]] = None,
|
31505
|
+
type: Optional[pulumi.Input[str]] = None):
|
30886
31506
|
"""
|
31507
|
+
:param pulumi.Input[str] target: Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA.
|
30887
31508
|
:param pulumi.Input[str] type: Type of the redirect action.
|
30888
|
-
:param pulumi.Input[str] target: Target for the redirect action. This is required if the type is `EXTERNAL_302` and cannot be specified for `GOOGLE_RECAPTCHA`.
|
30889
31509
|
"""
|
30890
|
-
pulumi.set(__self__, "type", type)
|
30891
31510
|
if target is not None:
|
30892
31511
|
pulumi.set(__self__, "target", target)
|
31512
|
+
if type is not None:
|
31513
|
+
pulumi.set(__self__, "type", type)
|
30893
31514
|
|
30894
31515
|
@property
|
30895
31516
|
@pulumi.getter
|
30896
|
-
def
|
31517
|
+
def target(self) -> Optional[pulumi.Input[str]]:
|
30897
31518
|
"""
|
30898
|
-
|
31519
|
+
Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA.
|
30899
31520
|
"""
|
30900
|
-
return pulumi.get(self, "
|
31521
|
+
return pulumi.get(self, "target")
|
30901
31522
|
|
30902
|
-
@
|
30903
|
-
def
|
30904
|
-
pulumi.set(self, "
|
31523
|
+
@target.setter
|
31524
|
+
def target(self, value: Optional[pulumi.Input[str]]):
|
31525
|
+
pulumi.set(self, "target", value)
|
30905
31526
|
|
30906
31527
|
@property
|
30907
31528
|
@pulumi.getter
|
30908
|
-
def
|
31529
|
+
def type(self) -> Optional[pulumi.Input[str]]:
|
30909
31530
|
"""
|
30910
|
-
|
31531
|
+
Type of the redirect action.
|
30911
31532
|
"""
|
30912
|
-
return pulumi.get(self, "
|
31533
|
+
return pulumi.get(self, "type")
|
30913
31534
|
|
30914
|
-
@
|
30915
|
-
def
|
30916
|
-
pulumi.set(self, "
|
31535
|
+
@type.setter
|
31536
|
+
def type(self, value: Optional[pulumi.Input[str]]):
|
31537
|
+
pulumi.set(self, "type", value)
|
30917
31538
|
|
30918
31539
|
|
30919
31540
|
@pulumi.input_type
|
30920
31541
|
class SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs:
|
30921
31542
|
def __init__(__self__, *,
|
30922
|
-
count: pulumi.Input[int],
|
30923
|
-
interval_sec: pulumi.Input[int]):
|
31543
|
+
count: Optional[pulumi.Input[int]] = None,
|
31544
|
+
interval_sec: Optional[pulumi.Input[int]] = None):
|
30924
31545
|
"""
|
30925
31546
|
:param pulumi.Input[int] count: Number of HTTP(S) requests for calculating the threshold.
|
30926
31547
|
:param pulumi.Input[int] interval_sec: Interval over which the threshold is computed.
|
30927
31548
|
"""
|
30928
|
-
|
30929
|
-
|
31549
|
+
if count is not None:
|
31550
|
+
pulumi.set(__self__, "count", count)
|
31551
|
+
if interval_sec is not None:
|
31552
|
+
pulumi.set(__self__, "interval_sec", interval_sec)
|
30930
31553
|
|
30931
31554
|
@property
|
30932
31555
|
@pulumi.getter
|
30933
|
-
def count(self) -> pulumi.Input[int]:
|
31556
|
+
def count(self) -> Optional[pulumi.Input[int]]:
|
30934
31557
|
"""
|
30935
31558
|
Number of HTTP(S) requests for calculating the threshold.
|
30936
31559
|
"""
|
30937
31560
|
return pulumi.get(self, "count")
|
30938
31561
|
|
30939
31562
|
@count.setter
|
30940
|
-
def count(self, value: pulumi.Input[int]):
|
31563
|
+
def count(self, value: Optional[pulumi.Input[int]]):
|
30941
31564
|
pulumi.set(self, "count", value)
|
30942
31565
|
|
30943
31566
|
@property
|
30944
31567
|
@pulumi.getter(name="intervalSec")
|
30945
|
-
def interval_sec(self) -> pulumi.Input[int]:
|
31568
|
+
def interval_sec(self) -> Optional[pulumi.Input[int]]:
|
30946
31569
|
"""
|
30947
31570
|
Interval over which the threshold is computed.
|
30948
31571
|
"""
|
30949
31572
|
return pulumi.get(self, "interval_sec")
|
30950
31573
|
|
30951
31574
|
@interval_sec.setter
|
30952
|
-
def interval_sec(self, value: pulumi.Input[int]):
|
31575
|
+
def interval_sec(self, value: Optional[pulumi.Input[int]]):
|
30953
31576
|
pulumi.set(self, "interval_sec", value)
|
30954
31577
|
|
30955
31578
|
|