pulumi-gcp 8.26.0a1744267117__py3-none-any.whl → 8.27.0a1744386150__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 (57) hide show
  1. pulumi_gcp/__init__.py +48 -0
  2. pulumi_gcp/accesscontextmanager/_inputs.py +117 -0
  3. pulumi_gcp/accesscontextmanager/gcp_user_access_binding.py +81 -26
  4. pulumi_gcp/accesscontextmanager/outputs.py +95 -0
  5. pulumi_gcp/apigee/__init__.py +1 -0
  6. pulumi_gcp/apigee/control_plane_access.py +419 -0
  7. pulumi_gcp/clouddeploy/__init__.py +1 -0
  8. pulumi_gcp/clouddeploy/_inputs.py +2876 -1314
  9. pulumi_gcp/clouddeploy/automation.py +64 -2
  10. pulumi_gcp/clouddeploy/deploy_policy.py +1179 -0
  11. pulumi_gcp/clouddeploy/outputs.py +1130 -5
  12. pulumi_gcp/cloudrunv2/service.py +2 -2
  13. pulumi_gcp/compute/_inputs.py +20 -0
  14. pulumi_gcp/compute/outputs.py +25 -0
  15. pulumi_gcp/compute/resource_policy.py +30 -0
  16. pulumi_gcp/datastream/_inputs.py +506 -0
  17. pulumi_gcp/datastream/outputs.py +376 -0
  18. pulumi_gcp/datastream/stream.py +0 -2
  19. pulumi_gcp/firebase/hosting_version.py +34 -14
  20. pulumi_gcp/folder/__init__.py +1 -0
  21. pulumi_gcp/folder/service_identity.py +340 -0
  22. pulumi_gcp/gemini/__init__.py +2 -0
  23. pulumi_gcp/gemini/_inputs.py +176 -0
  24. pulumi_gcp/gemini/code_tools_setting.py +601 -0
  25. pulumi_gcp/gemini/code_tools_setting_binding.py +753 -0
  26. pulumi_gcp/gemini/outputs.py +124 -0
  27. pulumi_gcp/gkeonprem/v_mware_cluster.py +49 -0
  28. pulumi_gcp/gkeonprem/vmware_admin_cluster.py +28 -0
  29. pulumi_gcp/memorystore/_inputs.py +136 -0
  30. pulumi_gcp/memorystore/get_instance.py +12 -1
  31. pulumi_gcp/memorystore/instance.py +54 -0
  32. pulumi_gcp/memorystore/outputs.py +190 -0
  33. pulumi_gcp/netapp/_inputs.py +89 -3
  34. pulumi_gcp/netapp/outputs.py +75 -2
  35. pulumi_gcp/netapp/volume_replication.py +12 -2
  36. pulumi_gcp/networkconnectivity/service_connection_policy.py +4 -2
  37. pulumi_gcp/osconfig/__init__.py +1 -0
  38. pulumi_gcp/osconfig/_inputs.py +5439 -0
  39. pulumi_gcp/osconfig/outputs.py +3978 -0
  40. pulumi_gcp/osconfig/v2_policy_orchestrator_for_organization.py +1047 -0
  41. pulumi_gcp/parametermanager/get_regional_parameter.py +12 -1
  42. pulumi_gcp/parametermanager/get_regional_parameter_version.py +15 -1
  43. pulumi_gcp/parametermanager/outputs.py +11 -0
  44. pulumi_gcp/parametermanager/regional_parameter.py +78 -0
  45. pulumi_gcp/parametermanager/regional_parameter_version.py +66 -0
  46. pulumi_gcp/pulumi-plugin.json +1 -1
  47. pulumi_gcp/spanner/database.py +0 -34
  48. pulumi_gcp/storage/bucket_object.py +28 -0
  49. pulumi_gcp/storage/get_bucket_object.py +12 -1
  50. pulumi_gcp/storage/get_bucket_object_content.py +12 -1
  51. pulumi_gcp/workbench/_inputs.py +60 -0
  52. pulumi_gcp/workbench/instance.py +48 -0
  53. pulumi_gcp/workbench/outputs.py +55 -0
  54. {pulumi_gcp-8.26.0a1744267117.dist-info → pulumi_gcp-8.27.0a1744386150.dist-info}/METADATA +1 -1
  55. {pulumi_gcp-8.26.0a1744267117.dist-info → pulumi_gcp-8.27.0a1744386150.dist-info}/RECORD +57 -51
  56. {pulumi_gcp-8.26.0a1744267117.dist-info → pulumi_gcp-8.27.0a1744386150.dist-info}/WHEEL +0 -0
  57. {pulumi_gcp-8.26.0a1744267117.dist-info → pulumi_gcp-8.27.0a1744386150.dist-info}/top_level.txt +0 -0
pulumi_gcp/__init__.py CHANGED
@@ -734,6 +734,14 @@ _utilities.register(
734
734
  "gcp:apigee/appGroup:AppGroup": "AppGroup"
735
735
  }
736
736
  },
