pulumi-gcp 7.30.2__py3-none-any.whl → 7.31.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 (86) hide show
  1. pulumi_gcp/__init__.py +40 -0
  2. pulumi_gcp/applicationintegration/auth_config.py +2 -2
  3. pulumi_gcp/bigquery/reservation_assignment.py +48 -30
  4. pulumi_gcp/certificateauthority/certificate_template.py +2 -2
  5. pulumi_gcp/certificatemanager/_inputs.py +33 -0
  6. pulumi_gcp/certificatemanager/outputs.py +36 -0
  7. pulumi_gcp/certificatemanager/trust_config.py +107 -0
  8. pulumi_gcp/compute/_inputs.py +3 -6
  9. pulumi_gcp/compute/ca_external_account_key.py +2 -2
  10. pulumi_gcp/compute/get_health_check.py +11 -1
  11. pulumi_gcp/compute/global_forwarding_rule.py +2 -4
  12. pulumi_gcp/compute/health_check.py +124 -0
  13. pulumi_gcp/compute/instance.py +14 -14
  14. pulumi_gcp/compute/instance_group_membership.py +2 -2
  15. pulumi_gcp/compute/outputs.py +4 -8
  16. pulumi_gcp/compute/region_network_endpoint.py +2 -2
  17. pulumi_gcp/compute/region_network_endpoint_group.py +2 -2
  18. pulumi_gcp/compute/subnetwork.py +2 -2
  19. pulumi_gcp/config/__init__.pyi +2 -0
  20. pulumi_gcp/config/vars.py +4 -0
  21. pulumi_gcp/container/_inputs.py +3 -3
  22. pulumi_gcp/container/outputs.py +4 -4
  23. pulumi_gcp/containeranalysis/note.py +2 -2
  24. pulumi_gcp/dataloss/_inputs.py +3 -0
  25. pulumi_gcp/dataloss/outputs.py +2 -0
  26. pulumi_gcp/dataloss/prevention_job_trigger.py +90 -0
  27. pulumi_gcp/dataplex/_inputs.py +56 -0
  28. pulumi_gcp/dataplex/datascan.py +12 -0
  29. pulumi_gcp/dataplex/outputs.py +52 -0
  30. pulumi_gcp/filestore/backup.py +2 -2
  31. pulumi_gcp/filestore/instance.py +2 -2
  32. pulumi_gcp/filestore/snapshot.py +2 -2
  33. pulumi_gcp/gkehub/_inputs.py +20 -0
  34. pulumi_gcp/gkehub/outputs.py +12 -0
  35. pulumi_gcp/kms/__init__.py +2 -0
  36. pulumi_gcp/kms/crypto_key.py +7 -7
  37. pulumi_gcp/kms/get_crypto_keys.py +143 -0
  38. pulumi_gcp/kms/get_key_rings.py +119 -0
  39. pulumi_gcp/kms/outputs.py +270 -0
  40. pulumi_gcp/logging/_inputs.py +12 -12
  41. pulumi_gcp/logging/folder_bucket_config.py +6 -6
  42. pulumi_gcp/logging/organization_bucket_config.py +6 -6
  43. pulumi_gcp/logging/outputs.py +8 -8
  44. pulumi_gcp/logging/project_bucket_config.py +6 -6
  45. pulumi_gcp/looker/instance.py +2 -2
  46. pulumi_gcp/monitoring/custom_service.py +2 -2
  47. pulumi_gcp/monitoring/generic_service.py +2 -2
  48. pulumi_gcp/monitoring/notification_channel.py +2 -2
  49. pulumi_gcp/monitoring/slo.py +2 -2
  50. pulumi_gcp/netapp/storage_pool.py +132 -53
  51. pulumi_gcp/netapp/volume.py +60 -4
  52. pulumi_gcp/networksecurity/address_group.py +85 -1
  53. pulumi_gcp/networksecurity/firewall_endpoint.py +2 -2
  54. pulumi_gcp/networksecurity/firewall_endpoint_association.py +2 -2
  55. pulumi_gcp/networksecurity/security_profile_group.py +2 -2
  56. pulumi_gcp/orgpolicy/_inputs.py +40 -10
  57. pulumi_gcp/orgpolicy/outputs.py +28 -8
  58. pulumi_gcp/orgpolicy/policy.py +52 -35
  59. pulumi_gcp/provider.py +20 -0
  60. pulumi_gcp/pubsub/_inputs.py +3 -3
  61. pulumi_gcp/pubsub/outputs.py +4 -4
  62. pulumi_gcp/pulumi-plugin.json +1 -1
  63. pulumi_gcp/securesourcemanager/__init__.py +5 -0
  64. pulumi_gcp/securesourcemanager/_inputs.py +284 -0
  65. pulumi_gcp/securesourcemanager/get_repository_iam_policy.py +177 -0
  66. pulumi_gcp/securesourcemanager/outputs.py +202 -0
  67. pulumi_gcp/securesourcemanager/repository.py +715 -0
  68. pulumi_gcp/securesourcemanager/repository_iam_binding.py +804 -0
  69. pulumi_gcp/securesourcemanager/repository_iam_member.py +804 -0
  70. pulumi_gcp/securesourcemanager/repository_iam_policy.py +643 -0
  71. pulumi_gcp/securitycenter/__init__.py +1 -0
  72. pulumi_gcp/securitycenter/_inputs.py +93 -0
  73. pulumi_gcp/securitycenter/outputs.py +59 -0
  74. pulumi_gcp/securitycenter/v2_organization_notification_config.py +576 -0
  75. pulumi_gcp/securityposture/posture_deployment.py +0 -78
  76. pulumi_gcp/servicenetworking/vpc_service_controls.py +2 -2
  77. pulumi_gcp/vertex/_inputs.py +21 -1
  78. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +222 -0
  79. pulumi_gcp/vertex/outputs.py +15 -1
  80. pulumi_gcp/workstations/_inputs.py +33 -1
  81. pulumi_gcp/workstations/outputs.py +23 -1
  82. pulumi_gcp/workstations/workstation_config.py +18 -0
  83. {pulumi_gcp-7.30.2.dist-info → pulumi_gcp-7.31.0.dist-info}/METADATA +1 -1
  84. {pulumi_gcp-7.30.2.dist-info → pulumi_gcp-7.31.0.dist-info}/RECORD +86 -78
  85. {pulumi_gcp-7.30.2.dist-info → pulumi_gcp-7.31.0.dist-info}/WHEEL +0 -0
  86. {pulumi_gcp-7.30.2.dist-info → pulumi_gcp-7.31.0.dist-info}/top_level.txt +0 -0
