pulumi-gcp 8.17.0a1738274430__py3-none-any.whl → 8.18.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 (137) hide show
  1. pulumi_gcp/__init__.py +115 -0
  2. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_resource.py +28 -0
  3. pulumi_gcp/alloydb/cluster.py +75 -7
  4. pulumi_gcp/alloydb/user.py +10 -1
  5. pulumi_gcp/apigee/_inputs.py +91 -0
  6. pulumi_gcp/apigee/endpoint_attachment.py +0 -64
  7. pulumi_gcp/apigee/environment.py +54 -0
  8. pulumi_gcp/apigee/outputs.py +54 -0
  9. pulumi_gcp/apihub/__init__.py +10 -0
  10. pulumi_gcp/apihub/_inputs.py +154 -0
  11. pulumi_gcp/apihub/api_hub_instance.py +784 -0
  12. pulumi_gcp/apihub/outputs.py +124 -0
  13. pulumi_gcp/assuredworkloads/workload.py +7 -7
  14. pulumi_gcp/beyondcorp/__init__.py +4 -0
  15. pulumi_gcp/beyondcorp/_inputs.py +130 -0
  16. pulumi_gcp/beyondcorp/get_security_gateway_iam_policy.py +180 -0
  17. pulumi_gcp/beyondcorp/outputs.py +76 -0
  18. pulumi_gcp/beyondcorp/security_gateway.py +52 -25
  19. pulumi_gcp/beyondcorp/security_gateway_iam_binding.py +1075 -0
  20. pulumi_gcp/beyondcorp/security_gateway_iam_member.py +1075 -0
  21. pulumi_gcp/beyondcorp/security_gateway_iam_policy.py +894 -0
  22. pulumi_gcp/bigquery/_inputs.py +33 -0
  23. pulumi_gcp/bigquery/dataset.py +7 -7
  24. pulumi_gcp/bigquery/outputs.py +36 -0
  25. pulumi_gcp/bigquery/table.py +61 -7
  26. pulumi_gcp/chronicle/__init__.py +1 -0
  27. pulumi_gcp/chronicle/_inputs.py +124 -0
  28. pulumi_gcp/chronicle/outputs.py +112 -0
  29. pulumi_gcp/chronicle/retrohunt.py +629 -0
  30. pulumi_gcp/cloudquota/s_quota_adjuster_settings.py +23 -23
  31. pulumi_gcp/cloudrunv2/_inputs.py +197 -0
  32. pulumi_gcp/cloudrunv2/get_service.py +12 -1
  33. pulumi_gcp/cloudrunv2/outputs.py +256 -0
  34. pulumi_gcp/cloudrunv2/service.py +159 -0
  35. pulumi_gcp/colab/__init__.py +5 -0
  36. pulumi_gcp/colab/_inputs.py +131 -0
  37. pulumi_gcp/colab/get_runtime_template_iam_policy.py +182 -0
  38. pulumi_gcp/colab/outputs.py +92 -0
  39. pulumi_gcp/colab/runtime.py +696 -0
  40. pulumi_gcp/colab/runtime_template_iam_binding.py +828 -0
  41. pulumi_gcp/colab/runtime_template_iam_member.py +828 -0
  42. pulumi_gcp/colab/runtime_template_iam_policy.py +667 -0
  43. pulumi_gcp/compute/__init__.py +4 -0
  44. pulumi_gcp/compute/_inputs.py +535 -9
  45. pulumi_gcp/compute/firewall_policy_rule.py +104 -22
  46. pulumi_gcp/compute/firewall_policy_with_rules.py +114 -42
  47. pulumi_gcp/compute/get_instance_template_iam_policy.py +159 -0
  48. pulumi_gcp/compute/get_network.py +3 -3
  49. pulumi_gcp/compute/instance_template_iam_binding.py +998 -0
  50. pulumi_gcp/compute/instance_template_iam_member.py +998 -0
  51. pulumi_gcp/compute/instance_template_iam_policy.py +817 -0
  52. pulumi_gcp/compute/interconnect_attachment.py +189 -2
  53. pulumi_gcp/compute/network.py +7 -7
  54. pulumi_gcp/compute/network_firewall_policy_rule.py +122 -10
  55. pulumi_gcp/compute/network_firewall_policy_with_rules.py +116 -44
  56. pulumi_gcp/compute/outputs.py +358 -6
  57. pulumi_gcp/compute/project_metadata_item.py +12 -0
  58. pulumi_gcp/compute/public_advertised_prefix.py +87 -0
  59. pulumi_gcp/compute/region_network_firewall_policy_rule.py +130 -10
  60. pulumi_gcp/compute/region_network_firewall_policy_with_rules.py +104 -32
  61. pulumi_gcp/compute/router_peer.py +227 -3
  62. pulumi_gcp/config/__init__.pyi +2 -0
  63. pulumi_gcp/config/vars.py +4 -0
  64. pulumi_gcp/container/_inputs.py +79 -20
  65. pulumi_gcp/container/outputs.py +75 -12
  66. pulumi_gcp/dataproc/_inputs.py +34 -0
  67. pulumi_gcp/dataproc/outputs.py +37 -0
  68. pulumi_gcp/dataproc/workflow_template.py +47 -0
  69. pulumi_gcp/filestore/get_instance.py +12 -1
  70. pulumi_gcp/filestore/instance.py +75 -0
  71. pulumi_gcp/firestore/field.py +60 -0
  72. pulumi_gcp/gemini/code_repository_index.py +29 -33
  73. pulumi_gcp/gemini/get_repository_group_iam_policy.py +28 -2
  74. pulumi_gcp/gemini/repository_group.py +76 -26
  75. pulumi_gcp/gemini/repository_group_iam_binding.py +258 -0
  76. pulumi_gcp/gemini/repository_group_iam_member.py +258 -0
  77. pulumi_gcp/gemini/repository_group_iam_policy.py +258 -0
  78. pulumi_gcp/gkehub/_inputs.py +20 -0
  79. pulumi_gcp/gkehub/membership_binding.py +6 -6
  80. pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
  81. pulumi_gcp/gkehub/namespace.py +4 -4
  82. pulumi_gcp/gkehub/outputs.py +26 -1
  83. pulumi_gcp/gkehub/scope_rbac_role_binding.py +4 -4
  84. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  85. pulumi_gcp/integrationconnectors/managed_zone.py +8 -8
  86. pulumi_gcp/kms/__init__.py +1 -0
  87. pulumi_gcp/kms/get_key_handles.py +172 -0
  88. pulumi_gcp/kms/outputs.py +45 -0
  89. pulumi_gcp/netapp/storage_pool.py +1 -1
  90. pulumi_gcp/networkconnectivity/spoke.py +76 -14
  91. pulumi_gcp/networksecurity/_inputs.py +72 -0
  92. pulumi_gcp/networksecurity/outputs.py +76 -0
  93. pulumi_gcp/networksecurity/security_profile.py +233 -7
  94. pulumi_gcp/networksecurity/security_profile_group.py +218 -0
  95. pulumi_gcp/organizations/__init__.py +1 -0
  96. pulumi_gcp/organizations/get_s.py +128 -0
  97. pulumi_gcp/organizations/outputs.py +63 -0
  98. pulumi_gcp/orgpolicy/policy.py +2 -2
  99. pulumi_gcp/parametermanager/__init__.py +6 -0
  100. pulumi_gcp/parametermanager/get_parameter.py +211 -0
  101. pulumi_gcp/parametermanager/get_parameter_version.py +216 -0
  102. pulumi_gcp/parametermanager/get_parameters.py +140 -0
  103. pulumi_gcp/parametermanager/get_regional_parameter_version.py +235 -0
  104. pulumi_gcp/parametermanager/get_regional_parameters.py +157 -0
  105. pulumi_gcp/parametermanager/outputs.py +366 -0
  106. pulumi_gcp/parametermanager/parameter_version.py +496 -0
  107. pulumi_gcp/parametermanager/regional_parameter_version.py +10 -38
  108. pulumi_gcp/provider.py +20 -0
  109. pulumi_gcp/pubsub/_inputs.py +477 -1
  110. pulumi_gcp/pubsub/outputs.py +631 -2
  111. pulumi_gcp/pubsub/subscription.py +6 -6
  112. pulumi_gcp/pubsub/topic.py +112 -0
  113. pulumi_gcp/pulumi-plugin.json +1 -1
  114. pulumi_gcp/redis/__init__.py +1 -0
  115. pulumi_gcp/redis/_inputs.py +342 -6
  116. pulumi_gcp/redis/cluster.py +223 -102
  117. pulumi_gcp/redis/cluster_user_created_connections.py +845 -0
  118. pulumi_gcp/redis/outputs.py +268 -4
  119. pulumi_gcp/resourcemanager/lien.py +12 -0
  120. pulumi_gcp/secretmanager/regional_secret.py +4 -0
  121. pulumi_gcp/secretmanager/regional_secret_version.py +12 -0
  122. pulumi_gcp/secretmanager/secret.py +4 -0
  123. pulumi_gcp/secretmanager/secret_version.py +12 -0
  124. pulumi_gcp/securityposture/posture.py +4 -0
  125. pulumi_gcp/securityposture/posture_deployment.py +4 -0
  126. pulumi_gcp/serviceaccount/get_s.py +98 -8
  127. pulumi_gcp/spanner/_inputs.py +68 -0
  128. pulumi_gcp/spanner/backup_schedule.py +70 -4
  129. pulumi_gcp/spanner/outputs.py +60 -0
  130. pulumi_gcp/storage/get_bucket_object_content.py +4 -4
  131. pulumi_gcp/vertex/ai_endpoint.py +4 -4
  132. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  133. pulumi_gcp/workflows/workflow.py +175 -0
  134. {pulumi_gcp-8.17.0a1738274430.dist-info → pulumi_gcp-8.18.0.dist-info}/METADATA +1 -1
  135. {pulumi_gcp-8.17.0a1738274430.dist-info → pulumi_gcp-8.18.0.dist-info}/RECORD +137 -110
  136. {pulumi_gcp-8.17.0a1738274430.dist-info → pulumi_gcp-8.18.0.dist-info}/WHEEL +0 -0
  137. {pulumi_gcp-8.17.0a1738274430.dist-info → pulumi_gcp-8.18.0.dist-info}/top_level.txt +0 -0