737
+ {
738
+ "pkg": "gcp",
739
+ "mod": "apigee/controlPlaneAccess",
740
+ "fqn": "pulumi_gcp.apigee",
741
+ "classes": {
742
+ "gcp:apigee/controlPlaneAccess:ControlPlaneAccess": "ControlPlaneAccess"
743
+ }
744
+ },
737
745
  {
738
746
  "pkg": "gcp",
739
747
  "mod": "apigee/developer",
@@ -2054,6 +2062,14 @@ _utilities.register(
2054
2062
  "gcp:clouddeploy/deliveryPipelineIamPolicy:DeliveryPipelineIamPolicy": "DeliveryPipelineIamPolicy"
2055
2063
  }
2056
2064
  },
2065
+ {
2066
+ "pkg": "gcp",
2067
+ "mod": "clouddeploy/deployPolicy",
2068
+ "fqn": "pulumi_gcp.clouddeploy",
2069
+ "classes": {
2070
+ "gcp:clouddeploy/deployPolicy:DeployPolicy": "DeployPolicy"
2071
+ }
2072
+ },
2057
2073
  {
2058
2074
  "pkg": "gcp",
2059
2075
  "mod": "clouddeploy/target",
@@ -5366,6 +5382,14 @@ _utilities.register(
5366
5382
  "gcp:folder/organizationPolicy:OrganizationPolicy": "OrganizationPolicy"
5367
5383
  }
5368
5384
  },
5385
+ {
5386
+ "pkg": "gcp",
5387
+ "mod": "folder/serviceIdentity",
5388
+ "fqn": "pulumi_gcp.folder",
5389
+ "classes": {
5390
+ "gcp:folder/serviceIdentity:ServiceIdentity": "ServiceIdentity"
5391
+ }
5392
+ },
5369
5393
  {
5370
5394
  "pkg": "gcp",
5371
5395
  "mod": "gemini/codeRepositoryIndex",
@@ -5374,6 +5398,22 @@ _utilities.register(
5374
5398
  "gcp:gemini/codeRepositoryIndex:CodeRepositoryIndex": "CodeRepositoryIndex"
5375
5399
  }
5376
5400
  },
5401
+ {
5402
+ "pkg": "gcp",
5403
+ "mod": "gemini/codeToolsSetting",
5404
+ "fqn": "pulumi_gcp.gemini",
5405
+ "classes": {
5406
+ "gcp:gemini/codeToolsSetting:CodeToolsSetting": "CodeToolsSetting"
5407
+ }
5408
+ },
5409
+ {
5410
+ "pkg": "gcp",
5411
+ "mod": "gemini/codeToolsSettingBinding",
5412
+ "fqn": "pulumi_gcp.gemini",
5413
+ "classes": {
5414
+ "gcp:gemini/codeToolsSettingBinding:CodeToolsSettingBinding": "CodeToolsSettingBinding"
5415
+ }
5416
+ },
5377
5417
  {
5378
5418
  "pkg": "gcp",
5379
5419
  "mod": "gemini/dataSharingWithGoogleSetting",
@@ -7534,6 +7574,14 @@ _utilities.register(
7534
7574
  "gcp:osconfig/v2PolicyOrchestrator:V2PolicyOrchestrator": "V2PolicyOrchestrator"
7535
7575
  }
7536
7576
  },
