pulumi-gcp 7.5.0a1704283083__py3-none-any.whl → 7.6.0__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. pulumi_gcp/__init__.py +99 -0
  2. pulumi_gcp/bigqueryanalyticshub/_inputs.py +40 -0
  3. pulumi_gcp/bigqueryanalyticshub/listing.py +117 -3
  4. pulumi_gcp/bigqueryanalyticshub/outputs.py +49 -0
  5. pulumi_gcp/clouddeploy/__init__.py +1 -0
  6. pulumi_gcp/clouddeploy/_inputs.py +239 -0
  7. pulumi_gcp/clouddeploy/automation.py +1103 -0
  8. pulumi_gcp/clouddeploy/outputs.py +246 -0
  9. pulumi_gcp/clouddomains/__init__.py +10 -0
  10. pulumi_gcp/clouddomains/_inputs.py +1098 -0
  11. pulumi_gcp/clouddomains/outputs.py +1156 -0
  12. pulumi_gcp/clouddomains/registration.py +1068 -0
  13. pulumi_gcp/cloudrunv2/job.py +4 -4
  14. pulumi_gcp/composer/_inputs.py +79 -1
  15. pulumi_gcp/composer/outputs.py +131 -4
  16. pulumi_gcp/compute/__init__.py +1 -0
  17. pulumi_gcp/compute/_inputs.py +180 -0
  18. pulumi_gcp/compute/get_instance_template.py +11 -1
  19. pulumi_gcp/compute/get_region_instance_template.py +11 -1
  20. pulumi_gcp/compute/get_reservation.py +212 -0
  21. pulumi_gcp/compute/instance_template.py +47 -0
  22. pulumi_gcp/compute/network_firewall_policy.py +20 -22
  23. pulumi_gcp/compute/outputs.py +325 -0
  24. pulumi_gcp/compute/region_instance_template.py +47 -0
  25. pulumi_gcp/compute/region_network_firewall_policy.py +31 -35
  26. pulumi_gcp/compute/router_peer.py +54 -0
  27. pulumi_gcp/compute/vpn_tunnel.py +8 -4
  28. pulumi_gcp/config/__init__.pyi +2 -0
  29. pulumi_gcp/config/vars.py +4 -0
  30. pulumi_gcp/container/_inputs.py +23 -0
  31. pulumi_gcp/container/aws_node_pool.py +7 -7
  32. pulumi_gcp/container/cluster.py +68 -14
  33. pulumi_gcp/container/get_cluster.py +11 -1
  34. pulumi_gcp/container/outputs.py +49 -0
  35. pulumi_gcp/dataflow/pipeline.py +1 -1
  36. pulumi_gcp/dataproc/_inputs.py +413 -39
  37. pulumi_gcp/dataproc/metastore_service.py +63 -0
  38. pulumi_gcp/dataproc/outputs.py +461 -39
  39. pulumi_gcp/dns/__init__.py +1 -0
  40. pulumi_gcp/dns/_inputs.py +94 -0
  41. pulumi_gcp/dns/get_managed_zones.py +89 -0
  42. pulumi_gcp/dns/outputs.py +62 -0
  43. pulumi_gcp/edgecontainer/vpn_connection.py +10 -10
  44. pulumi_gcp/filestore/__init__.py +1 -0
  45. pulumi_gcp/filestore/get_instance.py +258 -0
  46. pulumi_gcp/filestore/instance.py +7 -7
  47. pulumi_gcp/filestore/outputs.py +126 -0
  48. pulumi_gcp/gkebackup/backup_plan.py +24 -8
  49. pulumi_gcp/gkebackup/restore_plan.py +36 -12
  50. pulumi_gcp/gkebackup/restore_plan_iam_binding.py +36 -12
  51. pulumi_gcp/gkebackup/restore_plan_iam_member.py +36 -12
  52. pulumi_gcp/gkebackup/restore_plan_iam_policy.py +36 -12
  53. pulumi_gcp/gkehub/_inputs.py +502 -2
  54. pulumi_gcp/gkehub/feature.py +34 -0
  55. pulumi_gcp/gkehub/feature_membership.py +177 -0
  56. pulumi_gcp/gkehub/membership.py +18 -6
  57. pulumi_gcp/gkehub/outputs.py +502 -2
  58. pulumi_gcp/gkeonprem/_inputs.py +21 -25
  59. pulumi_gcp/gkeonprem/outputs.py +34 -25
  60. pulumi_gcp/gkeonprem/v_mware_node_pool.py +34 -0
  61. pulumi_gcp/integrationconnectors/__init__.py +1 -0
  62. pulumi_gcp/integrationconnectors/endpoint_attachment.py +669 -0
  63. pulumi_gcp/kms/_inputs.py +42 -0
  64. pulumi_gcp/kms/crypto_key.py +36 -0
  65. pulumi_gcp/kms/get_kms_crypto_key.py +11 -1
  66. pulumi_gcp/kms/outputs.py +62 -0
  67. pulumi_gcp/logging/__init__.py +2 -0
  68. pulumi_gcp/logging/folder_settings.py +490 -0
  69. pulumi_gcp/logging/folder_sink.py +21 -21
  70. pulumi_gcp/logging/organization_settings.py +484 -0
  71. pulumi_gcp/logging/organization_sink.py +21 -21
  72. pulumi_gcp/logging/project_sink.py +7 -14
  73. pulumi_gcp/netapp/__init__.py +3 -0
  74. pulumi_gcp/netapp/active_directory.py +1413 -0
  75. pulumi_gcp/netapp/backup_vault.py +593 -0
  76. pulumi_gcp/netapp/kmsconfig.py +649 -0
  77. pulumi_gcp/orgpolicy/policy.py +28 -0
  78. pulumi_gcp/provider.py +20 -0
  79. pulumi_gcp/pubsub/subscription.py +29 -37
  80. pulumi_gcp/serviceaccount/account.py +47 -0
  81. pulumi_gcp/servicenetworking/connection.py +55 -1
  82. pulumi_gcp/sql/database_instance.py +2 -2
  83. pulumi_gcp/sql/ssl_cert.py +1 -1
  84. pulumi_gcp/sql/user.py +7 -7
  85. pulumi_gcp/storage/transfer_job.py +24 -5
  86. pulumi_gcp/vertex/__init__.py +3 -0
  87. pulumi_gcp/vertex/_inputs.py +339 -0
  88. pulumi_gcp/vertex/ai_feature_group.py +710 -0
  89. pulumi_gcp/vertex/ai_feature_online_store.py +962 -0
  90. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +804 -0
  91. pulumi_gcp/vertex/outputs.py +406 -0
  92. pulumi_gcp/vmwareengine/__init__.py +2 -0
  93. pulumi_gcp/vmwareengine/_inputs.py +84 -0
  94. pulumi_gcp/vmwareengine/external_access_rule.py +947 -0
  95. pulumi_gcp/vmwareengine/get_external_access_rule.py +245 -0
  96. pulumi_gcp/vmwareengine/outputs.py +146 -0
  97. pulumi_gcp/workflows/workflow.py +7 -7
  98. {pulumi_gcp-7.5.0a1704283083.dist-info → pulumi_gcp-7.6.0.dist-info}/METADATA +1 -1
  99. {pulumi_gcp-7.5.0a1704283083.dist-info → pulumi_gcp-7.6.0.dist-info}/RECORD +101 -82
  100. {pulumi_gcp-7.5.0a1704283083.dist-info → pulumi_gcp-7.6.0.dist-info}/WHEEL +0 -0
  101. {pulumi_gcp-7.5.0a1704283083.dist-info → pulumi_gcp-7.6.0.dist-info}/top_level.txt +0 -0