@@ -320,6 +320,135 @@ class RepositoryGroupIamMember(pulumi.CustomResource):
320
320
  role: Optional[pulumi.Input[str]] = None,
321
321
  __props__=None):
322
322
  """
323
+ Three different resources help you manage your IAM policy for Gemini for Google Cloud RepositoryGroup. Each of these resources serves a different use case:
324
+
325
+ * `gemini.RepositoryGroupIamPolicy`: Authoritative. Sets the IAM policy for the repositorygroup and replaces any existing policy already attached.
326
+ * `gemini.RepositoryGroupIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the repositorygroup are preserved.
327
+ * `gemini.RepositoryGroupIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the repositorygroup are preserved.
328
+
329
+ A data source can be used to retrieve policy data in advent you do not need creation
330
+
331
+ * `gemini.RepositoryGroupIamPolicy`: Retrieves the IAM policy for the repositorygroup
332
+
333
+ > **Note:** `gemini.RepositoryGroupIamPolicy` **cannot** be used in conjunction with `gemini.RepositoryGroupIamBinding` and `gemini.RepositoryGroupIamMember` or they will fight over what your policy should be.
334
+
335
+ > **Note:** `gemini.RepositoryGroupIamBinding` resources **can be** used in conjunction with `gemini.RepositoryGroupIamMember` resources **only if** they do not grant privilege to the same role.
336
+
337
+ ## gemini.RepositoryGroupIamPolicy
338
+
339
+ ```python
340
+ import pulumi
341
+ import pulumi_gcp as gcp
342
+
343
+ admin = gcp.organizations.get_iam_policy(bindings=[{
344
+ "role": "roles/cloudaicompanion.repositoryGroupsUser",
345
+ "members": ["user:jane@example.com"],
346
+ }])
347
+ policy = gcp.gemini.RepositoryGroupIamPolicy("policy",
348
+ project=example["project"],
349
+ location=example["location"],
350
+ code_repository_index=example["codeRepositoryIndex"],
351
+ repository_group_id=example["repositoryGroupId"],
352
+ policy_data=admin.policy_data)
353
+ ```
354
+
355
+ ## gemini.RepositoryGroupIamBinding
356
+
357
+ ```python
358
+ import pulumi
359
+ import pulumi_gcp as gcp
360
+
361
+ binding = gcp.gemini.RepositoryGroupIamBinding("binding",
362
+ project=example["project"],
363
+ location=example["location"],
364
+ code_repository_index=example["codeRepositoryIndex"],
365
+ repository_group_id=example["repositoryGroupId"],
366
+ role="roles/cloudaicompanion.repositoryGroupsUser",
367
+ members=["user:jane@example.com"])
368
+ ```
369
+
370
+ ## gemini.RepositoryGroupIamMember
371
+
372
+ ```python
373
+ import pulumi
374
+ import pulumi_gcp as gcp
375
+
376
+ member = gcp.gemini.RepositoryGroupIamMember("member",
377
+ project=example["project"],
378
+ location=example["location"],
379
+ code_repository_index=example["codeRepositoryIndex"],
380
+ repository_group_id=example["repositoryGroupId"],
381
+ role="roles/cloudaicompanion.repositoryGroupsUser",
382
+ member="user:jane@example.com")
383
+ ```
384
+
385
+ ## This resource supports User Project Overrides.
386
+
387
+ -
388
+
389
+ # IAM policy for Gemini for Google Cloud RepositoryGroup
390
+ Three different resources help you manage your IAM policy for Gemini for Google Cloud RepositoryGroup. Each of these resources serves a different use case:
391
+
392
+ * `gemini.RepositoryGroupIamPolicy`: Authoritative. Sets the IAM policy for the repositorygroup and replaces any existing policy already attached.
393
+ * `gemini.RepositoryGroupIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the repositorygroup are preserved.
394
+ * `gemini.RepositoryGroupIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the repositorygroup are preserved.
395
+
396
+ A data source can be used to retrieve policy data in advent you do not need creation
397
+
398
+ * `gemini.RepositoryGroupIamPolicy`: Retrieves the IAM policy for the repositorygroup
399
+
400
+ > **Note:** `gemini.RepositoryGroupIamPolicy` **cannot** be used in conjunction with `gemini.RepositoryGroupIamBinding` and `gemini.RepositoryGroupIamMember` or they will fight over what your policy should be.
401
+
402
+ > **Note:** `gemini.RepositoryGroupIamBinding` resources **can be** used in conjunction with `gemini.RepositoryGroupIamMember` resources **only if** they do not grant privilege to the same role.
403
+
404
+ ## gemini.RepositoryGroupIamPolicy
405
+
406
+ ```python
407
+ import pulumi
408
+ import pulumi_gcp as gcp
409
+
410
+ admin = gcp.organizations.get_iam_policy(bindings=[{
411
+ "role": "roles/cloudaicompanion.repositoryGroupsUser",
412
+ "members": ["user:jane@example.com"],
413
+ }])
414
+ policy = gcp.gemini.RepositoryGroupIamPolicy("policy",
415
+ project=example["project"],
416
+ location=example["location"],
417
+ code_repository_index=example["codeRepositoryIndex"],
418
+ repository_group_id=example["repositoryGroupId"],
419
+ policy_data=admin.policy_data)
420
+ ```
421
+
422
+ ## gemini.RepositoryGroupIamBinding
423
+
424
+ ```python
425
+ import pulumi
426
+ import pulumi_gcp as gcp
427
+
428
+ binding = gcp.gemini.RepositoryGroupIamBinding("binding",
429
+ project=example["project"],
430
+ location=example["location"],
431
+ code_repository_index=example["codeRepositoryIndex"],
432
+ repository_group_id=example["repositoryGroupId"],
433
+ role="roles/cloudaicompanion.repositoryGroupsUser",
434
+ members=["user:jane@example.com"])
435
+ ```
436
+
437
+ ## gemini.RepositoryGroupIamMember
438
+
439
+ ```python
440
+ import pulumi
441
+ import pulumi_gcp as gcp
442
+
443
+ member = gcp.gemini.RepositoryGroupIamMember("member",
444
+ project=example["project"],
445
+ location=example["location"],
446
+ code_repository_index=example["codeRepositoryIndex"],
447
+ repository_group_id=example["repositoryGroupId"],
448
+ role="roles/cloudaicompanion.repositoryGroupsUser",
449
+ member="user:jane@example.com")
450
+ ```
451
+
323
452
  ## Import
324
453
 
325
454
  For all import syntaxes, the "resource in question" can take any of the following forms:
@@ -387,6 +516,135 @@ class RepositoryGroupIamMember(pulumi.CustomResource):
387
516
  args: RepositoryGroupIamMemberArgs,
388
517
  opts: Optional[pulumi.ResourceOptions] = None):
389
518
  """
