pulumi-gcp 8.36.0a1750484065__py3-none-any.whl → 8.37.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 (117) hide show
  1. pulumi_gcp/__init__.py +59 -0
  2. pulumi_gcp/alloydb/_inputs.py +26 -0
  3. pulumi_gcp/alloydb/outputs.py +34 -1
  4. pulumi_gcp/apihub/__init__.py +2 -0
  5. pulumi_gcp/apihub/_inputs.py +1658 -0
  6. pulumi_gcp/apihub/outputs.py +1374 -0
  7. pulumi_gcp/apihub/plugin.py +1146 -0
  8. pulumi_gcp/apihub/plugin_instance.py +808 -0
  9. pulumi_gcp/bigquery/table.py +16 -12
  10. pulumi_gcp/bigqueryanalyticshub/_inputs.py +56 -6
  11. pulumi_gcp/bigqueryanalyticshub/data_exchange.py +73 -0
  12. pulumi_gcp/bigqueryanalyticshub/listing.py +201 -48
  13. pulumi_gcp/bigqueryanalyticshub/listing_subscription.py +28 -0
  14. pulumi_gcp/bigqueryanalyticshub/outputs.py +50 -4
  15. pulumi_gcp/bigtable/table.py +82 -0
  16. pulumi_gcp/cloudidentity/group_membership.py +47 -0
  17. pulumi_gcp/cloudidentity/outputs.py +11 -0
  18. pulumi_gcp/cloudquota/s_quota_adjuster_settings.py +64 -8
  19. pulumi_gcp/cloudrunv2/_inputs.py +65 -9
  20. pulumi_gcp/cloudrunv2/job.py +44 -0
  21. pulumi_gcp/cloudrunv2/outputs.py +73 -8
  22. pulumi_gcp/cloudrunv2/service.py +0 -2
  23. pulumi_gcp/cloudrunv2/worker_pool.py +18 -20
  24. pulumi_gcp/compute/__init__.py +1 -0
  25. pulumi_gcp/compute/_inputs.py +787 -18
  26. pulumi_gcp/compute/disk.py +35 -28
  27. pulumi_gcp/compute/firewall_policy_rule.py +207 -0
  28. pulumi_gcp/compute/get_instance_group_manager.py +12 -1
  29. pulumi_gcp/compute/get_region_disk.py +12 -1
  30. pulumi_gcp/compute/instance.py +2 -2
  31. pulumi_gcp/compute/instance_group_manager.py +165 -14
  32. pulumi_gcp/compute/instance_template.py +2 -2
  33. pulumi_gcp/compute/interconnect.py +43 -11
  34. pulumi_gcp/compute/network.py +56 -0
  35. pulumi_gcp/compute/network_firewall_policy.py +68 -0
  36. pulumi_gcp/compute/network_firewall_policy_with_rules.py +61 -0
  37. pulumi_gcp/compute/node_template.py +21 -0
  38. pulumi_gcp/compute/outputs.py +620 -12
  39. pulumi_gcp/compute/region_disk.py +114 -0
  40. pulumi_gcp/compute/region_network_firewall_policy.py +90 -0
  41. pulumi_gcp/compute/region_network_firewall_policy_with_rules.py +109 -0
  42. pulumi_gcp/compute/service_attachment.py +76 -8
  43. pulumi_gcp/compute/wire_group.py +751 -0
  44. pulumi_gcp/config/__init__.pyi +2 -0
  45. pulumi_gcp/config/vars.py +4 -0
  46. pulumi_gcp/contactcenterinsights/__init__.py +9 -0
  47. pulumi_gcp/contactcenterinsights/view.py +526 -0
  48. pulumi_gcp/container/_inputs.py +207 -28
  49. pulumi_gcp/container/cluster.py +54 -0
  50. pulumi_gcp/container/get_cluster.py +12 -1
  51. pulumi_gcp/container/get_engine_versions.py +15 -1
  52. pulumi_gcp/container/node_pool.py +14 -0
  53. pulumi_gcp/container/outputs.py +295 -21
  54. pulumi_gcp/dataplex/_inputs.py +431 -6
  55. pulumi_gcp/dataplex/datascan.py +251 -0
  56. pulumi_gcp/dataplex/entry_type.py +2 -2
  57. pulumi_gcp/dataplex/glossary_category.py +8 -8
  58. pulumi_gcp/dataplex/glossary_term.py +8 -8
  59. pulumi_gcp/dataplex/outputs.py +353 -4
  60. pulumi_gcp/dataplex/task.py +16 -16
  61. pulumi_gcp/dataproc/__init__.py +1 -0
  62. pulumi_gcp/dataproc/_inputs.py +486 -0
  63. pulumi_gcp/dataproc/batch.py +10 -10
  64. pulumi_gcp/dataproc/outputs.py +407 -0
  65. pulumi_gcp/dataproc/session_template.py +1084 -0
  66. pulumi_gcp/diagflow/__init__.py +2 -0
  67. pulumi_gcp/diagflow/_inputs.py +479 -0
  68. pulumi_gcp/diagflow/cx_generative_settings.py +625 -0
  69. pulumi_gcp/diagflow/cx_tool.py +2 -2
  70. pulumi_gcp/diagflow/encryption_spec.py +382 -0
  71. pulumi_gcp/diagflow/outputs.py +416 -0
  72. pulumi_gcp/dns/record_set.py +4 -2
  73. pulumi_gcp/firestore/database.py +0 -9
  74. pulumi_gcp/firestore/field.py +6 -6
  75. pulumi_gcp/gkehub/membership_binding.py +6 -6
  76. pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
  77. pulumi_gcp/gkehub/namespace.py +4 -4
  78. pulumi_gcp/gkehub/scope_rbac_role_binding.py +8 -8
  79. pulumi_gcp/iam/_inputs.py +36 -0
  80. pulumi_gcp/iam/outputs.py +38 -0
  81. pulumi_gcp/iam/workload_identity_pool_managed_identity.py +88 -2
  82. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  83. pulumi_gcp/integrationconnectors/managed_zone.py +8 -8
  84. pulumi_gcp/kms/autokey_config.py +28 -0
  85. pulumi_gcp/kms/get_autokey_config.py +12 -1
  86. pulumi_gcp/lustre/get_instance.py +12 -1
  87. pulumi_gcp/lustre/instance.py +143 -86
  88. pulumi_gcp/managedkafka/connect_cluster.py +4 -4
  89. pulumi_gcp/managedkafka/connector.py +4 -4
  90. pulumi_gcp/memorystore/get_instance.py +12 -1
  91. pulumi_gcp/memorystore/instance.py +49 -0
  92. pulumi_gcp/monitoring/metric_descriptor.py +55 -57
  93. pulumi_gcp/networkconnectivity/spoke.py +14 -14
  94. pulumi_gcp/notebooks/instance.py +8 -8
  95. pulumi_gcp/orgpolicy/policy.py +2 -2
  96. pulumi_gcp/provider.py +20 -0
  97. pulumi_gcp/pubsub/subscription.py +6 -6
  98. pulumi_gcp/pulumi-plugin.json +1 -1
  99. pulumi_gcp/redis/get_instance.py +12 -1
  100. pulumi_gcp/redis/instance.py +44 -0
  101. pulumi_gcp/secretmanager/get_regional_secret.py +12 -1
  102. pulumi_gcp/secretmanager/outputs.py +7 -0
  103. pulumi_gcp/secretmanager/regional_secret.py +38 -2
  104. pulumi_gcp/spanner/_inputs.py +24 -1
  105. pulumi_gcp/spanner/outputs.py +17 -1
  106. pulumi_gcp/storage/_inputs.py +43 -3
  107. pulumi_gcp/storage/bucket_object.py +56 -0
  108. pulumi_gcp/storage/get_bucket_object.py +12 -1
  109. pulumi_gcp/storage/get_bucket_object_content.py +12 -1
  110. pulumi_gcp/storage/outputs.py +53 -3
  111. pulumi_gcp/vertex/ai_endpoint.py +4 -4
  112. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  113. pulumi_gcp/workbench/instance.py +2 -0
  114. {pulumi_gcp-8.36.0a1750484065.dist-info → pulumi_gcp-8.37.0.dist-info}/METADATA +2 -2
  115. {pulumi_gcp-8.36.0a1750484065.dist-info → pulumi_gcp-8.37.0.dist-info}/RECORD +117 -109
  116. {pulumi_gcp-8.36.0a1750484065.dist-info → pulumi_gcp-8.37.0.dist-info}/WHEEL +0 -0
  117. {pulumi_gcp-8.36.0a1750484065.dist-info → pulumi_gcp-8.37.0.dist-info}/top_level.txt +0 -0