@@ -96,12 +96,14 @@ class PolicyArgs:
96
96
  class _PolicyState:
97
97
  def __init__(__self__, *,
98
98
  dry_run_spec: Optional[pulumi.Input['PolicyDryRunSpecArgs']] = None,
99
+ etag: Optional[pulumi.Input[str]] = None,
99
100
  name: Optional[pulumi.Input[str]] = None,
100
101
  parent: Optional[pulumi.Input[str]] = None,
101
102
  spec: Optional[pulumi.Input['PolicySpecArgs']] = None):
102
103
  """
103
104
  Input properties used for looking up and filtering Policy resources.
104
105
  :param pulumi.Input['PolicyDryRunSpecArgs'] dry_run_spec: Dry-run policy. Audit-only policy, can be used to monitor how the policy would have impacted the existing and future resources if it's enforced.
106
+ :param pulumi.Input[str] etag: An opaque tag indicating the current version of the policy, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the policy` is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current policy to use when executing a read-modify-write loop. When the policy is returned from a `GetEffectivePolicy` request, the `etag` will be unset.
105
107
  :param pulumi.Input[str] name: Immutable. The resource name of the Policy. Must be one of the following forms, where constraint_name is the name of the constraint which this Policy configures: * `projects/{project_number}/policies/{constraint_name}` * `folders/{folder_id}/policies/{constraint_name}` * `organizations/{organization_id}/policies/{constraint_name}` For example, "projects/123/policies/compute.disableSerialPortAccess". Note: `projects/{project_id}/policies/{constraint_name}` is also an acceptable name for API requests, but responses will return the name using the equivalent project number.
106
108
  :param pulumi.Input[str] parent: The parent of the resource.
107
109
 
@@ -112,6 +114,8 @@ class _PolicyState:
112
114
  """
113
115
  if dry_run_spec is not None:
114
116
  pulumi.set(__self__, "dry_run_spec", dry_run_spec)
117
+ if etag is not None:
118
+ pulumi.set(__self__, "etag", etag)
115
119
  if name is not None:
116
120
  pulumi.set(__self__, "name", name)
117
121
  if parent is not None:
@@ -131,6 +135,18 @@ class _PolicyState:
131
135
  def dry_run_spec(self, value: Optional[pulumi.Input['PolicyDryRunSpecArgs']]):
132
136
  pulumi.set(self, "dry_run_spec", value)
133
137
 
138
+ @property
139
+ @pulumi.getter
140
+ def etag(self) -> Optional[pulumi.Input[str]]:
141
+ """
142
+ An opaque tag indicating the current version of the policy, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the policy` is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current policy to use when executing a read-modify-write loop. When the policy is returned from a `GetEffectivePolicy` request, the `etag` will be unset.
143
+ """
144
+ return pulumi.get(self, "etag")
145
+
146
+ @etag.setter
147
+ def etag(self, value: Optional[pulumi.Input[str]]):
148
+ pulumi.set(self, "etag", value)
149
+
134
150
  @property
135
151
  @pulumi.getter
136
152
  def name(self) -> Optional[pulumi.Input[str]]:
@@ -487,6 +503,7 @@ class Policy(pulumi.CustomResource):
487
503
  raise TypeError("Missing required property 'parent'")
488
504
  __props__.__dict__["parent"] = parent
489
505
  __props__.__dict__["spec"] = spec
506
+ __props__.__dict__["etag"] = None
490
507
  super(Policy, __self__).__init__(
491
508
  'gcp:orgpolicy/policy:Policy',
492
509
  resource_name,
@@ -498,6 +515,7 @@ class Policy(pulumi.CustomResource):
498
515
  id: pulumi.Input[str],
499
516
  opts: Optional[pulumi.ResourceOptions] = None,
500
517
  dry_run_spec: Optional[pulumi.Input[pulumi.InputType['PolicyDryRunSpecArgs']]] = None,
518
+ etag: Optional[pulumi.Input[str]] = None,
501
519
  name: Optional[pulumi.Input[str]] = None,
502
520
  parent: Optional[pulumi.Input[str]] = None,
503
521
  spec: Optional[pulumi.Input[pulumi.InputType['PolicySpecArgs']]] = None) -> 'Policy':
@@ -509,6 +527,7 @@ class Policy(pulumi.CustomResource):
509
527
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
510
528
  :param pulumi.ResourceOptions opts: Options for the resource.
511
529
  :param pulumi.Input[pulumi.InputType['PolicyDryRunSpecArgs']] dry_run_spec: Dry-run policy. Audit-only policy, can be used to monitor how the policy would have impacted the existing and future resources if it's enforced.