519
+ Three different resources help you manage your IAM policy for Gemini for Google Cloud RepositoryGroup. Each of these resources serves a different use case:
520
+
521
+ * `gemini.RepositoryGroupIamPolicy`: Authoritative. Sets the IAM policy for the repositorygroup and replaces any existing policy already attached.
522
+ * `gemini.RepositoryGroupIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the repositorygroup are preserved.
523
+ * `gemini.RepositoryGroupIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the repositorygroup are preserved.
524
+
525
+ A data source can be used to retrieve policy data in advent you do not need creation
526
+
527
+ * `gemini.RepositoryGroupIamPolicy`: Retrieves the IAM policy for the repositorygroup
528
+
529
+ > **Note:** `gemini.RepositoryGroupIamPolicy` **cannot** be used in conjunction with `gemini.RepositoryGroupIamBinding` and `gemini.RepositoryGroupIamMember` or they will fight over what your policy should be.
530
+
531
+ > **Note:** `gemini.RepositoryGroupIamBinding` resources **can be** used in conjunction with `gemini.RepositoryGroupIamMember` resources **only if** they do not grant privilege to the same role.
532
+
533
+ ## gemini.RepositoryGroupIamPolicy
534
+
535
+ ```python
536
+ import pulumi
537
+ import pulumi_gcp as gcp
538
+
539
+ admin = gcp.organizations.get_iam_policy(bindings=[{
540
+ "role": "roles/cloudaicompanion.repositoryGroupsUser",
541
+ "members": ["user:jane@example.com"],
542
+ }])
543
+ policy = gcp.gemini.RepositoryGroupIamPolicy("policy",
544
+ project=example["project"],
545
+ location=example["location"],
546
+ code_repository_index=example["codeRepositoryIndex"],
547
+ repository_group_id=example["repositoryGroupId"],
548
+ policy_data=admin.policy_data)
549
+ ```
550
+
551
+ ## gemini.RepositoryGroupIamBinding
552
+
553
+ ```python
554
+ import pulumi
555
+ import pulumi_gcp as gcp
556
+
557
+ binding = gcp.gemini.RepositoryGroupIamBinding("binding",
558
+ project=example["project"],
559
+ location=example["location"],
560
+ code_repository_index=example["codeRepositoryIndex"],
561
+ repository_group_id=example["repositoryGroupId"],
562
+ role="roles/cloudaicompanion.repositoryGroupsUser",
563
+ members=["user:jane@example.com"])
564
+ ```
565
+
566
+ ## gemini.RepositoryGroupIamMember
567
+
568
+ ```python
569
+ import pulumi
570
+ import pulumi_gcp as gcp
571
+
572
+ member = gcp.gemini.RepositoryGroupIamMember("member",
573
+ project=example["project"],
574
+ location=example["location"],
575
+ code_repository_index=example["codeRepositoryIndex"],
576
+ repository_group_id=example["repositoryGroupId"],
577
+ role="roles/cloudaicompanion.repositoryGroupsUser",
578
+ member="user:jane@example.com")
579
+ ```
580
+
581
+ ## This resource supports User Project Overrides.
582
+
583
+ -
584
+
585
+ # IAM policy for Gemini for Google Cloud RepositoryGroup
586
+ Three different resources help you manage your IAM policy for Gemini for Google Cloud RepositoryGroup. Each of these resources serves a different use case:
587
+
588
+ * `gemini.RepositoryGroupIamPolicy`: Authoritative. Sets the IAM policy for the repositorygroup and replaces any existing policy already attached.
589
+ * `gemini.RepositoryGroupIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the repositorygroup are preserved.
590
+ * `gemini.RepositoryGroupIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the repositorygroup are preserved.
591
+
592
+ A data source can be used to retrieve policy data in advent you do not need creation
593
+
594
+ * `gemini.RepositoryGroupIamPolicy`: Retrieves the IAM policy for the repositorygroup
595
+
596
+ > **Note:** `gemini.RepositoryGroupIamPolicy` **cannot** be used in conjunction with `gemini.RepositoryGroupIamBinding` and `gemini.RepositoryGroupIamMember` or they will fight over what your policy should be.
597
+
598
+ > **Note:** `gemini.RepositoryGroupIamBinding` resources **can be** used in conjunction with `gemini.RepositoryGroupIamMember` resources **only if** they do not grant privilege to the same role.
599
+
600
+ ## gemini.RepositoryGroupIamPolicy
601
+
602
+ ```python
603
+ import pulumi
604
+ import pulumi_gcp as gcp
605
+
606
+ admin = gcp.organizations.get_iam_policy(bindings=[{
607
+ "role": "roles/cloudaicompanion.repositoryGroupsUser",
608
+ "members": ["user:jane@example.com"],
609
+ }])
610
+ policy = gcp.gemini.RepositoryGroupIamPolicy("policy",
611
+ project=example["project"],
612
+ location=example["location"],
613
+ code_repository_index=example["codeRepositoryIndex"],
614
+ repository_group_id=example["repositoryGroupId"],
615
+ policy_data=admin.policy_data)
616
+ ```
617
+
618
+ ## gemini.RepositoryGroupIamBinding
619
+
620
+ ```python
621
+ import pulumi
622
+ import pulumi_gcp as gcp
623
+
624
+ binding = gcp.gemini.RepositoryGroupIamBinding("binding",
625
+ project=example["project"],
626
+ location=example["location"],
627
+ code_repository_index=example["codeRepositoryIndex"],
628
+ repository_group_id=example["repositoryGroupId"],
629
+ role="roles/cloudaicompanion.repositoryGroupsUser",
630
+ members=["user:jane@example.com"])
631
+ ```
632
+
633
+ ## gemini.RepositoryGroupIamMember
634
+
635
+ ```python
636
+ import pulumi
637
+ import pulumi_gcp as gcp
638
+
639
+ member = gcp.gemini.RepositoryGroupIamMember("member",
640
+ project=example["project"],
641
+ location=example["location"],
642
+ code_repository_index=example["codeRepositoryIndex"],
643
+ repository_group_id=example["repositoryGroupId"],
644
+ role="roles/cloudaicompanion.repositoryGroupsUser",
645
+ member="user:jane@example.com")
646
+ ```
647
+
390
648
  ## Import
