pulumi-gcp 7.20.0a1713984378__py3-none-any.whl → 7.21.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. pulumi_gcp/__init__.py +48 -0
  2. pulumi_gcp/alloydb/_inputs.py +74 -0
  3. pulumi_gcp/alloydb/backup.py +0 -12
  4. pulumi_gcp/alloydb/cluster.py +0 -12
  5. pulumi_gcp/alloydb/instance.py +90 -81
  6. pulumi_gcp/alloydb/outputs.py +98 -0
  7. pulumi_gcp/apigee/environment.py +47 -0
  8. pulumi_gcp/apigee/organization.py +162 -0
  9. pulumi_gcp/apigee/sharedflow.py +0 -20
  10. pulumi_gcp/appengine/flexible_app_version.py +0 -20
  11. pulumi_gcp/applicationintegration/__init__.py +1 -0
  12. pulumi_gcp/applicationintegration/_inputs.py +843 -0
  13. pulumi_gcp/applicationintegration/auth_config.py +998 -0
  14. pulumi_gcp/applicationintegration/outputs.py +891 -0
  15. pulumi_gcp/artifactregistry/_inputs.py +186 -0
  16. pulumi_gcp/artifactregistry/outputs.py +297 -4
  17. pulumi_gcp/artifactregistry/repository.py +346 -16
  18. pulumi_gcp/bigquery/table.py +61 -0
  19. pulumi_gcp/bigquerydatapolicy/_inputs.py +21 -4
  20. pulumi_gcp/bigquerydatapolicy/data_policy.py +78 -0
  21. pulumi_gcp/bigquerydatapolicy/outputs.py +16 -3
  22. pulumi_gcp/billing/budget.py +54 -0
  23. pulumi_gcp/certificateauthority/_inputs.py +92 -12
  24. pulumi_gcp/certificateauthority/authority.py +117 -27
  25. pulumi_gcp/certificateauthority/certificate.py +176 -0
  26. pulumi_gcp/certificateauthority/outputs.py +144 -12
  27. pulumi_gcp/cloudbuild/worker_pool.py +0 -12
  28. pulumi_gcp/cloudbuildv2/connection.py +0 -12
  29. pulumi_gcp/cloudbuildv2/repository.py +0 -12
  30. pulumi_gcp/clouddeploy/automation.py +0 -12
  31. pulumi_gcp/clouddeploy/custom_target_type.py +0 -12
  32. pulumi_gcp/clouddeploy/delivery_pipeline.py +0 -12
  33. pulumi_gcp/clouddeploy/target.py +0 -12
  34. pulumi_gcp/cloudfunctionsv2/_inputs.py +16 -0
  35. pulumi_gcp/cloudfunctionsv2/function.py +110 -0
  36. pulumi_gcp/cloudfunctionsv2/outputs.py +25 -0
  37. pulumi_gcp/cloudrunv2/job.py +0 -12
  38. pulumi_gcp/cloudrunv2/service.py +0 -12
  39. pulumi_gcp/composer/__init__.py +1 -0
  40. pulumi_gcp/composer/environment.py +35 -47
  41. pulumi_gcp/composer/user_workloads_secret.py +441 -0
  42. pulumi_gcp/compute/__init__.py +1 -0
  43. pulumi_gcp/compute/_inputs.py +169 -58
  44. pulumi_gcp/compute/forwarding_rule.py +0 -13
  45. pulumi_gcp/compute/get_instance_group_manager.py +11 -1
  46. pulumi_gcp/compute/global_address.py +0 -12
  47. pulumi_gcp/compute/global_forwarding_rule.py +0 -282
  48. pulumi_gcp/compute/instance_from_machine_image.py +14 -46
  49. pulumi_gcp/compute/instance_from_template.py +14 -46
  50. pulumi_gcp/compute/instance_group_manager.py +68 -21
  51. pulumi_gcp/compute/outputs.py +213 -65
  52. pulumi_gcp/compute/region_instance_group_manager.py +61 -14
  53. pulumi_gcp/compute/region_instance_template.py +0 -13
  54. pulumi_gcp/compute/region_target_https_proxy.py +257 -0
  55. pulumi_gcp/compute/region_url_map.py +0 -470
  56. pulumi_gcp/compute/security_policy_rule.py +850 -0
  57. pulumi_gcp/container/attached_cluster.py +0 -12
  58. pulumi_gcp/container/aws_cluster.py +0 -12
  59. pulumi_gcp/container/aws_node_pool.py +0 -12
  60. pulumi_gcp/container/azure_cluster.py +0 -12
  61. pulumi_gcp/container/azure_node_pool.py +0 -12
  62. pulumi_gcp/container/cluster.py +0 -20
  63. pulumi_gcp/container/outputs.py +4 -4
  64. pulumi_gcp/dataflow/flex_template_job.py +0 -39
  65. pulumi_gcp/dataloss/__init__.py +1 -0
  66. pulumi_gcp/dataloss/_inputs.py +1040 -0
  67. pulumi_gcp/dataloss/outputs.py +1123 -0
  68. pulumi_gcp/dataloss/prevention_discovery_config.py +737 -0
  69. pulumi_gcp/dataproc/cluster.py +0 -20
  70. pulumi_gcp/dataproc/workflow_template.py +21 -26
  71. pulumi_gcp/deploymentmanager/deployment.py +0 -34
  72. pulumi_gcp/dns/_inputs.py +2 -130
  73. pulumi_gcp/dns/get_keys.py +1 -1
  74. pulumi_gcp/dns/get_managed_zones.py +3 -9
  75. pulumi_gcp/dns/get_record_set.py +3 -0
  76. pulumi_gcp/dns/outputs.py +36 -58
  77. pulumi_gcp/dns/record_set.py +2 -36
  78. pulumi_gcp/filestore/get_instance.py +11 -1
  79. pulumi_gcp/filestore/instance.py +101 -0
  80. pulumi_gcp/firebase/_inputs.py +16 -0
  81. pulumi_gcp/firebase/android_app.py +0 -27
  82. pulumi_gcp/firebase/app_check_play_integrity_config.py +20 -0
  83. pulumi_gcp/firebase/app_check_recaptcha_enterprise_config.py +10 -0
  84. pulumi_gcp/firebase/app_check_service_config.py +0 -125
  85. pulumi_gcp/firebase/apple_app.py +0 -27
  86. pulumi_gcp/firebase/hosting_custom_domain.py +0 -27
  87. pulumi_gcp/firebase/hosting_version.py +44 -0
  88. pulumi_gcp/firebase/outputs.py +12 -0
  89. pulumi_gcp/firebase/web_app.py +0 -20
  90. pulumi_gcp/firestore/database.py +0 -68
  91. pulumi_gcp/firestore/document.py +4 -4
  92. pulumi_gcp/gkeonprem/bare_metal_admin_cluster.py +0 -12
  93. pulumi_gcp/gkeonprem/bare_metal_cluster.py +0 -12
  94. pulumi_gcp/gkeonprem/bare_metal_node_pool.py +0 -12
  95. pulumi_gcp/gkeonprem/v_mware_cluster.py +0 -12
  96. pulumi_gcp/gkeonprem/v_mware_node_pool.py +0 -12
  97. pulumi_gcp/logging/folder_sink.py +54 -0
  98. pulumi_gcp/logging/organization_sink.py +54 -0
  99. pulumi_gcp/monitoring/_inputs.py +46 -2
  100. pulumi_gcp/monitoring/outputs.py +40 -2
  101. pulumi_gcp/monitoring/uptime_check_config.py +6 -0
  102. pulumi_gcp/netapp/active_directory.py +0 -20
  103. pulumi_gcp/netapp/volume_replication.py +0 -68
  104. pulumi_gcp/networkconnectivity/__init__.py +1 -0
  105. pulumi_gcp/networkconnectivity/internal_range.py +1024 -0
  106. pulumi_gcp/organizations/get_active_folder.py +18 -3
  107. pulumi_gcp/projects/__init__.py +1 -0
  108. pulumi_gcp/projects/iam_member_remove.py +313 -0
  109. pulumi_gcp/provider.py +3 -1
  110. pulumi_gcp/secretmanager/get_secret.py +13 -3
  111. pulumi_gcp/secretmanager/outputs.py +20 -1
  112. pulumi_gcp/secretmanager/secret.py +90 -15
  113. pulumi_gcp/servicenetworking/connection.py +0 -20
  114. pulumi_gcp/spanner/database.py +0 -41
  115. pulumi_gcp/spanner/instance.py +0 -40
  116. pulumi_gcp/storage/__init__.py +1 -0
  117. pulumi_gcp/storage/bucket.py +0 -12
  118. pulumi_gcp/storage/get_bucket_objects.py +153 -0
  119. pulumi_gcp/storage/outputs.py +63 -0
  120. pulumi_gcp/vmwareengine/_inputs.py +63 -5
  121. pulumi_gcp/vmwareengine/get_private_cloud.py +1 -21
  122. pulumi_gcp/vmwareengine/outputs.py +113 -5
  123. pulumi_gcp/vmwareengine/private_cloud.py +0 -94
  124. pulumi_gcp/workbench/instance.py +4 -4
  125. pulumi_gcp/workstations/workstation.py +0 -12
  126. pulumi_gcp/workstations/workstation_cluster.py +32 -12
  127. pulumi_gcp/workstations/workstation_config.py +0 -12
  128. {pulumi_gcp-7.20.0a1713984378.dist-info → pulumi_gcp-7.21.0.dist-info}/METADATA +1 -1
  129. {pulumi_gcp-7.20.0a1713984378.dist-info → pulumi_gcp-7.21.0.dist-info}/RECORD +131 -124
  130. {pulumi_gcp-7.20.0a1713984378.dist-info → pulumi_gcp-7.21.0.dist-info}/WHEEL +0 -0
  131. {pulumi_gcp-7.20.0a1713984378.dist-info → pulumi_gcp-7.21.0.dist-info}/top_level.txt +0 -0