530
+ :param pulumi.Input[str] etag: An opaque tag indicating the current version of the policy, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the policy` is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current policy to use when executing a read-modify-write loop. When the policy is returned from a `GetEffectivePolicy` request, the `etag` will be unset.
512
531
  :param pulumi.Input[str] name: Immutable. The resource name of the Policy. Must be one of the following forms, where constraint_name is the name of the constraint which this Policy configures: * `projects/{project_number}/policies/{constraint_name}` * `folders/{folder_id}/policies/{constraint_name}` * `organizations/{organization_id}/policies/{constraint_name}` For example, "projects/123/policies/compute.disableSerialPortAccess". Note: `projects/{project_id}/policies/{constraint_name}` is also an acceptable name for API requests, but responses will return the name using the equivalent project number.
513
532
  :param pulumi.Input[str] parent: The parent of the resource.
514
533
 
@@ -522,6 +541,7 @@ class Policy(pulumi.CustomResource):
522
541
  __props__ = _PolicyState.__new__(_PolicyState)
523
542
 
524
543
  __props__.__dict__["dry_run_spec"] = dry_run_spec
544
+ __props__.__dict__["etag"] = etag
525
545
  __props__.__dict__["name"] = name
526
546
  __props__.__dict__["parent"] = parent
527
547
  __props__.__dict__["spec"] = spec
@@ -535,6 +555,14 @@ class Policy(pulumi.CustomResource):
535
555
  """
536
556
  return pulumi.get(self, "dry_run_spec")
537
557
 
558
+ @property
559
+ @pulumi.getter
560
+ def etag(self) -> pulumi.Output[str]:
561
+ """
562
+ An opaque tag indicating the current version of the policy, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the policy` is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current policy to use when executing a read-modify-write loop. When the policy is returned from a `GetEffectivePolicy` request, the `etag` will be unset.
563
+ """
564
+ return pulumi.get(self, "etag")
565
+
538
566
  @property
539
567
  @pulumi.getter
540
568
  def name(self) -> pulumi.Output[str]:
pulumi_gcp/provider.py CHANGED
@@ -55,6 +55,7 @@ class ProviderArgs:
55
55
  cloud_tasks_custom_endpoint: Optional[pulumi.Input[str]] = None,
56
56
  cloudbuildv2_custom_endpoint: Optional[pulumi.Input[str]] = None,
57
57
  clouddeploy_custom_endpoint: Optional[pulumi.Input[str]] = None,
58
+ clouddomains_custom_endpoint: Optional[pulumi.Input[str]] = None,
58
59
  cloudfunctions2_custom_endpoint: Optional[pulumi.Input[str]] = None,
59
60
  composer_custom_endpoint: Optional[pulumi.Input[str]] = None,
60
61
  compute_custom_endpoint: Optional[pulumi.Input[str]] = None,
@@ -255,6 +256,8 @@ class ProviderArgs:
255
256
  pulumi.set(__self__, "cloudbuildv2_custom_endpoint", cloudbuildv2_custom_endpoint)
256
257
  if clouddeploy_custom_endpoint is not None:
257
258
  pulumi.set(__self__, "clouddeploy_custom_endpoint", clouddeploy_custom_endpoint)
259
+ if clouddomains_custom_endpoint is not None:
260
+ pulumi.set(__self__, "clouddomains_custom_endpoint", clouddomains_custom_endpoint)
258
261
  if cloudfunctions2_custom_endpoint is not None:
259
262
  pulumi.set(__self__, "cloudfunctions2_custom_endpoint", cloudfunctions2_custom_endpoint)
260
263
  if composer_custom_endpoint is not None:
@@ -856,6 +859,15 @@ class ProviderArgs:
856
859
  def clouddeploy_custom_endpoint(self, value: Optional[pulumi.Input[str]]):
857
860
  pulumi.set(self, "clouddeploy_custom_endpoint", value)
858
861
 
862
+ @property
863
+ @pulumi.getter(name="clouddomainsCustomEndpoint")
864
+ def clouddomains_custom_endpoint(self) -> Optional[pulumi.Input[str]]:
865
+ return pulumi.get(self, "clouddomains_custom_endpoint")
866
+
867
+ @clouddomains_custom_endpoint.setter
868
+ def clouddomains_custom_endpoint(self, value: Optional[pulumi.Input[str]]):
869
+ pulumi.set(self, "clouddomains_custom_endpoint", value)
870
+
859
871
  @property
860
872
  @pulumi.getter(name="cloudfunctions2CustomEndpoint")
861
873
  def cloudfunctions2_custom_endpoint(self) -> Optional[pulumi.Input[str]]:
@@ -1955,6 +1967,7 @@ class Provider(pulumi.ProviderResource):
1955
1967
  cloud_tasks_custom_endpoint: Optional[pulumi.Input[str]] = None,
1956
1968
  cloudbuildv2_custom_endpoint: Optional[pulumi.Input[str]] = None,
1957
1969
  clouddeploy_custom_endpoint: Optional[pulumi.Input[str]] = None,
1970
+ clouddomains_custom_endpoint: Optional[pulumi.Input[str]] = None,
1958
1971
  cloudfunctions2_custom_endpoint: Optional[pulumi.Input[str]] = None,
1959
1972
  composer_custom_endpoint: Optional[pulumi.Input[str]] = None,
1960
1973
  compute_custom_endpoint: Optional[pulumi.Input[str]] = None,
@@ -2149,6 +2162,7 @@ class Provider(pulumi.ProviderResource):
2149
2162
  cloud_tasks_custom_endpoint: Optional[pulumi.Input[str]] = None,
2150
2163
  cloudbuildv2_custom_endpoint: Optional[pulumi.Input[str]] = None,
2151
2164
  clouddeploy_custom_endpoint: Optional[pulumi.Input[str]] = None,
2165
+ clouddomains_custom_endpoint: Optional[pulumi.Input[str]] = None,
2152
2166
  cloudfunctions2_custom_endpoint: Optional[pulumi.Input[str]] = None,
2153
2167
  composer_custom_endpoint: Optional[pulumi.Input[str]] = None,
2154
2168
  compute_custom_endpoint: Optional[pulumi.Input[str]] = None,
@@ -2315,6 +2329,7 @@ class Provider(pulumi.ProviderResource):
2315
2329
  __props__.__dict__["cloud_tasks_custom_endpoint"] = cloud_tasks_custom_endpoint
2316
2330
  __props__.__dict__["cloudbuildv2_custom_endpoint"] = cloudbuildv2_custom_endpoint
2317
2331
  __props__.__dict__["clouddeploy_custom_endpoint"] = clouddeploy_custom_endpoint
2332
+ __props__.__dict__["clouddomains_custom_endpoint"] = clouddomains_custom_endpoint
2318
2333
  __props__.__dict__["cloudfunctions2_custom_endpoint"] = cloudfunctions2_custom_endpoint
2319
2334
  __props__.__dict__["composer_custom_endpoint"] = composer_custom_endpoint
2320
2335
  __props__.__dict__["compute_custom_endpoint"] = compute_custom_endpoint
@@ -2639,6 +2654,11 @@ class Provider(pulumi.ProviderResource):
2639
2654
  def clouddeploy_custom_endpoint(self) -> pulumi.Output[Optional[str]]:
2640
2655
  return pulumi.get(self, "clouddeploy_custom_endpoint")
2641
2656
 
2657
+ @property
2658
+ @pulumi.getter(name="clouddomainsCustomEndpoint")
2659
+ def clouddomains_custom_endpoint(self) -> pulumi.Output[Optional[str]]:
2660
+ return pulumi.get(self, "clouddomains_custom_endpoint")
2661
+
2642
2662
  @property
2643
2663
  @pulumi.getter(name="cloudfunctions2CustomEndpoint")
2644
2664
  def cloudfunctions2_custom_endpoint(self) -> pulumi.Output[Optional[str]]:
@@ -34,7 +34,9 @@ class SubscriptionArgs:
34
34
  retry_policy: Optional[pulumi.Input['SubscriptionRetryPolicyArgs']] = None):
35
35
  """