391
649
 
392
650
  For all import syntaxes, the "resource in question" can take any of the following forms:
@@ -217,6 +217,135 @@ class RepositoryGroupIamPolicy(pulumi.CustomResource):
217
217
  repository_group_id: Optional[pulumi.Input[str]] = None,
218
218
  __props__=None):
219
219
  """
220
+ Three different resources help you manage your IAM policy for Gemini for Google Cloud RepositoryGroup. Each of these resources serves a different use case:
221
+
222
+ * `gemini.RepositoryGroupIamPolicy`: Authoritative. Sets the IAM policy for the repositorygroup and replaces any existing policy already attached.
223
+ * `gemini.RepositoryGroupIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the repositorygroup are preserved.
224
+ * `gemini.RepositoryGroupIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the repositorygroup are preserved.
225
+
226
+ A data source can be used to retrieve policy data in advent you do not need creation
227
+
228
+ * `gemini.RepositoryGroupIamPolicy`: Retrieves the IAM policy for the repositorygroup
229
+
230
+ > **Note:** `gemini.RepositoryGroupIamPolicy` **cannot** be used in conjunction with `gemini.RepositoryGroupIamBinding` and `gemini.RepositoryGroupIamMember` or they will fight over what your policy should be.
231
+
232
+ > **Note:** `gemini.RepositoryGroupIamBinding` resources **can be** used in conjunction with `gemini.RepositoryGroupIamMember` resources **only if** they do not grant privilege to the same role.
233
+
234
+ ## gemini.RepositoryGroupIamPolicy
235
+
236
+ ```python
237
+ import pulumi
238
+ import pulumi_gcp as gcp
239
+
240
+ admin = gcp.organizations.get_iam_policy(bindings=[{
241
+ "role": "roles/cloudaicompanion.repositoryGroupsUser",
242
+ "members": ["user:jane@example.com"],
243
+ }])
244
+ policy = gcp.gemini.RepositoryGroupIamPolicy("policy",
245
+ project=example["project"],
246
+ location=example["location"],
247
+ code_repository_index=example["codeRepositoryIndex"],
248
+ repository_group_id=example["repositoryGroupId"],
249
+ policy_data=admin.policy_data)
250
+ ```
251
+
252
+ ## gemini.RepositoryGroupIamBinding
253
+
254
+ ```python
255
+ import pulumi
256
+ import pulumi_gcp as gcp
257
+
258
+ binding = gcp.gemini.RepositoryGroupIamBinding("binding",
259
+ project=example["project"],
260
+ location=example["location"],
261
+ code_repository_index=example["codeRepositoryIndex"],
262
+ repository_group_id=example["repositoryGroupId"],
263
+ role="roles/cloudaicompanion.repositoryGroupsUser",
264
+ members=["user:jane@example.com"])
265
+ ```
266
+
267
+ ## gemini.RepositoryGroupIamMember
268
+
269
+ ```python
270
+ import pulumi
271
+ import pulumi_gcp as gcp
272
+
273
+ member = gcp.gemini.RepositoryGroupIamMember("member",
274
+ project=example["project"],
275
+ location=example["location"],
276
+ code_repository_index=example["codeRepositoryIndex"],
277
+ repository_group_id=example["repositoryGroupId"],
278
+ role="roles/cloudaicompanion.repositoryGroupsUser",
279
+ member="user:jane@example.com")
280
+ ```
281
+
282
+ ## This resource supports User Project Overrides.
283
+
284
+ -
285
+
286
+ # IAM policy for Gemini for Google Cloud RepositoryGroup
287
+ Three different resources help you manage your IAM policy for Gemini for Google Cloud RepositoryGroup. Each of these resources serves a different use case:
288
+
289
+ * `gemini.RepositoryGroupIamPolicy`: Authoritative. Sets the IAM policy for the repositorygroup and replaces any existing policy already attached.
290
+ * `gemini.RepositoryGroupIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the repositorygroup are preserved.
291
+ * `gemini.RepositoryGroupIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the repositorygroup are preserved.
292
+
293
+ A data source can be used to retrieve policy data in advent you do not need creation
294
+
295
+ * `gemini.RepositoryGroupIamPolicy`: Retrieves the IAM policy for the repositorygroup
296
+
297
+ > **Note:** `gemini.RepositoryGroupIamPolicy` **cannot** be used in conjunction with `gemini.RepositoryGroupIamBinding` and `gemini.RepositoryGroupIamMember` or they will fight over what your policy should be.
298
+
299
+ > **Note:** `gemini.RepositoryGroupIamBinding` resources **can be** used in conjunction with `gemini.RepositoryGroupIamMember` resources **only if** they do not grant privilege to the same role.
300
+
301
+ ## gemini.RepositoryGroupIamPolicy
302
+
303
+ ```python
304
+ import pulumi
305
+ import pulumi_gcp as gcp
306
+
307
+ admin = gcp.organizations.get_iam_policy(bindings=[{
308
+ "role": "roles/cloudaicompanion.repositoryGroupsUser",
309
+ "members": ["user:jane@example.com"],
310
+ }])
311
+ policy = gcp.gemini.RepositoryGroupIamPolicy("policy",
312
+ project=example["project"],
313
+ location=example["location"],
314
+ code_repository_index=example["codeRepositoryIndex"],
315
+ repository_group_id=example["repositoryGroupId"],
316
+ policy_data=admin.policy_data)
317
+ ```
318
+
319
+ ## gemini.RepositoryGroupIamBinding
320
+
321
+ ```python
322
+ import pulumi
323
+ import pulumi_gcp as gcp
324
+
325
+ binding = gcp.gemini.RepositoryGroupIamBinding("binding",
326
+ project=example["project"],
327
+ location=example["location"],
328
+ code_repository_index=example["codeRepositoryIndex"],
329
+ repository_group_id=example["repositoryGroupId"],
330
+ role="roles/cloudaicompanion.repositoryGroupsUser",
331
+ members=["user:jane@example.com"])
332
+ ```
333
+
334
+ ## gemini.RepositoryGroupIamMember
335
+
336
+ ```python
337
+ import pulumi
338
+ import pulumi_gcp as gcp
339
+
340
+ member = gcp.gemini.RepositoryGroupIamMember("member",
341
+ project=example["project"],
342
+ location=example["location"],
343
+ code_repository_index=example["codeRepositoryIndex"],
344
+ repository_group_id=example["repositoryGroupId"],
345
+ role="roles/cloudaicompanion.repositoryGroupsUser",
346
+ member="user:jane@example.com")
347
+ ```
348
+
220
349
  ## Import
221
350
 
222
351
  For all import syntaxes, the "resource in question" can take any of the following forms:
@@ -272,6 +401,135 @@ class RepositoryGroupIamPolicy(pulumi.CustomResource):
272
401
  args: RepositoryGroupIamPolicyArgs,
273
402
  opts: Optional[pulumi.ResourceOptions] = None):
274
403
  """