@@ -55,11 +55,12 @@ class DiskArgs:
55
55
  zone: Optional[pulumi.Input[builtins.str]] = None):
56
56
  """
57
57
  The set of arguments for constructing a Disk resource.
58
- :param pulumi.Input[builtins.str] access_mode: The accessMode of the disk.
58
+ :param pulumi.Input[builtins.str] access_mode: The access mode of the disk.
59
59
  For example:
60
- * READ_WRITE_SINGLE
61
- * READ_WRITE_MANY
62
- * READ_ONLY_SINGLE
60
+ * READ_WRITE_SINGLE: The default AccessMode, means the disk can be attached to single instance in RW mode.
61
+ * READ_WRITE_MANY: The AccessMode means the disk can be attached to multiple instances in RW mode.
62
+ * READ_ONLY_SINGLE: The AccessMode means the disk can be attached to multiple instances in RO mode.
63
+ The AccessMode is only valid for Hyperdisk disk types.
63
64
  :param pulumi.Input[builtins.str] architecture: The architecture of the disk. Values include `X86_64`, `ARM64`.
64
65
  :param pulumi.Input['DiskAsyncPrimaryDiskArgs'] async_primary_disk: A nested object resource.
65
66
  Structure is documented below.
@@ -256,11 +257,12 @@ class DiskArgs:
256
257
  @pulumi.getter(name="accessMode")
257
258
  def access_mode(self) -> Optional[pulumi.Input[builtins.str]]:
258
259
  """
259
- The accessMode of the disk.
260
+ The access mode of the disk.
260
261
  For example:
261
- * READ_WRITE_SINGLE
262
- * READ_WRITE_MANY
263
- * READ_ONLY_SINGLE
262
+ * READ_WRITE_SINGLE: The default AccessMode, means the disk can be attached to single instance in RW mode.
263
+ * READ_WRITE_MANY: The AccessMode means the disk can be attached to multiple instances in RW mode.
264
+ * READ_ONLY_SINGLE: The AccessMode means the disk can be attached to multiple instances in RO mode.
265
+ The AccessMode is only valid for Hyperdisk disk types.
264
266
  """
265
267
  return pulumi.get(self, "access_mode")
266
268
 
@@ -774,11 +776,12 @@ class _DiskState:
774
776
  zone: Optional[pulumi.Input[builtins.str]] = None):
775
777
  """
776
778
  Input properties used for looking up and filtering Disk resources.
777
- :param pulumi.Input[builtins.str] access_mode: The accessMode of the disk.
779
+ :param pulumi.Input[builtins.str] access_mode: The access mode of the disk.
778
780
  For example:
779
- * READ_WRITE_SINGLE
780
- * READ_WRITE_MANY
781
- * READ_ONLY_SINGLE
781
+ * READ_WRITE_SINGLE: The default AccessMode, means the disk can be attached to single instance in RW mode.
782
+ * READ_WRITE_MANY: The AccessMode means the disk can be attached to multiple instances in RW mode.
783
+ * READ_ONLY_SINGLE: The AccessMode means the disk can be attached to multiple instances in RO mode.
784
+ The AccessMode is only valid for Hyperdisk disk types.
782
785
  :param pulumi.Input[builtins.str] architecture: The architecture of the disk. Values include `X86_64`, `ARM64`.