@@ -301,6 +301,45 @@ class DataPolicy(pulumi.CustomResource):
301
301
  policy_tag=policy_tag.name,
302
302
  data_policy_type="COLUMN_LEVEL_SECURITY_POLICY")
303
303
  ```
304
+ ### Bigquery Datapolicy Data Policy Routine
305
+
306
+ ```python
307
+ import pulumi
308
+ import pulumi_gcp as gcp
309
+
310
+ taxonomy = gcp.datacatalog.Taxonomy("taxonomy",
311
+ region="us-central1",
312
+ display_name="taxonomy",
313
+ description="A collection of policy tags",
314
+ activated_policy_types=["FINE_GRAINED_ACCESS_CONTROL"])
315
+ policy_tag = gcp.datacatalog.PolicyTag("policy_tag",
316
+ taxonomy=taxonomy.id,
317
+ display_name="Low security",
318
+ description="A policy tag normally associated with low security items")
319
+ test = gcp.bigquery.Dataset("test",
320
+ dataset_id="dataset_id",
321
+ location="us-central1")
322
+ custom_masking_routine = gcp.bigquery.Routine("custom_masking_routine",
323
+ dataset_id=test.dataset_id,
324
+ routine_id="custom_masking_routine",
325
+ routine_type="SCALAR_FUNCTION",
326
+ language="SQL",
327
+ data_governance_type="DATA_MASKING",
328
+ definition_body="SAFE.REGEXP_REPLACE(ssn, '[0-9]', 'X')",
329
+ return_type="{\\"typeKind\\" : \\"STRING\\"}",
330
+ arguments=[gcp.bigquery.RoutineArgumentArgs(
331
+ name="ssn",
332
+ data_type="{\\"typeKind\\" : \\"STRING\\"}",
333
+ )])
334
+ data_policy = gcp.bigquerydatapolicy.DataPolicy("data_policy",
335
+ location="us-central1",
336
+ data_policy_id="data_policy",
337
+ policy_tag=policy_tag.name,
338
+ data_policy_type="DATA_MASKING_POLICY",
339
+ data_masking_policy=gcp.bigquerydatapolicy.DataPolicyDataMaskingPolicyArgs(
340
+ routine=custom_masking_routine.id,
341
+ ))
342
+ ```
304
343
 
305
344
  ## Import
306
345
 
@@ -379,6 +418,45 @@ class DataPolicy(pulumi.CustomResource):
379
418
  policy_tag=policy_tag.name,
380
419
  data_policy_type="COLUMN_LEVEL_SECURITY_POLICY")
381
420
  ```