404
+ Three different resources help you manage your IAM policy for Gemini for Google Cloud RepositoryGroup. Each of these resources serves a different use case:
405
+
406
+ * `gemini.RepositoryGroupIamPolicy`: Authoritative. Sets the IAM policy for the repositorygroup and replaces any existing policy already attached.
407
+ * `gemini.RepositoryGroupIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the repositorygroup are preserved.
408
+ * `gemini.RepositoryGroupIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the repositorygroup are preserved.
409
+
410
+ A data source can be used to retrieve policy data in advent you do not need creation
411
+
412
+ * `gemini.RepositoryGroupIamPolicy`: Retrieves the IAM policy for the repositorygroup
413
+
414
+ > **Note:** `gemini.RepositoryGroupIamPolicy` **cannot** be used in conjunction with `gemini.RepositoryGroupIamBinding` and `gemini.RepositoryGroupIamMember` or they will fight over what your policy should be.
415
+
416
+ > **Note:** `gemini.RepositoryGroupIamBinding` resources **can be** used in conjunction with `gemini.RepositoryGroupIamMember` resources **only if** they do not grant privilege to the same role.
417
+
418
+ ## gemini.RepositoryGroupIamPolicy
419
+
420
+ ```python
421
+ import pulumi
422
+ import pulumi_gcp as gcp
423
+
424
+ admin = gcp.organizations.get_iam_policy(bindings=[{
425
+ "role": "roles/cloudaicompanion.repositoryGroupsUser",
426
+ "members": ["user:jane@example.com"],
427
+ }])
428
+ policy = gcp.gemini.RepositoryGroupIamPolicy("policy",
429
+ project=example["project"],
430
+ location=example["location"],
431
+ code_repository_index=example["codeRepositoryIndex"],
432
+ repository_group_id=example["repositoryGroupId"],
433
+ policy_data=admin.policy_data)
434
+ ```
435
+
436
+ ## gemini.RepositoryGroupIamBinding
437
+
438
+ ```python
439
+ import pulumi
440
+ import pulumi_gcp as gcp
441
+
442
+ binding = gcp.gemini.RepositoryGroupIamBinding("binding",
443
+ project=example["project"],
444
+ location=example["location"],
445
+ code_repository_index=example["codeRepositoryIndex"],
446
+ repository_group_id=example["repositoryGroupId"],
447
+ role="roles/cloudaicompanion.repositoryGroupsUser",
448
+ members=["user:jane@example.com"])
449
+ ```
450
+
451
+ ## gemini.RepositoryGroupIamMember
452
+
453
+ ```python
454
+ import pulumi
455
+ import pulumi_gcp as gcp
456
+
457
+ member = gcp.gemini.RepositoryGroupIamMember("member",
458
+ project=example["project"],
459
+ location=example["location"],
460
+ code_repository_index=example["codeRepositoryIndex"],
461
+ repository_group_id=example["repositoryGroupId"],
462
+ role="roles/cloudaicompanion.repositoryGroupsUser",
463
+ member="user:jane@example.com")
464
+ ```
465
+
466
+ ## This resource supports User Project Overrides.
467
+
468
+ -
469
+
470
+ # IAM policy for Gemini for Google Cloud RepositoryGroup
471
+ Three different resources help you manage your IAM policy for Gemini for Google Cloud RepositoryGroup. Each of these resources serves a different use case:
472
+
473
+ * `gemini.RepositoryGroupIamPolicy`: Authoritative. Sets the IAM policy for the repositorygroup and replaces any existing policy already attached.
474
+ * `gemini.RepositoryGroupIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the repositorygroup are preserved.
475
+ * `gemini.RepositoryGroupIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the repositorygroup are preserved.
476
+
477
+ A data source can be used to retrieve policy data in advent you do not need creation
478
+
479
+ * `gemini.RepositoryGroupIamPolicy`: Retrieves the IAM policy for the repositorygroup
480
+
481
+ > **Note:** `gemini.RepositoryGroupIamPolicy` **cannot** be used in conjunction with `gemini.RepositoryGroupIamBinding` and `gemini.RepositoryGroupIamMember` or they will fight over what your policy should be.
482
+
483
+ > **Note:** `gemini.RepositoryGroupIamBinding` resources **can be** used in conjunction with `gemini.RepositoryGroupIamMember` resources **only if** they do not grant privilege to the same role.
484
+
485
+ ## gemini.RepositoryGroupIamPolicy
486
+
487
+ ```python
488
+ import pulumi
489
+ import pulumi_gcp as gcp
490
+
491
+ admin = gcp.organizations.get_iam_policy(bindings=[{
492
+ "role": "roles/cloudaicompanion.repositoryGroupsUser",
493
+ "members": ["user:jane@example.com"],
494
+ }])
495
+ policy = gcp.gemini.RepositoryGroupIamPolicy("policy",
496
+ project=example["project"],
497
+ location=example["location"],
498
+ code_repository_index=example["codeRepositoryIndex"],
499
+ repository_group_id=example["repositoryGroupId"],
500
+ policy_data=admin.policy_data)
501
+ ```
502
+
503
+ ## gemini.RepositoryGroupIamBinding
504
+
505
+ ```python
506
+ import pulumi
507
+ import pulumi_gcp as gcp
508
+
509
+ binding = gcp.gemini.RepositoryGroupIamBinding("binding",
510
+ project=example["project"],
511
+ location=example["location"],
512
+ code_repository_index=example["codeRepositoryIndex"],
513
+ repository_group_id=example["repositoryGroupId"],
514
+ role="roles/cloudaicompanion.repositoryGroupsUser",
515
+ members=["user:jane@example.com"])
516
+ ```
517
+
518
+ ## gemini.RepositoryGroupIamMember
519
+
520
+ ```python
521
+ import pulumi
522
+ import pulumi_gcp as gcp
523
+
524
+ member = gcp.gemini.RepositoryGroupIamMember("member",
525
+ project=example["project"],
526
+ location=example["location"],
527
+ code_repository_index=example["codeRepositoryIndex"],
528
+ repository_group_id=example["repositoryGroupId"],
529
+ role="roles/cloudaicompanion.repositoryGroupsUser",
530
+ member="user:jane@example.com")
531
+ ```
532
+
275
533
  ## Import