7577
+ {
7578
+ "pkg": "gcp",
7579
+ "mod": "osconfig/v2PolicyOrchestratorForOrganization",
7580
+ "fqn": "pulumi_gcp.osconfig",
7581
+ "classes": {
7582
+ "gcp:osconfig/v2PolicyOrchestratorForOrganization:V2PolicyOrchestratorForOrganization": "V2PolicyOrchestratorForOrganization"
7583
+ }
7584
+ },
7537
7585
  {
7538
7586
  "pkg": "gcp",
7539
7587
  "mod": "oslogin/sshPublicKey",
@@ -62,6 +62,8 @@ __all__ = [
62
62
  'AccessPolicyIamBindingConditionArgsDict',
63
63
  'AccessPolicyIamMemberConditionArgs',
64
64
  'AccessPolicyIamMemberConditionArgsDict',
65
+ 'GcpUserAccessBindingSessionSettingsArgs',
66
+ 'GcpUserAccessBindingSessionSettingsArgsDict',
65
67
  'ServicePerimeterDryRunEgressPolicyEgressFromArgs',
66
68
  'ServicePerimeterDryRunEgressPolicyEgressFromArgsDict',
67
69
  'ServicePerimeterDryRunEgressPolicyEgressFromSourceArgs',
@@ -2228,6 +2230,121 @@ class AccessPolicyIamMemberConditionArgs:
2228
2230
  pulumi.set(self, "description", value)
2229
2231
 
2230
2232
 
2233
+ if not MYPY:
2234
+ class GcpUserAccessBindingSessionSettingsArgsDict(TypedDict):
2235
+ max_inactivity: NotRequired[pulumi.Input[builtins.str]]
2236
+ """
2237
+ Optional. How long a user is allowed to take between actions before a new access token must be issued. Only set for Google Cloud apps.
2238
+ """
2239
+ session_length: NotRequired[pulumi.Input[builtins.str]]
2240
+ """
2241
+ Optional. The session length. Setting this field to zero is equal to disabling session. Also can set infinite session by flipping the enabled bit to false below. If useOidcMaxAge is true, for OIDC apps, the session length will be the minimum of this field and OIDC max_age param.
2242
+ """
2243
+ session_length_enabled: NotRequired[pulumi.Input[builtins.bool]]
2244
+ """
2245
+ Optional. This field enables or disables Google Cloud session length. When false, all fields set above will be disregarded and the session length is basically infinite.
2246
+ """
2247
+ session_reauth_method: NotRequired[pulumi.Input[builtins.str]]
2248
+ """
2249
+ Optional. The session challenges proposed to users when the Google Cloud session length is up.
2250
+ Possible values are: `LOGIN`, `SECURITY_KEY`, `PASSWORD`.
2251
+ """
2252
+ use_oidc_max_age: NotRequired[pulumi.Input[builtins.bool]]
2253
+ """
2254
+ Optional. Only useful for OIDC apps. When false, the OIDC max_age param, if passed in the authentication request will be ignored. When true, the re-auth period will be the minimum of the sessionLength field and the max_age OIDC param.
2255
+ """
2256
+ elif False:
2257
+ GcpUserAccessBindingSessionSettingsArgsDict: TypeAlias = Mapping[str, Any]
2258
+
2259
+ @pulumi.input_type
2260
+ class GcpUserAccessBindingSessionSettingsArgs:
2261
+ def __init__(__self__, *,
2262
+ max_inactivity: Optional[pulumi.Input[builtins.str]] = None,
2263
+ session_length: Optional[pulumi.Input[builtins.str]] = None,
2264
+ session_length_enabled: Optional[pulumi.Input[builtins.bool]] = None,
2265
+ session_reauth_method: Optional[pulumi.Input[builtins.str]] = None,
2266
+ use_oidc_max_age: Optional[pulumi.Input[builtins.bool]] = None):
2267
+ """
2268
+ :param pulumi.Input[builtins.str] max_inactivity: Optional. How long a user is allowed to take between actions before a new access token must be issued. Only set for Google Cloud apps.
2269
+ :param pulumi.Input[builtins.str] session_length: Optional. The session length. Setting this field to zero is equal to disabling session. Also can set infinite session by flipping the enabled bit to false below. If useOidcMaxAge is true, for OIDC apps, the session length will be the minimum of this field and OIDC max_age param.
2270
+ :param pulumi.Input[builtins.bool] session_length_enabled: Optional. This field enables or disables Google Cloud session length. When false, all fields set above will be disregarded and the session length is basically infinite.
2271
+ :param pulumi.Input[builtins.str] session_reauth_method: Optional. The session challenges proposed to users when the Google Cloud session length is up.
2272
+ Possible values are: `LOGIN`, `SECURITY_KEY`, `PASSWORD`.
2273
+ :param pulumi.Input[builtins.bool] use_oidc_max_age: Optional. Only useful for OIDC apps. When false, the OIDC max_age param, if passed in the authentication request will be ignored. When true, the re-auth period will be the minimum of the sessionLength field and the max_age OIDC param.
2274
+ """
2275
+ if max_inactivity is not None:
2276
+ pulumi.set(__self__, "max_inactivity", max_inactivity)
2277
+ if session_length is not None:
2278
+ pulumi.set(__self__, "session_length", session_length)
2279
+ if session_length_enabled is not None:
2280
+ pulumi.set(__self__, "session_length_enabled", session_length_enabled)
2281
+ if session_reauth_method is not None:
2282
+ pulumi.set(__self__, "session_reauth_method", session_reauth_method)
2283
+ if use_oidc_max_age is not None:
2284
+ pulumi.set(__self__, "use_oidc_max_age", use_oidc_max_age)
2285
+
2286
+ @property
2287
+ @pulumi.getter(name="maxInactivity")
2288
+ def max_inactivity(self) -> Optional[pulumi.Input[builtins.str]]:
2289
+ """
2290
+ Optional. How long a user is allowed to take between actions before a new access token must be issued. Only set for Google Cloud apps.
2291
+ """
2292
+ return pulumi.get(self, "max_inactivity")
2293
+
2294
+ @max_inactivity.setter
2295
+ def max_inactivity(self, value: Optional[pulumi.Input[builtins.str]]):
2296
+ pulumi.set(self, "max_inactivity", value)
2297
+
2298
+ @property
2299
+ @pulumi.getter(name="sessionLength")
2300
+ def session_length(self) -> Optional[pulumi.Input[builtins.str]]:
2301
+ """
2302
+ Optional. The session length. Setting this field to zero is equal to disabling session. Also can set infinite session by flipping the enabled bit to false below. If useOidcMaxAge is true, for OIDC apps, the session length will be the minimum of this field and OIDC max_age param.
2303
+ """
2304
+ return pulumi.get(self, "session_length")
2305
+
2306
+ @session_length.setter
2307
+ def session_length(self, value: Optional[pulumi.Input[builtins.str]]):
2308
+ pulumi.set(self, "session_length", value)
2309
+
2310
+ @property
2311
+ @pulumi.getter(name="sessionLengthEnabled")
2312
+ def session_length_enabled(self) -> Optional[pulumi.Input[builtins.bool]]:
2313
+ """
2314
+ Optional. This field enables or disables Google Cloud session length. When false, all fields set above will be disregarded and the session length is basically infinite.
2315
+ """
2316
+ return pulumi.get(self, "session_length_enabled")
2317
+
2318
+ @session_length_enabled.setter
2319
+ def session_length_enabled(self, value: Optional[pulumi.Input[builtins.bool]]):
2320
+ pulumi.set(self, "session_length_enabled", value)
2321
+
2322
+ @property
2323
+ @pulumi.getter(name="sessionReauthMethod")
2324
+ def session_reauth_method(self) -> Optional[pulumi.Input[builtins.str]]:
2325
+ """
2326
+ Optional. The session challenges proposed to users when the Google Cloud session length is up.
2327
+ Possible values are: `LOGIN`, `SECURITY_KEY`, `PASSWORD`.
2328
+ """
2329
+ return pulumi.get(self, "session_reauth_method")
2330
+
2331
+ @session_reauth_method.setter
2332
+ def session_reauth_method(self, value: Optional[pulumi.Input[builtins.str]]):
2333
+ pulumi.set(self, "session_reauth_method", value)
2334
+
2335
+ @property
2336
+ @pulumi.getter(name="useOidcMaxAge")
2337
+ def use_oidc_max_age(self) -> Optional[pulumi.Input[builtins.bool]]:
2338
+ """
2339
+ Optional. Only useful for OIDC apps. When false, the OIDC max_age param, if passed in the authentication request will be ignored. When true, the re-auth period will be the minimum of the sessionLength field and the max_age OIDC param.
2340
+ """
2341
+ return pulumi.get(self, "use_oidc_max_age")
2342
+
2343
+ @use_oidc_max_age.setter
2344
+ def use_oidc_max_age(self, value: Optional[pulumi.Input[builtins.bool]]):
2345
+ pulumi.set(self, "use_oidc_max_age", value)
2346
+
2347
+
2231
2348
  if not MYPY:
2232
2349
  class ServicePerimeterDryRunEgressPolicyEgressFromArgsDict(TypedDict):
2233
2350
  identities: NotRequired[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]
@@ -14,39 +14,35 @@ if sys.version_info >= (3, 11):
14
14
  else:
15
15
  from typing_extensions import NotRequired, TypedDict, TypeAlias
16
16
  from .. import _utilities
17
+ from . import outputs
18
+ from ._inputs import *
17
19
 
18
20
  __all__ = ['GcpUserAccessBindingArgs', 'GcpUserAccessBinding']
19
21
 
20
22
  @pulumi.input_type
21
23
  class GcpUserAccessBindingArgs:
22
24
  def __init__(__self__, *,
23
- access_levels: pulumi.Input[builtins.str],
24
25
  group_key: pulumi.Input[builtins.str],
25
- organization_id: pulumi.Input[builtins.str]):
26
+ organization_id: pulumi.Input[builtins.str],
27
+ access_levels: Optional[pulumi.Input[builtins.str]] = None,
28
+ session_settings: Optional[pulumi.Input['GcpUserAccessBindingSessionSettingsArgs']] = None):
26
29
  """
27
30
  The set of arguments for constructing a GcpUserAccessBinding resource.
28
- :param pulumi.Input[builtins.str] access_levels: Required. Access level that a user must have to be granted access. Only one access level is supported, not multiple. This repeated field must have exactly one element. Example: "accessPolicies/9522/accessLevels/device_trusted"
29
31
  :param pulumi.Input[builtins.str] group_key: Required. Immutable. Google Group id whose members are subject to this binding's restrictions. See "id" in the G Suite Directory API's Groups resource. If a group's email address/alias is changed, this resource will continue to point at the changed group. This field does not accept group email addresses or aliases. Example: "01d520gv4vjcrht"
30
32
  :param pulumi.Input[builtins.str] organization_id: Required. ID of the parent organization.
31
33
 
32
34
 
33
35
  - - -
36
+ :param pulumi.Input[builtins.str] access_levels: Optional. Access level that a user must have to be granted access. Only one access level is supported, not multiple. This repeated field must have exactly one element. Example: "accessPolicies/9522/accessLevels/device_trusted"
37
+ :param pulumi.Input['GcpUserAccessBindingSessionSettingsArgs'] session_settings: Optional. The Google Cloud session length (GCSL) policy for the group key.
38
+ Structure is documented below.
34
39
  """
35
- pulumi.set(__self__, "access_levels", access_levels)
36
40
  pulumi.set(__self__, "group_key", group_key)
37
41
  pulumi.set(__self__, "organization_id", organization_id)
38
-
39
- @property
40
- @pulumi.getter(name="accessLevels")
41
- def access_levels(self) -> pulumi.Input[builtins.str]:
42
- """
43
- Required. Access level that a user must have to be granted access. Only one access level is supported, not multiple. This repeated field must have exactly one element. Example: "accessPolicies/9522/accessLevels/device_trusted"
44
- """
45
- return pulumi.get(self, "access_levels")
46
-
47
- @access_levels.setter
48
- def access_levels(self, value: pulumi.Input[builtins.str]):
49
- pulumi.set(self, "access_levels", value)
42
+ if access_levels is not None:
43
+ pulumi.set(__self__, "access_levels", access_levels)
44
+ if session_settings is not None:
45
+ pulumi.set(__self__, "session_settings", session_settings)
50
46
 
51
47
  @property
52
48
  @pulumi.getter(name="groupKey")
@@ -75,6 +71,31 @@ class GcpUserAccessBindingArgs:
75
71
  def organization_id(self, value: pulumi.Input[builtins.str]):
76
72
  pulumi.set(self, "organization_id", value)
77
73
 
74
+ @property
75
+ @pulumi.getter(name="accessLevels")
76
+ def access_levels(self) -> Optional[pulumi.Input[builtins.str]]:
77
+ """
78
+ Optional. Access level that a user must have to be granted access. Only one access level is supported, not multiple. This repeated field must have exactly one element. Example: "accessPolicies/9522/accessLevels/device_trusted"
79
+ """
80
+ return pulumi.get(self, "access_levels")
81
+
82
+ @access_levels.setter
83
+ def access_levels(self, value: Optional[pulumi.Input[builtins.str]]):
84
+ pulumi.set(self, "access_levels", value)
85
+
86
+ @property
87
+ @pulumi.getter(name="sessionSettings")
88
+ def session_settings(self) -> Optional[pulumi.Input['GcpUserAccessBindingSessionSettingsArgs']]:
89
+ """
90
+ Optional. The Google Cloud session length (GCSL) policy for the group key.
91
+ Structure is documented below.
92
+ """
93
+ return pulumi.get(self, "session_settings")
94
+
95
+ @session_settings.setter
96
+ def session_settings(self, value: Optional[pulumi.Input['GcpUserAccessBindingSessionSettingsArgs']]):
97
+ pulumi.set(self, "session_settings", value)
98
+
78
99
 
79
100
  @pulumi.input_type
80
101
  class _GcpUserAccessBindingState:
@@ -82,16 +103,19 @@ class _GcpUserAccessBindingState:
82
103
  access_levels: Optional[pulumi.Input[builtins.str]] = None,
83
104
  group_key: Optional[pulumi.Input[builtins.str]] = None,
84
105
  name: Optional[pulumi.Input[builtins.str]] = None,
85
- organization_id: Optional[pulumi.Input[builtins.str]] = None):
106
+ organization_id: Optional[pulumi.Input[builtins.str]] = None,
107
+ session_settings: Optional[pulumi.Input['GcpUserAccessBindingSessionSettingsArgs']] = None):
86
108
  """
87
109
  Input properties used for looking up and filtering GcpUserAccessBinding resources.
88
- :param pulumi.Input[builtins.str] access_levels: Required. Access level that a user must have to be granted access. Only one access level is supported, not multiple. This repeated field must have exactly one element. Example: "accessPolicies/9522/accessLevels/device_trusted"
110
+ :param pulumi.Input[builtins.str] access_levels: Optional. Access level that a user must have to be granted access. Only one access level is supported, not multiple. This repeated field must have exactly one element. Example: "accessPolicies/9522/accessLevels/device_trusted"
89
111
  :param pulumi.Input[builtins.str] group_key: Required. Immutable. Google Group id whose members are subject to this binding's restrictions. See "id" in the G Suite Directory API's Groups resource. If a group's email address/alias is changed, this resource will continue to point at the changed group. This field does not accept group email addresses or aliases. Example: "01d520gv4vjcrht"
90
112
  :param pulumi.Input[builtins.str] name: Immutable. Assigned by the server during creation. The last segment has an arbitrary length and has only URI unreserved characters (as defined by RFC 3986 Section 2.3). Should not be specified by the client during creation. Example: "organizations/256/gcpUserAccessBindings/b3-BhcX_Ud5N"
91
113
  :param pulumi.Input[builtins.str] organization_id: Required. ID of the parent organization.
92
114
 
93
115
 
94
116
  - - -
117
+ :param pulumi.Input['GcpUserAccessBindingSessionSettingsArgs'] session_settings: Optional. The Google Cloud session length (GCSL) policy for the group key.
118
+ Structure is documented below.
95
119
  """