421
+ ### Bigquery Datapolicy Data Policy Routine
422
+
423
+ ```python
424
+ import pulumi
425
+ import pulumi_gcp as gcp
426
+
427
+ taxonomy = gcp.datacatalog.Taxonomy("taxonomy",
428
+ region="us-central1",
429
+ display_name="taxonomy",
430
+ description="A collection of policy tags",
431
+ activated_policy_types=["FINE_GRAINED_ACCESS_CONTROL"])
432
+ policy_tag = gcp.datacatalog.PolicyTag("policy_tag",
433
+ taxonomy=taxonomy.id,
434
+ display_name="Low security",
435
+ description="A policy tag normally associated with low security items")
436
+ test = gcp.bigquery.Dataset("test",
437
+ dataset_id="dataset_id",
438
+ location="us-central1")
439
+ custom_masking_routine = gcp.bigquery.Routine("custom_masking_routine",
440
+ dataset_id=test.dataset_id,
441
+ routine_id="custom_masking_routine",
442
+ routine_type="SCALAR_FUNCTION",
443
+ language="SQL",
444
+ data_governance_type="DATA_MASKING",
445
+ definition_body="SAFE.REGEXP_REPLACE(ssn, '[0-9]', 'X')",
446
+ return_type="{\\"typeKind\\" : \\"STRING\\"}",
447
+ arguments=[gcp.bigquery.RoutineArgumentArgs(
448
+ name="ssn",
449
+ data_type="{\\"typeKind\\" : \\"STRING\\"}",
450
+ )])
451
+ data_policy = gcp.bigquerydatapolicy.DataPolicy("data_policy",
452
+ location="us-central1",
453
+ data_policy_id="data_policy",
454
+ policy_tag=policy_tag.name,
455
+ data_policy_type="DATA_MASKING_POLICY",
456
+ data_masking_policy=gcp.bigquerydatapolicy.DataPolicyDataMaskingPolicyArgs(
457
+ routine=custom_masking_routine.id,
458
+ ))
459
+ ```
382
460
 
383
461
  ## Import
384
462
 
@@ -35,22 +35,35 @@ class DataPolicyDataMaskingPolicy(dict):
35
35
  return super().get(key, default)
36
36
 
