pulumi-gcp 7.24.0a1716510380__py3-none-any.whl → 7.25.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pulumi_gcp/__init__.py +104 -0
- pulumi_gcp/accesscontextmanager/access_policy_iam_binding.py +12 -12
- pulumi_gcp/accesscontextmanager/access_policy_iam_member.py +12 -12
- pulumi_gcp/accesscontextmanager/access_policy_iam_policy.py +12 -12
- pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +0 -64
- pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +0 -70
- pulumi_gcp/alloydb/backup.py +50 -42
- pulumi_gcp/alloydb/cluster.py +56 -48
- pulumi_gcp/alloydb/instance.py +50 -42
- pulumi_gcp/alloydb/user.py +32 -24
- pulumi_gcp/apigateway/api_config.py +0 -114
- pulumi_gcp/apigateway/api_config_iam_binding.py +8 -8
- pulumi_gcp/apigateway/api_config_iam_member.py +8 -8
- pulumi_gcp/apigateway/api_config_iam_policy.py +8 -8
- pulumi_gcp/apigateway/api_iam_binding.py +8 -8
- pulumi_gcp/apigateway/api_iam_member.py +8 -8
- pulumi_gcp/apigateway/api_iam_policy.py +8 -8
- pulumi_gcp/apigateway/gateway.py +0 -44
- pulumi_gcp/apigateway/gateway_iam_binding.py +8 -8
- pulumi_gcp/apigateway/gateway_iam_member.py +8 -8
- pulumi_gcp/apigateway/gateway_iam_policy.py +8 -8
- pulumi_gcp/apigee/addons_config.py +14 -4
- pulumi_gcp/apigee/endpoint_attachment.py +4 -2
- pulumi_gcp/apigee/env_group.py +4 -2
- pulumi_gcp/apigee/environment.py +4 -2
- pulumi_gcp/apigee/environment_iam_binding.py +12 -12
- pulumi_gcp/apigee/environment_iam_member.py +12 -12
- pulumi_gcp/apigee/environment_iam_policy.py +12 -12
- pulumi_gcp/apigee/instance.py +22 -8
- pulumi_gcp/apigee/keystores_aliases_self_signed_cert.py +26 -10
- pulumi_gcp/apigee/nat_address.py +10 -2
- pulumi_gcp/apigee/organization.py +18 -6
- pulumi_gcp/apigee/sync_authorization.py +8 -4
- pulumi_gcp/apigee/target_server.py +26 -10
- pulumi_gcp/appengine/_inputs.py +18 -0
- pulumi_gcp/appengine/domain_mapping.py +1 -1
- pulumi_gcp/appengine/outputs.py +16 -0
- pulumi_gcp/apphub/service.py +40 -20
- pulumi_gcp/apphub/service_project_attachment.py +16 -8
- pulumi_gcp/apphub/workload.py +0 -418
- pulumi_gcp/applicationintegration/auth_config.py +4 -2
- pulumi_gcp/artifactregistry/repository.py +14 -12
- pulumi_gcp/artifactregistry/repository_iam_binding.py +12 -12
- pulumi_gcp/artifactregistry/repository_iam_member.py +12 -12
- pulumi_gcp/artifactregistry/repository_iam_policy.py +12 -12
- pulumi_gcp/backupdisasterrecovery/management_server.py +4 -2
- pulumi_gcp/bigquery/_inputs.py +286 -2
- pulumi_gcp/bigquery/connection.py +126 -0
- pulumi_gcp/bigquery/connection_iam_binding.py +12 -12
- pulumi_gcp/bigquery/connection_iam_member.py +12 -12
- pulumi_gcp/bigquery/connection_iam_policy.py +12 -12
- pulumi_gcp/bigquery/data_transfer_config.py +8 -4
- pulumi_gcp/bigquery/dataset_iam_binding.py +12 -12
- pulumi_gcp/bigquery/dataset_iam_member.py +12 -12
- pulumi_gcp/bigquery/dataset_iam_policy.py +12 -12
- pulumi_gcp/bigquery/iam_binding.py +12 -12
- pulumi_gcp/bigquery/iam_member.py +12 -12
- pulumi_gcp/bigquery/iam_policy.py +12 -12
- pulumi_gcp/bigquery/job.py +22 -16
- pulumi_gcp/bigquery/outputs.py +289 -2
- pulumi_gcp/bigquery/routine.py +2 -2
- pulumi_gcp/bigquery/table.py +77 -35
- pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_binding.py +12 -12
- pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_member.py +12 -12
- pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_policy.py +12 -12
- pulumi_gcp/bigqueryanalyticshub/listing_iam_binding.py +12 -12
- pulumi_gcp/bigqueryanalyticshub/listing_iam_member.py +12 -12
- pulumi_gcp/bigqueryanalyticshub/listing_iam_policy.py +12 -12
- pulumi_gcp/bigquerydatapolicy/data_policy_iam_binding.py +12 -12
- pulumi_gcp/bigquerydatapolicy/data_policy_iam_member.py +12 -12
- pulumi_gcp/bigquerydatapolicy/data_policy_iam_policy.py +12 -12
- pulumi_gcp/bigtable/instance_iam_binding.py +12 -12
- pulumi_gcp/bigtable/instance_iam_member.py +12 -12
- pulumi_gcp/bigtable/instance_iam_policy.py +12 -12
- pulumi_gcp/bigtable/table_iam_binding.py +12 -12
- pulumi_gcp/bigtable/table_iam_member.py +12 -12
- pulumi_gcp/bigtable/table_iam_policy.py +12 -12
- pulumi_gcp/billing/account_iam_binding.py +12 -12
- pulumi_gcp/billing/account_iam_member.py +12 -12
- pulumi_gcp/billing/account_iam_policy.py +12 -12
- pulumi_gcp/billing/project_info.py +4 -4
- pulumi_gcp/binaryauthorization/attestor_iam_binding.py +12 -12
- pulumi_gcp/binaryauthorization/attestor_iam_member.py +12 -12
- pulumi_gcp/binaryauthorization/attestor_iam_policy.py +12 -12
- pulumi_gcp/certificateauthority/authority.py +10 -2
- pulumi_gcp/certificateauthority/ca_pool_iam_binding.py +12 -12
- pulumi_gcp/certificateauthority/ca_pool_iam_member.py +12 -12
- pulumi_gcp/certificateauthority/ca_pool_iam_policy.py +12 -12
- pulumi_gcp/certificateauthority/certificate.py +8 -4
- pulumi_gcp/certificateauthority/certificate_template_iam_binding.py +12 -12
- pulumi_gcp/certificateauthority/certificate_template_iam_member.py +12 -12
- pulumi_gcp/certificateauthority/certificate_template_iam_policy.py +12 -12
- pulumi_gcp/certificatemanager/certificate.py +84 -80
- pulumi_gcp/certificatemanager/certificate_issuance_config.py +32 -30
- pulumi_gcp/cloudasset/__init__.py +1 -0
- pulumi_gcp/cloudasset/get_search_all_resources.py +197 -0
- pulumi_gcp/cloudasset/outputs.py +184 -0
- pulumi_gcp/cloudbuild/bitbucket_server_config.py +12 -6
- pulumi_gcp/cloudbuild/trigger.py +22 -14
- pulumi_gcp/cloudbuild/worker_pool.py +12 -6
- pulumi_gcp/cloudbuildv2/connection.py +10 -2
- pulumi_gcp/cloudbuildv2/connection_iam_binding.py +12 -12
- pulumi_gcp/cloudbuildv2/connection_iam_member.py +12 -12
- pulumi_gcp/cloudbuildv2/connection_iam_policy.py +12 -12
- pulumi_gcp/cloudbuildv2/repository.py +10 -2
- pulumi_gcp/cloudfunctions/function_iam_binding.py +12 -12
- pulumi_gcp/cloudfunctions/function_iam_member.py +12 -12
- pulumi_gcp/cloudfunctions/function_iam_policy.py +12 -12
- pulumi_gcp/cloudfunctionsv2/function.py +110 -66
- pulumi_gcp/cloudfunctionsv2/function_iam_binding.py +12 -12
- pulumi_gcp/cloudfunctionsv2/function_iam_member.py +12 -12
- pulumi_gcp/cloudfunctionsv2/function_iam_policy.py +12 -12
- pulumi_gcp/cloudids/endpoint.py +4 -2
- pulumi_gcp/cloudrun/_inputs.py +80 -4
- pulumi_gcp/cloudrun/iam_binding.py +12 -12
- pulumi_gcp/cloudrun/iam_member.py +12 -12
- pulumi_gcp/cloudrun/iam_policy.py +12 -12
- pulumi_gcp/cloudrun/outputs.py +137 -4
- pulumi_gcp/cloudrunv2/job.py +32 -20
- pulumi_gcp/cloudrunv2/job_iam_binding.py +12 -12
- pulumi_gcp/cloudrunv2/job_iam_member.py +12 -12
- pulumi_gcp/cloudrunv2/job_iam_policy.py +12 -12
- pulumi_gcp/cloudrunv2/service.py +28 -20
- pulumi_gcp/cloudrunv2/service_iam_binding.py +12 -12
- pulumi_gcp/cloudrunv2/service_iam_member.py +12 -12
- pulumi_gcp/cloudrunv2/service_iam_policy.py +12 -12
- pulumi_gcp/cloudtasks/queue_iam_binding.py +12 -12
- pulumi_gcp/cloudtasks/queue_iam_member.py +12 -12
- pulumi_gcp/cloudtasks/queue_iam_policy.py +12 -12
- pulumi_gcp/composer/user_workloads_secret.py +4 -4
- pulumi_gcp/compute/__init__.py +2 -0
- pulumi_gcp/compute/_inputs.py +805 -182
- pulumi_gcp/compute/disk_iam_binding.py +12 -12
- pulumi_gcp/compute/disk_iam_member.py +12 -12
- pulumi_gcp/compute/disk_iam_policy.py +12 -12
- pulumi_gcp/compute/forwarding_rule.py +231 -823
- pulumi_gcp/compute/get_network_endpoint_group.py +2 -2
- pulumi_gcp/compute/get_region_network_endpoint_group.py +2 -2
- pulumi_gcp/compute/get_router_nat.py +11 -1
- pulumi_gcp/compute/get_snapshot.py +2 -0
- pulumi_gcp/compute/get_subnetworks.py +157 -0
- pulumi_gcp/compute/global_forwarding_rule.py +0 -766
- pulumi_gcp/compute/image_iam_binding.py +12 -12
- pulumi_gcp/compute/image_iam_member.py +12 -12
- pulumi_gcp/compute/image_iam_policy.py +12 -12
- pulumi_gcp/compute/instance_group.py +0 -100
- pulumi_gcp/compute/instance_group_membership.py +2 -2
- pulumi_gcp/compute/instance_iam_binding.py +12 -12
- pulumi_gcp/compute/instance_iam_member.py +12 -12
- pulumi_gcp/compute/instance_iam_policy.py +12 -12
- pulumi_gcp/compute/interconnect.py +1683 -0
- pulumi_gcp/compute/interconnect_attachment.py +82 -0
- pulumi_gcp/compute/machine_image_iam_binding.py +8 -8
- pulumi_gcp/compute/machine_image_iam_member.py +8 -8
- pulumi_gcp/compute/machine_image_iam_policy.py +8 -8
- pulumi_gcp/compute/network_endpoint.py +2 -2
- pulumi_gcp/compute/network_endpoint_list.py +2 -2
- pulumi_gcp/compute/outputs.py +1022 -161
- pulumi_gcp/compute/packet_mirroring.py +4 -2
- pulumi_gcp/compute/region_disk_iam_binding.py +12 -12
- pulumi_gcp/compute/region_disk_iam_member.py +12 -12
- pulumi_gcp/compute/region_disk_iam_policy.py +12 -12
- pulumi_gcp/compute/region_security_policy_rule.py +4 -2
- pulumi_gcp/compute/region_ssl_certificate.py +0 -188
- pulumi_gcp/compute/region_ssl_policy.py +39 -40
- pulumi_gcp/compute/route.py +10 -2
- pulumi_gcp/compute/router_nat.py +68 -0
- pulumi_gcp/compute/security_policy_rule.py +55 -1
- pulumi_gcp/compute/snapshot_iam_binding.py +12 -12
- pulumi_gcp/compute/snapshot_iam_member.py +12 -12
- pulumi_gcp/compute/snapshot_iam_policy.py +12 -12
- pulumi_gcp/compute/ssl_certificate.py +0 -166
- pulumi_gcp/compute/subnetwork_iam_binding.py +12 -12
- pulumi_gcp/compute/subnetwork_iam_member.py +12 -12
- pulumi_gcp/compute/subnetwork_iam_policy.py +12 -12
- pulumi_gcp/compute/target_instance.py +8 -6
- pulumi_gcp/compute/target_pool.py +21 -21
- pulumi_gcp/compute/vpn_gateway.py +12 -2
- pulumi_gcp/compute/vpn_tunnel.py +26 -16
- pulumi_gcp/container/_inputs.py +562 -2
- pulumi_gcp/container/outputs.py +1110 -55
- pulumi_gcp/containeranalysis/note_iam_binding.py +12 -12
- pulumi_gcp/containeranalysis/note_iam_member.py +12 -12
- pulumi_gcp/containeranalysis/note_iam_policy.py +12 -12
- pulumi_gcp/databasemigrationservice/connection_profile.py +38 -22
- pulumi_gcp/datacatalog/entry_group_iam_binding.py +12 -12
- pulumi_gcp/datacatalog/entry_group_iam_member.py +12 -12
- pulumi_gcp/datacatalog/entry_group_iam_policy.py +12 -12
- pulumi_gcp/datacatalog/policy_tag.py +4 -2
- pulumi_gcp/datacatalog/policy_tag_iam_binding.py +12 -12
- pulumi_gcp/datacatalog/policy_tag_iam_member.py +12 -12
- pulumi_gcp/datacatalog/policy_tag_iam_policy.py +12 -12
- pulumi_gcp/datacatalog/tag_template_iam_binding.py +12 -12
- pulumi_gcp/datacatalog/tag_template_iam_member.py +12 -12
- pulumi_gcp/datacatalog/tag_template_iam_policy.py +12 -12
- pulumi_gcp/datacatalog/taxonomy_iam_binding.py +12 -12
- pulumi_gcp/datacatalog/taxonomy_iam_member.py +12 -12
- pulumi_gcp/datacatalog/taxonomy_iam_policy.py +12 -12
- pulumi_gcp/datafusion/instance.py +14 -12
- pulumi_gcp/dataloss/_inputs.py +420 -13
- pulumi_gcp/dataloss/outputs.py +439 -13
- pulumi_gcp/dataplex/__init__.py +10 -0
- pulumi_gcp/dataplex/_inputs.py +160 -0
- pulumi_gcp/dataplex/aspect_type.py +1077 -0
- pulumi_gcp/dataplex/aspect_type_iam_binding.py +765 -0
- pulumi_gcp/dataplex/aspect_type_iam_member.py +765 -0
- pulumi_gcp/dataplex/aspect_type_iam_policy.py +604 -0
- pulumi_gcp/dataplex/asset.py +4 -2
- pulumi_gcp/dataplex/asset_iam_binding.py +12 -12
- pulumi_gcp/dataplex/asset_iam_member.py +12 -12
- pulumi_gcp/dataplex/asset_iam_policy.py +12 -12
- pulumi_gcp/dataplex/datascan.py +16 -14
- pulumi_gcp/dataplex/datascan_iam_binding.py +12 -12
- pulumi_gcp/dataplex/datascan_iam_member.py +12 -12
- pulumi_gcp/dataplex/datascan_iam_policy.py +12 -12
- pulumi_gcp/dataplex/entry_group.py +722 -0
- pulumi_gcp/dataplex/entry_group_iam_binding.py +765 -0
- pulumi_gcp/dataplex/entry_group_iam_member.py +765 -0
- pulumi_gcp/dataplex/entry_group_iam_policy.py +604 -0
- pulumi_gcp/dataplex/get_aspect_type_iam_policy.py +164 -0
- pulumi_gcp/dataplex/get_entry_group_iam_policy.py +164 -0
- pulumi_gcp/dataplex/lake_iam_binding.py +12 -12
- pulumi_gcp/dataplex/lake_iam_member.py +12 -12
- pulumi_gcp/dataplex/lake_iam_policy.py +12 -12
- pulumi_gcp/dataplex/outputs.py +112 -0
- pulumi_gcp/dataplex/task.py +16 -16
- pulumi_gcp/dataplex/task_iam_binding.py +12 -12
- pulumi_gcp/dataplex/task_iam_member.py +12 -12
- pulumi_gcp/dataplex/task_iam_policy.py +12 -12
- pulumi_gcp/dataplex/zone_iam_binding.py +12 -12
- pulumi_gcp/dataplex/zone_iam_member.py +12 -12
- pulumi_gcp/dataplex/zone_iam_policy.py +12 -12
- pulumi_gcp/dataproc/_inputs.py +70 -0
- pulumi_gcp/dataproc/autoscaling_policy_iam_binding.py +12 -12
- pulumi_gcp/dataproc/autoscaling_policy_iam_member.py +12 -12
- pulumi_gcp/dataproc/autoscaling_policy_iam_policy.py +12 -12
- pulumi_gcp/dataproc/cluster_iam_binding.py +12 -12
- pulumi_gcp/dataproc/cluster_iam_member.py +12 -12
- pulumi_gcp/dataproc/cluster_iam_policy.py +12 -12
- pulumi_gcp/dataproc/get_metastore_federation_iam_policy.py +26 -2
- pulumi_gcp/dataproc/job_iam_binding.py +12 -12
- pulumi_gcp/dataproc/job_iam_member.py +12 -12
- pulumi_gcp/dataproc/job_iam_policy.py +12 -12
- pulumi_gcp/dataproc/metastore_federation.py +4 -0
- pulumi_gcp/dataproc/metastore_federation_iam_binding.py +208 -0
- pulumi_gcp/dataproc/metastore_federation_iam_member.py +208 -0
- pulumi_gcp/dataproc/metastore_federation_iam_policy.py +208 -0
- pulumi_gcp/dataproc/metastore_service_iam_binding.py +12 -12
- pulumi_gcp/dataproc/metastore_service_iam_member.py +12 -12
- pulumi_gcp/dataproc/metastore_service_iam_policy.py +12 -12
- pulumi_gcp/dataproc/outputs.py +62 -0
- pulumi_gcp/datastore/data_store_index.py +4 -2
- pulumi_gcp/datastream/_inputs.py +1789 -820
- pulumi_gcp/datastream/connection_profile.py +210 -3
- pulumi_gcp/datastream/outputs.py +864 -5
- pulumi_gcp/datastream/private_connection.py +47 -0
- pulumi_gcp/datastream/stream.py +231 -4
- pulumi_gcp/diagflow/cx_test_case.py +4 -4
- pulumi_gcp/diagflow/entity_type.py +4 -2
- pulumi_gcp/diagflow/fulfillment.py +4 -2
- pulumi_gcp/diagflow/intent.py +8 -4
- pulumi_gcp/dns/dns_managed_zone_iam_binding.py +12 -12
- pulumi_gcp/dns/dns_managed_zone_iam_member.py +12 -12
- pulumi_gcp/dns/dns_managed_zone_iam_policy.py +12 -12
- pulumi_gcp/dns/get_managed_zone.py +3 -3
- pulumi_gcp/dns/managed_zone.py +7 -7
- pulumi_gcp/dns/outputs.py +2 -2
- pulumi_gcp/edgecontainer/node_pool.py +4 -2
- pulumi_gcp/edgecontainer/vpn_connection.py +4 -2
- pulumi_gcp/endpoints/service_iam_binding.py +12 -12
- pulumi_gcp/endpoints/service_iam_member.py +12 -12
- pulumi_gcp/endpoints/service_iam_policy.py +12 -12
- pulumi_gcp/eventarc/channel.py +4 -2
- pulumi_gcp/eventarc/google_channel_config.py +4 -2
- pulumi_gcp/firebase/app_check_app_attest_config.py +16 -8
- pulumi_gcp/firebase/app_check_debug_token.py +8 -4
- pulumi_gcp/firebase/app_check_device_check_config.py +8 -4
- pulumi_gcp/firebase/app_check_play_integrity_config.py +16 -8
- pulumi_gcp/firebase/app_check_recaptcha_enterprise_config.py +8 -4
- pulumi_gcp/firebase/app_check_recaptcha_v3_config.py +8 -4
- pulumi_gcp/firebase/app_check_service_config.py +12 -6
- pulumi_gcp/firebase/database_instance.py +4 -2
- pulumi_gcp/firebaserules/release.py +0 -98
- pulumi_gcp/firestore/database.py +24 -20
- pulumi_gcp/firestore/document.py +24 -12
- pulumi_gcp/firestore/field.py +4 -4
- pulumi_gcp/folder/access_approval_settings.py +4 -2
- pulumi_gcp/folder/iam_audit_config.py +23 -23
- pulumi_gcp/folder/iam_member.py +16 -16
- pulumi_gcp/folder/iam_policy.py +16 -16
- pulumi_gcp/gkebackup/backup_plan_iam_binding.py +12 -12
- pulumi_gcp/gkebackup/backup_plan_iam_member.py +12 -12
- pulumi_gcp/gkebackup/backup_plan_iam_policy.py +12 -12
- pulumi_gcp/gkehub/feature_iam_binding.py +12 -12
- pulumi_gcp/gkehub/feature_iam_member.py +12 -12
- pulumi_gcp/gkehub/feature_iam_policy.py +12 -12
- pulumi_gcp/gkehub/membership_binding.py +20 -10
- pulumi_gcp/gkehub/membership_iam_binding.py +12 -12
- pulumi_gcp/gkehub/membership_iam_member.py +12 -12
- pulumi_gcp/gkehub/membership_iam_policy.py +12 -12
- pulumi_gcp/gkehub/membership_rbac_role_binding.py +12 -8
- pulumi_gcp/gkehub/namespace.py +8 -6
- pulumi_gcp/gkehub/scope_iam_binding.py +12 -12
- pulumi_gcp/gkehub/scope_iam_member.py +12 -12
- pulumi_gcp/gkehub/scope_iam_policy.py +12 -12
- pulumi_gcp/gkehub/scope_rbac_role_binding.py +8 -6
- pulumi_gcp/healthcare/consent_store_iam_binding.py +12 -12
- pulumi_gcp/healthcare/consent_store_iam_member.py +12 -12
- pulumi_gcp/healthcare/consent_store_iam_policy.py +12 -12
- pulumi_gcp/healthcare/dataset_iam_binding.py +12 -12
- pulumi_gcp/healthcare/dataset_iam_member.py +12 -12
- pulumi_gcp/healthcare/dataset_iam_policy.py +12 -12
- pulumi_gcp/healthcare/dicom_store_iam_binding.py +12 -12
- pulumi_gcp/healthcare/dicom_store_iam_member.py +12 -12
- pulumi_gcp/healthcare/dicom_store_iam_policy.py +12 -12
- pulumi_gcp/healthcare/fhir_store_iam_binding.py +12 -12
- pulumi_gcp/healthcare/fhir_store_iam_member.py +12 -12
- pulumi_gcp/healthcare/fhir_store_iam_policy.py +12 -12
- pulumi_gcp/healthcare/hl7_store_iam_binding.py +12 -12
- pulumi_gcp/healthcare/hl7_store_iam_member.py +12 -12
- pulumi_gcp/healthcare/hl7_store_iam_policy.py +12 -12
- pulumi_gcp/iap/app_engine_service_iam_binding.py +12 -12
- pulumi_gcp/iap/app_engine_service_iam_member.py +12 -12
- pulumi_gcp/iap/app_engine_service_iam_policy.py +12 -12
- pulumi_gcp/iap/app_engine_version_iam_binding.py +12 -12
- pulumi_gcp/iap/app_engine_version_iam_member.py +12 -12
- pulumi_gcp/iap/app_engine_version_iam_policy.py +12 -12
- pulumi_gcp/iap/tunnel_dest_group.py +2 -2
- pulumi_gcp/iap/tunnel_dest_group_iam_binding.py +12 -12
- pulumi_gcp/iap/tunnel_dest_group_iam_member.py +12 -12
- pulumi_gcp/iap/tunnel_dest_group_iam_policy.py +12 -12
- pulumi_gcp/iap/tunnel_iam_binding.py +12 -12
- pulumi_gcp/iap/tunnel_iam_member.py +12 -12
- pulumi_gcp/iap/tunnel_iam_policy.py +12 -12
- pulumi_gcp/iap/tunnel_instance_iam_binding.py +12 -12
- pulumi_gcp/iap/tunnel_instance_iam_member.py +12 -12
- pulumi_gcp/iap/tunnel_instance_iam_policy.py +12 -12
- pulumi_gcp/iap/web_backend_service_iam_binding.py +12 -12
- pulumi_gcp/iap/web_backend_service_iam_member.py +12 -12
- pulumi_gcp/iap/web_backend_service_iam_policy.py +12 -12
- pulumi_gcp/iap/web_iam_binding.py +12 -12
- pulumi_gcp/iap/web_iam_member.py +12 -12
- pulumi_gcp/iap/web_iam_policy.py +12 -12
- pulumi_gcp/iap/web_region_backend_service_iam_binding.py +12 -12
- pulumi_gcp/iap/web_region_backend_service_iam_member.py +12 -12
- pulumi_gcp/iap/web_region_backend_service_iam_policy.py +12 -12
- pulumi_gcp/iap/web_type_app_enging_iam_binding.py +12 -12
- pulumi_gcp/iap/web_type_app_enging_iam_member.py +12 -12
- pulumi_gcp/iap/web_type_app_enging_iam_policy.py +12 -12
- pulumi_gcp/iap/web_type_compute_iam_binding.py +12 -12
- pulumi_gcp/iap/web_type_compute_iam_member.py +12 -12
- pulumi_gcp/iap/web_type_compute_iam_policy.py +12 -12
- pulumi_gcp/integrationconnectors/connection.py +4 -2
- pulumi_gcp/integrationconnectors/managed_zone.py +26 -14
- pulumi_gcp/kms/__init__.py +2 -0
- pulumi_gcp/kms/autokey_config.py +366 -0
- pulumi_gcp/kms/key_handle.py +548 -0
- pulumi_gcp/kms/key_ring_iam_binding.py +12 -12
- pulumi_gcp/kms/key_ring_iam_member.py +12 -12
- pulumi_gcp/kms/key_ring_iam_policy.py +12 -12
- pulumi_gcp/logging/folder_settings.py +12 -10
- pulumi_gcp/logging/linked_dataset.py +4 -2
- pulumi_gcp/logging/organization_settings.py +12 -10
- pulumi_gcp/logging/project_bucket_config.py +4 -2
- pulumi_gcp/looker/instance.py +12 -10
- pulumi_gcp/netapp/storage_pool.py +7 -7
- pulumi_gcp/netapp/volume.py +4 -4
- pulumi_gcp/netapp/volume_replication.py +4 -2
- pulumi_gcp/netapp/volume_snapshot.py +4 -2
- pulumi_gcp/networkconnectivity/internal_range.py +14 -12
- pulumi_gcp/networksecurity/gateway_security_policy.py +20 -8
- pulumi_gcp/networksecurity/tls_inspection_policy.py +437 -5
- pulumi_gcp/networkservices/__init__.py +2 -0
- pulumi_gcp/networkservices/_inputs.py +454 -0
- pulumi_gcp/networkservices/gateway.py +12 -6
- pulumi_gcp/networkservices/lb_route_extension.py +663 -0
- pulumi_gcp/networkservices/lb_traffic_extension.py +669 -0
- pulumi_gcp/networkservices/outputs.py +478 -0
- pulumi_gcp/notebooks/instance_iam_binding.py +12 -12
- pulumi_gcp/notebooks/instance_iam_member.py +12 -12
- pulumi_gcp/notebooks/instance_iam_policy.py +12 -12
- pulumi_gcp/notebooks/runtime_iam_binding.py +12 -12
- pulumi_gcp/notebooks/runtime_iam_member.py +12 -12
- pulumi_gcp/notebooks/runtime_iam_policy.py +12 -12
- pulumi_gcp/organizations/access_approval_settings.py +4 -2
- pulumi_gcp/organizations/iam_member.py +16 -16
- pulumi_gcp/organizations/iam_policy.py +16 -16
- pulumi_gcp/orgpolicy/policy.py +2 -2
- pulumi_gcp/parallelstore/instance.py +20 -18
- pulumi_gcp/projects/access_approval_settings.py +4 -2
- pulumi_gcp/projects/iam_audit_config.py +23 -23
- pulumi_gcp/projects/iam_binding.py +23 -23
- pulumi_gcp/projects/iam_member.py +23 -23
- pulumi_gcp/projects/iam_policy.py +16 -16
- pulumi_gcp/projects/service.py +2 -43
- pulumi_gcp/pubsub/_inputs.py +16 -0
- pulumi_gcp/pubsub/outputs.py +25 -0
- pulumi_gcp/pubsub/schema.py +4 -2
- pulumi_gcp/pubsub/schema_iam_binding.py +12 -12
- pulumi_gcp/pubsub/schema_iam_member.py +12 -12
- pulumi_gcp/pubsub/schema_iam_policy.py +12 -12
- pulumi_gcp/pubsub/subscription.py +102 -66
- pulumi_gcp/pubsub/subscription_iam_binding.py +12 -12
- pulumi_gcp/pubsub/subscription_iam_member.py +12 -12
- pulumi_gcp/pubsub/subscription_iam_policy.py +12 -12
- pulumi_gcp/pubsub/topic.py +4 -2
- pulumi_gcp/pubsub/topic_iam_binding.py +12 -12
- pulumi_gcp/pubsub/topic_iam_member.py +12 -12
- pulumi_gcp/pubsub/topic_iam_policy.py +12 -12
- pulumi_gcp/pulumi-plugin.json +1 -1
- pulumi_gcp/redis/cluster.py +30 -28
- pulumi_gcp/redis/instance.py +4 -2
- pulumi_gcp/secretmanager/secret.py +4 -2
- pulumi_gcp/secretmanager/secret_iam_binding.py +12 -12
- pulumi_gcp/secretmanager/secret_iam_member.py +12 -12
- pulumi_gcp/secretmanager/secret_iam_policy.py +12 -12
- pulumi_gcp/securesourcemanager/instance.py +20 -8
- pulumi_gcp/securitycenter/instance_iam_binding.py +14 -12
- pulumi_gcp/securitycenter/instance_iam_member.py +14 -12
- pulumi_gcp/securitycenter/instance_iam_policy.py +14 -12
- pulumi_gcp/serviceaccount/key.py +2 -2
- pulumi_gcp/servicedirectory/namespace_iam_binding.py +8 -8
- pulumi_gcp/servicedirectory/namespace_iam_member.py +8 -8
- pulumi_gcp/servicedirectory/namespace_iam_policy.py +8 -8
- pulumi_gcp/servicedirectory/service_iam_binding.py +8 -8
- pulumi_gcp/servicedirectory/service_iam_member.py +8 -8
- pulumi_gcp/servicedirectory/service_iam_policy.py +8 -8
- pulumi_gcp/sourcerepo/repository_iam_binding.py +12 -12
- pulumi_gcp/sourcerepo/repository_iam_member.py +12 -12
- pulumi_gcp/sourcerepo/repository_iam_policy.py +12 -12
- pulumi_gcp/spanner/database_iam_binding.py +12 -12
- pulumi_gcp/spanner/database_iam_member.py +12 -12
- pulumi_gcp/spanner/database_iam_policy.py +12 -12
- pulumi_gcp/spanner/instance_iam_binding.py +12 -12
- pulumi_gcp/spanner/instance_iam_member.py +12 -12
- pulumi_gcp/spanner/instance_iam_policy.py +12 -12
- pulumi_gcp/sql/database_instance.py +4 -2
- pulumi_gcp/sql/user.py +4 -4
- pulumi_gcp/storage/_inputs.py +12 -10
- pulumi_gcp/storage/bucket.py +44 -0
- pulumi_gcp/storage/bucket_iam_binding.py +12 -12
- pulumi_gcp/storage/bucket_iam_member.py +12 -12
- pulumi_gcp/storage/bucket_iam_policy.py +12 -12
- pulumi_gcp/storage/get_project_service_account.py +4 -2
- pulumi_gcp/storage/insights_report_config.py +12 -10
- pulumi_gcp/storage/notification.py +18 -16
- pulumi_gcp/storage/outputs.py +12 -10
- pulumi_gcp/storage/transfer_agent_pool.py +4 -2
- pulumi_gcp/storage/transfer_job.py +14 -4
- pulumi_gcp/tags/tag_key_iam_binding.py +12 -12
- pulumi_gcp/tags/tag_key_iam_member.py +12 -12
- pulumi_gcp/tags/tag_key_iam_policy.py +12 -12
- pulumi_gcp/tags/tag_value_iam_binding.py +12 -12
- pulumi_gcp/tags/tag_value_iam_member.py +12 -12
- pulumi_gcp/tags/tag_value_iam_policy.py +12 -12
- pulumi_gcp/tpu/_inputs.py +2 -2
- pulumi_gcp/tpu/outputs.py +2 -2
- pulumi_gcp/tpu/v2_vm.py +10 -6
- pulumi_gcp/vertex/ai_endpoint.py +24 -22
- pulumi_gcp/vertex/ai_index_endpoint.py +20 -18
- pulumi_gcp/vertex/ai_tensorboard.py +14 -12
- pulumi_gcp/vmwareengine/external_address.py +4 -2
- pulumi_gcp/vmwareengine/network.py +8 -4
- {pulumi_gcp-7.24.0a1716510380.dist-info → pulumi_gcp-7.25.0.dist-info}/METADATA +1 -1
- {pulumi_gcp-7.24.0a1716510380.dist-info → pulumi_gcp-7.25.0.dist-info}/RECORD +467 -450
- {pulumi_gcp-7.24.0a1716510380.dist-info → pulumi_gcp-7.25.0.dist-info}/WHEEL +0 -0
- {pulumi_gcp-7.24.0a1716510380.dist-info → pulumi_gcp-7.25.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1683 @@
|
|
1
|
+
# coding=utf-8
|
2
|
+
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
|
3
|
+
# *** Do not edit by hand unless you're certain you know what you are doing! ***
|
4
|
+
|
5
|
+
import copy
|
6
|
+
import warnings
|
7
|
+
import pulumi
|
8
|
+
import pulumi.runtime
|
9
|
+
from typing import Any, Mapping, Optional, Sequence, Union, overload
|
10
|
+
from .. import _utilities
|
11
|
+
from . import outputs
|
12
|
+
from ._inputs import *
|
13
|
+
|
14
|
+
__all__ = ['InterconnectArgs', 'Interconnect']
|
15
|
+
|
16
|
+
@pulumi.input_type
|
17
|
+
class InterconnectArgs:
|
18
|
+
def __init__(__self__, *,
|
19
|
+
customer_name: pulumi.Input[str],
|
20
|
+
interconnect_type: pulumi.Input[str],
|
21
|
+
link_type: pulumi.Input[str],
|
22
|
+
location: pulumi.Input[str],
|
23
|
+
requested_link_count: pulumi.Input[int],
|
24
|
+
admin_enabled: Optional[pulumi.Input[bool]] = None,
|
25
|
+
description: Optional[pulumi.Input[str]] = None,
|
26
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
27
|
+
macsec: Optional[pulumi.Input['InterconnectMacsecArgs']] = None,
|
28
|
+
macsec_enabled: Optional[pulumi.Input[bool]] = None,
|
29
|
+
name: Optional[pulumi.Input[str]] = None,
|
30
|
+
noc_contact_email: Optional[pulumi.Input[str]] = None,
|
31
|
+
project: Optional[pulumi.Input[str]] = None,
|
32
|
+
remote_location: Optional[pulumi.Input[str]] = None,
|
33
|
+
requested_features: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
|
34
|
+
"""
|
35
|
+
The set of arguments for constructing a Interconnect resource.
|
36
|
+
:param pulumi.Input[str] customer_name: Customer name, to put in the Letter of Authorization as the party authorized to request a
|
37
|
+
crossconnect.
|
38
|
+
|
39
|
+
|
40
|
+
- - -
|
41
|
+
:param pulumi.Input[str] interconnect_type: Type of interconnect. Note that a value IT_PRIVATE has been deprecated in favor of DEDICATED.
|
42
|
+
Can take one of the following values:
|
43
|
+
- PARTNER: A partner-managed interconnection shared between customers though a partner.
|
44
|
+
- DEDICATED: A dedicated physical interconnection with the customer.
|
45
|
+
Possible values are: `DEDICATED`, `PARTNER`, `IT_PRIVATE`.
|
46
|
+
:param pulumi.Input[str] link_type: Type of link requested. Note that this field indicates the speed of each of the links in the
|
47
|
+
bundle, not the speed of the entire bundle. Can take one of the following values:
|
48
|
+
- LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics.
|
49
|
+
- LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics.
|
50
|
+
Possible values are: `LINK_TYPE_ETHERNET_10G_LR`, `LINK_TYPE_ETHERNET_100G_LR`.
|
51
|
+
:param pulumi.Input[str] location: URL of the InterconnectLocation object that represents where this connection is to be provisioned.
|
52
|
+
:param pulumi.Input[int] requested_link_count: Target number of physical links in the link bundle, as requested by the customer.
|
53
|
+
:param pulumi.Input[bool] admin_enabled: Administrative status of the interconnect. When this is set to true, the Interconnect is
|
54
|
+
functional and can carry traffic. When set to false, no packets can be carried over the
|
55
|
+
interconnect and no BGP routes are exchanged over it. By default, the status is set to true.
|
56
|
+
:param pulumi.Input[str] description: An optional description of this resource. Provide this property when you create the resource.
|
57
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels for this resource. These can only be added or modified by the setLabels
|
58
|
+
method. Each label key/value pair must comply with RFC1035. Label values may be empty.
|
59
|
+
|
60
|
+
**Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
|
61
|
+
Please refer to the field `effective_labels` for all of the labels present on the resource.
|
62
|
+
:param pulumi.Input['InterconnectMacsecArgs'] macsec: Configuration that enables Media Access Control security (MACsec) on the Cloud
|
63
|
+
Interconnect connection between Google and your on-premises router.
|
64
|
+
Structure is documented below.
|
65
|
+
:param pulumi.Input[bool] macsec_enabled: Enable or disable MACsec on this Interconnect connection.
|
66
|
+
MACsec enablement fails if the MACsec object is not specified.
|
67
|
+
:param pulumi.Input[str] name: Name of the resource. Provided by the client when the resource is created. The name must be
|
68
|
+
1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters
|
69
|
+
long and match the regular expression `a-z?` which means the first
|
70
|
+
character must be a lowercase letter, and all following characters must be a dash,
|
71
|
+
lowercase letter, or digit, except the last character, which cannot be a dash.
|
72
|
+
:param pulumi.Input[str] noc_contact_email: Email address to contact the customer NOC for operations and maintenance notifications
|
73
|
+
regarding this Interconnect. If specified, this will be used for notifications in addition to
|
74
|
+
all other forms described, such as Cloud Monitoring logs alerting and Cloud Notifications.
|
75
|
+
This field is required for users who sign up for Cloud Interconnect using workforce identity
|
76
|
+
federation.
|
77
|
+
:param pulumi.Input[str] project: The ID of the project in which the resource belongs.
|
78
|
+
If it is not provided, the provider project is used.
|
79
|
+
:param pulumi.Input[str] remote_location: Indicates that this is a Cross-Cloud Interconnect. This field specifies the location outside
|
80
|
+
of Google's network that the interconnect is connected to.
|
81
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] requested_features: interconnects.list of features requested for this Interconnect connection. Options: MACSEC (
|
82
|
+
If specified then the connection is created on MACsec capable hardware ports. If not
|
83
|
+
specified, the default value is false, which allocates non-MACsec capable ports first if
|
84
|
+
available).
|
85
|
+
Each value may be one of: `MACSEC`.
|
86
|
+
"""
|
87
|
+
pulumi.set(__self__, "customer_name", customer_name)
|
88
|
+
pulumi.set(__self__, "interconnect_type", interconnect_type)
|
89
|
+
pulumi.set(__self__, "link_type", link_type)
|
90
|
+
pulumi.set(__self__, "location", location)
|
91
|
+
pulumi.set(__self__, "requested_link_count", requested_link_count)
|
92
|
+
if admin_enabled is not None:
|
93
|
+
pulumi.set(__self__, "admin_enabled", admin_enabled)
|
94
|
+
if description is not None:
|
95
|
+
pulumi.set(__self__, "description", description)
|
96
|
+
if labels is not None:
|
97
|
+
pulumi.set(__self__, "labels", labels)
|
98
|
+
if macsec is not None:
|
99
|
+
pulumi.set(__self__, "macsec", macsec)
|
100
|
+
if macsec_enabled is not None:
|
101
|
+
pulumi.set(__self__, "macsec_enabled", macsec_enabled)
|
102
|
+
if name is not None:
|
103
|
+
pulumi.set(__self__, "name", name)
|
104
|
+
if noc_contact_email is not None:
|
105
|
+
pulumi.set(__self__, "noc_contact_email", noc_contact_email)
|
106
|
+
if project is not None:
|
107
|
+
pulumi.set(__self__, "project", project)
|
108
|
+
if remote_location is not None:
|
109
|
+
pulumi.set(__self__, "remote_location", remote_location)
|
110
|
+
if requested_features is not None:
|
111
|
+
pulumi.set(__self__, "requested_features", requested_features)
|
112
|
+
|
113
|
+
@property
|
114
|
+
@pulumi.getter(name="customerName")
|
115
|
+
def customer_name(self) -> pulumi.Input[str]:
|
116
|
+
"""
|
117
|
+
Customer name, to put in the Letter of Authorization as the party authorized to request a
|
118
|
+
crossconnect.
|
119
|
+
|
120
|
+
|
121
|
+
- - -
|
122
|
+
"""
|
123
|
+
return pulumi.get(self, "customer_name")
|
124
|
+
|
125
|
+
@customer_name.setter
|
126
|
+
def customer_name(self, value: pulumi.Input[str]):
|
127
|
+
pulumi.set(self, "customer_name", value)
|
128
|
+
|
129
|
+
@property
|
130
|
+
@pulumi.getter(name="interconnectType")
|
131
|
+
def interconnect_type(self) -> pulumi.Input[str]:
|
132
|
+
"""
|
133
|
+
Type of interconnect. Note that a value IT_PRIVATE has been deprecated in favor of DEDICATED.
|
134
|
+
Can take one of the following values:
|
135
|
+
- PARTNER: A partner-managed interconnection shared between customers though a partner.
|
136
|
+
- DEDICATED: A dedicated physical interconnection with the customer.
|
137
|
+
Possible values are: `DEDICATED`, `PARTNER`, `IT_PRIVATE`.
|
138
|
+
"""
|
139
|
+
return pulumi.get(self, "interconnect_type")
|
140
|
+
|
141
|
+
@interconnect_type.setter
|
142
|
+
def interconnect_type(self, value: pulumi.Input[str]):
|
143
|
+
pulumi.set(self, "interconnect_type", value)
|
144
|
+
|
145
|
+
@property
|
146
|
+
@pulumi.getter(name="linkType")
|
147
|
+
def link_type(self) -> pulumi.Input[str]:
|
148
|
+
"""
|
149
|
+
Type of link requested. Note that this field indicates the speed of each of the links in the
|
150
|
+
bundle, not the speed of the entire bundle. Can take one of the following values:
|
151
|
+
- LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics.
|
152
|
+
- LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics.
|
153
|
+
Possible values are: `LINK_TYPE_ETHERNET_10G_LR`, `LINK_TYPE_ETHERNET_100G_LR`.
|
154
|
+
"""
|
155
|
+
return pulumi.get(self, "link_type")
|
156
|
+
|
157
|
+
@link_type.setter
|
158
|
+
def link_type(self, value: pulumi.Input[str]):
|
159
|
+
pulumi.set(self, "link_type", value)
|
160
|
+
|
161
|
+
@property
|
162
|
+
@pulumi.getter
|
163
|
+
def location(self) -> pulumi.Input[str]:
|
164
|
+
"""
|
165
|
+
URL of the InterconnectLocation object that represents where this connection is to be provisioned.
|
166
|
+
"""
|
167
|
+
return pulumi.get(self, "location")
|
168
|
+
|
169
|
+
@location.setter
|
170
|
+
def location(self, value: pulumi.Input[str]):
|
171
|
+
pulumi.set(self, "location", value)
|
172
|
+
|
173
|
+
@property
|
174
|
+
@pulumi.getter(name="requestedLinkCount")
|
175
|
+
def requested_link_count(self) -> pulumi.Input[int]:
|
176
|
+
"""
|
177
|
+
Target number of physical links in the link bundle, as requested by the customer.
|
178
|
+
"""
|
179
|
+
return pulumi.get(self, "requested_link_count")
|
180
|
+
|
181
|
+
@requested_link_count.setter
|
182
|
+
def requested_link_count(self, value: pulumi.Input[int]):
|
183
|
+
pulumi.set(self, "requested_link_count", value)
|
184
|
+
|
185
|
+
@property
|
186
|
+
@pulumi.getter(name="adminEnabled")
|
187
|
+
def admin_enabled(self) -> Optional[pulumi.Input[bool]]:
|
188
|
+
"""
|
189
|
+
Administrative status of the interconnect. When this is set to true, the Interconnect is
|
190
|
+
functional and can carry traffic. When set to false, no packets can be carried over the
|
191
|
+
interconnect and no BGP routes are exchanged over it. By default, the status is set to true.
|
192
|
+
"""
|
193
|
+
return pulumi.get(self, "admin_enabled")
|
194
|
+
|
195
|
+
@admin_enabled.setter
|
196
|
+
def admin_enabled(self, value: Optional[pulumi.Input[bool]]):
|
197
|
+
pulumi.set(self, "admin_enabled", value)
|
198
|
+
|
199
|
+
@property
|
200
|
+
@pulumi.getter
|
201
|
+
def description(self) -> Optional[pulumi.Input[str]]:
|
202
|
+
"""
|
203
|
+
An optional description of this resource. Provide this property when you create the resource.
|
204
|
+
"""
|
205
|
+
return pulumi.get(self, "description")
|
206
|
+
|
207
|
+
@description.setter
|
208
|
+
def description(self, value: Optional[pulumi.Input[str]]):
|
209
|
+
pulumi.set(self, "description", value)
|
210
|
+
|
211
|
+
@property
|
212
|
+
@pulumi.getter
|
213
|
+
def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
|
214
|
+
"""
|
215
|
+
Labels for this resource. These can only be added or modified by the setLabels
|
216
|
+
method. Each label key/value pair must comply with RFC1035. Label values may be empty.
|
217
|
+
|
218
|
+
**Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
|
219
|
+
Please refer to the field `effective_labels` for all of the labels present on the resource.
|
220
|
+
"""
|
221
|
+
return pulumi.get(self, "labels")
|
222
|
+
|
223
|
+
@labels.setter
|
224
|
+
def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
|
225
|
+
pulumi.set(self, "labels", value)
|
226
|
+
|
227
|
+
@property
|
228
|
+
@pulumi.getter
|
229
|
+
def macsec(self) -> Optional[pulumi.Input['InterconnectMacsecArgs']]:
|
230
|
+
"""
|
231
|
+
Configuration that enables Media Access Control security (MACsec) on the Cloud
|
232
|
+
Interconnect connection between Google and your on-premises router.
|
233
|
+
Structure is documented below.
|
234
|
+
"""
|
235
|
+
return pulumi.get(self, "macsec")
|
236
|
+
|
237
|
+
@macsec.setter
|
238
|
+
def macsec(self, value: Optional[pulumi.Input['InterconnectMacsecArgs']]):
|
239
|
+
pulumi.set(self, "macsec", value)
|
240
|
+
|
241
|
+
@property
|
242
|
+
@pulumi.getter(name="macsecEnabled")
|
243
|
+
def macsec_enabled(self) -> Optional[pulumi.Input[bool]]:
|
244
|
+
"""
|
245
|
+
Enable or disable MACsec on this Interconnect connection.
|
246
|
+
MACsec enablement fails if the MACsec object is not specified.
|
247
|
+
"""
|
248
|
+
return pulumi.get(self, "macsec_enabled")
|
249
|
+
|
250
|
+
@macsec_enabled.setter
|
251
|
+
def macsec_enabled(self, value: Optional[pulumi.Input[bool]]):
|
252
|
+
pulumi.set(self, "macsec_enabled", value)
|
253
|
+
|
254
|
+
@property
|
255
|
+
@pulumi.getter
|
256
|
+
def name(self) -> Optional[pulumi.Input[str]]:
|
257
|
+
"""
|
258
|
+
Name of the resource. Provided by the client when the resource is created. The name must be
|
259
|
+
1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters
|
260
|
+
long and match the regular expression `a-z?` which means the first
|
261
|
+
character must be a lowercase letter, and all following characters must be a dash,
|
262
|
+
lowercase letter, or digit, except the last character, which cannot be a dash.
|
263
|
+
"""
|
264
|
+
return pulumi.get(self, "name")
|
265
|
+
|
266
|
+
@name.setter
|
267
|
+
def name(self, value: Optional[pulumi.Input[str]]):
|
268
|
+
pulumi.set(self, "name", value)
|
269
|
+
|
270
|
+
@property
|
271
|
+
@pulumi.getter(name="nocContactEmail")
|
272
|
+
def noc_contact_email(self) -> Optional[pulumi.Input[str]]:
|
273
|
+
"""
|
274
|
+
Email address to contact the customer NOC for operations and maintenance notifications
|
275
|
+
regarding this Interconnect. If specified, this will be used for notifications in addition to
|
276
|
+
all other forms described, such as Cloud Monitoring logs alerting and Cloud Notifications.
|
277
|
+
This field is required for users who sign up for Cloud Interconnect using workforce identity
|
278
|
+
federation.
|
279
|
+
"""
|
280
|
+
return pulumi.get(self, "noc_contact_email")
|
281
|
+
|
282
|
+
@noc_contact_email.setter
|
283
|
+
def noc_contact_email(self, value: Optional[pulumi.Input[str]]):
|
284
|
+
pulumi.set(self, "noc_contact_email", value)
|
285
|
+
|
286
|
+
@property
|
287
|
+
@pulumi.getter
|
288
|
+
def project(self) -> Optional[pulumi.Input[str]]:
|
289
|
+
"""
|
290
|
+
The ID of the project in which the resource belongs.
|
291
|
+
If it is not provided, the provider project is used.
|
292
|
+
"""
|
293
|
+
return pulumi.get(self, "project")
|
294
|
+
|
295
|
+
@project.setter
|
296
|
+
def project(self, value: Optional[pulumi.Input[str]]):
|
297
|
+
pulumi.set(self, "project", value)
|
298
|
+
|
299
|
+
@property
|
300
|
+
@pulumi.getter(name="remoteLocation")
|
301
|
+
def remote_location(self) -> Optional[pulumi.Input[str]]:
|
302
|
+
"""
|
303
|
+
Indicates that this is a Cross-Cloud Interconnect. This field specifies the location outside
|
304
|
+
of Google's network that the interconnect is connected to.
|
305
|
+
"""
|
306
|
+
return pulumi.get(self, "remote_location")
|
307
|
+
|
308
|
+
@remote_location.setter
|
309
|
+
def remote_location(self, value: Optional[pulumi.Input[str]]):
|
310
|
+
pulumi.set(self, "remote_location", value)
|
311
|
+
|
312
|
+
@property
|
313
|
+
@pulumi.getter(name="requestedFeatures")
|
314
|
+
def requested_features(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
|
315
|
+
"""
|
316
|
+
interconnects.list of features requested for this Interconnect connection. Options: MACSEC (
|
317
|
+
If specified then the connection is created on MACsec capable hardware ports. If not
|
318
|
+
specified, the default value is false, which allocates non-MACsec capable ports first if
|
319
|
+
available).
|
320
|
+
Each value may be one of: `MACSEC`.
|
321
|
+
"""
|
322
|
+
return pulumi.get(self, "requested_features")
|
323
|
+
|
324
|
+
@requested_features.setter
|
325
|
+
def requested_features(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
|
326
|
+
pulumi.set(self, "requested_features", value)
|
327
|
+
|
328
|
+
|
329
|
+
@pulumi.input_type
|
330
|
+
class _InterconnectState:
|
331
|
+
def __init__(__self__, *,
|
332
|
+
admin_enabled: Optional[pulumi.Input[bool]] = None,
|
333
|
+
available_features: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
334
|
+
circuit_infos: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectCircuitInfoArgs']]]] = None,
|
335
|
+
creation_timestamp: Optional[pulumi.Input[str]] = None,
|
336
|
+
customer_name: Optional[pulumi.Input[str]] = None,
|
337
|
+
description: Optional[pulumi.Input[str]] = None,
|
338
|
+
effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
339
|
+
expected_outages: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectExpectedOutageArgs']]]] = None,
|
340
|
+
google_ip_address: Optional[pulumi.Input[str]] = None,
|
341
|
+
google_reference_id: Optional[pulumi.Input[str]] = None,
|
342
|
+
interconnect_attachments: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
343
|
+
interconnect_type: Optional[pulumi.Input[str]] = None,
|
344
|
+
label_fingerprint: Optional[pulumi.Input[str]] = None,
|
345
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
346
|
+
link_type: Optional[pulumi.Input[str]] = None,
|
347
|
+
location: Optional[pulumi.Input[str]] = None,
|
348
|
+
macsec: Optional[pulumi.Input['InterconnectMacsecArgs']] = None,
|
349
|
+
macsec_enabled: Optional[pulumi.Input[bool]] = None,
|
350
|
+
name: Optional[pulumi.Input[str]] = None,
|
351
|
+
noc_contact_email: Optional[pulumi.Input[str]] = None,
|
352
|
+
operational_status: Optional[pulumi.Input[str]] = None,
|
353
|
+
peer_ip_address: Optional[pulumi.Input[str]] = None,
|
354
|
+
project: Optional[pulumi.Input[str]] = None,
|
355
|
+
provisioned_link_count: Optional[pulumi.Input[int]] = None,
|
356
|
+
pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
357
|
+
remote_location: Optional[pulumi.Input[str]] = None,
|
358
|
+
requested_features: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
359
|
+
requested_link_count: Optional[pulumi.Input[int]] = None,
|
360
|
+
satisfies_pzs: Optional[pulumi.Input[bool]] = None,
|
361
|
+
state: Optional[pulumi.Input[str]] = None):
|
362
|
+
"""
|
363
|
+
Input properties used for looking up and filtering Interconnect resources.
|
364
|
+
:param pulumi.Input[bool] admin_enabled: Administrative status of the interconnect. When this is set to true, the Interconnect is
|
365
|
+
functional and can carry traffic. When set to false, no packets can be carried over the
|
366
|
+
interconnect and no BGP routes are exchanged over it. By default, the status is set to true.
|
367
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] available_features: interconnects.list of features available for this Interconnect connection. Can take the value:
|
368
|
+
MACSEC. If present then the Interconnect connection is provisioned on MACsec capable hardware
|
369
|
+
ports. If not present then the Interconnect connection is provisioned on non-MACsec capable
|
370
|
+
ports and MACsec isn't supported and enabling MACsec fails).
|
371
|
+
:param pulumi.Input[Sequence[pulumi.Input['InterconnectCircuitInfoArgs']]] circuit_infos: A list of CircuitInfo objects, that describe the individual circuits in this LAG.
|
372
|
+
Structure is documented below.
|
373
|
+
:param pulumi.Input[str] creation_timestamp: Creation timestamp in RFC3339 text format.
|
374
|
+
:param pulumi.Input[str] customer_name: Customer name, to put in the Letter of Authorization as the party authorized to request a
|
375
|
+
crossconnect.
|
376
|
+
|
377
|
+
|
378
|
+
- - -
|
379
|
+
:param pulumi.Input[str] description: An optional description of this resource. Provide this property when you create the resource.
|
380
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
|
381
|
+
:param pulumi.Input[Sequence[pulumi.Input['InterconnectExpectedOutageArgs']]] expected_outages: A list of outages expected for this Interconnect.
|
382
|
+
Structure is documented below.
|
383
|
+
:param pulumi.Input[str] google_ip_address: IP address configured on the Google side of the Interconnect link.
|
384
|
+
This can be used only for ping tests.
|
385
|
+
:param pulumi.Input[str] google_reference_id: Google reference ID to be used when raising support tickets with Google or otherwise to debug
|
386
|
+
backend connectivity issues.
|
387
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] interconnect_attachments: A list of the URLs of all InterconnectAttachments configured to use this Interconnect.
|
388
|
+
:param pulumi.Input[str] interconnect_type: Type of interconnect. Note that a value IT_PRIVATE has been deprecated in favor of DEDICATED.
|
389
|
+
Can take one of the following values:
|
390
|
+
- PARTNER: A partner-managed interconnection shared between customers though a partner.
|
391
|
+
- DEDICATED: A dedicated physical interconnection with the customer.
|
392
|
+
Possible values are: `DEDICATED`, `PARTNER`, `IT_PRIVATE`.
|
393
|
+
:param pulumi.Input[str] label_fingerprint: A fingerprint for the labels being applied to this Interconnect, which is essentially a hash
|
394
|
+
of the labels set used for optimistic locking. The fingerprint is initially generated by
|
395
|
+
Compute Engine and changes after every request to modify or update labels.
|
396
|
+
You must always provide an up-to-date fingerprint hash in order to update or change labels,
|
397
|
+
otherwise the request will fail with error 412 conditionNotMet.
|
398
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels for this resource. These can only be added or modified by the setLabels
|
399
|
+
method. Each label key/value pair must comply with RFC1035. Label values may be empty.
|
400
|
+
|
401
|
+
**Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
|
402
|
+
Please refer to the field `effective_labels` for all of the labels present on the resource.
|
403
|
+
:param pulumi.Input[str] link_type: Type of link requested. Note that this field indicates the speed of each of the links in the
|
404
|
+
bundle, not the speed of the entire bundle. Can take one of the following values:
|
405
|
+
- LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics.
|
406
|
+
- LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics.
|
407
|
+
Possible values are: `LINK_TYPE_ETHERNET_10G_LR`, `LINK_TYPE_ETHERNET_100G_LR`.
|
408
|
+
:param pulumi.Input[str] location: URL of the InterconnectLocation object that represents where this connection is to be provisioned.
|
409
|
+
:param pulumi.Input['InterconnectMacsecArgs'] macsec: Configuration that enables Media Access Control security (MACsec) on the Cloud
|
410
|
+
Interconnect connection between Google and your on-premises router.
|
411
|
+
Structure is documented below.
|
412
|
+
:param pulumi.Input[bool] macsec_enabled: Enable or disable MACsec on this Interconnect connection.
|
413
|
+
MACsec enablement fails if the MACsec object is not specified.
|
414
|
+
:param pulumi.Input[str] name: Name of the resource. Provided by the client when the resource is created. The name must be
|
415
|
+
1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters
|
416
|
+
long and match the regular expression `a-z?` which means the first
|
417
|
+
character must be a lowercase letter, and all following characters must be a dash,
|
418
|
+
lowercase letter, or digit, except the last character, which cannot be a dash.
|
419
|
+
:param pulumi.Input[str] noc_contact_email: Email address to contact the customer NOC for operations and maintenance notifications
|
420
|
+
regarding this Interconnect. If specified, this will be used for notifications in addition to
|
421
|
+
all other forms described, such as Cloud Monitoring logs alerting and Cloud Notifications.
|
422
|
+
This field is required for users who sign up for Cloud Interconnect using workforce identity
|
423
|
+
federation.
|
424
|
+
:param pulumi.Input[str] operational_status: The current status of this Interconnect's functionality, which can take one of the following values:
|
425
|
+
- OS_ACTIVE: A valid Interconnect, which is turned up and is ready to use. Attachments may
|
426
|
+
be provisioned on this Interconnect.
|
427
|
+
- OS_UNPROVISIONED: An Interconnect that has not completed turnup. No attachments may be
|
428
|
+
provisioned on this Interconnect.
|
429
|
+
- OS_UNDER_MAINTENANCE: An Interconnect that is undergoing internal maintenance. No
|
430
|
+
attachments may be provisioned or updated on this Interconnect.
|
431
|
+
:param pulumi.Input[str] peer_ip_address: IP address configured on the customer side of the Interconnect link.
|
432
|
+
The customer should configure this IP address during turnup when prompted by Google NOC.
|
433
|
+
This can be used only for ping tests.
|
434
|
+
:param pulumi.Input[str] project: The ID of the project in which the resource belongs.
|
435
|
+
If it is not provided, the provider project is used.
|
436
|
+
:param pulumi.Input[int] provisioned_link_count: Number of links actually provisioned in this interconnect.
|
437
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
|
438
|
+
and default labels configured on the provider.
|
439
|
+
:param pulumi.Input[str] remote_location: Indicates that this is a Cross-Cloud Interconnect. This field specifies the location outside
|
440
|
+
of Google's network that the interconnect is connected to.
|
441
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] requested_features: interconnects.list of features requested for this Interconnect connection. Options: MACSEC (
|
442
|
+
If specified then the connection is created on MACsec capable hardware ports. If not
|
443
|
+
specified, the default value is false, which allocates non-MACsec capable ports first if
|
444
|
+
available).
|
445
|
+
Each value may be one of: `MACSEC`.
|
446
|
+
:param pulumi.Input[int] requested_link_count: Target number of physical links in the link bundle, as requested by the customer.
|
447
|
+
:param pulumi.Input[bool] satisfies_pzs: Reserved for future use.
|
448
|
+
:param pulumi.Input[str] state: (Output)
|
449
|
+
State of this notification. Note that the versions of this enum prefixed with "NS_" have
|
450
|
+
been deprecated in favor of the unprefixed values. Can take one of the following values:
|
451
|
+
- ACTIVE: This outage notification is active. The event could be in the past, present,
|
452
|
+
or future. See startTime and endTime for scheduling.
|
453
|
+
- CANCELLED: The outage associated with this notification was cancelled before the
|
454
|
+
outage was due to start.
|
455
|
+
- COMPLETED: The outage associated with this notification is complete.
|
456
|
+
"""
|
457
|
+
if admin_enabled is not None:
|
458
|
+
pulumi.set(__self__, "admin_enabled", admin_enabled)
|
459
|
+
if available_features is not None:
|
460
|
+
pulumi.set(__self__, "available_features", available_features)
|
461
|
+
if circuit_infos is not None:
|
462
|
+
pulumi.set(__self__, "circuit_infos", circuit_infos)
|
463
|
+
if creation_timestamp is not None:
|
464
|
+
pulumi.set(__self__, "creation_timestamp", creation_timestamp)
|
465
|
+
if customer_name is not None:
|
466
|
+
pulumi.set(__self__, "customer_name", customer_name)
|
467
|
+
if description is not None:
|
468
|
+
pulumi.set(__self__, "description", description)
|
469
|
+
if effective_labels is not None:
|
470
|
+
pulumi.set(__self__, "effective_labels", effective_labels)
|
471
|
+
if expected_outages is not None:
|
472
|
+
pulumi.set(__self__, "expected_outages", expected_outages)
|
473
|
+
if google_ip_address is not None:
|
474
|
+
pulumi.set(__self__, "google_ip_address", google_ip_address)
|
475
|
+
if google_reference_id is not None:
|
476
|
+
pulumi.set(__self__, "google_reference_id", google_reference_id)
|
477
|
+
if interconnect_attachments is not None:
|
478
|
+
pulumi.set(__self__, "interconnect_attachments", interconnect_attachments)
|
479
|
+
if interconnect_type is not None:
|
480
|
+
pulumi.set(__self__, "interconnect_type", interconnect_type)
|
481
|
+
if label_fingerprint is not None:
|
482
|
+
pulumi.set(__self__, "label_fingerprint", label_fingerprint)
|
483
|
+
if labels is not None:
|
484
|
+
pulumi.set(__self__, "labels", labels)
|
485
|
+
if link_type is not None:
|
486
|
+
pulumi.set(__self__, "link_type", link_type)
|
487
|
+
if location is not None:
|
488
|
+
pulumi.set(__self__, "location", location)
|
489
|
+
if macsec is not None:
|
490
|
+
pulumi.set(__self__, "macsec", macsec)
|
491
|
+
if macsec_enabled is not None:
|
492
|
+
pulumi.set(__self__, "macsec_enabled", macsec_enabled)
|
493
|
+
if name is not None:
|
494
|
+
pulumi.set(__self__, "name", name)
|
495
|
+
if noc_contact_email is not None:
|
496
|
+
pulumi.set(__self__, "noc_contact_email", noc_contact_email)
|
497
|
+
if operational_status is not None:
|
498
|
+
pulumi.set(__self__, "operational_status", operational_status)
|
499
|
+
if peer_ip_address is not None:
|
500
|
+
pulumi.set(__self__, "peer_ip_address", peer_ip_address)
|
501
|
+
if project is not None:
|
502
|
+
pulumi.set(__self__, "project", project)
|
503
|
+
if provisioned_link_count is not None:
|
504
|
+
pulumi.set(__self__, "provisioned_link_count", provisioned_link_count)
|
505
|
+
if pulumi_labels is not None:
|
506
|
+
pulumi.set(__self__, "pulumi_labels", pulumi_labels)
|
507
|
+
if remote_location is not None:
|
508
|
+
pulumi.set(__self__, "remote_location", remote_location)
|
509
|
+
if requested_features is not None:
|
510
|
+
pulumi.set(__self__, "requested_features", requested_features)
|
511
|
+
if requested_link_count is not None:
|
512
|
+
pulumi.set(__self__, "requested_link_count", requested_link_count)
|
513
|
+
if satisfies_pzs is not None:
|
514
|
+
pulumi.set(__self__, "satisfies_pzs", satisfies_pzs)
|
515
|
+
if state is not None:
|
516
|
+
pulumi.set(__self__, "state", state)
|
517
|
+
|
518
|
+
@property
|
519
|
+
@pulumi.getter(name="adminEnabled")
|
520
|
+
def admin_enabled(self) -> Optional[pulumi.Input[bool]]:
|
521
|
+
"""
|
522
|
+
Administrative status of the interconnect. When this is set to true, the Interconnect is
|
523
|
+
functional and can carry traffic. When set to false, no packets can be carried over the
|
524
|
+
interconnect and no BGP routes are exchanged over it. By default, the status is set to true.
|
525
|
+
"""
|
526
|
+
return pulumi.get(self, "admin_enabled")
|
527
|
+
|
528
|
+
@admin_enabled.setter
|
529
|
+
def admin_enabled(self, value: Optional[pulumi.Input[bool]]):
|
530
|
+
pulumi.set(self, "admin_enabled", value)
|
531
|
+
|
532
|
+
@property
|
533
|
+
@pulumi.getter(name="availableFeatures")
|
534
|
+
def available_features(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
|
535
|
+
"""
|
536
|
+
interconnects.list of features available for this Interconnect connection. Can take the value:
|
537
|
+
MACSEC. If present then the Interconnect connection is provisioned on MACsec capable hardware
|
538
|
+
ports. If not present then the Interconnect connection is provisioned on non-MACsec capable
|
539
|
+
ports and MACsec isn't supported and enabling MACsec fails).
|
540
|
+
"""
|
541
|
+
return pulumi.get(self, "available_features")
|
542
|
+
|
543
|
+
@available_features.setter
|
544
|
+
def available_features(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
|
545
|
+
pulumi.set(self, "available_features", value)
|
546
|
+
|
547
|
+
@property
|
548
|
+
@pulumi.getter(name="circuitInfos")
|
549
|
+
def circuit_infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectCircuitInfoArgs']]]]:
|
550
|
+
"""
|
551
|
+
A list of CircuitInfo objects, that describe the individual circuits in this LAG.
|
552
|
+
Structure is documented below.
|
553
|
+
"""
|
554
|
+
return pulumi.get(self, "circuit_infos")
|
555
|
+
|
556
|
+
@circuit_infos.setter
|
557
|
+
def circuit_infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectCircuitInfoArgs']]]]):
|
558
|
+
pulumi.set(self, "circuit_infos", value)
|
559
|
+
|
560
|
+
@property
|
561
|
+
@pulumi.getter(name="creationTimestamp")
|
562
|
+
def creation_timestamp(self) -> Optional[pulumi.Input[str]]:
|
563
|
+
"""
|
564
|
+
Creation timestamp in RFC3339 text format.
|
565
|
+
"""
|
566
|
+
return pulumi.get(self, "creation_timestamp")
|
567
|
+
|
568
|
+
@creation_timestamp.setter
|
569
|
+
def creation_timestamp(self, value: Optional[pulumi.Input[str]]):
|
570
|
+
pulumi.set(self, "creation_timestamp", value)
|
571
|
+
|
572
|
+
@property
|
573
|
+
@pulumi.getter(name="customerName")
|
574
|
+
def customer_name(self) -> Optional[pulumi.Input[str]]:
|
575
|
+
"""
|
576
|
+
Customer name, to put in the Letter of Authorization as the party authorized to request a
|
577
|
+
crossconnect.
|
578
|
+
|
579
|
+
|
580
|
+
- - -
|
581
|
+
"""
|
582
|
+
return pulumi.get(self, "customer_name")
|
583
|
+
|
584
|
+
@customer_name.setter
|
585
|
+
def customer_name(self, value: Optional[pulumi.Input[str]]):
|
586
|
+
pulumi.set(self, "customer_name", value)
|
587
|
+
|
588
|
+
@property
|
589
|
+
@pulumi.getter
|
590
|
+
def description(self) -> Optional[pulumi.Input[str]]:
|
591
|
+
"""
|
592
|
+
An optional description of this resource. Provide this property when you create the resource.
|
593
|
+
"""
|
594
|
+
return pulumi.get(self, "description")
|
595
|
+
|
596
|
+
@description.setter
|
597
|
+
def description(self, value: Optional[pulumi.Input[str]]):
|
598
|
+
pulumi.set(self, "description", value)
|
599
|
+
|
600
|
+
@property
|
601
|
+
@pulumi.getter(name="effectiveLabels")
|
602
|
+
def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
|
603
|
+
"""
|
604
|
+
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
|
605
|
+
"""
|
606
|
+
return pulumi.get(self, "effective_labels")
|
607
|
+
|
608
|
+
@effective_labels.setter
|
609
|
+
def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
|
610
|
+
pulumi.set(self, "effective_labels", value)
|
611
|
+
|
612
|
+
@property
|
613
|
+
@pulumi.getter(name="expectedOutages")
|
614
|
+
def expected_outages(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectExpectedOutageArgs']]]]:
|
615
|
+
"""
|
616
|
+
A list of outages expected for this Interconnect.
|
617
|
+
Structure is documented below.
|
618
|
+
"""
|
619
|
+
return pulumi.get(self, "expected_outages")
|
620
|
+
|
621
|
+
@expected_outages.setter
|
622
|
+
def expected_outages(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectExpectedOutageArgs']]]]):
|
623
|
+
pulumi.set(self, "expected_outages", value)
|
624
|
+
|
625
|
+
@property
|
626
|
+
@pulumi.getter(name="googleIpAddress")
|
627
|
+
def google_ip_address(self) -> Optional[pulumi.Input[str]]:
|
628
|
+
"""
|
629
|
+
IP address configured on the Google side of the Interconnect link.
|
630
|
+
This can be used only for ping tests.
|
631
|
+
"""
|
632
|
+
return pulumi.get(self, "google_ip_address")
|
633
|
+
|
634
|
+
@google_ip_address.setter
|
635
|
+
def google_ip_address(self, value: Optional[pulumi.Input[str]]):
|
636
|
+
pulumi.set(self, "google_ip_address", value)
|
637
|
+
|
638
|
+
@property
|
639
|
+
@pulumi.getter(name="googleReferenceId")
|
640
|
+
def google_reference_id(self) -> Optional[pulumi.Input[str]]:
|
641
|
+
"""
|
642
|
+
Google reference ID to be used when raising support tickets with Google or otherwise to debug
|
643
|
+
backend connectivity issues.
|
644
|
+
"""
|
645
|
+
return pulumi.get(self, "google_reference_id")
|
646
|
+
|
647
|
+
@google_reference_id.setter
|
648
|
+
def google_reference_id(self, value: Optional[pulumi.Input[str]]):
|
649
|
+
pulumi.set(self, "google_reference_id", value)
|
650
|
+
|
651
|
+
@property
|
652
|
+
@pulumi.getter(name="interconnectAttachments")
|
653
|
+
def interconnect_attachments(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
|
654
|
+
"""
|
655
|
+
A list of the URLs of all InterconnectAttachments configured to use this Interconnect.
|
656
|
+
"""
|
657
|
+
return pulumi.get(self, "interconnect_attachments")
|
658
|
+
|
659
|
+
@interconnect_attachments.setter
|
660
|
+
def interconnect_attachments(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
|
661
|
+
pulumi.set(self, "interconnect_attachments", value)
|
662
|
+
|
663
|
+
@property
|
664
|
+
@pulumi.getter(name="interconnectType")
|
665
|
+
def interconnect_type(self) -> Optional[pulumi.Input[str]]:
|
666
|
+
"""
|
667
|
+
Type of interconnect. Note that a value IT_PRIVATE has been deprecated in favor of DEDICATED.
|
668
|
+
Can take one of the following values:
|
669
|
+
- PARTNER: A partner-managed interconnection shared between customers though a partner.
|
670
|
+
- DEDICATED: A dedicated physical interconnection with the customer.
|
671
|
+
Possible values are: `DEDICATED`, `PARTNER`, `IT_PRIVATE`.
|
672
|
+
"""
|
673
|
+
return pulumi.get(self, "interconnect_type")
|
674
|
+
|
675
|
+
@interconnect_type.setter
|
676
|
+
def interconnect_type(self, value: Optional[pulumi.Input[str]]):
|
677
|
+
pulumi.set(self, "interconnect_type", value)
|
678
|
+
|
679
|
+
@property
|
680
|
+
@pulumi.getter(name="labelFingerprint")
|
681
|
+
def label_fingerprint(self) -> Optional[pulumi.Input[str]]:
|
682
|
+
"""
|
683
|
+
A fingerprint for the labels being applied to this Interconnect, which is essentially a hash
|
684
|
+
of the labels set used for optimistic locking. The fingerprint is initially generated by
|
685
|
+
Compute Engine and changes after every request to modify or update labels.
|
686
|
+
You must always provide an up-to-date fingerprint hash in order to update or change labels,
|
687
|
+
otherwise the request will fail with error 412 conditionNotMet.
|
688
|
+
"""
|
689
|
+
return pulumi.get(self, "label_fingerprint")
|
690
|
+
|
691
|
+
@label_fingerprint.setter
|
692
|
+
def label_fingerprint(self, value: Optional[pulumi.Input[str]]):
|
693
|
+
pulumi.set(self, "label_fingerprint", value)
|
694
|
+
|
695
|
+
@property
|
696
|
+
@pulumi.getter
|
697
|
+
def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
|
698
|
+
"""
|
699
|
+
Labels for this resource. These can only be added or modified by the setLabels
|
700
|
+
method. Each label key/value pair must comply with RFC1035. Label values may be empty.
|
701
|
+
|
702
|
+
**Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
|
703
|
+
Please refer to the field `effective_labels` for all of the labels present on the resource.
|
704
|
+
"""
|
705
|
+
return pulumi.get(self, "labels")
|
706
|
+
|
707
|
+
@labels.setter
|
708
|
+
def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
|
709
|
+
pulumi.set(self, "labels", value)
|
710
|
+
|
711
|
+
@property
|
712
|
+
@pulumi.getter(name="linkType")
|
713
|
+
def link_type(self) -> Optional[pulumi.Input[str]]:
|
714
|
+
"""
|
715
|
+
Type of link requested. Note that this field indicates the speed of each of the links in the
|
716
|
+
bundle, not the speed of the entire bundle. Can take one of the following values:
|
717
|
+
- LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics.
|
718
|
+
- LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics.
|
719
|
+
Possible values are: `LINK_TYPE_ETHERNET_10G_LR`, `LINK_TYPE_ETHERNET_100G_LR`.
|
720
|
+
"""
|
721
|
+
return pulumi.get(self, "link_type")
|
722
|
+
|
723
|
+
@link_type.setter
|
724
|
+
def link_type(self, value: Optional[pulumi.Input[str]]):
|
725
|
+
pulumi.set(self, "link_type", value)
|
726
|
+
|
727
|
+
@property
|
728
|
+
@pulumi.getter
|
729
|
+
def location(self) -> Optional[pulumi.Input[str]]:
|
730
|
+
"""
|
731
|
+
URL of the InterconnectLocation object that represents where this connection is to be provisioned.
|
732
|
+
"""
|
733
|
+
return pulumi.get(self, "location")
|
734
|
+
|
735
|
+
@location.setter
|
736
|
+
def location(self, value: Optional[pulumi.Input[str]]):
|
737
|
+
pulumi.set(self, "location", value)
|
738
|
+
|
739
|
+
@property
|
740
|
+
@pulumi.getter
|
741
|
+
def macsec(self) -> Optional[pulumi.Input['InterconnectMacsecArgs']]:
|
742
|
+
"""
|
743
|
+
Configuration that enables Media Access Control security (MACsec) on the Cloud
|
744
|
+
Interconnect connection between Google and your on-premises router.
|
745
|
+
Structure is documented below.
|
746
|
+
"""
|
747
|
+
return pulumi.get(self, "macsec")
|
748
|
+
|
749
|
+
@macsec.setter
|
750
|
+
def macsec(self, value: Optional[pulumi.Input['InterconnectMacsecArgs']]):
|
751
|
+
pulumi.set(self, "macsec", value)
|
752
|
+
|
753
|
+
@property
|
754
|
+
@pulumi.getter(name="macsecEnabled")
|
755
|
+
def macsec_enabled(self) -> Optional[pulumi.Input[bool]]:
|
756
|
+
"""
|
757
|
+
Enable or disable MACsec on this Interconnect connection.
|
758
|
+
MACsec enablement fails if the MACsec object is not specified.
|
759
|
+
"""
|
760
|
+
return pulumi.get(self, "macsec_enabled")
|
761
|
+
|
762
|
+
@macsec_enabled.setter
|
763
|
+
def macsec_enabled(self, value: Optional[pulumi.Input[bool]]):
|
764
|
+
pulumi.set(self, "macsec_enabled", value)
|
765
|
+
|
766
|
+
@property
|
767
|
+
@pulumi.getter
|
768
|
+
def name(self) -> Optional[pulumi.Input[str]]:
|
769
|
+
"""
|
770
|
+
Name of the resource. Provided by the client when the resource is created. The name must be
|
771
|
+
1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters
|
772
|
+
long and match the regular expression `a-z?` which means the first
|
773
|
+
character must be a lowercase letter, and all following characters must be a dash,
|
774
|
+
lowercase letter, or digit, except the last character, which cannot be a dash.
|
775
|
+
"""
|
776
|
+
return pulumi.get(self, "name")
|
777
|
+
|
778
|
+
@name.setter
|
779
|
+
def name(self, value: Optional[pulumi.Input[str]]):
|
780
|
+
pulumi.set(self, "name", value)
|
781
|
+
|
782
|
+
@property
|
783
|
+
@pulumi.getter(name="nocContactEmail")
|
784
|
+
def noc_contact_email(self) -> Optional[pulumi.Input[str]]:
|
785
|
+
"""
|
786
|
+
Email address to contact the customer NOC for operations and maintenance notifications
|
787
|
+
regarding this Interconnect. If specified, this will be used for notifications in addition to
|
788
|
+
all other forms described, such as Cloud Monitoring logs alerting and Cloud Notifications.
|
789
|
+
This field is required for users who sign up for Cloud Interconnect using workforce identity
|
790
|
+
federation.
|
791
|
+
"""
|
792
|
+
return pulumi.get(self, "noc_contact_email")
|
793
|
+
|
794
|
+
@noc_contact_email.setter
|
795
|
+
def noc_contact_email(self, value: Optional[pulumi.Input[str]]):
|
796
|
+
pulumi.set(self, "noc_contact_email", value)
|
797
|
+
|
798
|
+
@property
|
799
|
+
@pulumi.getter(name="operationalStatus")
|
800
|
+
def operational_status(self) -> Optional[pulumi.Input[str]]:
|
801
|
+
"""
|
802
|
+
The current status of this Interconnect's functionality, which can take one of the following values:
|
803
|
+
- OS_ACTIVE: A valid Interconnect, which is turned up and is ready to use. Attachments may
|
804
|
+
be provisioned on this Interconnect.
|
805
|
+
- OS_UNPROVISIONED: An Interconnect that has not completed turnup. No attachments may be
|
806
|
+
provisioned on this Interconnect.
|
807
|
+
- OS_UNDER_MAINTENANCE: An Interconnect that is undergoing internal maintenance. No
|
808
|
+
attachments may be provisioned or updated on this Interconnect.
|
809
|
+
"""
|
810
|
+
return pulumi.get(self, "operational_status")
|
811
|
+
|
812
|
+
@operational_status.setter
|
813
|
+
def operational_status(self, value: Optional[pulumi.Input[str]]):
|
814
|
+
pulumi.set(self, "operational_status", value)
|
815
|
+
|
816
|
+
@property
|
817
|
+
@pulumi.getter(name="peerIpAddress")
|
818
|
+
def peer_ip_address(self) -> Optional[pulumi.Input[str]]:
|
819
|
+
"""
|
820
|
+
IP address configured on the customer side of the Interconnect link.
|
821
|
+
The customer should configure this IP address during turnup when prompted by Google NOC.
|
822
|
+
This can be used only for ping tests.
|
823
|
+
"""
|
824
|
+
return pulumi.get(self, "peer_ip_address")
|
825
|
+
|
826
|
+
@peer_ip_address.setter
|
827
|
+
def peer_ip_address(self, value: Optional[pulumi.Input[str]]):
|
828
|
+
pulumi.set(self, "peer_ip_address", value)
|
829
|
+
|
830
|
+
@property
|
831
|
+
@pulumi.getter
|
832
|
+
def project(self) -> Optional[pulumi.Input[str]]:
|
833
|
+
"""
|
834
|
+
The ID of the project in which the resource belongs.
|
835
|
+
If it is not provided, the provider project is used.
|
836
|
+
"""
|
837
|
+
return pulumi.get(self, "project")
|
838
|
+
|
839
|
+
@project.setter
|
840
|
+
def project(self, value: Optional[pulumi.Input[str]]):
|
841
|
+
pulumi.set(self, "project", value)
|
842
|
+
|
843
|
+
@property
|
844
|
+
@pulumi.getter(name="provisionedLinkCount")
|
845
|
+
def provisioned_link_count(self) -> Optional[pulumi.Input[int]]:
|
846
|
+
"""
|
847
|
+
Number of links actually provisioned in this interconnect.
|
848
|
+
"""
|
849
|
+
return pulumi.get(self, "provisioned_link_count")
|
850
|
+
|
851
|
+
@provisioned_link_count.setter
|
852
|
+
def provisioned_link_count(self, value: Optional[pulumi.Input[int]]):
|
853
|
+
pulumi.set(self, "provisioned_link_count", value)
|
854
|
+
|
855
|
+
@property
|
856
|
+
@pulumi.getter(name="pulumiLabels")
|
857
|
+
def pulumi_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
|
858
|
+
"""
|
859
|
+
The combination of labels configured directly on the resource
|
860
|
+
and default labels configured on the provider.
|
861
|
+
"""
|
862
|
+
return pulumi.get(self, "pulumi_labels")
|
863
|
+
|
864
|
+
@pulumi_labels.setter
|
865
|
+
def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
|
866
|
+
pulumi.set(self, "pulumi_labels", value)
|
867
|
+
|
868
|
+
@property
|
869
|
+
@pulumi.getter(name="remoteLocation")
|
870
|
+
def remote_location(self) -> Optional[pulumi.Input[str]]:
|
871
|
+
"""
|
872
|
+
Indicates that this is a Cross-Cloud Interconnect. This field specifies the location outside
|
873
|
+
of Google's network that the interconnect is connected to.
|
874
|
+
"""
|
875
|
+
return pulumi.get(self, "remote_location")
|
876
|
+
|
877
|
+
@remote_location.setter
|
878
|
+
def remote_location(self, value: Optional[pulumi.Input[str]]):
|
879
|
+
pulumi.set(self, "remote_location", value)
|
880
|
+
|
881
|
+
@property
|
882
|
+
@pulumi.getter(name="requestedFeatures")
|
883
|
+
def requested_features(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
|
884
|
+
"""
|
885
|
+
interconnects.list of features requested for this Interconnect connection. Options: MACSEC (
|
886
|
+
If specified then the connection is created on MACsec capable hardware ports. If not
|
887
|
+
specified, the default value is false, which allocates non-MACsec capable ports first if
|
888
|
+
available).
|
889
|
+
Each value may be one of: `MACSEC`.
|
890
|
+
"""
|
891
|
+
return pulumi.get(self, "requested_features")
|
892
|
+
|
893
|
+
@requested_features.setter
|
894
|
+
def requested_features(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
|
895
|
+
pulumi.set(self, "requested_features", value)
|
896
|
+
|
897
|
+
@property
|
898
|
+
@pulumi.getter(name="requestedLinkCount")
|
899
|
+
def requested_link_count(self) -> Optional[pulumi.Input[int]]:
|
900
|
+
"""
|
901
|
+
Target number of physical links in the link bundle, as requested by the customer.
|
902
|
+
"""
|
903
|
+
return pulumi.get(self, "requested_link_count")
|
904
|
+
|
905
|
+
@requested_link_count.setter
|
906
|
+
def requested_link_count(self, value: Optional[pulumi.Input[int]]):
|
907
|
+
pulumi.set(self, "requested_link_count", value)
|
908
|
+
|
909
|
+
@property
|
910
|
+
@pulumi.getter(name="satisfiesPzs")
|
911
|
+
def satisfies_pzs(self) -> Optional[pulumi.Input[bool]]:
|
912
|
+
"""
|
913
|
+
Reserved for future use.
|
914
|
+
"""
|
915
|
+
return pulumi.get(self, "satisfies_pzs")
|
916
|
+
|
917
|
+
@satisfies_pzs.setter
|
918
|
+
def satisfies_pzs(self, value: Optional[pulumi.Input[bool]]):
|
919
|
+
pulumi.set(self, "satisfies_pzs", value)
|
920
|
+
|
921
|
+
@property
|
922
|
+
@pulumi.getter
|
923
|
+
def state(self) -> Optional[pulumi.Input[str]]:
|
924
|
+
"""
|
925
|
+
(Output)
|
926
|
+
State of this notification. Note that the versions of this enum prefixed with "NS_" have
|
927
|
+
been deprecated in favor of the unprefixed values. Can take one of the following values:
|
928
|
+
- ACTIVE: This outage notification is active. The event could be in the past, present,
|
929
|
+
or future. See startTime and endTime for scheduling.
|
930
|
+
- CANCELLED: The outage associated with this notification was cancelled before the
|
931
|
+
outage was due to start.
|
932
|
+
- COMPLETED: The outage associated with this notification is complete.
|
933
|
+
"""
|
934
|
+
return pulumi.get(self, "state")
|
935
|
+
|
936
|
+
@state.setter
|
937
|
+
def state(self, value: Optional[pulumi.Input[str]]):
|
938
|
+
pulumi.set(self, "state", value)
|
939
|
+
|
940
|
+
|
941
|
+
class Interconnect(pulumi.CustomResource):
|
942
|
+
@overload
|
943
|
+
def __init__(__self__,
|
944
|
+
resource_name: str,
|
945
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
946
|
+
admin_enabled: Optional[pulumi.Input[bool]] = None,
|
947
|
+
customer_name: Optional[pulumi.Input[str]] = None,
|
948
|
+
description: Optional[pulumi.Input[str]] = None,
|
949
|
+
interconnect_type: Optional[pulumi.Input[str]] = None,
|
950
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
951
|
+
link_type: Optional[pulumi.Input[str]] = None,
|
952
|
+
location: Optional[pulumi.Input[str]] = None,
|
953
|
+
macsec: Optional[pulumi.Input[pulumi.InputType['InterconnectMacsecArgs']]] = None,
|
954
|
+
macsec_enabled: Optional[pulumi.Input[bool]] = None,
|
955
|
+
name: Optional[pulumi.Input[str]] = None,
|
956
|
+
noc_contact_email: Optional[pulumi.Input[str]] = None,
|
957
|
+
project: Optional[pulumi.Input[str]] = None,
|
958
|
+
remote_location: Optional[pulumi.Input[str]] = None,
|
959
|
+
requested_features: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
960
|
+
requested_link_count: Optional[pulumi.Input[int]] = None,
|
961
|
+
__props__=None):
|
962
|
+
"""
|
963
|
+
Represents an Interconnect resource. The Interconnect resource is a dedicated connection between
|
964
|
+
Google's network and your on-premises network.
|
965
|
+
|
966
|
+
To get more information about Interconnect, see:
|
967
|
+
|
968
|
+
* [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/interconnects)
|
969
|
+
* How-to Guides
|
970
|
+
* [Create a Dedicated Interconnect](https://cloud.google.com/network-connectivity/docs/interconnect/concepts/dedicated-overview)
|
971
|
+
|
972
|
+
## Example Usage
|
973
|
+
|
974
|
+
### Compute Interconnect Basic
|
975
|
+
|
976
|
+
```python
|
977
|
+
import pulumi
|
978
|
+
import pulumi_gcp as gcp
|
979
|
+
|
980
|
+
project = gcp.organizations.get_project()
|
981
|
+
example_interconnect = gcp.compute.Interconnect("example-interconnect",
|
982
|
+
name="example-interconnect",
|
983
|
+
customer_name="example_customer",
|
984
|
+
interconnect_type="DEDICATED",
|
985
|
+
link_type="LINK_TYPE_ETHERNET_10G_LR",
|
986
|
+
location=f"https://www.googleapis.com/compute/v1/projects/{project.name}/global/interconnectLocations/iad-zone1-1",
|
987
|
+
requested_link_count=1)
|
988
|
+
```
|
989
|
+
|
990
|
+
## Import
|
991
|
+
|
992
|
+
Interconnect can be imported using any of these accepted formats:
|
993
|
+
|
994
|
+
* `projects/{{project}}/global/interconnects/{{name}}`
|
995
|
+
|
996
|
+
* `{{project}}/{{name}}`
|
997
|
+
|
998
|
+
* `{{name}}`
|
999
|
+
|
1000
|
+
When using the `pulumi import` command, Interconnect can be imported using one of the formats above. For example:
|
1001
|
+
|
1002
|
+
```sh
|
1003
|
+
$ pulumi import gcp:compute/interconnect:Interconnect default projects/{{project}}/global/interconnects/{{name}}
|
1004
|
+
```
|
1005
|
+
|
1006
|
+
```sh
|
1007
|
+
$ pulumi import gcp:compute/interconnect:Interconnect default {{project}}/{{name}}
|
1008
|
+
```
|
1009
|
+
|
1010
|
+
```sh
|
1011
|
+
$ pulumi import gcp:compute/interconnect:Interconnect default {{name}}
|
1012
|
+
```
|
1013
|
+
|
1014
|
+
:param str resource_name: The name of the resource.
|
1015
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
1016
|
+
:param pulumi.Input[bool] admin_enabled: Administrative status of the interconnect. When this is set to true, the Interconnect is
|
1017
|
+
functional and can carry traffic. When set to false, no packets can be carried over the
|
1018
|
+
interconnect and no BGP routes are exchanged over it. By default, the status is set to true.
|
1019
|
+
:param pulumi.Input[str] customer_name: Customer name, to put in the Letter of Authorization as the party authorized to request a
|
1020
|
+
crossconnect.
|
1021
|
+
|
1022
|
+
|
1023
|
+
- - -
|
1024
|
+
:param pulumi.Input[str] description: An optional description of this resource. Provide this property when you create the resource.
|
1025
|
+
:param pulumi.Input[str] interconnect_type: Type of interconnect. Note that a value IT_PRIVATE has been deprecated in favor of DEDICATED.
|
1026
|
+
Can take one of the following values:
|
1027
|
+
- PARTNER: A partner-managed interconnection shared between customers though a partner.
|
1028
|
+
- DEDICATED: A dedicated physical interconnection with the customer.
|
1029
|
+
Possible values are: `DEDICATED`, `PARTNER`, `IT_PRIVATE`.
|
1030
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels for this resource. These can only be added or modified by the setLabels
|
1031
|
+
method. Each label key/value pair must comply with RFC1035. Label values may be empty.
|
1032
|
+
|
1033
|
+
**Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
|
1034
|
+
Please refer to the field `effective_labels` for all of the labels present on the resource.
|
1035
|
+
:param pulumi.Input[str] link_type: Type of link requested. Note that this field indicates the speed of each of the links in the
|
1036
|
+
bundle, not the speed of the entire bundle. Can take one of the following values:
|
1037
|
+
- LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics.
|
1038
|
+
- LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics.
|
1039
|
+
Possible values are: `LINK_TYPE_ETHERNET_10G_LR`, `LINK_TYPE_ETHERNET_100G_LR`.
|
1040
|
+
:param pulumi.Input[str] location: URL of the InterconnectLocation object that represents where this connection is to be provisioned.
|
1041
|
+
:param pulumi.Input[pulumi.InputType['InterconnectMacsecArgs']] macsec: Configuration that enables Media Access Control security (MACsec) on the Cloud
|
1042
|
+
Interconnect connection between Google and your on-premises router.
|
1043
|
+
Structure is documented below.
|
1044
|
+
:param pulumi.Input[bool] macsec_enabled: Enable or disable MACsec on this Interconnect connection.
|
1045
|
+
MACsec enablement fails if the MACsec object is not specified.
|
1046
|
+
:param pulumi.Input[str] name: Name of the resource. Provided by the client when the resource is created. The name must be
|
1047
|
+
1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters
|
1048
|
+
long and match the regular expression `a-z?` which means the first
|
1049
|
+
character must be a lowercase letter, and all following characters must be a dash,
|
1050
|
+
lowercase letter, or digit, except the last character, which cannot be a dash.
|
1051
|
+
:param pulumi.Input[str] noc_contact_email: Email address to contact the customer NOC for operations and maintenance notifications
|
1052
|
+
regarding this Interconnect. If specified, this will be used for notifications in addition to
|
1053
|
+
all other forms described, such as Cloud Monitoring logs alerting and Cloud Notifications.
|
1054
|
+
This field is required for users who sign up for Cloud Interconnect using workforce identity
|
1055
|
+
federation.
|
1056
|
+
:param pulumi.Input[str] project: The ID of the project in which the resource belongs.
|
1057
|
+
If it is not provided, the provider project is used.
|
1058
|
+
:param pulumi.Input[str] remote_location: Indicates that this is a Cross-Cloud Interconnect. This field specifies the location outside
|
1059
|
+
of Google's network that the interconnect is connected to.
|
1060
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] requested_features: interconnects.list of features requested for this Interconnect connection. Options: MACSEC (
|
1061
|
+
If specified then the connection is created on MACsec capable hardware ports. If not
|
1062
|
+
specified, the default value is false, which allocates non-MACsec capable ports first if
|
1063
|
+
available).
|
1064
|
+
Each value may be one of: `MACSEC`.
|
1065
|
+
:param pulumi.Input[int] requested_link_count: Target number of physical links in the link bundle, as requested by the customer.
|
1066
|
+
"""
|
1067
|
+
...
|
1068
|
+
@overload
|
1069
|
+
def __init__(__self__,
|
1070
|
+
resource_name: str,
|
1071
|
+
args: InterconnectArgs,
|
1072
|
+
opts: Optional[pulumi.ResourceOptions] = None):
|
1073
|
+
"""
|
1074
|
+
Represents an Interconnect resource. The Interconnect resource is a dedicated connection between
|
1075
|
+
Google's network and your on-premises network.
|
1076
|
+
|
1077
|
+
To get more information about Interconnect, see:
|
1078
|
+
|
1079
|
+
* [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/interconnects)
|
1080
|
+
* How-to Guides
|
1081
|
+
* [Create a Dedicated Interconnect](https://cloud.google.com/network-connectivity/docs/interconnect/concepts/dedicated-overview)
|
1082
|
+
|
1083
|
+
## Example Usage
|
1084
|
+
|
1085
|
+
### Compute Interconnect Basic
|
1086
|
+
|
1087
|
+
```python
|
1088
|
+
import pulumi
|
1089
|
+
import pulumi_gcp as gcp
|
1090
|
+
|
1091
|
+
project = gcp.organizations.get_project()
|
1092
|
+
example_interconnect = gcp.compute.Interconnect("example-interconnect",
|
1093
|
+
name="example-interconnect",
|
1094
|
+
customer_name="example_customer",
|
1095
|
+
interconnect_type="DEDICATED",
|
1096
|
+
link_type="LINK_TYPE_ETHERNET_10G_LR",
|
1097
|
+
location=f"https://www.googleapis.com/compute/v1/projects/{project.name}/global/interconnectLocations/iad-zone1-1",
|
1098
|
+
requested_link_count=1)
|
1099
|
+
```
|
1100
|
+
|
1101
|
+
## Import
|
1102
|
+
|
1103
|
+
Interconnect can be imported using any of these accepted formats:
|
1104
|
+
|
1105
|
+
* `projects/{{project}}/global/interconnects/{{name}}`
|
1106
|
+
|
1107
|
+
* `{{project}}/{{name}}`
|
1108
|
+
|
1109
|
+
* `{{name}}`
|
1110
|
+
|
1111
|
+
When using the `pulumi import` command, Interconnect can be imported using one of the formats above. For example:
|
1112
|
+
|
1113
|
+
```sh
|
1114
|
+
$ pulumi import gcp:compute/interconnect:Interconnect default projects/{{project}}/global/interconnects/{{name}}
|
1115
|
+
```
|
1116
|
+
|
1117
|
+
```sh
|
1118
|
+
$ pulumi import gcp:compute/interconnect:Interconnect default {{project}}/{{name}}
|
1119
|
+
```
|
1120
|
+
|
1121
|
+
```sh
|
1122
|
+
$ pulumi import gcp:compute/interconnect:Interconnect default {{name}}
|
1123
|
+
```
|
1124
|
+
|
1125
|
+
:param str resource_name: The name of the resource.
|
1126
|
+
:param InterconnectArgs args: The arguments to use to populate this resource's properties.
|
1127
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
1128
|
+
"""
|
1129
|
+
...
|
1130
|
+
def __init__(__self__, resource_name: str, *args, **kwargs):
|
1131
|
+
resource_args, opts = _utilities.get_resource_args_opts(InterconnectArgs, pulumi.ResourceOptions, *args, **kwargs)
|
1132
|
+
if resource_args is not None:
|
1133
|
+
__self__._internal_init(resource_name, opts, **resource_args.__dict__)
|
1134
|
+
else:
|
1135
|
+
__self__._internal_init(resource_name, *args, **kwargs)
|
1136
|
+
|
1137
|
+
def _internal_init(__self__,
|
1138
|
+
resource_name: str,
|
1139
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
1140
|
+
admin_enabled: Optional[pulumi.Input[bool]] = None,
|
1141
|
+
customer_name: Optional[pulumi.Input[str]] = None,
|
1142
|
+
description: Optional[pulumi.Input[str]] = None,
|
1143
|
+
interconnect_type: Optional[pulumi.Input[str]] = None,
|
1144
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
1145
|
+
link_type: Optional[pulumi.Input[str]] = None,
|
1146
|
+
location: Optional[pulumi.Input[str]] = None,
|
1147
|
+
macsec: Optional[pulumi.Input[pulumi.InputType['InterconnectMacsecArgs']]] = None,
|
1148
|
+
macsec_enabled: Optional[pulumi.Input[bool]] = None,
|
1149
|
+
name: Optional[pulumi.Input[str]] = None,
|
1150
|
+
noc_contact_email: Optional[pulumi.Input[str]] = None,
|
1151
|
+
project: Optional[pulumi.Input[str]] = None,
|
1152
|
+
remote_location: Optional[pulumi.Input[str]] = None,
|
1153
|
+
requested_features: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
1154
|
+
requested_link_count: Optional[pulumi.Input[int]] = None,
|
1155
|
+
__props__=None):
|
1156
|
+
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
|
1157
|
+
if not isinstance(opts, pulumi.ResourceOptions):
|
1158
|
+
raise TypeError('Expected resource options to be a ResourceOptions instance')
|
1159
|
+
if opts.id is None:
|
1160
|
+
if __props__ is not None:
|
1161
|
+
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
|
1162
|
+
__props__ = InterconnectArgs.__new__(InterconnectArgs)
|
1163
|
+
|
1164
|
+
__props__.__dict__["admin_enabled"] = admin_enabled
|
1165
|
+
if customer_name is None and not opts.urn:
|
1166
|
+
raise TypeError("Missing required property 'customer_name'")
|
1167
|
+
__props__.__dict__["customer_name"] = customer_name
|
1168
|
+
__props__.__dict__["description"] = description
|
1169
|
+
if interconnect_type is None and not opts.urn:
|
1170
|
+
raise TypeError("Missing required property 'interconnect_type'")
|
1171
|
+
__props__.__dict__["interconnect_type"] = interconnect_type
|
1172
|
+
__props__.__dict__["labels"] = labels
|
1173
|
+
if link_type is None and not opts.urn:
|
1174
|
+
raise TypeError("Missing required property 'link_type'")
|
1175
|
+
__props__.__dict__["link_type"] = link_type
|
1176
|
+
if location is None and not opts.urn:
|
1177
|
+
raise TypeError("Missing required property 'location'")
|
1178
|
+
__props__.__dict__["location"] = location
|
1179
|
+
__props__.__dict__["macsec"] = macsec
|
1180
|
+
__props__.__dict__["macsec_enabled"] = macsec_enabled
|
1181
|
+
__props__.__dict__["name"] = name
|
1182
|
+
__props__.__dict__["noc_contact_email"] = noc_contact_email
|
1183
|
+
__props__.__dict__["project"] = project
|
1184
|
+
__props__.__dict__["remote_location"] = remote_location
|
1185
|
+
__props__.__dict__["requested_features"] = requested_features
|
1186
|
+
if requested_link_count is None and not opts.urn:
|
1187
|
+
raise TypeError("Missing required property 'requested_link_count'")
|
1188
|
+
__props__.__dict__["requested_link_count"] = requested_link_count
|
1189
|
+
__props__.__dict__["available_features"] = None
|
1190
|
+
__props__.__dict__["circuit_infos"] = None
|
1191
|
+
__props__.__dict__["creation_timestamp"] = None
|
1192
|
+
__props__.__dict__["effective_labels"] = None
|
1193
|
+
__props__.__dict__["expected_outages"] = None
|
1194
|
+
__props__.__dict__["google_ip_address"] = None
|
1195
|
+
__props__.__dict__["google_reference_id"] = None
|
1196
|
+
__props__.__dict__["interconnect_attachments"] = None
|
1197
|
+
__props__.__dict__["label_fingerprint"] = None
|
1198
|
+
__props__.__dict__["operational_status"] = None
|
1199
|
+
__props__.__dict__["peer_ip_address"] = None
|
1200
|
+
__props__.__dict__["provisioned_link_count"] = None
|
1201
|
+
__props__.__dict__["pulumi_labels"] = None
|
1202
|
+
__props__.__dict__["satisfies_pzs"] = None
|
1203
|
+
__props__.__dict__["state"] = None
|
1204
|
+
secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["effectiveLabels", "pulumiLabels"])
|
1205
|
+
opts = pulumi.ResourceOptions.merge(opts, secret_opts)
|
1206
|
+
super(Interconnect, __self__).__init__(
|
1207
|
+
'gcp:compute/interconnect:Interconnect',
|
1208
|
+
resource_name,
|
1209
|
+
__props__,
|
1210
|
+
opts)
|
1211
|
+
|
1212
|
+
@staticmethod
|
1213
|
+
def get(resource_name: str,
|
1214
|
+
id: pulumi.Input[str],
|
1215
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
1216
|
+
admin_enabled: Optional[pulumi.Input[bool]] = None,
|
1217
|
+
available_features: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
1218
|
+
circuit_infos: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['InterconnectCircuitInfoArgs']]]]] = None,
|
1219
|
+
creation_timestamp: Optional[pulumi.Input[str]] = None,
|
1220
|
+
customer_name: Optional[pulumi.Input[str]] = None,
|
1221
|
+
description: Optional[pulumi.Input[str]] = None,
|
1222
|
+
effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
1223
|
+
expected_outages: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['InterconnectExpectedOutageArgs']]]]] = None,
|
1224
|
+
google_ip_address: Optional[pulumi.Input[str]] = None,
|
1225
|
+
google_reference_id: Optional[pulumi.Input[str]] = None,
|
1226
|
+
interconnect_attachments: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
1227
|
+
interconnect_type: Optional[pulumi.Input[str]] = None,
|
1228
|
+
label_fingerprint: Optional[pulumi.Input[str]] = None,
|
1229
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
1230
|
+
link_type: Optional[pulumi.Input[str]] = None,
|
1231
|
+
location: Optional[pulumi.Input[str]] = None,
|
1232
|
+
macsec: Optional[pulumi.Input[pulumi.InputType['InterconnectMacsecArgs']]] = None,
|
1233
|
+
macsec_enabled: Optional[pulumi.Input[bool]] = None,
|
1234
|
+
name: Optional[pulumi.Input[str]] = None,
|
1235
|
+
noc_contact_email: Optional[pulumi.Input[str]] = None,
|
1236
|
+
operational_status: Optional[pulumi.Input[str]] = None,
|
1237
|
+
peer_ip_address: Optional[pulumi.Input[str]] = None,
|
1238
|
+
project: Optional[pulumi.Input[str]] = None,
|
1239
|
+
provisioned_link_count: Optional[pulumi.Input[int]] = None,
|
1240
|
+
pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
1241
|
+
remote_location: Optional[pulumi.Input[str]] = None,
|
1242
|
+
requested_features: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
1243
|
+
requested_link_count: Optional[pulumi.Input[int]] = None,
|
1244
|
+
satisfies_pzs: Optional[pulumi.Input[bool]] = None,
|
1245
|
+
state: Optional[pulumi.Input[str]] = None) -> 'Interconnect':
|
1246
|
+
"""
|
1247
|
+
Get an existing Interconnect resource's state with the given name, id, and optional extra
|
1248
|
+
properties used to qualify the lookup.
|
1249
|
+
|
1250
|
+
:param str resource_name: The unique name of the resulting resource.
|
1251
|
+
:param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
|
1252
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
1253
|
+
:param pulumi.Input[bool] admin_enabled: Administrative status of the interconnect. When this is set to true, the Interconnect is
|
1254
|
+
functional and can carry traffic. When set to false, no packets can be carried over the
|
1255
|
+
interconnect and no BGP routes are exchanged over it. By default, the status is set to true.
|
1256
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] available_features: interconnects.list of features available for this Interconnect connection. Can take the value:
|
1257
|
+
MACSEC. If present then the Interconnect connection is provisioned on MACsec capable hardware
|
1258
|
+
ports. If not present then the Interconnect connection is provisioned on non-MACsec capable
|
1259
|
+
ports and MACsec isn't supported and enabling MACsec fails).
|
1260
|
+
:param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['InterconnectCircuitInfoArgs']]]] circuit_infos: A list of CircuitInfo objects, that describe the individual circuits in this LAG.
|
1261
|
+
Structure is documented below.
|
1262
|
+
:param pulumi.Input[str] creation_timestamp: Creation timestamp in RFC3339 text format.
|
1263
|
+
:param pulumi.Input[str] customer_name: Customer name, to put in the Letter of Authorization as the party authorized to request a
|
1264
|
+
crossconnect.
|
1265
|
+
|
1266
|
+
|
1267
|
+
- - -
|
1268
|
+
:param pulumi.Input[str] description: An optional description of this resource. Provide this property when you create the resource.
|
1269
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
|
1270
|
+
:param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['InterconnectExpectedOutageArgs']]]] expected_outages: A list of outages expected for this Interconnect.
|
1271
|
+
Structure is documented below.
|
1272
|
+
:param pulumi.Input[str] google_ip_address: IP address configured on the Google side of the Interconnect link.
|
1273
|
+
This can be used only for ping tests.
|
1274
|
+
:param pulumi.Input[str] google_reference_id: Google reference ID to be used when raising support tickets with Google or otherwise to debug
|
1275
|
+
backend connectivity issues.
|
1276
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] interconnect_attachments: A list of the URLs of all InterconnectAttachments configured to use this Interconnect.
|
1277
|
+
:param pulumi.Input[str] interconnect_type: Type of interconnect. Note that a value IT_PRIVATE has been deprecated in favor of DEDICATED.
|
1278
|
+
Can take one of the following values:
|
1279
|
+
- PARTNER: A partner-managed interconnection shared between customers though a partner.
|
1280
|
+
- DEDICATED: A dedicated physical interconnection with the customer.
|
1281
|
+
Possible values are: `DEDICATED`, `PARTNER`, `IT_PRIVATE`.
|
1282
|
+
:param pulumi.Input[str] label_fingerprint: A fingerprint for the labels being applied to this Interconnect, which is essentially a hash
|
1283
|
+
of the labels set used for optimistic locking. The fingerprint is initially generated by
|
1284
|
+
Compute Engine and changes after every request to modify or update labels.
|
1285
|
+
You must always provide an up-to-date fingerprint hash in order to update or change labels,
|
1286
|
+
otherwise the request will fail with error 412 conditionNotMet.
|
1287
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels for this resource. These can only be added or modified by the setLabels
|
1288
|
+
method. Each label key/value pair must comply with RFC1035. Label values may be empty.
|
1289
|
+
|
1290
|
+
**Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
|
1291
|
+
Please refer to the field `effective_labels` for all of the labels present on the resource.
|
1292
|
+
:param pulumi.Input[str] link_type: Type of link requested. Note that this field indicates the speed of each of the links in the
|
1293
|
+
bundle, not the speed of the entire bundle. Can take one of the following values:
|
1294
|
+
- LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics.
|
1295
|
+
- LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics.
|
1296
|
+
Possible values are: `LINK_TYPE_ETHERNET_10G_LR`, `LINK_TYPE_ETHERNET_100G_LR`.
|
1297
|
+
:param pulumi.Input[str] location: URL of the InterconnectLocation object that represents where this connection is to be provisioned.
|
1298
|
+
:param pulumi.Input[pulumi.InputType['InterconnectMacsecArgs']] macsec: Configuration that enables Media Access Control security (MACsec) on the Cloud
|
1299
|
+
Interconnect connection between Google and your on-premises router.
|
1300
|
+
Structure is documented below.
|
1301
|
+
:param pulumi.Input[bool] macsec_enabled: Enable or disable MACsec on this Interconnect connection.
|
1302
|
+
MACsec enablement fails if the MACsec object is not specified.
|
1303
|
+
:param pulumi.Input[str] name: Name of the resource. Provided by the client when the resource is created. The name must be
|
1304
|
+
1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters
|
1305
|
+
long and match the regular expression `a-z?` which means the first
|
1306
|
+
character must be a lowercase letter, and all following characters must be a dash,
|
1307
|
+
lowercase letter, or digit, except the last character, which cannot be a dash.
|
1308
|
+
:param pulumi.Input[str] noc_contact_email: Email address to contact the customer NOC for operations and maintenance notifications
|
1309
|
+
regarding this Interconnect. If specified, this will be used for notifications in addition to
|
1310
|
+
all other forms described, such as Cloud Monitoring logs alerting and Cloud Notifications.
|
1311
|
+
This field is required for users who sign up for Cloud Interconnect using workforce identity
|
1312
|
+
federation.
|
1313
|
+
:param pulumi.Input[str] operational_status: The current status of this Interconnect's functionality, which can take one of the following values:
|
1314
|
+
- OS_ACTIVE: A valid Interconnect, which is turned up and is ready to use. Attachments may
|
1315
|
+
be provisioned on this Interconnect.
|
1316
|
+
- OS_UNPROVISIONED: An Interconnect that has not completed turnup. No attachments may be
|
1317
|
+
provisioned on this Interconnect.
|
1318
|
+
- OS_UNDER_MAINTENANCE: An Interconnect that is undergoing internal maintenance. No
|
1319
|
+
attachments may be provisioned or updated on this Interconnect.
|
1320
|
+
:param pulumi.Input[str] peer_ip_address: IP address configured on the customer side of the Interconnect link.
|
1321
|
+
The customer should configure this IP address during turnup when prompted by Google NOC.
|
1322
|
+
This can be used only for ping tests.
|
1323
|
+
:param pulumi.Input[str] project: The ID of the project in which the resource belongs.
|
1324
|
+
If it is not provided, the provider project is used.
|
1325
|
+
:param pulumi.Input[int] provisioned_link_count: Number of links actually provisioned in this interconnect.
|
1326
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
|
1327
|
+
and default labels configured on the provider.
|
1328
|
+
:param pulumi.Input[str] remote_location: Indicates that this is a Cross-Cloud Interconnect. This field specifies the location outside
|
1329
|
+
of Google's network that the interconnect is connected to.
|
1330
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] requested_features: interconnects.list of features requested for this Interconnect connection. Options: MACSEC (
|
1331
|
+
If specified then the connection is created on MACsec capable hardware ports. If not
|
1332
|
+
specified, the default value is false, which allocates non-MACsec capable ports first if
|
1333
|
+
available).
|
1334
|
+
Each value may be one of: `MACSEC`.
|
1335
|
+
:param pulumi.Input[int] requested_link_count: Target number of physical links in the link bundle, as requested by the customer.
|
1336
|
+
:param pulumi.Input[bool] satisfies_pzs: Reserved for future use.
|
1337
|
+
:param pulumi.Input[str] state: (Output)
|
1338
|
+
State of this notification. Note that the versions of this enum prefixed with "NS_" have
|
1339
|
+
been deprecated in favor of the unprefixed values. Can take one of the following values:
|
1340
|
+
- ACTIVE: This outage notification is active. The event could be in the past, present,
|
1341
|
+
or future. See startTime and endTime for scheduling.
|
1342
|
+
- CANCELLED: The outage associated with this notification was cancelled before the
|
1343
|
+
outage was due to start.
|
1344
|
+
- COMPLETED: The outage associated with this notification is complete.
|
1345
|
+
"""
|
1346
|
+
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
|
1347
|
+
|
1348
|
+
__props__ = _InterconnectState.__new__(_InterconnectState)
|
1349
|
+
|
1350
|
+
__props__.__dict__["admin_enabled"] = admin_enabled
|
1351
|
+
__props__.__dict__["available_features"] = available_features
|
1352
|
+
__props__.__dict__["circuit_infos"] = circuit_infos
|
1353
|
+
__props__.__dict__["creation_timestamp"] = creation_timestamp
|
1354
|
+
__props__.__dict__["customer_name"] = customer_name
|
1355
|
+
__props__.__dict__["description"] = description
|
1356
|
+
__props__.__dict__["effective_labels"] = effective_labels
|
1357
|
+
__props__.__dict__["expected_outages"] = expected_outages
|
1358
|
+
__props__.__dict__["google_ip_address"] = google_ip_address
|
1359
|
+
__props__.__dict__["google_reference_id"] = google_reference_id
|
1360
|
+
__props__.__dict__["interconnect_attachments"] = interconnect_attachments
|
1361
|
+
__props__.__dict__["interconnect_type"] = interconnect_type
|
1362
|
+
__props__.__dict__["label_fingerprint"] = label_fingerprint
|
1363
|
+
__props__.__dict__["labels"] = labels
|
1364
|
+
__props__.__dict__["link_type"] = link_type
|
1365
|
+
__props__.__dict__["location"] = location
|
1366
|
+
__props__.__dict__["macsec"] = macsec
|
1367
|
+
__props__.__dict__["macsec_enabled"] = macsec_enabled
|
1368
|
+
__props__.__dict__["name"] = name
|
1369
|
+
__props__.__dict__["noc_contact_email"] = noc_contact_email
|
1370
|
+
__props__.__dict__["operational_status"] = operational_status
|
1371
|
+
__props__.__dict__["peer_ip_address"] = peer_ip_address
|
1372
|
+
__props__.__dict__["project"] = project
|
1373
|
+
__props__.__dict__["provisioned_link_count"] = provisioned_link_count
|
1374
|
+
__props__.__dict__["pulumi_labels"] = pulumi_labels
|
1375
|
+
__props__.__dict__["remote_location"] = remote_location
|
1376
|
+
__props__.__dict__["requested_features"] = requested_features
|
1377
|
+
__props__.__dict__["requested_link_count"] = requested_link_count
|
1378
|
+
__props__.__dict__["satisfies_pzs"] = satisfies_pzs
|
1379
|
+
__props__.__dict__["state"] = state
|
1380
|
+
return Interconnect(resource_name, opts=opts, __props__=__props__)
|
1381
|
+
|
1382
|
+
@property
|
1383
|
+
@pulumi.getter(name="adminEnabled")
|
1384
|
+
def admin_enabled(self) -> pulumi.Output[Optional[bool]]:
|
1385
|
+
"""
|
1386
|
+
Administrative status of the interconnect. When this is set to true, the Interconnect is
|
1387
|
+
functional and can carry traffic. When set to false, no packets can be carried over the
|
1388
|
+
interconnect and no BGP routes are exchanged over it. By default, the status is set to true.
|
1389
|
+
"""
|
1390
|
+
return pulumi.get(self, "admin_enabled")
|
1391
|
+
|
1392
|
+
@property
|
1393
|
+
@pulumi.getter(name="availableFeatures")
|
1394
|
+
def available_features(self) -> pulumi.Output[Sequence[str]]:
|
1395
|
+
"""
|
1396
|
+
interconnects.list of features available for this Interconnect connection. Can take the value:
|
1397
|
+
MACSEC. If present then the Interconnect connection is provisioned on MACsec capable hardware
|
1398
|
+
ports. If not present then the Interconnect connection is provisioned on non-MACsec capable
|
1399
|
+
ports and MACsec isn't supported and enabling MACsec fails).
|
1400
|
+
"""
|
1401
|
+
return pulumi.get(self, "available_features")
|
1402
|
+
|
1403
|
+
@property
|
1404
|
+
@pulumi.getter(name="circuitInfos")
|
1405
|
+
def circuit_infos(self) -> pulumi.Output[Sequence['outputs.InterconnectCircuitInfo']]:
|
1406
|
+
"""
|
1407
|
+
A list of CircuitInfo objects, that describe the individual circuits in this LAG.
|
1408
|
+
Structure is documented below.
|
1409
|
+
"""
|
1410
|
+
return pulumi.get(self, "circuit_infos")
|
1411
|
+
|
1412
|
+
@property
|
1413
|
+
@pulumi.getter(name="creationTimestamp")
|
1414
|
+
def creation_timestamp(self) -> pulumi.Output[str]:
|
1415
|
+
"""
|
1416
|
+
Creation timestamp in RFC3339 text format.
|
1417
|
+
"""
|
1418
|
+
return pulumi.get(self, "creation_timestamp")
|
1419
|
+
|
1420
|
+
@property
|
1421
|
+
@pulumi.getter(name="customerName")
|
1422
|
+
def customer_name(self) -> pulumi.Output[str]:
|
1423
|
+
"""
|
1424
|
+
Customer name, to put in the Letter of Authorization as the party authorized to request a
|
1425
|
+
crossconnect.
|
1426
|
+
|
1427
|
+
|
1428
|
+
- - -
|
1429
|
+
"""
|
1430
|
+
return pulumi.get(self, "customer_name")
|
1431
|
+
|
1432
|
+
@property
|
1433
|
+
@pulumi.getter
|
1434
|
+
def description(self) -> pulumi.Output[Optional[str]]:
|
1435
|
+
"""
|
1436
|
+
An optional description of this resource. Provide this property when you create the resource.
|
1437
|
+
"""
|
1438
|
+
return pulumi.get(self, "description")
|
1439
|
+
|
1440
|
+
@property
|
1441
|
+
@pulumi.getter(name="effectiveLabels")
|
1442
|
+
def effective_labels(self) -> pulumi.Output[Mapping[str, str]]:
|
1443
|
+
"""
|
1444
|
+
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
|
1445
|
+
"""
|
1446
|
+
return pulumi.get(self, "effective_labels")
|
1447
|
+
|
1448
|
+
@property
|
1449
|
+
@pulumi.getter(name="expectedOutages")
|
1450
|
+
def expected_outages(self) -> pulumi.Output[Sequence['outputs.InterconnectExpectedOutage']]:
|
1451
|
+
"""
|
1452
|
+
A list of outages expected for this Interconnect.
|
1453
|
+
Structure is documented below.
|
1454
|
+
"""
|
1455
|
+
return pulumi.get(self, "expected_outages")
|
1456
|
+
|
1457
|
+
@property
|
1458
|
+
@pulumi.getter(name="googleIpAddress")
|
1459
|
+
def google_ip_address(self) -> pulumi.Output[str]:
|
1460
|
+
"""
|
1461
|
+
IP address configured on the Google side of the Interconnect link.
|
1462
|
+
This can be used only for ping tests.
|
1463
|
+
"""
|
1464
|
+
return pulumi.get(self, "google_ip_address")
|
1465
|
+
|
1466
|
+
@property
|
1467
|
+
@pulumi.getter(name="googleReferenceId")
|
1468
|
+
def google_reference_id(self) -> pulumi.Output[str]:
|
1469
|
+
"""
|
1470
|
+
Google reference ID to be used when raising support tickets with Google or otherwise to debug
|
1471
|
+
backend connectivity issues.
|
1472
|
+
"""
|
1473
|
+
return pulumi.get(self, "google_reference_id")
|
1474
|
+
|
1475
|
+
@property
|
1476
|
+
@pulumi.getter(name="interconnectAttachments")
|
1477
|
+
def interconnect_attachments(self) -> pulumi.Output[Sequence[str]]:
|
1478
|
+
"""
|
1479
|
+
A list of the URLs of all InterconnectAttachments configured to use this Interconnect.
|
1480
|
+
"""
|
1481
|
+
return pulumi.get(self, "interconnect_attachments")
|
1482
|
+
|
1483
|
+
@property
|
1484
|
+
@pulumi.getter(name="interconnectType")
|
1485
|
+
def interconnect_type(self) -> pulumi.Output[str]:
|
1486
|
+
"""
|
1487
|
+
Type of interconnect. Note that a value IT_PRIVATE has been deprecated in favor of DEDICATED.
|
1488
|
+
Can take one of the following values:
|
1489
|
+
- PARTNER: A partner-managed interconnection shared between customers though a partner.
|
1490
|
+
- DEDICATED: A dedicated physical interconnection with the customer.
|
1491
|
+
Possible values are: `DEDICATED`, `PARTNER`, `IT_PRIVATE`.
|
1492
|
+
"""
|
1493
|
+
return pulumi.get(self, "interconnect_type")
|
1494
|
+
|
1495
|
+
@property
|
1496
|
+
@pulumi.getter(name="labelFingerprint")
|
1497
|
+
def label_fingerprint(self) -> pulumi.Output[str]:
|
1498
|
+
"""
|
1499
|
+
A fingerprint for the labels being applied to this Interconnect, which is essentially a hash
|
1500
|
+
of the labels set used for optimistic locking. The fingerprint is initially generated by
|
1501
|
+
Compute Engine and changes after every request to modify or update labels.
|
1502
|
+
You must always provide an up-to-date fingerprint hash in order to update or change labels,
|
1503
|
+
otherwise the request will fail with error 412 conditionNotMet.
|
1504
|
+
"""
|
1505
|
+
return pulumi.get(self, "label_fingerprint")
|
1506
|
+
|
1507
|
+
@property
|
1508
|
+
@pulumi.getter
|
1509
|
+
def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
|
1510
|
+
"""
|
1511
|
+
Labels for this resource. These can only be added or modified by the setLabels
|
1512
|
+
method. Each label key/value pair must comply with RFC1035. Label values may be empty.
|
1513
|
+
|
1514
|
+
**Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
|
1515
|
+
Please refer to the field `effective_labels` for all of the labels present on the resource.
|
1516
|
+
"""
|
1517
|
+
return pulumi.get(self, "labels")
|
1518
|
+
|
1519
|
+
@property
|
1520
|
+
@pulumi.getter(name="linkType")
|
1521
|
+
def link_type(self) -> pulumi.Output[str]:
|
1522
|
+
"""
|
1523
|
+
Type of link requested. Note that this field indicates the speed of each of the links in the
|
1524
|
+
bundle, not the speed of the entire bundle. Can take one of the following values:
|
1525
|
+
- LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics.
|
1526
|
+
- LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics.
|
1527
|
+
Possible values are: `LINK_TYPE_ETHERNET_10G_LR`, `LINK_TYPE_ETHERNET_100G_LR`.
|
1528
|
+
"""
|
1529
|
+
return pulumi.get(self, "link_type")
|
1530
|
+
|
1531
|
+
@property
|
1532
|
+
@pulumi.getter
|
1533
|
+
def location(self) -> pulumi.Output[str]:
|
1534
|
+
"""
|
1535
|
+
URL of the InterconnectLocation object that represents where this connection is to be provisioned.
|
1536
|
+
"""
|
1537
|
+
return pulumi.get(self, "location")
|
1538
|
+
|
1539
|
+
@property
|
1540
|
+
@pulumi.getter
|
1541
|
+
def macsec(self) -> pulumi.Output[Optional['outputs.InterconnectMacsec']]:
|
1542
|
+
"""
|
1543
|
+
Configuration that enables Media Access Control security (MACsec) on the Cloud
|
1544
|
+
Interconnect connection between Google and your on-premises router.
|
1545
|
+
Structure is documented below.
|
1546
|
+
"""
|
1547
|
+
return pulumi.get(self, "macsec")
|
1548
|
+
|
1549
|
+
@property
|
1550
|
+
@pulumi.getter(name="macsecEnabled")
|
1551
|
+
def macsec_enabled(self) -> pulumi.Output[Optional[bool]]:
|
1552
|
+
"""
|
1553
|
+
Enable or disable MACsec on this Interconnect connection.
|
1554
|
+
MACsec enablement fails if the MACsec object is not specified.
|
1555
|
+
"""
|
1556
|
+
return pulumi.get(self, "macsec_enabled")
|
1557
|
+
|
1558
|
+
@property
|
1559
|
+
@pulumi.getter
|
1560
|
+
def name(self) -> pulumi.Output[str]:
|
1561
|
+
"""
|
1562
|
+
Name of the resource. Provided by the client when the resource is created. The name must be
|
1563
|
+
1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters
|
1564
|
+
long and match the regular expression `a-z?` which means the first
|
1565
|
+
character must be a lowercase letter, and all following characters must be a dash,
|
1566
|
+
lowercase letter, or digit, except the last character, which cannot be a dash.
|
1567
|
+
"""
|
1568
|
+
return pulumi.get(self, "name")
|
1569
|
+
|
1570
|
+
@property
|
1571
|
+
@pulumi.getter(name="nocContactEmail")
|
1572
|
+
def noc_contact_email(self) -> pulumi.Output[Optional[str]]:
|
1573
|
+
"""
|
1574
|
+
Email address to contact the customer NOC for operations and maintenance notifications
|
1575
|
+
regarding this Interconnect. If specified, this will be used for notifications in addition to
|
1576
|
+
all other forms described, such as Cloud Monitoring logs alerting and Cloud Notifications.
|
1577
|
+
This field is required for users who sign up for Cloud Interconnect using workforce identity
|
1578
|
+
federation.
|
1579
|
+
"""
|
1580
|
+
return pulumi.get(self, "noc_contact_email")
|
1581
|
+
|
1582
|
+
@property
|
1583
|
+
@pulumi.getter(name="operationalStatus")
|
1584
|
+
def operational_status(self) -> pulumi.Output[str]:
|
1585
|
+
"""
|
1586
|
+
The current status of this Interconnect's functionality, which can take one of the following values:
|
1587
|
+
- OS_ACTIVE: A valid Interconnect, which is turned up and is ready to use. Attachments may
|
1588
|
+
be provisioned on this Interconnect.
|
1589
|
+
- OS_UNPROVISIONED: An Interconnect that has not completed turnup. No attachments may be
|
1590
|
+
provisioned on this Interconnect.
|
1591
|
+
- OS_UNDER_MAINTENANCE: An Interconnect that is undergoing internal maintenance. No
|
1592
|
+
attachments may be provisioned or updated on this Interconnect.
|
1593
|
+
"""
|
1594
|
+
return pulumi.get(self, "operational_status")
|
1595
|
+
|
1596
|
+
@property
|
1597
|
+
@pulumi.getter(name="peerIpAddress")
|
1598
|
+
def peer_ip_address(self) -> pulumi.Output[str]:
|
1599
|
+
"""
|
1600
|
+
IP address configured on the customer side of the Interconnect link.
|
1601
|
+
The customer should configure this IP address during turnup when prompted by Google NOC.
|
1602
|
+
This can be used only for ping tests.
|
1603
|
+
"""
|
1604
|
+
return pulumi.get(self, "peer_ip_address")
|
1605
|
+
|
1606
|
+
@property
|
1607
|
+
@pulumi.getter
|
1608
|
+
def project(self) -> pulumi.Output[str]:
|
1609
|
+
"""
|
1610
|
+
The ID of the project in which the resource belongs.
|
1611
|
+
If it is not provided, the provider project is used.
|
1612
|
+
"""
|
1613
|
+
return pulumi.get(self, "project")
|
1614
|
+
|
1615
|
+
@property
|
1616
|
+
@pulumi.getter(name="provisionedLinkCount")
|
1617
|
+
def provisioned_link_count(self) -> pulumi.Output[int]:
|
1618
|
+
"""
|
1619
|
+
Number of links actually provisioned in this interconnect.
|
1620
|
+
"""
|
1621
|
+
return pulumi.get(self, "provisioned_link_count")
|
1622
|
+
|
1623
|
+
@property
|
1624
|
+
@pulumi.getter(name="pulumiLabels")
|
1625
|
+
def pulumi_labels(self) -> pulumi.Output[Mapping[str, str]]:
|
1626
|
+
"""
|
1627
|
+
The combination of labels configured directly on the resource
|
1628
|
+
and default labels configured on the provider.
|
1629
|
+
"""
|
1630
|
+
return pulumi.get(self, "pulumi_labels")
|
1631
|
+
|
1632
|
+
@property
|
1633
|
+
@pulumi.getter(name="remoteLocation")
|
1634
|
+
def remote_location(self) -> pulumi.Output[Optional[str]]:
|
1635
|
+
"""
|
1636
|
+
Indicates that this is a Cross-Cloud Interconnect. This field specifies the location outside
|
1637
|
+
of Google's network that the interconnect is connected to.
|
1638
|
+
"""
|
1639
|
+
return pulumi.get(self, "remote_location")
|
1640
|
+
|
1641
|
+
@property
|
1642
|
+
@pulumi.getter(name="requestedFeatures")
|
1643
|
+
def requested_features(self) -> pulumi.Output[Optional[Sequence[str]]]:
|
1644
|
+
"""
|
1645
|
+
interconnects.list of features requested for this Interconnect connection. Options: MACSEC (
|
1646
|
+
If specified then the connection is created on MACsec capable hardware ports. If not
|
1647
|
+
specified, the default value is false, which allocates non-MACsec capable ports first if
|
1648
|
+
available).
|
1649
|
+
Each value may be one of: `MACSEC`.
|
1650
|
+
"""
|
1651
|
+
return pulumi.get(self, "requested_features")
|
1652
|
+
|
1653
|
+
@property
|
1654
|
+
@pulumi.getter(name="requestedLinkCount")
|
1655
|
+
def requested_link_count(self) -> pulumi.Output[int]:
|
1656
|
+
"""
|
1657
|
+
Target number of physical links in the link bundle, as requested by the customer.
|
1658
|
+
"""
|
1659
|
+
return pulumi.get(self, "requested_link_count")
|
1660
|
+
|
1661
|
+
@property
|
1662
|
+
@pulumi.getter(name="satisfiesPzs")
|
1663
|
+
def satisfies_pzs(self) -> pulumi.Output[bool]:
|
1664
|
+
"""
|
1665
|
+
Reserved for future use.
|
1666
|
+
"""
|
1667
|
+
return pulumi.get(self, "satisfies_pzs")
|
1668
|
+
|
1669
|
+
@property
|
1670
|
+
@pulumi.getter
|
1671
|
+
def state(self) -> pulumi.Output[str]:
|
1672
|
+
"""
|
1673
|
+
(Output)
|
1674
|
+
State of this notification. Note that the versions of this enum prefixed with "NS_" have
|
1675
|
+
been deprecated in favor of the unprefixed values. Can take one of the following values:
|
1676
|
+
- ACTIVE: This outage notification is active. The event could be in the past, present,
|
1677
|
+
or future. See startTime and endTime for scheduling.
|
1678
|
+
- CANCELLED: The outage associated with this notification was cancelled before the
|
1679
|
+
outage was due to start.
|
1680
|
+
- COMPLETED: The outage associated with this notification is complete.
|
1681
|
+
"""
|
1682
|
+
return pulumi.get(self, "state")
|
1683
|
+
|