@@ -23,6 +23,14 @@ __all__ = [
23
23
  'InstanceIamMemberConditionArgsDict',
24
24
  'InstancePrivateConfigArgs',
25
25
  'InstancePrivateConfigArgsDict',
26
+ 'RepositoryIamBindingConditionArgs',
27
+ 'RepositoryIamBindingConditionArgsDict',
28
+ 'RepositoryIamMemberConditionArgs',
29
+ 'RepositoryIamMemberConditionArgsDict',
30
+ 'RepositoryInitialConfigArgs',
31
+ 'RepositoryInitialConfigArgsDict',
32
+ 'RepositoryUriArgs',
33
+ 'RepositoryUriArgsDict',
26
34
  ]
27
35
 
28
36
  MYPY = False
@@ -321,3 +329,279 @@ class InstancePrivateConfigArgs:
321
329
  pulumi.set(self, "ssh_service_attachment", value)
322
330
 
323
331
 
332
+ if not MYPY:
333
+ class RepositoryIamBindingConditionArgsDict(TypedDict):
334
+ expression: pulumi.Input[str]
335
+ title: pulumi.Input[str]
336
+ description: NotRequired[pulumi.Input[str]]
337
+ elif False:
338
+ RepositoryIamBindingConditionArgsDict: TypeAlias = Mapping[str, Any]
339
+
340
+ @pulumi.input_type
341
+ class RepositoryIamBindingConditionArgs:
342
+ def __init__(__self__, *,
343
+ expression: pulumi.Input[str],
344
+ title: pulumi.Input[str],
345
+ description: Optional[pulumi.Input[str]] = None):
346
+ pulumi.set(__self__, "expression", expression)
347
+ pulumi.set(__self__, "title", title)
348
+ if description is not None:
349
+ pulumi.set(__self__, "description", description)
350
+
351
+ @property
352
+ @pulumi.getter
353
+ def expression(self) -> pulumi.Input[str]:
354
+ return pulumi.get(self, "expression")
355
+
356
+ @expression.setter
357
+ def expression(self, value: pulumi.Input[str]):
358
+ pulumi.set(self, "expression", value)
359
+
360
+ @property
361
+ @pulumi.getter
362
+ def title(self) -> pulumi.Input[str]:
363
+ return pulumi.get(self, "title")
364
+
365
+ @title.setter
366
+ def title(self, value: pulumi.Input[str]):
367
+ pulumi.set(self, "title", value)
368
+
369
+ @property
370
+ @pulumi.getter
371
+ def description(self) -> Optional[pulumi.Input[str]]:
372
+ return pulumi.get(self, "description")
373
+
374
+ @description.setter
375
+ def description(self, value: Optional[pulumi.Input[str]]):
376
+ pulumi.set(self, "description", value)
377
+
378
+
379
+ if not MYPY:
380
+ class RepositoryIamMemberConditionArgsDict(TypedDict):
381
+ expression: pulumi.Input[str]
382
+ title: pulumi.Input[str]
383
+ description: NotRequired[pulumi.Input[str]]
384
+ elif False:
385
+ RepositoryIamMemberConditionArgsDict: TypeAlias = Mapping[str, Any]
386
+
387
+ @pulumi.input_type
388
+ class RepositoryIamMemberConditionArgs:
389
+ def __init__(__self__, *,
390
+ expression: pulumi.Input[str],
391
+ title: pulumi.Input[str],
392
+ description: Optional[pulumi.Input[str]] = None):
393
+ pulumi.set(__self__, "expression", expression)
394
+ pulumi.set(__self__, "title", title)
395
+ if description is not None:
396
+ pulumi.set(__self__, "description", description)
397
+
398
+ @property
399
+ @pulumi.getter
400
+ def expression(self) -> pulumi.Input[str]:
401
+ return pulumi.get(self, "expression")
402
+
403
+ @expression.setter
404
+ def expression(self, value: pulumi.Input[str]):
405
+ pulumi.set(self, "expression", value)
406
+
407
+ @property
408
+ @pulumi.getter
409
+ def title(self) -> pulumi.Input[str]:
410
+ return pulumi.get(self, "title")
411
+
412
+ @title.setter
413
+ def title(self, value: pulumi.Input[str]):
414
+ pulumi.set(self, "title", value)
415
+
416
+ @property
417
+ @pulumi.getter
418
+ def description(self) -> Optional[pulumi.Input[str]]:
419
+ return pulumi.get(self, "description")
420
+
421
+ @description.setter
422
+ def description(self, value: Optional[pulumi.Input[str]]):
423
+ pulumi.set(self, "description", value)
424
+
425
+
426
+ if not MYPY:
427
+ class RepositoryInitialConfigArgsDict(TypedDict):
428
+ default_branch: NotRequired[pulumi.Input[str]]
429
+ """
430
+ Default branch name of the repository.
431
+ """
432
+ gitignores: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
433
+ """
434
+ List of gitignore template names user can choose from.
435
+ Valid values can be viewed at https://cloud.google.com/secure-source-manager/docs/reference/rest/v1/projects.locations.repositories#initialconfig.
436
+ """
437
+ license: NotRequired[pulumi.Input[str]]
438
+ """
439
+ License template name user can choose from.
440
+ Valid values can be viewed at https://cloud.google.com/secure-source-manager/docs/reference/rest/v1/projects.locations.repositories#initialconfig.
441
+ """
442
+ readme: NotRequired[pulumi.Input[str]]
443
+ """
444
+ README template name.
445
+ Valid values can be viewed at https://cloud.google.com/secure-source-manager/docs/reference/rest/v1/projects.locations.repositories#initialconfig.
446
+ """
447
+ elif False:
448
+ RepositoryInitialConfigArgsDict: TypeAlias = Mapping[str, Any]
449
+
450
+ @pulumi.input_type
451
+ class RepositoryInitialConfigArgs:
452
+ def __init__(__self__, *,
453
+ default_branch: Optional[pulumi.Input[str]] = None,
454
+ gitignores: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
455
+ license: Optional[pulumi.Input[str]] = None,
456
+ readme: Optional[pulumi.Input[str]] = None):
457
+ """
458
+ :param pulumi.Input[str] default_branch: Default branch name of the repository.
459
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] gitignores: List of gitignore template names user can choose from.
460
+ Valid values can be viewed at https://cloud.google.com/secure-source-manager/docs/reference/rest/v1/projects.locations.repositories#initialconfig.
461
+ :param pulumi.Input[str] license: License template name user can choose from.
462
+ Valid values can be viewed at https://cloud.google.com/secure-source-manager/docs/reference/rest/v1/projects.locations.repositories#initialconfig.
463
+ :param pulumi.Input[str] readme: README template name.
464
+ Valid values can be viewed at https://cloud.google.com/secure-source-manager/docs/reference/rest/v1/projects.locations.repositories#initialconfig.
465
+ """
466
+ if default_branch is not None:
467
+ pulumi.set(__self__, "default_branch", default_branch)
468
+ if gitignores is not None:
469
+ pulumi.set(__self__, "gitignores", gitignores)
470
+ if license is not None:
471
+ pulumi.set(__self__, "license", license)
472
+ if readme is not None:
473
+ pulumi.set(__self__, "readme", readme)
474
+
475
+ @property
476
+ @pulumi.getter(name="defaultBranch")
477
+ def default_branch(self) -> Optional[pulumi.Input[str]]:
478
+ """
479
+ Default branch name of the repository.
480
+ """
481
+ return pulumi.get(self, "default_branch")
482
+
483
+ @default_branch.setter
484
+ def default_branch(self, value: Optional[pulumi.Input[str]]):
485
+ pulumi.set(self, "default_branch", value)
486
+
487
+ @property
488
+ @pulumi.getter
489
+ def gitignores(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
490
+ """
491
+ List of gitignore template names user can choose from.
492
+ Valid values can be viewed at https://cloud.google.com/secure-source-manager/docs/reference/rest/v1/projects.locations.repositories#initialconfig.
493
+ """
494
+ return pulumi.get(self, "gitignores")
495
+
496
+ @gitignores.setter
497
+ def gitignores(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
498
+ pulumi.set(self, "gitignores", value)
499
+
500
+ @property
501
+ @pulumi.getter
502
+ def license(self) -> Optional[pulumi.Input[str]]:
503
+ """
504
+ License template name user can choose from.
505
+ Valid values can be viewed at https://cloud.google.com/secure-source-manager/docs/reference/rest/v1/projects.locations.repositories#initialconfig.
506
+ """
507
+ return pulumi.get(self, "license")
508
+
509
+ @license.setter
510
+ def license(self, value: Optional[pulumi.Input[str]]):
511
+ pulumi.set(self, "license", value)
512
+
513
+ @property
514
+ @pulumi.getter
515
+ def readme(self) -> Optional[pulumi.Input[str]]:
516
+ """
517
+ README template name.
518
+ Valid values can be viewed at https://cloud.google.com/secure-source-manager/docs/reference/rest/v1/projects.locations.repositories#initialconfig.
519
+ """
520
+ return pulumi.get(self, "readme")
521
+
522
+ @readme.setter
523
+ def readme(self, value: Optional[pulumi.Input[str]]):
524
+ pulumi.set(self, "readme", value)
525
+
526
+
527
+ if not MYPY:
528
+ class RepositoryUriArgsDict(TypedDict):
529
+ api: NotRequired[pulumi.Input[str]]
530
+ """
531
+ (Output)
532
+ API is the URI for API access.
533
+ """
534
+ git_https: NotRequired[pulumi.Input[str]]
535
+ """
536
+ (Output)
537
+ git_https is the git HTTPS URI for git operations.
538
+ """
539
+ html: NotRequired[pulumi.Input[str]]
540
+ """
541
+ (Output)
542
+ HTML is the URI for the user to view the repository in a browser.
543
+ """
544
+ elif False:
545
+ RepositoryUriArgsDict: TypeAlias = Mapping[str, Any]
546
+
547
+ @pulumi.input_type
548
+ class RepositoryUriArgs:
549
+ def __init__(__self__, *,
550
+ api: Optional[pulumi.Input[str]] = None,
551
+ git_https: Optional[pulumi.Input[str]] = None,
552
+ html: Optional[pulumi.Input[str]] = None):
553
+ """
554
+ :param pulumi.Input[str] api: (Output)
555
+ API is the URI for API access.
556
+ :param pulumi.Input[str] git_https: (Output)
557
+ git_https is the git HTTPS URI for git operations.
558
+ :param pulumi.Input[str] html: (Output)
559
+ HTML is the URI for the user to view the repository in a browser.
560
+ """
561
+ if api is not None:
562
+ pulumi.set(__self__, "api", api)
563
+ if git_https is not None:
564
+ pulumi.set(__self__, "git_https", git_https)
565
+ if html is not None:
566
+ pulumi.set(__self__, "html", html)
567
+
568
+ @property
569
+ @pulumi.getter
570
+ def api(self) -> Optional[pulumi.Input[str]]:
571
+ """
572
+ (Output)
573
+ API is the URI for API access.
574
+ """
575
+ return pulumi.get(self, "api")
576
+
577
+ @api.setter
578
+ def api(self, value: Optional[pulumi.Input[str]]):
579
+ pulumi.set(self, "api", value)
580
+
581
+ @property
582
+ @pulumi.getter(name="gitHttps")
583
+ def git_https(self) -> Optional[pulumi.Input[str]]:
584
+ """
585
+ (Output)
586
+ git_https is the git HTTPS URI for git operations.
587
+ """
588
+ return pulumi.get(self, "git_https")
589
+
590
+ @git_https.setter
591
+ def git_https(self, value: Optional[pulumi.Input[str]]):
592
+ pulumi.set(self, "git_https", value)
593
+
594
+ @property
595
+ @pulumi.getter
596
+ def html(self) -> Optional[pulumi.Input[str]]:
597
+ """
598
+ (Output)
599
+ HTML is the URI for the user to view the repository in a browser.
600
+ """
601
+ return pulumi.get(self, "html")
602
+
603
+ @html.setter
604
+ def html(self, value: Optional[pulumi.Input[str]]):
605
+ pulumi.set(self, "html", value)
606
+
607
+
@@ -0,0 +1,177 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from .. import _utilities
16
+
17
+ __all__ = [
18
+ 'GetRepositoryIamPolicyResult',
19
+ 'AwaitableGetRepositoryIamPolicyResult',
20
+ 'get_repository_iam_policy',
21
+ 'get_repository_iam_policy_output',
22
+ ]
23
+
24
+ @pulumi.output_type
25
+ class GetRepositoryIamPolicyResult:
26
+ """
27
+ A collection of values returned by getRepositoryIamPolicy.
28
+ """
29
+ def __init__(__self__, etag=None, id=None, location=None, policy_data=None, project=None, repository_id=None):
30
+ if etag and not isinstance(etag, str):
31
+ raise TypeError("Expected argument 'etag' to be a str")
32
+ pulumi.set(__self__, "etag", etag)
33
+ if id and not isinstance(id, str):
34
+ raise TypeError("Expected argument 'id' to be a str")
35
+ pulumi.set(__self__, "id", id)
36
+ if location and not isinstance(location, str):
37
+ raise TypeError("Expected argument 'location' to be a str")
38
+ pulumi.set(__self__, "location", location)
39
+ if policy_data and not isinstance(policy_data, str):
40
+ raise TypeError("Expected argument 'policy_data' to be a str")
41
+ pulumi.set(__self__, "policy_data", policy_data)
42
+ if project and not isinstance(project, str):
43
+ raise TypeError("Expected argument 'project' to be a str")
44
+ pulumi.set(__self__, "project", project)
45
+ if repository_id and not isinstance(repository_id, str):
46
+ raise TypeError("Expected argument 'repository_id' to be a str")
47
+ pulumi.set(__self__, "repository_id", repository_id)
48
+
49
+ @property
50
+ @pulumi.getter
51
+ def etag(self) -> str:
52
+ """
53
+ (Computed) The etag of the IAM policy.
54
+ """
55
+ return pulumi.get(self, "etag")
56
+
57
+ @property
58
+ @pulumi.getter
59
+ def id(self) -> str:
60
+ """
61
+ The provider-assigned unique ID for this managed resource.
62
+ """
63
+ return pulumi.get(self, "id")
64
+
65
+ @property
66
+ @pulumi.getter
67
+ def location(self) -> str:
68
+ return pulumi.get(self, "location")
69
+
70
+ @property
71
+ @pulumi.getter(name="policyData")
72
+ def policy_data(self) -> str:
73
+ """
74
+ (Required only by `securesourcemanager.RepositoryIamPolicy`) The policy data generated by
75
+ a `organizations_get_iam_policy` data source.
76
+ """
77
+ return pulumi.get(self, "policy_data")
78
+
79
+ @property
80
+ @pulumi.getter
81
+ def project(self) -> str:
82
+ return pulumi.get(self, "project")
83
+
84
+ @property
85
+ @pulumi.getter(name="repositoryId")
86
+ def repository_id(self) -> str:
87
+ return pulumi.get(self, "repository_id")
88
+
89
+
90
+ class AwaitableGetRepositoryIamPolicyResult(GetRepositoryIamPolicyResult):
91
+ # pylint: disable=using-constant-test
92
+ def __await__(self):
93
+ if False:
94
+ yield self
95
+ return GetRepositoryIamPolicyResult(
96
+ etag=self.etag,
97
+ id=self.id,
98
+ location=self.location,
99
+ policy_data=self.policy_data,
100
+ project=self.project,
101
+ repository_id=self.repository_id)
102
+
103
+
104
+ def get_repository_iam_policy(location: Optional[str] = None,
105
+ project: Optional[str] = None,
106
+ repository_id: Optional[str] = None,
107
+ opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetRepositoryIamPolicyResult:
108
+ """
109
+ Retrieves the current IAM policy data for repository
110
+
111
+ ## example
112
+
113
+ ```python
114
+ import pulumi
115
+ import pulumi_gcp as gcp
116
+
117
+ policy = gcp.securesourcemanager.get_repository_iam_policy(project=default["project"],
118
+ location=default["location"],
119
+ repository_id=default["repositoryId"])
120
+ ```
121
+
122
+
123
+ :param str location: The location for the Repository.
124
+ Used to find the parent resource to bind the IAM policy to. If not specified,
125
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
126
+ location is specified, it is taken from the provider configuration.
127
+ :param str project: The ID of the project in which the resource belongs.
128
+ If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
129
+ :param str repository_id: The ID for the Repository.
130
+ Used to find the parent resource to bind the IAM policy to
131
+ """
132
+ __args__ = dict()
133
+ __args__['location'] = location
134
+ __args__['project'] = project
135
+ __args__['repositoryId'] = repository_id
136
+ opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
137
+ __ret__ = pulumi.runtime.invoke('gcp:securesourcemanager/getRepositoryIamPolicy:getRepositoryIamPolicy', __args__, opts=opts, typ=GetRepositoryIamPolicyResult).value
138
+
139
+ return AwaitableGetRepositoryIamPolicyResult(
140
+ etag=pulumi.get(__ret__, 'etag'),
141
+ id=pulumi.get(__ret__, 'id'),
142
+ location=pulumi.get(__ret__, 'location'),
143
+ policy_data=pulumi.get(__ret__, 'policy_data'),
144
+ project=pulumi.get(__ret__, 'project'),
145
+ repository_id=pulumi.get(__ret__, 'repository_id'))
146
+
147
+
148
+ @_utilities.lift_output_func(get_repository_iam_policy)
149
+ def get_repository_iam_policy_output(location: Optional[pulumi.Input[Optional[str]]] = None,
150
+ project: Optional[pulumi.Input[Optional[str]]] = None,
151
+ repository_id: Optional[pulumi.Input[str]] = None,
152
+ opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetRepositoryIamPolicyResult]:
153
+ """
154
+ Retrieves the current IAM policy data for repository
155
+
156
+ ## example
157
+
158
+ ```python
159
+ import pulumi
160
+ import pulumi_gcp as gcp
161
+
162
+ policy = gcp.securesourcemanager.get_repository_iam_policy(project=default["project"],
163
+ location=default["location"],
164
+ repository_id=default["repositoryId"])
165
+ ```
166
+
167
+
168
+ :param str location: The location for the Repository.
169
+ Used to find the parent resource to bind the IAM policy to. If not specified,
170
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
171
+ location is specified, it is taken from the provider configuration.
172
+ :param str project: The ID of the project in which the resource belongs.
173
+ If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
174
+ :param str repository_id: The ID for the Repository.
175
+ Used to find the parent resource to bind the IAM policy to
176
+ """
177
+ ...
@@ -19,6 +19,10 @@ __all__ = [
19
19
  'InstanceIamBindingCondition',
20
20
  'InstanceIamMemberCondition',
21
21
  'InstancePrivateConfig',
22
+ 'RepositoryIamBindingCondition',
23
+ 'RepositoryIamMemberCondition',
24
+ 'RepositoryInitialConfig',
25
+ 'RepositoryUri',
22
26
  ]
23
27
 
24
28
  @pulumi.output_type
@@ -237,3 +241,201 @@ class InstancePrivateConfig(dict):
237
241
  return pulumi.get(self, "ssh_service_attachment")
238
242
 
239
243
 
244
+ @pulumi.output_type
245
+ class RepositoryIamBindingCondition(dict):
246
+ def __init__(__self__, *,
247
+ expression: str,
248
+ title: str,
249
+ description: Optional[str] = None):
250
+ pulumi.set(__self__, "expression", expression)
251
+ pulumi.set(__self__, "title", title)
252
+ if description is not None:
253
+ pulumi.set(__self__, "description", description)
254
+
255
+ @property
256
+ @pulumi.getter
257
+ def expression(self) -> str:
258
+ return pulumi.get(self, "expression")
259
+
260
+ @property
261
+ @pulumi.getter
262
+ def title(self) -> str:
263
+ return pulumi.get(self, "title")
264
+
265
+ @property
266
+ @pulumi.getter
267
+ def description(self) -> Optional[str]:
268
+ return pulumi.get(self, "description")
269
+
270
+
271
+ @pulumi.output_type
272
+ class RepositoryIamMemberCondition(dict):
273
+ def __init__(__self__, *,
274
+ expression: str,
275
+ title: str,
276
+ description: Optional[str] = None):
277
+ pulumi.set(__self__, "expression", expression)
278
+ pulumi.set(__self__, "title", title)
279
+ if description is not None:
280
+ pulumi.set(__self__, "description", description)
281
+
282
+ @property
283
+ @pulumi.getter
284
+ def expression(self) -> str:
285
+ return pulumi.get(self, "expression")
286
+
287
+ @property
288
+ @pulumi.getter
289
+ def title(self) -> str:
290
+ return pulumi.get(self, "title")
291
+
292
+ @property
293
+ @pulumi.getter
294
+ def description(self) -> Optional[str]:
295
+ return pulumi.get(self, "description")
296
+
297
+
298
+ @pulumi.output_type
299
+ class RepositoryInitialConfig(dict):
300
+ @staticmethod
301
+ def __key_warning(key: str):
302
+ suggest = None
303
+ if key == "defaultBranch":
304
+ suggest = "default_branch"
305
+
306
+ if suggest:
307
+ pulumi.log.warn(f"Key '{key}' not found in RepositoryInitialConfig. Access the value via the '{suggest}' property getter instead.")
308
+
309
+ def __getitem__(self, key: str) -> Any:
310
+ RepositoryInitialConfig.__key_warning(key)
311
+ return super().__getitem__(key)
312
+
313
+ def get(self, key: str, default = None) -> Any:
314
+ RepositoryInitialConfig.__key_warning(key)
315
+ return super().get(key, default)
316
+
317
+ def __init__(__self__, *,
318
+ default_branch: Optional[str] = None,
319
+ gitignores: Optional[Sequence[str]] = None,
320
+ license: Optional[str] = None,
321
+ readme: Optional[str] = None):
322
+ """
323
+ :param str default_branch: Default branch name of the repository.
324
+ :param Sequence[str] gitignores: List of gitignore template names user can choose from.
325
+ Valid values can be viewed at https://cloud.google.com/secure-source-manager/docs/reference/rest/v1/projects.locations.repositories#initialconfig.
326
+ :param str license: License template name user can choose from.
327
+ Valid values can be viewed at https://cloud.google.com/secure-source-manager/docs/reference/rest/v1/projects.locations.repositories#initialconfig.
328
+ :param str readme: README template name.
329
+ Valid values can be viewed at https://cloud.google.com/secure-source-manager/docs/reference/rest/v1/projects.locations.repositories#initialconfig.
330
+ """
331
+ if default_branch is not None:
332
+ pulumi.set(__self__, "default_branch", default_branch)
333
+ if gitignores is not None:
334
+ pulumi.set(__self__, "gitignores", gitignores)
335
+ if license is not None:
336
+ pulumi.set(__self__, "license", license)
337
+ if readme is not None:
338
+ pulumi.set(__self__, "readme", readme)
339
+
340
+ @property
341
+ @pulumi.getter(name="defaultBranch")
342
+ def default_branch(self) -> Optional[str]:
343
+ """
344
+ Default branch name of the repository.
345
+ """
346
+ return pulumi.get(self, "default_branch")
347
+
348
+ @property
349
+ @pulumi.getter
350
+ def gitignores(self) -> Optional[Sequence[str]]:
351
+ """
352
+ List of gitignore template names user can choose from.
353
+ Valid values can be viewed at https://cloud.google.com/secure-source-manager/docs/reference/rest/v1/projects.locations.repositories#initialconfig.
354
+ """
355
+ return pulumi.get(self, "gitignores")
356
+
357
+ @property
358
+ @pulumi.getter
359
+ def license(self) -> Optional[str]:
360
+ """
361
+ License template name user can choose from.
362
+ Valid values can be viewed at https://cloud.google.com/secure-source-manager/docs/reference/rest/v1/projects.locations.repositories#initialconfig.
363
+ """
364
+ return pulumi.get(self, "license")
365
+
366
+ @property
367
+ @pulumi.getter
368
+ def readme(self) -> Optional[str]:
369
+ """
370
+ README template name.
371
+ Valid values can be viewed at https://cloud.google.com/secure-source-manager/docs/reference/rest/v1/projects.locations.repositories#initialconfig.
372
+ """
373
+ return pulumi.get(self, "readme")
374
+
375
+
376
+ @pulumi.output_type
377
+ class RepositoryUri(dict):
378
+ @staticmethod
379
+ def __key_warning(key: str):
380
+ suggest = None
381
+ if key == "gitHttps":
382
+ suggest = "git_https"
383
+
384
+ if suggest:
385
+ pulumi.log.warn(f"Key '{key}' not found in RepositoryUri. Access the value via the '{suggest}' property getter instead.")
386
+
387
+ def __getitem__(self, key: str) -> Any:
388
+ RepositoryUri.__key_warning(key)
389
+ return super().__getitem__(key)
390
+
391
+ def get(self, key: str, default = None) -> Any:
392
+ RepositoryUri.__key_warning(key)
393
+ return super().get(key, default)
394
+
395
+ def __init__(__self__, *,
396
+ api: Optional[str] = None,
397
+ git_https: Optional[str] = None,
398
+ html: Optional[str] = None):
399
+ """
400
+ :param str api: (Output)
401
+ API is the URI for API access.
402
+ :param str git_https: (Output)
403
+ git_https is the git HTTPS URI for git operations.
404
+ :param str html: (Output)
405
+ HTML is the URI for the user to view the repository in a browser.
406
+ """
407
+ if api is not None:
408
+ pulumi.set(__self__, "api", api)
409
+ if git_https is not None:
410
+ pulumi.set(__self__, "git_https", git_https)
411
+ if html is not None:
412
+ pulumi.set(__self__, "html", html)
413
+
414
+ @property
415
+ @pulumi.getter
416
+ def api(self) -> Optional[str]:
417
+ """
418
+ (Output)
419
+ API is the URI for API access.
420
+ """
421
+ return pulumi.get(self, "api")
422
+
423
+ @property
424
+ @pulumi.getter(name="gitHttps")
425
+ def git_https(self) -> Optional[str]:
426
+ """
427
+ (Output)
428
+ git_https is the git HTTPS URI for git operations.
429
+ """
430
+ return pulumi.get(self, "git_https")
431
+
432
+ @property
433
+ @pulumi.getter
434
+ def html(self) -> Optional[str]:
435
+ """
436
+ (Output)
437
+ HTML is the URI for the user to view the repository in a browser.
438
+ """
439
+ return pulumi.get(self, "html")
440
+
441
+