37
37
  def __init__(__self__, *,
38
- predefined_expression: str):
38
+ predefined_expression: Optional[str] = None,
39
+ routine: Optional[str] = None):
39
40
  """
40
41
  :param str predefined_expression: The available masking rules. Learn more here: https://cloud.google.com/bigquery/docs/column-data-masking-intro#masking_options.
41
42
  Possible values are: `SHA256`, `ALWAYS_NULL`, `DEFAULT_MASKING_VALUE`, `LAST_FOUR_CHARACTERS`, `FIRST_FOUR_CHARACTERS`, `EMAIL_MASK`, `DATE_YEAR_MASK`.
43
+ :param str routine: The name of the BigQuery routine that contains the custom masking routine, in the format of projects/{projectNumber}/datasets/{dataset_id}/routines/{routine_id}.
42
44
  """
43
- pulumi.set(__self__, "predefined_expression", predefined_expression)
45
+ if predefined_expression is not None:
46
+ pulumi.set(__self__, "predefined_expression", predefined_expression)
47
+ if routine is not None:
48
+ pulumi.set(__self__, "routine", routine)
44
49
 
45
50
  @property
46
51
  @pulumi.getter(name="predefinedExpression")
47
- def predefined_expression(self) -> str:
52
+ def predefined_expression(self) -> Optional[str]:
48
53
  """
49
54
  The available masking rules. Learn more here: https://cloud.google.com/bigquery/docs/column-data-masking-intro#masking_options.
50
55
  Possible values are: `SHA256`, `ALWAYS_NULL`, `DEFAULT_MASKING_VALUE`, `LAST_FOUR_CHARACTERS`, `FIRST_FOUR_CHARACTERS`, `EMAIL_MASK`, `DATE_YEAR_MASK`.
51
56
  """
52
57
  return pulumi.get(self, "predefined_expression")
53
58
 
59
+ @property
60
+ @pulumi.getter
61
+ def routine(self) -> Optional[str]:
62
+ """
63
+ The name of the BigQuery routine that contains the custom masking routine, in the format of projects/{projectNumber}/datasets/{dataset_id}/routines/{routine_id}.
64
+ """
65
+ return pulumi.get(self, "routine")
66
+
54
67
 
55
68
  @pulumi.output_type
56
69
  class DataPolicyIamBindingCondition(dict):
@@ -21,6 +21,7 @@ class BudgetArgs:
21
21
  all_updates_rule: Optional[pulumi.Input['BudgetAllUpdatesRuleArgs']] = None,
22
22
  budget_filter: Optional[pulumi.Input['BudgetBudgetFilterArgs']] = None,
23
23
  display_name: Optional[pulumi.Input[str]] = None,
24
+ ownership_scope: Optional[pulumi.Input[str]] = None,
24
25
  threshold_rules: Optional[pulumi.Input[Sequence[pulumi.Input['BudgetThresholdRuleArgs']]]] = None):
25
26
  """
26
27
  The set of arguments for constructing a Budget resource.
@@ -31,6 +32,8 @@ class BudgetArgs:
31
32
  using threshold rules.
32
33
  :param pulumi.Input['BudgetBudgetFilterArgs'] budget_filter: Filters that define which resources are used to compute the actual spend against the budget.
33
34
  :param pulumi.Input[str] display_name: User data for display name in UI. Must be <= 60 chars.
35
+ :param pulumi.Input[str] ownership_scope: The ownership scope of the budget. The ownership scope and users' IAM permissions determine who has full access to the
36
+ budget's data. Possible values: ["OWNERSHIP_SCOPE_UNSPECIFIED", "ALL_USERS", "BILLING_ACCOUNT"]
34
37
  :param pulumi.Input[Sequence[pulumi.Input['BudgetThresholdRuleArgs']]] threshold_rules: Rules that trigger alerts (notifications of thresholds being crossed) when spend exceeds the specified percentages of
35
38
  the budget.
36
39
  """
@@ -42,6 +45,8 @@ class BudgetArgs:
42
45
  pulumi.set(__self__, "budget_filter", budget_filter)
43
46
  if display_name is not None:
44
47
  pulumi.set(__self__, "display_name", display_name)
48
+ if ownership_scope is not None:
49
+ pulumi.set(__self__, "ownership_scope", ownership_scope)
45
50
  if threshold_rules is not None:
46
51
  pulumi.set(__self__, "threshold_rules", threshold_rules)
47
52
 
@@ -107,6 +112,19 @@ class BudgetArgs:
107
112
  def display_name(self, value: Optional[pulumi.Input[str]]):
108
113
  pulumi.set(self, "display_name", value)
109
114
 
115
+ @property
116
+ @pulumi.getter(name="ownershipScope")
117
+ def ownership_scope(self) -> Optional[pulumi.Input[str]]:
118
+ """
119
+ The ownership scope of the budget. The ownership scope and users' IAM permissions determine who has full access to the
120
+ budget's data. Possible values: ["OWNERSHIP_SCOPE_UNSPECIFIED", "ALL_USERS", "BILLING_ACCOUNT"]
121
+ """
122
+ return pulumi.get(self, "ownership_scope")
123
+
124
+ @ownership_scope.setter
125
+ def ownership_scope(self, value: Optional[pulumi.Input[str]]):
126
+ pulumi.set(self, "ownership_scope", value)
127
+
110
128
  @property
111
129
  @pulumi.getter(name="thresholdRules")
112
130
  def threshold_rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['BudgetThresholdRuleArgs']]]]:
@@ -130,6 +148,7 @@ class _BudgetState:
130
148
  budget_filter: Optional[pulumi.Input['BudgetBudgetFilterArgs']] = None,
131
149
  display_name: Optional[pulumi.Input[str]] = None,
132
150
  name: Optional[pulumi.Input[str]] = None,
151
+ ownership_scope: Optional[pulumi.Input[str]] = None,
133
152
  threshold_rules: Optional[pulumi.Input[Sequence[pulumi.Input['BudgetThresholdRuleArgs']]]] = None):
134
153
  """
135
154
  Input properties used for looking up and filtering Budget resources.
@@ -143,6 +162,8 @@ class _BudgetState:
143
162
  :param pulumi.Input[str] name: Resource name of the budget. The resource name
144
163
  implies the scope of a budget. Values are of the form
145
164
  billingAccounts/{billingAccountId}/budgets/{budgetId}.
165
+ :param pulumi.Input[str] ownership_scope: The ownership scope of the budget. The ownership scope and users' IAM permissions determine who has full access to the
166
+ budget's data. Possible values: ["OWNERSHIP_SCOPE_UNSPECIFIED", "ALL_USERS", "BILLING_ACCOUNT"]
146
167
  :param pulumi.Input[Sequence[pulumi.Input['BudgetThresholdRuleArgs']]] threshold_rules: Rules that trigger alerts (notifications of thresholds being crossed) when spend exceeds the specified percentages of
147
168
  the budget.
148
169
  """
@@ -158,6 +179,8 @@ class _BudgetState:
158
179
  pulumi.set(__self__, "display_name", display_name)
159
180
  if name is not None:
160
181
  pulumi.set(__self__, "name", name)
182
+ if ownership_scope is not None:
183
+ pulumi.set(__self__, "ownership_scope", ownership_scope)
161
184
  if threshold_rules is not None:
162
185
  pulumi.set(__self__, "threshold_rules", threshold_rules)
163
186
 
@@ -237,6 +260,19 @@ class _BudgetState:
237
260
  def name(self, value: Optional[pulumi.Input[str]]):
238
261
  pulumi.set(self, "name", value)
239
262
 
263
+ @property
264
+ @pulumi.getter(name="ownershipScope")
265
+ def ownership_scope(self) -> Optional[pulumi.Input[str]]:
266
+ """
267
+ The ownership scope of the budget. The ownership scope and users' IAM permissions determine who has full access to the
268
+ budget's data. Possible values: ["OWNERSHIP_SCOPE_UNSPECIFIED", "ALL_USERS", "BILLING_ACCOUNT"]
269
+ """
270
+ return pulumi.get(self, "ownership_scope")
271
+
272
+ @ownership_scope.setter
273
+ def ownership_scope(self, value: Optional[pulumi.Input[str]]):
274
+ pulumi.set(self, "ownership_scope", value)
275
+
240
276
  @property
241
277
  @pulumi.getter(name="thresholdRules")
242
278
  def threshold_rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['BudgetThresholdRuleArgs']]]]:
@@ -261,6 +297,7 @@ class Budget(pulumi.CustomResource):
261
297
  billing_account: Optional[pulumi.Input[str]] = None,
262
298
  budget_filter: Optional[pulumi.Input[pulumi.InputType['BudgetBudgetFilterArgs']]] = None,
263
299
  display_name: Optional[pulumi.Input[str]] = None,
300
+ ownership_scope: Optional[pulumi.Input[str]] = None,
264
301
  threshold_rules: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['BudgetThresholdRuleArgs']]]]] = None,
265
302
  __props__=None):
266
303
  """
@@ -475,6 +512,8 @@ class Budget(pulumi.CustomResource):
475
512
  :param pulumi.Input[str] billing_account: ID of the billing account to set a budget on.
476
513
  :param pulumi.Input[pulumi.InputType['BudgetBudgetFilterArgs']] budget_filter: Filters that define which resources are used to compute the actual spend against the budget.
477
514
  :param pulumi.Input[str] display_name: User data for display name in UI. Must be <= 60 chars.
515
+ :param pulumi.Input[str] ownership_scope: The ownership scope of the budget. The ownership scope and users' IAM permissions determine who has full access to the
516
+ budget's data. Possible values: ["OWNERSHIP_SCOPE_UNSPECIFIED", "ALL_USERS", "BILLING_ACCOUNT"]
478
517
  :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['BudgetThresholdRuleArgs']]]] threshold_rules: Rules that trigger alerts (notifications of thresholds being crossed) when spend exceeds the specified percentages of
479
518
  the budget.
480
519
  """
@@ -707,6 +746,7 @@ class Budget(pulumi.CustomResource):
707
746
  billing_account: Optional[pulumi.Input[str]] = None,
708
747
  budget_filter: Optional[pulumi.Input[pulumi.InputType['BudgetBudgetFilterArgs']]] = None,
709
748
  display_name: Optional[pulumi.Input[str]] = None,
749
+ ownership_scope: Optional[pulumi.Input[str]] = None,
710
750
  threshold_rules: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['BudgetThresholdRuleArgs']]]]] = None,