96
120
  if access_levels is not None:
97
121
  pulumi.set(__self__, "access_levels", access_levels)
@@ -101,12 +125,14 @@ class _GcpUserAccessBindingState:
101
125
  pulumi.set(__self__, "name", name)
102
126
  if organization_id is not None:
103
127
  pulumi.set(__self__, "organization_id", organization_id)
128
+ if session_settings is not None:
129
+ pulumi.set(__self__, "session_settings", session_settings)
104
130
 
105
131
  @property
106
132
  @pulumi.getter(name="accessLevels")
107
133
  def access_levels(self) -> Optional[pulumi.Input[builtins.str]]:
108
134
  """
109
- Required. Access level that a user must have to be granted access. Only one access level is supported, not multiple. This repeated field must have exactly one element. Example: "accessPolicies/9522/accessLevels/device_trusted"
135
+ Optional. Access level that a user must have to be granted access. Only one access level is supported, not multiple. This repeated field must have exactly one element. Example: "accessPolicies/9522/accessLevels/device_trusted"
110
136
  """
111
137
  return pulumi.get(self, "access_levels")
112
138
 
@@ -153,6 +179,19 @@ class _GcpUserAccessBindingState:
153
179
  def organization_id(self, value: Optional[pulumi.Input[builtins.str]]):