783
786
  :param pulumi.Input['DiskAsyncPrimaryDiskArgs'] async_primary_disk: A nested object resource.
784
787
  Structure is documented below.
@@ -1032,11 +1035,12 @@ class _DiskState:
1032
1035
  @pulumi.getter(name="accessMode")
1033
1036
  def access_mode(self) -> Optional[pulumi.Input[builtins.str]]:
1034
1037
  """
1035
- The accessMode of the disk.
1038
+ The access mode of the disk.
1036
1039
  For example:
1037
- * READ_WRITE_SINGLE
1038
- * READ_WRITE_MANY
1039
- * READ_ONLY_SINGLE
1040
+ * READ_WRITE_SINGLE: The default AccessMode, means the disk can be attached to single instance in RW mode.
1041
+ * READ_WRITE_MANY: The AccessMode means the disk can be attached to multiple instances in RW mode.
1042
+ * READ_ONLY_SINGLE: The AccessMode means the disk can be attached to multiple instances in RO mode.
1043
+ The AccessMode is only valid for Hyperdisk disk types.
1040
1044
  """
1041
1045
  return pulumi.get(self, "access_mode")
1042
1046
 
@@ -1834,11 +1838,12 @@ class Disk(pulumi.CustomResource):
1834
1838
 
1835
1839
  :param str resource_name: The name of the resource.
1836
1840
  :param pulumi.ResourceOptions opts: Options for the resource.
1837
- :param pulumi.Input[builtins.str] access_mode: The accessMode of the disk.
1841
+ :param pulumi.Input[builtins.str] access_mode: The access mode of the disk.
1838
1842
  For example:
1839
- * READ_WRITE_SINGLE
1840
- * READ_WRITE_MANY
1841
- * READ_ONLY_SINGLE
1843
+ * READ_WRITE_SINGLE: The default AccessMode, means the disk can be attached to single instance in RW mode.
1844
+ * READ_WRITE_MANY: The AccessMode means the disk can be attached to multiple instances in RW mode.
1845
+ * READ_ONLY_SINGLE: The AccessMode means the disk can be attached to multiple instances in RO mode.
1846
+ The AccessMode is only valid for Hyperdisk disk types.
1842
1847
  :param pulumi.Input[builtins.str] architecture: The architecture of the disk. Values include `X86_64`, `ARM64`.
1843
1848
  :param pulumi.Input[Union['DiskAsyncPrimaryDiskArgs', 'DiskAsyncPrimaryDiskArgsDict']] async_primary_disk: A nested object resource.
1844
1849
  Structure is documented below.
@@ -2252,11 +2257,12 @@ class Disk(pulumi.CustomResource):
2252
2257
  :param str resource_name: The unique name of the resulting resource.
2253
2258
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
2254
2259
  :param pulumi.ResourceOptions opts: Options for the resource.
2255
- :param pulumi.Input[builtins.str] access_mode: The accessMode of the disk.
2260
+ :param pulumi.Input[builtins.str] access_mode: The access mode of the disk.
2256
2261
  For example:
2257
- * READ_WRITE_SINGLE
2258
- * READ_WRITE_MANY
2259
- * READ_ONLY_SINGLE
2262
+ * READ_WRITE_SINGLE: The default AccessMode, means the disk can be attached to single instance in RW mode.
2263
+ * READ_WRITE_MANY: The AccessMode means the disk can be attached to multiple instances in RW mode.
2264
+ * READ_ONLY_SINGLE: The AccessMode means the disk can be attached to multiple instances in RO mode.
2265
+ The AccessMode is only valid for Hyperdisk disk types.
2260
2266
  :param pulumi.Input[builtins.str] architecture: The architecture of the disk. Values include `X86_64`, `ARM64`.
2261
2267
  :param pulumi.Input[Union['DiskAsyncPrimaryDiskArgs', 'DiskAsyncPrimaryDiskArgsDict']] async_primary_disk: A nested object resource.
2262
2268
  Structure is documented below.
@@ -2468,11 +2474,12 @@ class Disk(pulumi.CustomResource):
2468
2474
  @pulumi.getter(name="accessMode")
2469
2475
  def access_mode(self) -> pulumi.Output[builtins.str]:
2470
2476
  """
2471
- The accessMode of the disk.
2477
+ The access mode of the disk.
2472
2478
  For example:
2473
- * READ_WRITE_SINGLE
2474
- * READ_WRITE_MANY
2475
- * READ_ONLY_SINGLE
2479
+ * READ_WRITE_SINGLE: The default AccessMode, means the disk can be attached to single instance in RW mode.
2480
+ * READ_WRITE_MANY: The AccessMode means the disk can be attached to multiple instances in RW mode.
2481
+ * READ_ONLY_SINGLE: The AccessMode means the disk can be attached to multiple instances in RO mode.
2482
+ The AccessMode is only valid for Hyperdisk disk types.
2476
2483
  """
2477
2484
  return pulumi.get(self, "access_mode")
2478
2485
 
@@ -32,6 +32,7 @@ class FirewallPolicyRuleArgs:
32
32
  enable_logging: Optional[pulumi.Input[builtins.bool]] = None,
33
33
  security_profile_group: Optional[pulumi.Input[builtins.str]] = None,
34
34
  target_resources: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
35
+ target_secure_tags: Optional[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyRuleTargetSecureTagArgs']]]] = None,
35
36
  target_service_accounts: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
36
37
  tls_inspect: Optional[pulumi.Input[builtins.bool]] = None):