711
751
  __props__=None):
712
752
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
@@ -726,6 +766,7 @@ class Budget(pulumi.CustomResource):
726
766
  __props__.__dict__["billing_account"] = billing_account
727
767
  __props__.__dict__["budget_filter"] = budget_filter
728
768
  __props__.__dict__["display_name"] = display_name
769
+ __props__.__dict__["ownership_scope"] = ownership_scope
729
770
  __props__.__dict__["threshold_rules"] = threshold_rules
730
771
  __props__.__dict__["name"] = None
731
772
  super(Budget, __self__).__init__(
@@ -744,6 +785,7 @@ class Budget(pulumi.CustomResource):
744
785
  budget_filter: Optional[pulumi.Input[pulumi.InputType['BudgetBudgetFilterArgs']]] = None,
745
786
  display_name: Optional[pulumi.Input[str]] = None,
746
787
  name: Optional[pulumi.Input[str]] = None,
788
+ ownership_scope: Optional[pulumi.Input[str]] = None,
747
789
  threshold_rules: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['BudgetThresholdRuleArgs']]]]] = None) -> 'Budget':
748
790
  """
749
791
  Get an existing Budget resource's state with the given name, id, and optional extra
@@ -762,6 +804,8 @@ class Budget(pulumi.CustomResource):
762
804
  :param pulumi.Input[str] name: Resource name of the budget. The resource name
763
805
  implies the scope of a budget. Values are of the form
764
806
  billingAccounts/{billingAccountId}/budgets/{budgetId}.
807
+ :param pulumi.Input[str] ownership_scope: The ownership scope of the budget. The ownership scope and users' IAM permissions determine who has full access to the
808
+ budget's data. Possible values: ["OWNERSHIP_SCOPE_UNSPECIFIED", "ALL_USERS", "BILLING_ACCOUNT"]
765
809
  :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['BudgetThresholdRuleArgs']]]] threshold_rules: Rules that trigger alerts (notifications of thresholds being crossed) when spend exceeds the specified percentages of
766
810
  the budget.
767
811
  """
@@ -775,6 +819,7 @@ class Budget(pulumi.CustomResource):
775
819
  __props__.__dict__["budget_filter"] = budget_filter
776
820
  __props__.__dict__["display_name"] = display_name
777
821
  __props__.__dict__["name"] = name
822
+ __props__.__dict__["ownership_scope"] = ownership_scope
778
823
  __props__.__dict__["threshold_rules"] = threshold_rules
779
824
  return Budget(resource_name, opts=opts, __props__=__props__)
780
825
 
@@ -830,6 +875,15 @@ class Budget(pulumi.CustomResource):
830
875
  """
831
876
  return pulumi.get(self, "name")
832
877
 
878
+ @property
879
+ @pulumi.getter(name="ownershipScope")
880
+ def ownership_scope(self) -> pulumi.Output[Optional[str]]:
881
+ """
882
+ The ownership scope of the budget. The ownership scope and users' IAM permissions determine who has full access to the
883
+ budget's data. Possible values: ["OWNERSHIP_SCOPE_UNSPECIFIED", "ALL_USERS", "BILLING_ACCOUNT"]
884
+ """
885
+ return pulumi.get(self, "ownership_scope")
886
+
833
887
  @property
834
888
  @pulumi.getter(name="thresholdRules")
835
889
  def threshold_rules(self) -> pulumi.Output[Optional[Sequence['outputs.BudgetThresholdRule']]]:
@@ -15,6 +15,7 @@ __all__ = [
15
15
  'AuthorityConfigSubjectConfigArgs',
16
16
  'AuthorityConfigSubjectConfigSubjectArgs',
17
17
  'AuthorityConfigSubjectConfigSubjectAltNameArgs',
18
+ 'AuthorityConfigSubjectKeyIdArgs',
18
19
  'AuthorityConfigX509ConfigArgs',
19
20
  'AuthorityConfigX509ConfigAdditionalExtensionArgs',
20
21
  'AuthorityConfigX509ConfigAdditionalExtensionObjectIdArgs',
@@ -73,6 +74,7 @@ __all__ = [
73
74
  'CertificateConfigSubjectConfigArgs',
74
75
  'CertificateConfigSubjectConfigSubjectArgs',
75
76
  'CertificateConfigSubjectConfigSubjectAltNameArgs',
77
+ 'CertificateConfigSubjectKeyIdArgs',
76
78
  'CertificateConfigX509ConfigArgs',
77
79
  'CertificateConfigX509ConfigAdditionalExtensionArgs',
78
80
  'CertificateConfigX509ConfigAdditionalExtensionObjectIdArgs',
@@ -152,18 +154,20 @@ class AuthorityAccessUrlArgs:
152
154
  class AuthorityConfigArgs:
153
155
  def __init__(__self__, *,
154
156
  subject_config: pulumi.Input['AuthorityConfigSubjectConfigArgs'],
155
- x509_config: pulumi.Input['AuthorityConfigX509ConfigArgs']):
157
+ x509_config: pulumi.Input['AuthorityConfigX509ConfigArgs'],
158
+ subject_key_id: Optional[pulumi.Input['AuthorityConfigSubjectKeyIdArgs']] = None):
156
159
  """