154
180
  pulumi.set(self, "organization_id", value)
155
181
 
182
+ @property
183
+ @pulumi.getter(name="sessionSettings")
184
+ def session_settings(self) -> Optional[pulumi.Input['GcpUserAccessBindingSessionSettingsArgs']]:
185
+ """
186
+ Optional. The Google Cloud session length (GCSL) policy for the group key.
187
+ Structure is documented below.
188
+ """
189
+ return pulumi.get(self, "session_settings")
190
+
191
+ @session_settings.setter
192
+ def session_settings(self, value: Optional[pulumi.Input['GcpUserAccessBindingSessionSettingsArgs']]):
193
+ pulumi.set(self, "session_settings", value)
194
+
156
195
 
157
196
  class GcpUserAccessBinding(pulumi.CustomResource):
158
197
  @overload
@@ -162,6 +201,7 @@ class GcpUserAccessBinding(pulumi.CustomResource):
162
201
  access_levels: Optional[pulumi.Input[builtins.str]] = None,
163
202
  group_key: Optional[pulumi.Input[builtins.str]] = None,
164
203
  organization_id: Optional[pulumi.Input[builtins.str]] = None,
204
+ session_settings: Optional[pulumi.Input[Union['GcpUserAccessBindingSessionSettingsArgs', 'GcpUserAccessBindingSessionSettingsArgsDict']]] = None,
165
205
  __props__=None):
