pulumi-gcp 7.31.0a1721039192__py3-none-any.whl → 7.32.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.
- pulumi_gcp/__init__.py +11 -0
- pulumi_gcp/alloydb/cluster.py +0 -24
- pulumi_gcp/bigquery/_inputs.py +0 -12
- pulumi_gcp/bigquery/dataset.py +0 -28
- pulumi_gcp/bigquery/dataset_access.py +0 -28
- pulumi_gcp/bigquery/outputs.py +0 -24
- pulumi_gcp/bigtable/authorized_view.py +104 -0
- pulumi_gcp/compute/global_address.py +16 -4
- pulumi_gcp/compute/target_instance.py +2 -2
- pulumi_gcp/config/__init__.pyi +2 -0
- pulumi_gcp/config/vars.py +4 -0
- pulumi_gcp/gkehub/__init__.py +1 -0
- pulumi_gcp/gkehub/get_membership_binding.py +222 -0
- pulumi_gcp/gkehub/outputs.py +19 -0
- pulumi_gcp/iap/client.py +7 -7
- pulumi_gcp/kms/_inputs.py +40 -0
- pulumi_gcp/kms/crypto_key.py +103 -0
- pulumi_gcp/kms/get_kms_crypto_key.py +11 -1
- pulumi_gcp/kms/outputs.py +112 -0
- pulumi_gcp/networksecurity/address_group.py +1 -1
- pulumi_gcp/privilegedaccessmanager/entitlement.py +4 -0
- pulumi_gcp/provider.py +20 -0
- pulumi_gcp/pulumi-plugin.json +1 -1
- pulumi_gcp/securitycenter/__init__.py +1 -0
- pulumi_gcp/securitycenter/_inputs.py +93 -0
- pulumi_gcp/securitycenter/outputs.py +59 -0
- pulumi_gcp/securitycenter/project_notification_config.py +518 -0
- pulumi_gcp/siteverification/__init__.py +8 -0
- pulumi_gcp/siteverification/get_token.py +221 -0
- {pulumi_gcp-7.31.0a1721039192.dist-info → pulumi_gcp-7.32.0.dist-info}/METADATA +1 -1
- {pulumi_gcp-7.31.0a1721039192.dist-info → pulumi_gcp-7.32.0.dist-info}/RECORD +33 -29
- {pulumi_gcp-7.31.0a1721039192.dist-info → pulumi_gcp-7.32.0.dist-info}/WHEEL +0 -0
- {pulumi_gcp-7.31.0a1721039192.dist-info → pulumi_gcp-7.32.0.dist-info}/top_level.txt +0 -0
@@ -452,7 +452,7 @@ class TargetInstance(pulumi.CustomResource):
|
|
452
452
|
import pulumi_gcp as gcp
|
453
453
|
|
454
454
|
target_vm = gcp.compute.get_network(name="default")
|
455
|
-
vmimage = gcp.compute.get_image(family="debian-
|
455
|
+
vmimage = gcp.compute.get_image(family="debian-12",
|
456
456
|
project="debian-cloud")
|
457
457
|
target_vm_instance = gcp.compute.Instance("target-vm",
|
458
458
|
name="custom-network-target-vm",
|
@@ -642,7 +642,7 @@ class TargetInstance(pulumi.CustomResource):
|
|
642
642
|
import pulumi_gcp as gcp
|
643
643
|
|
644
644
|
target_vm = gcp.compute.get_network(name="default")
|
645
|
-
vmimage = gcp.compute.get_image(family="debian-
|
645
|
+
vmimage = gcp.compute.get_image(family="debian-12",
|
646
646
|
project="debian-cloud")
|
647
647
|
target_vm_instance = gcp.compute.Instance("target-vm",
|
648
648
|
name="custom-network-target-vm",
|
pulumi_gcp/config/__init__.pyi
CHANGED
pulumi_gcp/config/vars.py
CHANGED
@@ -629,6 +629,10 @@ class _ExportableConfig(types.ModuleType):
|
|
629
629
|
def service_usage_custom_endpoint(self) -> Optional[str]:
|
630
630
|
return __config__.get('serviceUsageCustomEndpoint')
|
631
631
|
|
632
|
+
@property
|
633
|
+
def site_verification_custom_endpoint(self) -> Optional[str]:
|
634
|
+
return __config__.get('siteVerificationCustomEndpoint')
|
635
|
+
|
632
636
|
@property
|
633
637
|
def skip_region_validation(self) -> bool:
|
634
638
|
return __config__.get_bool('skipRegionValidation') or (_utilities.get_env_bool('PULUMI_GCP_SKIP_REGION_VALIDATION') or False)
|
pulumi_gcp/gkehub/__init__.py
CHANGED
@@ -12,6 +12,7 @@ from .feature_iam_policy import *
|
|
12
12
|
from .feature_membership import *
|
13
13
|
from .fleet import *
|
14
14
|
from .get_feature_iam_policy import *
|
15
|
+
from .get_membership_binding import *
|
15
16
|
from .get_membership_iam_policy import *
|
16
17
|
from .get_scope_iam_policy import *
|
17
18
|
from .membership import *
|
@@ -0,0 +1,222 @@
|
|
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
|
+
from . import outputs
|
17
|
+
|
18
|
+
__all__ = [
|
19
|
+
'GetMembershipBindingResult',
|
20
|
+
'AwaitableGetMembershipBindingResult',
|
21
|
+
'get_membership_binding',
|
22
|
+
'get_membership_binding_output',
|
23
|
+
]
|
24
|
+
|
25
|
+
@pulumi.output_type
|
26
|
+
class GetMembershipBindingResult:
|
27
|
+
"""
|
28
|
+
A collection of values returned by getMembershipBinding.
|
29
|
+
"""
|
30
|
+
def __init__(__self__, create_time=None, delete_time=None, effective_labels=None, id=None, labels=None, location=None, membership_binding_id=None, membership_id=None, name=None, project=None, pulumi_labels=None, scope=None, states=None, uid=None, update_time=None):
|
31
|
+
if create_time and not isinstance(create_time, str):
|
32
|
+
raise TypeError("Expected argument 'create_time' to be a str")
|
33
|
+
pulumi.set(__self__, "create_time", create_time)
|
34
|
+
if delete_time and not isinstance(delete_time, str):
|
35
|
+
raise TypeError("Expected argument 'delete_time' to be a str")
|
36
|
+
pulumi.set(__self__, "delete_time", delete_time)
|
37
|
+
if effective_labels and not isinstance(effective_labels, dict):
|
38
|
+
raise TypeError("Expected argument 'effective_labels' to be a dict")
|
39
|
+
pulumi.set(__self__, "effective_labels", effective_labels)
|
40
|
+
if id and not isinstance(id, str):
|
41
|
+
raise TypeError("Expected argument 'id' to be a str")
|
42
|
+
pulumi.set(__self__, "id", id)
|
43
|
+
if labels and not isinstance(labels, dict):
|
44
|
+
raise TypeError("Expected argument 'labels' to be a dict")
|
45
|
+
pulumi.set(__self__, "labels", labels)
|
46
|
+
if location and not isinstance(location, str):
|
47
|
+
raise TypeError("Expected argument 'location' to be a str")
|
48
|
+
pulumi.set(__self__, "location", location)
|
49
|
+
if membership_binding_id and not isinstance(membership_binding_id, str):
|
50
|
+
raise TypeError("Expected argument 'membership_binding_id' to be a str")
|
51
|
+
pulumi.set(__self__, "membership_binding_id", membership_binding_id)
|
52
|
+
if membership_id and not isinstance(membership_id, str):
|
53
|
+
raise TypeError("Expected argument 'membership_id' to be a str")
|
54
|
+
pulumi.set(__self__, "membership_id", membership_id)
|
55
|
+
if name and not isinstance(name, str):
|
56
|
+
raise TypeError("Expected argument 'name' to be a str")
|
57
|
+
pulumi.set(__self__, "name", name)
|
58
|
+
if project and not isinstance(project, str):
|
59
|
+
raise TypeError("Expected argument 'project' to be a str")
|
60
|
+
pulumi.set(__self__, "project", project)
|
61
|
+
if pulumi_labels and not isinstance(pulumi_labels, dict):
|
62
|
+
raise TypeError("Expected argument 'pulumi_labels' to be a dict")
|
63
|
+
pulumi.set(__self__, "pulumi_labels", pulumi_labels)
|
64
|
+
if scope and not isinstance(scope, str):
|
65
|
+
raise TypeError("Expected argument 'scope' to be a str")
|
66
|
+
pulumi.set(__self__, "scope", scope)
|
67
|
+
if states and not isinstance(states, list):
|
68
|
+
raise TypeError("Expected argument 'states' to be a list")
|
69
|
+
pulumi.set(__self__, "states", states)
|
70
|
+
if uid and not isinstance(uid, str):
|
71
|
+
raise TypeError("Expected argument 'uid' to be a str")
|
72
|
+
pulumi.set(__self__, "uid", uid)
|
73
|
+
if update_time and not isinstance(update_time, str):
|
74
|
+
raise TypeError("Expected argument 'update_time' to be a str")
|
75
|
+
pulumi.set(__self__, "update_time", update_time)
|
76
|
+
|
77
|
+
@property
|
78
|
+
@pulumi.getter(name="createTime")
|
79
|
+
def create_time(self) -> str:
|
80
|
+
return pulumi.get(self, "create_time")
|
81
|
+
|
82
|
+
@property
|
83
|
+
@pulumi.getter(name="deleteTime")
|
84
|
+
def delete_time(self) -> str:
|
85
|
+
return pulumi.get(self, "delete_time")
|
86
|
+
|
87
|
+
@property
|
88
|
+
@pulumi.getter(name="effectiveLabels")
|
89
|
+
def effective_labels(self) -> Mapping[str, str]:
|
90
|
+
return pulumi.get(self, "effective_labels")
|
91
|
+
|
92
|
+
@property
|
93
|
+
@pulumi.getter
|
94
|
+
def id(self) -> str:
|
95
|
+
"""
|
96
|
+
The provider-assigned unique ID for this managed resource.
|
97
|
+
"""
|
98
|
+
return pulumi.get(self, "id")
|
99
|
+
|
100
|
+
@property
|
101
|
+
@pulumi.getter
|
102
|
+
def labels(self) -> Mapping[str, str]:
|
103
|
+
return pulumi.get(self, "labels")
|
104
|
+
|
105
|
+
@property
|
106
|
+
@pulumi.getter
|
107
|
+
def location(self) -> str:
|
108
|
+
return pulumi.get(self, "location")
|
109
|
+
|
110
|
+
@property
|
111
|
+
@pulumi.getter(name="membershipBindingId")
|
112
|
+
def membership_binding_id(self) -> str:
|
113
|
+
return pulumi.get(self, "membership_binding_id")
|
114
|
+
|
115
|
+
@property
|
116
|
+
@pulumi.getter(name="membershipId")
|
117
|
+
def membership_id(self) -> str:
|
118
|
+
return pulumi.get(self, "membership_id")
|
119
|
+
|
120
|
+
@property
|
121
|
+
@pulumi.getter
|
122
|
+
def name(self) -> str:
|
123
|
+
return pulumi.get(self, "name")
|
124
|
+
|
125
|
+
@property
|
126
|
+
@pulumi.getter
|
127
|
+
def project(self) -> Optional[str]:
|
128
|
+
return pulumi.get(self, "project")
|
129
|
+
|
130
|
+
@property
|
131
|
+
@pulumi.getter(name="pulumiLabels")
|
132
|
+
def pulumi_labels(self) -> Mapping[str, str]:
|
133
|
+
return pulumi.get(self, "pulumi_labels")
|
134
|
+
|
135
|
+
@property
|
136
|
+
@pulumi.getter
|
137
|
+
def scope(self) -> str:
|
138
|
+
return pulumi.get(self, "scope")
|
139
|
+
|
140
|
+
@property
|
141
|
+
@pulumi.getter
|
142
|
+
def states(self) -> Sequence['outputs.GetMembershipBindingStateResult']:
|
143
|
+
return pulumi.get(self, "states")
|
144
|
+
|
145
|
+
@property
|
146
|
+
@pulumi.getter
|
147
|
+
def uid(self) -> str:
|
148
|
+
return pulumi.get(self, "uid")
|
149
|
+
|
150
|
+
@property
|
151
|
+
@pulumi.getter(name="updateTime")
|
152
|
+
def update_time(self) -> str:
|
153
|
+
return pulumi.get(self, "update_time")
|
154
|
+
|
155
|
+
|
156
|
+
class AwaitableGetMembershipBindingResult(GetMembershipBindingResult):
|
157
|
+
# pylint: disable=using-constant-test
|
158
|
+
def __await__(self):
|
159
|
+
if False:
|
160
|
+
yield self
|
161
|
+
return GetMembershipBindingResult(
|
162
|
+
create_time=self.create_time,
|
163
|
+
delete_time=self.delete_time,
|
164
|
+
effective_labels=self.effective_labels,
|
165
|
+
id=self.id,
|
166
|
+
labels=self.labels,
|
167
|
+
location=self.location,
|
168
|
+
membership_binding_id=self.membership_binding_id,
|
169
|
+
membership_id=self.membership_id,
|
170
|
+
name=self.name,
|
171
|
+
project=self.project,
|
172
|
+
pulumi_labels=self.pulumi_labels,
|
173
|
+
scope=self.scope,
|
174
|
+
states=self.states,
|
175
|
+
uid=self.uid,
|
176
|
+
update_time=self.update_time)
|
177
|
+
|
178
|
+
|
179
|
+
def get_membership_binding(location: Optional[str] = None,
|
180
|
+
membership_binding_id: Optional[str] = None,
|
181
|
+
membership_id: Optional[str] = None,
|
182
|
+
project: Optional[str] = None,
|
183
|
+
opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetMembershipBindingResult:
|
184
|
+
"""
|
185
|
+
Use this data source to access information about an existing resource.
|
186
|
+
"""
|
187
|
+
__args__ = dict()
|
188
|
+
__args__['location'] = location
|
189
|
+
__args__['membershipBindingId'] = membership_binding_id
|
190
|
+
__args__['membershipId'] = membership_id
|
191
|
+
__args__['project'] = project
|
192
|
+
opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
|
193
|
+
__ret__ = pulumi.runtime.invoke('gcp:gkehub/getMembershipBinding:getMembershipBinding', __args__, opts=opts, typ=GetMembershipBindingResult).value
|
194
|
+
|
195
|
+
return AwaitableGetMembershipBindingResult(
|
196
|
+
create_time=pulumi.get(__ret__, 'create_time'),
|
197
|
+
delete_time=pulumi.get(__ret__, 'delete_time'),
|
198
|
+
effective_labels=pulumi.get(__ret__, 'effective_labels'),
|
199
|
+
id=pulumi.get(__ret__, 'id'),
|
200
|
+
labels=pulumi.get(__ret__, 'labels'),
|
201
|
+
location=pulumi.get(__ret__, 'location'),
|
202
|
+
membership_binding_id=pulumi.get(__ret__, 'membership_binding_id'),
|
203
|
+
membership_id=pulumi.get(__ret__, 'membership_id'),
|
204
|
+
name=pulumi.get(__ret__, 'name'),
|
205
|
+
project=pulumi.get(__ret__, 'project'),
|
206
|
+
pulumi_labels=pulumi.get(__ret__, 'pulumi_labels'),
|
207
|
+
scope=pulumi.get(__ret__, 'scope'),
|
208
|
+
states=pulumi.get(__ret__, 'states'),
|
209
|
+
uid=pulumi.get(__ret__, 'uid'),
|
210
|
+
update_time=pulumi.get(__ret__, 'update_time'))
|
211
|
+
|
212
|
+
|
213
|
+
@_utilities.lift_output_func(get_membership_binding)
|
214
|
+
def get_membership_binding_output(location: Optional[pulumi.Input[str]] = None,
|
215
|
+
membership_binding_id: Optional[pulumi.Input[str]] = None,
|
216
|
+
membership_id: Optional[pulumi.Input[str]] = None,
|
217
|
+
project: Optional[pulumi.Input[Optional[str]]] = None,
|
218
|
+
opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetMembershipBindingResult]:
|
219
|
+
"""
|
220
|
+
Use this data source to access information about an existing resource.
|
221
|
+
"""
|
222
|
+
...
|
pulumi_gcp/gkehub/outputs.py
CHANGED
@@ -88,6 +88,7 @@ __all__ = [
|
|
88
88
|
'ScopeRbacRoleBindingRole',
|
89
89
|
'ScopeRbacRoleBindingState',
|
90
90
|
'ScopeState',
|
91
|
+
'GetMembershipBindingStateResult',
|
91
92
|
]
|
92
93
|
|
93
94
|
@pulumi.output_type
|
@@ -3588,3 +3589,21 @@ class ScopeState(dict):
|
|
3588
3589
|
return pulumi.get(self, "code")
|
3589
3590
|
|
3590
3591
|
|
3592
|
+
@pulumi.output_type
|
3593
|
+
class GetMembershipBindingStateResult(dict):
|
3594
|
+
def __init__(__self__, *,
|
3595
|
+
code: str):
|
3596
|
+
"""
|
3597
|
+
:param str code: Code describes the state of a MembershipBinding resource.
|
3598
|
+
"""
|
3599
|
+
pulumi.set(__self__, "code", code)
|
3600
|
+
|
3601
|
+
@property
|
3602
|
+
@pulumi.getter
|
3603
|
+
def code(self) -> str:
|
3604
|
+
"""
|
3605
|
+
Code describes the state of a MembershipBinding resource.
|
3606
|
+
"""
|
3607
|
+
return pulumi.get(self, "code")
|
3608
|
+
|
3609
|
+
|
pulumi_gcp/iap/client.py
CHANGED
@@ -25,7 +25,7 @@ class ClientArgs:
|
|
25
25
|
The set of arguments for constructing a Client resource.
|
26
26
|
:param pulumi.Input[str] brand: Identifier of the brand to which this client
|
27
27
|
is attached to. The format is
|
28
|
-
`projects/{project_number}/brands/{brand_id}
|
28
|
+
`projects/{project_number}/brands/{brand_id}`.
|
29
29
|
|
30
30
|
|
31
31
|
- - -
|
@@ -40,7 +40,7 @@ class ClientArgs:
|
|
40
40
|
"""
|
41
41
|
Identifier of the brand to which this client
|
42
42
|
is attached to. The format is
|
43
|
-
`projects/{project_number}/brands/{brand_id}
|
43
|
+
`projects/{project_number}/brands/{brand_id}`.
|
44
44
|
|
45
45
|
|
46
46
|
- - -
|
@@ -75,7 +75,7 @@ class _ClientState:
|
|
75
75
|
Input properties used for looking up and filtering Client resources.
|
76
76
|
:param pulumi.Input[str] brand: Identifier of the brand to which this client
|
77
77
|
is attached to. The format is
|
78
|
-
`projects/{project_number}/brands/{brand_id}
|
78
|
+
`projects/{project_number}/brands/{brand_id}`.
|
79
79
|
|
80
80
|
|
81
81
|
- - -
|
@@ -99,7 +99,7 @@ class _ClientState:
|
|
99
99
|
"""
|
100
100
|
Identifier of the brand to which this client
|
101
101
|
is attached to. The format is
|
102
|
-
`projects/{project_number}/brands/{brand_id}
|
102
|
+
`projects/{project_number}/brands/{brand_id}`.
|
103
103
|
|
104
104
|
|
105
105
|
- - -
|
@@ -215,7 +215,7 @@ class Client(pulumi.CustomResource):
|
|
215
215
|
:param pulumi.ResourceOptions opts: Options for the resource.
|
216
216
|
:param pulumi.Input[str] brand: Identifier of the brand to which this client
|
217
217
|
is attached to. The format is
|
218
|
-
`projects/{project_number}/brands/{brand_id}
|
218
|
+
`projects/{project_number}/brands/{brand_id}`.
|
219
219
|
|
220
220
|
|
221
221
|
- - -
|
@@ -341,7 +341,7 @@ class Client(pulumi.CustomResource):
|
|
341
341
|
:param pulumi.ResourceOptions opts: Options for the resource.
|
342
342
|
:param pulumi.Input[str] brand: Identifier of the brand to which this client
|
343
343
|
is attached to. The format is
|
344
|
-
`projects/{project_number}/brands/{brand_id}
|
344
|
+
`projects/{project_number}/brands/{brand_id}`.
|
345
345
|
|
346
346
|
|
347
347
|
- - -
|
@@ -366,7 +366,7 @@ class Client(pulumi.CustomResource):
|
|
366
366
|
"""
|
367
367
|
Identifier of the brand to which this client
|
368
368
|
is attached to. The format is
|
369
|
-
`projects/{project_number}/brands/{brand_id}
|
369
|
+
`projects/{project_number}/brands/{brand_id}`.
|
370
370
|
|
371
371
|
|
372
372
|
- - -
|
pulumi_gcp/kms/_inputs.py
CHANGED
@@ -19,6 +19,8 @@ __all__ = [
|
|
19
19
|
'CryptoKeyIAMBindingConditionArgsDict',
|
20
20
|
'CryptoKeyIAMMemberConditionArgs',
|
21
21
|
'CryptoKeyIAMMemberConditionArgsDict',
|
22
|
+
'CryptoKeyKeyAccessJustificationsPolicyArgs',
|
23
|
+
'CryptoKeyKeyAccessJustificationsPolicyArgsDict',
|
22
24
|
'CryptoKeyPrimaryArgs',
|
23
25
|
'CryptoKeyPrimaryArgsDict',
|
24
26
|
'CryptoKeyVersionAttestationArgs',
|
@@ -211,6 +213,44 @@ class CryptoKeyIAMMemberConditionArgs:
|
|
211
213
|
pulumi.set(self, "description", value)
|
212
214
|
|
213
215
|
|
216
|
+
if not MYPY:
|
217
|
+
class CryptoKeyKeyAccessJustificationsPolicyArgsDict(TypedDict):
|
218
|
+
allowed_access_reasons: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
219
|
+
"""
|
220
|
+
The list of allowed reasons for access to this CryptoKey. Zero allowed
|
221
|
+
access reasons means all encrypt, decrypt, and sign operations for
|
222
|
+
this CryptoKey will fail.
|
223
|
+
"""
|
224
|
+
elif False:
|
225
|
+
CryptoKeyKeyAccessJustificationsPolicyArgsDict: TypeAlias = Mapping[str, Any]
|
226
|
+
|
227
|
+
@pulumi.input_type
|
228
|
+
class CryptoKeyKeyAccessJustificationsPolicyArgs:
|
229
|
+
def __init__(__self__, *,
|
230
|
+
allowed_access_reasons: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
|
231
|
+
"""
|
232
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_access_reasons: The list of allowed reasons for access to this CryptoKey. Zero allowed
|
233
|
+
access reasons means all encrypt, decrypt, and sign operations for
|
234
|
+
this CryptoKey will fail.
|
235
|
+
"""
|
236
|
+
if allowed_access_reasons is not None:
|
237
|
+
pulumi.set(__self__, "allowed_access_reasons", allowed_access_reasons)
|
238
|
+
|
239
|
+
@property
|
240
|
+
@pulumi.getter(name="allowedAccessReasons")
|
241
|
+
def allowed_access_reasons(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
|
242
|
+
"""
|
243
|
+
The list of allowed reasons for access to this CryptoKey. Zero allowed
|
244
|
+
access reasons means all encrypt, decrypt, and sign operations for
|
245
|
+
this CryptoKey will fail.
|
246
|
+
"""
|
247
|
+
return pulumi.get(self, "allowed_access_reasons")
|
248
|
+
|
249
|
+
@allowed_access_reasons.setter
|
250
|
+
def allowed_access_reasons(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
|
251
|
+
pulumi.set(self, "allowed_access_reasons", value)
|
252
|
+
|
253
|
+
|
214
254
|
if not MYPY:
|
215
255
|
class CryptoKeyPrimaryArgsDict(TypedDict):
|
216
256
|
name: NotRequired[pulumi.Input[str]]
|
pulumi_gcp/kms/crypto_key.py
CHANGED
@@ -25,6 +25,7 @@ class CryptoKeyArgs:
|
|
25
25
|
crypto_key_backend: Optional[pulumi.Input[str]] = None,
|
26
26
|
destroy_scheduled_duration: Optional[pulumi.Input[str]] = None,
|
27
27
|
import_only: Optional[pulumi.Input[bool]] = None,
|
28
|
+
key_access_justifications_policy: Optional[pulumi.Input['CryptoKeyKeyAccessJustificationsPolicyArgs']] = None,
|
28
29
|
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
29
30
|
name: Optional[pulumi.Input[str]] = None,
|
30
31
|
purpose: Optional[pulumi.Input[str]] = None,
|
@@ -43,6 +44,15 @@ class CryptoKeyArgs:
|
|
43
44
|
:param pulumi.Input[str] destroy_scheduled_duration: The period of time that versions of this key spend in the DESTROY_SCHEDULED state before transitioning to DESTROYED.
|
44
45
|
If not specified at creation time, the default duration is 30 days.
|
45
46
|
:param pulumi.Input[bool] import_only: Whether this key may contain imported versions only.
|
47
|
+
:param pulumi.Input['CryptoKeyKeyAccessJustificationsPolicyArgs'] key_access_justifications_policy: The policy used for Key Access Justifications Policy Enforcement. If this
|
48
|
+
field is present and this key is enrolled in Key Access Justifications
|
49
|
+
Policy Enforcement, the policy will be evaluated in encrypt, decrypt, and
|
50
|
+
sign operations, and the operation will fail if rejected by the policy. The
|
51
|
+
policy is defined by specifying zero or more allowed justification codes.
|
52
|
+
https://cloud.google.com/assured-workloads/key-access-justifications/docs/justification-codes
|
53
|
+
By default, this field is absent, and all justification codes are allowed.
|
54
|
+
This field is currently in beta and is subject to change.
|
55
|
+
Structure is documented below.
|
46
56
|
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels with user-defined metadata to apply to this resource.
|
47
57
|
|
48
58
|
**Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
|
@@ -69,6 +79,8 @@ class CryptoKeyArgs:
|
|
69
79
|
pulumi.set(__self__, "destroy_scheduled_duration", destroy_scheduled_duration)
|
70
80
|
if import_only is not None:
|
71
81
|
pulumi.set(__self__, "import_only", import_only)
|
82
|
+
if key_access_justifications_policy is not None:
|
83
|
+
pulumi.set(__self__, "key_access_justifications_policy", key_access_justifications_policy)
|
72
84
|
if labels is not None:
|
73
85
|
pulumi.set(__self__, "labels", labels)
|
74
86
|
if name is not None:
|
@@ -136,6 +148,26 @@ class CryptoKeyArgs:
|
|
136
148
|
def import_only(self, value: Optional[pulumi.Input[bool]]):
|
137
149
|
pulumi.set(self, "import_only", value)
|
138
150
|
|
151
|
+
@property
|
152
|
+
@pulumi.getter(name="keyAccessJustificationsPolicy")
|
153
|
+
def key_access_justifications_policy(self) -> Optional[pulumi.Input['CryptoKeyKeyAccessJustificationsPolicyArgs']]:
|
154
|
+
"""
|
155
|
+
The policy used for Key Access Justifications Policy Enforcement. If this
|
156
|
+
field is present and this key is enrolled in Key Access Justifications
|
157
|
+
Policy Enforcement, the policy will be evaluated in encrypt, decrypt, and
|
158
|
+
sign operations, and the operation will fail if rejected by the policy. The
|
159
|
+
policy is defined by specifying zero or more allowed justification codes.
|
160
|
+
https://cloud.google.com/assured-workloads/key-access-justifications/docs/justification-codes
|
161
|
+
By default, this field is absent, and all justification codes are allowed.
|
162
|
+
This field is currently in beta and is subject to change.
|
163
|
+
Structure is documented below.
|
164
|
+
"""
|
165
|
+
return pulumi.get(self, "key_access_justifications_policy")
|
166
|
+
|
167
|
+
@key_access_justifications_policy.setter
|
168
|
+
def key_access_justifications_policy(self, value: Optional[pulumi.Input['CryptoKeyKeyAccessJustificationsPolicyArgs']]):
|
169
|
+
pulumi.set(self, "key_access_justifications_policy", value)
|
170
|
+
|
139
171
|
@property
|
140
172
|
@pulumi.getter
|
141
173
|
def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
|
@@ -228,6 +260,7 @@ class _CryptoKeyState:
|
|
228
260
|
destroy_scheduled_duration: Optional[pulumi.Input[str]] = None,
|
229
261
|
effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
230
262
|
import_only: Optional[pulumi.Input[bool]] = None,
|
263
|
+
key_access_justifications_policy: Optional[pulumi.Input['CryptoKeyKeyAccessJustificationsPolicyArgs']] = None,
|
231
264
|
key_ring: Optional[pulumi.Input[str]] = None,
|
232
265
|
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
233
266
|
name: Optional[pulumi.Input[str]] = None,
|
@@ -245,6 +278,15 @@ class _CryptoKeyState:
|
|
245
278
|
If not specified at creation time, the default duration is 30 days.
|
246
279
|
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
|
247
280
|
:param pulumi.Input[bool] import_only: Whether this key may contain imported versions only.
|
281
|
+
:param pulumi.Input['CryptoKeyKeyAccessJustificationsPolicyArgs'] key_access_justifications_policy: The policy used for Key Access Justifications Policy Enforcement. If this
|
282
|
+
field is present and this key is enrolled in Key Access Justifications
|
283
|
+
Policy Enforcement, the policy will be evaluated in encrypt, decrypt, and
|
284
|
+
sign operations, and the operation will fail if rejected by the policy. The
|
285
|
+
policy is defined by specifying zero or more allowed justification codes.
|
286
|
+
https://cloud.google.com/assured-workloads/key-access-justifications/docs/justification-codes
|
287
|
+
By default, this field is absent, and all justification codes are allowed.
|
288
|
+
This field is currently in beta and is subject to change.
|
289
|
+
Structure is documented below.
|
248
290
|
:param pulumi.Input[str] key_ring: The KeyRing that this key belongs to.
|
249
291
|
Format: `'projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}'`.
|
250
292
|
|
@@ -282,6 +324,8 @@ class _CryptoKeyState:
|
|
282
324
|
pulumi.set(__self__, "effective_labels", effective_labels)
|
283
325
|
if import_only is not None:
|
284
326
|
pulumi.set(__self__, "import_only", import_only)
|
327
|
+
if key_access_justifications_policy is not None:
|
328
|
+
pulumi.set(__self__, "key_access_justifications_policy", key_access_justifications_policy)
|
285
329
|
if key_ring is not None:
|
286
330
|
pulumi.set(__self__, "key_ring", key_ring)
|
287
331
|
if labels is not None:
|
@@ -351,6 +395,26 @@ class _CryptoKeyState:
|
|
351
395
|
def import_only(self, value: Optional[pulumi.Input[bool]]):
|
352
396
|
pulumi.set(self, "import_only", value)
|
353
397
|
|
398
|
+
@property
|
399
|
+
@pulumi.getter(name="keyAccessJustificationsPolicy")
|
400
|
+
def key_access_justifications_policy(self) -> Optional[pulumi.Input['CryptoKeyKeyAccessJustificationsPolicyArgs']]:
|
401
|
+
"""
|
402
|
+
The policy used for Key Access Justifications Policy Enforcement. If this
|
403
|
+
field is present and this key is enrolled in Key Access Justifications
|
404
|
+
Policy Enforcement, the policy will be evaluated in encrypt, decrypt, and
|
405
|
+
sign operations, and the operation will fail if rejected by the policy. The
|
406
|
+
policy is defined by specifying zero or more allowed justification codes.
|
407
|
+
https://cloud.google.com/assured-workloads/key-access-justifications/docs/justification-codes
|
408
|
+
By default, this field is absent, and all justification codes are allowed.
|
409
|
+
This field is currently in beta and is subject to change.
|
410
|
+
Structure is documented below.
|
411
|
+
"""
|
412
|
+
return pulumi.get(self, "key_access_justifications_policy")
|
413
|
+
|
414
|
+
@key_access_justifications_policy.setter
|
415
|
+
def key_access_justifications_policy(self, value: Optional[pulumi.Input['CryptoKeyKeyAccessJustificationsPolicyArgs']]):
|
416
|
+
pulumi.set(self, "key_access_justifications_policy", value)
|
417
|
+
|
354
418
|
@property
|
355
419
|
@pulumi.getter(name="keyRing")
|
356
420
|
def key_ring(self) -> Optional[pulumi.Input[str]]:
|
@@ -487,6 +551,7 @@ class CryptoKey(pulumi.CustomResource):
|
|
487
551
|
crypto_key_backend: Optional[pulumi.Input[str]] = None,
|
488
552
|
destroy_scheduled_duration: Optional[pulumi.Input[str]] = None,
|
489
553
|
import_only: Optional[pulumi.Input[bool]] = None,
|
554
|
+
key_access_justifications_policy: Optional[pulumi.Input[Union['CryptoKeyKeyAccessJustificationsPolicyArgs', 'CryptoKeyKeyAccessJustificationsPolicyArgsDict']]] = None,
|
490
555
|
key_ring: Optional[pulumi.Input[str]] = None,
|
491
556
|
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
492
557
|
name: Optional[pulumi.Input[str]] = None,
|
@@ -570,6 +635,15 @@ class CryptoKey(pulumi.CustomResource):
|
|
570
635
|
:param pulumi.Input[str] destroy_scheduled_duration: The period of time that versions of this key spend in the DESTROY_SCHEDULED state before transitioning to DESTROYED.
|
571
636
|
If not specified at creation time, the default duration is 30 days.
|
572
637
|
:param pulumi.Input[bool] import_only: Whether this key may contain imported versions only.
|
638
|
+
:param pulumi.Input[Union['CryptoKeyKeyAccessJustificationsPolicyArgs', 'CryptoKeyKeyAccessJustificationsPolicyArgsDict']] key_access_justifications_policy: The policy used for Key Access Justifications Policy Enforcement. If this
|
639
|
+
field is present and this key is enrolled in Key Access Justifications
|
640
|
+
Policy Enforcement, the policy will be evaluated in encrypt, decrypt, and
|
641
|
+
sign operations, and the operation will fail if rejected by the policy. The
|
642
|
+
policy is defined by specifying zero or more allowed justification codes.
|
643
|
+
https://cloud.google.com/assured-workloads/key-access-justifications/docs/justification-codes
|
644
|
+
By default, this field is absent, and all justification codes are allowed.
|
645
|
+
This field is currently in beta and is subject to change.
|
646
|
+
Structure is documented below.
|
573
647
|
:param pulumi.Input[str] key_ring: The KeyRing that this key belongs to.
|
574
648
|
Format: `'projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}'`.
|
575
649
|
|
@@ -686,6 +760,7 @@ class CryptoKey(pulumi.CustomResource):
|
|
686
760
|
crypto_key_backend: Optional[pulumi.Input[str]] = None,
|
687
761
|
destroy_scheduled_duration: Optional[pulumi.Input[str]] = None,
|
688
762
|
import_only: Optional[pulumi.Input[bool]] = None,
|
763
|
+
key_access_justifications_policy: Optional[pulumi.Input[Union['CryptoKeyKeyAccessJustificationsPolicyArgs', 'CryptoKeyKeyAccessJustificationsPolicyArgsDict']]] = None,
|
689
764
|
key_ring: Optional[pulumi.Input[str]] = None,
|
690
765
|
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
691
766
|
name: Optional[pulumi.Input[str]] = None,
|
@@ -705,6 +780,7 @@ class CryptoKey(pulumi.CustomResource):
|
|
705
780
|
__props__.__dict__["crypto_key_backend"] = crypto_key_backend
|
706
781
|
__props__.__dict__["destroy_scheduled_duration"] = destroy_scheduled_duration
|
707
782
|
__props__.__dict__["import_only"] = import_only
|
783
|
+
__props__.__dict__["key_access_justifications_policy"] = key_access_justifications_policy
|
708
784
|
if key_ring is None and not opts.urn:
|
709
785
|
raise TypeError("Missing required property 'key_ring'")
|
710
786
|
__props__.__dict__["key_ring"] = key_ring
|
@@ -733,6 +809,7 @@ class CryptoKey(pulumi.CustomResource):
|
|
733
809
|
destroy_scheduled_duration: Optional[pulumi.Input[str]] = None,
|
734
810
|
effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
735
811
|
import_only: Optional[pulumi.Input[bool]] = None,
|
812
|
+
key_access_justifications_policy: Optional[pulumi.Input[Union['CryptoKeyKeyAccessJustificationsPolicyArgs', 'CryptoKeyKeyAccessJustificationsPolicyArgsDict']]] = None,
|
736
813
|
key_ring: Optional[pulumi.Input[str]] = None,
|
737
814
|
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
738
815
|
name: Optional[pulumi.Input[str]] = None,
|
@@ -755,6 +832,15 @@ class CryptoKey(pulumi.CustomResource):
|
|
755
832
|
If not specified at creation time, the default duration is 30 days.
|
756
833
|
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
|
757
834
|
:param pulumi.Input[bool] import_only: Whether this key may contain imported versions only.
|
835
|
+
:param pulumi.Input[Union['CryptoKeyKeyAccessJustificationsPolicyArgs', 'CryptoKeyKeyAccessJustificationsPolicyArgsDict']] key_access_justifications_policy: The policy used for Key Access Justifications Policy Enforcement. If this
|
836
|
+
field is present and this key is enrolled in Key Access Justifications
|
837
|
+
Policy Enforcement, the policy will be evaluated in encrypt, decrypt, and
|
838
|
+
sign operations, and the operation will fail if rejected by the policy. The
|
839
|
+
policy is defined by specifying zero or more allowed justification codes.
|
840
|
+
https://cloud.google.com/assured-workloads/key-access-justifications/docs/justification-codes
|
841
|
+
By default, this field is absent, and all justification codes are allowed.
|
842
|
+
This field is currently in beta and is subject to change.
|
843
|
+
Structure is documented below.
|
758
844
|
:param pulumi.Input[str] key_ring: The KeyRing that this key belongs to.
|
759
845
|
Format: `'projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}'`.
|
760
846
|
|
@@ -792,6 +878,7 @@ class CryptoKey(pulumi.CustomResource):
|
|
792
878
|
__props__.__dict__["destroy_scheduled_duration"] = destroy_scheduled_duration
|
793
879
|
__props__.__dict__["effective_labels"] = effective_labels
|
794
880
|
__props__.__dict__["import_only"] = import_only
|
881
|
+
__props__.__dict__["key_access_justifications_policy"] = key_access_justifications_policy
|
795
882
|
__props__.__dict__["key_ring"] = key_ring
|
796
883
|
__props__.__dict__["labels"] = labels
|
797
884
|
__props__.__dict__["name"] = name
|
@@ -837,6 +924,22 @@ class CryptoKey(pulumi.CustomResource):
|
|
837
924
|
"""
|
838
925
|
return pulumi.get(self, "import_only")
|
839
926
|
|
927
|
+
@property
|
928
|
+
@pulumi.getter(name="keyAccessJustificationsPolicy")
|
929
|
+
def key_access_justifications_policy(self) -> pulumi.Output['outputs.CryptoKeyKeyAccessJustificationsPolicy']:
|
930
|
+
"""
|
931
|
+
The policy used for Key Access Justifications Policy Enforcement. If this
|
932
|
+
field is present and this key is enrolled in Key Access Justifications
|
933
|
+
Policy Enforcement, the policy will be evaluated in encrypt, decrypt, and
|
934
|
+
sign operations, and the operation will fail if rejected by the policy. The
|
935
|
+
policy is defined by specifying zero or more allowed justification codes.
|
936
|
+
https://cloud.google.com/assured-workloads/key-access-justifications/docs/justification-codes
|
937
|
+
By default, this field is absent, and all justification codes are allowed.
|
938
|
+
This field is currently in beta and is subject to change.
|
939
|
+
Structure is documented below.
|
940
|
+
"""
|
941
|
+
return pulumi.get(self, "key_access_justifications_policy")
|
942
|
+
|
840
943
|
@property
|
841
944
|
@pulumi.getter(name="keyRing")
|
842
945
|
def key_ring(self) -> pulumi.Output[str]:
|