157
160
  :param pulumi.Input['AuthorityConfigSubjectConfigArgs'] subject_config: Specifies some of the values in a certificate that are related to the subject.
158
161
  Structure is documented below.
159
-
160
-
161
- <a name="nested_x509_config"></a>The `x509_config` block supports:
162
162
  :param pulumi.Input['AuthorityConfigX509ConfigArgs'] x509_config: Describes how some of the technical X.509 fields in a certificate should be populated.
163
163
  Structure is documented below.
164
+ :param pulumi.Input['AuthorityConfigSubjectKeyIdArgs'] subject_key_id: When specified this provides a custom SKI to be used in the certificate. This should only be used to maintain a SKI of an existing CA originally created outside CA service, which was not generated using method (1) described in RFC 5280 section 4.2.1.2..
165
+ Structure is documented below.
164
166
  """
165
167
  pulumi.set(__self__, "subject_config", subject_config)
166
168
  pulumi.set(__self__, "x509_config", x509_config)
169
+ if subject_key_id is not None:
170
+ pulumi.set(__self__, "subject_key_id", subject_key_id)
167
171
 
168
172
  @property
169
173
  @pulumi.getter(name="subjectConfig")
@@ -171,9 +175,6 @@ class AuthorityConfigArgs:
171
175
  """
172
176
  Specifies some of the values in a certificate that are related to the subject.
173
177
  Structure is documented below.
174
-
175
-
176
- <a name="nested_x509_config"></a>The `x509_config` block supports:
177
178
  """
178
179
  return pulumi.get(self, "subject_config")
179
180
 
@@ -194,6 +195,19 @@ class AuthorityConfigArgs:
194
195
  def x509_config(self, value: pulumi.Input['AuthorityConfigX509ConfigArgs']):
195
196
  pulumi.set(self, "x509_config", value)
196
197
 
198
+ @property
199
+ @pulumi.getter(name="subjectKeyId")
200
+ def subject_key_id(self) -> Optional[pulumi.Input['AuthorityConfigSubjectKeyIdArgs']]:
201
+ """
202
+ When specified this provides a custom SKI to be used in the certificate. This should only be used to maintain a SKI of an existing CA originally created outside CA service, which was not generated using method (1) described in RFC 5280 section 4.2.1.2..
203
+ Structure is documented below.
204
+ """
205
+ return pulumi.get(self, "subject_key_id")
206
+
207
+ @subject_key_id.setter
208
+ def subject_key_id(self, value: Optional[pulumi.Input['AuthorityConfigSubjectKeyIdArgs']]):
209
+ pulumi.set(self, "subject_key_id", value)
210
+
197
211
 
198
212
  @pulumi.input_type
199
213
  class AuthorityConfigSubjectConfigArgs:
@@ -441,6 +455,33 @@ class AuthorityConfigSubjectConfigSubjectAltNameArgs:
441
455
  pulumi.set(self, "uris", value)
442
456
 
443
457
 
458
+ @pulumi.input_type
459
+ class AuthorityConfigSubjectKeyIdArgs:
460
+ def __init__(__self__, *,
461
+ key_id: Optional[pulumi.Input[str]] = None):
462
+ """
463
+ :param pulumi.Input[str] key_id: The value of the KeyId in lowercase hexidecimal.
464
+
465
+ <a name="nested_x509_config"></a>The `x509_config` block supports:
466
+ """
467
+ if key_id is not None:
468
+ pulumi.set(__self__, "key_id", key_id)
469
+
470
+ @property
471
+ @pulumi.getter(name="keyId")
472
+ def key_id(self) -> Optional[pulumi.Input[str]]:
473
+ """
474
+ The value of the KeyId in lowercase hexidecimal.
475
+
476
+ <a name="nested_x509_config"></a>The `x509_config` block supports:
477
+ """
478
+ return pulumi.get(self, "key_id")
479
+
480
+ @key_id.setter
481
+ def key_id(self, value: Optional[pulumi.Input[str]]):
482
+ pulumi.set(self, "key_id", value)
483
+
484
+
444
485
  @pulumi.input_type
445
486
  class AuthorityConfigX509ConfigArgs:
446
487
  def __init__(__self__, *,
@@ -3449,8 +3490,7 @@ class CertificateCertificateDescriptionSubjectKeyIdArgs:
3449
3490
  def __init__(__self__, *,
3450
3491
  key_id: Optional[pulumi.Input[str]] = None):
3451
3492
  """
3452
- :param pulumi.Input[str] key_id: (Output)
3453
- Optional. The value of this KeyId encoded in lowercase hexadecimal. This is most likely the 160 bit SHA-1 hash of the public key.
3493
+ :param pulumi.Input[str] key_id: The value of the KeyId in lowercase hexidecimal.
3454
3494
  """
3455
3495
  if key_id is not None:
3456
3496
  pulumi.set(__self__, "key_id", key_id)
@@ -3459,8 +3499,7 @@ class CertificateCertificateDescriptionSubjectKeyIdArgs:
3459
3499
  @pulumi.getter(name="keyId")
3460
3500
  def key_id(self) -> Optional[pulumi.Input[str]]:
3461
3501
  """