37
38
  """
@@ -56,6 +57,11 @@ class FirewallPolicyRuleArgs:
56
57
  Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions.
57
58
  :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] target_resources: A list of network resource URLs to which this rule applies. This field allows you to control which network's VMs get
58
59
  this rule. If this field is left blank, all VMs within the organization will receive the rule.
60
+ :param pulumi.Input[Sequence[pulumi.Input['FirewallPolicyRuleTargetSecureTagArgs']]] target_secure_tags: A list of secure tags that controls which instances the firewall rule applies to. If targetSecureTag are specified, then
61
+ the firewall rule applies only to instances in the VPC network that have one of those EFFECTIVE secure tags, if all the
62
+ targetSecureTag are in INEFFECTIVE state, then this rule will be ignored. targetSecureTag may not be set at the same
63
+ time as targetServiceAccounts. If neither targetServiceAccounts nor targetSecureTag are specified, the firewall rule
64
+ applies to all instances on the specified network. Maximum number of target secure tags allowed is 256.
59
65
  :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] target_service_accounts: A list of service accounts indicating the sets of instances that are applied with this rule.
60
66
  :param pulumi.Input[builtins.bool] tls_inspect: Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action =
61
67
  'apply_security_profile_group' and cannot be set for other actions.
@@ -75,6 +81,8 @@ class FirewallPolicyRuleArgs:
75
81
  pulumi.set(__self__, "security_profile_group", security_profile_group)
76
82
  if target_resources is not None:
77
83
  pulumi.set(__self__, "target_resources", target_resources)
84
+ if target_secure_tags is not None:
85
+ pulumi.set(__self__, "target_secure_tags", target_secure_tags)
78
86
  if target_service_accounts is not None:
79
87
  pulumi.set(__self__, "target_service_accounts", target_service_accounts)
80
88
  if tls_inspect is not None:
@@ -210,6 +218,22 @@ class FirewallPolicyRuleArgs:
210
218
  def target_resources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
211
219
  pulumi.set(self, "target_resources", value)
212
220
 
221
+ @property
222
+ @pulumi.getter(name="targetSecureTags")
223
+ def target_secure_tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyRuleTargetSecureTagArgs']]]]:
224
+ """
225
+ A list of secure tags that controls which instances the firewall rule applies to. If targetSecureTag are specified, then
226
+ the firewall rule applies only to instances in the VPC network that have one of those EFFECTIVE secure tags, if all the
227
+ targetSecureTag are in INEFFECTIVE state, then this rule will be ignored. targetSecureTag may not be set at the same
228
+ time as targetServiceAccounts. If neither targetServiceAccounts nor targetSecureTag are specified, the firewall rule
229
+ applies to all instances on the specified network. Maximum number of target secure tags allowed is 256.
230
+ """
231
+ return pulumi.get(self, "target_secure_tags")
232
+
233
+ @target_secure_tags.setter
234
+ def target_secure_tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyRuleTargetSecureTagArgs']]]]):
235
+ pulumi.set(self, "target_secure_tags", value)
236
+
213
237
  @property
214
238
  @pulumi.getter(name="targetServiceAccounts")
215
239
  def target_service_accounts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
@@ -252,6 +276,7 @@ class _FirewallPolicyRuleState:
252
276
  rule_tuple_count: Optional[pulumi.Input[builtins.int]] = None,
253
277
  security_profile_group: Optional[pulumi.Input[builtins.str]] = None,
254
278
  target_resources: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
279
+ target_secure_tags: Optional[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyRuleTargetSecureTagArgs']]]] = None,
255
280
  target_service_accounts: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
256
281
  tls_inspect: Optional[pulumi.Input[builtins.bool]] = None):
257
282
  """
@@ -279,6 +304,11 @@ class _FirewallPolicyRuleState:
279
304
  Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions.
280
305
  :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] target_resources: A list of network resource URLs to which this rule applies. This field allows you to control which network's VMs get
281
306
  this rule. If this field is left blank, all VMs within the organization will receive the rule.
307
+ :param pulumi.Input[Sequence[pulumi.Input['FirewallPolicyRuleTargetSecureTagArgs']]] target_secure_tags: A list of secure tags that controls which instances the firewall rule applies to. If targetSecureTag are specified, then
308
+ the firewall rule applies only to instances in the VPC network that have one of those EFFECTIVE secure tags, if all the
309
+ targetSecureTag are in INEFFECTIVE state, then this rule will be ignored. targetSecureTag may not be set at the same
310
+ time as targetServiceAccounts. If neither targetServiceAccounts nor targetSecureTag are specified, the firewall rule
311
+ applies to all instances on the specified network. Maximum number of target secure tags allowed is 256.
282
312
  :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] target_service_accounts: A list of service accounts indicating the sets of instances that are applied with this rule.
283
313
  :param pulumi.Input[builtins.bool] tls_inspect: Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action =
284
314
  'apply_security_profile_group' and cannot be set for other actions.
@@ -309,6 +339,8 @@ class _FirewallPolicyRuleState:
309
339
  pulumi.set(__self__, "security_profile_group", security_profile_group)
310
340
  if target_resources is not None:
311
341
  pulumi.set(__self__, "target_resources", target_resources)
342
+ if target_secure_tags is not None:
343
+ pulumi.set(__self__, "target_secure_tags", target_secure_tags)
312
344
  if target_service_accounts is not None:
313
345
  pulumi.set(__self__, "target_service_accounts", target_service_accounts)
314
346
  if tls_inspect is not None:
@@ -480,6 +512,22 @@ class _FirewallPolicyRuleState:
480
512
  def target_resources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
481
513
  pulumi.set(self, "target_resources", value)
482
514
 
515
+ @property
516
+ @pulumi.getter(name="targetSecureTags")
517
+ def target_secure_tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyRuleTargetSecureTagArgs']]]]:
518
+ """
519
+ A list of secure tags that controls which instances the firewall rule applies to. If targetSecureTag are specified, then
520
+ the firewall rule applies only to instances in the VPC network that have one of those EFFECTIVE secure tags, if all the
521
+ targetSecureTag are in INEFFECTIVE state, then this rule will be ignored. targetSecureTag may not be set at the same
522
+ time as targetServiceAccounts. If neither targetServiceAccounts nor targetSecureTag are specified, the firewall rule
523
+ applies to all instances on the specified network. Maximum number of target secure tags allowed is 256.
524
+ """
525
+ return pulumi.get(self, "target_secure_tags")
526
+
527
+ @target_secure_tags.setter
528
+ def target_secure_tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyRuleTargetSecureTagArgs']]]]):
529
+ pulumi.set(self, "target_secure_tags", value)
530
+
483
531
  @property
