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
@@ -0,0 +1,548 @@
|
|
1
|
+
# coding=utf-8
|
2
|
+
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
|
3
|
+
# *** Do not edit by hand unless you're certain you know what you are doing! ***
|
4
|
+
|
5
|
+
import copy
|
6
|
+
import warnings
|
7
|
+
import pulumi
|
8
|
+
import pulumi.runtime
|
9
|
+
from typing import Any, Mapping, Optional, Sequence, Union, overload
|
10
|
+
from .. import _utilities
|
11
|
+
|
12
|
+
__all__ = ['KeyHandleArgs', 'KeyHandle']
|
13
|
+
|
14
|
+
@pulumi.input_type
|
15
|
+
class KeyHandleArgs:
|
16
|
+
def __init__(__self__, *,
|
17
|
+
location: pulumi.Input[str],
|
18
|
+
resource_type_selector: pulumi.Input[str],
|
19
|
+
name: Optional[pulumi.Input[str]] = None,
|
20
|
+
project: Optional[pulumi.Input[str]] = None):
|
21
|
+
"""
|
22
|
+
The set of arguments for constructing a KeyHandle resource.
|
23
|
+
:param pulumi.Input[str] location: The location for the KeyHandle.
|
24
|
+
A full list of valid locations can be found by running `gcloud kms locations list`.
|
25
|
+
|
26
|
+
|
27
|
+
- - -
|
28
|
+
:param pulumi.Input[str] resource_type_selector: Selector of the resource type where we want to protect resources.
|
29
|
+
For example, `storage.googleapis.com/Bucket OR compute.googleapis.com/*`
|
30
|
+
:param pulumi.Input[str] name: The resource name for the KeyHandle.
|
31
|
+
:param pulumi.Input[str] project: The ID of the project in which the resource belongs.
|
32
|
+
If it is not provided, the provider project is used.
|
33
|
+
"""
|
34
|
+
pulumi.set(__self__, "location", location)
|
35
|
+
pulumi.set(__self__, "resource_type_selector", resource_type_selector)
|
36
|
+
if name is not None:
|
37
|
+
pulumi.set(__self__, "name", name)
|
38
|
+
if project is not None:
|
39
|
+
pulumi.set(__self__, "project", project)
|
40
|
+
|
41
|
+
@property
|
42
|
+
@pulumi.getter
|
43
|
+
def location(self) -> pulumi.Input[str]:
|
44
|
+
"""
|
45
|
+
The location for the KeyHandle.
|
46
|
+
A full list of valid locations can be found by running `gcloud kms locations list`.
|
47
|
+
|
48
|
+
|
49
|
+
- - -
|
50
|
+
"""
|
51
|
+
return pulumi.get(self, "location")
|
52
|
+
|
53
|
+
@location.setter
|
54
|
+
def location(self, value: pulumi.Input[str]):
|
55
|
+
pulumi.set(self, "location", value)
|
56
|
+
|
57
|
+
@property
|
58
|
+
@pulumi.getter(name="resourceTypeSelector")
|
59
|
+
def resource_type_selector(self) -> pulumi.Input[str]:
|
60
|
+
"""
|
61
|
+
Selector of the resource type where we want to protect resources.
|
62
|
+
For example, `storage.googleapis.com/Bucket OR compute.googleapis.com/*`
|
63
|
+
"""
|
64
|
+
return pulumi.get(self, "resource_type_selector")
|
65
|
+
|
66
|
+
@resource_type_selector.setter
|
67
|
+
def resource_type_selector(self, value: pulumi.Input[str]):
|
68
|
+
pulumi.set(self, "resource_type_selector", value)
|
69
|
+
|
70
|
+
@property
|
71
|
+
@pulumi.getter
|
72
|
+
def name(self) -> Optional[pulumi.Input[str]]:
|
73
|
+
"""
|
74
|
+
The resource name for the KeyHandle.
|
75
|
+
"""
|
76
|
+
return pulumi.get(self, "name")
|
77
|
+
|
78
|
+
@name.setter
|
79
|
+
def name(self, value: Optional[pulumi.Input[str]]):
|
80
|
+
pulumi.set(self, "name", value)
|
81
|
+
|
82
|
+
@property
|
83
|
+
@pulumi.getter
|
84
|
+
def project(self) -> Optional[pulumi.Input[str]]:
|
85
|
+
"""
|
86
|
+
The ID of the project in which the resource belongs.
|
87
|
+
If it is not provided, the provider project is used.
|
88
|
+
"""
|
89
|
+
return pulumi.get(self, "project")
|
90
|
+
|
91
|
+
@project.setter
|
92
|
+
def project(self, value: Optional[pulumi.Input[str]]):
|
93
|
+
pulumi.set(self, "project", value)
|
94
|
+
|
95
|
+
|
96
|
+
@pulumi.input_type
|
97
|
+
class _KeyHandleState:
|
98
|
+
def __init__(__self__, *,
|
99
|
+
kms_key: Optional[pulumi.Input[str]] = None,
|
100
|
+
location: Optional[pulumi.Input[str]] = None,
|
101
|
+
name: Optional[pulumi.Input[str]] = None,
|
102
|
+
project: Optional[pulumi.Input[str]] = None,
|
103
|
+
resource_type_selector: Optional[pulumi.Input[str]] = None):
|
104
|
+
"""
|
105
|
+
Input properties used for looking up and filtering KeyHandle resources.
|
106
|
+
:param pulumi.Input[str] kms_key: A reference to a Cloud KMS CryptoKey that can be used for CMEK in the requested
|
107
|
+
product/project/location, for example
|
108
|
+
`projects/1/locations/us-east1/keyRings/foo/cryptoKeys/bar-ffffff`
|
109
|
+
:param pulumi.Input[str] location: The location for the KeyHandle.
|
110
|
+
A full list of valid locations can be found by running `gcloud kms locations list`.
|
111
|
+
|
112
|
+
|
113
|
+
- - -
|
114
|
+
:param pulumi.Input[str] name: The resource name for the KeyHandle.
|
115
|
+
:param pulumi.Input[str] project: The ID of the project in which the resource belongs.
|
116
|
+
If it is not provided, the provider project is used.
|
117
|
+
:param pulumi.Input[str] resource_type_selector: Selector of the resource type where we want to protect resources.
|
118
|
+
For example, `storage.googleapis.com/Bucket OR compute.googleapis.com/*`
|
119
|
+
"""
|
120
|
+
if kms_key is not None:
|
121
|
+
pulumi.set(__self__, "kms_key", kms_key)
|
122
|
+
if location is not None:
|
123
|
+
pulumi.set(__self__, "location", location)
|
124
|
+
if name is not None:
|
125
|
+
pulumi.set(__self__, "name", name)
|
126
|
+
if project is not None:
|
127
|
+
pulumi.set(__self__, "project", project)
|
128
|
+
if resource_type_selector is not None:
|
129
|
+
pulumi.set(__self__, "resource_type_selector", resource_type_selector)
|
130
|
+
|
131
|
+
@property
|
132
|
+
@pulumi.getter(name="kmsKey")
|
133
|
+
def kms_key(self) -> Optional[pulumi.Input[str]]:
|
134
|
+
"""
|
135
|
+
A reference to a Cloud KMS CryptoKey that can be used for CMEK in the requested
|
136
|
+
product/project/location, for example
|
137
|
+
`projects/1/locations/us-east1/keyRings/foo/cryptoKeys/bar-ffffff`
|
138
|
+
"""
|
139
|
+
return pulumi.get(self, "kms_key")
|
140
|
+
|
141
|
+
@kms_key.setter
|
142
|
+
def kms_key(self, value: Optional[pulumi.Input[str]]):
|
143
|
+
pulumi.set(self, "kms_key", value)
|
144
|
+
|
145
|
+
@property
|
146
|
+
@pulumi.getter
|
147
|
+
def location(self) -> Optional[pulumi.Input[str]]:
|
148
|
+
"""
|
149
|
+
The location for the KeyHandle.
|
150
|
+
A full list of valid locations can be found by running `gcloud kms locations list`.
|
151
|
+
|
152
|
+
|
153
|
+
- - -
|
154
|
+
"""
|
155
|
+
return pulumi.get(self, "location")
|
156
|
+
|
157
|
+
@location.setter
|
158
|
+
def location(self, value: Optional[pulumi.Input[str]]):
|
159
|
+
pulumi.set(self, "location", value)
|
160
|
+
|
161
|
+
@property
|
162
|
+
@pulumi.getter
|
163
|
+
def name(self) -> Optional[pulumi.Input[str]]:
|
164
|
+
"""
|
165
|
+
The resource name for the KeyHandle.
|
166
|
+
"""
|
167
|
+
return pulumi.get(self, "name")
|
168
|
+
|
169
|
+
@name.setter
|
170
|
+
def name(self, value: Optional[pulumi.Input[str]]):
|
171
|
+
pulumi.set(self, "name", value)
|
172
|
+
|
173
|
+
@property
|
174
|
+
@pulumi.getter
|
175
|
+
def project(self) -> Optional[pulumi.Input[str]]:
|
176
|
+
"""
|
177
|
+
The ID of the project in which the resource belongs.
|
178
|
+
If it is not provided, the provider project is used.
|
179
|
+
"""
|
180
|
+
return pulumi.get(self, "project")
|
181
|
+
|
182
|
+
@project.setter
|
183
|
+
def project(self, value: Optional[pulumi.Input[str]]):
|
184
|
+
pulumi.set(self, "project", value)
|
185
|
+
|
186
|
+
@property
|
187
|
+
@pulumi.getter(name="resourceTypeSelector")
|
188
|
+
def resource_type_selector(self) -> Optional[pulumi.Input[str]]:
|
189
|
+
"""
|
190
|
+
Selector of the resource type where we want to protect resources.
|
191
|
+
For example, `storage.googleapis.com/Bucket OR compute.googleapis.com/*`
|
192
|
+
"""
|
193
|
+
return pulumi.get(self, "resource_type_selector")
|
194
|
+
|
195
|
+
@resource_type_selector.setter
|
196
|
+
def resource_type_selector(self, value: Optional[pulumi.Input[str]]):
|
197
|
+
pulumi.set(self, "resource_type_selector", value)
|
198
|
+
|
199
|
+
|
200
|
+
class KeyHandle(pulumi.CustomResource):
|
201
|
+
@overload
|
202
|
+
def __init__(__self__,
|
203
|
+
resource_name: str,
|
204
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
205
|
+
location: Optional[pulumi.Input[str]] = None,
|
206
|
+
name: Optional[pulumi.Input[str]] = None,
|
207
|
+
project: Optional[pulumi.Input[str]] = None,
|
208
|
+
resource_type_selector: Optional[pulumi.Input[str]] = None,
|
209
|
+
__props__=None):
|
210
|
+
"""
|
211
|
+
## Example Usage
|
212
|
+
|
213
|
+
### Kms Key Handle Basic
|
214
|
+
|
215
|
+
```python
|
216
|
+
import pulumi
|
217
|
+
import pulumi_gcp as gcp
|
218
|
+
import pulumi_time as time
|
219
|
+
|
220
|
+
# Create Folder in GCP Organization
|
221
|
+
autokms_folder = gcp.organizations.Folder("autokms_folder",
|
222
|
+
display_name="folder-example",
|
223
|
+
parent="organizations/123456789")
|
224
|
+
# Create the key project
|
225
|
+
key_project = gcp.organizations.Project("key_project",
|
226
|
+
project_id="key-proj",
|
227
|
+
name="key-proj",
|
228
|
+
folder_id=autokms_folder.folder_id,
|
229
|
+
billing_account="000000-0000000-0000000-000000",
|
230
|
+
opts=pulumi.ResourceOptions(depends_on=[autokms_folder]))
|
231
|
+
# Create the resource project
|
232
|
+
resource_project = gcp.organizations.Project("resource_project",
|
233
|
+
project_id="resources",
|
234
|
+
name="resources",
|
235
|
+
folder_id=autokms_folder.folder_id,
|
236
|
+
billing_account="000000-0000000-0000000-000000",
|
237
|
+
opts=pulumi.ResourceOptions(depends_on=[autokms_folder]))
|
238
|
+
# Enable the Cloud KMS API
|
239
|
+
kms_api_service = gcp.projects.Service("kms_api_service",
|
240
|
+
service="cloudkms.googleapis.com",
|
241
|
+
project=key_project.project_id,
|
242
|
+
disable_on_destroy=False,
|
243
|
+
disable_dependent_services=True,
|
244
|
+
opts=pulumi.ResourceOptions(depends_on=[key_project]))
|
245
|
+
# Wait delay after enabling APIs
|
246
|
+
wait_enable_service_api = time.index.Sleep("wait_enable_service_api", create_duration=30s,
|
247
|
+
opts=pulumi.ResourceOptions(depends_on=[kms_api_service]))
|
248
|
+
#Create KMS Service Agent
|
249
|
+
kms_service_agent = gcp.projects.ServiceIdentity("kms_service_agent",
|
250
|
+
service="cloudkms.googleapis.com",
|
251
|
+
project=key_project.number,
|
252
|
+
opts=pulumi.ResourceOptions(depends_on=[wait_enable_service_api]))
|
253
|
+
# Wait delay after creating service agent.
|
254
|
+
wait_service_agent = time.index.Sleep("wait_service_agent", create_duration=10s,
|
255
|
+
opts=pulumi.ResourceOptions(depends_on=[kms_service_agent]))
|
256
|
+
#Grant the KMS Service Agent the Cloud KMS Admin role
|
257
|
+
autokey_project_admin = gcp.projects.IAMMember("autokey_project_admin",
|
258
|
+
project=key_project.project_id,
|
259
|
+
role="roles/cloudkms.admin",
|
260
|
+
member=key_project.number.apply(lambda number: f"serviceAccount:service-{number}@gcp-sa-cloudkms.iam.gserviceaccount.com"),
|
261
|
+
opts=pulumi.ResourceOptions(depends_on=[wait_service_agent]))
|
262
|
+
# Wait delay after granting IAM permissions
|
263
|
+
wait_srv_acc_permissions = time.index.Sleep("wait_srv_acc_permissions", create_duration=10s,
|
264
|
+
opts=pulumi.ResourceOptions(depends_on=[autokey_project_admin]))
|
265
|
+
autokey_config = gcp.kms.AutokeyConfig("autokey_config",
|
266
|
+
folder=autokms_folder.folder_id,
|
267
|
+
key_project=key_project.project_id.apply(lambda project_id: f"projects/{project_id}"),
|
268
|
+
opts=pulumi.ResourceOptions(depends_on=[wait_srv_acc_permissions]))
|
269
|
+
# Wait delay for autokey config to take effect
|
270
|
+
wait_autokey_config = time.index.Sleep("wait_autokey_config", create_duration=10s,
|
271
|
+
opts=pulumi.ResourceOptions(depends_on=[autokey_config]))
|
272
|
+
example_keyhandle = gcp.kms.KeyHandle("example-keyhandle",
|
273
|
+
project=resource_project.project_id,
|
274
|
+
name="example-key-handle",
|
275
|
+
location="global",
|
276
|
+
resource_type_selector="storage.googleapis.com/Bucket",
|
277
|
+
opts=pulumi.ResourceOptions(depends_on=[wait_autokey_config]))
|
278
|
+
```
|
279
|
+
|
280
|
+
## Import
|
281
|
+
|
282
|
+
KeyHandle can be imported using any of these accepted formats:
|
283
|
+
|
284
|
+
* `projects/{{project}}/locations/{{location}}/keyHandles/{{name}}`
|
285
|
+
|
286
|
+
* `{{project}}/{{location}}/{{name}}`
|
287
|
+
|
288
|
+
* `{{location}}/{{name}}`
|
289
|
+
|
290
|
+
When using the `pulumi import` command, KeyHandle can be imported using one of the formats above. For example:
|
291
|
+
|
292
|
+
```sh
|
293
|
+
$ pulumi import gcp:kms/keyHandle:KeyHandle default projects/{{project}}/locations/{{location}}/keyHandles/{{name}}
|
294
|
+
```
|
295
|
+
|
296
|
+
```sh
|
297
|
+
$ pulumi import gcp:kms/keyHandle:KeyHandle default {{project}}/{{location}}/{{name}}
|
298
|
+
```
|
299
|
+
|
300
|
+
```sh
|
301
|
+
$ pulumi import gcp:kms/keyHandle:KeyHandle default {{location}}/{{name}}
|
302
|
+
```
|
303
|
+
|
304
|
+
:param str resource_name: The name of the resource.
|
305
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
306
|
+
:param pulumi.Input[str] location: The location for the KeyHandle.
|
307
|
+
A full list of valid locations can be found by running `gcloud kms locations list`.
|
308
|
+
|
309
|
+
|
310
|
+
- - -
|
311
|
+
:param pulumi.Input[str] name: The resource name for the KeyHandle.
|
312
|
+
:param pulumi.Input[str] project: The ID of the project in which the resource belongs.
|
313
|
+
If it is not provided, the provider project is used.
|
314
|
+
:param pulumi.Input[str] resource_type_selector: Selector of the resource type where we want to protect resources.
|
315
|
+
For example, `storage.googleapis.com/Bucket OR compute.googleapis.com/*`
|
316
|
+
"""
|
317
|
+
...
|
318
|
+
@overload
|
319
|
+
def __init__(__self__,
|
320
|
+
resource_name: str,
|
321
|
+
args: KeyHandleArgs,
|
322
|
+
opts: Optional[pulumi.ResourceOptions] = None):
|
323
|
+
"""
|
324
|
+
## Example Usage
|
325
|
+
|
326
|
+
### Kms Key Handle Basic
|
327
|
+
|
328
|
+
```python
|
329
|
+
import pulumi
|
330
|
+
import pulumi_gcp as gcp
|
331
|
+
import pulumi_time as time
|
332
|
+
|
333
|
+
# Create Folder in GCP Organization
|
334
|
+
autokms_folder = gcp.organizations.Folder("autokms_folder",
|
335
|
+
display_name="folder-example",
|
336
|
+
parent="organizations/123456789")
|
337
|
+
# Create the key project
|
338
|
+
key_project = gcp.organizations.Project("key_project",
|
339
|
+
project_id="key-proj",
|
340
|
+
name="key-proj",
|
341
|
+
folder_id=autokms_folder.folder_id,
|
342
|
+
billing_account="000000-0000000-0000000-000000",
|
343
|
+
opts=pulumi.ResourceOptions(depends_on=[autokms_folder]))
|
344
|
+
# Create the resource project
|
345
|
+
resource_project = gcp.organizations.Project("resource_project",
|
346
|
+
project_id="resources",
|
347
|
+
name="resources",
|
348
|
+
folder_id=autokms_folder.folder_id,
|
349
|
+
billing_account="000000-0000000-0000000-000000",
|
350
|
+
opts=pulumi.ResourceOptions(depends_on=[autokms_folder]))
|
351
|
+
# Enable the Cloud KMS API
|
352
|
+
kms_api_service = gcp.projects.Service("kms_api_service",
|
353
|
+
service="cloudkms.googleapis.com",
|
354
|
+
project=key_project.project_id,
|
355
|
+
disable_on_destroy=False,
|
356
|
+
disable_dependent_services=True,
|
357
|
+
opts=pulumi.ResourceOptions(depends_on=[key_project]))
|
358
|
+
# Wait delay after enabling APIs
|
359
|
+
wait_enable_service_api = time.index.Sleep("wait_enable_service_api", create_duration=30s,
|
360
|
+
opts=pulumi.ResourceOptions(depends_on=[kms_api_service]))
|
361
|
+
#Create KMS Service Agent
|
362
|
+
kms_service_agent = gcp.projects.ServiceIdentity("kms_service_agent",
|
363
|
+
service="cloudkms.googleapis.com",
|
364
|
+
project=key_project.number,
|
365
|
+
opts=pulumi.ResourceOptions(depends_on=[wait_enable_service_api]))
|
366
|
+
# Wait delay after creating service agent.
|
367
|
+
wait_service_agent = time.index.Sleep("wait_service_agent", create_duration=10s,
|
368
|
+
opts=pulumi.ResourceOptions(depends_on=[kms_service_agent]))
|
369
|
+
#Grant the KMS Service Agent the Cloud KMS Admin role
|
370
|
+
autokey_project_admin = gcp.projects.IAMMember("autokey_project_admin",
|
371
|
+
project=key_project.project_id,
|
372
|
+
role="roles/cloudkms.admin",
|
373
|
+
member=key_project.number.apply(lambda number: f"serviceAccount:service-{number}@gcp-sa-cloudkms.iam.gserviceaccount.com"),
|
374
|
+
opts=pulumi.ResourceOptions(depends_on=[wait_service_agent]))
|
375
|
+
# Wait delay after granting IAM permissions
|
376
|
+
wait_srv_acc_permissions = time.index.Sleep("wait_srv_acc_permissions", create_duration=10s,
|
377
|
+
opts=pulumi.ResourceOptions(depends_on=[autokey_project_admin]))
|
378
|
+
autokey_config = gcp.kms.AutokeyConfig("autokey_config",
|
379
|
+
folder=autokms_folder.folder_id,
|
380
|
+
key_project=key_project.project_id.apply(lambda project_id: f"projects/{project_id}"),
|
381
|
+
opts=pulumi.ResourceOptions(depends_on=[wait_srv_acc_permissions]))
|
382
|
+
# Wait delay for autokey config to take effect
|
383
|
+
wait_autokey_config = time.index.Sleep("wait_autokey_config", create_duration=10s,
|
384
|
+
opts=pulumi.ResourceOptions(depends_on=[autokey_config]))
|
385
|
+
example_keyhandle = gcp.kms.KeyHandle("example-keyhandle",
|
386
|
+
project=resource_project.project_id,
|
387
|
+
name="example-key-handle",
|
388
|
+
location="global",
|
389
|
+
resource_type_selector="storage.googleapis.com/Bucket",
|
390
|
+
opts=pulumi.ResourceOptions(depends_on=[wait_autokey_config]))
|
391
|
+
```
|
392
|
+
|
393
|
+
## Import
|
394
|
+
|
395
|
+
KeyHandle can be imported using any of these accepted formats:
|
396
|
+
|
397
|
+
* `projects/{{project}}/locations/{{location}}/keyHandles/{{name}}`
|
398
|
+
|
399
|
+
* `{{project}}/{{location}}/{{name}}`
|
400
|
+
|
401
|
+
* `{{location}}/{{name}}`
|
402
|
+
|
403
|
+
When using the `pulumi import` command, KeyHandle can be imported using one of the formats above. For example:
|
404
|
+
|
405
|
+
```sh
|
406
|
+
$ pulumi import gcp:kms/keyHandle:KeyHandle default projects/{{project}}/locations/{{location}}/keyHandles/{{name}}
|
407
|
+
```
|
408
|
+
|
409
|
+
```sh
|
410
|
+
$ pulumi import gcp:kms/keyHandle:KeyHandle default {{project}}/{{location}}/{{name}}
|
411
|
+
```
|
412
|
+
|
413
|
+
```sh
|
414
|
+
$ pulumi import gcp:kms/keyHandle:KeyHandle default {{location}}/{{name}}
|
415
|
+
```
|
416
|
+
|
417
|
+
:param str resource_name: The name of the resource.
|
418
|
+
:param KeyHandleArgs args: The arguments to use to populate this resource's properties.
|
419
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
420
|
+
"""
|
421
|
+
...
|
422
|
+
def __init__(__self__, resource_name: str, *args, **kwargs):
|
423
|
+
resource_args, opts = _utilities.get_resource_args_opts(KeyHandleArgs, pulumi.ResourceOptions, *args, **kwargs)
|
424
|
+
if resource_args is not None:
|
425
|
+
__self__._internal_init(resource_name, opts, **resource_args.__dict__)
|
426
|
+
else:
|
427
|
+
__self__._internal_init(resource_name, *args, **kwargs)
|
428
|
+
|
429
|
+
def _internal_init(__self__,
|
430
|
+
resource_name: str,
|
431
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
432
|
+
location: Optional[pulumi.Input[str]] = None,
|
433
|
+
name: Optional[pulumi.Input[str]] = None,
|
434
|
+
project: Optional[pulumi.Input[str]] = None,
|
435
|
+
resource_type_selector: Optional[pulumi.Input[str]] = None,
|
436
|
+
__props__=None):
|
437
|
+
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
|
438
|
+
if not isinstance(opts, pulumi.ResourceOptions):
|
439
|
+
raise TypeError('Expected resource options to be a ResourceOptions instance')
|
440
|
+
if opts.id is None:
|
441
|
+
if __props__ is not None:
|
442
|
+
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
|
443
|
+
__props__ = KeyHandleArgs.__new__(KeyHandleArgs)
|
444
|
+
|
445
|
+
if location is None and not opts.urn:
|
446
|
+
raise TypeError("Missing required property 'location'")
|
447
|
+
__props__.__dict__["location"] = location
|
448
|
+
__props__.__dict__["name"] = name
|
449
|
+
__props__.__dict__["project"] = project
|
450
|
+
if resource_type_selector is None and not opts.urn:
|
451
|
+
raise TypeError("Missing required property 'resource_type_selector'")
|
452
|
+
__props__.__dict__["resource_type_selector"] = resource_type_selector
|
453
|
+
__props__.__dict__["kms_key"] = None
|
454
|
+
super(KeyHandle, __self__).__init__(
|
455
|
+
'gcp:kms/keyHandle:KeyHandle',
|
456
|
+
resource_name,
|
457
|
+
__props__,
|
458
|
+
opts)
|
459
|
+
|
460
|
+
@staticmethod
|
461
|
+
def get(resource_name: str,
|
462
|
+
id: pulumi.Input[str],
|
463
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
464
|
+
kms_key: Optional[pulumi.Input[str]] = None,
|
465
|
+
location: Optional[pulumi.Input[str]] = None,
|
466
|
+
name: Optional[pulumi.Input[str]] = None,
|
467
|
+
project: Optional[pulumi.Input[str]] = None,
|
468
|
+
resource_type_selector: Optional[pulumi.Input[str]] = None) -> 'KeyHandle':
|
469
|
+
"""
|
470
|
+
Get an existing KeyHandle resource's state with the given name, id, and optional extra
|
471
|
+
properties used to qualify the lookup.
|
472
|
+
|
473
|
+
:param str resource_name: The unique name of the resulting resource.
|
474
|
+
:param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
|
475
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
476
|
+
:param pulumi.Input[str] kms_key: A reference to a Cloud KMS CryptoKey that can be used for CMEK in the requested
|
477
|
+
product/project/location, for example
|
478
|
+
`projects/1/locations/us-east1/keyRings/foo/cryptoKeys/bar-ffffff`
|
479
|
+
:param pulumi.Input[str] location: The location for the KeyHandle.
|
480
|
+
A full list of valid locations can be found by running `gcloud kms locations list`.
|
481
|
+
|
482
|
+
|
483
|
+
- - -
|
484
|
+
:param pulumi.Input[str] name: The resource name for the KeyHandle.
|
485
|
+
:param pulumi.Input[str] project: The ID of the project in which the resource belongs.
|
486
|
+
If it is not provided, the provider project is used.
|
487
|
+
:param pulumi.Input[str] resource_type_selector: Selector of the resource type where we want to protect resources.
|
488
|
+
For example, `storage.googleapis.com/Bucket OR compute.googleapis.com/*`
|
489
|
+
"""
|
490
|
+
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
|
491
|
+
|
492
|
+
__props__ = _KeyHandleState.__new__(_KeyHandleState)
|
493
|
+
|
494
|
+
__props__.__dict__["kms_key"] = kms_key
|
495
|
+
__props__.__dict__["location"] = location
|
496
|
+
__props__.__dict__["name"] = name
|
497
|
+
__props__.__dict__["project"] = project
|
498
|
+
__props__.__dict__["resource_type_selector"] = resource_type_selector
|
499
|
+
return KeyHandle(resource_name, opts=opts, __props__=__props__)
|
500
|
+
|
501
|
+
@property
|
502
|
+
@pulumi.getter(name="kmsKey")
|
503
|
+
def kms_key(self) -> pulumi.Output[str]:
|
504
|
+
"""
|
505
|
+
A reference to a Cloud KMS CryptoKey that can be used for CMEK in the requested
|
506
|
+
product/project/location, for example
|
507
|
+
`projects/1/locations/us-east1/keyRings/foo/cryptoKeys/bar-ffffff`
|
508
|
+
"""
|
509
|
+
return pulumi.get(self, "kms_key")
|
510
|
+
|
511
|
+
@property
|
512
|
+
@pulumi.getter
|
513
|
+
def location(self) -> pulumi.Output[str]:
|
514
|
+
"""
|
515
|
+
The location for the KeyHandle.
|
516
|
+
A full list of valid locations can be found by running `gcloud kms locations list`.
|
517
|
+
|
518
|
+
|
519
|
+
- - -
|
520
|
+
"""
|
521
|
+
return pulumi.get(self, "location")
|
522
|
+
|
523
|
+
@property
|
524
|
+
@pulumi.getter
|
525
|
+
def name(self) -> pulumi.Output[str]:
|
526
|
+
"""
|
527
|
+
The resource name for the KeyHandle.
|
528
|
+
"""
|
529
|
+
return pulumi.get(self, "name")
|
530
|
+
|
531
|
+
@property
|
532
|
+
@pulumi.getter
|
533
|
+
def project(self) -> pulumi.Output[str]:
|
534
|
+
"""
|
535
|
+
The ID of the project in which the resource belongs.
|
536
|
+
If it is not provided, the provider project is used.
|
537
|
+
"""
|
538
|
+
return pulumi.get(self, "project")
|
539
|
+
|
540
|
+
@property
|
541
|
+
@pulumi.getter(name="resourceTypeSelector")
|
542
|
+
def resource_type_selector(self) -> pulumi.Output[str]:
|
543
|
+
"""
|
544
|
+
Selector of the resource type where we want to protect resources.
|
545
|
+
For example, `storage.googleapis.com/Bucket OR compute.googleapis.com/*`
|
546
|
+
"""
|
547
|
+
return pulumi.get(self, "resource_type_selector")
|
548
|
+
|
@@ -243,7 +243,7 @@ class KeyRingIAMBinding(pulumi.CustomResource):
|
|
243
243
|
|
244
244
|
> **Note:** `kms.KeyRingIAMBinding` resources **can be** used in conjunction with `kms.KeyRingIAMMember` resources **only if** they do not grant privilege to the same role.
|
245
245
|
|
246
|
-
##
|
246
|
+
## kms.KeyRingIAMPolicy
|
247
247
|
|
248
248
|
```python
|
249
249
|
import pulumi
|
@@ -284,7 +284,7 @@ class KeyRingIAMBinding(pulumi.CustomResource):
|
|
284
284
|
policy_data=admin.policy_data)
|
285
285
|
```
|
286
286
|
|
287
|
-
##
|
287
|
+
## kms.KeyRingIAMBinding
|
288
288
|
|
289
289
|
```python
|
290
290
|
import pulumi
|
@@ -313,7 +313,7 @@ class KeyRingIAMBinding(pulumi.CustomResource):
|
|
313
313
|
))
|
314
314
|
```
|
315
315
|
|
316
|
-
##
|
316
|
+
## kms.KeyRingIAMMember
|
317
317
|
|
318
318
|
```python
|
319
319
|
import pulumi
|
@@ -342,7 +342,7 @@ class KeyRingIAMBinding(pulumi.CustomResource):
|
|
342
342
|
))
|
343
343
|
```
|
344
344
|
|
345
|
-
##
|
345
|
+
## kms.KeyRingIAMPolicy
|
346
346
|
|
347
347
|
```python
|
348
348
|
import pulumi
|
@@ -383,7 +383,7 @@ class KeyRingIAMBinding(pulumi.CustomResource):
|
|
383
383
|
policy_data=admin.policy_data)
|
384
384
|
```
|
385
385
|
|
386
|
-
##
|
386
|
+
## kms.KeyRingIAMBinding
|
387
387
|
|
388
388
|
```python
|
389
389
|
import pulumi
|
@@ -412,7 +412,7 @@ class KeyRingIAMBinding(pulumi.CustomResource):
|
|
412
412
|
))
|
413
413
|
```
|
414
414
|
|
415
|
-
##
|
415
|
+
## kms.KeyRingIAMMember
|
416
416
|
|
417
417
|
```python
|
418
418
|
import pulumi
|
@@ -504,7 +504,7 @@ class KeyRingIAMBinding(pulumi.CustomResource):
|
|
504
504
|
|
505
505
|
> **Note:** `kms.KeyRingIAMBinding` resources **can be** used in conjunction with `kms.KeyRingIAMMember` resources **only if** they do not grant privilege to the same role.
|
506
506
|
|
507
|
-
##
|
507
|
+
## kms.KeyRingIAMPolicy
|
508
508
|
|
509
509
|
```python
|
510
510
|
import pulumi
|
@@ -545,7 +545,7 @@ class KeyRingIAMBinding(pulumi.CustomResource):
|
|
545
545
|
policy_data=admin.policy_data)
|
546
546
|
```
|
547
547
|
|
548
|
-
##
|
548
|
+
## kms.KeyRingIAMBinding
|
549
549
|
|
550
550
|
```python
|
551
551
|
import pulumi
|
@@ -574,7 +574,7 @@ class KeyRingIAMBinding(pulumi.CustomResource):
|
|
574
574
|
))
|
575
575
|
```
|
576
576
|
|
577
|
-
##
|
577
|
+
## kms.KeyRingIAMMember
|
578
578
|
|
579
579
|
```python
|
580
580
|
import pulumi
|
@@ -603,7 +603,7 @@ class KeyRingIAMBinding(pulumi.CustomResource):
|
|
603
603
|
))
|
604
604
|
```
|
605
605
|
|
606
|
-
##
|
606
|
+
## kms.KeyRingIAMPolicy
|
607
607
|
|
608
608
|
```python
|
609
609
|
import pulumi
|
@@ -644,7 +644,7 @@ class KeyRingIAMBinding(pulumi.CustomResource):
|
|
644
644
|
policy_data=admin.policy_data)
|
645
645
|
```
|
646
646
|
|
647
|
-
##
|
647
|
+
## kms.KeyRingIAMBinding
|
648
648
|
|
649
649
|
```python
|
650
650
|
import pulumi
|
@@ -673,7 +673,7 @@ class KeyRingIAMBinding(pulumi.CustomResource):
|
|
673
673
|
))
|
674
674
|
```
|
675
675
|
|
676
|
-
##
|
676
|
+
## kms.KeyRingIAMMember
|
677
677
|
|
678
678
|
```python
|
679
679
|
import pulumi
|