166
206
  """
167
207
  Restricts access to Cloud Console and Google Cloud APIs for a set of users using Context-Aware Access.
@@ -227,12 +267,14 @@ class GcpUserAccessBinding(pulumi.CustomResource):
227
267
 
228
268
  :param str resource_name: The name of the resource.
229
269
  :param pulumi.ResourceOptions opts: Options for the resource.
230
- :param pulumi.Input[builtins.str] access_levels: Required. Access level that a user must have to be granted access. Only one access level is supported, not multiple. This repeated field must have exactly one element. Example: "accessPolicies/9522/accessLevels/device_trusted"
270
+ :param pulumi.Input[builtins.str] access_levels: Optional. Access level that a user must have to be granted access. Only one access level is supported, not multiple. This repeated field must have exactly one element. Example: "accessPolicies/9522/accessLevels/device_trusted"
231
271
  :param pulumi.Input[builtins.str] group_key: Required. Immutable. Google Group id whose members are subject to this binding's restrictions. See "id" in the G Suite Directory API's Groups resource. If a group's email address/alias is changed, this resource will continue to point at the changed group. This field does not accept group email addresses or aliases. Example: "01d520gv4vjcrht"
232
272
  :param pulumi.Input[builtins.str] organization_id: Required. ID of the parent organization.
233
273
 
234
274
 
235
275
  - - -
276
+ :param pulumi.Input[Union['GcpUserAccessBindingSessionSettingsArgs', 'GcpUserAccessBindingSessionSettingsArgsDict']] session_settings: Optional. The Google Cloud session length (GCSL) policy for the group key.
277
+ Structure is documented below.
236
278
  """
237
279
  ...
238
280
  @overload
@@ -320,6 +362,7 @@ class GcpUserAccessBinding(pulumi.CustomResource):
320
362
  access_levels: Optional[pulumi.Input[builtins.str]] = None,
321
363
  group_key: Optional[pulumi.Input[builtins.str]] = None,
322
364
  organization_id: Optional[pulumi.Input[builtins.str]] = None,
365
+ session_settings: Optional[pulumi.Input[Union['GcpUserAccessBindingSessionSettingsArgs', 'GcpUserAccessBindingSessionSettingsArgsDict']]] = None,
323
366
  __props__=None):
324
367
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
325
368
  if not isinstance(opts, pulumi.ResourceOptions):
@@ -329,8 +372,6 @@ class GcpUserAccessBinding(pulumi.CustomResource):
329
372
  raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
330
373
  __props__ = GcpUserAccessBindingArgs.__new__(GcpUserAccessBindingArgs)
331
374
 
332
- if access_levels is None and not opts.urn:
333
- raise TypeError("Missing required property 'access_levels'")
334
375
  __props__.__dict__["access_levels"] = access_levels
335
376
  if group_key is None and not opts.urn:
336
377
  raise TypeError("Missing required property 'group_key'")
@@ -338,6 +379,7 @@ class GcpUserAccessBinding(pulumi.CustomResource):
338
379
  if organization_id is None and not opts.urn:
339
380
  raise TypeError("Missing required property 'organization_id'")
340
381
  __props__.__dict__["organization_id"] = organization_id
382
+ __props__.__dict__["session_settings"] = session_settings
341
383
  __props__.__dict__["name"] = None