36
36
  The set of arguments for constructing a Subscription resource.
37
- :param pulumi.Input[str] topic: A reference to a Topic resource.
37
+ :param pulumi.Input[str] topic: A reference to a Topic resource, of the form projects/{project}/topics/{{name}}
38
+ (as in the id property of a google_pubsub_topic), or just a topic name if
39
+ the topic is in the same project as the subscription.
38
40
 
39
41
 
40
42
  - - -
@@ -154,7 +156,9 @@ class SubscriptionArgs:
154
156
  @pulumi.getter
155
157
  def topic(self) -> pulumi.Input[str]:
156
158
  """
157
- A reference to a Topic resource.
159
+ A reference to a Topic resource, of the form projects/{project}/topics/{{name}}
160
+ (as in the id property of a google_pubsub_topic), or just a topic name if
161
+ the topic is in the same project as the subscription.
158
162
 
159
163
 
160
164
  - - -
@@ -515,7 +519,9 @@ class _SubscriptionState:
515
519
  If not set, the default retry policy is applied. This generally implies that messages will be retried as soon as possible for healthy subscribers.
516
520
  RetryPolicy will be triggered on NACKs or acknowledgement deadline exceeded events for a given message
517
521
  Structure is documented below.
518
- :param pulumi.Input[str] topic: A reference to a Topic resource.
522
+ :param pulumi.Input[str] topic: A reference to a Topic resource, of the form projects/{project}/topics/{{name}}
523
+ (as in the id property of a google_pubsub_topic), or just a topic name if
524
+ the topic is in the same project as the subscription.
519
525
 
520
526
 
521
527
  - - -
@@ -830,7 +836,9 @@ class _SubscriptionState:
830
836
  @pulumi.getter
831
837
  def topic(self) -> Optional[pulumi.Input[str]]:
832
838
  """
833
- A reference to a Topic resource.
839
+ A reference to a Topic resource, of the form projects/{project}/topics/{{name}}
840
+ (as in the id property of a google_pubsub_topic), or just a topic name if
841
+ the topic is in the same project as the subscription.
834
842
 
835
843
 
836
844
  - - -
@@ -886,7 +894,7 @@ class Subscription(pulumi.CustomResource):
886
894
 
887
895
  example_topic = gcp.pubsub.Topic("exampleTopic")