484
532
  @pulumi.getter(name="targetServiceAccounts")
485
533
  def target_service_accounts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
@@ -522,6 +570,7 @@ class FirewallPolicyRule(pulumi.CustomResource):
522
570
  priority: Optional[pulumi.Input[builtins.int]] = None,
523
571
  security_profile_group: Optional[pulumi.Input[builtins.str]] = None,
524
572
  target_resources: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
573
+ target_secure_tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['FirewallPolicyRuleTargetSecureTagArgs', 'FirewallPolicyRuleTargetSecureTagArgsDict']]]]] = None,
525
574
  target_service_accounts: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
526
575
  tls_inspect: Optional[pulumi.Input[builtins.bool]] = None,
527
576
  __props__=None):
@@ -583,6 +632,18 @@ class FirewallPolicyRule(pulumi.CustomResource):
583
632
  },
584
633
  ],
585
634
  })
635
+ basic_key = gcp.tags.TagKey("basic_key",
636
+ description="For keyname resources.",
637
+ parent="organizations/123456789",
638
+ purpose="GCE_FIREWALL",
639
+ short_name="tag-key",
640
+ purpose_data={
641
+ "organization": "auto",
642
+ })
643
+ basic_value = gcp.tags.TagValue("basic_value",
644
+ description="For valuename resources.",
645
+ parent=basic_key.id,
646
+ short_name="tag-value")
586
647
  ```
587
648
  ### Firewall Policy Rule Network Scope
588
649
 
@@ -624,6 +685,60 @@ class FirewallPolicyRule(pulumi.CustomResource):
624
685
  ],
625
686
  })
626
687
  ```
688
+ ### Firewall Policy Rule Secure Tags
689
+
690
+ ```python
691
+ import pulumi
692
+ import pulumi_gcp as gcp
693
+
694
+ folder = gcp.organizations.Folder("folder",
695
+ display_name="folder",
696
+ parent="organizations/123456789",
697
+ deletion_protection=False)
698
+ default = gcp.compute.FirewallPolicy("default",
699
+ parent=folder.id,
700
+ short_name="fw-policy",
701
+ description="Resource created for Terraform acceptance testing")
702
+ basic_key = gcp.tags.TagKey("basic_key",
703
+ description="For keyname resources.",
704
+ parent="organizations/123456789",
705
+ purpose="GCE_FIREWALL",
706
+ short_name="tag-key",
707
+ purpose_data={
708
+ "organization": "auto",
709
+ })
710
+ basic_value = gcp.tags.TagValue("basic_value",
711
+ description="For valuename resources.",
712
+ parent=basic_key.id,
713
+ short_name="tag-value")
714
+ primary = gcp.compute.FirewallPolicyRule("primary",
715
+ firewall_policy=default.name,
716
+ description="Resource created for Terraform acceptance testing",
717
+ priority=9000,
718
+ enable_logging=True,
719
+ action="allow",
720
+ direction="INGRESS",
721
+ disabled=False,
722
+ target_secure_tags=[{
723
+ "name": basic_value.id,
724
+ }],
725
+ match={
726
+ "src_ip_ranges": ["11.100.0.1/32"],
727
+ "src_secure_tags": [{
728
+ "name": basic_value.id,
729
+ }],
730
+ "layer4_configs": [
731
+ {
732
+ "ip_protocol": "tcp",
733
+ "ports": ["8080"],
734
+ },
735
+ {
736
+ "ip_protocol": "udp",
737
+ "ports": ["22"],
738
+ },
739
+ ],
740
+ })
741
+ ```
627
742
 
628
743
  ## Import
629
744
 
@@ -665,6 +780,11 @@ class FirewallPolicyRule(pulumi.CustomResource):
665
780
  Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions.
666
781
  :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] target_resources: A list of network resource URLs to which this rule applies. This field allows you to control which network's VMs get
667
782
  this rule. If this field is left blank, all VMs within the organization will receive the rule.
783
+ :param pulumi.Input[Sequence[pulumi.Input[Union['FirewallPolicyRuleTargetSecureTagArgs', 'FirewallPolicyRuleTargetSecureTagArgsDict']]]] target_secure_tags: A list of secure tags that controls which instances the firewall rule applies to. If targetSecureTag are specified, then
784
+ the firewall rule applies only to instances in the VPC network that have one of those EFFECTIVE secure tags, if all the
785
+ targetSecureTag are in INEFFECTIVE state, then this rule will be ignored. targetSecureTag may not be set at the same
786
+ time as targetServiceAccounts. If neither targetServiceAccounts nor targetSecureTag are specified, the firewall rule
787
+ applies to all instances on the specified network. Maximum number of target secure tags allowed is 256.
668
788
  :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] target_service_accounts: A list of service accounts indicating the sets of instances that are applied with this rule.
669
789
  :param pulumi.Input[builtins.bool] tls_inspect: Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action =
670
790
  'apply_security_profile_group' and cannot be set for other actions.
@@ -733,6 +853,18 @@ class FirewallPolicyRule(pulumi.CustomResource):
733
853
  },
734
854
  ],
735
855
  })
856
+ basic_key = gcp.tags.TagKey("basic_key",
857
+ description="For keyname resources.",
858
+ parent="organizations/123456789",
859
+ purpose="GCE_FIREWALL",
860
+ short_name="tag-key",
861
+ purpose_data={
862
+ "organization": "auto",
863
+ })
864
+ basic_value = gcp.tags.TagValue("basic_value",
865
+ description="For valuename resources.",
866
+ parent=basic_key.id,
867
+ short_name="tag-value")
736
868
  ```
737
869
  ### Firewall Policy Rule Network Scope
738
870
 
@@ -774,6 +906,60 @@ class FirewallPolicyRule(pulumi.CustomResource):
774
906
  ],
775
907
  })
776
908
  ```
909
+ ### Firewall Policy Rule Secure Tags
910
+
911
+ ```python
912
+ import pulumi
913
+ import pulumi_gcp as gcp
914
+
915
+ folder = gcp.organizations.Folder("folder",
916
+ display_name="folder",
917
+ parent="organizations/123456789",
918
+ deletion_protection=False)
919
+ default = gcp.compute.FirewallPolicy("default",
920
+ parent=folder.id,
921
+ short_name="fw-policy",
922
+ description="Resource created for Terraform acceptance testing")
923
+ basic_key = gcp.tags.TagKey("basic_key",
924
+ description="For keyname resources.",
925
+ parent="organizations/123456789",
926
+ purpose="GCE_FIREWALL",
927
+ short_name="tag-key",
928
+ purpose_data={
929
+ "organization": "auto",
930
+ })
931
+ basic_value = gcp.tags.TagValue("basic_value",
932
+ description="For valuename resources.",
933
+ parent=basic_key.id,
934
+ short_name="tag-value")
935
+ primary = gcp.compute.FirewallPolicyRule("primary",
936
+ firewall_policy=default.name,
937
+ description="Resource created for Terraform acceptance testing",
938
+ priority=9000,
939
+ enable_logging=True,
940
+ action="allow",
941
+ direction="INGRESS",
942
+ disabled=False,
943
+ target_secure_tags=[{
944
+ "name": basic_value.id,
945
+ }],
946
+ match={
947
+ "src_ip_ranges": ["11.100.0.1/32"],
948
+ "src_secure_tags": [{
949
+ "name": basic_value.id,
950
+ }],
951
+ "layer4_configs": [
952
+ {
953
+ "ip_protocol": "tcp",
954
+ "ports": ["8080"],
955
+ },
956
+ {
957
+ "ip_protocol": "udp",
958
+ "ports": ["22"],
959
+ },
960
+ ],
961
+ })
962
+ ```
777
963
 
778
964
  ## Import
779
965
 
@@ -818,6 +1004,7 @@ class FirewallPolicyRule(pulumi.CustomResource):
818
1004
  priority: Optional[pulumi.Input[builtins.int]] = None,
819
1005
  security_profile_group: Optional[pulumi.Input[builtins.str]] = None,
820
1006
  target_resources: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
1007
+ target_secure_tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['FirewallPolicyRuleTargetSecureTagArgs', 'FirewallPolicyRuleTargetSecureTagArgsDict']]]]] = None,
821
1008
  target_service_accounts: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
822
1009
  tls_inspect: Optional[pulumi.Input[builtins.bool]] = None,
823
1010
  __props__=None):
@@ -849,6 +1036,7 @@ class FirewallPolicyRule(pulumi.CustomResource):
849
1036
  __props__.__dict__["priority"] = priority
850
1037
  __props__.__dict__["security_profile_group"] = security_profile_group
851
1038
  __props__.__dict__["target_resources"] = target_resources
1039
+ __props__.__dict__["target_secure_tags"] = target_secure_tags
852
1040
  __props__.__dict__["target_service_accounts"] = target_service_accounts
853
1041
  __props__.__dict__["tls_inspect"] = tls_inspect
854
1042
  __props__.__dict__["creation_timestamp"] = None
@@ -877,6 +1065,7 @@ class FirewallPolicyRule(pulumi.CustomResource):
877
1065
  rule_tuple_count: Optional[pulumi.Input[builtins.int]] = None,
878
1066
  security_profile_group: Optional[pulumi.Input[builtins.str]] = None,
879
1067
  target_resources: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
1068
+ target_secure_tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['FirewallPolicyRuleTargetSecureTagArgs', 'FirewallPolicyRuleTargetSecureTagArgsDict']]]]] = None,
880
1069
  target_service_accounts: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
881
1070
  tls_inspect: Optional[pulumi.Input[builtins.bool]] = None) -> 'FirewallPolicyRule':
882
1071
  """
@@ -909,6 +1098,11 @@ class FirewallPolicyRule(pulumi.CustomResource):
909
1098
  Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions.
910
1099
  :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] target_resources: A list of network resource URLs to which this rule applies. This field allows you to control which network's VMs get
911
1100
  this rule. If this field is left blank, all VMs within the organization will receive the rule.
1101
+ :param pulumi.Input[Sequence[pulumi.Input[Union['FirewallPolicyRuleTargetSecureTagArgs', 'FirewallPolicyRuleTargetSecureTagArgsDict']]]] target_secure_tags: A list of secure tags that controls which instances the firewall rule applies to. If targetSecureTag are specified, then
1102
+ the firewall rule applies only to instances in the VPC network that have one of those EFFECTIVE secure tags, if all the
1103
+ targetSecureTag are in INEFFECTIVE state, then this rule will be ignored. targetSecureTag may not be set at the same
1104
+ time as targetServiceAccounts. If neither targetServiceAccounts nor targetSecureTag are specified, the firewall rule
1105
+ applies to all instances on the specified network. Maximum number of target secure tags allowed is 256.
912
1106
  :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] target_service_accounts: A list of service accounts indicating the sets of instances that are applied with this rule.
913
1107
  :param pulumi.Input[builtins.bool] tls_inspect: Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action =
914
1108
  'apply_security_profile_group' and cannot be set for other actions.
@@ -930,6 +1124,7 @@ class FirewallPolicyRule(pulumi.CustomResource):
930
1124
  __props__.__dict__["rule_tuple_count"] = rule_tuple_count
931
1125
  __props__.__dict__["security_profile_group"] = security_profile_group
932
1126
  __props__.__dict__["target_resources"] = target_resources
1127
+ __props__.__dict__["target_secure_tags"] = target_secure_tags
933
1128
  __props__.__dict__["target_service_accounts"] = target_service_accounts
934
1129
  __props__.__dict__["tls_inspect"] = tls_inspect
935
1130
  return FirewallPolicyRule(resource_name, opts=opts, __props__=__props__)
@@ -1048,6 +1243,18 @@ class FirewallPolicyRule(pulumi.CustomResource):
1048
1243
  """