342
384
  super(GcpUserAccessBinding, __self__).__init__(
343
385
  'gcp:accesscontextmanager/gcpUserAccessBinding:GcpUserAccessBinding',
@@ -352,7 +394,8 @@ class GcpUserAccessBinding(pulumi.CustomResource):
352
394
  access_levels: Optional[pulumi.Input[builtins.str]] = None,
353
395
  group_key: Optional[pulumi.Input[builtins.str]] = None,
354
396
  name: Optional[pulumi.Input[builtins.str]] = None,
355
- organization_id: Optional[pulumi.Input[builtins.str]] = None) -> 'GcpUserAccessBinding':
397
+ organization_id: Optional[pulumi.Input[builtins.str]] = None,
398
+ session_settings: Optional[pulumi.Input[Union['GcpUserAccessBindingSessionSettingsArgs', 'GcpUserAccessBindingSessionSettingsArgsDict']]] = None) -> 'GcpUserAccessBinding':
356
399
  """
357
400
  Get an existing GcpUserAccessBinding resource's state with the given name, id, and optional extra
358
401
  properties used to qualify the lookup.
@@ -360,13 +403,15 @@ class GcpUserAccessBinding(pulumi.CustomResource):
360
403
  :param str resource_name: The unique name of the resulting resource.
361
404
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
362
405
  :param pulumi.ResourceOptions opts: Options for the resource.
363
- :param pulumi.Input[builtins.str] access_levels: Required. Access level that a user must have to be granted access. Only one access level is supported, not multiple. This repeated field must have exactly one element. Example: "accessPolicies/9522/accessLevels/device_trusted"
406
+ :param pulumi.Input[builtins.str] access_levels: Optional. Access level that a user must have to be granted access. Only one access level is supported, not multiple. This repeated field must have exactly one element. Example: "accessPolicies/9522/accessLevels/device_trusted"
364
407
  :param pulumi.Input[builtins.str] group_key: Required. Immutable. Google Group id whose members are subject to this binding's restrictions. See "id" in the G Suite Directory API's Groups resource. If a group's email address/alias is changed, this resource will continue to point at the changed group. This field does not accept group email addresses or aliases. Example: "01d520gv4vjcrht"
365
408
  :param pulumi.Input[builtins.str] name: Immutable. Assigned by the server during creation. The last segment has an arbitrary length and has only URI unreserved characters (as defined by RFC 3986 Section 2.3). Should not be specified by the client during creation. Example: "organizations/256/gcpUserAccessBindings/b3-BhcX_Ud5N"
366
409
  :param pulumi.Input[builtins.str] organization_id: Required. ID of the parent organization.
367
410
 
368
411
 
369
412
  - - -
413
+ :param pulumi.Input[Union['GcpUserAccessBindingSessionSettingsArgs', 'GcpUserAccessBindingSessionSettingsArgsDict']] session_settings: Optional. The Google Cloud session length (GCSL) policy for the group key.
414
+ Structure is documented below.
370
415
  """
371
416
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
372
417
 
@@ -376,13 +421,14 @@ class GcpUserAccessBinding(pulumi.CustomResource):
376
421
  __props__.__dict__["group_key"] = group_key
377
422
  __props__.__dict__["name"] = name
378
423
  __props__.__dict__["organization_id"] = organization_id
424
+ __props__.__dict__["session_settings"] = session_settings
379
425
  return GcpUserAccessBinding(resource_name, opts=opts, __props__=__props__)
380
426
 
381
427
  @property
382
428
  @pulumi.getter(name="accessLevels")
383
- def access_levels(self) -> pulumi.Output[builtins.str]:
429
+ def access_levels(self) -> pulumi.Output[Optional[builtins.str]]:
384
430
  """
385
- Required. Access level that a user must have to be granted access. Only one access level is supported, not multiple. This repeated field must have exactly one element. Example: "accessPolicies/9522/accessLevels/device_trusted"
431
+ Optional. Access level that a user must have to be granted access. Only one access level is supported, not multiple. This repeated field must have exactly one element. Example: "accessPolicies/9522/accessLevels/device_trusted"
386
432
  """
387
433
  return pulumi.get(self, "access_levels")
388
434
 
@@ -413,3 +459,12 @@ class GcpUserAccessBinding(pulumi.CustomResource):
413
459
  """
414
460
  return pulumi.get(self, "organization_id")
415
461
 
462
+ @property
463
+ @pulumi.getter(name="sessionSettings")
464
+ def session_settings(self) -> pulumi.Output[Optional['outputs.GcpUserAccessBindingSessionSettings']]:
465
+ """
466
+ Optional. The Google Cloud session length (GCSL) policy for the group key.
467
+ Structure is documented below.
468
+ """
469
+ return pulumi.get(self, "session_settings")
470
+
@@ -40,6 +40,7 @@ __all__ = [
40
40
  'AccessLevelsAccessLevelCustomExpr',
41
41
  'AccessPolicyIamBindingCondition',
42
42
  'AccessPolicyIamMemberCondition',
43
+ 'GcpUserAccessBindingSessionSettings',
43
44
  'ServicePerimeterDryRunEgressPolicyEgressFrom',
44
45
  'ServicePerimeterDryRunEgressPolicyEgressFromSource',
45
46
  'ServicePerimeterDryRunEgressPolicyEgressTo',
@@ -1656,6 +1657,100 @@ class AccessPolicyIamMemberCondition(dict):
1656
1657
  return pulumi.get(self, "description")
1657
1658
 
1658
1659
 
1660
+ @pulumi.output_type
1661
+ class GcpUserAccessBindingSessionSettings(dict):
1662
+ @staticmethod
1663
+ def __key_warning(key: str):
1664
+ suggest = None
1665
+ if key == "maxInactivity":
1666
+ suggest = "max_inactivity"
1667
+ elif key == "sessionLength":
1668
+ suggest = "session_length"
1669
+ elif key == "sessionLengthEnabled":
1670
+ suggest = "session_length_enabled"
1671
+ elif key == "sessionReauthMethod":
1672
+ suggest = "session_reauth_method"
1673
+ elif key == "useOidcMaxAge":
1674
+ suggest = "use_oidc_max_age"
1675
+
1676
+ if suggest:
1677
+ pulumi.log.warn(f"Key '{key}' not found in GcpUserAccessBindingSessionSettings. Access the value via the '{suggest}' property getter instead.")
1678
+
1679
+ def __getitem__(self, key: str) -> Any:
1680
+ GcpUserAccessBindingSessionSettings.__key_warning(key)
1681
+ return super().__getitem__(key)
1682
+
1683
+ def get(self, key: str, default = None) -> Any:
1684
+ GcpUserAccessBindingSessionSettings.__key_warning(key)
1685
+ return super().get(key, default)
1686
+
1687
+ def __init__(__self__, *,
1688
+ max_inactivity: Optional[builtins.str] = None,
1689
+ session_length: Optional[builtins.str] = None,
1690
+ session_length_enabled: Optional[builtins.bool] = None,
1691
+ session_reauth_method: Optional[builtins.str] = None,
1692
+ use_oidc_max_age: Optional[builtins.bool] = None):
1693
+ """
1694
+ :param builtins.str max_inactivity: Optional. How long a user is allowed to take between actions before a new access token must be issued. Only set for Google Cloud apps.
1695
+ :param builtins.str session_length: Optional. The session length. Setting this field to zero is equal to disabling session. Also can set infinite session by flipping the enabled bit to false below. If useOidcMaxAge is true, for OIDC apps, the session length will be the minimum of this field and OIDC max_age param.
1696
+ :param builtins.bool session_length_enabled: Optional. This field enables or disables Google Cloud session length. When false, all fields set above will be disregarded and the session length is basically infinite.
1697
+ :param builtins.str session_reauth_method: Optional. The session challenges proposed to users when the Google Cloud session length is up.
1698
+ Possible values are: `LOGIN`, `SECURITY_KEY`, `PASSWORD`.
1699
+ :param builtins.bool use_oidc_max_age: Optional. Only useful for OIDC apps. When false, the OIDC max_age param, if passed in the authentication request will be ignored. When true, the re-auth period will be the minimum of the sessionLength field and the max_age OIDC param.
1700
+ """
1701
+ if max_inactivity is not None:
1702
+ pulumi.set(__self__, "max_inactivity", max_inactivity)
1703
+ if session_length is not None:
1704
+ pulumi.set(__self__, "session_length", session_length)
1705
+ if session_length_enabled is not None:
1706
+ pulumi.set(__self__, "session_length_enabled", session_length_enabled)
1707
+ if session_reauth_method is not None:
1708
+ pulumi.set(__self__, "session_reauth_method", session_reauth_method)
1709
+ if use_oidc_max_age is not None:
1710
+ pulumi.set(__self__, "use_oidc_max_age", use_oidc_max_age)
1711
+
1712
+ @property
1713
+ @pulumi.getter(name="maxInactivity")
1714
+ def max_inactivity(self) -> Optional[builtins.str]:
1715
+ """
1716
+ Optional. How long a user is allowed to take between actions before a new access token must be issued. Only set for Google Cloud apps.
1717
+ """
1718
+ return pulumi.get(self, "max_inactivity")
1719
+
1720
+ @property
1721
+ @pulumi.getter(name="sessionLength")
1722
+ def session_length(self) -> Optional[builtins.str]:
1723
+ """
1724
+ Optional. The session length. Setting this field to zero is equal to disabling session. Also can set infinite session by flipping the enabled bit to false below. If useOidcMaxAge is true, for OIDC apps, the session length will be the minimum of this field and OIDC max_age param.
1725
+ """
1726
+ return pulumi.get(self, "session_length")
1727
+
1728
+ @property
1729
+ @pulumi.getter(name="sessionLengthEnabled")
1730
+ def session_length_enabled(self) -> Optional[builtins.bool]:
1731
+ """
1732
+ Optional. This field enables or disables Google Cloud session length. When false, all fields set above will be disregarded and the session length is basically infinite.
1733
+ """
1734
+ return pulumi.get(self, "session_length_enabled")
1735
+
1736
+ @property
1737
+ @pulumi.getter(name="sessionReauthMethod")
1738
+ def session_reauth_method(self) -> Optional[builtins.str]:
1739
+ """
1740
+ Optional. The session challenges proposed to users when the Google Cloud session length is up.
1741
+ Possible values are: `LOGIN`, `SECURITY_KEY`, `PASSWORD`.
1742
+ """
1743
+ return pulumi.get(self, "session_reauth_method")
1744
+
1745
+ @property
1746
+ @pulumi.getter(name="useOidcMaxAge")
1747
+ def use_oidc_max_age(self) -> Optional[builtins.bool]:
1748
+ """
1749
+ Optional. Only useful for OIDC apps. When false, the OIDC max_age param, if passed in the authentication request will be ignored. When true, the re-auth period will be the minimum of the sessionLength field and the max_age OIDC param.
1750
+ """
1751
+ return pulumi.get(self, "use_oidc_max_age")
1752
+
1753
+
1659
1754
  @pulumi.output_type
1660
1755
  class ServicePerimeterDryRunEgressPolicyEgressFrom(dict):
1661
1756
  @staticmethod
@@ -9,6 +9,7 @@ import typing
9
9
  from .addons_config import *
10
10
  from .api import *
11
11
  from .app_group import *
12
+ from .control_plane_access import *
12
13
  from .developer import *
13
14
  from .dns_zone import *
14
15
  from .endpoint_attachment import *