888
896
  example_subscription = gcp.pubsub.Subscription("exampleSubscription",
889
- topic=example_topic.name,
897
+ topic=example_topic.id,
890
898
  ack_deadline_seconds=20,
891
899
  labels={
892
900
  "foo": "bar",
@@ -906,7 +914,7 @@ class Subscription(pulumi.CustomResource):
906
914
 
907
915
  example_topic = gcp.pubsub.Topic("exampleTopic")
908
916
  example_subscription = gcp.pubsub.Subscription("exampleSubscription",
909
- topic=example_topic.name,
917
+ topic=example_topic.id,
910
918
  labels={
911
919
  "foo": "bar",
912
920
  },
@@ -921,17 +929,6 @@ class Subscription(pulumi.CustomResource):
921
929
  ),
922
930
  enable_message_ordering=False)
923
931
  ```
924
- ### Pubsub Subscription Different Project
925
-
926
- ```python
927
- import pulumi
928
- import pulumi_gcp as gcp
929
-
930
- example_topic = gcp.pubsub.Topic("exampleTopic", project="topic-project")
931
- example_subscription = gcp.pubsub.Subscription("exampleSubscription",
932
- project="subscription-project",
933
- topic=example_topic.name)
934
- ```
935
932
  ### Pubsub Subscription Dead Letter
936
933
 
937
934
  ```python
@@ -941,7 +938,7 @@ class Subscription(pulumi.CustomResource):
941
938
  example_topic = gcp.pubsub.Topic("exampleTopic")
942
939
  example_dead_letter = gcp.pubsub.Topic("exampleDeadLetter")
943
940
  example_subscription = gcp.pubsub.Subscription("exampleSubscription",
944
- topic=example_topic.name,
941
+ topic=example_topic.id,
945
942
  dead_letter_policy=gcp.pubsub.SubscriptionDeadLetterPolicyArgs(
946
943
  dead_letter_topic=example_dead_letter.id,
947
944
  max_delivery_attempts=10,
@@ -978,7 +975,7 @@ class Subscription(pulumi.CustomResource):
978
975
  ]
979
976
  \"\"\")
980
977
  example_subscription = gcp.pubsub.Subscription("exampleSubscription",
981
- topic=example_topic.name,
978
+ topic=example_topic.id,
982
979
  bigquery_config=gcp.pubsub.SubscriptionBigqueryConfigArgs(
983
980
  table=pulumi.Output.all(test_table.project, test_table.dataset_id, test_table.table_id).apply(lambda project, dataset_id, table_id: f"{project}.{dataset_id}.{table_id}"),
984
981
  ),
@@ -1093,7 +1090,9 @@ class Subscription(pulumi.CustomResource):
1093
1090
  If not set, the default retry policy is applied. This generally implies that messages will be retried as soon as possible for healthy subscribers.
1094
1091
  RetryPolicy will be triggered on NACKs or acknowledgement deadline exceeded events for a given message
1095
1092
  Structure is documented below.
1096
- :param pulumi.Input[str] topic: A reference to a Topic resource.
1093
+ :param pulumi.Input[str] topic: A reference to a Topic resource, of the form projects/{project}/topics/{{name}}
1094
+ (as in the id property of a google_pubsub_topic), or just a topic name if
1095
+ the topic is in the same project as the subscription.
1097
1096
 
1098
1097
 
1099
1098
  - - -
@@ -1126,7 +1125,7 @@ class Subscription(pulumi.CustomResource):
1126
1125
 
1127
1126
  example_topic = gcp.pubsub.Topic("exampleTopic")
1128
1127
  example_subscription = gcp.pubsub.Subscription("exampleSubscription",
1129
- topic=example_topic.name,
1128
+ topic=example_topic.id,
1130
1129
  ack_deadline_seconds=20,
1131
1130
  labels={
1132
1131
  "foo": "bar",
@@ -1146,7 +1145,7 @@ class Subscription(pulumi.CustomResource):
1146
1145
 
1147
1146
  example_topic = gcp.pubsub.Topic("exampleTopic")
1148
1147
  example_subscription = gcp.pubsub.Subscription("exampleSubscription",
1149
- topic=example_topic.name,
1148
+ topic=example_topic.id,
1150
1149
  labels={
1151
1150
  "foo": "bar",
1152
1151
  },
@@ -1161,17 +1160,6 @@ class Subscription(pulumi.CustomResource):
1161
1160
  ),
1162
1161
  enable_message_ordering=False)
1163
1162
  ```
1164
- ### Pubsub Subscription Different Project
1165
-
1166
- ```python
1167
- import pulumi
1168
- import pulumi_gcp as gcp
1169
-
1170
- example_topic = gcp.pubsub.Topic("exampleTopic", project="topic-project")
1171
- example_subscription = gcp.pubsub.Subscription("exampleSubscription",
1172
- project="subscription-project",
1173
- topic=example_topic.name)
1174
- ```
1175
1163
  ### Pubsub Subscription Dead Letter
1176
1164
 
1177
1165
  ```python
@@ -1181,7 +1169,7 @@ class Subscription(pulumi.CustomResource):
1181
1169
  example_topic = gcp.pubsub.Topic("exampleTopic")
1182
1170
  example_dead_letter = gcp.pubsub.Topic("exampleDeadLetter")
1183
1171
  example_subscription = gcp.pubsub.Subscription("exampleSubscription",
1184
- topic=example_topic.name,
1172
+ topic=example_topic.id,
1185
1173
  dead_letter_policy=gcp.pubsub.SubscriptionDeadLetterPolicyArgs(
1186
1174
  dead_letter_topic=example_dead_letter.id,
1187
1175
  max_delivery_attempts=10,
@@ -1218,7 +1206,7 @@ class Subscription(pulumi.CustomResource):
1218
1206
  ]
1219
1207
  \"\"\")
1220
1208
  example_subscription = gcp.pubsub.Subscription("exampleSubscription",
1221
- topic=example_topic.name,
1209
+ topic=example_topic.id,
1222
1210
  bigquery_config=gcp.pubsub.SubscriptionBigqueryConfigArgs(
1223
1211
  table=pulumi.Output.all(test_table.project, test_table.dataset_id, test_table.table_id).apply(lambda project, dataset_id, table_id: f"{project}.{dataset_id}.{table_id}"),
1224
1212
  ),
@@ -1431,7 +1419,9 @@ class Subscription(pulumi.CustomResource):
1431
1419
  If not set, the default retry policy is applied. This generally implies that messages will be retried as soon as possible for healthy subscribers.
1432
1420
  RetryPolicy will be triggered on NACKs or acknowledgement deadline exceeded events for a given message
1433
1421
  Structure is documented below.
1434
- :param pulumi.Input[str] topic: A reference to a Topic resource.
1422
+ :param pulumi.Input[str] topic: A reference to a Topic resource, of the form projects/{project}/topics/{{name}}
1423
+ (as in the id property of a google_pubsub_topic), or just a topic name if
1424
+ the topic is in the same project as the subscription.
1435
1425
 
1436
1426
 
1437
1427
  - - -
@@ -1665,7 +1655,9 @@ class Subscription(pulumi.CustomResource):
1665
1655
  @pulumi.getter
1666
1656
  def topic(self) -> pulumi.Output[str]:
1667
1657
  """
1668
- A reference to a Topic resource.
1658
+ A reference to a Topic resource, of the form projects/{project}/topics/{{name}}
1659
+ (as in the id property of a google_pubsub_topic), or just a topic name if
1660
+ the topic is in the same project as the subscription.
1669
1661
 
1670
1662
 
1671
1663
  - - -
@@ -15,6 +15,7 @@ __all__ = ['AccountArgs', 'Account']
15
15
  class AccountArgs:
16
16
  def __init__(__self__, *,
17
17
  account_id: pulumi.Input[str],
18
+ create_ignore_already_exists: Optional[pulumi.Input[bool]] = None,
18
19
  description: Optional[pulumi.Input[str]] = None,
19
20
  disabled: Optional[pulumi.Input[bool]] = None,
20
21
  display_name: Optional[pulumi.Input[str]] = None,
@@ -25,6 +26,7 @@ class AccountArgs:
25
26
  account email address and a stable unique id. It is unique within a project,
26
27
  must be 6-30 characters long, and match the regular expression `a-z`
27
28
  to comply with RFC1035. Changing this forces a new service account to be created.
29
+ :param pulumi.Input[bool] create_ignore_already_exists: If set to true, skip service account creation if a service account with the same email already exists.
28
30
  :param pulumi.Input[str] description: A text description of the service account.
29
31
  Must be less than or equal to 256 UTF-8 bytes.
30
32
  :param pulumi.Input[bool] disabled: Whether a service account is disabled or not. Defaults to `false`. This field has no effect during creation.
@@ -35,6 +37,8 @@ class AccountArgs:
35
37
  Defaults to the provider project configuration.
36
38
  """
37
39
  pulumi.set(__self__, "account_id", account_id)
40
+ if create_ignore_already_exists is not None:
41
+ pulumi.set(__self__, "create_ignore_already_exists", create_ignore_already_exists)
38
42
  if description is not None:
39
43
  pulumi.set(__self__, "description", description)
40
44
  if disabled is not None:
@@ -59,6 +63,18 @@ class AccountArgs:
59
63
  def account_id(self, value: pulumi.Input[str]):
60
64
  pulumi.set(self, "account_id", value)
61
65
 
66
+ @property
67
+ @pulumi.getter(name="createIgnoreAlreadyExists")
68
+ def create_ignore_already_exists(self) -> Optional[pulumi.Input[bool]]:
69
+ """
70
+ If set to true, skip service account creation if a service account with the same email already exists.
71
+ """
72
+ return pulumi.get(self, "create_ignore_already_exists")
73
+
74
+ @create_ignore_already_exists.setter
75
+ def create_ignore_already_exists(self, value: Optional[pulumi.Input[bool]]):
76
+ pulumi.set(self, "create_ignore_already_exists", value)
77
+
62
78
  @property
63
79
  @pulumi.getter
64
80
  def description(self) -> Optional[pulumi.Input[str]]:
@@ -116,6 +132,7 @@ class AccountArgs:
116
132
  class _AccountState:
117
133
  def __init__(__self__, *,
118
134
  account_id: Optional[pulumi.Input[str]] = None,
135
+ create_ignore_already_exists: Optional[pulumi.Input[bool]] = None,
119
136
  description: Optional[pulumi.Input[str]] = None,
120
137
  disabled: Optional[pulumi.Input[bool]] = None,
121
138
  display_name: Optional[pulumi.Input[str]] = None,
@@ -130,6 +147,7 @@ class _AccountState:
130
147
  account email address and a stable unique id. It is unique within a project,
131
148
  must be 6-30 characters long, and match the regular expression `a-z`
132
149
  to comply with RFC1035. Changing this forces a new service account to be created.
150
+ :param pulumi.Input[bool] create_ignore_already_exists: If set to true, skip service account creation if a service account with the same email already exists.
133
151
  :param pulumi.Input[str] description: A text description of the service account.
134
152
  Must be less than or equal to 256 UTF-8 bytes.
135
153
  :param pulumi.Input[bool] disabled: Whether a service account is disabled or not. Defaults to `false`. This field has no effect during creation.
@@ -147,6 +165,8 @@ class _AccountState:
147
165
  """
148
166
  if account_id is not None:
149
167
  pulumi.set(__self__, "account_id", account_id)
168
+ if create_ignore_already_exists is not None:
169
+ pulumi.set(__self__, "create_ignore_already_exists", create_ignore_already_exists)
150
170
  if description is not None:
151
171
  pulumi.set(__self__, "description", description)
152
172
  if disabled is not None:
@@ -179,6 +199,18 @@ class _AccountState:
179
199
  def account_id(self, value: Optional[pulumi.Input[str]]):
180
200
  pulumi.set(self, "account_id", value)
181
201
 
202
+ @property
203
+ @pulumi.getter(name="createIgnoreAlreadyExists")
204
+ def create_ignore_already_exists(self) -> Optional[pulumi.Input[bool]]:
205
+ """
206
+ If set to true, skip service account creation if a service account with the same email already exists.
207
+ """
208
+ return pulumi.get(self, "create_ignore_already_exists")
209
+
210
+ @create_ignore_already_exists.setter
211
+ def create_ignore_already_exists(self, value: Optional[pulumi.Input[bool]]):
212
+ pulumi.set(self, "create_ignore_already_exists", value)
213
+
182
214
  @property
183
215
  @pulumi.getter
184
216
  def description(self) -> Optional[pulumi.Input[str]]:
@@ -288,6 +320,7 @@ class Account(pulumi.CustomResource):
288
320
  resource_name: str,
289
321
  opts: Optional[pulumi.ResourceOptions] = None,
290
322
  account_id: Optional[pulumi.Input[str]] = None,
323
+ create_ignore_already_exists: Optional[pulumi.Input[bool]] = None,
291
324
  description: Optional[pulumi.Input[str]] = None,
292
325
  disabled: Optional[pulumi.Input[bool]] = None,
293
326
  display_name: Optional[pulumi.Input[str]] = None,
@@ -341,6 +374,7 @@ class Account(pulumi.CustomResource):
341
374
  account email address and a stable unique id. It is unique within a project,
342
375
  must be 6-30 characters long, and match the regular expression `a-z`
343
376
  to comply with RFC1035. Changing this forces a new service account to be created.
377
+ :param pulumi.Input[bool] create_ignore_already_exists: If set to true, skip service account creation if a service account with the same email already exists.
344
378
  :param pulumi.Input[str] description: A text description of the service account.
345
379
  Must be less than or equal to 256 UTF-8 bytes.
346
380
  :param pulumi.Input[bool] disabled: Whether a service account is disabled or not. Defaults to `false`. This field has no effect during creation.
@@ -414,6 +448,7 @@ class Account(pulumi.CustomResource):
414
448
  resource_name: str,
415
449
  opts: Optional[pulumi.ResourceOptions] = None,
416
450
  account_id: Optional[pulumi.Input[str]] = None,
451
+ create_ignore_already_exists: Optional[pulumi.Input[bool]] = None,
417
452
  description: Optional[pulumi.Input[str]] = None,
418
453
  disabled: Optional[pulumi.Input[bool]] = None,
419
454
  display_name: Optional[pulumi.Input[str]] = None,
@@ -430,6 +465,7 @@ class Account(pulumi.CustomResource):
430
465
  if account_id is None and not opts.urn:
431
466
  raise TypeError("Missing required property 'account_id'")
432
467
  __props__.__dict__["account_id"] = account_id
468
+ __props__.__dict__["create_ignore_already_exists"] = create_ignore_already_exists
433
469
  __props__.__dict__["description"] = description
434
470
  __props__.__dict__["disabled"] = disabled
435
471
  __props__.__dict__["display_name"] = display_name
@@ -451,6 +487,7 @@ class Account(pulumi.CustomResource):
451
487
  id: pulumi.Input[str],
452
488
  opts: Optional[pulumi.ResourceOptions] = None,
453
489
  account_id: Optional[pulumi.Input[str]] = None,
490
+ create_ignore_already_exists: Optional[pulumi.Input[bool]] = None,
454
491
  description: Optional[pulumi.Input[str]] = None,
455
492
  disabled: Optional[pulumi.Input[bool]] = None,
456
493
  display_name: Optional[pulumi.Input[str]] = None,
@@ -470,6 +507,7 @@ class Account(pulumi.CustomResource):
470
507
  account email address and a stable unique id. It is unique within a project,
471
508
  must be 6-30 characters long, and match the regular expression `a-z`
472
509
  to comply with RFC1035. Changing this forces a new service account to be created.
510
+ :param pulumi.Input[bool] create_ignore_already_exists: If set to true, skip service account creation if a service account with the same email already exists.
473
511
  :param pulumi.Input[str] description: A text description of the service account.
474
512
  Must be less than or equal to 256 UTF-8 bytes.
475
513
  :param pulumi.Input[bool] disabled: Whether a service account is disabled or not. Defaults to `false`. This field has no effect during creation.
@@ -490,6 +528,7 @@ class Account(pulumi.CustomResource):
490
528
  __props__ = _AccountState.__new__(_AccountState)
491
529
 
492
530
  __props__.__dict__["account_id"] = account_id
531
+ __props__.__dict__["create_ignore_already_exists"] = create_ignore_already_exists
493
532
  __props__.__dict__["description"] = description
494
533
  __props__.__dict__["disabled"] = disabled
495
534
  __props__.__dict__["display_name"] = display_name
@@ -511,6 +550,14 @@ class Account(pulumi.CustomResource):
511
550
  """
512
551
  return pulumi.get(self, "account_id")
513
552
 
553
+ @property
554
+ @pulumi.getter(name="createIgnoreAlreadyExists")
555
+ def create_ignore_already_exists(self) -> pulumi.Output[Optional[bool]]:
556
+ """
557
+ If set to true, skip service account creation if a service account with the same email already exists.
558
+ """
559
+ return pulumi.get(self, "create_ignore_already_exists")
560
+
514
561
  @property
515
562
  @pulumi.getter
516
563
  def description(self) -> pulumi.Output[Optional[str]]:
@@ -16,7 +16,8 @@ class ConnectionArgs:
16
16
  def __init__(__self__, *,
17
17
  network: pulumi.Input[str],
18
18
  reserved_peering_ranges: pulumi.Input[Sequence[pulumi.Input[str]]],
19
- service: pulumi.Input[str]):
19
+ service: pulumi.Input[str],
20
+ deletion_policy: Optional[pulumi.Input[str]] = None):
20
21
  """
21
22
  The set of arguments for constructing a Connection resource.
22
23
  :param pulumi.Input[str] network: Name of VPC network connected with service producers using VPC peering.
@@ -26,10 +27,14 @@ class ConnectionArgs:
26
27
  :param pulumi.Input[str] service: Provider peering service that is managing peering connectivity for a
27
28
  service provider organization. For Google services that support this functionality it is
28
29
  'servicenetworking.googleapis.com'.
30
+ :param pulumi.Input[str] deletion_policy: When set to ABANDON, terraform will abandon management of the resource instead of deleting it. Prevents terraform apply
31
+ failures with CloudSQL. Note: The resource will still exist.
29
32
  """
30
33
  pulumi.set(__self__, "network", network)
31
34
  pulumi.set(__self__, "reserved_peering_ranges", reserved_peering_ranges)
32
35
  pulumi.set(__self__, "service", service)
36
+ if deletion_policy is not None:
37
+ pulumi.set(__self__, "deletion_policy", deletion_policy)
33
38
 
34
39
  @property
35
40
  @pulumi.getter
@@ -71,16 +76,32 @@ class ConnectionArgs:
71
76
  def service(self, value: pulumi.Input[str]):
72
77
  pulumi.set(self, "service", value)
73
78
 
79
+ @property
80
+ @pulumi.getter(name="deletionPolicy")
81
+ def deletion_policy(self) -> Optional[pulumi.Input[str]]:
82
+ """
83
+ When set to ABANDON, terraform will abandon management of the resource instead of deleting it. Prevents terraform apply
84
+ failures with CloudSQL. Note: The resource will still exist.
85
+ """
86
+ return pulumi.get(self, "deletion_policy")
87
+
88
+ @deletion_policy.setter
89
+ def deletion_policy(self, value: Optional[pulumi.Input[str]]):
90
+ pulumi.set(self, "deletion_policy", value)
91
+
74
92
 
75
93
  @pulumi.input_type
76
94
  class _ConnectionState:
77
95
  def __init__(__self__, *,
96
+ deletion_policy: Optional[pulumi.Input[str]] = None,
78
97
  network: Optional[pulumi.Input[str]] = None,
79
98
  peering: Optional[pulumi.Input[str]] = None,
80
99
  reserved_peering_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
81
100
  service: Optional[pulumi.Input[str]] = None):
82
101
  """
83
102
  Input properties used for looking up and filtering Connection resources.
103
+ :param pulumi.Input[str] deletion_policy: When set to ABANDON, terraform will abandon management of the resource instead of deleting it. Prevents terraform apply
104
+ failures with CloudSQL. Note: The resource will still exist.
84
105
  :param pulumi.Input[str] network: Name of VPC network connected with service producers using VPC peering.
85
106
  :param pulumi.Input[str] peering: (Computed) The name of the VPC Network Peering connection that was created by the service producer.
86
107
  :param pulumi.Input[Sequence[pulumi.Input[str]]] reserved_peering_ranges: Named IP address range(s) of PEERING type reserved for
@@ -90,6 +111,8 @@ class _ConnectionState:
90
111
  service provider organization. For Google services that support this functionality it is
91
112
  'servicenetworking.googleapis.com'.
92
113
  """
114
+ if deletion_policy is not None:
115
+ pulumi.set(__self__, "deletion_policy", deletion_policy)
93
116
  if network is not None:
94
117
  pulumi.set(__self__, "network", network)
95
118
  if peering is not None:
@@ -99,6 +122,19 @@ class _ConnectionState:
99
122
  if service is not None:
100
123
  pulumi.set(__self__, "service", service)
101
124
 
125
+ @property
126
+ @pulumi.getter(name="deletionPolicy")
127
+ def deletion_policy(self) -> Optional[pulumi.Input[str]]:
128
+ """
129
+ When set to ABANDON, terraform will abandon management of the resource instead of deleting it. Prevents terraform apply
130
+ failures with CloudSQL. Note: The resource will still exist.
131
+ """
132
+ return pulumi.get(self, "deletion_policy")
133
+
134
+ @deletion_policy.setter
135
+ def deletion_policy(self, value: Optional[pulumi.Input[str]]):
136
+ pulumi.set(self, "deletion_policy", value)
137
+
102
138
  @property
103
139
  @pulumi.getter
104
140
  def network(self) -> Optional[pulumi.Input[str]]:
@@ -157,6 +193,7 @@ class Connection(pulumi.CustomResource):
157
193
  def __init__(__self__,
158
194
  resource_name: str,
159
195
  opts: Optional[pulumi.ResourceOptions] = None,
196
+ deletion_policy: Optional[pulumi.Input[str]] = None,
160
197
  network: Optional[pulumi.Input[str]] = None,
161
198
  reserved_peering_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
162
199
  service: Optional[pulumi.Input[str]] = None,
@@ -216,6 +253,8 @@ class Connection(pulumi.CustomResource):
216
253
 
217
254
  :param str resource_name: The name of the resource.
218
255
  :param pulumi.ResourceOptions opts: Options for the resource.
256
+ :param pulumi.Input[str] deletion_policy: When set to ABANDON, terraform will abandon management of the resource instead of deleting it. Prevents terraform apply
257
+ failures with CloudSQL. Note: The resource will still exist.
219
258
  :param pulumi.Input[str] network: Name of VPC network connected with service producers using VPC peering.
220
259
  :param pulumi.Input[Sequence[pulumi.Input[str]]] reserved_peering_ranges: Named IP address range(s) of PEERING type reserved for
221
260
  this service provider. Note that invoking this method with a different range when connection
@@ -298,6 +337,7 @@ class Connection(pulumi.CustomResource):
298
337
  def _internal_init(__self__,
299
338
  resource_name: str,
300
339
  opts: Optional[pulumi.ResourceOptions] = None,
340
+ deletion_policy: Optional[pulumi.Input[str]] = None,
301
341
  network: Optional[pulumi.Input[str]] = None,
302
342
  reserved_peering_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
303
343
  service: Optional[pulumi.Input[str]] = None,
@@ -310,6 +350,7 @@ class Connection(pulumi.CustomResource):
310
350
  raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
311
351
  __props__ = ConnectionArgs.__new__(ConnectionArgs)
312
352
 
353
+ __props__.__dict__["deletion_policy"] = deletion_policy
313
354
  if network is None and not opts.urn:
314
355
  raise TypeError("Missing required property 'network'")
315
356
  __props__.__dict__["network"] = network
@@ -330,6 +371,7 @@ class Connection(pulumi.CustomResource):
330
371
  def get(resource_name: str,
331
372
  id: pulumi.Input[str],
332
373
  opts: Optional[pulumi.ResourceOptions] = None,
374
+ deletion_policy: Optional[pulumi.Input[str]] = None,
333
375
  network: Optional[pulumi.Input[str]] = None,
334
376
  peering: Optional[pulumi.Input[str]] = None,
335
377
  reserved_peering_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
@@ -341,6 +383,8 @@ class Connection(pulumi.CustomResource):
341
383
  :param str resource_name: The unique name of the resulting resource.
342
384
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
343
385
  :param pulumi.ResourceOptions opts: Options for the resource.
386
+ :param pulumi.Input[str] deletion_policy: When set to ABANDON, terraform will abandon management of the resource instead of deleting it. Prevents terraform apply
387
+ failures with CloudSQL. Note: The resource will still exist.
344
388
  :param pulumi.Input[str] network: Name of VPC network connected with service producers using VPC peering.
345
389
  :param pulumi.Input[str] peering: (Computed) The name of the VPC Network Peering connection that was created by the service producer.
346
390
  :param pulumi.Input[Sequence[pulumi.Input[str]]] reserved_peering_ranges: Named IP address range(s) of PEERING type reserved for
@@ -354,12 +398,22 @@ class Connection(pulumi.CustomResource):
354
398
 
355
399
  __props__ = _ConnectionState.__new__(_ConnectionState)
356
400
 
401
+ __props__.__dict__["deletion_policy"] = deletion_policy
357
402
  __props__.__dict__["network"] = network
358
403
  __props__.__dict__["peering"] = peering
359
404
  __props__.__dict__["reserved_peering_ranges"] = reserved_peering_ranges
360
405
  __props__.__dict__["service"] = service
361
406
  return Connection(resource_name, opts=opts, __props__=__props__)
362
407
 
408
+ @property
409
+ @pulumi.getter(name="deletionPolicy")
410
+ def deletion_policy(self) -> pulumi.Output[Optional[str]]:
411
+ """
412
+ When set to ABANDON, terraform will abandon management of the resource instead of deleting it. Prevents terraform apply
413
+ failures with CloudSQL. Note: The resource will still exist.
414
+ """
415
+ return pulumi.get(self, "deletion_policy")
416
+
363
417
  @property
364
418
  @pulumi.getter
365
419
  def network(self) -> pulumi.Output[str]: