pulumi-gcp 7.30.0a1719470057__py3-none-any.whl → 7.30.0a1719555549__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/_inputs.py +15 -0
- pulumi_gcp/accessapproval/get_folder_service_account.py +5 -0
- pulumi_gcp/accessapproval/get_organization_service_account.py +5 -0
- pulumi_gcp/accessapproval/get_project_service_account.py +5 -0
- pulumi_gcp/accesscontextmanager/_inputs.py +2066 -6
- pulumi_gcp/accesscontextmanager/access_level.py +37 -32
- pulumi_gcp/accesscontextmanager/access_level_condition.py +53 -48
- pulumi_gcp/accesscontextmanager/access_levels.py +70 -65
- pulumi_gcp/accesscontextmanager/access_policy.py +5 -0
- pulumi_gcp/accesscontextmanager/access_policy_iam_binding.py +24 -19
- pulumi_gcp/accesscontextmanager/access_policy_iam_member.py +24 -19
- pulumi_gcp/accesscontextmanager/access_policy_iam_policy.py +21 -16
- pulumi_gcp/accesscontextmanager/authorized_orgs_desc.py +5 -0
- pulumi_gcp/accesscontextmanager/egress_policy.py +5 -0
- pulumi_gcp/accesscontextmanager/gcp_user_access_binding.py +33 -28
- pulumi_gcp/accesscontextmanager/get_access_policy_iam_policy.py +5 -0
- pulumi_gcp/accesscontextmanager/ingress_policy.py +5 -0
- pulumi_gcp/accesscontextmanager/outputs.py +5 -0
- pulumi_gcp/accesscontextmanager/service_perimeter.py +201 -196
- pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_resource.py +11 -6
- pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +15 -10
- pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +15 -10
- pulumi_gcp/accesscontextmanager/service_perimeter_resource.py +11 -6
- pulumi_gcp/accesscontextmanager/service_perimeters.py +60 -55
- pulumi_gcp/activedirectory/domain.py +5 -0
- pulumi_gcp/activedirectory/domain_trust.py +5 -0
- pulumi_gcp/activedirectory/peering.py +5 -0
- pulumi_gcp/alloydb/_inputs.py +535 -0
- pulumi_gcp/alloydb/backup.py +26 -21
- pulumi_gcp/alloydb/cluster.py +177 -172
- pulumi_gcp/alloydb/get_locations.py +5 -0
- pulumi_gcp/alloydb/get_supported_database_flags.py +5 -0
- pulumi_gcp/alloydb/instance.py +77 -72
- pulumi_gcp/alloydb/outputs.py +5 -0
- pulumi_gcp/alloydb/user.py +17 -12
- pulumi_gcp/apigateway/_inputs.py +168 -0
- pulumi_gcp/apigateway/api.py +5 -0
- pulumi_gcp/apigateway/api_config.py +25 -20
- pulumi_gcp/apigateway/api_config_iam_binding.py +24 -19
- pulumi_gcp/apigateway/api_config_iam_member.py +24 -19
- pulumi_gcp/apigateway/api_config_iam_policy.py +21 -16
- pulumi_gcp/apigateway/api_iam_binding.py +24 -19
- pulumi_gcp/apigateway/api_iam_member.py +24 -19
- pulumi_gcp/apigateway/api_iam_policy.py +21 -16
- pulumi_gcp/apigateway/gateway.py +5 -0
- pulumi_gcp/apigateway/gateway_iam_binding.py +24 -19
- pulumi_gcp/apigateway/gateway_iam_member.py +24 -19
- pulumi_gcp/apigateway/gateway_iam_policy.py +21 -16
- pulumi_gcp/apigateway/get_api_config_iam_policy.py +5 -0
- pulumi_gcp/apigateway/get_api_iam_policy.py +5 -0
- pulumi_gcp/apigateway/get_gateway_iam_policy.py +5 -0
- pulumi_gcp/apigateway/outputs.py +5 -0
- pulumi_gcp/apigee/_inputs.py +508 -0
- pulumi_gcp/apigee/addons_config.py +60 -55
- pulumi_gcp/apigee/endpoint_attachment.py +5 -0
- pulumi_gcp/apigee/env_group.py +5 -0
- pulumi_gcp/apigee/env_group_attachment.py +5 -0
- pulumi_gcp/apigee/env_keystore.py +5 -0
- pulumi_gcp/apigee/env_references.py +5 -0
- pulumi_gcp/apigee/environment.py +10 -5
- pulumi_gcp/apigee/environment_iam_binding.py +24 -19
- pulumi_gcp/apigee/environment_iam_member.py +24 -19
- pulumi_gcp/apigee/environment_iam_policy.py +21 -16
- pulumi_gcp/apigee/flowhook.py +5 -0
- pulumi_gcp/apigee/get_environment_iam_policy.py +5 -0
- pulumi_gcp/apigee/instance.py +5 -0
- pulumi_gcp/apigee/instance_attachment.py +5 -0
- pulumi_gcp/apigee/keystores_aliases_key_cert_file.py +10 -5
- pulumi_gcp/apigee/keystores_aliases_pkcs12.py +7 -2
- pulumi_gcp/apigee/keystores_aliases_self_signed_cert.py +31 -26
- pulumi_gcp/apigee/nat_address.py +5 -0
- pulumi_gcp/apigee/organization.py +10 -5
- pulumi_gcp/apigee/outputs.py +5 -0
- pulumi_gcp/apigee/sharedflow.py +7 -2
- pulumi_gcp/apigee/sharedflow_deployment.py +5 -0
- pulumi_gcp/apigee/sync_authorization.py +5 -0
- pulumi_gcp/apigee/target_server.py +10 -5
- pulumi_gcp/appengine/_inputs.py +990 -7
- pulumi_gcp/appengine/application.py +17 -12
- pulumi_gcp/appengine/application_url_dispatch_rules.py +46 -41
- pulumi_gcp/appengine/domain_mapping.py +18 -13
- pulumi_gcp/appengine/engine_split_traffic.py +50 -45
- pulumi_gcp/appengine/firewall_rule.py +5 -0
- pulumi_gcp/appengine/flexible_app_version.py +130 -125
- pulumi_gcp/appengine/get_default_service_account.py +5 -0
- pulumi_gcp/appengine/outputs.py +5 -0
- pulumi_gcp/appengine/service_network_settings.py +32 -27
- pulumi_gcp/appengine/standard_app_version.py +109 -104
- pulumi_gcp/apphub/_inputs.py +370 -0
- pulumi_gcp/apphub/application.py +67 -62
- pulumi_gcp/apphub/get_application.py +5 -0
- pulumi_gcp/apphub/get_discovered_service.py +5 -0
- pulumi_gcp/apphub/get_discovered_workload.py +5 -0
- pulumi_gcp/apphub/outputs.py +5 -0
- pulumi_gcp/apphub/service.py +78 -73
- pulumi_gcp/apphub/service_project_attachment.py +5 -0
- pulumi_gcp/apphub/workload.py +14 -9
- pulumi_gcp/applicationintegration/_inputs.py +324 -0
- pulumi_gcp/applicationintegration/auth_config.py +29 -24
- pulumi_gcp/applicationintegration/client.py +24 -19
- pulumi_gcp/applicationintegration/outputs.py +5 -0
- pulumi_gcp/artifactregistry/_inputs.py +392 -0
- pulumi_gcp/artifactregistry/get_docker_image.py +5 -0
- pulumi_gcp/artifactregistry/get_repository.py +5 -0
- pulumi_gcp/artifactregistry/get_repository_iam_policy.py +5 -0
- pulumi_gcp/artifactregistry/outputs.py +5 -0
- pulumi_gcp/artifactregistry/repository.py +338 -333
- pulumi_gcp/artifactregistry/repository_iam_binding.py +24 -19
- pulumi_gcp/artifactregistry/repository_iam_member.py +24 -19
- pulumi_gcp/artifactregistry/repository_iam_policy.py +21 -16
- pulumi_gcp/artifactregistry/vpcsc_config.py +5 -0
- pulumi_gcp/assuredworkloads/_inputs.py +117 -0
- pulumi_gcp/assuredworkloads/outputs.py +5 -0
- pulumi_gcp/assuredworkloads/workload.py +86 -81
- pulumi_gcp/backupdisasterrecovery/_inputs.py +41 -0
- pulumi_gcp/backupdisasterrecovery/get_management_server.py +5 -0
- pulumi_gcp/backupdisasterrecovery/management_server.py +20 -15
- pulumi_gcp/backupdisasterrecovery/outputs.py +5 -0
- pulumi_gcp/beyondcorp/_inputs.py +86 -0
- pulumi_gcp/beyondcorp/app_connection.py +57 -52
- pulumi_gcp/beyondcorp/app_connector.py +30 -25
- pulumi_gcp/beyondcorp/app_gateway.py +7 -2
- pulumi_gcp/beyondcorp/get_app_connection.py +5 -0
- pulumi_gcp/beyondcorp/get_app_connector.py +5 -0
- pulumi_gcp/beyondcorp/get_app_gateway.py +5 -0
- pulumi_gcp/beyondcorp/outputs.py +5 -0
- pulumi_gcp/biglake/_inputs.py +64 -0
- pulumi_gcp/biglake/catalog.py +5 -0
- pulumi_gcp/biglake/database.py +18 -13
- pulumi_gcp/biglake/outputs.py +5 -0
- pulumi_gcp/biglake/table.py +36 -31
- pulumi_gcp/bigquery/_inputs.py +1930 -6
- pulumi_gcp/bigquery/app_profile.py +133 -128
- pulumi_gcp/bigquery/bi_reservation.py +10 -5
- pulumi_gcp/bigquery/capacity_commitment.py +5 -0
- pulumi_gcp/bigquery/connection.py +181 -176
- pulumi_gcp/bigquery/connection_iam_binding.py +24 -19
- pulumi_gcp/bigquery/connection_iam_member.py +24 -19
- pulumi_gcp/bigquery/connection_iam_policy.py +21 -16
- pulumi_gcp/bigquery/data_transfer_config.py +20 -15
- pulumi_gcp/bigquery/dataset.py +132 -127
- pulumi_gcp/bigquery/dataset_access.py +72 -67
- pulumi_gcp/bigquery/dataset_iam_binding.py +24 -19
- pulumi_gcp/bigquery/dataset_iam_member.py +24 -19
- pulumi_gcp/bigquery/dataset_iam_policy.py +21 -16
- pulumi_gcp/bigquery/get_connection_iam_policy.py +5 -0
- pulumi_gcp/bigquery/get_dataset.py +5 -0
- pulumi_gcp/bigquery/get_dataset_iam_policy.py +5 -0
- pulumi_gcp/bigquery/get_default_service_account.py +5 -0
- pulumi_gcp/bigquery/get_table_iam_policy.py +5 -0
- pulumi_gcp/bigquery/iam_binding.py +102 -97
- pulumi_gcp/bigquery/iam_member.py +102 -97
- pulumi_gcp/bigquery/iam_policy.py +97 -92
- pulumi_gcp/bigquery/job.py +229 -224
- pulumi_gcp/bigquery/outputs.py +5 -0
- pulumi_gcp/bigquery/reservation.py +16 -11
- pulumi_gcp/bigquery/reservation_assignment.py +5 -0
- pulumi_gcp/bigquery/routine.py +114 -109
- pulumi_gcp/bigquery/table.py +67 -62
- pulumi_gcp/bigqueryanalyticshub/_inputs.py +97 -0
- pulumi_gcp/bigqueryanalyticshub/data_exchange.py +5 -0
- pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_binding.py +24 -19
- pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_member.py +24 -19
- pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_policy.py +21 -16
- pulumi_gcp/bigqueryanalyticshub/get_data_exchange_iam_policy.py +5 -0
- pulumi_gcp/bigqueryanalyticshub/get_listing_iam_policy.py +5 -0
- pulumi_gcp/bigqueryanalyticshub/listing.py +45 -40
- pulumi_gcp/bigqueryanalyticshub/listing_iam_binding.py +24 -19
- pulumi_gcp/bigqueryanalyticshub/listing_iam_member.py +24 -19
- pulumi_gcp/bigqueryanalyticshub/listing_iam_policy.py +21 -16
- pulumi_gcp/bigqueryanalyticshub/outputs.py +5 -0
- pulumi_gcp/bigquerydatapolicy/_inputs.py +40 -0
- pulumi_gcp/bigquerydatapolicy/data_policy.py +24 -19
- pulumi_gcp/bigquerydatapolicy/data_policy_iam_binding.py +24 -19
- pulumi_gcp/bigquerydatapolicy/data_policy_iam_member.py +24 -19
- pulumi_gcp/bigquerydatapolicy/data_policy_iam_policy.py +21 -16
- pulumi_gcp/bigquerydatapolicy/get_iam_policy.py +5 -0
- pulumi_gcp/bigquerydatapolicy/outputs.py +5 -0
- pulumi_gcp/bigtable/_inputs.py +202 -0
- pulumi_gcp/bigtable/authorized_view.py +10 -5
- pulumi_gcp/bigtable/gc_policy.py +45 -40
- pulumi_gcp/bigtable/get_instance_iam_policy.py +5 -0
- pulumi_gcp/bigtable/get_table_iam_policy.py +5 -0
- pulumi_gcp/bigtable/instance.py +52 -47
- pulumi_gcp/bigtable/instance_iam_binding.py +24 -19
- pulumi_gcp/bigtable/instance_iam_member.py +24 -19
- pulumi_gcp/bigtable/instance_iam_policy.py +21 -16
- pulumi_gcp/bigtable/outputs.py +5 -0
- pulumi_gcp/bigtable/table.py +39 -34
- pulumi_gcp/bigtable/table_iam_binding.py +24 -19
- pulumi_gcp/bigtable/table_iam_member.py +24 -19
- pulumi_gcp/bigtable/table_iam_policy.py +21 -16
- pulumi_gcp/billing/_inputs.py +257 -0
- pulumi_gcp/billing/account_iam_binding.py +24 -19
- pulumi_gcp/billing/account_iam_member.py +24 -19
- pulumi_gcp/billing/account_iam_policy.py +21 -16
- pulumi_gcp/billing/budget.py +225 -220
- pulumi_gcp/billing/get_account_iam_policy.py +5 -0
- pulumi_gcp/billing/outputs.py +5 -0
- pulumi_gcp/billing/project_info.py +5 -0
- pulumi_gcp/billing/sub_account.py +5 -0
- pulumi_gcp/binaryauthorization/_inputs.py +199 -0
- pulumi_gcp/binaryauthorization/attestor.py +68 -63
- pulumi_gcp/binaryauthorization/attestor_iam_binding.py +24 -19
- pulumi_gcp/binaryauthorization/attestor_iam_member.py +24 -19
- pulumi_gcp/binaryauthorization/attestor_iam_policy.py +21 -16
- pulumi_gcp/binaryauthorization/get_attestor_iam_policy.py +5 -0
- pulumi_gcp/binaryauthorization/outputs.py +5 -0
- pulumi_gcp/binaryauthorization/policy.py +88 -83
- pulumi_gcp/blockchainnodeengine/_inputs.py +131 -0
- pulumi_gcp/blockchainnodeengine/blockchain_nodes.py +62 -57
- pulumi_gcp/blockchainnodeengine/outputs.py +5 -0
- pulumi_gcp/certificateauthority/_inputs.py +2157 -36
- pulumi_gcp/certificateauthority/authority.py +398 -393
- pulumi_gcp/certificateauthority/ca_pool.py +189 -184
- pulumi_gcp/certificateauthority/ca_pool_iam_binding.py +102 -97
- pulumi_gcp/certificateauthority/ca_pool_iam_member.py +102 -97
- pulumi_gcp/certificateauthority/ca_pool_iam_policy.py +97 -92
- pulumi_gcp/certificateauthority/certificate.py +636 -631
- pulumi_gcp/certificateauthority/certificate_template.py +134 -129
- pulumi_gcp/certificateauthority/certificate_template_iam_binding.py +102 -97
- pulumi_gcp/certificateauthority/certificate_template_iam_member.py +102 -97
- pulumi_gcp/certificateauthority/certificate_template_iam_policy.py +97 -92
- pulumi_gcp/certificateauthority/get_authority.py +5 -0
- pulumi_gcp/certificateauthority/get_ca_pool_iam_policy.py +5 -0
- pulumi_gcp/certificateauthority/get_certificate_template_iam_policy.py +5 -0
- pulumi_gcp/certificateauthority/outputs.py +5 -0
- pulumi_gcp/certificatemanager/_inputs.py +256 -0
- pulumi_gcp/certificatemanager/certificate.py +203 -198
- pulumi_gcp/certificatemanager/certificate_issuance_config.py +76 -71
- pulumi_gcp/certificatemanager/certificate_map.py +7 -2
- pulumi_gcp/certificatemanager/certificate_map_entry.py +13 -8
- pulumi_gcp/certificatemanager/dns_authorization.py +7 -2
- pulumi_gcp/certificatemanager/get_certificate_map.py +5 -0
- pulumi_gcp/certificatemanager/outputs.py +5 -0
- pulumi_gcp/certificatemanager/trust_config.py +26 -21
- pulumi_gcp/cloudasset/_inputs.py +151 -0
- pulumi_gcp/cloudasset/folder_feed.py +35 -30
- pulumi_gcp/cloudasset/get_resources_search_all.py +5 -0
- pulumi_gcp/cloudasset/get_search_all_resources.py +5 -0
- pulumi_gcp/cloudasset/organization_feed.py +35 -30
- pulumi_gcp/cloudasset/outputs.py +5 -0
- pulumi_gcp/cloudasset/project_feed.py +35 -30
- pulumi_gcp/cloudbuild/_inputs.py +1038 -29
- pulumi_gcp/cloudbuild/bitbucket_server_config.py +61 -56
- pulumi_gcp/cloudbuild/get_trigger.py +5 -0
- pulumi_gcp/cloudbuild/outputs.py +5 -0
- pulumi_gcp/cloudbuild/trigger.py +733 -728
- pulumi_gcp/cloudbuild/worker_pool.py +43 -38
- pulumi_gcp/cloudbuildv2/_inputs.py +335 -0
- pulumi_gcp/cloudbuildv2/connection.py +106 -101
- pulumi_gcp/cloudbuildv2/connection_iam_binding.py +24 -19
- pulumi_gcp/cloudbuildv2/connection_iam_member.py +24 -19
- pulumi_gcp/cloudbuildv2/connection_iam_policy.py +21 -16
- pulumi_gcp/cloudbuildv2/get_connection_iam_policy.py +5 -0
- pulumi_gcp/cloudbuildv2/outputs.py +5 -0
- pulumi_gcp/cloudbuildv2/repository.py +67 -62
- pulumi_gcp/clouddeploy/_inputs.py +700 -0
- pulumi_gcp/clouddeploy/automation.py +101 -96
- pulumi_gcp/clouddeploy/custom_target_type.py +88 -83
- pulumi_gcp/clouddeploy/custom_target_type_iam_binding.py +8 -3
- pulumi_gcp/clouddeploy/custom_target_type_iam_member.py +8 -3
- pulumi_gcp/clouddeploy/custom_target_type_iam_policy.py +5 -0
- pulumi_gcp/clouddeploy/delivery_pipeline.py +162 -157
- pulumi_gcp/clouddeploy/delivery_pipeline_iam_binding.py +8 -3
- pulumi_gcp/clouddeploy/delivery_pipeline_iam_member.py +8 -3
- pulumi_gcp/clouddeploy/delivery_pipeline_iam_policy.py +5 -0
- pulumi_gcp/clouddeploy/get_custom_target_type_iam_policy.py +5 -0
- pulumi_gcp/clouddeploy/get_delivery_pipeline_iam_policy.py +5 -0
- pulumi_gcp/clouddeploy/get_target_iam_policy.py +5 -0
- pulumi_gcp/clouddeploy/outputs.py +5 -0
- pulumi_gcp/clouddeploy/target.py +69 -64
- pulumi_gcp/clouddeploy/target_iam_binding.py +8 -3
- pulumi_gcp/clouddeploy/target_iam_member.py +8 -3
- pulumi_gcp/clouddeploy/target_iam_policy.py +5 -0
- pulumi_gcp/clouddomains/_inputs.py +372 -0
- pulumi_gcp/clouddomains/outputs.py +5 -0
- pulumi_gcp/clouddomains/registration.py +121 -116
- pulumi_gcp/cloudfunctions/_inputs.py +132 -0
- pulumi_gcp/cloudfunctions/function.py +25 -20
- pulumi_gcp/cloudfunctions/function_iam_binding.py +24 -19
- pulumi_gcp/cloudfunctions/function_iam_member.py +24 -19
- pulumi_gcp/cloudfunctions/function_iam_policy.py +21 -16
- pulumi_gcp/cloudfunctions/get_function.py +5 -0
- pulumi_gcp/cloudfunctions/get_function_iam_policy.py +5 -0
- pulumi_gcp/cloudfunctions/outputs.py +5 -0
- pulumi_gcp/cloudfunctionsv2/_inputs.py +357 -0
- pulumi_gcp/cloudfunctionsv2/function.py +514 -509
- pulumi_gcp/cloudfunctionsv2/function_iam_binding.py +24 -19
- pulumi_gcp/cloudfunctionsv2/function_iam_member.py +24 -19
- pulumi_gcp/cloudfunctionsv2/function_iam_policy.py +21 -16
- pulumi_gcp/cloudfunctionsv2/get_function.py +5 -0
- pulumi_gcp/cloudfunctionsv2/get_function_iam_policy.py +5 -0
- pulumi_gcp/cloudfunctionsv2/outputs.py +5 -0
- pulumi_gcp/cloudidentity/_inputs.py +161 -0
- pulumi_gcp/cloudidentity/get_group_lookup.py +9 -4
- pulumi_gcp/cloudidentity/get_group_memberships.py +5 -0
- pulumi_gcp/cloudidentity/get_groups.py +5 -0
- pulumi_gcp/cloudidentity/group.py +18 -13
- pulumi_gcp/cloudidentity/group_membership.py +68 -63
- pulumi_gcp/cloudidentity/outputs.py +5 -0
- pulumi_gcp/cloudids/endpoint.py +5 -0
- pulumi_gcp/cloudquota/_inputs.py +44 -0
- pulumi_gcp/cloudquota/get_s_quota_info.py +5 -0
- pulumi_gcp/cloudquota/get_s_quota_infos.py +5 -0
- pulumi_gcp/cloudquota/outputs.py +5 -0
- pulumi_gcp/cloudquota/s_quota_preference.py +16 -11
- pulumi_gcp/cloudrun/_inputs.py +1165 -15
- pulumi_gcp/cloudrun/domain_mapping.py +49 -44
- pulumi_gcp/cloudrun/get_locations.py +5 -0
- pulumi_gcp/cloudrun/get_service.py +5 -0
- pulumi_gcp/cloudrun/get_service_iam_policy.py +5 -0
- pulumi_gcp/cloudrun/iam_binding.py +24 -19
- pulumi_gcp/cloudrun/iam_member.py +24 -19
- pulumi_gcp/cloudrun/iam_policy.py +21 -16
- pulumi_gcp/cloudrun/outputs.py +5 -0
- pulumi_gcp/cloudrun/service.py +270 -265
- pulumi_gcp/cloudrunv2/_inputs.py +1338 -5
- pulumi_gcp/cloudrunv2/get_job.py +5 -0
- pulumi_gcp/cloudrunv2/get_job_iam_policy.py +5 -0
- pulumi_gcp/cloudrunv2/get_service.py +5 -0
- pulumi_gcp/cloudrunv2/get_service_iam_policy.py +5 -0
- pulumi_gcp/cloudrunv2/job.py +287 -282
- pulumi_gcp/cloudrunv2/job_iam_binding.py +24 -19
- pulumi_gcp/cloudrunv2/job_iam_member.py +24 -19
- pulumi_gcp/cloudrunv2/job_iam_policy.py +21 -16
- pulumi_gcp/cloudrunv2/outputs.py +5 -0
- pulumi_gcp/cloudrunv2/service.py +437 -432
- pulumi_gcp/cloudrunv2/service_iam_binding.py +24 -19
- pulumi_gcp/cloudrunv2/service_iam_member.py +24 -19
- pulumi_gcp/cloudrunv2/service_iam_policy.py +21 -16
- pulumi_gcp/cloudscheduler/_inputs.py +193 -0
- pulumi_gcp/cloudscheduler/job.py +127 -122
- pulumi_gcp/cloudscheduler/outputs.py +5 -0
- pulumi_gcp/cloudtasks/_inputs.py +134 -0
- pulumi_gcp/cloudtasks/get_queue_iam_policy.py +5 -0
- pulumi_gcp/cloudtasks/outputs.py +5 -0
- pulumi_gcp/cloudtasks/queue.py +63 -58
- pulumi_gcp/cloudtasks/queue_iam_binding.py +24 -19
- pulumi_gcp/cloudtasks/queue_iam_member.py +24 -19
- pulumi_gcp/cloudtasks/queue_iam_policy.py +21 -16
- pulumi_gcp/composer/_inputs.py +566 -0
- pulumi_gcp/composer/environment.py +15 -10
- pulumi_gcp/composer/get_environment.py +5 -0
- pulumi_gcp/composer/get_image_versions.py +15 -10
- pulumi_gcp/composer/get_user_workloads_config_map.py +15 -10
- pulumi_gcp/composer/get_user_workloads_secret.py +15 -10
- pulumi_gcp/composer/outputs.py +5 -0
- pulumi_gcp/composer/user_workloads_config_map.py +15 -10
- pulumi_gcp/composer/user_workloads_secret.py +15 -10
- pulumi_gcp/compute/_inputs.py +13512 -145
- pulumi_gcp/compute/address.py +27 -22
- pulumi_gcp/compute/attached_disk.py +21 -16
- pulumi_gcp/compute/autoscaler.py +98 -93
- pulumi_gcp/compute/backend_bucket.py +30 -25
- pulumi_gcp/compute/backend_bucket_iam_binding.py +8 -3
- pulumi_gcp/compute/backend_bucket_iam_member.py +8 -3
- pulumi_gcp/compute/backend_bucket_iam_policy.py +5 -0
- pulumi_gcp/compute/backend_bucket_signed_url_key.py +5 -0
- pulumi_gcp/compute/backend_service.py +204 -199
- pulumi_gcp/compute/backend_service_iam_binding.py +10 -5
- pulumi_gcp/compute/backend_service_iam_member.py +10 -5
- pulumi_gcp/compute/backend_service_iam_policy.py +5 -0
- pulumi_gcp/compute/backend_service_signed_url_key.py +35 -30
- pulumi_gcp/compute/ca_external_account_key.py +5 -0
- pulumi_gcp/compute/disk.py +54 -49
- pulumi_gcp/compute/disk_async_replication.py +10 -5
- pulumi_gcp/compute/disk_iam_binding.py +24 -19
- pulumi_gcp/compute/disk_iam_member.py +24 -19
- pulumi_gcp/compute/disk_iam_policy.py +21 -16
- pulumi_gcp/compute/disk_resource_policy_attachment.py +21 -16
- pulumi_gcp/compute/external_vpn_gateway.py +24 -19
- pulumi_gcp/compute/firewall.py +42 -37
- pulumi_gcp/compute/firewall_policy.py +5 -0
- pulumi_gcp/compute/firewall_policy_association.py +5 -0
- pulumi_gcp/compute/firewall_policy_rule.py +44 -39
- pulumi_gcp/compute/forwarding_rule.py +248 -243
- pulumi_gcp/compute/get_address.py +5 -0
- pulumi_gcp/compute/get_addresses.py +5 -0
- pulumi_gcp/compute/get_backend_bucket.py +5 -0
- pulumi_gcp/compute/get_backend_bucket_iam_policy.py +5 -0
- pulumi_gcp/compute/get_backend_service.py +5 -0
- pulumi_gcp/compute/get_backend_service_iam_policy.py +5 -0
- pulumi_gcp/compute/get_certificate.py +5 -0
- pulumi_gcp/compute/get_default_service_account.py +5 -0
- pulumi_gcp/compute/get_disk.py +13 -8
- pulumi_gcp/compute/get_disk_iam_policy.py +5 -0
- pulumi_gcp/compute/get_forwarding_rule.py +5 -0
- pulumi_gcp/compute/get_forwarding_rules.py +5 -0
- pulumi_gcp/compute/get_global_address.py +5 -0
- pulumi_gcp/compute/get_global_forwarding_rule.py +5 -0
- pulumi_gcp/compute/get_hc_vpn_gateway.py +5 -0
- pulumi_gcp/compute/get_health_check.py +5 -0
- pulumi_gcp/compute/get_image.py +15 -10
- pulumi_gcp/compute/get_image_iam_policy.py +5 -0
- pulumi_gcp/compute/get_instance.py +5 -0
- pulumi_gcp/compute/get_instance_group.py +5 -0
- pulumi_gcp/compute/get_instance_group_manager.py +5 -0
- pulumi_gcp/compute/get_instance_iam_policy.py +5 -0
- pulumi_gcp/compute/get_instance_serial_port.py +29 -24
- pulumi_gcp/compute/get_instance_template.py +5 -0
- pulumi_gcp/compute/get_lbip_ranges.py +5 -0
- pulumi_gcp/compute/get_machine_image_iam_policy.py +5 -0
- pulumi_gcp/compute/get_machine_types.py +5 -0
- pulumi_gcp/compute/get_netblock_ip_ranges.py +5 -0
- pulumi_gcp/compute/get_network.py +5 -0
- pulumi_gcp/compute/get_network_endpoint_group.py +5 -0
- pulumi_gcp/compute/get_network_peering.py +5 -0
- pulumi_gcp/compute/get_networks.py +5 -0
- pulumi_gcp/compute/get_node_types.py +5 -0
- pulumi_gcp/compute/get_region_backend_service_iam_policy.py +5 -0
- pulumi_gcp/compute/get_region_disk.py +5 -0
- pulumi_gcp/compute/get_region_disk_iam_policy.py +5 -0
- pulumi_gcp/compute/get_region_instance_group.py +5 -0
- pulumi_gcp/compute/get_region_instance_template.py +5 -0
- pulumi_gcp/compute/get_region_network_endpoint_group.py +5 -0
- pulumi_gcp/compute/get_region_ssl_certificate.py +5 -0
- pulumi_gcp/compute/get_regions.py +5 -0
- pulumi_gcp/compute/get_reservation.py +5 -0
- pulumi_gcp/compute/get_resource_policy.py +5 -0
- pulumi_gcp/compute/get_router.py +5 -0
- pulumi_gcp/compute/get_router_nat.py +5 -0
- pulumi_gcp/compute/get_router_status.py +5 -0
- pulumi_gcp/compute/get_security_policy.py +5 -0
- pulumi_gcp/compute/get_snapshot.py +5 -0
- pulumi_gcp/compute/get_snapshot_iam_policy.py +5 -0
- pulumi_gcp/compute/get_ssl_policy.py +5 -0
- pulumi_gcp/compute/get_subnetwork.py +5 -0
- pulumi_gcp/compute/get_subnetwork_iam_policy.py +5 -0
- pulumi_gcp/compute/get_subnetworks.py +5 -0
- pulumi_gcp/compute/get_vpn_gateway.py +5 -0
- pulumi_gcp/compute/get_zones.py +5 -0
- pulumi_gcp/compute/global_address.py +5 -0
- pulumi_gcp/compute/global_forwarding_rule.py +211 -206
- pulumi_gcp/compute/global_network_endpoint.py +5 -0
- pulumi_gcp/compute/global_network_endpoint_group.py +5 -0
- pulumi_gcp/compute/ha_vpn_gateway.py +32 -27
- pulumi_gcp/compute/health_check.py +174 -169
- pulumi_gcp/compute/http_health_check.py +5 -0
- pulumi_gcp/compute/https_health_check.py +5 -0
- pulumi_gcp/compute/image.py +50 -45
- pulumi_gcp/compute/image_iam_binding.py +102 -97
- pulumi_gcp/compute/image_iam_member.py +102 -97
- pulumi_gcp/compute/image_iam_policy.py +97 -92
- pulumi_gcp/compute/instance.py +104 -99
- pulumi_gcp/compute/instance_from_machine_image.py +61 -56
- pulumi_gcp/compute/instance_from_template.py +88 -83
- pulumi_gcp/compute/instance_group.py +26 -21
- pulumi_gcp/compute/instance_group_manager.py +138 -133
- pulumi_gcp/compute/instance_group_membership.py +21 -16
- pulumi_gcp/compute/instance_group_named_port.py +13 -8
- pulumi_gcp/compute/instance_iam_binding.py +102 -97
- pulumi_gcp/compute/instance_iam_member.py +102 -97
- pulumi_gcp/compute/instance_iam_policy.py +97 -92
- pulumi_gcp/compute/instance_settings.py +16 -11
- pulumi_gcp/compute/instance_template.py +147 -142
- pulumi_gcp/compute/interconnect.py +14 -9
- pulumi_gcp/compute/interconnect_attachment.py +19 -14
- pulumi_gcp/compute/machine_image.py +48 -43
- pulumi_gcp/compute/machine_image_iam_binding.py +102 -97
- pulumi_gcp/compute/machine_image_iam_member.py +102 -97
- pulumi_gcp/compute/machine_image_iam_policy.py +97 -92
- pulumi_gcp/compute/managed_ssl_certificate.py +40 -35
- pulumi_gcp/compute/manged_ssl_certificate.py +40 -35
- pulumi_gcp/compute/network.py +5 -0
- pulumi_gcp/compute/network_attachment.py +29 -24
- pulumi_gcp/compute/network_edge_security_service.py +5 -0
- pulumi_gcp/compute/network_endpoint.py +23 -18
- pulumi_gcp/compute/network_endpoint_group.py +5 -0
- pulumi_gcp/compute/network_endpoint_list.py +66 -61
- pulumi_gcp/compute/network_firewall_policy.py +5 -0
- pulumi_gcp/compute/network_firewall_policy_association.py +5 -0
- pulumi_gcp/compute/network_firewall_policy_rule.py +41 -36
- pulumi_gcp/compute/network_peering.py +5 -0
- pulumi_gcp/compute/network_peering_routes_config.py +41 -36
- pulumi_gcp/compute/node_group.py +50 -45
- pulumi_gcp/compute/node_template.py +21 -16
- pulumi_gcp/compute/organization_security_policy.py +5 -0
- pulumi_gcp/compute/organization_security_policy_association.py +31 -26
- pulumi_gcp/compute/organization_security_policy_rule.py +36 -31
- pulumi_gcp/compute/outputs.py +5 -0
- pulumi_gcp/compute/packet_mirroring.py +83 -78
- pulumi_gcp/compute/per_instance_config.py +56 -51
- pulumi_gcp/compute/project_cloud_armor_tier.py +5 -0
- pulumi_gcp/compute/project_default_network_tier.py +5 -0
- pulumi_gcp/compute/project_metadata.py +5 -0
- pulumi_gcp/compute/project_metadata_item.py +5 -0
- pulumi_gcp/compute/public_advertised_prefix.py +5 -0
- pulumi_gcp/compute/public_delegated_prefix.py +5 -0
- pulumi_gcp/compute/region_autoscaler.py +60 -55
- pulumi_gcp/compute/region_backend_service.py +203 -198
- pulumi_gcp/compute/region_backend_service_iam_binding.py +10 -5
- pulumi_gcp/compute/region_backend_service_iam_member.py +10 -5
- pulumi_gcp/compute/region_backend_service_iam_policy.py +5 -0
- pulumi_gcp/compute/region_commitment.py +47 -42
- pulumi_gcp/compute/region_disk.py +49 -44
- pulumi_gcp/compute/region_disk_iam_binding.py +24 -19
- pulumi_gcp/compute/region_disk_iam_member.py +24 -19
- pulumi_gcp/compute/region_disk_iam_policy.py +21 -16
- pulumi_gcp/compute/region_disk_resource_policy_attachment.py +21 -16
- pulumi_gcp/compute/region_health_check.py +174 -169
- pulumi_gcp/compute/region_instance_group_manager.py +134 -129
- pulumi_gcp/compute/region_instance_template.py +55 -50
- pulumi_gcp/compute/region_network_endpoint.py +23 -18
- pulumi_gcp/compute/region_network_endpoint_group.py +135 -130
- pulumi_gcp/compute/region_network_firewall_policy.py +5 -0
- pulumi_gcp/compute/region_network_firewall_policy_association.py +5 -0
- pulumi_gcp/compute/region_network_firewall_policy_rule.py +41 -36
- pulumi_gcp/compute/region_per_instance_config.py +66 -61
- pulumi_gcp/compute/region_security_policy.py +49 -44
- pulumi_gcp/compute/region_security_policy_rule.py +161 -156
- pulumi_gcp/compute/region_ssl_certificate.py +5 -0
- pulumi_gcp/compute/region_ssl_policy.py +5 -0
- pulumi_gcp/compute/region_target_http_proxy.py +43 -38
- pulumi_gcp/compute/region_target_https_proxy.py +97 -92
- pulumi_gcp/compute/region_target_tcp_proxy.py +11 -6
- pulumi_gcp/compute/region_url_map.py +824 -819
- pulumi_gcp/compute/reservation.py +29 -24
- pulumi_gcp/compute/resource_policy.py +153 -148
- pulumi_gcp/compute/route.py +17 -12
- pulumi_gcp/compute/router.py +40 -35
- pulumi_gcp/compute/router_interface.py +5 -0
- pulumi_gcp/compute/router_nat.py +98 -93
- pulumi_gcp/compute/router_peer.py +78 -73
- pulumi_gcp/compute/router_status.py +5 -0
- pulumi_gcp/compute/security_policy.py +201 -196
- pulumi_gcp/compute/security_policy_rule.py +80 -75
- pulumi_gcp/compute/security_scan_config.py +15 -10
- pulumi_gcp/compute/service_attachment.py +60 -55
- pulumi_gcp/compute/shared_vpc_host_project.py +5 -0
- pulumi_gcp/compute/shared_vpc_service_project.py +5 -0
- pulumi_gcp/compute/snapshot.py +15 -10
- pulumi_gcp/compute/snapshot_iam_binding.py +24 -19
- pulumi_gcp/compute/snapshot_iam_member.py +24 -19
- pulumi_gcp/compute/snapshot_iam_policy.py +21 -16
- pulumi_gcp/compute/ssl_certificate.py +5 -0
- pulumi_gcp/compute/ssl_policy.py +5 -0
- pulumi_gcp/compute/subnetwork.py +33 -28
- pulumi_gcp/compute/subnetwork_iam_binding.py +102 -97
- pulumi_gcp/compute/subnetwork_iam_member.py +102 -97
- pulumi_gcp/compute/subnetwork_iam_policy.py +97 -92
- pulumi_gcp/compute/target_grpc_proxy.py +129 -124
- pulumi_gcp/compute/target_http_proxy.py +61 -56
- pulumi_gcp/compute/target_https_proxy.py +133 -128
- pulumi_gcp/compute/target_instance.py +63 -58
- pulumi_gcp/compute/target_pool.py +5 -0
- pulumi_gcp/compute/target_ssl_proxy.py +11 -6
- pulumi_gcp/compute/target_tcp_proxy.py +11 -6
- pulumi_gcp/compute/url_map.py +731 -726
- pulumi_gcp/compute/vpn_gateway.py +5 -0
- pulumi_gcp/compute/vpn_tunnel.py +5 -0
- pulumi_gcp/config/__init__.pyi +5 -0
- pulumi_gcp/config/outputs.py +5 -0
- pulumi_gcp/config/vars.py +5 -0
- pulumi_gcp/container/_inputs.py +5502 -823
- pulumi_gcp/container/attached_cluster.py +128 -123
- pulumi_gcp/container/aws_cluster.py +359 -354
- pulumi_gcp/container/aws_node_pool.py +554 -549
- pulumi_gcp/container/azure_client.py +5 -0
- pulumi_gcp/container/azure_cluster.py +133 -128
- pulumi_gcp/container/azure_node_pool.py +115 -110
- pulumi_gcp/container/cluster.py +224 -219
- pulumi_gcp/container/get_attached_install_manifest.py +5 -0
- pulumi_gcp/container/get_attached_versions.py +5 -0
- pulumi_gcp/container/get_aws_versions.py +5 -0
- pulumi_gcp/container/get_azure_versions.py +5 -0
- pulumi_gcp/container/get_cluster.py +5 -0
- pulumi_gcp/container/get_engine_versions.py +5 -0
- pulumi_gcp/container/get_registry_image.py +5 -0
- pulumi_gcp/container/get_registry_repository.py +5 -0
- pulumi_gcp/container/node_pool.py +78 -73
- pulumi_gcp/container/outputs.py +5 -0
- pulumi_gcp/container/registry.py +5 -0
- pulumi_gcp/containeranalysis/_inputs.py +121 -0
- pulumi_gcp/containeranalysis/get_note_iam_policy.py +5 -0
- pulumi_gcp/containeranalysis/note.py +49 -44
- pulumi_gcp/containeranalysis/note_iam_binding.py +24 -19
- pulumi_gcp/containeranalysis/note_iam_member.py +24 -19
- pulumi_gcp/containeranalysis/note_iam_policy.py +21 -16
- pulumi_gcp/containeranalysis/occurence.py +10 -5
- pulumi_gcp/containeranalysis/outputs.py +5 -0
- pulumi_gcp/databasemigrationservice/_inputs.py +578 -0
- pulumi_gcp/databasemigrationservice/connection_profile.py +188 -183
- pulumi_gcp/databasemigrationservice/outputs.py +5 -0
- pulumi_gcp/databasemigrationservice/private_connection.py +20 -15
- pulumi_gcp/datacatalog/_inputs.py +318 -0
- pulumi_gcp/datacatalog/entry.py +20 -15
- pulumi_gcp/datacatalog/entry_group.py +5 -0
- pulumi_gcp/datacatalog/entry_group_iam_binding.py +24 -19
- pulumi_gcp/datacatalog/entry_group_iam_member.py +24 -19
- pulumi_gcp/datacatalog/entry_group_iam_policy.py +21 -16
- pulumi_gcp/datacatalog/get_entry_group_iam_policy.py +5 -0
- pulumi_gcp/datacatalog/get_policy_tag_iam_policy.py +5 -0
- pulumi_gcp/datacatalog/get_tag_template_iam_policy.py +5 -0
- pulumi_gcp/datacatalog/get_taxonomy_iam_policy.py +5 -0
- pulumi_gcp/datacatalog/outputs.py +5 -0
- pulumi_gcp/datacatalog/policy_tag.py +5 -0
- pulumi_gcp/datacatalog/policy_tag_iam_binding.py +24 -19
- pulumi_gcp/datacatalog/policy_tag_iam_member.py +24 -19
- pulumi_gcp/datacatalog/policy_tag_iam_policy.py +21 -16
- pulumi_gcp/datacatalog/tag.py +264 -259
- pulumi_gcp/datacatalog/tag_template.py +76 -71
- pulumi_gcp/datacatalog/tag_template_iam_binding.py +24 -19
- pulumi_gcp/datacatalog/tag_template_iam_member.py +24 -19
- pulumi_gcp/datacatalog/tag_template_iam_policy.py +21 -16
- pulumi_gcp/datacatalog/taxonomy.py +5 -0
- pulumi_gcp/datacatalog/taxonomy_iam_binding.py +24 -19
- pulumi_gcp/datacatalog/taxonomy_iam_member.py +24 -19
- pulumi_gcp/datacatalog/taxonomy_iam_policy.py +21 -16
- pulumi_gcp/dataflow/_inputs.py +316 -0
- pulumi_gcp/dataflow/flex_template_job.py +5 -0
- pulumi_gcp/dataflow/job.py +5 -0
- pulumi_gcp/dataflow/outputs.py +5 -0
- pulumi_gcp/dataflow/pipeline.py +75 -70
- pulumi_gcp/dataform/_inputs.py +251 -0
- pulumi_gcp/dataform/get_repository_iam_policy.py +5 -0
- pulumi_gcp/dataform/outputs.py +5 -0
- pulumi_gcp/dataform/repository.py +41 -36
- pulumi_gcp/dataform/repository_iam_binding.py +8 -3
- pulumi_gcp/dataform/repository_iam_member.py +8 -3
- pulumi_gcp/dataform/repository_iam_policy.py +5 -0
- pulumi_gcp/dataform/repository_release_config.py +58 -53
- pulumi_gcp/dataform/repository_workflow_config.py +94 -89
- pulumi_gcp/datafusion/_inputs.py +64 -0
- pulumi_gcp/datafusion/get_instance_iam_policy.py +5 -0
- pulumi_gcp/datafusion/instance.py +55 -50
- pulumi_gcp/datafusion/outputs.py +5 -0
- pulumi_gcp/dataloss/_inputs.py +6566 -114
- pulumi_gcp/dataloss/outputs.py +5 -0
- pulumi_gcp/dataloss/prevention_deidentify_template.py +226 -221
- pulumi_gcp/dataloss/prevention_discovery_config.py +22 -17
- pulumi_gcp/dataloss/prevention_inspect_template.py +442 -437
- pulumi_gcp/dataloss/prevention_job_trigger.py +701 -696
- pulumi_gcp/dataloss/prevention_stored_info_type.py +62 -57
- pulumi_gcp/dataplex/_inputs.py +1212 -6
- pulumi_gcp/dataplex/aspect_type.py +5 -0
- pulumi_gcp/dataplex/aspect_type_iam_binding.py +24 -19
- pulumi_gcp/dataplex/aspect_type_iam_member.py +24 -19
- pulumi_gcp/dataplex/aspect_type_iam_policy.py +21 -16
- pulumi_gcp/dataplex/asset.py +47 -42
- pulumi_gcp/dataplex/asset_iam_binding.py +24 -19
- pulumi_gcp/dataplex/asset_iam_member.py +24 -19
- pulumi_gcp/dataplex/asset_iam_policy.py +21 -16
- pulumi_gcp/dataplex/datascan.py +289 -284
- pulumi_gcp/dataplex/datascan_iam_binding.py +24 -19
- pulumi_gcp/dataplex/datascan_iam_member.py +24 -19
- pulumi_gcp/dataplex/datascan_iam_policy.py +21 -16
- pulumi_gcp/dataplex/entry_group.py +5 -0
- pulumi_gcp/dataplex/entry_group_iam_binding.py +24 -19
- pulumi_gcp/dataplex/entry_group_iam_member.py +24 -19
- pulumi_gcp/dataplex/entry_group_iam_policy.py +21 -16
- pulumi_gcp/dataplex/entry_type.py +16 -11
- pulumi_gcp/dataplex/entry_type_iam_binding.py +24 -19
- pulumi_gcp/dataplex/entry_type_iam_member.py +24 -19
- pulumi_gcp/dataplex/entry_type_iam_policy.py +21 -16
- pulumi_gcp/dataplex/get_aspect_type_iam_policy.py +5 -0
- pulumi_gcp/dataplex/get_asset_iam_policy.py +5 -0
- pulumi_gcp/dataplex/get_datascan_iam_policy.py +5 -0
- pulumi_gcp/dataplex/get_entry_group_iam_policy.py +5 -0
- pulumi_gcp/dataplex/get_entry_type_iam_policy.py +5 -0
- pulumi_gcp/dataplex/get_lake_iam_policy.py +5 -0
- pulumi_gcp/dataplex/get_task_iam_policy.py +5 -0
- pulumi_gcp/dataplex/get_zone_iam_policy.py +5 -0
- pulumi_gcp/dataplex/lake.py +14 -9
- pulumi_gcp/dataplex/lake_iam_binding.py +24 -19
- pulumi_gcp/dataplex/lake_iam_member.py +24 -19
- pulumi_gcp/dataplex/lake_iam_policy.py +21 -16
- pulumi_gcp/dataplex/outputs.py +5 -0
- pulumi_gcp/dataplex/task.py +173 -168
- pulumi_gcp/dataplex/task_iam_binding.py +24 -19
- pulumi_gcp/dataplex/task_iam_member.py +24 -19
- pulumi_gcp/dataplex/task_iam_policy.py +21 -16
- pulumi_gcp/dataplex/zone.py +29 -24
- pulumi_gcp/dataplex/zone_iam_binding.py +24 -19
- pulumi_gcp/dataplex/zone_iam_member.py +24 -19
- pulumi_gcp/dataplex/zone_iam_policy.py +21 -16
- pulumi_gcp/dataproc/_inputs.py +3214 -39
- pulumi_gcp/dataproc/autoscaling_policy.py +50 -45
- pulumi_gcp/dataproc/autoscaling_policy_iam_binding.py +24 -19
- pulumi_gcp/dataproc/autoscaling_policy_iam_member.py +24 -19
- pulumi_gcp/dataproc/autoscaling_policy_iam_policy.py +21 -16
- pulumi_gcp/dataproc/cluster.py +109 -104
- pulumi_gcp/dataproc/cluster_iam_binding.py +24 -19
- pulumi_gcp/dataproc/cluster_iam_member.py +24 -19
- pulumi_gcp/dataproc/cluster_iam_policy.py +21 -16
- pulumi_gcp/dataproc/get_autoscaling_policy_iam_policy.py +5 -0
- pulumi_gcp/dataproc/get_cluster_iam_policy.py +5 -0
- pulumi_gcp/dataproc/get_job_iam_policy.py +5 -0
- pulumi_gcp/dataproc/get_metastore_federation_iam_policy.py +5 -0
- pulumi_gcp/dataproc/get_metastore_service.py +5 -0
- pulumi_gcp/dataproc/get_metastore_service_iam_policy.py +5 -0
- pulumi_gcp/dataproc/job.py +95 -90
- pulumi_gcp/dataproc/job_iam_binding.py +24 -19
- pulumi_gcp/dataproc/job_iam_member.py +24 -19
- pulumi_gcp/dataproc/job_iam_policy.py +21 -16
- pulumi_gcp/dataproc/metastore_federation.py +56 -51
- pulumi_gcp/dataproc/metastore_federation_iam_binding.py +24 -19
- pulumi_gcp/dataproc/metastore_federation_iam_member.py +24 -19
- pulumi_gcp/dataproc/metastore_federation_iam_policy.py +21 -16
- pulumi_gcp/dataproc/metastore_service.py +239 -234
- pulumi_gcp/dataproc/metastore_service_iam_binding.py +24 -19
- pulumi_gcp/dataproc/metastore_service_iam_member.py +24 -19
- pulumi_gcp/dataproc/metastore_service_iam_policy.py +21 -16
- pulumi_gcp/dataproc/outputs.py +5 -0
- pulumi_gcp/dataproc/workflow_template.py +112 -107
- pulumi_gcp/datastore/_inputs.py +22 -0
- pulumi_gcp/datastore/data_store_index.py +26 -21
- pulumi_gcp/datastore/outputs.py +5 -0
- pulumi_gcp/datastream/_inputs.py +1631 -35
- pulumi_gcp/datastream/connection_profile.py +251 -246
- pulumi_gcp/datastream/get_static_ips.py +5 -0
- pulumi_gcp/datastream/outputs.py +5 -0
- pulumi_gcp/datastream/private_connection.py +20 -15
- pulumi_gcp/datastream/stream.py +777 -772
- pulumi_gcp/deploymentmanager/_inputs.py +66 -0
- pulumi_gcp/deploymentmanager/deployment.py +33 -28
- pulumi_gcp/deploymentmanager/outputs.py +5 -0
- pulumi_gcp/diagflow/_inputs.py +2590 -41
- pulumi_gcp/diagflow/agent.py +5 -0
- pulumi_gcp/diagflow/cx_agent.py +75 -70
- pulumi_gcp/diagflow/cx_entity_type.py +37 -32
- pulumi_gcp/diagflow/cx_environment.py +22 -17
- pulumi_gcp/diagflow/cx_flow.py +455 -450
- pulumi_gcp/diagflow/cx_intent.py +55 -50
- pulumi_gcp/diagflow/cx_page.py +718 -713
- pulumi_gcp/diagflow/cx_security_settings.py +69 -64
- pulumi_gcp/diagflow/cx_test_case.py +197 -192
- pulumi_gcp/diagflow/cx_version.py +13 -8
- pulumi_gcp/diagflow/cx_webhook.py +27 -22
- pulumi_gcp/diagflow/entity_type.py +26 -21
- pulumi_gcp/diagflow/fulfillment.py +27 -22
- pulumi_gcp/diagflow/intent.py +7 -2
- pulumi_gcp/diagflow/outputs.py +5 -0
- pulumi_gcp/discoveryengine/_inputs.py +183 -0
- pulumi_gcp/discoveryengine/chat_engine.py +37 -32
- pulumi_gcp/discoveryengine/data_store.py +32 -27
- pulumi_gcp/discoveryengine/outputs.py +5 -0
- pulumi_gcp/discoveryengine/search_engine.py +17 -12
- pulumi_gcp/dns/_inputs.py +589 -0
- pulumi_gcp/dns/dns_managed_zone_iam_binding.py +24 -19
- pulumi_gcp/dns/dns_managed_zone_iam_member.py +24 -19
- pulumi_gcp/dns/dns_managed_zone_iam_policy.py +21 -16
- pulumi_gcp/dns/get_keys.py +13 -8
- pulumi_gcp/dns/get_managed_zone.py +5 -0
- pulumi_gcp/dns/get_managed_zone_iam_policy.py +5 -0
- pulumi_gcp/dns/get_managed_zones.py +5 -0
- pulumi_gcp/dns/get_record_set.py +5 -0
- pulumi_gcp/dns/managed_zone.py +183 -178
- pulumi_gcp/dns/outputs.py +5 -0
- pulumi_gcp/dns/policy.py +47 -42
- pulumi_gcp/dns/record_set.py +100 -95
- pulumi_gcp/dns/response_policy.py +81 -76
- pulumi_gcp/dns/response_policy_rule.py +38 -33
- pulumi_gcp/edgecontainer/_inputs.py +464 -0
- pulumi_gcp/edgecontainer/cluster.py +152 -147
- pulumi_gcp/edgecontainer/node_pool.py +109 -104
- pulumi_gcp/edgecontainer/outputs.py +5 -0
- pulumi_gcp/edgecontainer/vpn_connection.py +36 -31
- pulumi_gcp/edgenetwork/network.py +5 -0
- pulumi_gcp/edgenetwork/subnet.py +5 -0
- pulumi_gcp/endpoints/_inputs.py +101 -0
- pulumi_gcp/endpoints/consumers_iam_binding.py +8 -3
- pulumi_gcp/endpoints/consumers_iam_member.py +8 -3
- pulumi_gcp/endpoints/consumers_iam_policy.py +5 -0
- pulumi_gcp/endpoints/get_service_consumers_iam_policy.py +5 -0
- pulumi_gcp/endpoints/get_service_iam_policy.py +5 -0
- pulumi_gcp/endpoints/outputs.py +5 -0
- pulumi_gcp/endpoints/service.py +9 -4
- pulumi_gcp/endpoints/service_iam_binding.py +24 -19
- pulumi_gcp/endpoints/service_iam_member.py +24 -19
- pulumi_gcp/endpoints/service_iam_policy.py +21 -16
- pulumi_gcp/essentialcontacts/_inputs.py +313 -0
- pulumi_gcp/essentialcontacts/contact.py +5 -0
- pulumi_gcp/essentialcontacts/document_ai_processor.py +5 -0
- pulumi_gcp/essentialcontacts/document_ai_processor_default_version.py +5 -0
- pulumi_gcp/essentialcontacts/document_ai_warehouse_document_schema.py +40 -35
- pulumi_gcp/essentialcontacts/document_ai_warehouse_location.py +5 -0
- pulumi_gcp/essentialcontacts/outputs.py +5 -0
- pulumi_gcp/eventarc/_inputs.py +145 -0
- pulumi_gcp/eventarc/channel.py +5 -0
- pulumi_gcp/eventarc/google_channel_config.py +5 -0
- pulumi_gcp/eventarc/outputs.py +5 -0
- pulumi_gcp/eventarc/trigger.py +78 -73
- pulumi_gcp/filestore/_inputs.py +108 -0
- pulumi_gcp/filestore/backup.py +23 -18
- pulumi_gcp/filestore/get_instance.py +5 -0
- pulumi_gcp/filestore/instance.py +107 -102
- pulumi_gcp/filestore/outputs.py +5 -0
- pulumi_gcp/filestore/snapshot.py +37 -32
- pulumi_gcp/firebase/_inputs.py +511 -0
- pulumi_gcp/firebase/android_app.py +21 -16
- pulumi_gcp/firebase/app_check_app_attest_config.py +5 -0
- pulumi_gcp/firebase/app_check_debug_token.py +5 -0
- pulumi_gcp/firebase/app_check_device_check_config.py +5 -0
- pulumi_gcp/firebase/app_check_play_integrity_config.py +5 -0
- pulumi_gcp/firebase/app_check_recaptcha_enterprise_config.py +5 -0
- pulumi_gcp/firebase/app_check_recaptcha_v3_config.py +5 -0
- pulumi_gcp/firebase/app_check_service_config.py +5 -0
- pulumi_gcp/firebase/apple_app.py +15 -10
- pulumi_gcp/firebase/database_instance.py +5 -0
- pulumi_gcp/firebase/extensions_instance.py +30 -25
- pulumi_gcp/firebase/get_android_app.py +5 -0
- pulumi_gcp/firebase/get_android_app_config.py +5 -0
- pulumi_gcp/firebase/get_apple_app.py +5 -0
- pulumi_gcp/firebase/get_apple_app_config.py +5 -0
- pulumi_gcp/firebase/get_hosting_channel.py +5 -0
- pulumi_gcp/firebase/get_web_app.py +5 -0
- pulumi_gcp/firebase/get_web_app_config.py +5 -0
- pulumi_gcp/firebase/hosting_channel.py +5 -0
- pulumi_gcp/firebase/hosting_custom_domain.py +39 -34
- pulumi_gcp/firebase/hosting_release.py +33 -28
- pulumi_gcp/firebase/hosting_site.py +5 -0
- pulumi_gcp/firebase/hosting_version.py +76 -71
- pulumi_gcp/firebase/outputs.py +5 -0
- pulumi_gcp/firebase/project.py +5 -0
- pulumi_gcp/firebase/storage_bucket.py +5 -0
- pulumi_gcp/firebase/web_app.py +15 -10
- pulumi_gcp/firebaserules/_inputs.py +51 -0
- pulumi_gcp/firebaserules/outputs.py +5 -0
- pulumi_gcp/firebaserules/release.py +5 -0
- pulumi_gcp/firebaserules/ruleset.py +40 -35
- pulumi_gcp/firestore/_inputs.py +154 -0
- pulumi_gcp/firestore/backup_schedule.py +23 -18
- pulumi_gcp/firestore/database.py +22 -17
- pulumi_gcp/firestore/document.py +5 -0
- pulumi_gcp/firestore/field.py +63 -58
- pulumi_gcp/firestore/index.py +72 -67
- pulumi_gcp/firestore/outputs.py +5 -0
- pulumi_gcp/folder/_inputs.py +165 -0
- pulumi_gcp/folder/access_approval_settings.py +28 -23
- pulumi_gcp/folder/get_iam_policy.py +5 -0
- pulumi_gcp/folder/get_organization_policy.py +5 -0
- pulumi_gcp/folder/iam_audit_config.py +130 -125
- pulumi_gcp/folder/iam_binding.py +8 -3
- pulumi_gcp/folder/iam_member.py +130 -125
- pulumi_gcp/folder/iam_policy.py +125 -120
- pulumi_gcp/folder/organization_policy.py +54 -49
- pulumi_gcp/folder/outputs.py +5 -0
- pulumi_gcp/gkebackup/_inputs.py +694 -0
- pulumi_gcp/gkebackup/backup_plan.py +436 -431
- pulumi_gcp/gkebackup/backup_plan_iam_binding.py +24 -19
- pulumi_gcp/gkebackup/backup_plan_iam_member.py +24 -19
- pulumi_gcp/gkebackup/backup_plan_iam_policy.py +21 -16
- pulumi_gcp/gkebackup/get_backup_plan_iam_policy.py +5 -0
- pulumi_gcp/gkebackup/get_restore_plan_iam_policy.py +5 -0
- pulumi_gcp/gkebackup/outputs.py +5 -0
- pulumi_gcp/gkebackup/restore_plan.py +580 -575
- pulumi_gcp/gkebackup/restore_plan_iam_binding.py +578 -573
- pulumi_gcp/gkebackup/restore_plan_iam_member.py +578 -573
- pulumi_gcp/gkebackup/restore_plan_iam_policy.py +575 -570
- pulumi_gcp/gkehub/_inputs.py +1204 -6
- pulumi_gcp/gkehub/feature.py +319 -314
- pulumi_gcp/gkehub/feature_iam_binding.py +24 -19
- pulumi_gcp/gkehub/feature_iam_member.py +24 -19
- pulumi_gcp/gkehub/feature_iam_policy.py +21 -16
- pulumi_gcp/gkehub/feature_membership.py +184 -179
- pulumi_gcp/gkehub/fleet.py +24 -19
- pulumi_gcp/gkehub/get_feature_iam_policy.py +5 -0
- pulumi_gcp/gkehub/get_membership_iam_policy.py +5 -0
- pulumi_gcp/gkehub/get_scope_iam_policy.py +5 -0
- pulumi_gcp/gkehub/membership.py +57 -52
- pulumi_gcp/gkehub/membership_binding.py +17 -12
- pulumi_gcp/gkehub/membership_iam_binding.py +24 -19
- pulumi_gcp/gkehub/membership_iam_member.py +24 -19
- pulumi_gcp/gkehub/membership_iam_policy.py +21 -16
- pulumi_gcp/gkehub/membership_rbac_role_binding.py +28 -23
- pulumi_gcp/gkehub/namespace.py +7 -2
- pulumi_gcp/gkehub/outputs.py +5 -0
- pulumi_gcp/gkehub/scope.py +7 -2
- pulumi_gcp/gkehub/scope_iam_binding.py +24 -19
- pulumi_gcp/gkehub/scope_iam_member.py +24 -19
- pulumi_gcp/gkehub/scope_iam_policy.py +21 -16
- pulumi_gcp/gkehub/scope_rbac_role_binding.py +18 -13
- pulumi_gcp/gkeonprem/_inputs.py +2318 -18
- pulumi_gcp/gkeonprem/bare_metal_admin_cluster.py +335 -330
- pulumi_gcp/gkeonprem/bare_metal_cluster.py +528 -523
- pulumi_gcp/gkeonprem/bare_metal_node_pool.py +262 -257
- pulumi_gcp/gkeonprem/outputs.py +5 -0
- pulumi_gcp/gkeonprem/v_mware_cluster.py +399 -394
- pulumi_gcp/gkeonprem/v_mware_node_pool.py +89 -84
- pulumi_gcp/healthcare/_inputs.py +316 -0
- pulumi_gcp/healthcare/consent_store.py +5 -0
- pulumi_gcp/healthcare/consent_store_iam_binding.py +24 -19
- pulumi_gcp/healthcare/consent_store_iam_member.py +24 -19
- pulumi_gcp/healthcare/consent_store_iam_policy.py +21 -16
- pulumi_gcp/healthcare/dataset.py +5 -0
- pulumi_gcp/healthcare/dataset_iam_binding.py +24 -19
- pulumi_gcp/healthcare/dataset_iam_member.py +24 -19
- pulumi_gcp/healthcare/dataset_iam_policy.py +21 -16
- pulumi_gcp/healthcare/dicom_store.py +39 -34
- pulumi_gcp/healthcare/dicom_store_iam_binding.py +24 -19
- pulumi_gcp/healthcare/dicom_store_iam_member.py +24 -19
- pulumi_gcp/healthcare/dicom_store_iam_policy.py +21 -16
- pulumi_gcp/healthcare/fhir_store.py +62 -57
- pulumi_gcp/healthcare/fhir_store_iam_binding.py +24 -19
- pulumi_gcp/healthcare/fhir_store_iam_member.py +24 -19
- pulumi_gcp/healthcare/fhir_store_iam_policy.py +21 -16
- pulumi_gcp/healthcare/get_consent_store_iam_policy.py +5 -0
- pulumi_gcp/healthcare/get_dataset_iam_policy.py +5 -0
- pulumi_gcp/healthcare/get_dicom_store_iam_policy.py +5 -0
- pulumi_gcp/healthcare/get_fhir_store_iam_policy.py +5 -0
- pulumi_gcp/healthcare/get_hl7_v2_store_iam_policy.py +5 -0
- pulumi_gcp/healthcare/hl7_store.py +46 -41
- pulumi_gcp/healthcare/hl7_store_iam_binding.py +24 -19
- pulumi_gcp/healthcare/hl7_store_iam_member.py +24 -19
- pulumi_gcp/healthcare/hl7_store_iam_policy.py +21 -16
- pulumi_gcp/healthcare/outputs.py +5 -0
- pulumi_gcp/iam/_inputs.py +433 -0
- pulumi_gcp/iam/access_boundary_policy.py +54 -49
- pulumi_gcp/iam/deny_policy.py +56 -51
- pulumi_gcp/iam/get_rule.py +5 -0
- pulumi_gcp/iam/get_testable_permissions.py +5 -0
- pulumi_gcp/iam/get_workload_identity_pool.py +5 -0
- pulumi_gcp/iam/get_workload_identity_pool_provider.py +5 -0
- pulumi_gcp/iam/outputs.py +5 -0
- pulumi_gcp/iam/workforce_pool.py +22 -17
- pulumi_gcp/iam/workforce_pool_provider.py +184 -179
- pulumi_gcp/iam/workload_identity_pool.py +5 -0
- pulumi_gcp/iam/workload_identity_pool_provider.py +68 -63
- pulumi_gcp/iap/_inputs.py +411 -0
- pulumi_gcp/iap/app_engine_service_iam_binding.py +102 -97
- pulumi_gcp/iap/app_engine_service_iam_member.py +102 -97
- pulumi_gcp/iap/app_engine_service_iam_policy.py +97 -92
- pulumi_gcp/iap/app_engine_version_iam_binding.py +102 -97
- pulumi_gcp/iap/app_engine_version_iam_member.py +102 -97
- pulumi_gcp/iap/app_engine_version_iam_policy.py +97 -92
- pulumi_gcp/iap/brand.py +5 -0
- pulumi_gcp/iap/client.py +5 -0
- pulumi_gcp/iap/get_app_engine_service_iam_policy.py +5 -0
- pulumi_gcp/iap/get_app_engine_version_iam_policy.py +5 -0
- pulumi_gcp/iap/get_client.py +5 -0
- pulumi_gcp/iap/get_tunnel_dest_group_iam_policy.py +5 -0
- pulumi_gcp/iap/get_tunnel_iam_policy.py +5 -0
- pulumi_gcp/iap/get_tunnel_instance_iam_policy.py +5 -0
- pulumi_gcp/iap/get_web_backend_service_iam_policy.py +5 -0
- pulumi_gcp/iap/get_web_iam_policy.py +5 -0
- pulumi_gcp/iap/get_web_region_backend_service_iam_policy.py +5 -0
- pulumi_gcp/iap/get_web_type_app_engine_iam_policy.py +5 -0
- pulumi_gcp/iap/get_web_type_compute_iam_policy.py +5 -0
- pulumi_gcp/iap/outputs.py +5 -0
- pulumi_gcp/iap/tunnel_dest_group.py +5 -0
- pulumi_gcp/iap/tunnel_dest_group_iam_binding.py +102 -97
- pulumi_gcp/iap/tunnel_dest_group_iam_member.py +102 -97
- pulumi_gcp/iap/tunnel_dest_group_iam_policy.py +97 -92
- pulumi_gcp/iap/tunnel_iam_binding.py +102 -97
- pulumi_gcp/iap/tunnel_iam_member.py +102 -97
- pulumi_gcp/iap/tunnel_iam_policy.py +97 -92
- pulumi_gcp/iap/tunnel_instance_iam_binding.py +102 -97
- pulumi_gcp/iap/tunnel_instance_iam_member.py +102 -97
- pulumi_gcp/iap/tunnel_instance_iam_policy.py +97 -92
- pulumi_gcp/iap/web_backend_service_iam_binding.py +102 -97
- pulumi_gcp/iap/web_backend_service_iam_member.py +102 -97
- pulumi_gcp/iap/web_backend_service_iam_policy.py +97 -92
- pulumi_gcp/iap/web_iam_binding.py +102 -97
- pulumi_gcp/iap/web_iam_member.py +102 -97
- pulumi_gcp/iap/web_iam_policy.py +97 -92
- pulumi_gcp/iap/web_region_backend_service_iam_binding.py +102 -97
- pulumi_gcp/iap/web_region_backend_service_iam_member.py +102 -97
- pulumi_gcp/iap/web_region_backend_service_iam_policy.py +97 -92
- pulumi_gcp/iap/web_type_app_enging_iam_binding.py +102 -97
- pulumi_gcp/iap/web_type_app_enging_iam_member.py +102 -97
- pulumi_gcp/iap/web_type_app_enging_iam_policy.py +97 -92
- pulumi_gcp/iap/web_type_compute_iam_binding.py +102 -97
- pulumi_gcp/iap/web_type_compute_iam_member.py +102 -97
- pulumi_gcp/iap/web_type_compute_iam_policy.py +97 -92
- pulumi_gcp/identityplatform/_inputs.py +576 -0
- pulumi_gcp/identityplatform/config.py +119 -114
- pulumi_gcp/identityplatform/default_supported_idp_config.py +5 -0
- pulumi_gcp/identityplatform/inbound_saml_config.py +39 -34
- pulumi_gcp/identityplatform/oauth_idp_config.py +5 -0
- pulumi_gcp/identityplatform/outputs.py +5 -0
- pulumi_gcp/identityplatform/project_default_config.py +38 -33
- pulumi_gcp/identityplatform/tenant.py +5 -0
- pulumi_gcp/identityplatform/tenant_default_supported_idp_config.py +5 -0
- pulumi_gcp/identityplatform/tenant_inbound_saml_config.py +39 -34
- pulumi_gcp/identityplatform/tenant_oauth_idp_config.py +5 -0
- pulumi_gcp/integrationconnectors/_inputs.py +868 -0
- pulumi_gcp/integrationconnectors/connection.py +465 -460
- pulumi_gcp/integrationconnectors/endpoint_attachment.py +5 -0
- pulumi_gcp/integrationconnectors/managed_zone.py +15 -10
- pulumi_gcp/integrationconnectors/outputs.py +5 -0
- pulumi_gcp/kms/_inputs.py +303 -0
- pulumi_gcp/kms/autokey_config.py +5 -0
- pulumi_gcp/kms/crypto_key.py +18 -13
- pulumi_gcp/kms/crypto_key_iam_binding.py +56 -51
- pulumi_gcp/kms/crypto_key_iam_member.py +56 -51
- pulumi_gcp/kms/crypto_key_iam_policy.py +51 -46
- pulumi_gcp/kms/crypto_key_version.py +12 -7
- pulumi_gcp/kms/ekm_connection.py +24 -19
- pulumi_gcp/kms/get_crypto_key_iam_policy.py +5 -0
- pulumi_gcp/kms/get_key_ring_iam_policy.py +5 -0
- pulumi_gcp/kms/get_kms_crypto_key.py +5 -0
- pulumi_gcp/kms/get_kms_crypto_key_version.py +5 -0
- pulumi_gcp/kms/get_kms_key_ring.py +5 -0
- pulumi_gcp/kms/get_kms_secret.py +11 -6
- pulumi_gcp/kms/get_kms_secret_asymmetric.py +17 -12
- pulumi_gcp/kms/get_kms_secret_ciphertext.py +23 -18
- pulumi_gcp/kms/key_handle.py +5 -0
- pulumi_gcp/kms/key_ring.py +5 -0
- pulumi_gcp/kms/key_ring_iam_binding.py +102 -97
- pulumi_gcp/kms/key_ring_iam_member.py +102 -97
- pulumi_gcp/kms/key_ring_iam_policy.py +97 -92
- pulumi_gcp/kms/key_ring_import_job.py +9 -4
- pulumi_gcp/kms/outputs.py +5 -0
- pulumi_gcp/kms/secret_ciphertext.py +23 -18
- pulumi_gcp/logging/_inputs.py +520 -0
- pulumi_gcp/logging/billing_account_bucket_config.py +15 -10
- pulumi_gcp/logging/billing_account_exclusion.py +5 -0
- pulumi_gcp/logging/billing_account_sink.py +15 -10
- pulumi_gcp/logging/folder_bucket_config.py +15 -10
- pulumi_gcp/logging/folder_exclusion.py +5 -0
- pulumi_gcp/logging/folder_settings.py +5 -0
- pulumi_gcp/logging/folder_sink.py +15 -10
- pulumi_gcp/logging/get_folder_settings.py +5 -0
- pulumi_gcp/logging/get_log_view_iam_policy.py +5 -0
- pulumi_gcp/logging/get_organization_settings.py +5 -0
- pulumi_gcp/logging/get_project_cmek_settings.py +5 -0
- pulumi_gcp/logging/get_project_settings.py +5 -0
- pulumi_gcp/logging/get_sink.py +5 -0
- pulumi_gcp/logging/linked_dataset.py +10 -5
- pulumi_gcp/logging/log_view.py +5 -0
- pulumi_gcp/logging/log_view_iam_binding.py +10 -5
- pulumi_gcp/logging/log_view_iam_member.py +10 -5
- pulumi_gcp/logging/log_view_iam_policy.py +5 -0
- pulumi_gcp/logging/metric.py +97 -92
- pulumi_gcp/logging/organization_bucket_config.py +15 -10
- pulumi_gcp/logging/organization_exclusion.py +5 -0
- pulumi_gcp/logging/organization_settings.py +5 -0
- pulumi_gcp/logging/organization_sink.py +15 -10
- pulumi_gcp/logging/outputs.py +5 -0
- pulumi_gcp/logging/project_bucket_config.py +21 -16
- pulumi_gcp/logging/project_exclusion.py +5 -0
- pulumi_gcp/logging/project_sink.py +15 -10
- pulumi_gcp/looker/_inputs.py +211 -0
- pulumi_gcp/looker/instance.py +204 -199
- pulumi_gcp/looker/outputs.py +5 -0
- pulumi_gcp/managedkafka/_inputs.py +69 -0
- pulumi_gcp/managedkafka/cluster.py +72 -67
- pulumi_gcp/managedkafka/outputs.py +5 -0
- pulumi_gcp/managedkafka/topic.py +27 -22
- pulumi_gcp/memcache/_inputs.py +184 -0
- pulumi_gcp/memcache/instance.py +56 -51
- pulumi_gcp/memcache/outputs.py +5 -0
- pulumi_gcp/migrationcenter/_inputs.py +182 -0
- pulumi_gcp/migrationcenter/group.py +5 -0
- pulumi_gcp/migrationcenter/outputs.py +5 -0
- pulumi_gcp/migrationcenter/preference_set.py +82 -77
- pulumi_gcp/ml/_inputs.py +17 -0
- pulumi_gcp/ml/engine_model.py +10 -5
- pulumi_gcp/ml/outputs.py +5 -0
- pulumi_gcp/monitoring/_inputs.py +1651 -12
- pulumi_gcp/monitoring/alert_policy.py +128 -123
- pulumi_gcp/monitoring/custom_service.py +16 -11
- pulumi_gcp/monitoring/dashboard.py +5 -0
- pulumi_gcp/monitoring/generic_service.py +20 -15
- pulumi_gcp/monitoring/get_app_engine_service.py +21 -16
- pulumi_gcp/monitoring/get_cluster_istio_service.py +5 -0
- pulumi_gcp/monitoring/get_istio_canonical_service.py +5 -0
- pulumi_gcp/monitoring/get_mesh_istio_service.py +5 -0
- pulumi_gcp/monitoring/get_notification_channel.py +29 -24
- pulumi_gcp/monitoring/get_secret_version.py +5 -0
- pulumi_gcp/monitoring/get_uptime_check_i_ps.py +5 -0
- pulumi_gcp/monitoring/group.py +5 -0
- pulumi_gcp/monitoring/metric_descriptor.py +49 -44
- pulumi_gcp/monitoring/monitored_project.py +5 -0
- pulumi_gcp/monitoring/notification_channel.py +16 -11
- pulumi_gcp/monitoring/outputs.py +5 -0
- pulumi_gcp/monitoring/slo.py +120 -115
- pulumi_gcp/monitoring/uptime_check_config.py +241 -236
- pulumi_gcp/netapp/_inputs.py +311 -0
- pulumi_gcp/netapp/active_directory.py +5 -0
- pulumi_gcp/netapp/backup.py +11 -6
- pulumi_gcp/netapp/backup_policy.py +5 -0
- pulumi_gcp/netapp/backup_vault.py +5 -0
- pulumi_gcp/netapp/kmsconfig.py +5 -0
- pulumi_gcp/netapp/outputs.py +5 -0
- pulumi_gcp/netapp/storage_pool.py +5 -0
- pulumi_gcp/netapp/volume.py +27 -22
- pulumi_gcp/netapp/volume_replication.py +24 -19
- pulumi_gcp/netapp/volume_snapshot.py +5 -0
- pulumi_gcp/networkconnectivity/_inputs.py +253 -0
- pulumi_gcp/networkconnectivity/hub.py +7 -2
- pulumi_gcp/networkconnectivity/internal_range.py +5 -0
- pulumi_gcp/networkconnectivity/outputs.py +5 -0
- pulumi_gcp/networkconnectivity/policy_based_route.py +46 -41
- pulumi_gcp/networkconnectivity/regional_endpoint.py +5 -0
- pulumi_gcp/networkconnectivity/service_connection_policy.py +20 -15
- pulumi_gcp/networkconnectivity/spoke.py +71 -66
- pulumi_gcp/networkmanagement/_inputs.py +87 -0
- pulumi_gcp/networkmanagement/connectivity_test.py +85 -80
- pulumi_gcp/networkmanagement/outputs.py +5 -0
- pulumi_gcp/networksecurity/_inputs.py +321 -0
- pulumi_gcp/networksecurity/address_group.py +5 -0
- pulumi_gcp/networksecurity/address_group_iam_binding.py +8 -3
- pulumi_gcp/networksecurity/address_group_iam_member.py +8 -3
- pulumi_gcp/networksecurity/address_group_iam_policy.py +5 -0
- pulumi_gcp/networksecurity/authorization_policy.py +52 -47
- pulumi_gcp/networksecurity/client_tls_policy.py +45 -40
- pulumi_gcp/networksecurity/firewall_endpoint.py +5 -0
- pulumi_gcp/networksecurity/firewall_endpoint_association.py +5 -0
- pulumi_gcp/networksecurity/gateway_security_policy.py +91 -86
- pulumi_gcp/networksecurity/gateway_security_policy_rule.py +5 -0
- pulumi_gcp/networksecurity/get_address_group_iam_policy.py +5 -0
- pulumi_gcp/networksecurity/outputs.py +5 -0
- pulumi_gcp/networksecurity/security_profile.py +40 -35
- pulumi_gcp/networksecurity/security_profile_group.py +5 -0
- pulumi_gcp/networksecurity/server_tls_policy.py +101 -96
- pulumi_gcp/networksecurity/tls_inspection_policy.py +193 -188
- pulumi_gcp/networksecurity/url_list.py +5 -0
- pulumi_gcp/networkservices/_inputs.py +1781 -29
- pulumi_gcp/networkservices/edge_cache_keyset.py +51 -46
- pulumi_gcp/networkservices/edge_cache_origin.py +89 -84
- pulumi_gcp/networkservices/edge_cache_service.py +567 -562
- pulumi_gcp/networkservices/endpoint_policy.py +55 -50
- pulumi_gcp/networkservices/gateway.py +21 -16
- pulumi_gcp/networkservices/grpc_route.py +146 -141
- pulumi_gcp/networkservices/http_route.py +294 -289
- pulumi_gcp/networkservices/lb_route_extension.py +10 -5
- pulumi_gcp/networkservices/lb_traffic_extension.py +10 -5
- pulumi_gcp/networkservices/mesh.py +5 -0
- pulumi_gcp/networkservices/outputs.py +5 -0
- pulumi_gcp/networkservices/service_binding.py +5 -0
- pulumi_gcp/networkservices/service_lb_policies.py +27 -22
- pulumi_gcp/networkservices/tcp_route.py +106 -101
- pulumi_gcp/networkservices/tls_route.py +82 -77
- pulumi_gcp/notebooks/_inputs.py +615 -0
- pulumi_gcp/notebooks/environment.py +21 -16
- pulumi_gcp/notebooks/get_instance_iam_policy.py +5 -0
- pulumi_gcp/notebooks/get_runtime_iam_policy.py +5 -0
- pulumi_gcp/notebooks/instance.py +78 -73
- pulumi_gcp/notebooks/instance_iam_binding.py +24 -19
- pulumi_gcp/notebooks/instance_iam_member.py +24 -19
- pulumi_gcp/notebooks/instance_iam_policy.py +21 -16
- pulumi_gcp/notebooks/location.py +5 -0
- pulumi_gcp/notebooks/outputs.py +5 -0
- pulumi_gcp/notebooks/runtime.py +222 -217
- pulumi_gcp/notebooks/runtime_iam_binding.py +24 -19
- pulumi_gcp/notebooks/runtime_iam_member.py +24 -19
- pulumi_gcp/notebooks/runtime_iam_policy.py +21 -16
- pulumi_gcp/organizations/_inputs.py +231 -0
- pulumi_gcp/organizations/access_approval_settings.py +36 -31
- pulumi_gcp/organizations/folder.py +5 -0
- pulumi_gcp/organizations/get_active_folder.py +5 -0
- pulumi_gcp/organizations/get_billing_account.py +5 -0
- pulumi_gcp/organizations/get_client_config.py +5 -0
- pulumi_gcp/organizations/get_client_open_id_user_info.py +5 -0
- pulumi_gcp/organizations/get_folder.py +5 -0
- pulumi_gcp/organizations/get_folders.py +5 -0
- pulumi_gcp/organizations/get_iam_policy.py +13 -8
- pulumi_gcp/organizations/get_organization.py +5 -0
- pulumi_gcp/organizations/get_project.py +5 -0
- pulumi_gcp/organizations/iam_audit_config.py +18 -13
- pulumi_gcp/organizations/iam_binding.py +8 -3
- pulumi_gcp/organizations/iam_custom_role.py +5 -0
- pulumi_gcp/organizations/iam_member.py +130 -125
- pulumi_gcp/organizations/iam_policy.py +125 -120
- pulumi_gcp/organizations/outputs.py +5 -0
- pulumi_gcp/organizations/policy.py +54 -49
- pulumi_gcp/organizations/project.py +5 -0
- pulumi_gcp/orgpolicy/_inputs.py +183 -0
- pulumi_gcp/orgpolicy/custom_constraint.py +15 -10
- pulumi_gcp/orgpolicy/outputs.py +5 -0
- pulumi_gcp/orgpolicy/policy.py +103 -98
- pulumi_gcp/osconfig/_inputs.py +2235 -30
- pulumi_gcp/osconfig/guest_policies.py +171 -166
- pulumi_gcp/osconfig/os_policy_assignment.py +158 -153
- pulumi_gcp/osconfig/outputs.py +5 -0
- pulumi_gcp/osconfig/patch_deployment.py +326 -321
- pulumi_gcp/oslogin/ssh_public_key.py +5 -0
- pulumi_gcp/parallelstore/instance.py +5 -0
- pulumi_gcp/privilegedaccessmanager/_inputs.py +170 -0
- pulumi_gcp/privilegedaccessmanager/entitlement.py +94 -89
- pulumi_gcp/privilegedaccessmanager/outputs.py +5 -0
- pulumi_gcp/projects/_inputs.py +262 -0
- pulumi_gcp/projects/access_approval_settings.py +30 -25
- pulumi_gcp/projects/api_key.py +88 -83
- pulumi_gcp/projects/default_service_accounts.py +5 -0
- pulumi_gcp/projects/get_iam_policy.py +5 -0
- pulumi_gcp/projects/get_organization_policy.py +5 -0
- pulumi_gcp/projects/get_project.py +5 -0
- pulumi_gcp/projects/get_project_service.py +5 -0
- pulumi_gcp/projects/iam_audit_config.py +130 -125
- pulumi_gcp/projects/iam_binding.py +130 -125
- pulumi_gcp/projects/iam_custom_role.py +5 -0
- pulumi_gcp/projects/iam_member.py +130 -125
- pulumi_gcp/projects/iam_member_remove.py +5 -0
- pulumi_gcp/projects/iam_policy.py +125 -120
- pulumi_gcp/projects/organization_policy.py +54 -49
- pulumi_gcp/projects/outputs.py +5 -0
- pulumi_gcp/projects/service.py +5 -0
- pulumi_gcp/projects/service_identity.py +5 -0
- pulumi_gcp/projects/usage_export_bucket.py +5 -0
- pulumi_gcp/provider.py +7 -2
- pulumi_gcp/pubsub/_inputs.py +438 -0
- pulumi_gcp/pubsub/get_schema_iam_policy.py +5 -0
- pulumi_gcp/pubsub/get_subscription.py +5 -0
- pulumi_gcp/pubsub/get_subscription_iam_policy.py +5 -0
- pulumi_gcp/pubsub/get_topic.py +5 -0
- pulumi_gcp/pubsub/get_topic_iam_policy.py +5 -0
- pulumi_gcp/pubsub/lite_reservation.py +5 -0
- pulumi_gcp/pubsub/lite_subscription.py +36 -31
- pulumi_gcp/pubsub/lite_topic.py +46 -41
- pulumi_gcp/pubsub/outputs.py +5 -0
- pulumi_gcp/pubsub/schema.py +13 -8
- pulumi_gcp/pubsub/schema_iam_binding.py +24 -19
- pulumi_gcp/pubsub/schema_iam_member.py +24 -19
- pulumi_gcp/pubsub/schema_iam_policy.py +21 -16
- pulumi_gcp/pubsub/subscription.py +141 -136
- pulumi_gcp/pubsub/subscription_iam_binding.py +24 -19
- pulumi_gcp/pubsub/subscription_iam_member.py +24 -19
- pulumi_gcp/pubsub/subscription_iam_policy.py +21 -16
- pulumi_gcp/pubsub/topic.py +50 -45
- pulumi_gcp/pubsub/topic_iam_binding.py +24 -19
- pulumi_gcp/pubsub/topic_iam_member.py +24 -19
- pulumi_gcp/pubsub/topic_iam_policy.py +21 -16
- pulumi_gcp/pulumi-plugin.json +1 -1
- pulumi_gcp/recaptcha/_inputs.py +89 -0
- pulumi_gcp/recaptcha/enterprise_key.py +132 -127
- pulumi_gcp/recaptcha/outputs.py +5 -0
- pulumi_gcp/redis/_inputs.py +321 -0
- pulumi_gcp/redis/cluster.py +59 -54
- pulumi_gcp/redis/get_instance.py +5 -0
- pulumi_gcp/redis/instance.py +51 -46
- pulumi_gcp/redis/outputs.py +5 -0
- pulumi_gcp/resourcemanager/lien.py +5 -0
- pulumi_gcp/runtimeconfig/_inputs.py +25 -0
- pulumi_gcp/runtimeconfig/config.py +5 -0
- pulumi_gcp/runtimeconfig/config_iam_binding.py +8 -3
- pulumi_gcp/runtimeconfig/config_iam_member.py +8 -3
- pulumi_gcp/runtimeconfig/config_iam_policy.py +5 -0
- pulumi_gcp/runtimeconfig/get_config.py +5 -0
- pulumi_gcp/runtimeconfig/get_config_iam_policy.py +5 -0
- pulumi_gcp/runtimeconfig/get_variable.py +5 -0
- pulumi_gcp/runtimeconfig/outputs.py +5 -0
- pulumi_gcp/runtimeconfig/variable.py +5 -0
- pulumi_gcp/secretmanager/_inputs.py +143 -0
- pulumi_gcp/secretmanager/get_secret.py +5 -0
- pulumi_gcp/secretmanager/get_secret_iam_policy.py +5 -0
- pulumi_gcp/secretmanager/get_secret_version.py +5 -0
- pulumi_gcp/secretmanager/get_secret_version_access.py +5 -0
- pulumi_gcp/secretmanager/get_secrets.py +5 -0
- pulumi_gcp/secretmanager/outputs.py +5 -0
- pulumi_gcp/secretmanager/secret.py +68 -63
- pulumi_gcp/secretmanager/secret_iam_binding.py +102 -97
- pulumi_gcp/secretmanager/secret_iam_member.py +102 -97
- pulumi_gcp/secretmanager/secret_iam_policy.py +97 -92
- pulumi_gcp/secretmanager/secret_version.py +53 -48
- pulumi_gcp/securesourcemanager/_inputs.py +75 -0
- pulumi_gcp/securesourcemanager/get_instance_iam_policy.py +5 -0
- pulumi_gcp/securesourcemanager/instance.py +78 -73
- pulumi_gcp/securesourcemanager/instance_iam_binding.py +8 -3
- pulumi_gcp/securesourcemanager/instance_iam_member.py +8 -3
- pulumi_gcp/securesourcemanager/instance_iam_policy.py +5 -0
- pulumi_gcp/securesourcemanager/outputs.py +5 -0
- pulumi_gcp/securitycenter/_inputs.py +860 -7
- pulumi_gcp/securitycenter/event_threat_detection_custom_module.py +5 -0
- pulumi_gcp/securitycenter/folder_custom_module.py +82 -77
- pulumi_gcp/securitycenter/get_source_iam_policy.py +5 -0
- pulumi_gcp/securitycenter/instance_iam_binding.py +38 -33
- pulumi_gcp/securitycenter/instance_iam_member.py +38 -33
- pulumi_gcp/securitycenter/instance_iam_policy.py +35 -30
- pulumi_gcp/securitycenter/management_folder_security_health_analytics_custom_module.py +82 -77
- pulumi_gcp/securitycenter/management_organization_event_threat_detection_custom_module.py +5 -0
- pulumi_gcp/securitycenter/management_organization_security_health_analytics_custom_module.py +82 -77
- pulumi_gcp/securitycenter/management_project_security_health_analytics_custom_module.py +82 -77
- pulumi_gcp/securitycenter/mute_config.py +5 -0
- pulumi_gcp/securitycenter/notification_config.py +16 -11
- pulumi_gcp/securitycenter/organization_custom_module.py +82 -77
- pulumi_gcp/securitycenter/outputs.py +5 -0
- pulumi_gcp/securitycenter/project_custom_module.py +82 -77
- pulumi_gcp/securitycenter/source.py +5 -0
- pulumi_gcp/securitycenter/source_iam_binding.py +8 -3
- pulumi_gcp/securitycenter/source_iam_member.py +8 -3
- pulumi_gcp/securitycenter/source_iam_policy.py +5 -0
- pulumi_gcp/securityposture/_inputs.py +457 -0
- pulumi_gcp/securityposture/outputs.py +5 -0
- pulumi_gcp/securityposture/posture.py +186 -181
- pulumi_gcp/securityposture/posture_deployment.py +35 -30
- pulumi_gcp/serviceaccount/_inputs.py +51 -0
- pulumi_gcp/serviceaccount/account.py +5 -0
- pulumi_gcp/serviceaccount/get_account.py +5 -0
- pulumi_gcp/serviceaccount/get_account_access_token.py +5 -0
- pulumi_gcp/serviceaccount/get_account_id_token.py +5 -0
- pulumi_gcp/serviceaccount/get_account_jwt.py +5 -0
- pulumi_gcp/serviceaccount/get_account_key.py +5 -0
- pulumi_gcp/serviceaccount/get_iam_policy.py +5 -0
- pulumi_gcp/serviceaccount/iam_binding.py +66 -61
- pulumi_gcp/serviceaccount/iam_member.py +66 -61
- pulumi_gcp/serviceaccount/iam_policy.py +61 -56
- pulumi_gcp/serviceaccount/key.py +5 -0
- pulumi_gcp/serviceaccount/outputs.py +5 -0
- pulumi_gcp/servicedirectory/_inputs.py +43 -0
- pulumi_gcp/servicedirectory/endpoint.py +5 -0
- pulumi_gcp/servicedirectory/get_namespace_iam_policy.py +5 -0
- pulumi_gcp/servicedirectory/get_service_iam_policy.py +5 -0
- pulumi_gcp/servicedirectory/namespace.py +5 -0
- pulumi_gcp/servicedirectory/namespace_iam_binding.py +24 -19
- pulumi_gcp/servicedirectory/namespace_iam_member.py +24 -19
- pulumi_gcp/servicedirectory/namespace_iam_policy.py +21 -16
- pulumi_gcp/servicedirectory/outputs.py +5 -0
- pulumi_gcp/servicedirectory/service.py +5 -0
- pulumi_gcp/servicedirectory/service_iam_binding.py +24 -19
- pulumi_gcp/servicedirectory/service_iam_member.py +24 -19
- pulumi_gcp/servicedirectory/service_iam_policy.py +21 -16
- pulumi_gcp/servicenetworking/connection.py +5 -0
- pulumi_gcp/servicenetworking/get_peered_dns_domain.py +5 -0
- pulumi_gcp/servicenetworking/peered_dns_domain.py +5 -0
- pulumi_gcp/servicenetworking/vpc_service_controls.py +5 -0
- pulumi_gcp/serviceusage/consumer_quota_override.py +5 -0
- pulumi_gcp/sourcerepo/_inputs.py +49 -0
- pulumi_gcp/sourcerepo/get_repository.py +5 -0
- pulumi_gcp/sourcerepo/get_repository_iam_policy.py +5 -0
- pulumi_gcp/sourcerepo/outputs.py +5 -0
- pulumi_gcp/sourcerepo/repository.py +20 -15
- pulumi_gcp/sourcerepo/repository_iam_binding.py +24 -19
- pulumi_gcp/sourcerepo/repository_iam_member.py +24 -19
- pulumi_gcp/sourcerepo/repository_iam_policy.py +21 -16
- pulumi_gcp/spanner/_inputs.py +157 -0
- pulumi_gcp/spanner/database.py +10 -5
- pulumi_gcp/spanner/database_iam_binding.py +102 -97
- pulumi_gcp/spanner/database_iam_member.py +102 -97
- pulumi_gcp/spanner/database_iam_policy.py +97 -92
- pulumi_gcp/spanner/get_database_iam_policy.py +5 -0
- pulumi_gcp/spanner/get_instance.py +5 -0
- pulumi_gcp/spanner/get_instance_iam_policy.py +5 -0
- pulumi_gcp/spanner/instance.py +30 -25
- pulumi_gcp/spanner/instance_config.py +10 -5
- pulumi_gcp/spanner/instance_iam_binding.py +24 -19
- pulumi_gcp/spanner/instance_iam_member.py +24 -19
- pulumi_gcp/spanner/instance_iam_policy.py +21 -16
- pulumi_gcp/spanner/outputs.py +5 -0
- pulumi_gcp/sql/_inputs.py +616 -0
- pulumi_gcp/sql/database.py +17 -12
- pulumi_gcp/sql/database_instance.py +93 -88
- pulumi_gcp/sql/get_backup_run.py +5 -0
- pulumi_gcp/sql/get_ca_certs.py +5 -0
- pulumi_gcp/sql/get_database.py +5 -0
- pulumi_gcp/sql/get_database_instance.py +5 -0
- pulumi_gcp/sql/get_database_instance_latest_recovery_time.py +5 -0
- pulumi_gcp/sql/get_database_instances.py +5 -0
- pulumi_gcp/sql/get_databases.py +5 -0
- pulumi_gcp/sql/get_tiers.py +5 -0
- pulumi_gcp/sql/outputs.py +5 -0
- pulumi_gcp/sql/source_representation_instance.py +5 -0
- pulumi_gcp/sql/ssl_cert.py +11 -6
- pulumi_gcp/sql/user.py +43 -38
- pulumi_gcp/storage/_inputs.py +828 -0
- pulumi_gcp/storage/bucket.py +125 -120
- pulumi_gcp/storage/bucket_access_control.py +5 -0
- pulumi_gcp/storage/bucket_acl.py +5 -0
- pulumi_gcp/storage/bucket_iam_binding.py +102 -97
- pulumi_gcp/storage/bucket_iam_member.py +102 -97
- pulumi_gcp/storage/bucket_iam_policy.py +97 -92
- pulumi_gcp/storage/bucket_object.py +15 -10
- pulumi_gcp/storage/default_object_access_control.py +7 -2
- pulumi_gcp/storage/default_object_acl.py +5 -0
- pulumi_gcp/storage/get_bucket.py +5 -0
- pulumi_gcp/storage/get_bucket_iam_policy.py +5 -0
- pulumi_gcp/storage/get_bucket_object.py +5 -0
- pulumi_gcp/storage/get_bucket_object_content.py +5 -0
- pulumi_gcp/storage/get_bucket_objects.py +5 -0
- pulumi_gcp/storage/get_buckets.py +5 -0
- pulumi_gcp/storage/get_object_signed_url.py +5 -0
- pulumi_gcp/storage/get_project_service_account.py +11 -6
- pulumi_gcp/storage/get_transfer_project_service_account.py +5 -0
- pulumi_gcp/storage/get_transfer_project_servie_account.py +5 -0
- pulumi_gcp/storage/hmac_key.py +5 -0
- pulumi_gcp/storage/insights_report_config.py +76 -71
- pulumi_gcp/storage/notification.py +5 -0
- pulumi_gcp/storage/object_access_control.py +7 -2
- pulumi_gcp/storage/object_acl.py +5 -0
- pulumi_gcp/storage/outputs.py +5 -0
- pulumi_gcp/storage/transfer_agent_pool.py +16 -11
- pulumi_gcp/storage/transfer_job.py +113 -108
- pulumi_gcp/tags/_inputs.py +43 -0
- pulumi_gcp/tags/get_tag_key.py +5 -0
- pulumi_gcp/tags/get_tag_key_iam_policy.py +5 -0
- pulumi_gcp/tags/get_tag_keys.py +5 -0
- pulumi_gcp/tags/get_tag_value.py +5 -0
- pulumi_gcp/tags/get_tag_value_iam_policy.py +5 -0
- pulumi_gcp/tags/get_tag_values.py +5 -0
- pulumi_gcp/tags/location_tag_binding.py +5 -0
- pulumi_gcp/tags/outputs.py +5 -0
- pulumi_gcp/tags/tag_binding.py +5 -0
- pulumi_gcp/tags/tag_key.py +5 -0
- pulumi_gcp/tags/tag_key_iam_binding.py +24 -19
- pulumi_gcp/tags/tag_key_iam_member.py +24 -19
- pulumi_gcp/tags/tag_key_iam_policy.py +21 -16
- pulumi_gcp/tags/tag_value.py +5 -0
- pulumi_gcp/tags/tag_value_iam_binding.py +24 -19
- pulumi_gcp/tags/tag_value_iam_member.py +24 -19
- pulumi_gcp/tags/tag_value_iam_policy.py +21 -16
- pulumi_gcp/tpu/_inputs.py +194 -0
- pulumi_gcp/tpu/get_tensorflow_versions.py +5 -0
- pulumi_gcp/tpu/get_v2_accelerator_types.py +5 -0
- pulumi_gcp/tpu/get_v2_runtime_versions.py +5 -0
- pulumi_gcp/tpu/node.py +18 -13
- pulumi_gcp/tpu/outputs.py +5 -0
- pulumi_gcp/tpu/v2_vm.py +87 -82
- pulumi_gcp/vertex/_inputs.py +841 -0
- pulumi_gcp/vertex/ai_dataset.py +10 -5
- pulumi_gcp/vertex/ai_deployment_resource_pool.py +36 -31
- pulumi_gcp/vertex/ai_endpoint.py +18 -13
- pulumi_gcp/vertex/ai_endpoint_iam_binding.py +8 -3
- pulumi_gcp/vertex/ai_endpoint_iam_member.py +8 -3
- pulumi_gcp/vertex/ai_endpoint_iam_policy.py +5 -0
- pulumi_gcp/vertex/ai_feature_group.py +22 -17
- pulumi_gcp/vertex/ai_feature_group_feature.py +17 -12
- pulumi_gcp/vertex/ai_feature_online_store.py +73 -68
- pulumi_gcp/vertex/ai_feature_online_store_featureview.py +151 -146
- pulumi_gcp/vertex/ai_feature_store.py +57 -52
- pulumi_gcp/vertex/ai_feature_store_entity_type.py +92 -87
- pulumi_gcp/vertex/ai_feature_store_entity_type_feature.py +41 -36
- pulumi_gcp/vertex/ai_feature_store_entity_type_iam_binding.py +8 -3
- pulumi_gcp/vertex/ai_feature_store_entity_type_iam_member.py +8 -3
- pulumi_gcp/vertex/ai_feature_store_entity_type_iam_policy.py +5 -0
- pulumi_gcp/vertex/ai_feature_store_iam_binding.py +8 -3
- pulumi_gcp/vertex/ai_feature_store_iam_member.py +8 -3
- pulumi_gcp/vertex/ai_feature_store_iam_policy.py +5 -0
- pulumi_gcp/vertex/ai_index.py +68 -63
- pulumi_gcp/vertex/ai_index_endpoint.py +18 -13
- pulumi_gcp/vertex/ai_metadata_store.py +12 -7
- pulumi_gcp/vertex/ai_tensorboard.py +16 -11
- pulumi_gcp/vertex/get_ai_endpoint_iam_policy.py +5 -0
- pulumi_gcp/vertex/get_ai_featurestore_entitytype_iam_policy.py +5 -0
- pulumi_gcp/vertex/get_ai_featurestore_iam_policy.py +5 -0
- pulumi_gcp/vertex/get_ai_index.py +5 -0
- pulumi_gcp/vertex/outputs.py +5 -0
- pulumi_gcp/vmwareengine/_inputs.py +290 -0
- pulumi_gcp/vmwareengine/cluster.py +74 -69
- pulumi_gcp/vmwareengine/external_access_rule.py +61 -56
- pulumi_gcp/vmwareengine/external_address.py +27 -22
- pulumi_gcp/vmwareengine/get_cluster.py +5 -0
- pulumi_gcp/vmwareengine/get_external_access_rule.py +5 -0
- pulumi_gcp/vmwareengine/get_external_address.py +5 -0
- pulumi_gcp/vmwareengine/get_network.py +5 -0
- pulumi_gcp/vmwareengine/get_network_peering.py +5 -0
- pulumi_gcp/vmwareengine/get_network_policy.py +5 -0
- pulumi_gcp/vmwareengine/get_nsx_credentials.py +5 -0
- pulumi_gcp/vmwareengine/get_private_cloud.py +5 -0
- pulumi_gcp/vmwareengine/get_subnet.py +5 -0
- pulumi_gcp/vmwareengine/get_vcenter_credentials.py +5 -0
- pulumi_gcp/vmwareengine/network.py +7 -2
- pulumi_gcp/vmwareengine/network_peering.py +5 -0
- pulumi_gcp/vmwareengine/network_policy.py +27 -22
- pulumi_gcp/vmwareengine/outputs.py +5 -0
- pulumi_gcp/vmwareengine/private_cloud.py +67 -62
- pulumi_gcp/vmwareengine/subnet.py +29 -24
- pulumi_gcp/vpcaccess/_inputs.py +22 -0
- pulumi_gcp/vpcaccess/connector.py +16 -11
- pulumi_gcp/vpcaccess/get_connector.py +5 -0
- pulumi_gcp/vpcaccess/outputs.py +5 -0
- pulumi_gcp/workbench/_inputs.py +319 -0
- pulumi_gcp/workbench/get_instance_iam_policy.py +5 -0
- pulumi_gcp/workbench/instance.py +144 -139
- pulumi_gcp/workbench/instance_iam_binding.py +8 -3
- pulumi_gcp/workbench/instance_iam_member.py +8 -3
- pulumi_gcp/workbench/instance_iam_policy.py +5 -0
- pulumi_gcp/workbench/outputs.py +5 -0
- pulumi_gcp/workflows/workflow.py +5 -0
- pulumi_gcp/workstations/_inputs.py +433 -0
- pulumi_gcp/workstations/get_workstation_config_iam_policy.py +5 -0
- pulumi_gcp/workstations/get_workstation_iam_policy.py +5 -0
- pulumi_gcp/workstations/outputs.py +5 -0
- pulumi_gcp/workstations/workstation.py +19 -14
- pulumi_gcp/workstations/workstation_cluster.py +35 -30
- pulumi_gcp/workstations/workstation_config.py +251 -246
- pulumi_gcp/workstations/workstation_config_iam_binding.py +8 -3
- pulumi_gcp/workstations/workstation_config_iam_member.py +8 -3
- pulumi_gcp/workstations/workstation_config_iam_policy.py +5 -0
- pulumi_gcp/workstations/workstation_iam_binding.py +8 -3
- pulumi_gcp/workstations/workstation_iam_member.py +8 -3
- pulumi_gcp/workstations/workstation_iam_policy.py +5 -0
- {pulumi_gcp-7.30.0a1719470057.dist-info → pulumi_gcp-7.30.0a1719555549.dist-info}/METADATA +2 -1
- pulumi_gcp-7.30.0a1719555549.dist-info/RECORD +1600 -0
- pulumi_gcp-7.30.0a1719470057.dist-info/RECORD +0 -1600
- {pulumi_gcp-7.30.0a1719470057.dist-info → pulumi_gcp-7.30.0a1719555549.dist-info}/WHEEL +0 -0
- {pulumi_gcp-7.30.0a1719470057.dist-info → pulumi_gcp-7.30.0a1719555549.dist-info}/top_level.txt +0 -0
@@ -4,104 +4,221 @@
|
|
4
4
|
|
5
5
|
import copy
|
6
6
|
import warnings
|
7
|
+
import sys
|
7
8
|
import pulumi
|
8
9
|
import pulumi.runtime
|
9
10
|
from typing import Any, Mapping, Optional, Sequence, Union, overload
|
11
|
+
if sys.version_info >= (3, 11):
|
12
|
+
from typing import NotRequired, TypedDict, TypeAlias
|
13
|
+
else:
|
14
|
+
from typing_extensions import NotRequired, TypedDict, TypeAlias
|
10
15
|
from .. import _utilities
|
11
16
|
|
12
17
|
__all__ = [
|
13
18
|
'AccessLevelBasicArgs',
|
19
|
+
'AccessLevelBasicArgsDict',
|
14
20
|
'AccessLevelBasicConditionArgs',
|
21
|
+
'AccessLevelBasicConditionArgsDict',
|
15
22
|
'AccessLevelBasicConditionDevicePolicyArgs',
|
23
|
+
'AccessLevelBasicConditionDevicePolicyArgsDict',
|
16
24
|
'AccessLevelBasicConditionDevicePolicyOsConstraintArgs',
|
25
|
+
'AccessLevelBasicConditionDevicePolicyOsConstraintArgsDict',
|
17
26
|
'AccessLevelBasicConditionVpcNetworkSourceArgs',
|
27
|
+
'AccessLevelBasicConditionVpcNetworkSourceArgsDict',
|
18
28
|
'AccessLevelBasicConditionVpcNetworkSourceVpcSubnetworkArgs',
|
29
|
+
'AccessLevelBasicConditionVpcNetworkSourceVpcSubnetworkArgsDict',
|
19
30
|
'AccessLevelConditionDevicePolicyArgs',
|
31
|
+
'AccessLevelConditionDevicePolicyArgsDict',
|
20
32
|
'AccessLevelConditionDevicePolicyOsConstraintArgs',
|
33
|
+
'AccessLevelConditionDevicePolicyOsConstraintArgsDict',
|
21
34
|
'AccessLevelConditionVpcNetworkSourceArgs',
|
35
|
+
'AccessLevelConditionVpcNetworkSourceArgsDict',
|
22
36
|
'AccessLevelConditionVpcNetworkSourceVpcSubnetworkArgs',
|
37
|
+
'AccessLevelConditionVpcNetworkSourceVpcSubnetworkArgsDict',
|
23
38
|
'AccessLevelCustomArgs',
|
39
|
+
'AccessLevelCustomArgsDict',
|
24
40
|
'AccessLevelCustomExprArgs',
|
41
|
+
'AccessLevelCustomExprArgsDict',
|
25
42
|
'AccessLevelsAccessLevelArgs',
|
43
|
+
'AccessLevelsAccessLevelArgsDict',
|
26
44
|
'AccessLevelsAccessLevelBasicArgs',
|
45
|
+
'AccessLevelsAccessLevelBasicArgsDict',
|
27
46
|
'AccessLevelsAccessLevelBasicConditionArgs',
|
47
|
+
'AccessLevelsAccessLevelBasicConditionArgsDict',
|
28
48
|
'AccessLevelsAccessLevelBasicConditionDevicePolicyArgs',
|
49
|
+
'AccessLevelsAccessLevelBasicConditionDevicePolicyArgsDict',
|
29
50
|
'AccessLevelsAccessLevelBasicConditionDevicePolicyOsConstraintArgs',
|
51
|
+
'AccessLevelsAccessLevelBasicConditionDevicePolicyOsConstraintArgsDict',
|
30
52
|
'AccessLevelsAccessLevelBasicConditionVpcNetworkSourceArgs',
|
53
|
+
'AccessLevelsAccessLevelBasicConditionVpcNetworkSourceArgsDict',
|
31
54
|
'AccessLevelsAccessLevelBasicConditionVpcNetworkSourceVpcSubnetworkArgs',
|
55
|
+
'AccessLevelsAccessLevelBasicConditionVpcNetworkSourceVpcSubnetworkArgsDict',
|
32
56
|
'AccessLevelsAccessLevelCustomArgs',
|
57
|
+
'AccessLevelsAccessLevelCustomArgsDict',
|
33
58
|
'AccessLevelsAccessLevelCustomExprArgs',
|
59
|
+
'AccessLevelsAccessLevelCustomExprArgsDict',
|
34
60
|
'AccessPolicyIamBindingConditionArgs',
|
61
|
+
'AccessPolicyIamBindingConditionArgsDict',
|
35
62
|
'AccessPolicyIamMemberConditionArgs',
|
63
|
+
'AccessPolicyIamMemberConditionArgsDict',
|
36
64
|
'ServicePerimeterEgressPolicyEgressFromArgs',
|
65
|
+
'ServicePerimeterEgressPolicyEgressFromArgsDict',
|
37
66
|
'ServicePerimeterEgressPolicyEgressFromSourceArgs',
|
67
|
+
'ServicePerimeterEgressPolicyEgressFromSourceArgsDict',
|
38
68
|
'ServicePerimeterEgressPolicyEgressToArgs',
|
69
|
+
'ServicePerimeterEgressPolicyEgressToArgsDict',
|
39
70
|
'ServicePerimeterEgressPolicyEgressToOperationArgs',
|
71
|
+
'ServicePerimeterEgressPolicyEgressToOperationArgsDict',
|
40
72
|
'ServicePerimeterEgressPolicyEgressToOperationMethodSelectorArgs',
|
73
|
+
'ServicePerimeterEgressPolicyEgressToOperationMethodSelectorArgsDict',
|
41
74
|
'ServicePerimeterIngressPolicyIngressFromArgs',
|
75
|
+
'ServicePerimeterIngressPolicyIngressFromArgsDict',
|
42
76
|
'ServicePerimeterIngressPolicyIngressFromSourceArgs',
|
77
|
+
'ServicePerimeterIngressPolicyIngressFromSourceArgsDict',
|
43
78
|
'ServicePerimeterIngressPolicyIngressToArgs',
|
79
|
+
'ServicePerimeterIngressPolicyIngressToArgsDict',
|
44
80
|
'ServicePerimeterIngressPolicyIngressToOperationArgs',
|
81
|
+
'ServicePerimeterIngressPolicyIngressToOperationArgsDict',
|
45
82
|
'ServicePerimeterIngressPolicyIngressToOperationMethodSelectorArgs',
|
83
|
+
'ServicePerimeterIngressPolicyIngressToOperationMethodSelectorArgsDict',
|
46
84
|
'ServicePerimeterSpecArgs',
|
85
|
+
'ServicePerimeterSpecArgsDict',
|
47
86
|
'ServicePerimeterSpecEgressPolicyArgs',
|
87
|
+
'ServicePerimeterSpecEgressPolicyArgsDict',
|
48
88
|
'ServicePerimeterSpecEgressPolicyEgressFromArgs',
|
89
|
+
'ServicePerimeterSpecEgressPolicyEgressFromArgsDict',
|
49
90
|
'ServicePerimeterSpecEgressPolicyEgressFromSourceArgs',
|
91
|
+
'ServicePerimeterSpecEgressPolicyEgressFromSourceArgsDict',
|
50
92
|
'ServicePerimeterSpecEgressPolicyEgressToArgs',
|
93
|
+
'ServicePerimeterSpecEgressPolicyEgressToArgsDict',
|
51
94
|
'ServicePerimeterSpecEgressPolicyEgressToOperationArgs',
|
95
|
+
'ServicePerimeterSpecEgressPolicyEgressToOperationArgsDict',
|
52
96
|
'ServicePerimeterSpecEgressPolicyEgressToOperationMethodSelectorArgs',
|
97
|
+
'ServicePerimeterSpecEgressPolicyEgressToOperationMethodSelectorArgsDict',
|
53
98
|
'ServicePerimeterSpecIngressPolicyArgs',
|
99
|
+
'ServicePerimeterSpecIngressPolicyArgsDict',
|
54
100
|
'ServicePerimeterSpecIngressPolicyIngressFromArgs',
|
101
|
+
'ServicePerimeterSpecIngressPolicyIngressFromArgsDict',
|
55
102
|
'ServicePerimeterSpecIngressPolicyIngressFromSourceArgs',
|
103
|
+
'ServicePerimeterSpecIngressPolicyIngressFromSourceArgsDict',
|
56
104
|
'ServicePerimeterSpecIngressPolicyIngressToArgs',
|
105
|
+
'ServicePerimeterSpecIngressPolicyIngressToArgsDict',
|
57
106
|
'ServicePerimeterSpecIngressPolicyIngressToOperationArgs',
|
107
|
+
'ServicePerimeterSpecIngressPolicyIngressToOperationArgsDict',
|
58
108
|
'ServicePerimeterSpecIngressPolicyIngressToOperationMethodSelectorArgs',
|
109
|
+
'ServicePerimeterSpecIngressPolicyIngressToOperationMethodSelectorArgsDict',
|
59
110
|
'ServicePerimeterSpecVpcAccessibleServicesArgs',
|
111
|
+
'ServicePerimeterSpecVpcAccessibleServicesArgsDict',
|
60
112
|
'ServicePerimeterStatusArgs',
|
113
|
+
'ServicePerimeterStatusArgsDict',
|
61
114
|
'ServicePerimeterStatusEgressPolicyArgs',
|
115
|
+
'ServicePerimeterStatusEgressPolicyArgsDict',
|
62
116
|
'ServicePerimeterStatusEgressPolicyEgressFromArgs',
|
117
|
+
'ServicePerimeterStatusEgressPolicyEgressFromArgsDict',
|
63
118
|
'ServicePerimeterStatusEgressPolicyEgressFromSourceArgs',
|
119
|
+
'ServicePerimeterStatusEgressPolicyEgressFromSourceArgsDict',
|
64
120
|
'ServicePerimeterStatusEgressPolicyEgressToArgs',
|
121
|
+
'ServicePerimeterStatusEgressPolicyEgressToArgsDict',
|
65
122
|
'ServicePerimeterStatusEgressPolicyEgressToOperationArgs',
|
123
|
+
'ServicePerimeterStatusEgressPolicyEgressToOperationArgsDict',
|
66
124
|
'ServicePerimeterStatusEgressPolicyEgressToOperationMethodSelectorArgs',
|
125
|
+
'ServicePerimeterStatusEgressPolicyEgressToOperationMethodSelectorArgsDict',
|
67
126
|
'ServicePerimeterStatusIngressPolicyArgs',
|
127
|
+
'ServicePerimeterStatusIngressPolicyArgsDict',
|
68
128
|
'ServicePerimeterStatusIngressPolicyIngressFromArgs',
|
129
|
+
'ServicePerimeterStatusIngressPolicyIngressFromArgsDict',
|
69
130
|
'ServicePerimeterStatusIngressPolicyIngressFromSourceArgs',
|
131
|
+
'ServicePerimeterStatusIngressPolicyIngressFromSourceArgsDict',
|
70
132
|
'ServicePerimeterStatusIngressPolicyIngressToArgs',
|
133
|
+
'ServicePerimeterStatusIngressPolicyIngressToArgsDict',
|
71
134
|
'ServicePerimeterStatusIngressPolicyIngressToOperationArgs',
|
135
|
+
'ServicePerimeterStatusIngressPolicyIngressToOperationArgsDict',
|
72
136
|
'ServicePerimeterStatusIngressPolicyIngressToOperationMethodSelectorArgs',
|
137
|
+
'ServicePerimeterStatusIngressPolicyIngressToOperationMethodSelectorArgsDict',
|
73
138
|
'ServicePerimeterStatusVpcAccessibleServicesArgs',
|
139
|
+
'ServicePerimeterStatusVpcAccessibleServicesArgsDict',
|
74
140
|
'ServicePerimetersServicePerimeterArgs',
|
141
|
+
'ServicePerimetersServicePerimeterArgsDict',
|
75
142
|
'ServicePerimetersServicePerimeterSpecArgs',
|
143
|
+
'ServicePerimetersServicePerimeterSpecArgsDict',
|
76
144
|
'ServicePerimetersServicePerimeterSpecEgressPolicyArgs',
|
145
|
+
'ServicePerimetersServicePerimeterSpecEgressPolicyArgsDict',
|
77
146
|
'ServicePerimetersServicePerimeterSpecEgressPolicyEgressFromArgs',
|
147
|
+
'ServicePerimetersServicePerimeterSpecEgressPolicyEgressFromArgsDict',
|
78
148
|
'ServicePerimetersServicePerimeterSpecEgressPolicyEgressFromSourceArgs',
|
149
|
+
'ServicePerimetersServicePerimeterSpecEgressPolicyEgressFromSourceArgsDict',
|
79
150
|
'ServicePerimetersServicePerimeterSpecEgressPolicyEgressToArgs',
|
151
|
+
'ServicePerimetersServicePerimeterSpecEgressPolicyEgressToArgsDict',
|
80
152
|
'ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperationArgs',
|
153
|
+
'ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperationArgsDict',
|
81
154
|
'ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperationMethodSelectorArgs',
|
155
|
+
'ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperationMethodSelectorArgsDict',
|
82
156
|
'ServicePerimetersServicePerimeterSpecIngressPolicyArgs',
|
157
|
+
'ServicePerimetersServicePerimeterSpecIngressPolicyArgsDict',
|
83
158
|
'ServicePerimetersServicePerimeterSpecIngressPolicyIngressFromArgs',
|
159
|
+
'ServicePerimetersServicePerimeterSpecIngressPolicyIngressFromArgsDict',
|
84
160
|
'ServicePerimetersServicePerimeterSpecIngressPolicyIngressFromSourceArgs',
|
161
|
+
'ServicePerimetersServicePerimeterSpecIngressPolicyIngressFromSourceArgsDict',
|
85
162
|
'ServicePerimetersServicePerimeterSpecIngressPolicyIngressToArgs',
|
163
|
+
'ServicePerimetersServicePerimeterSpecIngressPolicyIngressToArgsDict',
|
86
164
|
'ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperationArgs',
|
165
|
+
'ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperationArgsDict',
|
87
166
|
'ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperationMethodSelectorArgs',
|
167
|
+
'ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperationMethodSelectorArgsDict',
|
88
168
|
'ServicePerimetersServicePerimeterSpecVpcAccessibleServicesArgs',
|
169
|
+
'ServicePerimetersServicePerimeterSpecVpcAccessibleServicesArgsDict',
|
89
170
|
'ServicePerimetersServicePerimeterStatusArgs',
|
171
|
+
'ServicePerimetersServicePerimeterStatusArgsDict',
|
90
172
|
'ServicePerimetersServicePerimeterStatusEgressPolicyArgs',
|
173
|
+
'ServicePerimetersServicePerimeterStatusEgressPolicyArgsDict',
|
91
174
|
'ServicePerimetersServicePerimeterStatusEgressPolicyEgressFromArgs',
|
175
|
+
'ServicePerimetersServicePerimeterStatusEgressPolicyEgressFromArgsDict',
|
92
176
|
'ServicePerimetersServicePerimeterStatusEgressPolicyEgressFromSourceArgs',
|
177
|
+
'ServicePerimetersServicePerimeterStatusEgressPolicyEgressFromSourceArgsDict',
|
93
178
|
'ServicePerimetersServicePerimeterStatusEgressPolicyEgressToArgs',
|
179
|
+
'ServicePerimetersServicePerimeterStatusEgressPolicyEgressToArgsDict',
|
94
180
|
'ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperationArgs',
|
181
|
+
'ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperationArgsDict',
|
95
182
|
'ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperationMethodSelectorArgs',
|
183
|
+
'ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperationMethodSelectorArgsDict',
|
96
184
|
'ServicePerimetersServicePerimeterStatusIngressPolicyArgs',
|
185
|
+
'ServicePerimetersServicePerimeterStatusIngressPolicyArgsDict',
|
97
186
|
'ServicePerimetersServicePerimeterStatusIngressPolicyIngressFromArgs',
|
187
|
+
'ServicePerimetersServicePerimeterStatusIngressPolicyIngressFromArgsDict',
|
98
188
|
'ServicePerimetersServicePerimeterStatusIngressPolicyIngressFromSourceArgs',
|
189
|
+
'ServicePerimetersServicePerimeterStatusIngressPolicyIngressFromSourceArgsDict',
|
99
190
|
'ServicePerimetersServicePerimeterStatusIngressPolicyIngressToArgs',
|
191
|
+
'ServicePerimetersServicePerimeterStatusIngressPolicyIngressToArgsDict',
|
100
192
|
'ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperationArgs',
|
193
|
+
'ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperationArgsDict',
|
101
194
|
'ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperationMethodSelectorArgs',
|
195
|
+
'ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperationMethodSelectorArgsDict',
|
102
196
|
'ServicePerimetersServicePerimeterStatusVpcAccessibleServicesArgs',
|
197
|
+
'ServicePerimetersServicePerimeterStatusVpcAccessibleServicesArgsDict',
|
103
198
|
]
|
104
199
|
|
200
|
+
MYPY = False
|
201
|
+
|
202
|
+
if not MYPY:
|
203
|
+
class AccessLevelBasicArgsDict(TypedDict):
|
204
|
+
conditions: pulumi.Input[Sequence[pulumi.Input['AccessLevelBasicConditionArgsDict']]]
|
205
|
+
"""
|
206
|
+
A set of requirements for the AccessLevel to be granted.
|
207
|
+
Structure is documented below.
|
208
|
+
"""
|
209
|
+
combining_function: NotRequired[pulumi.Input[str]]
|
210
|
+
"""
|
211
|
+
How the conditions list should be combined to determine if a request
|
212
|
+
is granted this AccessLevel. If AND is used, each Condition in
|
213
|
+
conditions must be satisfied for the AccessLevel to be applied. If
|
214
|
+
OR is used, at least one Condition in conditions must be satisfied
|
215
|
+
for the AccessLevel to be applied.
|
216
|
+
Default value is `AND`.
|
217
|
+
Possible values are: `AND`, `OR`.
|
218
|
+
"""
|
219
|
+
elif False:
|
220
|
+
AccessLevelBasicArgsDict: TypeAlias = Mapping[str, Any]
|
221
|
+
|
105
222
|
@pulumi.input_type
|
106
223
|
class AccessLevelBasicArgs:
|
107
224
|
def __init__(__self__, *,
|
@@ -154,6 +271,66 @@ class AccessLevelBasicArgs:
|
|
154
271
|
pulumi.set(self, "combining_function", value)
|
155
272
|
|
156
273
|
|
274
|
+
if not MYPY:
|
275
|
+
class AccessLevelBasicConditionArgsDict(TypedDict):
|
276
|
+
device_policy: NotRequired[pulumi.Input['AccessLevelBasicConditionDevicePolicyArgsDict']]
|
277
|
+
"""
|
278
|
+
Device specific restrictions, all restrictions must hold for
|
279
|
+
the Condition to be true. If not specified, all devices are
|
280
|
+
allowed.
|
281
|
+
Structure is documented below.
|
282
|
+
"""
|
283
|
+
ip_subnetworks: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
284
|
+
"""
|
285
|
+
A list of CIDR block IP subnetwork specification. May be IPv4
|
286
|
+
or IPv6.
|
287
|
+
Note that for a CIDR IP address block, the specified IP address
|
288
|
+
portion must be properly truncated (i.e. all the host bits must
|
289
|
+
be zero) or the input is considered malformed. For example,
|
290
|
+
"192.0.2.0/24" is accepted but "192.0.2.1/24" is not. Similarly,
|
291
|
+
for IPv6, "2001:db8::/32" is accepted whereas "2001:db8::1/32"
|
292
|
+
is not. The originating IP of a request must be in one of the
|
293
|
+
listed subnets in order for this Condition to be true.
|
294
|
+
If empty, all IP addresses are allowed.
|
295
|
+
"""
|
296
|
+
members: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
297
|
+
"""
|
298
|
+
An allowed list of members (users, service accounts).
|
299
|
+
Using groups is not supported yet.
|
300
|
+
The signed-in user originating the request must be a part of one
|
301
|
+
of the provided members. If not specified, a request may come
|
302
|
+
from any user (logged in/not logged in, not present in any
|
303
|
+
groups, etc.).
|
304
|
+
Formats: `user:{emailid}`, `serviceAccount:{emailid}`
|
305
|
+
"""
|
306
|
+
negate: NotRequired[pulumi.Input[bool]]
|
307
|
+
"""
|
308
|
+
Whether to negate the Condition. If true, the Condition becomes
|
309
|
+
a NAND over its non-empty fields, each field must be false for
|
310
|
+
the Condition overall to be satisfied. Defaults to false.
|
311
|
+
"""
|
312
|
+
regions: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
313
|
+
"""
|
314
|
+
The request must originate from one of the provided
|
315
|
+
countries/regions.
|
316
|
+
Format: A valid ISO 3166-1 alpha-2 code.
|
317
|
+
"""
|
318
|
+
required_access_levels: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
319
|
+
"""
|
320
|
+
A list of other access levels defined in the same Policy,
|
321
|
+
referenced by resource name. Referencing an AccessLevel which
|
322
|
+
does not exist is an error. All access levels listed must be
|
323
|
+
granted for the Condition to be true.
|
324
|
+
Format: accessPolicies/{policy_id}/accessLevels/{short_name}
|
325
|
+
"""
|
326
|
+
vpc_network_sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['AccessLevelBasicConditionVpcNetworkSourceArgsDict']]]]
|
327
|
+
"""
|
328
|
+
The request must originate from one of the provided VPC networks in Google Cloud. Cannot specify this field together with `ip_subnetworks`.
|
329
|
+
Structure is documented below.
|
330
|
+
"""
|
331
|
+
elif False:
|
332
|
+
AccessLevelBasicConditionArgsDict: TypeAlias = Mapping[str, Any]
|
333
|
+
|
157
334
|
@pulumi.input_type
|
158
335
|
class AccessLevelBasicConditionArgs:
|
159
336
|
def __init__(__self__, *,
|
@@ -327,6 +504,42 @@ class AccessLevelBasicConditionArgs:
|
|
327
504
|
pulumi.set(self, "vpc_network_sources", value)
|
328
505
|
|
329
506
|
|
507
|
+
if not MYPY:
|
508
|
+
class AccessLevelBasicConditionDevicePolicyArgsDict(TypedDict):
|
509
|
+
allowed_device_management_levels: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
510
|
+
"""
|
511
|
+
A list of allowed device management levels.
|
512
|
+
An empty list allows all management levels.
|
513
|
+
Each value may be one of: `MANAGEMENT_UNSPECIFIED`, `NONE`, `BASIC`, `COMPLETE`.
|
514
|
+
"""
|
515
|
+
allowed_encryption_statuses: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
516
|
+
"""
|
517
|
+
A list of allowed encryptions statuses.
|
518
|
+
An empty list allows all statuses.
|
519
|
+
Each value may be one of: `ENCRYPTION_UNSPECIFIED`, `ENCRYPTION_UNSUPPORTED`, `UNENCRYPTED`, `ENCRYPTED`.
|
520
|
+
"""
|
521
|
+
os_constraints: NotRequired[pulumi.Input[Sequence[pulumi.Input['AccessLevelBasicConditionDevicePolicyOsConstraintArgsDict']]]]
|
522
|
+
"""
|
523
|
+
A list of allowed OS versions.
|
524
|
+
An empty list allows all types and all versions.
|
525
|
+
Structure is documented below.
|
526
|
+
"""
|
527
|
+
require_admin_approval: NotRequired[pulumi.Input[bool]]
|
528
|
+
"""
|
529
|
+
Whether the device needs to be approved by the customer admin.
|
530
|
+
"""
|
531
|
+
require_corp_owned: NotRequired[pulumi.Input[bool]]
|
532
|
+
"""
|
533
|
+
Whether the device needs to be corp owned.
|
534
|
+
"""
|
535
|
+
require_screen_lock: NotRequired[pulumi.Input[bool]]
|
536
|
+
"""
|
537
|
+
Whether or not screenlock is required for the DevicePolicy
|
538
|
+
to be true. Defaults to false.
|
539
|
+
"""
|
540
|
+
elif False:
|
541
|
+
AccessLevelBasicConditionDevicePolicyArgsDict: TypeAlias = Mapping[str, Any]
|
542
|
+
|
330
543
|
@pulumi.input_type
|
331
544
|
class AccessLevelBasicConditionDevicePolicyArgs:
|
332
545
|
def __init__(__self__, *,
|
@@ -444,6 +657,26 @@ class AccessLevelBasicConditionDevicePolicyArgs:
|
|
444
657
|
pulumi.set(self, "require_screen_lock", value)
|
445
658
|
|
446
659
|
|
660
|
+
if not MYPY:
|
661
|
+
class AccessLevelBasicConditionDevicePolicyOsConstraintArgsDict(TypedDict):
|
662
|
+
os_type: pulumi.Input[str]
|
663
|
+
"""
|
664
|
+
The operating system type of the device.
|
665
|
+
Possible values are: `OS_UNSPECIFIED`, `DESKTOP_MAC`, `DESKTOP_WINDOWS`, `DESKTOP_LINUX`, `DESKTOP_CHROME_OS`, `ANDROID`, `IOS`.
|
666
|
+
"""
|
667
|
+
minimum_version: NotRequired[pulumi.Input[str]]
|
668
|
+
"""
|
669
|
+
The minimum allowed OS version. If not set, any version
|
670
|
+
of this OS satisfies the constraint.
|
671
|
+
Format: "major.minor.patch" such as "10.5.301", "9.2.1".
|
672
|
+
"""
|
673
|
+
require_verified_chrome_os: NotRequired[pulumi.Input[bool]]
|
674
|
+
"""
|
675
|
+
If you specify DESKTOP_CHROME_OS for osType, you can optionally include requireVerifiedChromeOs to require Chrome Verified Access.
|
676
|
+
"""
|
677
|
+
elif False:
|
678
|
+
AccessLevelBasicConditionDevicePolicyOsConstraintArgsDict: TypeAlias = Mapping[str, Any]
|
679
|
+
|
447
680
|
@pulumi.input_type
|
448
681
|
class AccessLevelBasicConditionDevicePolicyOsConstraintArgs:
|
449
682
|
def __init__(__self__, *,
|
@@ -504,6 +737,16 @@ class AccessLevelBasicConditionDevicePolicyOsConstraintArgs:
|
|
504
737
|
pulumi.set(self, "require_verified_chrome_os", value)
|
505
738
|
|
506
739
|
|
740
|
+
if not MYPY:
|
741
|
+
class AccessLevelBasicConditionVpcNetworkSourceArgsDict(TypedDict):
|
742
|
+
vpc_subnetwork: NotRequired[pulumi.Input['AccessLevelBasicConditionVpcNetworkSourceVpcSubnetworkArgsDict']]
|
743
|
+
"""
|
744
|
+
Sub networks within a VPC network.
|
745
|
+
Structure is documented below.
|
746
|
+
"""
|
747
|
+
elif False:
|
748
|
+
AccessLevelBasicConditionVpcNetworkSourceArgsDict: TypeAlias = Mapping[str, Any]
|
749
|
+
|
507
750
|
@pulumi.input_type
|
508
751
|
class AccessLevelBasicConditionVpcNetworkSourceArgs:
|
509
752
|
def __init__(__self__, *,
|
@@ -529,6 +772,19 @@ class AccessLevelBasicConditionVpcNetworkSourceArgs:
|
|
529
772
|
pulumi.set(self, "vpc_subnetwork", value)
|
530
773
|
|
531
774
|
|
775
|
+
if not MYPY:
|
776
|
+
class AccessLevelBasicConditionVpcNetworkSourceVpcSubnetworkArgsDict(TypedDict):
|
777
|
+
network: pulumi.Input[str]
|
778
|
+
"""
|
779
|
+
Required. Network name to be allowed by this Access Level. Networks of foreign organizations requires `compute.network.get` permission to be granted to caller.
|
780
|
+
"""
|
781
|
+
vpc_ip_subnetworks: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
782
|
+
"""
|
783
|
+
CIDR block IP subnetwork specification. Must be IPv4.
|
784
|
+
"""
|
785
|
+
elif False:
|
786
|
+
AccessLevelBasicConditionVpcNetworkSourceVpcSubnetworkArgsDict: TypeAlias = Mapping[str, Any]
|
787
|
+
|
532
788
|
@pulumi.input_type
|
533
789
|
class AccessLevelBasicConditionVpcNetworkSourceVpcSubnetworkArgs:
|
534
790
|
def __init__(__self__, *,
|
@@ -567,6 +823,42 @@ class AccessLevelBasicConditionVpcNetworkSourceVpcSubnetworkArgs:
|
|
567
823
|
pulumi.set(self, "vpc_ip_subnetworks", value)
|
568
824
|
|
569
825
|
|
826
|
+
if not MYPY:
|
827
|
+
class AccessLevelConditionDevicePolicyArgsDict(TypedDict):
|
828
|
+
allowed_device_management_levels: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
829
|
+
"""
|
830
|
+
A list of allowed device management levels.
|
831
|
+
An empty list allows all management levels.
|
832
|
+
Each value may be one of: `MANAGEMENT_UNSPECIFIED`, `NONE`, `BASIC`, `COMPLETE`.
|
833
|
+
"""
|
834
|
+
allowed_encryption_statuses: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
835
|
+
"""
|
836
|
+
A list of allowed encryptions statuses.
|
837
|
+
An empty list allows all statuses.
|
838
|
+
Each value may be one of: `ENCRYPTION_UNSPECIFIED`, `ENCRYPTION_UNSUPPORTED`, `UNENCRYPTED`, `ENCRYPTED`.
|
839
|
+
"""
|
840
|
+
os_constraints: NotRequired[pulumi.Input[Sequence[pulumi.Input['AccessLevelConditionDevicePolicyOsConstraintArgsDict']]]]
|
841
|
+
"""
|
842
|
+
A list of allowed OS versions.
|
843
|
+
An empty list allows all types and all versions.
|
844
|
+
Structure is documented below.
|
845
|
+
"""
|
846
|
+
require_admin_approval: NotRequired[pulumi.Input[bool]]
|
847
|
+
"""
|
848
|
+
Whether the device needs to be approved by the customer admin.
|
849
|
+
"""
|
850
|
+
require_corp_owned: NotRequired[pulumi.Input[bool]]
|
851
|
+
"""
|
852
|
+
Whether the device needs to be corp owned.
|
853
|
+
"""
|
854
|
+
require_screen_lock: NotRequired[pulumi.Input[bool]]
|
855
|
+
"""
|
856
|
+
Whether or not screenlock is required for the DevicePolicy
|
857
|
+
to be true. Defaults to false.
|
858
|
+
"""
|
859
|
+
elif False:
|
860
|
+
AccessLevelConditionDevicePolicyArgsDict: TypeAlias = Mapping[str, Any]
|
861
|
+
|
570
862
|
@pulumi.input_type
|
571
863
|
class AccessLevelConditionDevicePolicyArgs:
|
572
864
|
def __init__(__self__, *,
|
@@ -684,6 +976,22 @@ class AccessLevelConditionDevicePolicyArgs:
|
|
684
976
|
pulumi.set(self, "require_screen_lock", value)
|
685
977
|
|
686
978
|
|
979
|
+
if not MYPY:
|
980
|
+
class AccessLevelConditionDevicePolicyOsConstraintArgsDict(TypedDict):
|
981
|
+
os_type: pulumi.Input[str]
|
982
|
+
"""
|
983
|
+
The operating system type of the device.
|
984
|
+
Possible values are: `OS_UNSPECIFIED`, `DESKTOP_MAC`, `DESKTOP_WINDOWS`, `DESKTOP_LINUX`, `DESKTOP_CHROME_OS`, `ANDROID`, `IOS`.
|
985
|
+
"""
|
986
|
+
minimum_version: NotRequired[pulumi.Input[str]]
|
987
|
+
"""
|
988
|
+
The minimum allowed OS version. If not set, any version
|
989
|
+
of this OS satisfies the constraint.
|
990
|
+
Format: "major.minor.patch" such as "10.5.301", "9.2.1".
|
991
|
+
"""
|
992
|
+
elif False:
|
993
|
+
AccessLevelConditionDevicePolicyOsConstraintArgsDict: TypeAlias = Mapping[str, Any]
|
994
|
+
|
687
995
|
@pulumi.input_type
|
688
996
|
class AccessLevelConditionDevicePolicyOsConstraintArgs:
|
689
997
|
def __init__(__self__, *,
|
@@ -728,6 +1036,16 @@ class AccessLevelConditionDevicePolicyOsConstraintArgs:
|
|
728
1036
|
pulumi.set(self, "minimum_version", value)
|
729
1037
|
|
730
1038
|
|
1039
|
+
if not MYPY:
|
1040
|
+
class AccessLevelConditionVpcNetworkSourceArgsDict(TypedDict):
|
1041
|
+
vpc_subnetwork: NotRequired[pulumi.Input['AccessLevelConditionVpcNetworkSourceVpcSubnetworkArgsDict']]
|
1042
|
+
"""
|
1043
|
+
Sub networks within a VPC network.
|
1044
|
+
Structure is documented below.
|
1045
|
+
"""
|
1046
|
+
elif False:
|
1047
|
+
AccessLevelConditionVpcNetworkSourceArgsDict: TypeAlias = Mapping[str, Any]
|
1048
|
+
|
731
1049
|
@pulumi.input_type
|
732
1050
|
class AccessLevelConditionVpcNetworkSourceArgs:
|
733
1051
|
def __init__(__self__, *,
|
@@ -753,6 +1071,19 @@ class AccessLevelConditionVpcNetworkSourceArgs:
|
|
753
1071
|
pulumi.set(self, "vpc_subnetwork", value)
|
754
1072
|
|
755
1073
|
|
1074
|
+
if not MYPY:
|
1075
|
+
class AccessLevelConditionVpcNetworkSourceVpcSubnetworkArgsDict(TypedDict):
|
1076
|
+
network: pulumi.Input[str]
|
1077
|
+
"""
|
1078
|
+
Required. Network name to be allowed by this Access Level. Networks of foreign organizations requires `compute.network.get` permission to be granted to caller.
|
1079
|
+
"""
|
1080
|
+
vpc_ip_subnetworks: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
1081
|
+
"""
|
1082
|
+
CIDR block IP subnetwork specification. Must be IPv4.
|
1083
|
+
"""
|
1084
|
+
elif False:
|
1085
|
+
AccessLevelConditionVpcNetworkSourceVpcSubnetworkArgsDict: TypeAlias = Mapping[str, Any]
|
1086
|
+
|
756
1087
|
@pulumi.input_type
|
757
1088
|
class AccessLevelConditionVpcNetworkSourceVpcSubnetworkArgs:
|
758
1089
|
def __init__(__self__, *,
|
@@ -791,6 +1122,18 @@ class AccessLevelConditionVpcNetworkSourceVpcSubnetworkArgs:
|
|
791
1122
|
pulumi.set(self, "vpc_ip_subnetworks", value)
|
792
1123
|
|
793
1124
|
|
1125
|
+
if not MYPY:
|
1126
|
+
class AccessLevelCustomArgsDict(TypedDict):
|
1127
|
+
expr: pulumi.Input['AccessLevelCustomExprArgsDict']
|
1128
|
+
"""
|
1129
|
+
Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language.
|
1130
|
+
This page details the objects and attributes that are used to the build the CEL expressions for
|
1131
|
+
custom access levels - https://cloud.google.com/access-context-manager/docs/custom-access-level-spec.
|
1132
|
+
Structure is documented below.
|
1133
|
+
"""
|
1134
|
+
elif False:
|
1135
|
+
AccessLevelCustomArgsDict: TypeAlias = Mapping[str, Any]
|
1136
|
+
|
794
1137
|
@pulumi.input_type
|
795
1138
|
class AccessLevelCustomArgs:
|
796
1139
|
def __init__(__self__, *,
|
@@ -819,6 +1162,27 @@ class AccessLevelCustomArgs:
|
|
819
1162
|
pulumi.set(self, "expr", value)
|
820
1163
|
|
821
1164
|
|
1165
|
+
if not MYPY:
|
1166
|
+
class AccessLevelCustomExprArgsDict(TypedDict):
|
1167
|
+
expression: pulumi.Input[str]
|
1168
|
+
"""
|
1169
|
+
Textual representation of an expression in Common Expression Language syntax.
|
1170
|
+
"""
|
1171
|
+
description: NotRequired[pulumi.Input[str]]
|
1172
|
+
"""
|
1173
|
+
Description of the expression
|
1174
|
+
"""
|
1175
|
+
location: NotRequired[pulumi.Input[str]]
|
1176
|
+
"""
|
1177
|
+
String indicating the location of the expression for error reporting, e.g. a file name and a position in the file
|
1178
|
+
"""
|
1179
|
+
title: NotRequired[pulumi.Input[str]]
|
1180
|
+
"""
|
1181
|
+
Title for the expression, i.e. a short string describing its purpose.
|
1182
|
+
"""
|
1183
|
+
elif False:
|
1184
|
+
AccessLevelCustomExprArgsDict: TypeAlias = Mapping[str, Any]
|
1185
|
+
|
822
1186
|
@pulumi.input_type
|
823
1187
|
class AccessLevelCustomExprArgs:
|
824
1188
|
def __init__(__self__, *,
|
@@ -889,6 +1253,36 @@ class AccessLevelCustomExprArgs:
|
|
889
1253
|
pulumi.set(self, "title", value)
|
890
1254
|
|
891
1255
|
|
1256
|
+
if not MYPY:
|
1257
|
+
class AccessLevelsAccessLevelArgsDict(TypedDict):
|
1258
|
+
name: pulumi.Input[str]
|
1259
|
+
"""
|
1260
|
+
Resource name for the Access Level. The short_name component must begin
|
1261
|
+
with a letter and only include alphanumeric and '_'.
|
1262
|
+
Format: accessPolicies/{policy_id}/accessLevels/{short_name}
|
1263
|
+
"""
|
1264
|
+
title: pulumi.Input[str]
|
1265
|
+
"""
|
1266
|
+
Human readable title. Must be unique within the Policy.
|
1267
|
+
"""
|
1268
|
+
basic: NotRequired[pulumi.Input['AccessLevelsAccessLevelBasicArgsDict']]
|
1269
|
+
"""
|
1270
|
+
A set of predefined conditions for the access level and a combining function.
|
1271
|
+
Structure is documented below.
|
1272
|
+
"""
|
1273
|
+
custom: NotRequired[pulumi.Input['AccessLevelsAccessLevelCustomArgsDict']]
|
1274
|
+
"""
|
1275
|
+
Custom access level conditions are set using the Cloud Common Expression Language to represent the necessary conditions for the level to apply to a request.
|
1276
|
+
See CEL spec at: https://github.com/google/cel-spec.
|
1277
|
+
Structure is documented below.
|
1278
|
+
"""
|
1279
|
+
description: NotRequired[pulumi.Input[str]]
|
1280
|
+
"""
|
1281
|
+
Description of the AccessLevel and its use. Does not affect behavior.
|
1282
|
+
"""
|
1283
|
+
elif False:
|
1284
|
+
AccessLevelsAccessLevelArgsDict: TypeAlias = Mapping[str, Any]
|
1285
|
+
|
892
1286
|
@pulumi.input_type
|
893
1287
|
class AccessLevelsAccessLevelArgs:
|
894
1288
|
def __init__(__self__, *,
|
@@ -984,6 +1378,26 @@ class AccessLevelsAccessLevelArgs:
|
|
984
1378
|
pulumi.set(self, "description", value)
|
985
1379
|
|
986
1380
|
|
1381
|
+
if not MYPY:
|
1382
|
+
class AccessLevelsAccessLevelBasicArgsDict(TypedDict):
|
1383
|
+
conditions: pulumi.Input[Sequence[pulumi.Input['AccessLevelsAccessLevelBasicConditionArgsDict']]]
|
1384
|
+
"""
|
1385
|
+
A set of requirements for the AccessLevel to be granted.
|
1386
|
+
Structure is documented below.
|
1387
|
+
"""
|
1388
|
+
combining_function: NotRequired[pulumi.Input[str]]
|
1389
|
+
"""
|
1390
|
+
How the conditions list should be combined to determine if a request
|
1391
|
+
is granted this AccessLevel. If AND is used, each Condition in
|
1392
|
+
conditions must be satisfied for the AccessLevel to be applied. If
|
1393
|
+
OR is used, at least one Condition in conditions must be satisfied
|
1394
|
+
for the AccessLevel to be applied.
|
1395
|
+
Default value is `AND`.
|
1396
|
+
Possible values are: `AND`, `OR`.
|
1397
|
+
"""
|
1398
|
+
elif False:
|
1399
|
+
AccessLevelsAccessLevelBasicArgsDict: TypeAlias = Mapping[str, Any]
|
1400
|
+
|
987
1401
|
@pulumi.input_type
|
988
1402
|
class AccessLevelsAccessLevelBasicArgs:
|
989
1403
|
def __init__(__self__, *,
|
@@ -1036,6 +1450,66 @@ class AccessLevelsAccessLevelBasicArgs:
|
|
1036
1450
|
pulumi.set(self, "combining_function", value)
|
1037
1451
|
|
1038
1452
|
|
1453
|
+
if not MYPY:
|
1454
|
+
class AccessLevelsAccessLevelBasicConditionArgsDict(TypedDict):
|
1455
|
+
device_policy: NotRequired[pulumi.Input['AccessLevelsAccessLevelBasicConditionDevicePolicyArgsDict']]
|
1456
|
+
"""
|
1457
|
+
Device specific restrictions, all restrictions must hold for
|
1458
|
+
the Condition to be true. If not specified, all devices are
|
1459
|
+
allowed.
|
1460
|
+
Structure is documented below.
|
1461
|
+
"""
|
1462
|
+
ip_subnetworks: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
1463
|
+
"""
|
1464
|
+
A list of CIDR block IP subnetwork specification. May be IPv4
|
1465
|
+
or IPv6.
|
1466
|
+
Note that for a CIDR IP address block, the specified IP address
|
1467
|
+
portion must be properly truncated (i.e. all the host bits must
|
1468
|
+
be zero) or the input is considered malformed. For example,
|
1469
|
+
"192.0.2.0/24" is accepted but "192.0.2.1/24" is not. Similarly,
|
1470
|
+
for IPv6, "2001:db8::/32" is accepted whereas "2001:db8::1/32"
|
1471
|
+
is not. The originating IP of a request must be in one of the
|
1472
|
+
listed subnets in order for this Condition to be true.
|
1473
|
+
If empty, all IP addresses are allowed.
|
1474
|
+
"""
|
1475
|
+
members: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
1476
|
+
"""
|
1477
|
+
An allowed list of members (users, service accounts).
|
1478
|
+
Using groups is not supported yet.
|
1479
|
+
The signed-in user originating the request must be a part of one
|
1480
|
+
of the provided members. If not specified, a request may come
|
1481
|
+
from any user (logged in/not logged in, not present in any
|
1482
|
+
groups, etc.).
|
1483
|
+
Formats: `user:{emailid}`, `serviceAccount:{emailid}`
|
1484
|
+
"""
|
1485
|
+
negate: NotRequired[pulumi.Input[bool]]
|
1486
|
+
"""
|
1487
|
+
Whether to negate the Condition. If true, the Condition becomes
|
1488
|
+
a NAND over its non-empty fields, each field must be false for
|
1489
|
+
the Condition overall to be satisfied. Defaults to false.
|
1490
|
+
"""
|
1491
|
+
regions: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
1492
|
+
"""
|
1493
|
+
The request must originate from one of the provided
|
1494
|
+
countries/regions.
|
1495
|
+
Format: A valid ISO 3166-1 alpha-2 code.
|
1496
|
+
"""
|
1497
|
+
required_access_levels: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
1498
|
+
"""
|
1499
|
+
A list of other access levels defined in the same Policy,
|
1500
|
+
referenced by resource name. Referencing an AccessLevel which
|
1501
|
+
does not exist is an error. All access levels listed must be
|
1502
|
+
granted for the Condition to be true.
|
1503
|
+
Format: accessPolicies/{policy_id}/accessLevels/{short_name}
|
1504
|
+
"""
|
1505
|
+
vpc_network_sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['AccessLevelsAccessLevelBasicConditionVpcNetworkSourceArgsDict']]]]
|
1506
|
+
"""
|
1507
|
+
The request must originate from one of the provided VPC networks in Google Cloud. Cannot specify this field together with `ip_subnetworks`.
|
1508
|
+
Structure is documented below.
|
1509
|
+
"""
|
1510
|
+
elif False:
|
1511
|
+
AccessLevelsAccessLevelBasicConditionArgsDict: TypeAlias = Mapping[str, Any]
|
1512
|
+
|
1039
1513
|
@pulumi.input_type
|
1040
1514
|
class AccessLevelsAccessLevelBasicConditionArgs:
|
1041
1515
|
def __init__(__self__, *,
|
@@ -1209,6 +1683,42 @@ class AccessLevelsAccessLevelBasicConditionArgs:
|
|
1209
1683
|
pulumi.set(self, "vpc_network_sources", value)
|
1210
1684
|
|
1211
1685
|
|
1686
|
+
if not MYPY:
|
1687
|
+
class AccessLevelsAccessLevelBasicConditionDevicePolicyArgsDict(TypedDict):
|
1688
|
+
allowed_device_management_levels: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
1689
|
+
"""
|
1690
|
+
A list of allowed device management levels.
|
1691
|
+
An empty list allows all management levels.
|
1692
|
+
Each value may be one of: `MANAGEMENT_UNSPECIFIED`, `NONE`, `BASIC`, `COMPLETE`.
|
1693
|
+
"""
|
1694
|
+
allowed_encryption_statuses: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
1695
|
+
"""
|
1696
|
+
A list of allowed encryptions statuses.
|
1697
|
+
An empty list allows all statuses.
|
1698
|
+
Each value may be one of: `ENCRYPTION_UNSPECIFIED`, `ENCRYPTION_UNSUPPORTED`, `UNENCRYPTED`, `ENCRYPTED`.
|
1699
|
+
"""
|
1700
|
+
os_constraints: NotRequired[pulumi.Input[Sequence[pulumi.Input['AccessLevelsAccessLevelBasicConditionDevicePolicyOsConstraintArgsDict']]]]
|
1701
|
+
"""
|
1702
|
+
A list of allowed OS versions.
|
1703
|
+
An empty list allows all types and all versions.
|
1704
|
+
Structure is documented below.
|
1705
|
+
"""
|
1706
|
+
require_admin_approval: NotRequired[pulumi.Input[bool]]
|
1707
|
+
"""
|
1708
|
+
Whether the device needs to be approved by the customer admin.
|
1709
|
+
"""
|
1710
|
+
require_corp_owned: NotRequired[pulumi.Input[bool]]
|
1711
|
+
"""
|
1712
|
+
Whether the device needs to be corp owned.
|
1713
|
+
"""
|
1714
|
+
require_screen_lock: NotRequired[pulumi.Input[bool]]
|
1715
|
+
"""
|
1716
|
+
Whether or not screenlock is required for the DevicePolicy
|
1717
|
+
to be true. Defaults to false.
|
1718
|
+
"""
|
1719
|
+
elif False:
|
1720
|
+
AccessLevelsAccessLevelBasicConditionDevicePolicyArgsDict: TypeAlias = Mapping[str, Any]
|
1721
|
+
|
1212
1722
|
@pulumi.input_type
|
1213
1723
|
class AccessLevelsAccessLevelBasicConditionDevicePolicyArgs:
|
1214
1724
|
def __init__(__self__, *,
|
@@ -1326,6 +1836,22 @@ class AccessLevelsAccessLevelBasicConditionDevicePolicyArgs:
|
|
1326
1836
|
pulumi.set(self, "require_screen_lock", value)
|
1327
1837
|
|
1328
1838
|
|
1839
|
+
if not MYPY:
|
1840
|
+
class AccessLevelsAccessLevelBasicConditionDevicePolicyOsConstraintArgsDict(TypedDict):
|
1841
|
+
os_type: pulumi.Input[str]
|
1842
|
+
"""
|
1843
|
+
The operating system type of the device.
|
1844
|
+
Possible values are: `OS_UNSPECIFIED`, `DESKTOP_MAC`, `DESKTOP_WINDOWS`, `DESKTOP_LINUX`, `DESKTOP_CHROME_OS`, `ANDROID`, `IOS`.
|
1845
|
+
"""
|
1846
|
+
minimum_version: NotRequired[pulumi.Input[str]]
|
1847
|
+
"""
|
1848
|
+
The minimum allowed OS version. If not set, any version
|
1849
|
+
of this OS satisfies the constraint.
|
1850
|
+
Format: "major.minor.patch" such as "10.5.301", "9.2.1".
|
1851
|
+
"""
|
1852
|
+
elif False:
|
1853
|
+
AccessLevelsAccessLevelBasicConditionDevicePolicyOsConstraintArgsDict: TypeAlias = Mapping[str, Any]
|
1854
|
+
|
1329
1855
|
@pulumi.input_type
|
1330
1856
|
class AccessLevelsAccessLevelBasicConditionDevicePolicyOsConstraintArgs:
|
1331
1857
|
def __init__(__self__, *,
|
@@ -1370,6 +1896,16 @@ class AccessLevelsAccessLevelBasicConditionDevicePolicyOsConstraintArgs:
|
|
1370
1896
|
pulumi.set(self, "minimum_version", value)
|
1371
1897
|
|
1372
1898
|
|
1899
|
+
if not MYPY:
|
1900
|
+
class AccessLevelsAccessLevelBasicConditionVpcNetworkSourceArgsDict(TypedDict):
|
1901
|
+
vpc_subnetwork: NotRequired[pulumi.Input['AccessLevelsAccessLevelBasicConditionVpcNetworkSourceVpcSubnetworkArgsDict']]
|
1902
|
+
"""
|
1903
|
+
Sub networks within a VPC network.
|
1904
|
+
Structure is documented below.
|
1905
|
+
"""
|
1906
|
+
elif False:
|
1907
|
+
AccessLevelsAccessLevelBasicConditionVpcNetworkSourceArgsDict: TypeAlias = Mapping[str, Any]
|
1908
|
+
|
1373
1909
|
@pulumi.input_type
|
1374
1910
|
class AccessLevelsAccessLevelBasicConditionVpcNetworkSourceArgs:
|
1375
1911
|
def __init__(__self__, *,
|
@@ -1395,6 +1931,19 @@ class AccessLevelsAccessLevelBasicConditionVpcNetworkSourceArgs:
|
|
1395
1931
|
pulumi.set(self, "vpc_subnetwork", value)
|
1396
1932
|
|
1397
1933
|
|
1934
|
+
if not MYPY:
|
1935
|
+
class AccessLevelsAccessLevelBasicConditionVpcNetworkSourceVpcSubnetworkArgsDict(TypedDict):
|
1936
|
+
network: pulumi.Input[str]
|
1937
|
+
"""
|
1938
|
+
Required. Network name to be allowed by this Access Level. Networks of foreign organizations requires `compute.network.get` permission to be granted to caller.
|
1939
|
+
"""
|
1940
|
+
vpc_ip_subnetworks: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
1941
|
+
"""
|
1942
|
+
CIDR block IP subnetwork specification. Must be IPv4.
|
1943
|
+
"""
|
1944
|
+
elif False:
|
1945
|
+
AccessLevelsAccessLevelBasicConditionVpcNetworkSourceVpcSubnetworkArgsDict: TypeAlias = Mapping[str, Any]
|
1946
|
+
|
1398
1947
|
@pulumi.input_type
|
1399
1948
|
class AccessLevelsAccessLevelBasicConditionVpcNetworkSourceVpcSubnetworkArgs:
|
1400
1949
|
def __init__(__self__, *,
|
@@ -1433,6 +1982,18 @@ class AccessLevelsAccessLevelBasicConditionVpcNetworkSourceVpcSubnetworkArgs:
|
|
1433
1982
|
pulumi.set(self, "vpc_ip_subnetworks", value)
|
1434
1983
|
|
1435
1984
|
|
1985
|
+
if not MYPY:
|
1986
|
+
class AccessLevelsAccessLevelCustomArgsDict(TypedDict):
|
1987
|
+
expr: pulumi.Input['AccessLevelsAccessLevelCustomExprArgsDict']
|
1988
|
+
"""
|
1989
|
+
Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language.
|
1990
|
+
This page details the objects and attributes that are used to the build the CEL expressions for
|
1991
|
+
custom access levels - https://cloud.google.com/access-context-manager/docs/custom-access-level-spec.
|
1992
|
+
Structure is documented below.
|
1993
|
+
"""
|
1994
|
+
elif False:
|
1995
|
+
AccessLevelsAccessLevelCustomArgsDict: TypeAlias = Mapping[str, Any]
|
1996
|
+
|
1436
1997
|
@pulumi.input_type
|
1437
1998
|
class AccessLevelsAccessLevelCustomArgs:
|
1438
1999
|
def __init__(__self__, *,
|
@@ -1461,6 +2022,27 @@ class AccessLevelsAccessLevelCustomArgs:
|
|
1461
2022
|
pulumi.set(self, "expr", value)
|
1462
2023
|
|
1463
2024
|
|
2025
|
+
if not MYPY:
|
2026
|
+
class AccessLevelsAccessLevelCustomExprArgsDict(TypedDict):
|
2027
|
+
expression: pulumi.Input[str]
|
2028
|
+
"""
|
2029
|
+
Textual representation of an expression in Common Expression Language syntax.
|
2030
|
+
"""
|
2031
|
+
description: NotRequired[pulumi.Input[str]]
|
2032
|
+
"""
|
2033
|
+
Description of the expression
|
2034
|
+
"""
|
2035
|
+
location: NotRequired[pulumi.Input[str]]
|
2036
|
+
"""
|
2037
|
+
String indicating the location of the expression for error reporting, e.g. a file name and a position in the file
|
2038
|
+
"""
|
2039
|
+
title: NotRequired[pulumi.Input[str]]
|
2040
|
+
"""
|
2041
|
+
Title for the expression, i.e. a short string describing its purpose.
|
2042
|
+
"""
|
2043
|
+
elif False:
|
2044
|
+
AccessLevelsAccessLevelCustomExprArgsDict: TypeAlias = Mapping[str, Any]
|
2045
|
+
|
1464
2046
|
@pulumi.input_type
|
1465
2047
|
class AccessLevelsAccessLevelCustomExprArgs:
|
1466
2048
|
def __init__(__self__, *,
|
@@ -1531,6 +2113,14 @@ class AccessLevelsAccessLevelCustomExprArgs:
|
|
1531
2113
|
pulumi.set(self, "title", value)
|
1532
2114
|
|
1533
2115
|
|
2116
|
+
if not MYPY:
|
2117
|
+
class AccessPolicyIamBindingConditionArgsDict(TypedDict):
|
2118
|
+
expression: pulumi.Input[str]
|
2119
|
+
title: pulumi.Input[str]
|
2120
|
+
description: NotRequired[pulumi.Input[str]]
|
2121
|
+
elif False:
|
2122
|
+
AccessPolicyIamBindingConditionArgsDict: TypeAlias = Mapping[str, Any]
|
2123
|
+
|
1534
2124
|
@pulumi.input_type
|
1535
2125
|
class AccessPolicyIamBindingConditionArgs:
|
1536
2126
|
def __init__(__self__, *,
|
@@ -1570,6 +2160,14 @@ class AccessPolicyIamBindingConditionArgs:
|
|
1570
2160
|
pulumi.set(self, "description", value)
|
1571
2161
|
|
1572
2162
|
|
2163
|
+
if not MYPY:
|
2164
|
+
class AccessPolicyIamMemberConditionArgsDict(TypedDict):
|
2165
|
+
expression: pulumi.Input[str]
|
2166
|
+
title: pulumi.Input[str]
|
2167
|
+
description: NotRequired[pulumi.Input[str]]
|
2168
|
+
elif False:
|
2169
|
+
AccessPolicyIamMemberConditionArgsDict: TypeAlias = Mapping[str, Any]
|
2170
|
+
|
1573
2171
|
@pulumi.input_type
|
1574
2172
|
class AccessPolicyIamMemberConditionArgs:
|
1575
2173
|
def __init__(__self__, *,
|
@@ -1609,6 +2207,34 @@ class AccessPolicyIamMemberConditionArgs:
|
|
1609
2207
|
pulumi.set(self, "description", value)
|
1610
2208
|
|
1611
2209
|
|
2210
|
+
if not MYPY:
|
2211
|
+
class ServicePerimeterEgressPolicyEgressFromArgsDict(TypedDict):
|
2212
|
+
identities: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
2213
|
+
"""
|
2214
|
+
A list of identities that are allowed access through this `EgressPolicy`.
|
2215
|
+
Should be in the format of email address. The email address should
|
2216
|
+
represent individual user or service account only.
|
2217
|
+
"""
|
2218
|
+
identity_type: NotRequired[pulumi.Input[str]]
|
2219
|
+
"""
|
2220
|
+
Specifies the type of identities that are allowed access to outside the
|
2221
|
+
perimeter. If left unspecified, then members of `identities` field will
|
2222
|
+
be allowed access.
|
2223
|
+
Possible values are: `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.
|
2224
|
+
"""
|
2225
|
+
source_restriction: NotRequired[pulumi.Input[str]]
|
2226
|
+
"""
|
2227
|
+
Whether to enforce traffic restrictions based on `sources` field. If the `sources` field is non-empty, then this field must be set to `SOURCE_RESTRICTION_ENABLED`.
|
2228
|
+
Possible values are: `SOURCE_RESTRICTION_UNSPECIFIED`, `SOURCE_RESTRICTION_ENABLED`, `SOURCE_RESTRICTION_DISABLED`.
|
2229
|
+
"""
|
2230
|
+
sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterEgressPolicyEgressFromSourceArgsDict']]]]
|
2231
|
+
"""
|
2232
|
+
Sources that this EgressPolicy authorizes access from.
|
2233
|
+
Structure is documented below.
|
2234
|
+
"""
|
2235
|
+
elif False:
|
2236
|
+
ServicePerimeterEgressPolicyEgressFromArgsDict: TypeAlias = Mapping[str, Any]
|
2237
|
+
|
1612
2238
|
@pulumi.input_type
|
1613
2239
|
class ServicePerimeterEgressPolicyEgressFromArgs:
|
1614
2240
|
def __init__(__self__, *,
|
@@ -1694,6 +2320,15 @@ class ServicePerimeterEgressPolicyEgressFromArgs:
|
|
1694
2320
|
pulumi.set(self, "sources", value)
|
1695
2321
|
|
1696
2322
|
|
2323
|
+
if not MYPY:
|
2324
|
+
class ServicePerimeterEgressPolicyEgressFromSourceArgsDict(TypedDict):
|
2325
|
+
access_level: NotRequired[pulumi.Input[str]]
|
2326
|
+
"""
|
2327
|
+
An AccessLevel resource name that allows resources outside the ServicePerimeter to be accessed from the inside.
|
2328
|
+
"""
|
2329
|
+
elif False:
|
2330
|
+
ServicePerimeterEgressPolicyEgressFromSourceArgsDict: TypeAlias = Mapping[str, Any]
|
2331
|
+
|
1697
2332
|
@pulumi.input_type
|
1698
2333
|
class ServicePerimeterEgressPolicyEgressFromSourceArgs:
|
1699
2334
|
def __init__(__self__, *,
|
@@ -1717,6 +2352,31 @@ class ServicePerimeterEgressPolicyEgressFromSourceArgs:
|
|
1717
2352
|
pulumi.set(self, "access_level", value)
|
1718
2353
|
|
1719
2354
|
|
2355
|
+
if not MYPY:
|
2356
|
+
class ServicePerimeterEgressPolicyEgressToArgsDict(TypedDict):
|
2357
|
+
external_resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
2358
|
+
"""
|
2359
|
+
A list of external resources that are allowed to be accessed. A request
|
2360
|
+
matches if it contains an external resource in this list (Example:
|
2361
|
+
s3://bucket/path). Currently '*' is not allowed.
|
2362
|
+
"""
|
2363
|
+
operations: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterEgressPolicyEgressToOperationArgsDict']]]]
|
2364
|
+
"""
|
2365
|
+
A list of `ApiOperations` that this egress rule applies to. A request matches
|
2366
|
+
if it contains an operation/service in this list.
|
2367
|
+
Structure is documented below.
|
2368
|
+
"""
|
2369
|
+
resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
2370
|
+
"""
|
2371
|
+
A list of resources, currently only projects in the form
|
2372
|
+
`projects/<projectnumber>`, that match this to stanza. A request matches
|
2373
|
+
if it contains a resource in this list. If * is specified for resources,
|
2374
|
+
then this `EgressTo` rule will authorize access to all resources outside
|
2375
|
+
the perimeter.
|
2376
|
+
"""
|
2377
|
+
elif False:
|
2378
|
+
ServicePerimeterEgressPolicyEgressToArgsDict: TypeAlias = Mapping[str, Any]
|
2379
|
+
|
1720
2380
|
@pulumi.input_type
|
1721
2381
|
class ServicePerimeterEgressPolicyEgressToArgs:
|
1722
2382
|
def __init__(__self__, *,
|
@@ -1788,6 +2448,25 @@ class ServicePerimeterEgressPolicyEgressToArgs:
|
|
1788
2448
|
pulumi.set(self, "resources", value)
|
1789
2449
|
|
1790
2450
|
|
2451
|
+
if not MYPY:
|
2452
|
+
class ServicePerimeterEgressPolicyEgressToOperationArgsDict(TypedDict):
|
2453
|
+
method_selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterEgressPolicyEgressToOperationMethodSelectorArgsDict']]]]
|
2454
|
+
"""
|
2455
|
+
API methods or permissions to allow. Method or permission must belong
|
2456
|
+
to the service specified by `serviceName` field. A single MethodSelector
|
2457
|
+
entry with `*` specified for the `method` field will allow all methods
|
2458
|
+
AND permissions for the service specified in `serviceName`.
|
2459
|
+
Structure is documented below.
|
2460
|
+
"""
|
2461
|
+
service_name: NotRequired[pulumi.Input[str]]
|
2462
|
+
"""
|
2463
|
+
The name of the API whose methods or permissions the `IngressPolicy` or
|
2464
|
+
`EgressPolicy` want to allow. A single `ApiOperation` with serviceName
|
2465
|
+
field set to `*` will allow all methods AND permissions for all services.
|
2466
|
+
"""
|
2467
|
+
elif False:
|
2468
|
+
ServicePerimeterEgressPolicyEgressToOperationArgsDict: TypeAlias = Mapping[str, Any]
|
2469
|
+
|
1791
2470
|
@pulumi.input_type
|
1792
2471
|
class ServicePerimeterEgressPolicyEgressToOperationArgs:
|
1793
2472
|
def __init__(__self__, *,
|
@@ -1839,6 +2518,22 @@ class ServicePerimeterEgressPolicyEgressToOperationArgs:
|
|
1839
2518
|
pulumi.set(self, "service_name", value)
|
1840
2519
|
|
1841
2520
|
|
2521
|
+
if not MYPY:
|
2522
|
+
class ServicePerimeterEgressPolicyEgressToOperationMethodSelectorArgsDict(TypedDict):
|
2523
|
+
method: NotRequired[pulumi.Input[str]]
|
2524
|
+
"""
|
2525
|
+
Value for `method` should be a valid method name for the corresponding
|
2526
|
+
`serviceName` in `ApiOperation`. If `*` used as value for method,
|
2527
|
+
then ALL methods and permissions are allowed.
|
2528
|
+
"""
|
2529
|
+
permission: NotRequired[pulumi.Input[str]]
|
2530
|
+
"""
|
2531
|
+
Value for permission should be a valid Cloud IAM permission for the
|
2532
|
+
corresponding `serviceName` in `ApiOperation`.
|
2533
|
+
"""
|
2534
|
+
elif False:
|
2535
|
+
ServicePerimeterEgressPolicyEgressToOperationMethodSelectorArgsDict: TypeAlias = Mapping[str, Any]
|
2536
|
+
|
1842
2537
|
@pulumi.input_type
|
1843
2538
|
class ServicePerimeterEgressPolicyEgressToOperationMethodSelectorArgs:
|
1844
2539
|
def __init__(__self__, *,
|
@@ -1884,6 +2579,29 @@ class ServicePerimeterEgressPolicyEgressToOperationMethodSelectorArgs:
|
|
1884
2579
|
pulumi.set(self, "permission", value)
|
1885
2580
|
|
1886
2581
|
|
2582
|
+
if not MYPY:
|
2583
|
+
class ServicePerimeterIngressPolicyIngressFromArgsDict(TypedDict):
|
2584
|
+
identities: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
2585
|
+
"""
|
2586
|
+
A list of identities that are allowed access through this ingress policy.
|
2587
|
+
Should be in the format of email address. The email address should represent
|
2588
|
+
individual user or service account only.
|
2589
|
+
"""
|
2590
|
+
identity_type: NotRequired[pulumi.Input[str]]
|
2591
|
+
"""
|
2592
|
+
Specifies the type of identities that are allowed access from outside the
|
2593
|
+
perimeter. If left unspecified, then members of `identities` field will be
|
2594
|
+
allowed access.
|
2595
|
+
Possible values are: `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.
|
2596
|
+
"""
|
2597
|
+
sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterIngressPolicyIngressFromSourceArgsDict']]]]
|
2598
|
+
"""
|
2599
|
+
Sources that this `IngressPolicy` authorizes access from.
|
2600
|
+
Structure is documented below.
|
2601
|
+
"""
|
2602
|
+
elif False:
|
2603
|
+
ServicePerimeterIngressPolicyIngressFromArgsDict: TypeAlias = Mapping[str, Any]
|
2604
|
+
|
1887
2605
|
@pulumi.input_type
|
1888
2606
|
class ServicePerimeterIngressPolicyIngressFromArgs:
|
1889
2607
|
def __init__(__self__, *,
|
@@ -1951,6 +2669,31 @@ class ServicePerimeterIngressPolicyIngressFromArgs:
|
|
1951
2669
|
pulumi.set(self, "sources", value)
|
1952
2670
|
|
1953
2671
|
|
2672
|
+
if not MYPY:
|
2673
|
+
class ServicePerimeterIngressPolicyIngressFromSourceArgsDict(TypedDict):
|
2674
|
+
access_level: NotRequired[pulumi.Input[str]]
|
2675
|
+
"""
|
2676
|
+
An `AccessLevel` resource name that allow resources within the
|
2677
|
+
`ServicePerimeters` to be accessed from the internet. `AccessLevels` listed
|
2678
|
+
must be in the same policy as this `ServicePerimeter`. Referencing a nonexistent
|
2679
|
+
`AccessLevel` will cause an error. If no `AccessLevel` names are listed,
|
2680
|
+
resources within the perimeter can only be accessed via Google Cloud calls
|
2681
|
+
with request origins within the perimeter.
|
2682
|
+
Example `accessPolicies/MY_POLICY/accessLevels/MY_LEVEL.`
|
2683
|
+
If * is specified, then all IngressSources will be allowed.
|
2684
|
+
"""
|
2685
|
+
resource: NotRequired[pulumi.Input[str]]
|
2686
|
+
"""
|
2687
|
+
A Google Cloud resource that is allowed to ingress the perimeter.
|
2688
|
+
Requests from these resources will be allowed to access perimeter data.
|
2689
|
+
Currently only projects are allowed. Format `projects/{project_number}`
|
2690
|
+
The project may be in any Google Cloud organization, not just the
|
2691
|
+
organization that the perimeter is defined in. `*` is not allowed, the case
|
2692
|
+
of allowing all Google Cloud resources only is not supported.
|
2693
|
+
"""
|
2694
|
+
elif False:
|
2695
|
+
ServicePerimeterIngressPolicyIngressFromSourceArgsDict: TypeAlias = Mapping[str, Any]
|
2696
|
+
|
1954
2697
|
@pulumi.input_type
|
1955
2698
|
class ServicePerimeterIngressPolicyIngressFromSourceArgs:
|
1956
2699
|
def __init__(__self__, *,
|
@@ -2014,6 +2757,28 @@ class ServicePerimeterIngressPolicyIngressFromSourceArgs:
|
|
2014
2757
|
pulumi.set(self, "resource", value)
|
2015
2758
|
|
2016
2759
|
|
2760
|
+
if not MYPY:
|
2761
|
+
class ServicePerimeterIngressPolicyIngressToArgsDict(TypedDict):
|
2762
|
+
operations: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterIngressPolicyIngressToOperationArgsDict']]]]
|
2763
|
+
"""
|
2764
|
+
A list of `ApiOperations` the sources specified in corresponding `IngressFrom`
|
2765
|
+
are allowed to perform in this `ServicePerimeter`.
|
2766
|
+
Structure is documented below.
|
2767
|
+
"""
|
2768
|
+
resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
2769
|
+
"""
|
2770
|
+
A list of resources, currently only projects in the form
|
2771
|
+
`projects/<projectnumber>`, protected by this `ServicePerimeter`
|
2772
|
+
that are allowed to be accessed by sources defined in the
|
2773
|
+
corresponding `IngressFrom`. A request matches if it contains
|
2774
|
+
a resource in this list. If `*` is specified for resources,
|
2775
|
+
then this `IngressTo` rule will authorize access to all
|
2776
|
+
resources inside the perimeter, provided that the request
|
2777
|
+
also matches the `operations` field.
|
2778
|
+
"""
|
2779
|
+
elif False:
|
2780
|
+
ServicePerimeterIngressPolicyIngressToArgsDict: TypeAlias = Mapping[str, Any]
|
2781
|
+
|
2017
2782
|
@pulumi.input_type
|
2018
2783
|
class ServicePerimeterIngressPolicyIngressToArgs:
|
2019
2784
|
def __init__(__self__, *,
|
@@ -2071,6 +2836,25 @@ class ServicePerimeterIngressPolicyIngressToArgs:
|
|
2071
2836
|
pulumi.set(self, "resources", value)
|
2072
2837
|
|
2073
2838
|
|
2839
|
+
if not MYPY:
|
2840
|
+
class ServicePerimeterIngressPolicyIngressToOperationArgsDict(TypedDict):
|
2841
|
+
method_selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterIngressPolicyIngressToOperationMethodSelectorArgsDict']]]]
|
2842
|
+
"""
|
2843
|
+
API methods or permissions to allow. Method or permission must belong to
|
2844
|
+
the service specified by serviceName field. A single `MethodSelector` entry
|
2845
|
+
with `*` specified for the method field will allow all methods AND
|
2846
|
+
permissions for the service specified in `serviceName`.
|
2847
|
+
Structure is documented below.
|
2848
|
+
"""
|
2849
|
+
service_name: NotRequired[pulumi.Input[str]]
|
2850
|
+
"""
|
2851
|
+
The name of the API whose methods or permissions the `IngressPolicy` or
|
2852
|
+
`EgressPolicy` want to allow. A single `ApiOperation` with `serviceName`
|
2853
|
+
field set to `*` will allow all methods AND permissions for all services.
|
2854
|
+
"""
|
2855
|
+
elif False:
|
2856
|
+
ServicePerimeterIngressPolicyIngressToOperationArgsDict: TypeAlias = Mapping[str, Any]
|
2857
|
+
|
2074
2858
|
@pulumi.input_type
|
2075
2859
|
class ServicePerimeterIngressPolicyIngressToOperationArgs:
|
2076
2860
|
def __init__(__self__, *,
|
@@ -2122,6 +2906,22 @@ class ServicePerimeterIngressPolicyIngressToOperationArgs:
|
|
2122
2906
|
pulumi.set(self, "service_name", value)
|
2123
2907
|
|
2124
2908
|
|
2909
|
+
if not MYPY:
|
2910
|
+
class ServicePerimeterIngressPolicyIngressToOperationMethodSelectorArgsDict(TypedDict):
|
2911
|
+
method: NotRequired[pulumi.Input[str]]
|
2912
|
+
"""
|
2913
|
+
Value for method should be a valid method name for the corresponding
|
2914
|
+
serviceName in `ApiOperation`. If `*` used as value for `method`, then
|
2915
|
+
ALL methods and permissions are allowed.
|
2916
|
+
"""
|
2917
|
+
permission: NotRequired[pulumi.Input[str]]
|
2918
|
+
"""
|
2919
|
+
Value for permission should be a valid Cloud IAM permission for the
|
2920
|
+
corresponding `serviceName` in `ApiOperation`.
|
2921
|
+
"""
|
2922
|
+
elif False:
|
2923
|
+
ServicePerimeterIngressPolicyIngressToOperationMethodSelectorArgsDict: TypeAlias = Mapping[str, Any]
|
2924
|
+
|
2125
2925
|
@pulumi.input_type
|
2126
2926
|
class ServicePerimeterIngressPolicyIngressToOperationMethodSelectorArgs:
|
2127
2927
|
def __init__(__self__, *,
|
@@ -2167,6 +2967,59 @@ class ServicePerimeterIngressPolicyIngressToOperationMethodSelectorArgs:
|
|
2167
2967
|
pulumi.set(self, "permission", value)
|
2168
2968
|
|
2169
2969
|
|
2970
|
+
if not MYPY:
|
2971
|
+
class ServicePerimeterSpecArgsDict(TypedDict):
|
2972
|
+
access_levels: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
2973
|
+
"""
|
2974
|
+
A list of AccessLevel resource names that allow resources within
|
2975
|
+
the ServicePerimeter to be accessed from the internet.
|
2976
|
+
AccessLevels listed must be in the same policy as this
|
2977
|
+
ServicePerimeter. Referencing a nonexistent AccessLevel is a
|
2978
|
+
syntax error. If no AccessLevel names are listed, resources within
|
2979
|
+
the perimeter can only be accessed via GCP calls with request
|
2980
|
+
origins within the perimeter. For Service Perimeter Bridge, must
|
2981
|
+
be empty.
|
2982
|
+
Format: accessPolicies/{policy_id}/accessLevels/{access_level_name}
|
2983
|
+
"""
|
2984
|
+
egress_policies: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterSpecEgressPolicyArgsDict']]]]
|
2985
|
+
"""
|
2986
|
+
List of EgressPolicies to apply to the perimeter. A perimeter may
|
2987
|
+
have multiple EgressPolicies, each of which is evaluated separately.
|
2988
|
+
Access is granted if any EgressPolicy grants it. Must be empty for
|
2989
|
+
a perimeter bridge.
|
2990
|
+
Structure is documented below.
|
2991
|
+
"""
|
2992
|
+
ingress_policies: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterSpecIngressPolicyArgsDict']]]]
|
2993
|
+
"""
|
2994
|
+
List of `IngressPolicies` to apply to the perimeter. A perimeter may
|
2995
|
+
have multiple `IngressPolicies`, each of which is evaluated
|
2996
|
+
separately. Access is granted if any `Ingress Policy` grants it.
|
2997
|
+
Must be empty for a perimeter bridge.
|
2998
|
+
Structure is documented below.
|
2999
|
+
"""
|
3000
|
+
resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
3001
|
+
"""
|
3002
|
+
A list of GCP resources that are inside of the service perimeter.
|
3003
|
+
Currently only projects are allowed.
|
3004
|
+
Format: projects/{project_number}
|
3005
|
+
"""
|
3006
|
+
restricted_services: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
3007
|
+
"""
|
3008
|
+
GCP services that are subject to the Service Perimeter
|
3009
|
+
restrictions. Must contain a list of services. For example, if
|
3010
|
+
`storage.googleapis.com` is specified, access to the storage
|
3011
|
+
buckets inside the perimeter must meet the perimeter's access
|
3012
|
+
restrictions.
|
3013
|
+
"""
|
3014
|
+
vpc_accessible_services: NotRequired[pulumi.Input['ServicePerimeterSpecVpcAccessibleServicesArgsDict']]
|
3015
|
+
"""
|
3016
|
+
Specifies how APIs are allowed to communicate within the Service
|
3017
|
+
Perimeter.
|
3018
|
+
Structure is documented below.
|
3019
|
+
"""
|
3020
|
+
elif False:
|
3021
|
+
ServicePerimeterSpecArgsDict: TypeAlias = Mapping[str, Any]
|
3022
|
+
|
2170
3023
|
@pulumi.input_type
|
2171
3024
|
class ServicePerimeterSpecArgs:
|
2172
3025
|
def __init__(__self__, *,
|
@@ -2318,6 +3171,22 @@ class ServicePerimeterSpecArgs:
|
|
2318
3171
|
pulumi.set(self, "vpc_accessible_services", value)
|
2319
3172
|
|
2320
3173
|
|
3174
|
+
if not MYPY:
|
3175
|
+
class ServicePerimeterSpecEgressPolicyArgsDict(TypedDict):
|
3176
|
+
egress_from: NotRequired[pulumi.Input['ServicePerimeterSpecEgressPolicyEgressFromArgsDict']]
|
3177
|
+
"""
|
3178
|
+
Defines conditions on the source of a request causing this `EgressPolicy` to apply.
|
3179
|
+
Structure is documented below.
|
3180
|
+
"""
|
3181
|
+
egress_to: NotRequired[pulumi.Input['ServicePerimeterSpecEgressPolicyEgressToArgsDict']]
|
3182
|
+
"""
|
3183
|
+
Defines the conditions on the `ApiOperation` and destination resources that
|
3184
|
+
cause this `EgressPolicy` to apply.
|
3185
|
+
Structure is documented below.
|
3186
|
+
"""
|
3187
|
+
elif False:
|
3188
|
+
ServicePerimeterSpecEgressPolicyArgsDict: TypeAlias = Mapping[str, Any]
|
3189
|
+
|
2321
3190
|
@pulumi.input_type
|
2322
3191
|
class ServicePerimeterSpecEgressPolicyArgs:
|
2323
3192
|
def __init__(__self__, *,
|
@@ -2363,6 +3232,34 @@ class ServicePerimeterSpecEgressPolicyArgs:
|
|
2363
3232
|
pulumi.set(self, "egress_to", value)
|
2364
3233
|
|
2365
3234
|
|
3235
|
+
if not MYPY:
|
3236
|
+
class ServicePerimeterSpecEgressPolicyEgressFromArgsDict(TypedDict):
|
3237
|
+
identities: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
3238
|
+
"""
|
3239
|
+
A list of identities that are allowed access through this `EgressPolicy`.
|
3240
|
+
Should be in the format of email address. The email address should
|
3241
|
+
represent individual user or service account only.
|
3242
|
+
"""
|
3243
|
+
identity_type: NotRequired[pulumi.Input[str]]
|
3244
|
+
"""
|
3245
|
+
Specifies the type of identities that are allowed access to outside the
|
3246
|
+
perimeter. If left unspecified, then members of `identities` field will
|
3247
|
+
be allowed access.
|
3248
|
+
Possible values are: `IDENTITY_TYPE_UNSPECIFIED`, `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.
|
3249
|
+
"""
|
3250
|
+
source_restriction: NotRequired[pulumi.Input[str]]
|
3251
|
+
"""
|
3252
|
+
Whether to enforce traffic restrictions based on `sources` field. If the `sources` field is non-empty, then this field must be set to `SOURCE_RESTRICTION_ENABLED`.
|
3253
|
+
Possible values are: `SOURCE_RESTRICTION_UNSPECIFIED`, `SOURCE_RESTRICTION_ENABLED`, `SOURCE_RESTRICTION_DISABLED`.
|
3254
|
+
"""
|
3255
|
+
sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterSpecEgressPolicyEgressFromSourceArgsDict']]]]
|
3256
|
+
"""
|
3257
|
+
Sources that this EgressPolicy authorizes access from.
|
3258
|
+
Structure is documented below.
|
3259
|
+
"""
|
3260
|
+
elif False:
|
3261
|
+
ServicePerimeterSpecEgressPolicyEgressFromArgsDict: TypeAlias = Mapping[str, Any]
|
3262
|
+
|
2366
3263
|
@pulumi.input_type
|
2367
3264
|
class ServicePerimeterSpecEgressPolicyEgressFromArgs:
|
2368
3265
|
def __init__(__self__, *,
|
@@ -2448,6 +3345,15 @@ class ServicePerimeterSpecEgressPolicyEgressFromArgs:
|
|
2448
3345
|
pulumi.set(self, "sources", value)
|
2449
3346
|
|
2450
3347
|
|
3348
|
+
if not MYPY:
|
3349
|
+
class ServicePerimeterSpecEgressPolicyEgressFromSourceArgsDict(TypedDict):
|
3350
|
+
access_level: NotRequired[pulumi.Input[str]]
|
3351
|
+
"""
|
3352
|
+
An AccessLevel resource name that allows resources outside the ServicePerimeter to be accessed from the inside.
|
3353
|
+
"""
|
3354
|
+
elif False:
|
3355
|
+
ServicePerimeterSpecEgressPolicyEgressFromSourceArgsDict: TypeAlias = Mapping[str, Any]
|
3356
|
+
|
2451
3357
|
@pulumi.input_type
|
2452
3358
|
class ServicePerimeterSpecEgressPolicyEgressFromSourceArgs:
|
2453
3359
|
def __init__(__self__, *,
|
@@ -2471,6 +3377,31 @@ class ServicePerimeterSpecEgressPolicyEgressFromSourceArgs:
|
|
2471
3377
|
pulumi.set(self, "access_level", value)
|
2472
3378
|
|
2473
3379
|
|
3380
|
+
if not MYPY:
|
3381
|
+
class ServicePerimeterSpecEgressPolicyEgressToArgsDict(TypedDict):
|
3382
|
+
external_resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
3383
|
+
"""
|
3384
|
+
A list of external resources that are allowed to be accessed. A request
|
3385
|
+
matches if it contains an external resource in this list (Example:
|
3386
|
+
s3://bucket/path). Currently '*' is not allowed.
|
3387
|
+
"""
|
3388
|
+
operations: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterSpecEgressPolicyEgressToOperationArgsDict']]]]
|
3389
|
+
"""
|
3390
|
+
A list of `ApiOperations` that this egress rule applies to. A request matches
|
3391
|
+
if it contains an operation/service in this list.
|
3392
|
+
Structure is documented below.
|
3393
|
+
"""
|
3394
|
+
resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
3395
|
+
"""
|
3396
|
+
A list of resources, currently only projects in the form
|
3397
|
+
`projects/<projectnumber>`, that match this to stanza. A request matches
|
3398
|
+
if it contains a resource in this list. If * is specified for resources,
|
3399
|
+
then this `EgressTo` rule will authorize access to all resources outside
|
3400
|
+
the perimeter.
|
3401
|
+
"""
|
3402
|
+
elif False:
|
3403
|
+
ServicePerimeterSpecEgressPolicyEgressToArgsDict: TypeAlias = Mapping[str, Any]
|
3404
|
+
|
2474
3405
|
@pulumi.input_type
|
2475
3406
|
class ServicePerimeterSpecEgressPolicyEgressToArgs:
|
2476
3407
|
def __init__(__self__, *,
|
@@ -2542,6 +3473,25 @@ class ServicePerimeterSpecEgressPolicyEgressToArgs:
|
|
2542
3473
|
pulumi.set(self, "resources", value)
|
2543
3474
|
|
2544
3475
|
|
3476
|
+
if not MYPY:
|
3477
|
+
class ServicePerimeterSpecEgressPolicyEgressToOperationArgsDict(TypedDict):
|
3478
|
+
method_selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterSpecEgressPolicyEgressToOperationMethodSelectorArgsDict']]]]
|
3479
|
+
"""
|
3480
|
+
API methods or permissions to allow. Method or permission must belong
|
3481
|
+
to the service specified by `serviceName` field. A single MethodSelector
|
3482
|
+
entry with `*` specified for the `method` field will allow all methods
|
3483
|
+
AND permissions for the service specified in `serviceName`.
|
3484
|
+
Structure is documented below.
|
3485
|
+
"""
|
3486
|
+
service_name: NotRequired[pulumi.Input[str]]
|
3487
|
+
"""
|
3488
|
+
The name of the API whose methods or permissions the `IngressPolicy` or
|
3489
|
+
`EgressPolicy` want to allow. A single `ApiOperation` with serviceName
|
3490
|
+
field set to `*` will allow all methods AND permissions for all services.
|
3491
|
+
"""
|
3492
|
+
elif False:
|
3493
|
+
ServicePerimeterSpecEgressPolicyEgressToOperationArgsDict: TypeAlias = Mapping[str, Any]
|
3494
|
+
|
2545
3495
|
@pulumi.input_type
|
2546
3496
|
class ServicePerimeterSpecEgressPolicyEgressToOperationArgs:
|
2547
3497
|
def __init__(__self__, *,
|
@@ -2593,6 +3543,22 @@ class ServicePerimeterSpecEgressPolicyEgressToOperationArgs:
|
|
2593
3543
|
pulumi.set(self, "service_name", value)
|
2594
3544
|
|
2595
3545
|
|
3546
|
+
if not MYPY:
|
3547
|
+
class ServicePerimeterSpecEgressPolicyEgressToOperationMethodSelectorArgsDict(TypedDict):
|
3548
|
+
method: NotRequired[pulumi.Input[str]]
|
3549
|
+
"""
|
3550
|
+
Value for `method` should be a valid method name for the corresponding
|
3551
|
+
`serviceName` in `ApiOperation`. If `*` used as value for method,
|
3552
|
+
then ALL methods and permissions are allowed.
|
3553
|
+
"""
|
3554
|
+
permission: NotRequired[pulumi.Input[str]]
|
3555
|
+
"""
|
3556
|
+
Value for permission should be a valid Cloud IAM permission for the
|
3557
|
+
corresponding `serviceName` in `ApiOperation`.
|
3558
|
+
"""
|
3559
|
+
elif False:
|
3560
|
+
ServicePerimeterSpecEgressPolicyEgressToOperationMethodSelectorArgsDict: TypeAlias = Mapping[str, Any]
|
3561
|
+
|
2596
3562
|
@pulumi.input_type
|
2597
3563
|
class ServicePerimeterSpecEgressPolicyEgressToOperationMethodSelectorArgs:
|
2598
3564
|
def __init__(__self__, *,
|
@@ -2638,6 +3604,23 @@ class ServicePerimeterSpecEgressPolicyEgressToOperationMethodSelectorArgs:
|
|
2638
3604
|
pulumi.set(self, "permission", value)
|
2639
3605
|
|
2640
3606
|
|
3607
|
+
if not MYPY:
|
3608
|
+
class ServicePerimeterSpecIngressPolicyArgsDict(TypedDict):
|
3609
|
+
ingress_from: NotRequired[pulumi.Input['ServicePerimeterSpecIngressPolicyIngressFromArgsDict']]
|
3610
|
+
"""
|
3611
|
+
Defines the conditions on the source of a request causing this `IngressPolicy`
|
3612
|
+
to apply.
|
3613
|
+
Structure is documented below.
|
3614
|
+
"""
|
3615
|
+
ingress_to: NotRequired[pulumi.Input['ServicePerimeterSpecIngressPolicyIngressToArgsDict']]
|
3616
|
+
"""
|
3617
|
+
Defines the conditions on the `ApiOperation` and request destination that cause
|
3618
|
+
this `IngressPolicy` to apply.
|
3619
|
+
Structure is documented below.
|
3620
|
+
"""
|
3621
|
+
elif False:
|
3622
|
+
ServicePerimeterSpecIngressPolicyArgsDict: TypeAlias = Mapping[str, Any]
|
3623
|
+
|
2641
3624
|
@pulumi.input_type
|
2642
3625
|
class ServicePerimeterSpecIngressPolicyArgs:
|
2643
3626
|
def __init__(__self__, *,
|
@@ -2685,6 +3668,29 @@ class ServicePerimeterSpecIngressPolicyArgs:
|
|
2685
3668
|
pulumi.set(self, "ingress_to", value)
|
2686
3669
|
|
2687
3670
|
|
3671
|
+
if not MYPY:
|
3672
|
+
class ServicePerimeterSpecIngressPolicyIngressFromArgsDict(TypedDict):
|
3673
|
+
identities: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
3674
|
+
"""
|
3675
|
+
A list of identities that are allowed access through this ingress policy.
|
3676
|
+
Should be in the format of email address. The email address should represent
|
3677
|
+
individual user or service account only.
|
3678
|
+
"""
|
3679
|
+
identity_type: NotRequired[pulumi.Input[str]]
|
3680
|
+
"""
|
3681
|
+
Specifies the type of identities that are allowed access from outside the
|
3682
|
+
perimeter. If left unspecified, then members of `identities` field will be
|
3683
|
+
allowed access.
|
3684
|
+
Possible values are: `IDENTITY_TYPE_UNSPECIFIED`, `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.
|
3685
|
+
"""
|
3686
|
+
sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterSpecIngressPolicyIngressFromSourceArgsDict']]]]
|
3687
|
+
"""
|
3688
|
+
Sources that this `IngressPolicy` authorizes access from.
|
3689
|
+
Structure is documented below.
|
3690
|
+
"""
|
3691
|
+
elif False:
|
3692
|
+
ServicePerimeterSpecIngressPolicyIngressFromArgsDict: TypeAlias = Mapping[str, Any]
|
3693
|
+
|
2688
3694
|
@pulumi.input_type
|
2689
3695
|
class ServicePerimeterSpecIngressPolicyIngressFromArgs:
|
2690
3696
|
def __init__(__self__, *,
|
@@ -2752,6 +3758,24 @@ class ServicePerimeterSpecIngressPolicyIngressFromArgs:
|
|
2752
3758
|
pulumi.set(self, "sources", value)
|
2753
3759
|
|
2754
3760
|
|
3761
|
+
if not MYPY:
|
3762
|
+
class ServicePerimeterSpecIngressPolicyIngressFromSourceArgsDict(TypedDict):
|
3763
|
+
access_level: NotRequired[pulumi.Input[str]]
|
3764
|
+
"""
|
3765
|
+
An AccessLevel resource name that allows resources outside the ServicePerimeter to be accessed from the inside.
|
3766
|
+
"""
|
3767
|
+
resource: NotRequired[pulumi.Input[str]]
|
3768
|
+
"""
|
3769
|
+
A Google Cloud resource that is allowed to ingress the perimeter.
|
3770
|
+
Requests from these resources will be allowed to access perimeter data.
|
3771
|
+
Currently only projects are allowed. Format `projects/{project_number}`
|
3772
|
+
The project may be in any Google Cloud organization, not just the
|
3773
|
+
organization that the perimeter is defined in. `*` is not allowed, the case
|
3774
|
+
of allowing all Google Cloud resources only is not supported.
|
3775
|
+
"""
|
3776
|
+
elif False:
|
3777
|
+
ServicePerimeterSpecIngressPolicyIngressFromSourceArgsDict: TypeAlias = Mapping[str, Any]
|
3778
|
+
|
2755
3779
|
@pulumi.input_type
|
2756
3780
|
class ServicePerimeterSpecIngressPolicyIngressFromSourceArgs:
|
2757
3781
|
def __init__(__self__, *,
|
@@ -2801,6 +3825,28 @@ class ServicePerimeterSpecIngressPolicyIngressFromSourceArgs:
|
|
2801
3825
|
pulumi.set(self, "resource", value)
|
2802
3826
|
|
2803
3827
|
|
3828
|
+
if not MYPY:
|
3829
|
+
class ServicePerimeterSpecIngressPolicyIngressToArgsDict(TypedDict):
|
3830
|
+
operations: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterSpecIngressPolicyIngressToOperationArgsDict']]]]
|
3831
|
+
"""
|
3832
|
+
A list of `ApiOperations` the sources specified in corresponding `IngressFrom`
|
3833
|
+
are allowed to perform in this `ServicePerimeter`.
|
3834
|
+
Structure is documented below.
|
3835
|
+
"""
|
3836
|
+
resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
3837
|
+
"""
|
3838
|
+
A list of resources, currently only projects in the form
|
3839
|
+
`projects/<projectnumber>`, protected by this `ServicePerimeter`
|
3840
|
+
that are allowed to be accessed by sources defined in the
|
3841
|
+
corresponding `IngressFrom`. A request matches if it contains
|
3842
|
+
a resource in this list. If `*` is specified for resources,
|
3843
|
+
then this `IngressTo` rule will authorize access to all
|
3844
|
+
resources inside the perimeter, provided that the request
|
3845
|
+
also matches the `operations` field.
|
3846
|
+
"""
|
3847
|
+
elif False:
|
3848
|
+
ServicePerimeterSpecIngressPolicyIngressToArgsDict: TypeAlias = Mapping[str, Any]
|
3849
|
+
|
2804
3850
|
@pulumi.input_type
|
2805
3851
|
class ServicePerimeterSpecIngressPolicyIngressToArgs:
|
2806
3852
|
def __init__(__self__, *,
|
@@ -2858,6 +3904,25 @@ class ServicePerimeterSpecIngressPolicyIngressToArgs:
|
|
2858
3904
|
pulumi.set(self, "resources", value)
|
2859
3905
|
|
2860
3906
|
|
3907
|
+
if not MYPY:
|
3908
|
+
class ServicePerimeterSpecIngressPolicyIngressToOperationArgsDict(TypedDict):
|
3909
|
+
method_selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterSpecIngressPolicyIngressToOperationMethodSelectorArgsDict']]]]
|
3910
|
+
"""
|
3911
|
+
API methods or permissions to allow. Method or permission must belong
|
3912
|
+
to the service specified by `serviceName` field. A single MethodSelector
|
3913
|
+
entry with `*` specified for the `method` field will allow all methods
|
3914
|
+
AND permissions for the service specified in `serviceName`.
|
3915
|
+
Structure is documented below.
|
3916
|
+
"""
|
3917
|
+
service_name: NotRequired[pulumi.Input[str]]
|
3918
|
+
"""
|
3919
|
+
The name of the API whose methods or permissions the `IngressPolicy` or
|
3920
|
+
`EgressPolicy` want to allow. A single `ApiOperation` with serviceName
|
3921
|
+
field set to `*` will allow all methods AND permissions for all services.
|
3922
|
+
"""
|
3923
|
+
elif False:
|
3924
|
+
ServicePerimeterSpecIngressPolicyIngressToOperationArgsDict: TypeAlias = Mapping[str, Any]
|
3925
|
+
|
2861
3926
|
@pulumi.input_type
|
2862
3927
|
class ServicePerimeterSpecIngressPolicyIngressToOperationArgs:
|
2863
3928
|
def __init__(__self__, *,
|
@@ -2909,6 +3974,22 @@ class ServicePerimeterSpecIngressPolicyIngressToOperationArgs:
|
|
2909
3974
|
pulumi.set(self, "service_name", value)
|
2910
3975
|
|
2911
3976
|
|
3977
|
+
if not MYPY:
|
3978
|
+
class ServicePerimeterSpecIngressPolicyIngressToOperationMethodSelectorArgsDict(TypedDict):
|
3979
|
+
method: NotRequired[pulumi.Input[str]]
|
3980
|
+
"""
|
3981
|
+
Value for `method` should be a valid method name for the corresponding
|
3982
|
+
`serviceName` in `ApiOperation`. If `*` used as value for method,
|
3983
|
+
then ALL methods and permissions are allowed.
|
3984
|
+
"""
|
3985
|
+
permission: NotRequired[pulumi.Input[str]]
|
3986
|
+
"""
|
3987
|
+
Value for permission should be a valid Cloud IAM permission for the
|
3988
|
+
corresponding `serviceName` in `ApiOperation`.
|
3989
|
+
"""
|
3990
|
+
elif False:
|
3991
|
+
ServicePerimeterSpecIngressPolicyIngressToOperationMethodSelectorArgsDict: TypeAlias = Mapping[str, Any]
|
3992
|
+
|
2912
3993
|
@pulumi.input_type
|
2913
3994
|
class ServicePerimeterSpecIngressPolicyIngressToOperationMethodSelectorArgs:
|
2914
3995
|
def __init__(__self__, *,
|
@@ -2954,6 +4035,21 @@ class ServicePerimeterSpecIngressPolicyIngressToOperationMethodSelectorArgs:
|
|
2954
4035
|
pulumi.set(self, "permission", value)
|
2955
4036
|
|
2956
4037
|
|
4038
|
+
if not MYPY:
|
4039
|
+
class ServicePerimeterSpecVpcAccessibleServicesArgsDict(TypedDict):
|
4040
|
+
allowed_services: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
4041
|
+
"""
|
4042
|
+
The list of APIs usable within the Service Perimeter.
|
4043
|
+
Must be empty unless `enableRestriction` is True.
|
4044
|
+
"""
|
4045
|
+
enable_restriction: NotRequired[pulumi.Input[bool]]
|
4046
|
+
"""
|
4047
|
+
Whether to restrict API calls within the Service Perimeter to the
|
4048
|
+
list of APIs specified in 'allowedServices'.
|
4049
|
+
"""
|
4050
|
+
elif False:
|
4051
|
+
ServicePerimeterSpecVpcAccessibleServicesArgsDict: TypeAlias = Mapping[str, Any]
|
4052
|
+
|
2957
4053
|
@pulumi.input_type
|
2958
4054
|
class ServicePerimeterSpecVpcAccessibleServicesArgs:
|
2959
4055
|
def __init__(__self__, *,
|
@@ -2997,6 +4093,59 @@ class ServicePerimeterSpecVpcAccessibleServicesArgs:
|
|
2997
4093
|
pulumi.set(self, "enable_restriction", value)
|
2998
4094
|
|
2999
4095
|
|
4096
|
+
if not MYPY:
|
4097
|
+
class ServicePerimeterStatusArgsDict(TypedDict):
|
4098
|
+
access_levels: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
4099
|
+
"""
|
4100
|
+
A list of AccessLevel resource names that allow resources within
|
4101
|
+
the ServicePerimeter to be accessed from the internet.
|
4102
|
+
AccessLevels listed must be in the same policy as this
|
4103
|
+
ServicePerimeter. Referencing a nonexistent AccessLevel is a
|
4104
|
+
syntax error. If no AccessLevel names are listed, resources within
|
4105
|
+
the perimeter can only be accessed via GCP calls with request
|
4106
|
+
origins within the perimeter. For Service Perimeter Bridge, must
|
4107
|
+
be empty.
|
4108
|
+
Format: accessPolicies/{policy_id}/accessLevels/{access_level_name}
|
4109
|
+
"""
|
4110
|
+
egress_policies: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterStatusEgressPolicyArgsDict']]]]
|
4111
|
+
"""
|
4112
|
+
List of EgressPolicies to apply to the perimeter. A perimeter may
|
4113
|
+
have multiple EgressPolicies, each of which is evaluated separately.
|
4114
|
+
Access is granted if any EgressPolicy grants it. Must be empty for
|
4115
|
+
a perimeter bridge.
|
4116
|
+
Structure is documented below.
|
4117
|
+
"""
|
4118
|
+
ingress_policies: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterStatusIngressPolicyArgsDict']]]]
|
4119
|
+
"""
|
4120
|
+
List of `IngressPolicies` to apply to the perimeter. A perimeter may
|
4121
|
+
have multiple `IngressPolicies`, each of which is evaluated
|
4122
|
+
separately. Access is granted if any `Ingress Policy` grants it.
|
4123
|
+
Must be empty for a perimeter bridge.
|
4124
|
+
Structure is documented below.
|
4125
|
+
"""
|
4126
|
+
resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
4127
|
+
"""
|
4128
|
+
A list of GCP resources that are inside of the service perimeter.
|
4129
|
+
Currently only projects are allowed.
|
4130
|
+
Format: projects/{project_number}
|
4131
|
+
"""
|
4132
|
+
restricted_services: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
4133
|
+
"""
|
4134
|
+
GCP services that are subject to the Service Perimeter
|
4135
|
+
restrictions. Must contain a list of services. For example, if
|
4136
|
+
`storage.googleapis.com` is specified, access to the storage
|
4137
|
+
buckets inside the perimeter must meet the perimeter's access
|
4138
|
+
restrictions.
|
4139
|
+
"""
|
4140
|
+
vpc_accessible_services: NotRequired[pulumi.Input['ServicePerimeterStatusVpcAccessibleServicesArgsDict']]
|
4141
|
+
"""
|
4142
|
+
Specifies how APIs are allowed to communicate within the Service
|
4143
|
+
Perimeter.
|
4144
|
+
Structure is documented below.
|
4145
|
+
"""
|
4146
|
+
elif False:
|
4147
|
+
ServicePerimeterStatusArgsDict: TypeAlias = Mapping[str, Any]
|
4148
|
+
|
3000
4149
|
@pulumi.input_type
|
3001
4150
|
class ServicePerimeterStatusArgs:
|
3002
4151
|
def __init__(__self__, *,
|
@@ -3148,6 +4297,22 @@ class ServicePerimeterStatusArgs:
|
|
3148
4297
|
pulumi.set(self, "vpc_accessible_services", value)
|
3149
4298
|
|
3150
4299
|
|
4300
|
+
if not MYPY:
|
4301
|
+
class ServicePerimeterStatusEgressPolicyArgsDict(TypedDict):
|
4302
|
+
egress_from: NotRequired[pulumi.Input['ServicePerimeterStatusEgressPolicyEgressFromArgsDict']]
|
4303
|
+
"""
|
4304
|
+
Defines conditions on the source of a request causing this `EgressPolicy` to apply.
|
4305
|
+
Structure is documented below.
|
4306
|
+
"""
|
4307
|
+
egress_to: NotRequired[pulumi.Input['ServicePerimeterStatusEgressPolicyEgressToArgsDict']]
|
4308
|
+
"""
|
4309
|
+
Defines the conditions on the `ApiOperation` and destination resources that
|
4310
|
+
cause this `EgressPolicy` to apply.
|
4311
|
+
Structure is documented below.
|
4312
|
+
"""
|
4313
|
+
elif False:
|
4314
|
+
ServicePerimeterStatusEgressPolicyArgsDict: TypeAlias = Mapping[str, Any]
|
4315
|
+
|
3151
4316
|
@pulumi.input_type
|
3152
4317
|
class ServicePerimeterStatusEgressPolicyArgs:
|
3153
4318
|
def __init__(__self__, *,
|
@@ -3193,6 +4358,34 @@ class ServicePerimeterStatusEgressPolicyArgs:
|
|
3193
4358
|
pulumi.set(self, "egress_to", value)
|
3194
4359
|
|
3195
4360
|
|
4361
|
+
if not MYPY:
|
4362
|
+
class ServicePerimeterStatusEgressPolicyEgressFromArgsDict(TypedDict):
|
4363
|
+
identities: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
4364
|
+
"""
|
4365
|
+
A list of identities that are allowed access through this `EgressPolicy`.
|
4366
|
+
Should be in the format of email address. The email address should
|
4367
|
+
represent individual user or service account only.
|
4368
|
+
"""
|
4369
|
+
identity_type: NotRequired[pulumi.Input[str]]
|
4370
|
+
"""
|
4371
|
+
Specifies the type of identities that are allowed access to outside the
|
4372
|
+
perimeter. If left unspecified, then members of `identities` field will
|
4373
|
+
be allowed access.
|
4374
|
+
Possible values are: `IDENTITY_TYPE_UNSPECIFIED`, `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.
|
4375
|
+
"""
|
4376
|
+
source_restriction: NotRequired[pulumi.Input[str]]
|
4377
|
+
"""
|
4378
|
+
Whether to enforce traffic restrictions based on `sources` field. If the `sources` field is non-empty, then this field must be set to `SOURCE_RESTRICTION_ENABLED`.
|
4379
|
+
Possible values are: `SOURCE_RESTRICTION_UNSPECIFIED`, `SOURCE_RESTRICTION_ENABLED`, `SOURCE_RESTRICTION_DISABLED`.
|
4380
|
+
"""
|
4381
|
+
sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterStatusEgressPolicyEgressFromSourceArgsDict']]]]
|
4382
|
+
"""
|
4383
|
+
Sources that this EgressPolicy authorizes access from.
|
4384
|
+
Structure is documented below.
|
4385
|
+
"""
|
4386
|
+
elif False:
|
4387
|
+
ServicePerimeterStatusEgressPolicyEgressFromArgsDict: TypeAlias = Mapping[str, Any]
|
4388
|
+
|
3196
4389
|
@pulumi.input_type
|
3197
4390
|
class ServicePerimeterStatusEgressPolicyEgressFromArgs:
|
3198
4391
|
def __init__(__self__, *,
|
@@ -3278,6 +4471,15 @@ class ServicePerimeterStatusEgressPolicyEgressFromArgs:
|
|
3278
4471
|
pulumi.set(self, "sources", value)
|
3279
4472
|
|
3280
4473
|
|
4474
|
+
if not MYPY:
|
4475
|
+
class ServicePerimeterStatusEgressPolicyEgressFromSourceArgsDict(TypedDict):
|
4476
|
+
access_level: NotRequired[pulumi.Input[str]]
|
4477
|
+
"""
|
4478
|
+
An AccessLevel resource name that allows resources outside the ServicePerimeter to be accessed from the inside.
|
4479
|
+
"""
|
4480
|
+
elif False:
|
4481
|
+
ServicePerimeterStatusEgressPolicyEgressFromSourceArgsDict: TypeAlias = Mapping[str, Any]
|
4482
|
+
|
3281
4483
|
@pulumi.input_type
|
3282
4484
|
class ServicePerimeterStatusEgressPolicyEgressFromSourceArgs:
|
3283
4485
|
def __init__(__self__, *,
|
@@ -3301,6 +4503,31 @@ class ServicePerimeterStatusEgressPolicyEgressFromSourceArgs:
|
|
3301
4503
|
pulumi.set(self, "access_level", value)
|
3302
4504
|
|
3303
4505
|
|
4506
|
+
if not MYPY:
|
4507
|
+
class ServicePerimeterStatusEgressPolicyEgressToArgsDict(TypedDict):
|
4508
|
+
external_resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
4509
|
+
"""
|
4510
|
+
A list of external resources that are allowed to be accessed. A request
|
4511
|
+
matches if it contains an external resource in this list (Example:
|
4512
|
+
s3://bucket/path). Currently '*' is not allowed.
|
4513
|
+
"""
|
4514
|
+
operations: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterStatusEgressPolicyEgressToOperationArgsDict']]]]
|
4515
|
+
"""
|
4516
|
+
A list of `ApiOperations` that this egress rule applies to. A request matches
|
4517
|
+
if it contains an operation/service in this list.
|
4518
|
+
Structure is documented below.
|
4519
|
+
"""
|
4520
|
+
resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
4521
|
+
"""
|
4522
|
+
A list of resources, currently only projects in the form
|
4523
|
+
`projects/<projectnumber>`, that match this to stanza. A request matches
|
4524
|
+
if it contains a resource in this list. If * is specified for resources,
|
4525
|
+
then this `EgressTo` rule will authorize access to all resources outside
|
4526
|
+
the perimeter.
|
4527
|
+
"""
|
4528
|
+
elif False:
|
4529
|
+
ServicePerimeterStatusEgressPolicyEgressToArgsDict: TypeAlias = Mapping[str, Any]
|
4530
|
+
|
3304
4531
|
@pulumi.input_type
|
3305
4532
|
class ServicePerimeterStatusEgressPolicyEgressToArgs:
|
3306
4533
|
def __init__(__self__, *,
|
@@ -3372,6 +4599,25 @@ class ServicePerimeterStatusEgressPolicyEgressToArgs:
|
|
3372
4599
|
pulumi.set(self, "resources", value)
|
3373
4600
|
|
3374
4601
|
|
4602
|
+
if not MYPY:
|
4603
|
+
class ServicePerimeterStatusEgressPolicyEgressToOperationArgsDict(TypedDict):
|
4604
|
+
method_selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterStatusEgressPolicyEgressToOperationMethodSelectorArgsDict']]]]
|
4605
|
+
"""
|
4606
|
+
API methods or permissions to allow. Method or permission must belong
|
4607
|
+
to the service specified by `serviceName` field. A single MethodSelector
|
4608
|
+
entry with `*` specified for the `method` field will allow all methods
|
4609
|
+
AND permissions for the service specified in `serviceName`.
|
4610
|
+
Structure is documented below.
|
4611
|
+
"""
|
4612
|
+
service_name: NotRequired[pulumi.Input[str]]
|
4613
|
+
"""
|
4614
|
+
The name of the API whose methods or permissions the `IngressPolicy` or
|
4615
|
+
`EgressPolicy` want to allow. A single `ApiOperation` with serviceName
|
4616
|
+
field set to `*` will allow all methods AND permissions for all services.
|
4617
|
+
"""
|
4618
|
+
elif False:
|
4619
|
+
ServicePerimeterStatusEgressPolicyEgressToOperationArgsDict: TypeAlias = Mapping[str, Any]
|
4620
|
+
|
3375
4621
|
@pulumi.input_type
|
3376
4622
|
class ServicePerimeterStatusEgressPolicyEgressToOperationArgs:
|
3377
4623
|
def __init__(__self__, *,
|
@@ -3423,6 +4669,22 @@ class ServicePerimeterStatusEgressPolicyEgressToOperationArgs:
|
|
3423
4669
|
pulumi.set(self, "service_name", value)
|
3424
4670
|
|
3425
4671
|
|
4672
|
+
if not MYPY:
|
4673
|
+
class ServicePerimeterStatusEgressPolicyEgressToOperationMethodSelectorArgsDict(TypedDict):
|
4674
|
+
method: NotRequired[pulumi.Input[str]]
|
4675
|
+
"""
|
4676
|
+
Value for `method` should be a valid method name for the corresponding
|
4677
|
+
`serviceName` in `ApiOperation`. If `*` used as value for method,
|
4678
|
+
then ALL methods and permissions are allowed.
|
4679
|
+
"""
|
4680
|
+
permission: NotRequired[pulumi.Input[str]]
|
4681
|
+
"""
|
4682
|
+
Value for permission should be a valid Cloud IAM permission for the
|
4683
|
+
corresponding `serviceName` in `ApiOperation`.
|
4684
|
+
"""
|
4685
|
+
elif False:
|
4686
|
+
ServicePerimeterStatusEgressPolicyEgressToOperationMethodSelectorArgsDict: TypeAlias = Mapping[str, Any]
|
4687
|
+
|
3426
4688
|
@pulumi.input_type
|
3427
4689
|
class ServicePerimeterStatusEgressPolicyEgressToOperationMethodSelectorArgs:
|
3428
4690
|
def __init__(__self__, *,
|
@@ -3468,6 +4730,23 @@ class ServicePerimeterStatusEgressPolicyEgressToOperationMethodSelectorArgs:
|
|
3468
4730
|
pulumi.set(self, "permission", value)
|
3469
4731
|
|
3470
4732
|
|
4733
|
+
if not MYPY:
|
4734
|
+
class ServicePerimeterStatusIngressPolicyArgsDict(TypedDict):
|
4735
|
+
ingress_from: NotRequired[pulumi.Input['ServicePerimeterStatusIngressPolicyIngressFromArgsDict']]
|
4736
|
+
"""
|
4737
|
+
Defines the conditions on the source of a request causing this `IngressPolicy`
|
4738
|
+
to apply.
|
4739
|
+
Structure is documented below.
|
4740
|
+
"""
|
4741
|
+
ingress_to: NotRequired[pulumi.Input['ServicePerimeterStatusIngressPolicyIngressToArgsDict']]
|
4742
|
+
"""
|
4743
|
+
Defines the conditions on the `ApiOperation` and request destination that cause
|
4744
|
+
this `IngressPolicy` to apply.
|
4745
|
+
Structure is documented below.
|
4746
|
+
"""
|
4747
|
+
elif False:
|
4748
|
+
ServicePerimeterStatusIngressPolicyArgsDict: TypeAlias = Mapping[str, Any]
|
4749
|
+
|
3471
4750
|
@pulumi.input_type
|
3472
4751
|
class ServicePerimeterStatusIngressPolicyArgs:
|
3473
4752
|
def __init__(__self__, *,
|
@@ -3515,6 +4794,29 @@ class ServicePerimeterStatusIngressPolicyArgs:
|
|
3515
4794
|
pulumi.set(self, "ingress_to", value)
|
3516
4795
|
|
3517
4796
|
|
4797
|
+
if not MYPY:
|
4798
|
+
class ServicePerimeterStatusIngressPolicyIngressFromArgsDict(TypedDict):
|
4799
|
+
identities: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
4800
|
+
"""
|
4801
|
+
A list of identities that are allowed access through this ingress policy.
|
4802
|
+
Should be in the format of email address. The email address should represent
|
4803
|
+
individual user or service account only.
|
4804
|
+
"""
|
4805
|
+
identity_type: NotRequired[pulumi.Input[str]]
|
4806
|
+
"""
|
4807
|
+
Specifies the type of identities that are allowed access from outside the
|
4808
|
+
perimeter. If left unspecified, then members of `identities` field will be
|
4809
|
+
allowed access.
|
4810
|
+
Possible values are: `IDENTITY_TYPE_UNSPECIFIED`, `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.
|
4811
|
+
"""
|
4812
|
+
sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterStatusIngressPolicyIngressFromSourceArgsDict']]]]
|
4813
|
+
"""
|
4814
|
+
Sources that this `IngressPolicy` authorizes access from.
|
4815
|
+
Structure is documented below.
|
4816
|
+
"""
|
4817
|
+
elif False:
|
4818
|
+
ServicePerimeterStatusIngressPolicyIngressFromArgsDict: TypeAlias = Mapping[str, Any]
|
4819
|
+
|
3518
4820
|
@pulumi.input_type
|
3519
4821
|
class ServicePerimeterStatusIngressPolicyIngressFromArgs:
|
3520
4822
|
def __init__(__self__, *,
|
@@ -3582,6 +4884,24 @@ class ServicePerimeterStatusIngressPolicyIngressFromArgs:
|
|
3582
4884
|
pulumi.set(self, "sources", value)
|
3583
4885
|
|
3584
4886
|
|
4887
|
+
if not MYPY:
|
4888
|
+
class ServicePerimeterStatusIngressPolicyIngressFromSourceArgsDict(TypedDict):
|
4889
|
+
access_level: NotRequired[pulumi.Input[str]]
|
4890
|
+
"""
|
4891
|
+
An AccessLevel resource name that allows resources outside the ServicePerimeter to be accessed from the inside.
|
4892
|
+
"""
|
4893
|
+
resource: NotRequired[pulumi.Input[str]]
|
4894
|
+
"""
|
4895
|
+
A Google Cloud resource that is allowed to ingress the perimeter.
|
4896
|
+
Requests from these resources will be allowed to access perimeter data.
|
4897
|
+
Currently only projects are allowed. Format `projects/{project_number}`
|
4898
|
+
The project may be in any Google Cloud organization, not just the
|
4899
|
+
organization that the perimeter is defined in. `*` is not allowed, the case
|
4900
|
+
of allowing all Google Cloud resources only is not supported.
|
4901
|
+
"""
|
4902
|
+
elif False:
|
4903
|
+
ServicePerimeterStatusIngressPolicyIngressFromSourceArgsDict: TypeAlias = Mapping[str, Any]
|
4904
|
+
|
3585
4905
|
@pulumi.input_type
|
3586
4906
|
class ServicePerimeterStatusIngressPolicyIngressFromSourceArgs:
|
3587
4907
|
def __init__(__self__, *,
|
@@ -3624,12 +4944,34 @@ class ServicePerimeterStatusIngressPolicyIngressFromSourceArgs:
|
|
3624
4944
|
organization that the perimeter is defined in. `*` is not allowed, the case
|
3625
4945
|
of allowing all Google Cloud resources only is not supported.
|
3626
4946
|
"""
|
3627
|
-
return pulumi.get(self, "resource")
|
3628
|
-
|
3629
|
-
@resource.setter
|
3630
|
-
def resource(self, value: Optional[pulumi.Input[str]]):
|
3631
|
-
pulumi.set(self, "resource", value)
|
3632
|
-
|
4947
|
+
return pulumi.get(self, "resource")
|
4948
|
+
|
4949
|
+
@resource.setter
|
4950
|
+
def resource(self, value: Optional[pulumi.Input[str]]):
|
4951
|
+
pulumi.set(self, "resource", value)
|
4952
|
+
|
4953
|
+
|
4954
|
+
if not MYPY:
|
4955
|
+
class ServicePerimeterStatusIngressPolicyIngressToArgsDict(TypedDict):
|
4956
|
+
operations: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterStatusIngressPolicyIngressToOperationArgsDict']]]]
|
4957
|
+
"""
|
4958
|
+
A list of `ApiOperations` the sources specified in corresponding `IngressFrom`
|
4959
|
+
are allowed to perform in this `ServicePerimeter`.
|
4960
|
+
Structure is documented below.
|
4961
|
+
"""
|
4962
|
+
resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
4963
|
+
"""
|
4964
|
+
A list of resources, currently only projects in the form
|
4965
|
+
`projects/<projectnumber>`, protected by this `ServicePerimeter`
|
4966
|
+
that are allowed to be accessed by sources defined in the
|
4967
|
+
corresponding `IngressFrom`. A request matches if it contains
|
4968
|
+
a resource in this list. If `*` is specified for resources,
|
4969
|
+
then this `IngressTo` rule will authorize access to all
|
4970
|
+
resources inside the perimeter, provided that the request
|
4971
|
+
also matches the `operations` field.
|
4972
|
+
"""
|
4973
|
+
elif False:
|
4974
|
+
ServicePerimeterStatusIngressPolicyIngressToArgsDict: TypeAlias = Mapping[str, Any]
|
3633
4975
|
|
3634
4976
|
@pulumi.input_type
|
3635
4977
|
class ServicePerimeterStatusIngressPolicyIngressToArgs:
|
@@ -3688,6 +5030,25 @@ class ServicePerimeterStatusIngressPolicyIngressToArgs:
|
|
3688
5030
|
pulumi.set(self, "resources", value)
|
3689
5031
|
|
3690
5032
|
|
5033
|
+
if not MYPY:
|
5034
|
+
class ServicePerimeterStatusIngressPolicyIngressToOperationArgsDict(TypedDict):
|
5035
|
+
method_selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterStatusIngressPolicyIngressToOperationMethodSelectorArgsDict']]]]
|
5036
|
+
"""
|
5037
|
+
API methods or permissions to allow. Method or permission must belong
|
5038
|
+
to the service specified by `serviceName` field. A single MethodSelector
|
5039
|
+
entry with `*` specified for the `method` field will allow all methods
|
5040
|
+
AND permissions for the service specified in `serviceName`.
|
5041
|
+
Structure is documented below.
|
5042
|
+
"""
|
5043
|
+
service_name: NotRequired[pulumi.Input[str]]
|
5044
|
+
"""
|
5045
|
+
The name of the API whose methods or permissions the `IngressPolicy` or
|
5046
|
+
`EgressPolicy` want to allow. A single `ApiOperation` with serviceName
|
5047
|
+
field set to `*` will allow all methods AND permissions for all services.
|
5048
|
+
"""
|
5049
|
+
elif False:
|
5050
|
+
ServicePerimeterStatusIngressPolicyIngressToOperationArgsDict: TypeAlias = Mapping[str, Any]
|
5051
|
+
|
3691
5052
|
@pulumi.input_type
|
3692
5053
|
class ServicePerimeterStatusIngressPolicyIngressToOperationArgs:
|
3693
5054
|
def __init__(__self__, *,
|
@@ -3739,6 +5100,22 @@ class ServicePerimeterStatusIngressPolicyIngressToOperationArgs:
|
|
3739
5100
|
pulumi.set(self, "service_name", value)
|
3740
5101
|
|
3741
5102
|
|
5103
|
+
if not MYPY:
|
5104
|
+
class ServicePerimeterStatusIngressPolicyIngressToOperationMethodSelectorArgsDict(TypedDict):
|
5105
|
+
method: NotRequired[pulumi.Input[str]]
|
5106
|
+
"""
|
5107
|
+
Value for `method` should be a valid method name for the corresponding
|
5108
|
+
`serviceName` in `ApiOperation`. If `*` used as value for method,
|
5109
|
+
then ALL methods and permissions are allowed.
|
5110
|
+
"""
|
5111
|
+
permission: NotRequired[pulumi.Input[str]]
|
5112
|
+
"""
|
5113
|
+
Value for permission should be a valid Cloud IAM permission for the
|
5114
|
+
corresponding `serviceName` in `ApiOperation`.
|
5115
|
+
"""
|
5116
|
+
elif False:
|
5117
|
+
ServicePerimeterStatusIngressPolicyIngressToOperationMethodSelectorArgsDict: TypeAlias = Mapping[str, Any]
|
5118
|
+
|
3742
5119
|
@pulumi.input_type
|
3743
5120
|
class ServicePerimeterStatusIngressPolicyIngressToOperationMethodSelectorArgs:
|
3744
5121
|
def __init__(__self__, *,
|
@@ -3784,6 +5161,21 @@ class ServicePerimeterStatusIngressPolicyIngressToOperationMethodSelectorArgs:
|
|
3784
5161
|
pulumi.set(self, "permission", value)
|
3785
5162
|
|
3786
5163
|
|
5164
|
+
if not MYPY:
|
5165
|
+
class ServicePerimeterStatusVpcAccessibleServicesArgsDict(TypedDict):
|
5166
|
+
allowed_services: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
5167
|
+
"""
|
5168
|
+
The list of APIs usable within the Service Perimeter.
|
5169
|
+
Must be empty unless `enableRestriction` is True.
|
5170
|
+
"""
|
5171
|
+
enable_restriction: NotRequired[pulumi.Input[bool]]
|
5172
|
+
"""
|
5173
|
+
Whether to restrict API calls within the Service Perimeter to the
|
5174
|
+
list of APIs specified in 'allowedServices'.
|
5175
|
+
"""
|
5176
|
+
elif False:
|
5177
|
+
ServicePerimeterStatusVpcAccessibleServicesArgsDict: TypeAlias = Mapping[str, Any]
|
5178
|
+
|
3787
5179
|
@pulumi.input_type
|
3788
5180
|
class ServicePerimeterStatusVpcAccessibleServicesArgs:
|
3789
5181
|
def __init__(__self__, *,
|
@@ -3827,6 +5219,82 @@ class ServicePerimeterStatusVpcAccessibleServicesArgs:
|
|
3827
5219
|
pulumi.set(self, "enable_restriction", value)
|
3828
5220
|
|
3829
5221
|
|
5222
|
+
if not MYPY:
|
5223
|
+
class ServicePerimetersServicePerimeterArgsDict(TypedDict):
|
5224
|
+
name: pulumi.Input[str]
|
5225
|
+
"""
|
5226
|
+
Resource name for the ServicePerimeter. The short_name component must
|
5227
|
+
begin with a letter and only include alphanumeric and '_'.
|
5228
|
+
Format: accessPolicies/{policy_id}/servicePerimeters/{short_name}
|
5229
|
+
"""
|
5230
|
+
title: pulumi.Input[str]
|
5231
|
+
"""
|
5232
|
+
Human readable title. Must be unique within the Policy.
|
5233
|
+
"""
|
5234
|
+
create_time: NotRequired[pulumi.Input[str]]
|
5235
|
+
"""
|
5236
|
+
(Output)
|
5237
|
+
Time the AccessPolicy was created in UTC.
|
5238
|
+
"""
|
5239
|
+
description: NotRequired[pulumi.Input[str]]
|
5240
|
+
"""
|
5241
|
+
Description of the ServicePerimeter and its use. Does not affect
|
5242
|
+
behavior.
|
5243
|
+
"""
|
5244
|
+
perimeter_type: NotRequired[pulumi.Input[str]]
|
5245
|
+
"""
|
5246
|
+
Specifies the type of the Perimeter. There are two types: regular and
|
5247
|
+
bridge. Regular Service Perimeter contains resources, access levels,
|
5248
|
+
and restricted services. Every resource can be in at most
|
5249
|
+
ONE regular Service Perimeter.
|
5250
|
+
In addition to being in a regular service perimeter, a resource can also
|
5251
|
+
be in zero or more perimeter bridges. A perimeter bridge only contains
|
5252
|
+
resources. Cross project operations are permitted if all effected
|
5253
|
+
resources share some perimeter (whether bridge or regular). Perimeter
|
5254
|
+
Bridge does not contain access levels or services: those are governed
|
5255
|
+
entirely by the regular perimeter that resource is in.
|
5256
|
+
Perimeter Bridges are typically useful when building more complex
|
5257
|
+
topologies with many independent perimeters that need to share some data
|
5258
|
+
with a common perimeter, but should not be able to share data among
|
5259
|
+
themselves.
|
5260
|
+
Default value is `PERIMETER_TYPE_REGULAR`.
|
5261
|
+
Possible values are: `PERIMETER_TYPE_REGULAR`, `PERIMETER_TYPE_BRIDGE`.
|
5262
|
+
"""
|
5263
|
+
spec: NotRequired[pulumi.Input['ServicePerimetersServicePerimeterSpecArgsDict']]
|
5264
|
+
"""
|
5265
|
+
Proposed (or dry run) ServicePerimeter configuration.
|
5266
|
+
This configuration allows to specify and test ServicePerimeter configuration
|
5267
|
+
without enforcing actual access restrictions. Only allowed to be set when
|
5268
|
+
the `useExplicitDryRunSpec` flag is set.
|
5269
|
+
Structure is documented below.
|
5270
|
+
"""
|
5271
|
+
status: NotRequired[pulumi.Input['ServicePerimetersServicePerimeterStatusArgsDict']]
|
5272
|
+
"""
|
5273
|
+
ServicePerimeter configuration. Specifies sets of resources,
|
5274
|
+
restricted services and access levels that determine
|
5275
|
+
perimeter content and boundaries.
|
5276
|
+
Structure is documented below.
|
5277
|
+
"""
|
5278
|
+
update_time: NotRequired[pulumi.Input[str]]
|
5279
|
+
"""
|
5280
|
+
(Output)
|
5281
|
+
Time the AccessPolicy was updated in UTC.
|
5282
|
+
"""
|
5283
|
+
use_explicit_dry_run_spec: NotRequired[pulumi.Input[bool]]
|
5284
|
+
"""
|
5285
|
+
Use explicit dry run spec flag. Ordinarily, a dry-run spec implicitly exists
|
5286
|
+
for all Service Perimeters, and that spec is identical to the status for those
|
5287
|
+
Service Perimeters. When this flag is set, it inhibits the generation of the
|
5288
|
+
implicit spec, thereby allowing the user to explicitly provide a
|
5289
|
+
configuration ("spec") to use in a dry-run version of the Service Perimeter.
|
5290
|
+
This allows the user to test changes to the enforced config ("status") without
|
5291
|
+
actually enforcing them. This testing is done through analyzing the differences
|
5292
|
+
between currently enforced and suggested restrictions. useExplicitDryRunSpec must
|
5293
|
+
bet set to True if any of the fields in the spec are set to non-default values.
|
5294
|
+
"""
|
5295
|
+
elif False:
|
5296
|
+
ServicePerimetersServicePerimeterArgsDict: TypeAlias = Mapping[str, Any]
|
5297
|
+
|
3830
5298
|
@pulumi.input_type
|
3831
5299
|
class ServicePerimetersServicePerimeterArgs:
|
3832
5300
|
def __init__(__self__, *,
|
@@ -4046,6 +5514,59 @@ class ServicePerimetersServicePerimeterArgs:
|
|
4046
5514
|
pulumi.set(self, "use_explicit_dry_run_spec", value)
|
4047
5515
|
|
4048
5516
|
|
5517
|
+
if not MYPY:
|
5518
|
+
class ServicePerimetersServicePerimeterSpecArgsDict(TypedDict):
|
5519
|
+
access_levels: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
5520
|
+
"""
|
5521
|
+
A list of AccessLevel resource names that allow resources within
|
5522
|
+
the ServicePerimeter to be accessed from the internet.
|
5523
|
+
AccessLevels listed must be in the same policy as this
|
5524
|
+
ServicePerimeter. Referencing a nonexistent AccessLevel is a
|
5525
|
+
syntax error. If no AccessLevel names are listed, resources within
|
5526
|
+
the perimeter can only be accessed via GCP calls with request
|
5527
|
+
origins within the perimeter. For Service Perimeter Bridge, must
|
5528
|
+
be empty.
|
5529
|
+
Format: accessPolicies/{policy_id}/accessLevels/{access_level_name}
|
5530
|
+
"""
|
5531
|
+
egress_policies: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimetersServicePerimeterSpecEgressPolicyArgsDict']]]]
|
5532
|
+
"""
|
5533
|
+
List of EgressPolicies to apply to the perimeter. A perimeter may
|
5534
|
+
have multiple EgressPolicies, each of which is evaluated separately.
|
5535
|
+
Access is granted if any EgressPolicy grants it. Must be empty for
|
5536
|
+
a perimeter bridge.
|
5537
|
+
Structure is documented below.
|
5538
|
+
"""
|
5539
|
+
ingress_policies: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimetersServicePerimeterSpecIngressPolicyArgsDict']]]]
|
5540
|
+
"""
|
5541
|
+
List of `IngressPolicies` to apply to the perimeter. A perimeter may
|
5542
|
+
have multiple `IngressPolicies`, each of which is evaluated
|
5543
|
+
separately. Access is granted if any `Ingress Policy` grants it.
|
5544
|
+
Must be empty for a perimeter bridge.
|
5545
|
+
Structure is documented below.
|
5546
|
+
"""
|
5547
|
+
resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
5548
|
+
"""
|
5549
|
+
A list of GCP resources that are inside of the service perimeter.
|
5550
|
+
Currently only projects are allowed.
|
5551
|
+
Format: projects/{project_number}
|
5552
|
+
"""
|
5553
|
+
restricted_services: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
5554
|
+
"""
|
5555
|
+
GCP services that are subject to the Service Perimeter
|
5556
|
+
restrictions. Must contain a list of services. For example, if
|
5557
|
+
`storage.googleapis.com` is specified, access to the storage
|
5558
|
+
buckets inside the perimeter must meet the perimeter's access
|
5559
|
+
restrictions.
|
5560
|
+
"""
|
5561
|
+
vpc_accessible_services: NotRequired[pulumi.Input['ServicePerimetersServicePerimeterSpecVpcAccessibleServicesArgsDict']]
|
5562
|
+
"""
|
5563
|
+
Specifies how APIs are allowed to communicate within the Service
|
5564
|
+
Perimeter.
|
5565
|
+
Structure is documented below.
|
5566
|
+
"""
|
5567
|
+
elif False:
|
5568
|
+
ServicePerimetersServicePerimeterSpecArgsDict: TypeAlias = Mapping[str, Any]
|
5569
|
+
|
4049
5570
|
@pulumi.input_type
|
4050
5571
|
class ServicePerimetersServicePerimeterSpecArgs:
|
4051
5572
|
def __init__(__self__, *,
|
@@ -4197,6 +5718,22 @@ class ServicePerimetersServicePerimeterSpecArgs:
|
|
4197
5718
|
pulumi.set(self, "vpc_accessible_services", value)
|
4198
5719
|
|
4199
5720
|
|
5721
|
+
if not MYPY:
|
5722
|
+
class ServicePerimetersServicePerimeterSpecEgressPolicyArgsDict(TypedDict):
|
5723
|
+
egress_from: NotRequired[pulumi.Input['ServicePerimetersServicePerimeterSpecEgressPolicyEgressFromArgsDict']]
|
5724
|
+
"""
|
5725
|
+
Defines conditions on the source of a request causing this `EgressPolicy` to apply.
|
5726
|
+
Structure is documented below.
|
5727
|
+
"""
|
5728
|
+
egress_to: NotRequired[pulumi.Input['ServicePerimetersServicePerimeterSpecEgressPolicyEgressToArgsDict']]
|
5729
|
+
"""
|
5730
|
+
Defines the conditions on the `ApiOperation` and destination resources that
|
5731
|
+
cause this `EgressPolicy` to apply.
|
5732
|
+
Structure is documented below.
|
5733
|
+
"""
|
5734
|
+
elif False:
|
5735
|
+
ServicePerimetersServicePerimeterSpecEgressPolicyArgsDict: TypeAlias = Mapping[str, Any]
|
5736
|
+
|
4200
5737
|
@pulumi.input_type
|
4201
5738
|
class ServicePerimetersServicePerimeterSpecEgressPolicyArgs:
|
4202
5739
|
def __init__(__self__, *,
|
@@ -4242,6 +5779,34 @@ class ServicePerimetersServicePerimeterSpecEgressPolicyArgs:
|
|
4242
5779
|
pulumi.set(self, "egress_to", value)
|
4243
5780
|
|
4244
5781
|
|
5782
|
+
if not MYPY:
|
5783
|
+
class ServicePerimetersServicePerimeterSpecEgressPolicyEgressFromArgsDict(TypedDict):
|
5784
|
+
identities: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
5785
|
+
"""
|
5786
|
+
A list of identities that are allowed access through this `EgressPolicy`.
|
5787
|
+
Should be in the format of email address. The email address should
|
5788
|
+
represent individual user or service account only.
|
5789
|
+
"""
|
5790
|
+
identity_type: NotRequired[pulumi.Input[str]]
|
5791
|
+
"""
|
5792
|
+
Specifies the type of identities that are allowed access to outside the
|
5793
|
+
perimeter. If left unspecified, then members of `identities` field will
|
5794
|
+
be allowed access.
|
5795
|
+
Possible values are: `IDENTITY_TYPE_UNSPECIFIED`, `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.
|
5796
|
+
"""
|
5797
|
+
source_restriction: NotRequired[pulumi.Input[str]]
|
5798
|
+
"""
|
5799
|
+
Whether to enforce traffic restrictions based on `sources` field. If the `sources` field is non-empty, then this field must be set to `SOURCE_RESTRICTION_ENABLED`.
|
5800
|
+
Possible values are: `SOURCE_RESTRICTION_UNSPECIFIED`, `SOURCE_RESTRICTION_ENABLED`, `SOURCE_RESTRICTION_DISABLED`.
|
5801
|
+
"""
|
5802
|
+
sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimetersServicePerimeterSpecEgressPolicyEgressFromSourceArgsDict']]]]
|
5803
|
+
"""
|
5804
|
+
Sources that this EgressPolicy authorizes access from.
|
5805
|
+
Structure is documented below.
|
5806
|
+
"""
|
5807
|
+
elif False:
|
5808
|
+
ServicePerimetersServicePerimeterSpecEgressPolicyEgressFromArgsDict: TypeAlias = Mapping[str, Any]
|
5809
|
+
|
4245
5810
|
@pulumi.input_type
|
4246
5811
|
class ServicePerimetersServicePerimeterSpecEgressPolicyEgressFromArgs:
|
4247
5812
|
def __init__(__self__, *,
|
@@ -4327,6 +5892,15 @@ class ServicePerimetersServicePerimeterSpecEgressPolicyEgressFromArgs:
|
|
4327
5892
|
pulumi.set(self, "sources", value)
|
4328
5893
|
|
4329
5894
|
|
5895
|
+
if not MYPY:
|
5896
|
+
class ServicePerimetersServicePerimeterSpecEgressPolicyEgressFromSourceArgsDict(TypedDict):
|
5897
|
+
access_level: NotRequired[pulumi.Input[str]]
|
5898
|
+
"""
|
5899
|
+
An AccessLevel resource name that allows resources outside the ServicePerimeter to be accessed from the inside.
|
5900
|
+
"""
|
5901
|
+
elif False:
|
5902
|
+
ServicePerimetersServicePerimeterSpecEgressPolicyEgressFromSourceArgsDict: TypeAlias = Mapping[str, Any]
|
5903
|
+
|
4330
5904
|
@pulumi.input_type
|
4331
5905
|
class ServicePerimetersServicePerimeterSpecEgressPolicyEgressFromSourceArgs:
|
4332
5906
|
def __init__(__self__, *,
|
@@ -4350,6 +5924,31 @@ class ServicePerimetersServicePerimeterSpecEgressPolicyEgressFromSourceArgs:
|
|
4350
5924
|
pulumi.set(self, "access_level", value)
|
4351
5925
|
|
4352
5926
|
|
5927
|
+
if not MYPY:
|
5928
|
+
class ServicePerimetersServicePerimeterSpecEgressPolicyEgressToArgsDict(TypedDict):
|
5929
|
+
external_resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
5930
|
+
"""
|
5931
|
+
A list of external resources that are allowed to be accessed. A request
|
5932
|
+
matches if it contains an external resource in this list (Example:
|
5933
|
+
s3://bucket/path). Currently '*' is not allowed.
|
5934
|
+
"""
|
5935
|
+
operations: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperationArgsDict']]]]
|
5936
|
+
"""
|
5937
|
+
A list of `ApiOperations` that this egress rule applies to. A request matches
|
5938
|
+
if it contains an operation/service in this list.
|
5939
|
+
Structure is documented below.
|
5940
|
+
"""
|
5941
|
+
resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
5942
|
+
"""
|
5943
|
+
A list of resources, currently only projects in the form
|
5944
|
+
`projects/<projectnumber>`, that match this to stanza. A request matches
|
5945
|
+
if it contains a resource in this list. If * is specified for resources,
|
5946
|
+
then this `EgressTo` rule will authorize access to all resources outside
|
5947
|
+
the perimeter.
|
5948
|
+
"""
|
5949
|
+
elif False:
|
5950
|
+
ServicePerimetersServicePerimeterSpecEgressPolicyEgressToArgsDict: TypeAlias = Mapping[str, Any]
|
5951
|
+
|
4353
5952
|
@pulumi.input_type
|
4354
5953
|
class ServicePerimetersServicePerimeterSpecEgressPolicyEgressToArgs:
|
4355
5954
|
def __init__(__self__, *,
|
@@ -4421,6 +6020,25 @@ class ServicePerimetersServicePerimeterSpecEgressPolicyEgressToArgs:
|
|
4421
6020
|
pulumi.set(self, "resources", value)
|
4422
6021
|
|
4423
6022
|
|
6023
|
+
if not MYPY:
|
6024
|
+
class ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperationArgsDict(TypedDict):
|
6025
|
+
method_selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperationMethodSelectorArgsDict']]]]
|
6026
|
+
"""
|
6027
|
+
API methods or permissions to allow. Method or permission must belong
|
6028
|
+
to the service specified by `serviceName` field. A single MethodSelector
|
6029
|
+
entry with `*` specified for the `method` field will allow all methods
|
6030
|
+
AND permissions for the service specified in `serviceName`.
|
6031
|
+
Structure is documented below.
|
6032
|
+
"""
|
6033
|
+
service_name: NotRequired[pulumi.Input[str]]
|
6034
|
+
"""
|
6035
|
+
The name of the API whose methods or permissions the `IngressPolicy` or
|
6036
|
+
`EgressPolicy` want to allow. A single `ApiOperation` with serviceName
|
6037
|
+
field set to `*` will allow all methods AND permissions for all services.
|
6038
|
+
"""
|
6039
|
+
elif False:
|
6040
|
+
ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperationArgsDict: TypeAlias = Mapping[str, Any]
|
6041
|
+
|
4424
6042
|
@pulumi.input_type
|
4425
6043
|
class ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperationArgs:
|
4426
6044
|
def __init__(__self__, *,
|
@@ -4472,6 +6090,22 @@ class ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperationArgs:
|
|
4472
6090
|
pulumi.set(self, "service_name", value)
|
4473
6091
|
|
4474
6092
|
|
6093
|
+
if not MYPY:
|
6094
|
+
class ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperationMethodSelectorArgsDict(TypedDict):
|
6095
|
+
method: NotRequired[pulumi.Input[str]]
|
6096
|
+
"""
|
6097
|
+
Value for `method` should be a valid method name for the corresponding
|
6098
|
+
`serviceName` in `ApiOperation`. If `*` used as value for method,
|
6099
|
+
then ALL methods and permissions are allowed.
|
6100
|
+
"""
|
6101
|
+
permission: NotRequired[pulumi.Input[str]]
|
6102
|
+
"""
|
6103
|
+
Value for permission should be a valid Cloud IAM permission for the
|
6104
|
+
corresponding `serviceName` in `ApiOperation`.
|
6105
|
+
"""
|
6106
|
+
elif False:
|
6107
|
+
ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperationMethodSelectorArgsDict: TypeAlias = Mapping[str, Any]
|
6108
|
+
|
4475
6109
|
@pulumi.input_type
|
4476
6110
|
class ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperationMethodSelectorArgs:
|
4477
6111
|
def __init__(__self__, *,
|
@@ -4517,6 +6151,23 @@ class ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperationMethodSe
|
|
4517
6151
|
pulumi.set(self, "permission", value)
|
4518
6152
|
|
4519
6153
|
|
6154
|
+
if not MYPY:
|
6155
|
+
class ServicePerimetersServicePerimeterSpecIngressPolicyArgsDict(TypedDict):
|
6156
|
+
ingress_from: NotRequired[pulumi.Input['ServicePerimetersServicePerimeterSpecIngressPolicyIngressFromArgsDict']]
|
6157
|
+
"""
|
6158
|
+
Defines the conditions on the source of a request causing this `IngressPolicy`
|
6159
|
+
to apply.
|
6160
|
+
Structure is documented below.
|
6161
|
+
"""
|
6162
|
+
ingress_to: NotRequired[pulumi.Input['ServicePerimetersServicePerimeterSpecIngressPolicyIngressToArgsDict']]
|
6163
|
+
"""
|
6164
|
+
Defines the conditions on the `ApiOperation` and request destination that cause
|
6165
|
+
this `IngressPolicy` to apply.
|
6166
|
+
Structure is documented below.
|
6167
|
+
"""
|
6168
|
+
elif False:
|
6169
|
+
ServicePerimetersServicePerimeterSpecIngressPolicyArgsDict: TypeAlias = Mapping[str, Any]
|
6170
|
+
|
4520
6171
|
@pulumi.input_type
|
4521
6172
|
class ServicePerimetersServicePerimeterSpecIngressPolicyArgs:
|
4522
6173
|
def __init__(__self__, *,
|
@@ -4564,6 +6215,29 @@ class ServicePerimetersServicePerimeterSpecIngressPolicyArgs:
|
|
4564
6215
|
pulumi.set(self, "ingress_to", value)
|
4565
6216
|
|
4566
6217
|
|
6218
|
+
if not MYPY:
|
6219
|
+
class ServicePerimetersServicePerimeterSpecIngressPolicyIngressFromArgsDict(TypedDict):
|
6220
|
+
identities: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
6221
|
+
"""
|
6222
|
+
A list of identities that are allowed access through this ingress policy.
|
6223
|
+
Should be in the format of email address. The email address should represent
|
6224
|
+
individual user or service account only.
|
6225
|
+
"""
|
6226
|
+
identity_type: NotRequired[pulumi.Input[str]]
|
6227
|
+
"""
|
6228
|
+
Specifies the type of identities that are allowed access from outside the
|
6229
|
+
perimeter. If left unspecified, then members of `identities` field will be
|
6230
|
+
allowed access.
|
6231
|
+
Possible values are: `IDENTITY_TYPE_UNSPECIFIED`, `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.
|
6232
|
+
"""
|
6233
|
+
sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimetersServicePerimeterSpecIngressPolicyIngressFromSourceArgsDict']]]]
|
6234
|
+
"""
|
6235
|
+
Sources that this `IngressPolicy` authorizes access from.
|
6236
|
+
Structure is documented below.
|
6237
|
+
"""
|
6238
|
+
elif False:
|
6239
|
+
ServicePerimetersServicePerimeterSpecIngressPolicyIngressFromArgsDict: TypeAlias = Mapping[str, Any]
|
6240
|
+
|
4567
6241
|
@pulumi.input_type
|
4568
6242
|
class ServicePerimetersServicePerimeterSpecIngressPolicyIngressFromArgs:
|
4569
6243
|
def __init__(__self__, *,
|
@@ -4631,6 +6305,24 @@ class ServicePerimetersServicePerimeterSpecIngressPolicyIngressFromArgs:
|
|
4631
6305
|
pulumi.set(self, "sources", value)
|
4632
6306
|
|
4633
6307
|
|
6308
|
+
if not MYPY:
|
6309
|
+
class ServicePerimetersServicePerimeterSpecIngressPolicyIngressFromSourceArgsDict(TypedDict):
|
6310
|
+
access_level: NotRequired[pulumi.Input[str]]
|
6311
|
+
"""
|
6312
|
+
An AccessLevel resource name that allows resources outside the ServicePerimeter to be accessed from the inside.
|
6313
|
+
"""
|
6314
|
+
resource: NotRequired[pulumi.Input[str]]
|
6315
|
+
"""
|
6316
|
+
A Google Cloud resource that is allowed to ingress the perimeter.
|
6317
|
+
Requests from these resources will be allowed to access perimeter data.
|
6318
|
+
Currently only projects are allowed. Format `projects/{project_number}`
|
6319
|
+
The project may be in any Google Cloud organization, not just the
|
6320
|
+
organization that the perimeter is defined in. `*` is not allowed, the case
|
6321
|
+
of allowing all Google Cloud resources only is not supported.
|
6322
|
+
"""
|
6323
|
+
elif False:
|
6324
|
+
ServicePerimetersServicePerimeterSpecIngressPolicyIngressFromSourceArgsDict: TypeAlias = Mapping[str, Any]
|
6325
|
+
|
4634
6326
|
@pulumi.input_type
|
4635
6327
|
class ServicePerimetersServicePerimeterSpecIngressPolicyIngressFromSourceArgs:
|
4636
6328
|
def __init__(__self__, *,
|
@@ -4680,6 +6372,28 @@ class ServicePerimetersServicePerimeterSpecIngressPolicyIngressFromSourceArgs:
|
|
4680
6372
|
pulumi.set(self, "resource", value)
|
4681
6373
|
|
4682
6374
|
|
6375
|
+
if not MYPY:
|
6376
|
+
class ServicePerimetersServicePerimeterSpecIngressPolicyIngressToArgsDict(TypedDict):
|
6377
|
+
operations: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperationArgsDict']]]]
|
6378
|
+
"""
|
6379
|
+
A list of `ApiOperations` the sources specified in corresponding `IngressFrom`
|
6380
|
+
are allowed to perform in this `ServicePerimeter`.
|
6381
|
+
Structure is documented below.
|
6382
|
+
"""
|
6383
|
+
resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
6384
|
+
"""
|
6385
|
+
A list of resources, currently only projects in the form
|
6386
|
+
`projects/<projectnumber>`, protected by this `ServicePerimeter`
|
6387
|
+
that are allowed to be accessed by sources defined in the
|
6388
|
+
corresponding `IngressFrom`. A request matches if it contains
|
6389
|
+
a resource in this list. If `*` is specified for resources,
|
6390
|
+
then this `IngressTo` rule will authorize access to all
|
6391
|
+
resources inside the perimeter, provided that the request
|
6392
|
+
also matches the `operations` field.
|
6393
|
+
"""
|
6394
|
+
elif False:
|
6395
|
+
ServicePerimetersServicePerimeterSpecIngressPolicyIngressToArgsDict: TypeAlias = Mapping[str, Any]
|
6396
|
+
|
4683
6397
|
@pulumi.input_type
|
4684
6398
|
class ServicePerimetersServicePerimeterSpecIngressPolicyIngressToArgs:
|
4685
6399
|
def __init__(__self__, *,
|
@@ -4737,6 +6451,25 @@ class ServicePerimetersServicePerimeterSpecIngressPolicyIngressToArgs:
|
|
4737
6451
|
pulumi.set(self, "resources", value)
|
4738
6452
|
|
4739
6453
|
|
6454
|
+
if not MYPY:
|
6455
|
+
class ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperationArgsDict(TypedDict):
|
6456
|
+
method_selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperationMethodSelectorArgsDict']]]]
|
6457
|
+
"""
|
6458
|
+
API methods or permissions to allow. Method or permission must belong
|
6459
|
+
to the service specified by `serviceName` field. A single MethodSelector
|
6460
|
+
entry with `*` specified for the `method` field will allow all methods
|
6461
|
+
AND permissions for the service specified in `serviceName`.
|
6462
|
+
Structure is documented below.
|
6463
|
+
"""
|
6464
|
+
service_name: NotRequired[pulumi.Input[str]]
|
6465
|
+
"""
|
6466
|
+
The name of the API whose methods or permissions the `IngressPolicy` or
|
6467
|
+
`EgressPolicy` want to allow. A single `ApiOperation` with serviceName
|
6468
|
+
field set to `*` will allow all methods AND permissions for all services.
|
6469
|
+
"""
|
6470
|
+
elif False:
|
6471
|
+
ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperationArgsDict: TypeAlias = Mapping[str, Any]
|
6472
|
+
|
4740
6473
|
@pulumi.input_type
|
4741
6474
|
class ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperationArgs:
|
4742
6475
|
def __init__(__self__, *,
|
@@ -4788,6 +6521,22 @@ class ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperationArgs:
|
|
4788
6521
|
pulumi.set(self, "service_name", value)
|
4789
6522
|
|
4790
6523
|
|
6524
|
+
if not MYPY:
|
6525
|
+
class ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperationMethodSelectorArgsDict(TypedDict):
|
6526
|
+
method: NotRequired[pulumi.Input[str]]
|
6527
|
+
"""
|
6528
|
+
Value for `method` should be a valid method name for the corresponding
|
6529
|
+
`serviceName` in `ApiOperation`. If `*` used as value for method,
|
6530
|
+
then ALL methods and permissions are allowed.
|
6531
|
+
"""
|
6532
|
+
permission: NotRequired[pulumi.Input[str]]
|
6533
|
+
"""
|
6534
|
+
Value for permission should be a valid Cloud IAM permission for the
|
6535
|
+
corresponding `serviceName` in `ApiOperation`.
|
6536
|
+
"""
|
6537
|
+
elif False:
|
6538
|
+
ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperationMethodSelectorArgsDict: TypeAlias = Mapping[str, Any]
|
6539
|
+
|
4791
6540
|
@pulumi.input_type
|
4792
6541
|
class ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperationMethodSelectorArgs:
|
4793
6542
|
def __init__(__self__, *,
|
@@ -4833,6 +6582,21 @@ class ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperationMethod
|
|
4833
6582
|
pulumi.set(self, "permission", value)
|
4834
6583
|
|
4835
6584
|
|
6585
|
+
if not MYPY:
|
6586
|
+
class ServicePerimetersServicePerimeterSpecVpcAccessibleServicesArgsDict(TypedDict):
|
6587
|
+
allowed_services: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
6588
|
+
"""
|
6589
|
+
The list of APIs usable within the Service Perimeter.
|
6590
|
+
Must be empty unless `enableRestriction` is True.
|
6591
|
+
"""
|
6592
|
+
enable_restriction: NotRequired[pulumi.Input[bool]]
|
6593
|
+
"""
|
6594
|
+
Whether to restrict API calls within the Service Perimeter to the
|
6595
|
+
list of APIs specified in 'allowedServices'.
|
6596
|
+
"""
|
6597
|
+
elif False:
|
6598
|
+
ServicePerimetersServicePerimeterSpecVpcAccessibleServicesArgsDict: TypeAlias = Mapping[str, Any]
|
6599
|
+
|
4836
6600
|
@pulumi.input_type
|
4837
6601
|
class ServicePerimetersServicePerimeterSpecVpcAccessibleServicesArgs:
|
4838
6602
|
def __init__(__self__, *,
|
@@ -4876,6 +6640,59 @@ class ServicePerimetersServicePerimeterSpecVpcAccessibleServicesArgs:
|
|
4876
6640
|
pulumi.set(self, "enable_restriction", value)
|
4877
6641
|
|
4878
6642
|
|
6643
|
+
if not MYPY:
|
6644
|
+
class ServicePerimetersServicePerimeterStatusArgsDict(TypedDict):
|
6645
|
+
access_levels: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
6646
|
+
"""
|
6647
|
+
A list of AccessLevel resource names that allow resources within
|
6648
|
+
the ServicePerimeter to be accessed from the internet.
|
6649
|
+
AccessLevels listed must be in the same policy as this
|
6650
|
+
ServicePerimeter. Referencing a nonexistent AccessLevel is a
|
6651
|
+
syntax error. If no AccessLevel names are listed, resources within
|
6652
|
+
the perimeter can only be accessed via GCP calls with request
|
6653
|
+
origins within the perimeter. For Service Perimeter Bridge, must
|
6654
|
+
be empty.
|
6655
|
+
Format: accessPolicies/{policy_id}/accessLevels/{access_level_name}
|
6656
|
+
"""
|
6657
|
+
egress_policies: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimetersServicePerimeterStatusEgressPolicyArgsDict']]]]
|
6658
|
+
"""
|
6659
|
+
List of EgressPolicies to apply to the perimeter. A perimeter may
|
6660
|
+
have multiple EgressPolicies, each of which is evaluated separately.
|
6661
|
+
Access is granted if any EgressPolicy grants it. Must be empty for
|
6662
|
+
a perimeter bridge.
|
6663
|
+
Structure is documented below.
|
6664
|
+
"""
|
6665
|
+
ingress_policies: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimetersServicePerimeterStatusIngressPolicyArgsDict']]]]
|
6666
|
+
"""
|
6667
|
+
List of `IngressPolicies` to apply to the perimeter. A perimeter may
|
6668
|
+
have multiple `IngressPolicies`, each of which is evaluated
|
6669
|
+
separately. Access is granted if any `Ingress Policy` grants it.
|
6670
|
+
Must be empty for a perimeter bridge.
|
6671
|
+
Structure is documented below.
|
6672
|
+
"""
|
6673
|
+
resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
6674
|
+
"""
|
6675
|
+
A list of GCP resources that are inside of the service perimeter.
|
6676
|
+
Currently only projects are allowed.
|
6677
|
+
Format: projects/{project_number}
|
6678
|
+
"""
|
6679
|
+
restricted_services: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
6680
|
+
"""
|
6681
|
+
GCP services that are subject to the Service Perimeter
|
6682
|
+
restrictions. Must contain a list of services. For example, if
|
6683
|
+
`storage.googleapis.com` is specified, access to the storage
|
6684
|
+
buckets inside the perimeter must meet the perimeter's access
|
6685
|
+
restrictions.
|
6686
|
+
"""
|
6687
|
+
vpc_accessible_services: NotRequired[pulumi.Input['ServicePerimetersServicePerimeterStatusVpcAccessibleServicesArgsDict']]
|
6688
|
+
"""
|
6689
|
+
Specifies how APIs are allowed to communicate within the Service
|
6690
|
+
Perimeter.
|
6691
|
+
Structure is documented below.
|
6692
|
+
"""
|
6693
|
+
elif False:
|
6694
|
+
ServicePerimetersServicePerimeterStatusArgsDict: TypeAlias = Mapping[str, Any]
|
6695
|
+
|
4879
6696
|
@pulumi.input_type
|
4880
6697
|
class ServicePerimetersServicePerimeterStatusArgs:
|
4881
6698
|
def __init__(__self__, *,
|
@@ -5027,6 +6844,22 @@ class ServicePerimetersServicePerimeterStatusArgs:
|
|
5027
6844
|
pulumi.set(self, "vpc_accessible_services", value)
|
5028
6845
|
|
5029
6846
|
|
6847
|
+
if not MYPY:
|
6848
|
+
class ServicePerimetersServicePerimeterStatusEgressPolicyArgsDict(TypedDict):
|
6849
|
+
egress_from: NotRequired[pulumi.Input['ServicePerimetersServicePerimeterStatusEgressPolicyEgressFromArgsDict']]
|
6850
|
+
"""
|
6851
|
+
Defines conditions on the source of a request causing this `EgressPolicy` to apply.
|
6852
|
+
Structure is documented below.
|
6853
|
+
"""
|
6854
|
+
egress_to: NotRequired[pulumi.Input['ServicePerimetersServicePerimeterStatusEgressPolicyEgressToArgsDict']]
|
6855
|
+
"""
|
6856
|
+
Defines the conditions on the `ApiOperation` and destination resources that
|
6857
|
+
cause this `EgressPolicy` to apply.
|
6858
|
+
Structure is documented below.
|
6859
|
+
"""
|
6860
|
+
elif False:
|
6861
|
+
ServicePerimetersServicePerimeterStatusEgressPolicyArgsDict: TypeAlias = Mapping[str, Any]
|
6862
|
+
|
5030
6863
|
@pulumi.input_type
|
5031
6864
|
class ServicePerimetersServicePerimeterStatusEgressPolicyArgs:
|
5032
6865
|
def __init__(__self__, *,
|
@@ -5072,6 +6905,34 @@ class ServicePerimetersServicePerimeterStatusEgressPolicyArgs:
|
|
5072
6905
|
pulumi.set(self, "egress_to", value)
|
5073
6906
|
|
5074
6907
|
|
6908
|
+
if not MYPY:
|
6909
|
+
class ServicePerimetersServicePerimeterStatusEgressPolicyEgressFromArgsDict(TypedDict):
|
6910
|
+
identities: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
6911
|
+
"""
|
6912
|
+
A list of identities that are allowed access through this `EgressPolicy`.
|
6913
|
+
Should be in the format of email address. The email address should
|
6914
|
+
represent individual user or service account only.
|
6915
|
+
"""
|
6916
|
+
identity_type: NotRequired[pulumi.Input[str]]
|
6917
|
+
"""
|
6918
|
+
Specifies the type of identities that are allowed access to outside the
|
6919
|
+
perimeter. If left unspecified, then members of `identities` field will
|
6920
|
+
be allowed access.
|
6921
|
+
Possible values are: `IDENTITY_TYPE_UNSPECIFIED`, `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.
|
6922
|
+
"""
|
6923
|
+
source_restriction: NotRequired[pulumi.Input[str]]
|
6924
|
+
"""
|
6925
|
+
Whether to enforce traffic restrictions based on `sources` field. If the `sources` field is non-empty, then this field must be set to `SOURCE_RESTRICTION_ENABLED`.
|
6926
|
+
Possible values are: `SOURCE_RESTRICTION_UNSPECIFIED`, `SOURCE_RESTRICTION_ENABLED`, `SOURCE_RESTRICTION_DISABLED`.
|
6927
|
+
"""
|
6928
|
+
sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimetersServicePerimeterStatusEgressPolicyEgressFromSourceArgsDict']]]]
|
6929
|
+
"""
|
6930
|
+
Sources that this EgressPolicy authorizes access from.
|
6931
|
+
Structure is documented below.
|
6932
|
+
"""
|
6933
|
+
elif False:
|
6934
|
+
ServicePerimetersServicePerimeterStatusEgressPolicyEgressFromArgsDict: TypeAlias = Mapping[str, Any]
|
6935
|
+
|
5075
6936
|
@pulumi.input_type
|
5076
6937
|
class ServicePerimetersServicePerimeterStatusEgressPolicyEgressFromArgs:
|
5077
6938
|
def __init__(__self__, *,
|
@@ -5157,6 +7018,15 @@ class ServicePerimetersServicePerimeterStatusEgressPolicyEgressFromArgs:
|
|
5157
7018
|
pulumi.set(self, "sources", value)
|
5158
7019
|
|
5159
7020
|
|
7021
|
+
if not MYPY:
|
7022
|
+
class ServicePerimetersServicePerimeterStatusEgressPolicyEgressFromSourceArgsDict(TypedDict):
|
7023
|
+
access_level: NotRequired[pulumi.Input[str]]
|
7024
|
+
"""
|
7025
|
+
An AccessLevel resource name that allows resources outside the ServicePerimeter to be accessed from the inside.
|
7026
|
+
"""
|
7027
|
+
elif False:
|
7028
|
+
ServicePerimetersServicePerimeterStatusEgressPolicyEgressFromSourceArgsDict: TypeAlias = Mapping[str, Any]
|
7029
|
+
|
5160
7030
|
@pulumi.input_type
|
5161
7031
|
class ServicePerimetersServicePerimeterStatusEgressPolicyEgressFromSourceArgs:
|
5162
7032
|
def __init__(__self__, *,
|
@@ -5180,6 +7050,31 @@ class ServicePerimetersServicePerimeterStatusEgressPolicyEgressFromSourceArgs:
|
|
5180
7050
|
pulumi.set(self, "access_level", value)
|
5181
7051
|
|
5182
7052
|
|
7053
|
+
if not MYPY:
|
7054
|
+
class ServicePerimetersServicePerimeterStatusEgressPolicyEgressToArgsDict(TypedDict):
|
7055
|
+
external_resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
7056
|
+
"""
|
7057
|
+
A list of external resources that are allowed to be accessed. A request
|
7058
|
+
matches if it contains an external resource in this list (Example:
|
7059
|
+
s3://bucket/path). Currently '*' is not allowed.
|
7060
|
+
"""
|
7061
|
+
operations: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperationArgsDict']]]]
|
7062
|
+
"""
|
7063
|
+
A list of `ApiOperations` that this egress rule applies to. A request matches
|
7064
|
+
if it contains an operation/service in this list.
|
7065
|
+
Structure is documented below.
|
7066
|
+
"""
|
7067
|
+
resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
7068
|
+
"""
|
7069
|
+
A list of resources, currently only projects in the form
|
7070
|
+
`projects/<projectnumber>`, that match this to stanza. A request matches
|
7071
|
+
if it contains a resource in this list. If * is specified for resources,
|
7072
|
+
then this `EgressTo` rule will authorize access to all resources outside
|
7073
|
+
the perimeter.
|
7074
|
+
"""
|
7075
|
+
elif False:
|
7076
|
+
ServicePerimetersServicePerimeterStatusEgressPolicyEgressToArgsDict: TypeAlias = Mapping[str, Any]
|
7077
|
+
|
5183
7078
|
@pulumi.input_type
|
5184
7079
|
class ServicePerimetersServicePerimeterStatusEgressPolicyEgressToArgs:
|
5185
7080
|
def __init__(__self__, *,
|
@@ -5251,6 +7146,25 @@ class ServicePerimetersServicePerimeterStatusEgressPolicyEgressToArgs:
|
|
5251
7146
|
pulumi.set(self, "resources", value)
|
5252
7147
|
|
5253
7148
|
|
7149
|
+
if not MYPY:
|
7150
|
+
class ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperationArgsDict(TypedDict):
|
7151
|
+
method_selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperationMethodSelectorArgsDict']]]]
|
7152
|
+
"""
|
7153
|
+
API methods or permissions to allow. Method or permission must belong
|
7154
|
+
to the service specified by `serviceName` field. A single MethodSelector
|
7155
|
+
entry with `*` specified for the `method` field will allow all methods
|
7156
|
+
AND permissions for the service specified in `serviceName`.
|
7157
|
+
Structure is documented below.
|
7158
|
+
"""
|
7159
|
+
service_name: NotRequired[pulumi.Input[str]]
|
7160
|
+
"""
|
7161
|
+
The name of the API whose methods or permissions the `IngressPolicy` or
|
7162
|
+
`EgressPolicy` want to allow. A single `ApiOperation` with serviceName
|
7163
|
+
field set to `*` will allow all methods AND permissions for all services.
|
7164
|
+
"""
|
7165
|
+
elif False:
|
7166
|
+
ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperationArgsDict: TypeAlias = Mapping[str, Any]
|
7167
|
+
|
5254
7168
|
@pulumi.input_type
|
5255
7169
|
class ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperationArgs:
|
5256
7170
|
def __init__(__self__, *,
|
@@ -5302,6 +7216,22 @@ class ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperationArgs:
|
|
5302
7216
|
pulumi.set(self, "service_name", value)
|
5303
7217
|
|
5304
7218
|
|
7219
|
+
if not MYPY:
|
7220
|
+
class ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperationMethodSelectorArgsDict(TypedDict):
|
7221
|
+
method: NotRequired[pulumi.Input[str]]
|
7222
|
+
"""
|
7223
|
+
Value for `method` should be a valid method name for the corresponding
|
7224
|
+
`serviceName` in `ApiOperation`. If `*` used as value for method,
|
7225
|
+
then ALL methods and permissions are allowed.
|
7226
|
+
"""
|
7227
|
+
permission: NotRequired[pulumi.Input[str]]
|
7228
|
+
"""
|
7229
|
+
Value for permission should be a valid Cloud IAM permission for the
|
7230
|
+
corresponding `serviceName` in `ApiOperation`.
|
7231
|
+
"""
|
7232
|
+
elif False:
|
7233
|
+
ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperationMethodSelectorArgsDict: TypeAlias = Mapping[str, Any]
|
7234
|
+
|
5305
7235
|
@pulumi.input_type
|
5306
7236
|
class ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperationMethodSelectorArgs:
|
5307
7237
|
def __init__(__self__, *,
|
@@ -5347,6 +7277,23 @@ class ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperationMethod
|
|
5347
7277
|
pulumi.set(self, "permission", value)
|
5348
7278
|
|
5349
7279
|
|
7280
|
+
if not MYPY:
|
7281
|
+
class ServicePerimetersServicePerimeterStatusIngressPolicyArgsDict(TypedDict):
|
7282
|
+
ingress_from: NotRequired[pulumi.Input['ServicePerimetersServicePerimeterStatusIngressPolicyIngressFromArgsDict']]
|
7283
|
+
"""
|
7284
|
+
Defines the conditions on the source of a request causing this `IngressPolicy`
|
7285
|
+
to apply.
|
7286
|
+
Structure is documented below.
|
7287
|
+
"""
|
7288
|
+
ingress_to: NotRequired[pulumi.Input['ServicePerimetersServicePerimeterStatusIngressPolicyIngressToArgsDict']]
|
7289
|
+
"""
|
7290
|
+
Defines the conditions on the `ApiOperation` and request destination that cause
|
7291
|
+
this `IngressPolicy` to apply.
|
7292
|
+
Structure is documented below.
|
7293
|
+
"""
|
7294
|
+
elif False:
|
7295
|
+
ServicePerimetersServicePerimeterStatusIngressPolicyArgsDict: TypeAlias = Mapping[str, Any]
|
7296
|
+
|
5350
7297
|
@pulumi.input_type
|
5351
7298
|
class ServicePerimetersServicePerimeterStatusIngressPolicyArgs:
|
5352
7299
|
def __init__(__self__, *,
|
@@ -5394,6 +7341,29 @@ class ServicePerimetersServicePerimeterStatusIngressPolicyArgs:
|
|
5394
7341
|
pulumi.set(self, "ingress_to", value)
|
5395
7342
|
|
5396
7343
|
|
7344
|
+
if not MYPY:
|
7345
|
+
class ServicePerimetersServicePerimeterStatusIngressPolicyIngressFromArgsDict(TypedDict):
|
7346
|
+
identities: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
7347
|
+
"""
|
7348
|
+
A list of identities that are allowed access through this ingress policy.
|
7349
|
+
Should be in the format of email address. The email address should represent
|
7350
|
+
individual user or service account only.
|
7351
|
+
"""
|
7352
|
+
identity_type: NotRequired[pulumi.Input[str]]
|
7353
|
+
"""
|
7354
|
+
Specifies the type of identities that are allowed access from outside the
|
7355
|
+
perimeter. If left unspecified, then members of `identities` field will be
|
7356
|
+
allowed access.
|
7357
|
+
Possible values are: `IDENTITY_TYPE_UNSPECIFIED`, `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.
|
7358
|
+
"""
|
7359
|
+
sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimetersServicePerimeterStatusIngressPolicyIngressFromSourceArgsDict']]]]
|
7360
|
+
"""
|
7361
|
+
Sources that this `IngressPolicy` authorizes access from.
|
7362
|
+
Structure is documented below.
|
7363
|
+
"""
|
7364
|
+
elif False:
|
7365
|
+
ServicePerimetersServicePerimeterStatusIngressPolicyIngressFromArgsDict: TypeAlias = Mapping[str, Any]
|
7366
|
+
|
5397
7367
|
@pulumi.input_type
|
5398
7368
|
class ServicePerimetersServicePerimeterStatusIngressPolicyIngressFromArgs:
|
5399
7369
|
def __init__(__self__, *,
|
@@ -5461,6 +7431,24 @@ class ServicePerimetersServicePerimeterStatusIngressPolicyIngressFromArgs:
|
|
5461
7431
|
pulumi.set(self, "sources", value)
|
5462
7432
|
|
5463
7433
|
|
7434
|
+
if not MYPY:
|
7435
|
+
class ServicePerimetersServicePerimeterStatusIngressPolicyIngressFromSourceArgsDict(TypedDict):
|
7436
|
+
access_level: NotRequired[pulumi.Input[str]]
|
7437
|
+
"""
|
7438
|
+
An AccessLevel resource name that allows resources outside the ServicePerimeter to be accessed from the inside.
|
7439
|
+
"""
|
7440
|
+
resource: NotRequired[pulumi.Input[str]]
|
7441
|
+
"""
|
7442
|
+
A Google Cloud resource that is allowed to ingress the perimeter.
|
7443
|
+
Requests from these resources will be allowed to access perimeter data.
|
7444
|
+
Currently only projects are allowed. Format `projects/{project_number}`
|
7445
|
+
The project may be in any Google Cloud organization, not just the
|
7446
|
+
organization that the perimeter is defined in. `*` is not allowed, the case
|
7447
|
+
of allowing all Google Cloud resources only is not supported.
|
7448
|
+
"""
|
7449
|
+
elif False:
|
7450
|
+
ServicePerimetersServicePerimeterStatusIngressPolicyIngressFromSourceArgsDict: TypeAlias = Mapping[str, Any]
|
7451
|
+
|
5464
7452
|
@pulumi.input_type
|
5465
7453
|
class ServicePerimetersServicePerimeterStatusIngressPolicyIngressFromSourceArgs:
|
5466
7454
|
def __init__(__self__, *,
|
@@ -5510,6 +7498,28 @@ class ServicePerimetersServicePerimeterStatusIngressPolicyIngressFromSourceArgs:
|
|
5510
7498
|
pulumi.set(self, "resource", value)
|
5511
7499
|
|
5512
7500
|
|
7501
|
+
if not MYPY:
|
7502
|
+
class ServicePerimetersServicePerimeterStatusIngressPolicyIngressToArgsDict(TypedDict):
|
7503
|
+
operations: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperationArgsDict']]]]
|
7504
|
+
"""
|
7505
|
+
A list of `ApiOperations` the sources specified in corresponding `IngressFrom`
|
7506
|
+
are allowed to perform in this `ServicePerimeter`.
|
7507
|
+
Structure is documented below.
|
7508
|
+
"""
|
7509
|
+
resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
7510
|
+
"""
|
7511
|
+
A list of resources, currently only projects in the form
|
7512
|
+
`projects/<projectnumber>`, protected by this `ServicePerimeter`
|
7513
|
+
that are allowed to be accessed by sources defined in the
|
7514
|
+
corresponding `IngressFrom`. A request matches if it contains
|
7515
|
+
a resource in this list. If `*` is specified for resources,
|
7516
|
+
then this `IngressTo` rule will authorize access to all
|
7517
|
+
resources inside the perimeter, provided that the request
|
7518
|
+
also matches the `operations` field.
|
7519
|
+
"""
|
7520
|
+
elif False:
|
7521
|
+
ServicePerimetersServicePerimeterStatusIngressPolicyIngressToArgsDict: TypeAlias = Mapping[str, Any]
|
7522
|
+
|
5513
7523
|
@pulumi.input_type
|
5514
7524
|
class ServicePerimetersServicePerimeterStatusIngressPolicyIngressToArgs:
|
5515
7525
|
def __init__(__self__, *,
|
@@ -5567,6 +7577,25 @@ class ServicePerimetersServicePerimeterStatusIngressPolicyIngressToArgs:
|
|
5567
7577
|
pulumi.set(self, "resources", value)
|
5568
7578
|
|
5569
7579
|
|
7580
|
+
if not MYPY:
|
7581
|
+
class ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperationArgsDict(TypedDict):
|
7582
|
+
method_selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperationMethodSelectorArgsDict']]]]
|
7583
|
+
"""
|
7584
|
+
API methods or permissions to allow. Method or permission must belong
|
7585
|
+
to the service specified by `serviceName` field. A single MethodSelector
|
7586
|
+
entry with `*` specified for the `method` field will allow all methods
|
7587
|
+
AND permissions for the service specified in `serviceName`.
|
7588
|
+
Structure is documented below.
|
7589
|
+
"""
|
7590
|
+
service_name: NotRequired[pulumi.Input[str]]
|
7591
|
+
"""
|
7592
|
+
The name of the API whose methods or permissions the `IngressPolicy` or
|
7593
|
+
`EgressPolicy` want to allow. A single `ApiOperation` with serviceName
|
7594
|
+
field set to `*` will allow all methods AND permissions for all services.
|
7595
|
+
"""
|
7596
|
+
elif False:
|
7597
|
+
ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperationArgsDict: TypeAlias = Mapping[str, Any]
|
7598
|
+
|
5570
7599
|
@pulumi.input_type
|
5571
7600
|
class ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperationArgs:
|
5572
7601
|
def __init__(__self__, *,
|
@@ -5618,6 +7647,22 @@ class ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperationArgs
|
|
5618
7647
|
pulumi.set(self, "service_name", value)
|
5619
7648
|
|
5620
7649
|
|
7650
|
+
if not MYPY:
|
7651
|
+
class ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperationMethodSelectorArgsDict(TypedDict):
|
7652
|
+
method: NotRequired[pulumi.Input[str]]
|
7653
|
+
"""
|
7654
|
+
Value for `method` should be a valid method name for the corresponding
|
7655
|
+
`serviceName` in `ApiOperation`. If `*` used as value for method,
|
7656
|
+
then ALL methods and permissions are allowed.
|
7657
|
+
"""
|
7658
|
+
permission: NotRequired[pulumi.Input[str]]
|
7659
|
+
"""
|
7660
|
+
Value for permission should be a valid Cloud IAM permission for the
|
7661
|
+
corresponding `serviceName` in `ApiOperation`.
|
7662
|
+
"""
|
7663
|
+
elif False:
|
7664
|
+
ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperationMethodSelectorArgsDict: TypeAlias = Mapping[str, Any]
|
7665
|
+
|
5621
7666
|
@pulumi.input_type
|
5622
7667
|
class ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperationMethodSelectorArgs:
|
5623
7668
|
def __init__(__self__, *,
|
@@ -5663,6 +7708,21 @@ class ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperationMeth
|
|
5663
7708
|
pulumi.set(self, "permission", value)
|
5664
7709
|
|
5665
7710
|
|
7711
|
+
if not MYPY:
|
7712
|
+
class ServicePerimetersServicePerimeterStatusVpcAccessibleServicesArgsDict(TypedDict):
|
7713
|
+
allowed_services: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
7714
|
+
"""
|
7715
|
+
The list of APIs usable within the Service Perimeter.
|
7716
|
+
Must be empty unless `enableRestriction` is True.
|
7717
|
+
"""
|
7718
|
+
enable_restriction: NotRequired[pulumi.Input[bool]]
|
7719
|
+
"""
|
7720
|
+
Whether to restrict API calls within the Service Perimeter to the
|
7721
|
+
list of APIs specified in 'allowedServices'.
|
7722
|
+
"""
|
7723
|
+
elif False:
|
7724
|
+
ServicePerimetersServicePerimeterStatusVpcAccessibleServicesArgsDict: TypeAlias = Mapping[str, Any]
|
7725
|
+
|
5666
7726
|
@pulumi.input_type
|
5667
7727
|
class ServicePerimetersServicePerimeterStatusVpcAccessibleServicesArgs:
|
5668
7728
|
def __init__(__self__, *,
|