276
534
 
277
535
  For all import syntaxes, the "resource in question" can take any of the following forms:
@@ -333,6 +333,10 @@ if not MYPY:
333
333
  Git repo configuration for the cluster
334
334
  Structure is documented below.
335
335
  """
336
+ metrics_gcp_service_account_email: NotRequired[pulumi.Input[str]]
337
+ """
338
+ The Email of the Google Cloud Service Account (GSA) used for exporting Config Sync metrics to Cloud Monitoring. The GSA should have the Monitoring Metric Writer(roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount `default` in the namespace `config-management-monitoring` should be bound to the GSA.
339
+ """
336
340
  oci: NotRequired[pulumi.Input['FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOciArgsDict']]
337
341
  """
338
342
  OCI repo configuration for the cluster
@@ -354,6 +358,7 @@ class FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncArgs:
354
358
  def __init__(__self__, *,
355
359
  enabled: Optional[pulumi.Input[bool]] = None,
356
360
  git: Optional[pulumi.Input['FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGitArgs']] = None,
361
+ metrics_gcp_service_account_email: Optional[pulumi.Input[str]] = None,
357
362
  oci: Optional[pulumi.Input['FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOciArgs']] = None,
358
363
  prevent_drift: Optional[pulumi.Input[bool]] = None,
359
364
  source_format: Optional[pulumi.Input[str]] = None):
@@ -361,6 +366,7 @@ class FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncArgs:
361
366
  :param pulumi.Input[bool] enabled: Enables the installation of ConfigSync. If set to true, ConfigSync resources will be created and the other ConfigSync fields will be applied if exist. If set to false, all other ConfigSync fields will be ignored, ConfigSync resources will be deleted. If omitted, ConfigSync resources will be managed depends on the presence of the git or oci field.
362
367
  :param pulumi.Input['FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGitArgs'] git: Git repo configuration for the cluster
363
368
  Structure is documented below.
369
+ :param pulumi.Input[str] metrics_gcp_service_account_email: The Email of the Google Cloud Service Account (GSA) used for exporting Config Sync metrics to Cloud Monitoring. The GSA should have the Monitoring Metric Writer(roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount `default` in the namespace `config-management-monitoring` should be bound to the GSA.
364
370
  :param pulumi.Input['FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOciArgs'] oci: OCI repo configuration for the cluster
365
371
  Structure is documented below.
366
372
  :param pulumi.Input[bool] prevent_drift: Set to true to enable the Config Sync admission webhook to prevent drifts. If set to `false`, disables the Config Sync admission webhook and does not prevent drifts.
@@ -370,6 +376,8 @@ class FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncArgs:
370
376
  pulumi.set(__self__, "enabled", enabled)
371
377
  if git is not None:
372
378
  pulumi.set(__self__, "git", git)
379
+ if metrics_gcp_service_account_email is not None:
380
+ pulumi.set(__self__, "metrics_gcp_service_account_email", metrics_gcp_service_account_email)
373
381
  if oci is not None:
374
382
  pulumi.set(__self__, "oci", oci)
375
383
  if prevent_drift is not None:
@@ -402,6 +410,18 @@ class FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncArgs:
402
410
  def git(self, value: Optional[pulumi.Input['FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGitArgs']]):
403
411
  pulumi.set(self, "git", value)
404
412
 
413
+ @property
414
+ @pulumi.getter(name="metricsGcpServiceAccountEmail")
415
+ def metrics_gcp_service_account_email(self) -> Optional[pulumi.Input[str]]:
416
+ """
417
+ The Email of the Google Cloud Service Account (GSA) used for exporting Config Sync metrics to Cloud Monitoring. The GSA should have the Monitoring Metric Writer(roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount `default` in the namespace `config-management-monitoring` should be bound to the GSA.
418
+ """
419
+ return pulumi.get(self, "metrics_gcp_service_account_email")
420
+
421
+ @metrics_gcp_service_account_email.setter
422
+ def metrics_gcp_service_account_email(self, value: Optional[pulumi.Input[str]]):
423
+ pulumi.set(self, "metrics_gcp_service_account_email", value)
424
+
405
425
  @property
406
426
  @pulumi.getter
407
427
  def oci(self) -> Optional[pulumi.Input['FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOciArgs']]:
@@ -423,16 +423,16 @@ class MembershipBinding(pulumi.CustomResource):
423
423
  network="default",
424
424
  subnetwork="default")
425
425
  membership = gcp.gkehub.Membership("membership",
426
- membership_id="tf-test-membership_75223",
426
+ membership_id="tf-test-membership_41819",
427
427
  endpoint={
428
428
  "gke_cluster": {
429
429
  "resource_link": primary.id.apply(lambda id: f"//container.googleapis.com/{id}"),
430
430
  },
431
431
  },
432
432
  opts = pulumi.ResourceOptions(depends_on=[primary]))
433
- scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_41819")
433
+ scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_75092")
434
434
  membership_binding = gcp.gkehub.MembershipBinding("membership_binding",
435
- membership_binding_id="tf-test-membership-binding_75092",
435
+ membership_binding_id="tf-test-membership-binding_2605",
436
436
  scope=scope.name,
437
437
  membership_id=membership.membership_id,
438
438
  location="global",
@@ -519,16 +519,16 @@ class MembershipBinding(pulumi.CustomResource):
519
519
  network="default",
520
520
  subnetwork="default")
521
521
  membership = gcp.gkehub.Membership("membership",
522
- membership_id="tf-test-membership_75223",
522
+ membership_id="tf-test-membership_41819",
523
523
  endpoint={
524
524
  "gke_cluster": {
525
525
  "resource_link": primary.id.apply(lambda id: f"//container.googleapis.com/{id}"),
526
526
  },
527
527
  },
528
528
  opts = pulumi.ResourceOptions(depends_on=[primary]))
529
- scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_41819")
529
+ scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_75092")
530
530
  membership_binding = gcp.gkehub.MembershipBinding("membership_binding",
531
- membership_binding_id="tf-test-membership-binding_75092",
531
+ membership_binding_id="tf-test-membership-binding_2605",
532
532
  scope=scope.name,
533
533
  membership_id=membership.membership_id,
534
534
  location="global",