1049
1244
  return pulumi.get(self, "target_resources")
1050
1245
 
1246
+ @property
1247
+ @pulumi.getter(name="targetSecureTags")
1248
+ def target_secure_tags(self) -> pulumi.Output[Optional[Sequence['outputs.FirewallPolicyRuleTargetSecureTag']]]:
1249
+ """
1250
+ A list of secure tags that controls which instances the firewall rule applies to. If targetSecureTag are specified, then
1251
+ the firewall rule applies only to instances in the VPC network that have one of those EFFECTIVE secure tags, if all the
1252
+ targetSecureTag are in INEFFECTIVE state, then this rule will be ignored. targetSecureTag may not be set at the same
1253
+ time as targetServiceAccounts. If neither targetServiceAccounts nor targetSecureTag are specified, the firewall rule
1254
+ applies to all instances on the specified network. Maximum number of target secure tags allowed is 256.
1255
+ """
1256
+ return pulumi.get(self, "target_secure_tags")
1257
+
1051
1258
  @property
1052
1259
  @pulumi.getter(name="targetServiceAccounts")
1053
1260
  def target_service_accounts(self) -> pulumi.Output[Optional[Sequence[builtins.str]]]:
@@ -28,7 +28,7 @@ class GetInstanceGroupManagerResult:
28
28
  """
29
29
  A collection of values returned by getInstanceGroupManager.
30
30
  """
31
- def __init__(__self__, all_instances_configs=None, auto_healing_policies=None, base_instance_name=None, creation_timestamp=None, description=None, fingerprint=None, id=None, instance_group=None, instance_group_manager_id=None, instance_lifecycle_policies=None, list_managed_instances_results=None, name=None, named_ports=None, operation=None, params=None, project=None, self_link=None, standby_policies=None, stateful_disks=None, stateful_external_ips=None, stateful_internal_ips=None, statuses=None, target_pools=None, target_size=None, target_stopped_size=None, target_suspended_size=None, update_policies=None, versions=None, wait_for_instances=None, wait_for_instances_status=None, zone=None):
31
+ def __init__(__self__, all_instances_configs=None, auto_healing_policies=None, base_instance_name=None, creation_timestamp=None, description=None, fingerprint=None, id=None, instance_group=None, instance_group_manager_id=None, instance_lifecycle_policies=None, list_managed_instances_results=None, name=None, named_ports=None, operation=None, params=None, project=None, resource_policies=None, self_link=None, standby_policies=None, stateful_disks=None, stateful_external_ips=None, stateful_internal_ips=None, statuses=None, target_pools=None, target_size=None, target_stopped_size=None, target_suspended_size=None, update_policies=None, versions=None, wait_for_instances=None, wait_for_instances_status=None, zone=None):
32
32
  if all_instances_configs and not isinstance(all_instances_configs, list):
33
33
  raise TypeError("Expected argument 'all_instances_configs' to be a list")
34
34
  pulumi.set(__self__, "all_instances_configs", all_instances_configs)
@@ -77,6 +77,9 @@ class GetInstanceGroupManagerResult:
77
77
  if project and not isinstance(project, str):
78
78
  raise TypeError("Expected argument 'project' to be a str")
79
79
  pulumi.set(__self__, "project", project)
80
+ if resource_policies and not isinstance(resource_policies, list):
81
+ raise TypeError("Expected argument 'resource_policies' to be a list")
82
+ pulumi.set(__self__, "resource_policies", resource_policies)
80
83
  if self_link and not isinstance(self_link, str):
81
84
  raise TypeError("Expected argument 'self_link' to be a str")
82
85
  pulumi.set(__self__, "self_link", self_link)
@@ -206,6 +209,11 @@ class GetInstanceGroupManagerResult:
206
209
  def project(self) -> Optional[builtins.str]:
207
210
  return pulumi.get(self, "project")
208
211
 
212
+ @property
213
+ @pulumi.getter(name="resourcePolicies")
214
+ def resource_policies(self) -> Sequence['outputs.GetInstanceGroupManagerResourcePolicyResult']:
215
+ return pulumi.get(self, "resource_policies")
216
+
209
217
  @property
210
218
  @pulumi.getter(name="selfLink")
211
219
  def self_link(self) -> Optional[builtins.str]:
@@ -304,6 +312,7 @@ class AwaitableGetInstanceGroupManagerResult(GetInstanceGroupManagerResult):
304
312
  operation=self.operation,
305
313
  params=self.params,
306
314
  project=self.project,
315
+ resource_policies=self.resource_policies,
307
316
  self_link=self.self_link,
308
317
  standby_policies=self.standby_policies,
309
318
  stateful_disks=self.stateful_disks,
