pulumi-gcp 7.24.0a1716510380__py3-none-any.whl → 7.24.0a1716588893__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.
Files changed (317) hide show
  1. pulumi_gcp/__init__.py +16 -0
  2. pulumi_gcp/accesscontextmanager/access_policy_iam_binding.py +12 -12
  3. pulumi_gcp/accesscontextmanager/access_policy_iam_member.py +12 -12
  4. pulumi_gcp/accesscontextmanager/access_policy_iam_policy.py +12 -12
  5. pulumi_gcp/apigateway/api_config_iam_binding.py +8 -8
  6. pulumi_gcp/apigateway/api_config_iam_member.py +8 -8
  7. pulumi_gcp/apigateway/api_config_iam_policy.py +8 -8
  8. pulumi_gcp/apigateway/api_iam_binding.py +8 -8
  9. pulumi_gcp/apigateway/api_iam_member.py +8 -8
  10. pulumi_gcp/apigateway/api_iam_policy.py +8 -8
  11. pulumi_gcp/apigateway/gateway_iam_binding.py +8 -8
  12. pulumi_gcp/apigateway/gateway_iam_member.py +8 -8
  13. pulumi_gcp/apigateway/gateway_iam_policy.py +8 -8
  14. pulumi_gcp/apigee/environment_iam_binding.py +12 -12
  15. pulumi_gcp/apigee/environment_iam_member.py +12 -12
  16. pulumi_gcp/apigee/environment_iam_policy.py +12 -12
  17. pulumi_gcp/artifactregistry/repository_iam_binding.py +12 -12
  18. pulumi_gcp/artifactregistry/repository_iam_member.py +12 -12
  19. pulumi_gcp/artifactregistry/repository_iam_policy.py +12 -12
  20. pulumi_gcp/bigquery/connection.py +126 -0
  21. pulumi_gcp/bigquery/connection_iam_binding.py +12 -12
  22. pulumi_gcp/bigquery/connection_iam_member.py +12 -12
  23. pulumi_gcp/bigquery/connection_iam_policy.py +12 -12
  24. pulumi_gcp/bigquery/dataset_iam_binding.py +12 -12
  25. pulumi_gcp/bigquery/dataset_iam_member.py +12 -12
  26. pulumi_gcp/bigquery/dataset_iam_policy.py +12 -12
  27. pulumi_gcp/bigquery/iam_binding.py +12 -12
  28. pulumi_gcp/bigquery/iam_member.py +12 -12
  29. pulumi_gcp/bigquery/iam_policy.py +12 -12
  30. pulumi_gcp/bigquery/routine.py +2 -2
  31. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_binding.py +12 -12
  32. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_member.py +12 -12
  33. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_policy.py +12 -12
  34. pulumi_gcp/bigqueryanalyticshub/listing_iam_binding.py +12 -12
  35. pulumi_gcp/bigqueryanalyticshub/listing_iam_member.py +12 -12
  36. pulumi_gcp/bigqueryanalyticshub/listing_iam_policy.py +12 -12
  37. pulumi_gcp/bigquerydatapolicy/data_policy_iam_binding.py +12 -12
  38. pulumi_gcp/bigquerydatapolicy/data_policy_iam_member.py +12 -12
  39. pulumi_gcp/bigquerydatapolicy/data_policy_iam_policy.py +12 -12
  40. pulumi_gcp/bigtable/instance_iam_binding.py +12 -12
  41. pulumi_gcp/bigtable/instance_iam_member.py +12 -12
  42. pulumi_gcp/bigtable/instance_iam_policy.py +12 -12
  43. pulumi_gcp/bigtable/table_iam_binding.py +12 -12
  44. pulumi_gcp/bigtable/table_iam_member.py +12 -12
  45. pulumi_gcp/bigtable/table_iam_policy.py +12 -12
  46. pulumi_gcp/billing/account_iam_binding.py +12 -12
  47. pulumi_gcp/billing/account_iam_member.py +12 -12
  48. pulumi_gcp/billing/account_iam_policy.py +12 -12
  49. pulumi_gcp/billing/project_info.py +4 -4
  50. pulumi_gcp/binaryauthorization/attestor_iam_binding.py +12 -12
  51. pulumi_gcp/binaryauthorization/attestor_iam_member.py +12 -12
  52. pulumi_gcp/binaryauthorization/attestor_iam_policy.py +12 -12
  53. pulumi_gcp/certificateauthority/ca_pool_iam_binding.py +12 -12
  54. pulumi_gcp/certificateauthority/ca_pool_iam_member.py +12 -12
  55. pulumi_gcp/certificateauthority/ca_pool_iam_policy.py +12 -12
  56. pulumi_gcp/certificateauthority/certificate_template_iam_binding.py +12 -12
  57. pulumi_gcp/certificateauthority/certificate_template_iam_member.py +12 -12
  58. pulumi_gcp/certificateauthority/certificate_template_iam_policy.py +12 -12
  59. pulumi_gcp/cloudasset/__init__.py +1 -0
  60. pulumi_gcp/cloudasset/get_search_all_resources.py +197 -0
  61. pulumi_gcp/cloudasset/outputs.py +184 -0
  62. pulumi_gcp/cloudbuildv2/connection_iam_binding.py +12 -12
  63. pulumi_gcp/cloudbuildv2/connection_iam_member.py +12 -12
  64. pulumi_gcp/cloudbuildv2/connection_iam_policy.py +12 -12
  65. pulumi_gcp/cloudfunctions/function_iam_binding.py +12 -12
  66. pulumi_gcp/cloudfunctions/function_iam_member.py +12 -12
  67. pulumi_gcp/cloudfunctions/function_iam_policy.py +12 -12
  68. pulumi_gcp/cloudfunctionsv2/function_iam_binding.py +12 -12
  69. pulumi_gcp/cloudfunctionsv2/function_iam_member.py +12 -12
  70. pulumi_gcp/cloudfunctionsv2/function_iam_policy.py +12 -12
  71. pulumi_gcp/cloudrun/iam_binding.py +12 -12
  72. pulumi_gcp/cloudrun/iam_member.py +12 -12
  73. pulumi_gcp/cloudrun/iam_policy.py +12 -12
  74. pulumi_gcp/cloudrunv2/job_iam_binding.py +12 -12
  75. pulumi_gcp/cloudrunv2/job_iam_member.py +12 -12
  76. pulumi_gcp/cloudrunv2/job_iam_policy.py +12 -12
  77. pulumi_gcp/cloudrunv2/service_iam_binding.py +12 -12
  78. pulumi_gcp/cloudrunv2/service_iam_member.py +12 -12
  79. pulumi_gcp/cloudrunv2/service_iam_policy.py +12 -12
  80. pulumi_gcp/cloudtasks/queue_iam_binding.py +12 -12
  81. pulumi_gcp/cloudtasks/queue_iam_member.py +12 -12
  82. pulumi_gcp/cloudtasks/queue_iam_policy.py +12 -12
  83. pulumi_gcp/compute/__init__.py +1 -0
  84. pulumi_gcp/compute/_inputs.py +401 -0
  85. pulumi_gcp/compute/disk_iam_binding.py +12 -12
  86. pulumi_gcp/compute/disk_iam_member.py +12 -12
  87. pulumi_gcp/compute/disk_iam_policy.py +12 -12
  88. pulumi_gcp/compute/forwarding_rule.py +6 -6
  89. pulumi_gcp/compute/get_network_endpoint_group.py +2 -2
  90. pulumi_gcp/compute/get_region_network_endpoint_group.py +2 -2
  91. pulumi_gcp/compute/get_router_nat.py +11 -1
  92. pulumi_gcp/compute/get_snapshot.py +2 -0
  93. pulumi_gcp/compute/image_iam_binding.py +12 -12
  94. pulumi_gcp/compute/image_iam_member.py +12 -12
  95. pulumi_gcp/compute/image_iam_policy.py +12 -12
  96. pulumi_gcp/compute/instance_iam_binding.py +12 -12
  97. pulumi_gcp/compute/instance_iam_member.py +12 -12
  98. pulumi_gcp/compute/instance_iam_policy.py +12 -12
  99. pulumi_gcp/compute/interconnect.py +1683 -0
  100. pulumi_gcp/compute/machine_image_iam_binding.py +8 -8
  101. pulumi_gcp/compute/machine_image_iam_member.py +8 -8
  102. pulumi_gcp/compute/machine_image_iam_policy.py +8 -8
  103. pulumi_gcp/compute/outputs.py +413 -0
  104. pulumi_gcp/compute/region_disk_iam_binding.py +12 -12
  105. pulumi_gcp/compute/region_disk_iam_member.py +12 -12
  106. pulumi_gcp/compute/region_disk_iam_policy.py +12 -12
  107. pulumi_gcp/compute/router_nat.py +68 -0
  108. pulumi_gcp/compute/snapshot_iam_binding.py +12 -12
  109. pulumi_gcp/compute/snapshot_iam_member.py +12 -12
  110. pulumi_gcp/compute/snapshot_iam_policy.py +12 -12
  111. pulumi_gcp/compute/subnetwork_iam_binding.py +12 -12
  112. pulumi_gcp/compute/subnetwork_iam_member.py +12 -12
  113. pulumi_gcp/compute/subnetwork_iam_policy.py +12 -12
  114. pulumi_gcp/compute/target_instance.py +4 -4
  115. pulumi_gcp/compute/target_pool.py +21 -21
  116. pulumi_gcp/container/_inputs.py +2 -2
  117. pulumi_gcp/container/outputs.py +4 -4
  118. pulumi_gcp/containeranalysis/note_iam_binding.py +12 -12
  119. pulumi_gcp/containeranalysis/note_iam_member.py +12 -12
  120. pulumi_gcp/containeranalysis/note_iam_policy.py +12 -12
  121. pulumi_gcp/databasemigrationservice/connection_profile.py +6 -6
  122. pulumi_gcp/datacatalog/entry_group_iam_binding.py +12 -12
  123. pulumi_gcp/datacatalog/entry_group_iam_member.py +12 -12
  124. pulumi_gcp/datacatalog/entry_group_iam_policy.py +12 -12
  125. pulumi_gcp/datacatalog/policy_tag_iam_binding.py +12 -12
  126. pulumi_gcp/datacatalog/policy_tag_iam_member.py +12 -12
  127. pulumi_gcp/datacatalog/policy_tag_iam_policy.py +12 -12
  128. pulumi_gcp/datacatalog/tag_template_iam_binding.py +12 -12
  129. pulumi_gcp/datacatalog/tag_template_iam_member.py +12 -12
  130. pulumi_gcp/datacatalog/tag_template_iam_policy.py +12 -12
  131. pulumi_gcp/datacatalog/taxonomy_iam_binding.py +12 -12
  132. pulumi_gcp/datacatalog/taxonomy_iam_member.py +12 -12
  133. pulumi_gcp/datacatalog/taxonomy_iam_policy.py +12 -12
  134. pulumi_gcp/dataloss/_inputs.py +420 -13
  135. pulumi_gcp/dataloss/outputs.py +439 -13
  136. pulumi_gcp/dataplex/asset_iam_binding.py +12 -12
  137. pulumi_gcp/dataplex/asset_iam_member.py +12 -12
  138. pulumi_gcp/dataplex/asset_iam_policy.py +12 -12
  139. pulumi_gcp/dataplex/datascan_iam_binding.py +12 -12
  140. pulumi_gcp/dataplex/datascan_iam_member.py +12 -12
  141. pulumi_gcp/dataplex/datascan_iam_policy.py +12 -12
  142. pulumi_gcp/dataplex/lake_iam_binding.py +12 -12
  143. pulumi_gcp/dataplex/lake_iam_member.py +12 -12
  144. pulumi_gcp/dataplex/lake_iam_policy.py +12 -12
  145. pulumi_gcp/dataplex/task.py +16 -16
  146. pulumi_gcp/dataplex/task_iam_binding.py +12 -12
  147. pulumi_gcp/dataplex/task_iam_member.py +12 -12
  148. pulumi_gcp/dataplex/task_iam_policy.py +12 -12
  149. pulumi_gcp/dataplex/zone_iam_binding.py +12 -12
  150. pulumi_gcp/dataplex/zone_iam_member.py +12 -12
  151. pulumi_gcp/dataplex/zone_iam_policy.py +12 -12
  152. pulumi_gcp/dataproc/_inputs.py +70 -0
  153. pulumi_gcp/dataproc/autoscaling_policy_iam_binding.py +12 -12
  154. pulumi_gcp/dataproc/autoscaling_policy_iam_member.py +12 -12
  155. pulumi_gcp/dataproc/autoscaling_policy_iam_policy.py +12 -12
  156. pulumi_gcp/dataproc/cluster_iam_binding.py +12 -12
  157. pulumi_gcp/dataproc/cluster_iam_member.py +12 -12
  158. pulumi_gcp/dataproc/cluster_iam_policy.py +12 -12
  159. pulumi_gcp/dataproc/get_metastore_federation_iam_policy.py +26 -2
  160. pulumi_gcp/dataproc/job_iam_binding.py +12 -12
  161. pulumi_gcp/dataproc/job_iam_member.py +12 -12
  162. pulumi_gcp/dataproc/job_iam_policy.py +12 -12
  163. pulumi_gcp/dataproc/metastore_federation.py +4 -0
  164. pulumi_gcp/dataproc/metastore_federation_iam_binding.py +208 -0
  165. pulumi_gcp/dataproc/metastore_federation_iam_member.py +208 -0
  166. pulumi_gcp/dataproc/metastore_federation_iam_policy.py +208 -0
  167. pulumi_gcp/dataproc/metastore_service_iam_binding.py +12 -12
  168. pulumi_gcp/dataproc/metastore_service_iam_member.py +12 -12
  169. pulumi_gcp/dataproc/metastore_service_iam_policy.py +12 -12
  170. pulumi_gcp/dataproc/outputs.py +62 -0
  171. pulumi_gcp/datastream/_inputs.py +1789 -820
  172. pulumi_gcp/datastream/connection_profile.py +163 -3
  173. pulumi_gcp/datastream/outputs.py +864 -5
  174. pulumi_gcp/datastream/stream.py +174 -0
  175. pulumi_gcp/dns/dns_managed_zone_iam_binding.py +12 -12
  176. pulumi_gcp/dns/dns_managed_zone_iam_member.py +12 -12
  177. pulumi_gcp/dns/dns_managed_zone_iam_policy.py +12 -12
  178. pulumi_gcp/endpoints/service_iam_binding.py +12 -12
  179. pulumi_gcp/endpoints/service_iam_member.py +12 -12
  180. pulumi_gcp/endpoints/service_iam_policy.py +12 -12
  181. pulumi_gcp/firestore/field.py +4 -4
  182. pulumi_gcp/folder/iam_audit_config.py +23 -23
  183. pulumi_gcp/folder/iam_member.py +16 -16
  184. pulumi_gcp/folder/iam_policy.py +16 -16
  185. pulumi_gcp/gkebackup/backup_plan_iam_binding.py +12 -12
  186. pulumi_gcp/gkebackup/backup_plan_iam_member.py +12 -12
  187. pulumi_gcp/gkebackup/backup_plan_iam_policy.py +12 -12
  188. pulumi_gcp/gkehub/feature_iam_binding.py +12 -12
  189. pulumi_gcp/gkehub/feature_iam_member.py +12 -12
  190. pulumi_gcp/gkehub/feature_iam_policy.py +12 -12
  191. pulumi_gcp/gkehub/membership_binding.py +6 -6
  192. pulumi_gcp/gkehub/membership_iam_binding.py +12 -12
  193. pulumi_gcp/gkehub/membership_iam_member.py +12 -12
  194. pulumi_gcp/gkehub/membership_iam_policy.py +12 -12
  195. pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
  196. pulumi_gcp/gkehub/namespace.py +4 -4
  197. pulumi_gcp/gkehub/scope_iam_binding.py +12 -12
  198. pulumi_gcp/gkehub/scope_iam_member.py +12 -12
  199. pulumi_gcp/gkehub/scope_iam_policy.py +12 -12
  200. pulumi_gcp/gkehub/scope_rbac_role_binding.py +4 -4
  201. pulumi_gcp/healthcare/consent_store_iam_binding.py +12 -12
  202. pulumi_gcp/healthcare/consent_store_iam_member.py +12 -12
  203. pulumi_gcp/healthcare/consent_store_iam_policy.py +12 -12
  204. pulumi_gcp/healthcare/dataset_iam_binding.py +12 -12
  205. pulumi_gcp/healthcare/dataset_iam_member.py +12 -12
  206. pulumi_gcp/healthcare/dataset_iam_policy.py +12 -12
  207. pulumi_gcp/healthcare/dicom_store_iam_binding.py +12 -12
  208. pulumi_gcp/healthcare/dicom_store_iam_member.py +12 -12
  209. pulumi_gcp/healthcare/dicom_store_iam_policy.py +12 -12
  210. pulumi_gcp/healthcare/fhir_store_iam_binding.py +12 -12
  211. pulumi_gcp/healthcare/fhir_store_iam_member.py +12 -12
  212. pulumi_gcp/healthcare/fhir_store_iam_policy.py +12 -12
  213. pulumi_gcp/healthcare/hl7_store_iam_binding.py +12 -12
  214. pulumi_gcp/healthcare/hl7_store_iam_member.py +12 -12
  215. pulumi_gcp/healthcare/hl7_store_iam_policy.py +12 -12
  216. pulumi_gcp/iap/app_engine_service_iam_binding.py +12 -12
  217. pulumi_gcp/iap/app_engine_service_iam_member.py +12 -12
  218. pulumi_gcp/iap/app_engine_service_iam_policy.py +12 -12
  219. pulumi_gcp/iap/app_engine_version_iam_binding.py +12 -12
  220. pulumi_gcp/iap/app_engine_version_iam_member.py +12 -12
  221. pulumi_gcp/iap/app_engine_version_iam_policy.py +12 -12
  222. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  223. pulumi_gcp/iap/tunnel_dest_group_iam_binding.py +12 -12
  224. pulumi_gcp/iap/tunnel_dest_group_iam_member.py +12 -12
  225. pulumi_gcp/iap/tunnel_dest_group_iam_policy.py +12 -12
  226. pulumi_gcp/iap/tunnel_iam_binding.py +12 -12
  227. pulumi_gcp/iap/tunnel_iam_member.py +12 -12
  228. pulumi_gcp/iap/tunnel_iam_policy.py +12 -12
  229. pulumi_gcp/iap/tunnel_instance_iam_binding.py +12 -12
  230. pulumi_gcp/iap/tunnel_instance_iam_member.py +12 -12
  231. pulumi_gcp/iap/tunnel_instance_iam_policy.py +12 -12
  232. pulumi_gcp/iap/web_backend_service_iam_binding.py +12 -12
  233. pulumi_gcp/iap/web_backend_service_iam_member.py +12 -12
  234. pulumi_gcp/iap/web_backend_service_iam_policy.py +12 -12
  235. pulumi_gcp/iap/web_iam_binding.py +12 -12
  236. pulumi_gcp/iap/web_iam_member.py +12 -12
  237. pulumi_gcp/iap/web_iam_policy.py +12 -12
  238. pulumi_gcp/iap/web_region_backend_service_iam_binding.py +12 -12
  239. pulumi_gcp/iap/web_region_backend_service_iam_member.py +12 -12
  240. pulumi_gcp/iap/web_region_backend_service_iam_policy.py +12 -12
  241. pulumi_gcp/iap/web_type_app_enging_iam_binding.py +12 -12
  242. pulumi_gcp/iap/web_type_app_enging_iam_member.py +12 -12
  243. pulumi_gcp/iap/web_type_app_enging_iam_policy.py +12 -12
  244. pulumi_gcp/iap/web_type_compute_iam_binding.py +12 -12
  245. pulumi_gcp/iap/web_type_compute_iam_member.py +12 -12
  246. pulumi_gcp/iap/web_type_compute_iam_policy.py +12 -12
  247. pulumi_gcp/integrationconnectors/managed_zone.py +8 -8
  248. pulumi_gcp/kms/key_ring_iam_binding.py +12 -12
  249. pulumi_gcp/kms/key_ring_iam_member.py +12 -12
  250. pulumi_gcp/kms/key_ring_iam_policy.py +12 -12
  251. pulumi_gcp/netapp/storage_pool.py +7 -7
  252. pulumi_gcp/netapp/volume.py +4 -4
  253. pulumi_gcp/networksecurity/gateway_security_policy.py +4 -4
  254. pulumi_gcp/networksecurity/tls_inspection_policy.py +419 -5
  255. pulumi_gcp/networkservices/__init__.py +1 -0
  256. pulumi_gcp/networkservices/_inputs.py +236 -0
  257. pulumi_gcp/networkservices/lb_traffic_extension.py +1181 -0
  258. pulumi_gcp/networkservices/outputs.py +247 -0
  259. pulumi_gcp/notebooks/instance_iam_binding.py +12 -12
  260. pulumi_gcp/notebooks/instance_iam_member.py +12 -12
  261. pulumi_gcp/notebooks/instance_iam_policy.py +12 -12
  262. pulumi_gcp/notebooks/runtime_iam_binding.py +12 -12
  263. pulumi_gcp/notebooks/runtime_iam_member.py +12 -12
  264. pulumi_gcp/notebooks/runtime_iam_policy.py +12 -12
  265. pulumi_gcp/organizations/iam_member.py +16 -16
  266. pulumi_gcp/organizations/iam_policy.py +16 -16
  267. pulumi_gcp/orgpolicy/policy.py +2 -2
  268. pulumi_gcp/projects/iam_audit_config.py +23 -23
  269. pulumi_gcp/projects/iam_binding.py +23 -23
  270. pulumi_gcp/projects/iam_member.py +23 -23
  271. pulumi_gcp/projects/iam_policy.py +16 -16
  272. pulumi_gcp/projects/service.py +2 -43
  273. pulumi_gcp/pubsub/schema_iam_binding.py +12 -12
  274. pulumi_gcp/pubsub/schema_iam_member.py +12 -12
  275. pulumi_gcp/pubsub/schema_iam_policy.py +12 -12
  276. pulumi_gcp/pubsub/subscription.py +4 -4
  277. pulumi_gcp/pubsub/subscription_iam_binding.py +12 -12
  278. pulumi_gcp/pubsub/subscription_iam_member.py +12 -12
  279. pulumi_gcp/pubsub/subscription_iam_policy.py +12 -12
  280. pulumi_gcp/pubsub/topic_iam_binding.py +12 -12
  281. pulumi_gcp/pubsub/topic_iam_member.py +12 -12
  282. pulumi_gcp/pubsub/topic_iam_policy.py +12 -12
  283. pulumi_gcp/pulumi-plugin.json +1 -1
  284. pulumi_gcp/secretmanager/secret_iam_binding.py +12 -12
  285. pulumi_gcp/secretmanager/secret_iam_member.py +12 -12
  286. pulumi_gcp/secretmanager/secret_iam_policy.py +12 -12
  287. pulumi_gcp/servicedirectory/namespace_iam_binding.py +8 -8
  288. pulumi_gcp/servicedirectory/namespace_iam_member.py +8 -8
  289. pulumi_gcp/servicedirectory/namespace_iam_policy.py +8 -8
  290. pulumi_gcp/servicedirectory/service_iam_binding.py +8 -8
  291. pulumi_gcp/servicedirectory/service_iam_member.py +8 -8
  292. pulumi_gcp/servicedirectory/service_iam_policy.py +8 -8
  293. pulumi_gcp/sourcerepo/repository_iam_binding.py +12 -12
  294. pulumi_gcp/sourcerepo/repository_iam_member.py +12 -12
  295. pulumi_gcp/sourcerepo/repository_iam_policy.py +12 -12
  296. pulumi_gcp/spanner/database_iam_binding.py +12 -12
  297. pulumi_gcp/spanner/database_iam_member.py +12 -12
  298. pulumi_gcp/spanner/database_iam_policy.py +12 -12
  299. pulumi_gcp/spanner/instance_iam_binding.py +12 -12
  300. pulumi_gcp/spanner/instance_iam_member.py +12 -12
  301. pulumi_gcp/spanner/instance_iam_policy.py +12 -12
  302. pulumi_gcp/storage/_inputs.py +12 -10
  303. pulumi_gcp/storage/bucket.py +44 -0
  304. pulumi_gcp/storage/bucket_iam_binding.py +12 -12
  305. pulumi_gcp/storage/bucket_iam_member.py +12 -12
  306. pulumi_gcp/storage/bucket_iam_policy.py +12 -12
  307. pulumi_gcp/storage/outputs.py +12 -10
  308. pulumi_gcp/tags/tag_key_iam_binding.py +12 -12
  309. pulumi_gcp/tags/tag_key_iam_member.py +12 -12
  310. pulumi_gcp/tags/tag_key_iam_policy.py +12 -12
  311. pulumi_gcp/tags/tag_value_iam_binding.py +12 -12
  312. pulumi_gcp/tags/tag_value_iam_member.py +12 -12
  313. pulumi_gcp/tags/tag_value_iam_policy.py +12 -12
  314. {pulumi_gcp-7.24.0a1716510380.dist-info → pulumi_gcp-7.24.0a1716588893.dist-info}/METADATA +1 -1
  315. {pulumi_gcp-7.24.0a1716510380.dist-info → pulumi_gcp-7.24.0a1716588893.dist-info}/RECORD +317 -314
  316. {pulumi_gcp-7.24.0a1716510380.dist-info → pulumi_gcp-7.24.0a1716588893.dist-info}/WHEEL +0 -0
  317. {pulumi_gcp-7.24.0a1716510380.dist-info → pulumi_gcp-7.24.0a1716588893.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
+