3462
- (Output)
3463
- Optional. The value of this KeyId encoded in lowercase hexadecimal. This is most likely the 160 bit SHA-1 hash of the public key.
3502
+ The value of the KeyId in lowercase hexidecimal.
3464
3503
  """
3465
3504
  return pulumi.get(self, "key_id")
3466
3505
 
@@ -4284,7 +4323,8 @@ class CertificateConfigArgs:
4284
4323
  def __init__(__self__, *,
4285
4324
  public_key: pulumi.Input['CertificateConfigPublicKeyArgs'],
4286
4325
  subject_config: pulumi.Input['CertificateConfigSubjectConfigArgs'],
4287
- x509_config: pulumi.Input['CertificateConfigX509ConfigArgs']):
4326
+ x509_config: pulumi.Input['CertificateConfigX509ConfigArgs'],
4327
+ subject_key_id: Optional[pulumi.Input['CertificateConfigSubjectKeyIdArgs']] = None):
4288
4328
  """
4289
4329
  :param pulumi.Input['CertificateConfigPublicKeyArgs'] public_key: A PublicKey describes a public key.
4290
4330
  Structure is documented below.
@@ -4295,10 +4335,14 @@ class CertificateConfigArgs:
4295
4335
  Structure is documented below.
4296
4336
  :param pulumi.Input['CertificateConfigX509ConfigArgs'] x509_config: Describes how some of the technical X.509 fields in a certificate should be populated.
4297
4337
  Structure is documented below.
4338
+ :param pulumi.Input['CertificateConfigSubjectKeyIdArgs'] subject_key_id: When specified this provides a custom SKI to be used in the certificate. This should only be used to maintain a SKI of an existing CA originally created outside CA service, which was not generated using method (1) described in RFC 5280 section 4.2.1.2..
4339
+ Structure is documented below.
4298
4340
  """
4299
4341
  pulumi.set(__self__, "public_key", public_key)
4300
4342
  pulumi.set(__self__, "subject_config", subject_config)
4301
4343
  pulumi.set(__self__, "x509_config", x509_config)
4344
+ if subject_key_id is not None:
4345
+ pulumi.set(__self__, "subject_key_id", subject_key_id)
4302
4346
 
4303
4347
  @property
4304
4348
  @pulumi.getter(name="publicKey")
@@ -4342,6 +4386,19 @@ class CertificateConfigArgs:
4342
4386
  def x509_config(self, value: pulumi.Input['CertificateConfigX509ConfigArgs']):
4343
4387
  pulumi.set(self, "x509_config", value)
4344
4388
 
4389
+ @property
4390
+ @pulumi.getter(name="subjectKeyId")
4391
+ def subject_key_id(self) -> Optional[pulumi.Input['CertificateConfigSubjectKeyIdArgs']]:
4392
+ """
4393
+ When specified this provides a custom SKI to be used in the certificate. This should only be used to maintain a SKI of an existing CA originally created outside CA service, which was not generated using method (1) described in RFC 5280 section 4.2.1.2..
4394
+ Structure is documented below.
4395
+ """
4396
+ return pulumi.get(self, "subject_key_id")
4397
+
4398
+ @subject_key_id.setter
4399
+ def subject_key_id(self, value: Optional[pulumi.Input['CertificateConfigSubjectKeyIdArgs']]):
4400
+ pulumi.set(self, "subject_key_id", value)
4401
+
4345
4402
 
4346
4403
  @pulumi.input_type
4347
4404
  class CertificateConfigPublicKeyArgs:
@@ -4629,6 +4686,29 @@ class CertificateConfigSubjectConfigSubjectAltNameArgs:
4629
4686
  pulumi.set(self, "uris", value)
4630
4687
 
4631
4688
 
4689
+ @pulumi.input_type
4690
+ class CertificateConfigSubjectKeyIdArgs:
4691
+ def __init__(__self__, *,
4692
+ key_id: Optional[pulumi.Input[str]] = None):
4693
+ """
4694
+ :param pulumi.Input[str] key_id: The value of the KeyId in lowercase hexidecimal.
4695
+ """
4696
+ if key_id is not None:
4697
+ pulumi.set(__self__, "key_id", key_id)
4698
+
4699
+ @property
4700
+ @pulumi.getter(name="keyId")
4701
+ def key_id(self) -> Optional[pulumi.Input[str]]:
4702
+ """
4703
+ The value of the KeyId in lowercase hexidecimal.
4704
+ """
4705
+ return pulumi.get(self, "key_id")
4706
+
4707
+ @key_id.setter
4708
+ def key_id(self, value: Optional[pulumi.Input[str]]):
4709
+ pulumi.set(self, "key_id", value)
4710
+
4711
+
4632
4712
  @pulumi.input_type
4633
4713
  class CertificateConfigX509ConfigArgs:
4634
4714
  def __init__(__self__, *,