@@ -373,6 +382,7 @@ def get_instance_group_manager(name: Optional[builtins.str] = None,
373
382
  operation=pulumi.get(__ret__, 'operation'),
374
383
  params=pulumi.get(__ret__, 'params'),
375
384
  project=pulumi.get(__ret__, 'project'),
385
+ resource_policies=pulumi.get(__ret__, 'resource_policies'),
376
386
  self_link=pulumi.get(__ret__, 'self_link'),
377
387
  standby_policies=pulumi.get(__ret__, 'standby_policies'),
378
388
  stateful_disks=pulumi.get(__ret__, 'stateful_disks'),
@@ -439,6 +449,7 @@ def get_instance_group_manager_output(name: Optional[pulumi.Input[Optional[built
439
449
  operation=pulumi.get(__response__, 'operation'),
440
450
  params=pulumi.get(__response__, 'params'),
441
451
  project=pulumi.get(__response__, 'project'),
452
+ resource_policies=pulumi.get(__response__, 'resource_policies'),
442
453
  self_link=pulumi.get(__response__, 'self_link'),
443
454
  standby_policies=pulumi.get(__response__, 'standby_policies'),
444
455
  stateful_disks=pulumi.get(__response__, 'stateful_disks'),
@@ -28,7 +28,10 @@ class GetRegionDiskResult:
28
28
  """
29
29
  A collection of values returned by getRegionDisk.
30
30
  """
31
- def __init__(__self__, async_primary_disks=None, create_snapshot_before_destroy=None, create_snapshot_before_destroy_prefix=None, creation_timestamp=None, description=None, disk_encryption_keys=None, disk_id=None, effective_labels=None, guest_os_features=None, id=None, interface=None, label_fingerprint=None, labels=None, last_attach_timestamp=None, last_detach_timestamp=None, licenses=None, name=None, physical_block_size_bytes=None, project=None, pulumi_labels=None, region=None, replica_zones=None, self_link=None, size=None, snapshot=None, source_disk=None, source_disk_id=None, source_snapshot_encryption_keys=None, source_snapshot_id=None, type=None, users=None):
31
+ def __init__(__self__, access_mode=None, async_primary_disks=None, create_snapshot_before_destroy=None, create_snapshot_before_destroy_prefix=None, creation_timestamp=None, description=None, disk_encryption_keys=None, disk_id=None, effective_labels=None, guest_os_features=None, id=None, interface=None, label_fingerprint=None, labels=None, last_attach_timestamp=None, last_detach_timestamp=None, licenses=None, name=None, physical_block_size_bytes=None, project=None, pulumi_labels=None, region=None, replica_zones=None, self_link=None, size=None, snapshot=None, source_disk=None, source_disk_id=None, source_snapshot_encryption_keys=None, source_snapshot_id=None, type=None, users=None):
32
+ if access_mode and not isinstance(access_mode, str):
33
+ raise TypeError("Expected argument 'access_mode' to be a str")
34
+ pulumi.set(__self__, "access_mode", access_mode)
32
35
  if async_primary_disks and not isinstance(async_primary_disks, list):
33
36
  raise TypeError("Expected argument 'async_primary_disks' to be a list")
34
37
  pulumi.set(__self__, "async_primary_disks", async_primary_disks)
@@ -123,6 +126,11 @@ class GetRegionDiskResult:
123
126
  raise TypeError("Expected argument 'users' to be a list")
124
127
  pulumi.set(__self__, "users", users)
125
128
 
129
+ @property
130
+ @pulumi.getter(name="accessMode")
131
+ def access_mode(self) -> builtins.str:
132
+ return pulumi.get(self, "access_mode")
133
+
126
134
  @property
127
135
  @pulumi.getter(name="asyncPrimaryDisks")
128
136
  def async_primary_disks(self) -> Sequence['outputs.GetRegionDiskAsyncPrimaryDiskResult']:
@@ -288,6 +296,7 @@ class AwaitableGetRegionDiskResult(GetRegionDiskResult):
288
296
  if False:
289
297
  yield self
290
298
  return GetRegionDiskResult(
299
+ access_mode=self.access_mode,
291
300
  async_primary_disks=self.async_primary_disks,
292
301
  create_snapshot_before_destroy=self.create_snapshot_before_destroy,
293
302
  create_snapshot_before_destroy_prefix=self.create_snapshot_before_destroy_prefix,
@@ -346,6 +355,7 @@ def get_region_disk(name: Optional[builtins.str] = None,
346
355
  __ret__ = pulumi.runtime.invoke('gcp:compute/getRegionDisk:getRegionDisk', __args__, opts=opts, typ=GetRegionDiskResult).value
347
356
 
348
357
  return AwaitableGetRegionDiskResult(
358
+ access_mode=pulumi.get(__ret__, 'access_mode'),
349
359
  async_primary_disks=pulumi.get(__ret__, 'async_primary_disks'),
350
360
  create_snapshot_before_destroy=pulumi.get(__ret__, 'create_snapshot_before_destroy'),
351
361
  create_snapshot_before_destroy_prefix=pulumi.get(__ret__, 'create_snapshot_before_destroy_prefix'),
@@ -401,6 +411,7 @@ def get_region_disk_output(name: Optional[pulumi.Input[builtins.str]] = None,
401
411
  opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
402
412
  __ret__ = pulumi.runtime.invoke_output('gcp:compute/getRegionDisk:getRegionDisk', __args__, opts=opts, typ=GetRegionDiskResult)
403
413
  return __ret__.apply(lambda __response__: GetRegionDiskResult(
414
+ access_mode=pulumi.get(__response__, 'access_mode'),
404
415
  async_primary_disks=pulumi.get(__response__, 'async_primary_disks'),
405
416
  create_snapshot_before_destroy=pulumi.get(__response__, 'create_snapshot_before_destroy'),
406
417
  create_snapshot_before_destroy_prefix=pulumi.get(__response__, 'create_snapshot_before_destroy_prefix'),
@@ -1606,7 +1606,7 @@ class Instance(pulumi.CustomResource):
1606
1606
  },
1607
1607
  boot_disk={
1608
1608
  "initialize_params": {
1609
- "image": "ubuntu-os-cloud/ubuntu-2004-lts",
1609
+ "image": "ubuntu-os-cloud/ubuntu-2204-lts",
1610
1610
  "labels": {
1611
1611
  "my_label": "value",
1612
1612
  },
@@ -1822,7 +1822,7 @@ class Instance(pulumi.CustomResource):
1822
1822
  },
1823
1823
  boot_disk={
1824
1824
  "initialize_params": {
1825
- "image": "ubuntu-os-cloud/ubuntu-2004-lts",
1825
+ "image": "ubuntu-os-cloud/ubuntu-2204-lts",
1826
1826
  "labels": {
1827
1827
  "my_label": "value",
1828
1828
  },