pulumi-gcp 7.3.0a1702567892__py3-none-any.whl → 7.3.1__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. pulumi_gcp/__init__.py +129 -0
  2. pulumi_gcp/artifactregistry/_inputs.py +88 -0
  3. pulumi_gcp/artifactregistry/outputs.py +148 -0
  4. pulumi_gcp/artifactregistry/repository.py +116 -16
  5. pulumi_gcp/bigquery/_inputs.py +110 -0
  6. pulumi_gcp/bigquery/connection.py +123 -3
  7. pulumi_gcp/bigquery/outputs.py +145 -0
  8. pulumi_gcp/cloudbuild/_inputs.py +241 -1
  9. pulumi_gcp/cloudbuild/outputs.py +353 -2
  10. pulumi_gcp/cloudfunctionsv2/_inputs.py +6 -2
  11. pulumi_gcp/cloudfunctionsv2/outputs.py +6 -2
  12. pulumi_gcp/cloudidentity/_inputs.py +54 -5
  13. pulumi_gcp/cloudidentity/group_membership.py +0 -8
  14. pulumi_gcp/cloudidentity/outputs.py +99 -4
  15. pulumi_gcp/cloudrunv2/_inputs.py +8 -4
  16. pulumi_gcp/cloudrunv2/job.py +44 -0
  17. pulumi_gcp/cloudrunv2/outputs.py +8 -4
  18. pulumi_gcp/cloudrunv2/service.py +42 -0
  19. pulumi_gcp/cloudtasks/queue.py +0 -10
  20. pulumi_gcp/composer/_inputs.py +17 -4
  21. pulumi_gcp/composer/outputs.py +20 -4
  22. pulumi_gcp/compute/_inputs.py +46 -0
  23. pulumi_gcp/compute/get_global_forwarding_rule.py +11 -1
  24. pulumi_gcp/compute/global_forwarding_rule.py +69 -0
  25. pulumi_gcp/compute/outputs.py +75 -0
  26. pulumi_gcp/config/__init__.pyi +6 -0
  27. pulumi_gcp/config/vars.py +12 -0
  28. pulumi_gcp/container/_inputs.py +58 -0
  29. pulumi_gcp/container/node_pool.py +68 -14
  30. pulumi_gcp/container/outputs.py +68 -0
  31. pulumi_gcp/dataform/__init__.py +4 -0
  32. pulumi_gcp/dataform/_inputs.py +80 -0
  33. pulumi_gcp/dataform/get_repository_iam_policy.py +144 -0
  34. pulumi_gcp/dataform/outputs.py +56 -0
  35. pulumi_gcp/dataform/repository_iam_binding.py +325 -0
  36. pulumi_gcp/dataform/repository_iam_member.py +325 -0
  37. pulumi_gcp/dataform/repository_iam_policy.py +254 -0
  38. pulumi_gcp/dataloss/_inputs.py +29 -26
  39. pulumi_gcp/dataloss/outputs.py +28 -25
  40. pulumi_gcp/dataloss/prevention_job_trigger.py +78 -0
  41. pulumi_gcp/datastream/connection_profile.py +82 -4
  42. pulumi_gcp/datastream/stream.py +32 -22
  43. pulumi_gcp/firestore/database.py +146 -28
  44. pulumi_gcp/gkehub/_inputs.py +821 -3
  45. pulumi_gcp/gkehub/feature.py +176 -0
  46. pulumi_gcp/gkehub/feature_membership.py +105 -59
  47. pulumi_gcp/gkehub/fleet.py +70 -2
  48. pulumi_gcp/gkehub/outputs.py +819 -3
  49. pulumi_gcp/gkehub/scope.py +2 -2
  50. pulumi_gcp/iam/_inputs.py +72 -0
  51. pulumi_gcp/iam/outputs.py +79 -0
  52. pulumi_gcp/iam/workforce_pool.py +75 -0
  53. pulumi_gcp/identityplatform/project_default_config.py +4 -0
  54. pulumi_gcp/logging/__init__.py +3 -0
  55. pulumi_gcp/logging/get_folder_settings.py +197 -0
  56. pulumi_gcp/logging/get_organization_settings.py +197 -0
  57. pulumi_gcp/logging/get_project_settings.py +197 -0
  58. pulumi_gcp/migrationcenter/__init__.py +8 -0
  59. pulumi_gcp/migrationcenter/group.py +652 -0
  60. pulumi_gcp/netapp/__init__.py +8 -0
  61. pulumi_gcp/netapp/storage_pool.py +970 -0
  62. pulumi_gcp/projects/iam_custom_role.py +7 -7
  63. pulumi_gcp/provider.py +60 -0
  64. pulumi_gcp/securesourcemanager/__init__.py +14 -0
  65. pulumi_gcp/securesourcemanager/_inputs.py +94 -0
  66. pulumi_gcp/securesourcemanager/get_instance_iam_policy.py +168 -0
  67. pulumi_gcp/securesourcemanager/instance.py +607 -0
  68. pulumi_gcp/securesourcemanager/instance_iam_binding.py +325 -0
  69. pulumi_gcp/securesourcemanager/instance_iam_member.py +325 -0
  70. pulumi_gcp/securesourcemanager/instance_iam_policy.py +254 -0
  71. pulumi_gcp/securesourcemanager/outputs.py +70 -0
  72. pulumi_gcp/securitycenter/__init__.py +1 -0
  73. pulumi_gcp/securitycenter/event_threat_detection_custom_module.py +528 -0
  74. pulumi_gcp/sql/_inputs.py +2 -2
  75. pulumi_gcp/sql/database_instance.py +4 -4
  76. pulumi_gcp/sql/outputs.py +2 -2
  77. pulumi_gcp/storage/_inputs.py +16 -0
  78. pulumi_gcp/storage/outputs.py +21 -0
  79. pulumi_gcp/vertex/__init__.py +4 -0
  80. pulumi_gcp/vertex/_inputs.py +80 -0
  81. pulumi_gcp/vertex/ai_endpoint_iam_binding.py +325 -0
  82. pulumi_gcp/vertex/ai_endpoint_iam_member.py +325 -0
  83. pulumi_gcp/vertex/ai_endpoint_iam_policy.py +254 -0
  84. pulumi_gcp/vertex/get_ai_endpoint_iam_policy.py +140 -0
  85. pulumi_gcp/vertex/outputs.py +56 -0
  86. pulumi_gcp/vmwareengine/__init__.py +5 -0
  87. pulumi_gcp/vmwareengine/_inputs.py +104 -2
  88. pulumi_gcp/vmwareengine/get_network.py +14 -4
  89. pulumi_gcp/vmwareengine/get_network_peering.py +260 -0
  90. pulumi_gcp/vmwareengine/get_network_policy.py +228 -0
  91. pulumi_gcp/vmwareengine/get_nsx_credentials.py +133 -0
  92. pulumi_gcp/vmwareengine/get_private_cloud.py +14 -4
  93. pulumi_gcp/vmwareengine/network.py +41 -7
  94. pulumi_gcp/vmwareengine/network_peering.py +959 -0
  95. pulumi_gcp/vmwareengine/network_policy.py +836 -0
  96. pulumi_gcp/vmwareengine/outputs.py +133 -2
  97. pulumi_gcp/vmwareengine/private_cloud.py +20 -68
  98. {pulumi_gcp-7.3.0a1702567892.dist-info → pulumi_gcp-7.3.1.dist-info}/METADATA +1 -1
  99. {pulumi_gcp-7.3.0a1702567892.dist-info → pulumi_gcp-7.3.1.dist-info}/RECORD +101 -72
  100. {pulumi_gcp-7.3.0a1702567892.dist-info → pulumi_gcp-7.3.1.dist-info}/WHEEL +0 -0
  101. {pulumi_gcp-7.3.0a1702567892.dist-info → pulumi_gcp-7.3.1.dist-info}/top_level.txt +0 -0
@@ -315,7 +315,7 @@ class Scope(pulumi.CustomResource):
315
315
  "keyb": "valueb",
316
316
  "keyc": "valuec",
317
317
  },
318
- scope_id="tf-test-scope%{random_suffix}")
318
+ scope_id="my-scope")
319
319
  ```
320
320
 
321
321
  ## Import
@@ -383,7 +383,7 @@ class Scope(pulumi.CustomResource):
383
383
  "keyb": "valueb",
384
384
  "keyc": "valuec",
385
385
  },
386
- scope_id="tf-test-scope%{random_suffix}")
386
+ scope_id="my-scope")
387
387
  ```
388
388
 
389
389
  ## Import
pulumi_gcp/iam/_inputs.py CHANGED
@@ -16,6 +16,8 @@ __all__ = [
16
16
  'DenyPolicyRuleArgs',
17
17
  'DenyPolicyRuleDenyRuleArgs',
18
18
  'DenyPolicyRuleDenyRuleDenialConditionArgs',
19
+ 'WorkforcePoolAccessRestrictionsArgs',
20
+ 'WorkforcePoolAccessRestrictionsAllowedServiceArgs',
19
21
  'WorkforcePoolProviderOidcArgs',
20
22
  'WorkforcePoolProviderOidcClientSecretArgs',
21
23
  'WorkforcePoolProviderOidcClientSecretValueArgs',
@@ -421,6 +423,76 @@ class DenyPolicyRuleDenyRuleDenialConditionArgs:
421
423
  pulumi.set(self, "title", value)
422
424
 
423
425
 
426
+ @pulumi.input_type
427
+ class WorkforcePoolAccessRestrictionsArgs:
428
+ def __init__(__self__, *,
429
+ allowed_services: Optional[pulumi.Input[Sequence[pulumi.Input['WorkforcePoolAccessRestrictionsAllowedServiceArgs']]]] = None,
430
+ disable_programmatic_signin: Optional[pulumi.Input[bool]] = None):
431
+ """
432
+ :param pulumi.Input[Sequence[pulumi.Input['WorkforcePoolAccessRestrictionsAllowedServiceArgs']]] allowed_services: Services allowed for web sign-in with the workforce pool.
433
+ If not set by default there are no restrictions.
434
+ Structure is documented below.
435
+ :param pulumi.Input[bool] disable_programmatic_signin: Disable programmatic sign-in by disabling token issue via the Security Token API endpoint.
436
+ See [Security Token Service API](https://cloud.google.com/iam/docs/reference/sts/rest).
437
+ """
438
+ if allowed_services is not None:
439
+ pulumi.set(__self__, "allowed_services", allowed_services)
440
+ if disable_programmatic_signin is not None:
441
+ pulumi.set(__self__, "disable_programmatic_signin", disable_programmatic_signin)
442
+
443
+ @property
444
+ @pulumi.getter(name="allowedServices")
445
+ def allowed_services(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['WorkforcePoolAccessRestrictionsAllowedServiceArgs']]]]:
446
+ """
447
+ Services allowed for web sign-in with the workforce pool.
448
+ If not set by default there are no restrictions.
449
+ Structure is documented below.
450
+ """
451
+ return pulumi.get(self, "allowed_services")
452
+
453
+ @allowed_services.setter
454
+ def allowed_services(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['WorkforcePoolAccessRestrictionsAllowedServiceArgs']]]]):
455
+ pulumi.set(self, "allowed_services", value)
456
+
457
+ @property
458
+ @pulumi.getter(name="disableProgrammaticSignin")
459
+ def disable_programmatic_signin(self) -> Optional[pulumi.Input[bool]]:
460
+ """
461
+ Disable programmatic sign-in by disabling token issue via the Security Token API endpoint.
462
+ See [Security Token Service API](https://cloud.google.com/iam/docs/reference/sts/rest).
463
+ """
464
+ return pulumi.get(self, "disable_programmatic_signin")
465
+
466
+ @disable_programmatic_signin.setter
467
+ def disable_programmatic_signin(self, value: Optional[pulumi.Input[bool]]):
468
+ pulumi.set(self, "disable_programmatic_signin", value)
469
+
470
+
471
+ @pulumi.input_type
472
+ class WorkforcePoolAccessRestrictionsAllowedServiceArgs:
473
+ def __init__(__self__, *,
474
+ domain: Optional[pulumi.Input[str]] = None):
475
+ """
476
+ :param pulumi.Input[str] domain: Domain name of the service.
477
+ Example: console.cloud.google
478
+ """
479
+ if domain is not None:
480
+ pulumi.set(__self__, "domain", domain)
481
+
482
+ @property
483
+ @pulumi.getter
484
+ def domain(self) -> Optional[pulumi.Input[str]]:
485
+ """
486
+ Domain name of the service.
487
+ Example: console.cloud.google
488
+ """
489
+ return pulumi.get(self, "domain")
490
+
491
+ @domain.setter
492
+ def domain(self, value: Optional[pulumi.Input[str]]):
493
+ pulumi.set(self, "domain", value)
494
+
495
+
424
496
  @pulumi.input_type
425
497
  class WorkforcePoolProviderOidcArgs:
426
498
  def __init__(__self__, *,
pulumi_gcp/iam/outputs.py CHANGED
@@ -17,6 +17,8 @@ __all__ = [
17
17
  'DenyPolicyRule',
18
18
  'DenyPolicyRuleDenyRule',
19
19
  'DenyPolicyRuleDenyRuleDenialCondition',
20
+ 'WorkforcePoolAccessRestrictions',
21
+ 'WorkforcePoolAccessRestrictionsAllowedService',
20
22
  'WorkforcePoolProviderOidc',
21
23
  'WorkforcePoolProviderOidcClientSecret',
22
24
  'WorkforcePoolProviderOidcClientSecretValue',
@@ -425,6 +427,83 @@ class DenyPolicyRuleDenyRuleDenialCondition(dict):
425
427
  return pulumi.get(self, "title")
426
428
 
427
429
 
430
+ @pulumi.output_type
431
+ class WorkforcePoolAccessRestrictions(dict):
432
+ @staticmethod
433
+ def __key_warning(key: str):
434
+ suggest = None
435
+ if key == "allowedServices":
436
+ suggest = "allowed_services"
437
+ elif key == "disableProgrammaticSignin":
438
+ suggest = "disable_programmatic_signin"
439
+
440
+ if suggest:
441
+ pulumi.log.warn(f"Key '{key}' not found in WorkforcePoolAccessRestrictions. Access the value via the '{suggest}' property getter instead.")
442
+
443
+ def __getitem__(self, key: str) -> Any:
444
+ WorkforcePoolAccessRestrictions.__key_warning(key)
445
+ return super().__getitem__(key)
446
+
447
+ def get(self, key: str, default = None) -> Any:
448
+ WorkforcePoolAccessRestrictions.__key_warning(key)
449
+ return super().get(key, default)
450
+
451
+ def __init__(__self__, *,
452
+ allowed_services: Optional[Sequence['outputs.WorkforcePoolAccessRestrictionsAllowedService']] = None,
453
+ disable_programmatic_signin: Optional[bool] = None):
454
+ """
455
+ :param Sequence['WorkforcePoolAccessRestrictionsAllowedServiceArgs'] allowed_services: Services allowed for web sign-in with the workforce pool.
456
+ If not set by default there are no restrictions.
457
+ Structure is documented below.
458
+ :param bool disable_programmatic_signin: Disable programmatic sign-in by disabling token issue via the Security Token API endpoint.
459
+ See [Security Token Service API](https://cloud.google.com/iam/docs/reference/sts/rest).
460
+ """
461
+ if allowed_services is not None:
462
+ pulumi.set(__self__, "allowed_services", allowed_services)
463
+ if disable_programmatic_signin is not None:
464
+ pulumi.set(__self__, "disable_programmatic_signin", disable_programmatic_signin)
465
+
466
+ @property
467
+ @pulumi.getter(name="allowedServices")
468
+ def allowed_services(self) -> Optional[Sequence['outputs.WorkforcePoolAccessRestrictionsAllowedService']]:
469
+ """
470
+ Services allowed for web sign-in with the workforce pool.
471
+ If not set by default there are no restrictions.
472
+ Structure is documented below.
473
+ """
474
+ return pulumi.get(self, "allowed_services")
475
+
476
+ @property
477
+ @pulumi.getter(name="disableProgrammaticSignin")
478
+ def disable_programmatic_signin(self) -> Optional[bool]:
479
+ """
480
+ Disable programmatic sign-in by disabling token issue via the Security Token API endpoint.
481
+ See [Security Token Service API](https://cloud.google.com/iam/docs/reference/sts/rest).
482
+ """
483
+ return pulumi.get(self, "disable_programmatic_signin")
484
+
485
+
486
+ @pulumi.output_type
487
+ class WorkforcePoolAccessRestrictionsAllowedService(dict):
488
+ def __init__(__self__, *,
489
+ domain: Optional[str] = None):
490
+ """
491
+ :param str domain: Domain name of the service.
492
+ Example: console.cloud.google
493
+ """
494
+ if domain is not None:
495
+ pulumi.set(__self__, "domain", domain)
496
+
497
+ @property
498
+ @pulumi.getter
499
+ def domain(self) -> Optional[str]:
500
+ """
501
+ Domain name of the service.
502
+ Example: console.cloud.google
503
+ """
504
+ return pulumi.get(self, "domain")
505
+
506
+
428
507
  @pulumi.output_type
429
508
  class WorkforcePoolProviderOidc(dict):
430
509
  @staticmethod
@@ -8,6 +8,8 @@ import pulumi
8
8
  import pulumi.runtime
9
9
  from typing import Any, Mapping, Optional, Sequence, Union, overload
10
10
  from .. import _utilities
11
+ from . import outputs
12
+ from ._inputs import *
11
13
 
12
14
  __all__ = ['WorkforcePoolArgs', 'WorkforcePool']
13
15
 
@@ -17,6 +19,7 @@ class WorkforcePoolArgs:
17
19
  location: pulumi.Input[str],
18
20
  parent: pulumi.Input[str],
19
21
  workforce_pool_id: pulumi.Input[str],
22
+ access_restrictions: Optional[pulumi.Input['WorkforcePoolAccessRestrictionsArgs']] = None,
20
23
  description: Optional[pulumi.Input[str]] = None,
21
24
  disabled: Optional[pulumi.Input[bool]] = None,
22
25
  display_name: Optional[pulumi.Input[str]] = None,
@@ -31,6 +34,9 @@ class WorkforcePoolArgs:
31
34
  :param pulumi.Input[str] workforce_pool_id: The name of the pool. The ID must be a globally unique string of 6 to 63 lowercase letters,
32
35
  digits, or hyphens. It must start with a letter, and cannot have a trailing hyphen.
33
36
  The prefix `gcp-` is reserved for use by Google, and may not be specified.
37
+ :param pulumi.Input['WorkforcePoolAccessRestrictionsArgs'] access_restrictions: Configure access restrictions on the workforce pool users. This is an optional field. If specified web
38
+ sign-in can be restricted to given set of services or programmatic sign-in can be disabled for pool users.
39
+ Structure is documented below.
34
40
  :param pulumi.Input[str] description: A user-specified description of the pool. Cannot exceed 256 characters.
35
41
  :param pulumi.Input[bool] disabled: Whether the pool is disabled. You cannot use a disabled pool to exchange tokens,
36
42
  or use existing tokens to access resources. If the pool is re-enabled, existing tokens grant access again.
@@ -44,6 +50,8 @@ class WorkforcePoolArgs:
44
50
  pulumi.set(__self__, "location", location)
45
51
  pulumi.set(__self__, "parent", parent)
46
52
  pulumi.set(__self__, "workforce_pool_id", workforce_pool_id)
53
+ if access_restrictions is not None:
54
+ pulumi.set(__self__, "access_restrictions", access_restrictions)
47
55
  if description is not None:
48
56
  pulumi.set(__self__, "description", description)
49
57
  if disabled is not None:
@@ -94,6 +102,20 @@ class WorkforcePoolArgs:
94
102
  def workforce_pool_id(self, value: pulumi.Input[str]):
95
103
  pulumi.set(self, "workforce_pool_id", value)
96
104
 
105
+ @property
106
+ @pulumi.getter(name="accessRestrictions")
107
+ def access_restrictions(self) -> Optional[pulumi.Input['WorkforcePoolAccessRestrictionsArgs']]:
108
+ """
109
+ Configure access restrictions on the workforce pool users. This is an optional field. If specified web
110
+ sign-in can be restricted to given set of services or programmatic sign-in can be disabled for pool users.
111
+ Structure is documented below.
112
+ """
113
+ return pulumi.get(self, "access_restrictions")
114
+
115
+ @access_restrictions.setter
116
+ def access_restrictions(self, value: Optional[pulumi.Input['WorkforcePoolAccessRestrictionsArgs']]):
117
+ pulumi.set(self, "access_restrictions", value)
118
+
97
119
  @property
98
120
  @pulumi.getter
99
121
  def description(self) -> Optional[pulumi.Input[str]]:
@@ -151,6 +173,7 @@ class WorkforcePoolArgs:
151
173
  @pulumi.input_type
152
174
  class _WorkforcePoolState:
153
175
  def __init__(__self__, *,
176
+ access_restrictions: Optional[pulumi.Input['WorkforcePoolAccessRestrictionsArgs']] = None,
154
177
  description: Optional[pulumi.Input[str]] = None,
155
178
  disabled: Optional[pulumi.Input[bool]] = None,
156
179
  display_name: Optional[pulumi.Input[str]] = None,
@@ -162,6 +185,9 @@ class _WorkforcePoolState:
162
185
  workforce_pool_id: Optional[pulumi.Input[str]] = None):
163
186
  """
164
187
  Input properties used for looking up and filtering WorkforcePool resources.
188
+ :param pulumi.Input['WorkforcePoolAccessRestrictionsArgs'] access_restrictions: Configure access restrictions on the workforce pool users. This is an optional field. If specified web
189
+ sign-in can be restricted to given set of services or programmatic sign-in can be disabled for pool users.
190
+ Structure is documented below.
165
191
  :param pulumi.Input[str] description: A user-specified description of the pool. Cannot exceed 256 characters.
166
192
  :param pulumi.Input[bool] disabled: Whether the pool is disabled. You cannot use a disabled pool to exchange tokens,
167
193
  or use existing tokens to access resources. If the pool is re-enabled, existing tokens grant access again.
@@ -192,6 +218,8 @@ class _WorkforcePoolState:
192
218
  digits, or hyphens. It must start with a letter, and cannot have a trailing hyphen.
193
219
  The prefix `gcp-` is reserved for use by Google, and may not be specified.
194
220
  """
221
+ if access_restrictions is not None:
222
+ pulumi.set(__self__, "access_restrictions", access_restrictions)
195
223
  if description is not None:
196
224
  pulumi.set(__self__, "description", description)
197
225
  if disabled is not None:
@@ -211,6 +239,20 @@ class _WorkforcePoolState:
211
239
  if workforce_pool_id is not None:
212
240
  pulumi.set(__self__, "workforce_pool_id", workforce_pool_id)
213
241
 
242
+ @property
243
+ @pulumi.getter(name="accessRestrictions")
244
+ def access_restrictions(self) -> Optional[pulumi.Input['WorkforcePoolAccessRestrictionsArgs']]:
245
+ """
246
+ Configure access restrictions on the workforce pool users. This is an optional field. If specified web
247
+ sign-in can be restricted to given set of services or programmatic sign-in can be disabled for pool users.
248
+ Structure is documented below.
249
+ """
250
+ return pulumi.get(self, "access_restrictions")
251
+
252
+ @access_restrictions.setter
253
+ def access_restrictions(self, value: Optional[pulumi.Input['WorkforcePoolAccessRestrictionsArgs']]):
254
+ pulumi.set(self, "access_restrictions", value)
255
+
214
256
  @property
215
257
  @pulumi.getter
216
258
  def description(self) -> Optional[pulumi.Input[str]]:
@@ -345,6 +387,7 @@ class WorkforcePool(pulumi.CustomResource):
345
387
  def __init__(__self__,
346
388
  resource_name: str,
347
389
  opts: Optional[pulumi.ResourceOptions] = None,
390
+ access_restrictions: Optional[pulumi.Input[pulumi.InputType['WorkforcePoolAccessRestrictionsArgs']]] = None,
348
391
  description: Optional[pulumi.Input[str]] = None,
349
392
  disabled: Optional[pulumi.Input[bool]] = None,
350
393
  display_name: Optional[pulumi.Input[str]] = None,
@@ -385,6 +428,12 @@ class WorkforcePool(pulumi.CustomResource):
385
428
  import pulumi_gcp as gcp
386
429
 
387
430
  example = gcp.iam.WorkforcePool("example",
431
+ access_restrictions=gcp.iam.WorkforcePoolAccessRestrictionsArgs(
432
+ allowed_services=[gcp.iam.WorkforcePoolAccessRestrictionsAllowedServiceArgs(
433
+ domain="backstory.chronicle.security",
434
+ )],
435
+ disable_programmatic_signin=False,
436
+ ),
388
437
  description="A sample workforce pool.",
389
438
  disabled=False,
390
439
  display_name="Display name",
@@ -416,6 +465,9 @@ class WorkforcePool(pulumi.CustomResource):
416
465
 
417
466
  :param str resource_name: The name of the resource.
418
467
  :param pulumi.ResourceOptions opts: Options for the resource.
468
+ :param pulumi.Input[pulumi.InputType['WorkforcePoolAccessRestrictionsArgs']] access_restrictions: Configure access restrictions on the workforce pool users. This is an optional field. If specified web
469
+ sign-in can be restricted to given set of services or programmatic sign-in can be disabled for pool users.
470
+ Structure is documented below.
419
471
  :param pulumi.Input[str] description: A user-specified description of the pool. Cannot exceed 256 characters.
420
472
  :param pulumi.Input[bool] disabled: Whether the pool is disabled. You cannot use a disabled pool to exchange tokens,
421
473
  or use existing tokens to access resources. If the pool is re-enabled, existing tokens grant access again.
@@ -472,6 +524,12 @@ class WorkforcePool(pulumi.CustomResource):
472
524
  import pulumi_gcp as gcp
473
525
 
474
526
  example = gcp.iam.WorkforcePool("example",
527
+ access_restrictions=gcp.iam.WorkforcePoolAccessRestrictionsArgs(
528
+ allowed_services=[gcp.iam.WorkforcePoolAccessRestrictionsAllowedServiceArgs(
529
+ domain="backstory.chronicle.security",
530
+ )],
531
+ disable_programmatic_signin=False,
532
+ ),
475
533
  description="A sample workforce pool.",
476
534
  disabled=False,
477
535
  display_name="Display name",
@@ -516,6 +574,7 @@ class WorkforcePool(pulumi.CustomResource):
516
574
  def _internal_init(__self__,
517
575
  resource_name: str,
518
576
  opts: Optional[pulumi.ResourceOptions] = None,
577
+ access_restrictions: Optional[pulumi.Input[pulumi.InputType['WorkforcePoolAccessRestrictionsArgs']]] = None,
519
578
  description: Optional[pulumi.Input[str]] = None,
520
579
  disabled: Optional[pulumi.Input[bool]] = None,
521
580
  display_name: Optional[pulumi.Input[str]] = None,
@@ -532,6 +591,7 @@ class WorkforcePool(pulumi.CustomResource):
532
591
  raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
533
592
  __props__ = WorkforcePoolArgs.__new__(WorkforcePoolArgs)
534
593
 
594
+ __props__.__dict__["access_restrictions"] = access_restrictions
535
595
  __props__.__dict__["description"] = description
536
596
  __props__.__dict__["disabled"] = disabled
537
597
  __props__.__dict__["display_name"] = display_name
@@ -557,6 +617,7 @@ class WorkforcePool(pulumi.CustomResource):
557
617
  def get(resource_name: str,
558
618
  id: pulumi.Input[str],
559
619
  opts: Optional[pulumi.ResourceOptions] = None,
620
+ access_restrictions: Optional[pulumi.Input[pulumi.InputType['WorkforcePoolAccessRestrictionsArgs']]] = None,
560
621
  description: Optional[pulumi.Input[str]] = None,
561
622
  disabled: Optional[pulumi.Input[bool]] = None,
562
623
  display_name: Optional[pulumi.Input[str]] = None,
@@ -573,6 +634,9 @@ class WorkforcePool(pulumi.CustomResource):
573
634
  :param str resource_name: The unique name of the resulting resource.
574
635
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
575
636
  :param pulumi.ResourceOptions opts: Options for the resource.
637
+ :param pulumi.Input[pulumi.InputType['WorkforcePoolAccessRestrictionsArgs']] access_restrictions: Configure access restrictions on the workforce pool users. This is an optional field. If specified web
638
+ sign-in can be restricted to given set of services or programmatic sign-in can be disabled for pool users.
639
+ Structure is documented below.
576
640
  :param pulumi.Input[str] description: A user-specified description of the pool. Cannot exceed 256 characters.
577
641
  :param pulumi.Input[bool] disabled: Whether the pool is disabled. You cannot use a disabled pool to exchange tokens,
578
642
  or use existing tokens to access resources. If the pool is re-enabled, existing tokens grant access again.
@@ -607,6 +671,7 @@ class WorkforcePool(pulumi.CustomResource):
607
671
 
608
672
  __props__ = _WorkforcePoolState.__new__(_WorkforcePoolState)
609
673
 
674
+ __props__.__dict__["access_restrictions"] = access_restrictions
610
675
  __props__.__dict__["description"] = description
611
676
  __props__.__dict__["disabled"] = disabled
612
677
  __props__.__dict__["display_name"] = display_name
@@ -618,6 +683,16 @@ class WorkforcePool(pulumi.CustomResource):
618
683
  __props__.__dict__["workforce_pool_id"] = workforce_pool_id
619
684
  return WorkforcePool(resource_name, opts=opts, __props__=__props__)
620
685
 
686
+ @property
687
+ @pulumi.getter(name="accessRestrictions")
688
+ def access_restrictions(self) -> pulumi.Output[Optional['outputs.WorkforcePoolAccessRestrictions']]:
689
+ """
690
+ Configure access restrictions on the workforce pool users. This is an optional field. If specified web
691
+ sign-in can be restricted to given set of services or programmatic sign-in can be disabled for pool users.
692
+ Structure is documented below.
693
+ """
694
+ return pulumi.get(self, "access_restrictions")
695
+
621
696
  @property
622
697
  @pulumi.getter
623
698
  def description(self) -> pulumi.Output[Optional[str]]:
@@ -126,6 +126,8 @@ class ProjectDefaultConfig(pulumi.CustomResource):
126
126
  sign_in: Optional[pulumi.Input[pulumi.InputType['ProjectDefaultConfigSignInArgs']]] = None,
127
127
  __props__=None):
128
128
  """
129
+ > **Warning:** `identityplatform.Config` is deprecated and will be removed in the next major release of the provider. Use the `identityplatform.Config` resource instead. It contains a more comprehensive list of fields, and was created before `identityplatform.ProjectDefaultConfig` was added.
130
+
129
131
  There is no persistent data associated with this resource.
130
132
 
131
133
  > **Warning:** If you are using User ADCs (Application Default Credentials) with this resource,
@@ -197,6 +199,8 @@ class ProjectDefaultConfig(pulumi.CustomResource):
197
199
  args: Optional[ProjectDefaultConfigArgs] = None,
198
200
  opts: Optional[pulumi.ResourceOptions] = None):
199
201
  """
202
+ > **Warning:** `identityplatform.Config` is deprecated and will be removed in the next major release of the provider. Use the `identityplatform.Config` resource instead. It contains a more comprehensive list of fields, and was created before `identityplatform.ProjectDefaultConfig` was added.
203
+
200
204
  There is no persistent data associated with this resource.
201
205
 
202
206
  > **Warning:** If you are using User ADCs (Application Default Credentials) with this resource,
@@ -11,7 +11,10 @@ from .billing_account_sink import *
11
11
  from .folder_bucket_config import *
12
12
  from .folder_exclusion import *
13
13
  from .folder_sink import *
14
+ from .get_folder_settings import *
15
+ from .get_organization_settings import *
14
16
  from .get_project_cmek_settings import *
17
+ from .get_project_settings import *
15
18
  from .get_sink import *
16
19
  from .linked_dataset import *
17
20
  from .log_view import *
@@ -0,0 +1,197 @@
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 pulumi
8
+ import pulumi.runtime
9
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
10
+ from .. import _utilities
11
+
12
+ __all__ = [
13
+ 'GetFolderSettingsResult',
14
+ 'AwaitableGetFolderSettingsResult',
15
+ 'get_folder_settings',
16
+ 'get_folder_settings_output',
17
+ ]
18
+
19
+ @pulumi.output_type
20
+ class GetFolderSettingsResult:
21
+ """
22
+ A collection of values returned by getFolderSettings.
23
+ """
24
+ def __init__(__self__, disable_default_sink=None, folder=None, id=None, kms_key_name=None, kms_service_account_id=None, logging_service_account_id=None, name=None, storage_location=None):
25
+ if disable_default_sink and not isinstance(disable_default_sink, bool):
26
+ raise TypeError("Expected argument 'disable_default_sink' to be a bool")
27
+ pulumi.set(__self__, "disable_default_sink", disable_default_sink)
28
+ if folder and not isinstance(folder, str):
29
+ raise TypeError("Expected argument 'folder' to be a str")
30
+ pulumi.set(__self__, "folder", folder)
31
+ if id and not isinstance(id, str):
32
+ raise TypeError("Expected argument 'id' to be a str")
33
+ pulumi.set(__self__, "id", id)
34
+ if kms_key_name and not isinstance(kms_key_name, str):
35
+ raise TypeError("Expected argument 'kms_key_name' to be a str")
36
+ pulumi.set(__self__, "kms_key_name", kms_key_name)
37
+ if kms_service_account_id and not isinstance(kms_service_account_id, str):
38
+ raise TypeError("Expected argument 'kms_service_account_id' to be a str")
39
+ pulumi.set(__self__, "kms_service_account_id", kms_service_account_id)
40
+ if logging_service_account_id and not isinstance(logging_service_account_id, str):
41
+ raise TypeError("Expected argument 'logging_service_account_id' to be a str")
42
+ pulumi.set(__self__, "logging_service_account_id", logging_service_account_id)
43
+ if name and not isinstance(name, str):
44
+ raise TypeError("Expected argument 'name' to be a str")
45
+ pulumi.set(__self__, "name", name)
46
+ if storage_location and not isinstance(storage_location, str):
47
+ raise TypeError("Expected argument 'storage_location' to be a str")
48
+ pulumi.set(__self__, "storage_location", storage_location)
49
+
50
+ @property
51
+ @pulumi.getter(name="disableDefaultSink")
52
+ def disable_default_sink(self) -> bool:
53
+ """
54
+ If set to true, the _Default sink in newly created projects and folders will created in a disabled state. This can be used to automatically disable log storage if there is already an aggregated sink configured in the hierarchy. The _Default sink can be re-enabled manually if needed.
55
+ """
56
+ return pulumi.get(self, "disable_default_sink")
57
+
58
+ @property
59
+ @pulumi.getter
60
+ def folder(self) -> str:
61
+ return pulumi.get(self, "folder")
62
+
63
+ @property
64
+ @pulumi.getter
65
+ def id(self) -> str:
66
+ """
67
+ The provider-assigned unique ID for this managed resource.
68
+ """
69
+ return pulumi.get(self, "id")
70
+
71
+ @property
72
+ @pulumi.getter(name="kmsKeyName")
73
+ def kms_key_name(self) -> str:
74
+ """
75
+ The resource name for the configured Cloud KMS key.
76
+ KMS key name format:
77
+ `'projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]'`
78
+ To enable CMEK for the bucket, set this field to a valid kmsKeyName for which the associated service account has the required cloudkms.cryptoKeyEncrypterDecrypter roles assigned for the key.
79
+ The Cloud KMS key used by the bucket can be updated by changing the kmsKeyName to a new valid key name. Encryption operations that are in progress will be completed with the key that was in use when they started. Decryption operations will be completed using the key that was used at the time of encryption unless access to that key has been revoked.
80
+ See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.
81
+ """
82
+ return pulumi.get(self, "kms_key_name")
83
+
84
+ @property
85
+ @pulumi.getter(name="kmsServiceAccountId")
86
+ def kms_service_account_id(self) -> str:
87
+ """
88
+ The service account associated with a project for which CMEK will apply.
89
+ Before enabling CMEK for a logging bucket, you must first assign the cloudkms.cryptoKeyEncrypterDecrypter role to the service account associated with the project for which CMEK will apply. See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.
90
+ """
91
+ return pulumi.get(self, "kms_service_account_id")
92
+
93
+ @property
94
+ @pulumi.getter(name="loggingServiceAccountId")
95
+ def logging_service_account_id(self) -> str:
96
+ """
97
+ The service account for the given container. Sinks use this service account as their writerIdentity if no custom service account is provided.
98
+ """
99
+ return pulumi.get(self, "logging_service_account_id")
100
+
101
+ @property
102
+ @pulumi.getter
103
+ def name(self) -> str:
104
+ """
105
+ The resource name of the settings.
106
+ """
107
+ return pulumi.get(self, "name")
108
+
109
+ @property
110
+ @pulumi.getter(name="storageLocation")
111
+ def storage_location(self) -> str:
112
+ """
113
+ The storage location that Cloud Logging will use to create new resources when a location is needed but not explicitly provided.
114
+ """
115
+ return pulumi.get(self, "storage_location")
116
+
117
+
118
+ class AwaitableGetFolderSettingsResult(GetFolderSettingsResult):
119
+ # pylint: disable=using-constant-test
120
+ def __await__(self):
121
+ if False:
122
+ yield self
123
+ return GetFolderSettingsResult(
124
+ disable_default_sink=self.disable_default_sink,
125
+ folder=self.folder,
126
+ id=self.id,
127
+ kms_key_name=self.kms_key_name,
128
+ kms_service_account_id=self.kms_service_account_id,
129
+ logging_service_account_id=self.logging_service_account_id,
130
+ name=self.name,
131
+ storage_location=self.storage_location)
132
+
133
+
134
+ def get_folder_settings(folder: Optional[str] = None,
135
+ opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetFolderSettingsResult:
136
+ """
137
+ Describes the settings associated with a folder.
138
+
139
+ To get more information about LoggingFolderSettings, see:
140
+
141
+ * [API documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/folders/getSettings)
142
+ * [Configure default settings for organizations and folders](https://cloud.google.com/logging/docs/default-settings).
143
+
144
+ ## Example Usage
145
+ ### Logging Folder Settings Basic
146
+
147
+ ```python
148
+ import pulumi
149
+ import pulumi_gcp as gcp
150
+
151
+ settings = gcp.logging.get_folder_settings(folder="my-folder-name")
152
+ ```
153
+
154
+
155
+ :param str folder: The ID of the folder for which to retrieve settings.
156
+ """
157
+ __args__ = dict()
158
+ __args__['folder'] = folder
159
+ opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
160
+ __ret__ = pulumi.runtime.invoke('gcp:logging/getFolderSettings:getFolderSettings', __args__, opts=opts, typ=GetFolderSettingsResult).value
161
+
162
+ return AwaitableGetFolderSettingsResult(
163
+ disable_default_sink=pulumi.get(__ret__, 'disable_default_sink'),
164
+ folder=pulumi.get(__ret__, 'folder'),
165
+ id=pulumi.get(__ret__, 'id'),
166
+ kms_key_name=pulumi.get(__ret__, 'kms_key_name'),
167
+ kms_service_account_id=pulumi.get(__ret__, 'kms_service_account_id'),
168
+ logging_service_account_id=pulumi.get(__ret__, 'logging_service_account_id'),
169
+ name=pulumi.get(__ret__, 'name'),
170
+ storage_location=pulumi.get(__ret__, 'storage_location'))
171
+
172
+
173
+ @_utilities.lift_output_func(get_folder_settings)
174
+ def get_folder_settings_output(folder: Optional[pulumi.Input[str]] = None,
175
+ opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetFolderSettingsResult]:
176
+ """
177
+ Describes the settings associated with a folder.
178
+
179
+ To get more information about LoggingFolderSettings, see:
180
+
181
+ * [API documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/folders/getSettings)
182
+ * [Configure default settings for organizations and folders](https://cloud.google.com/logging/docs/default-settings).
183
+
184
+ ## Example Usage
185
+ ### Logging Folder Settings Basic
186
+
187
+ ```python
188
+ import pulumi
189
+ import pulumi_gcp as gcp
190
+
191
+ settings = gcp.logging.get_folder_settings(folder="my-folder-name")
192
+ ```
193
+
194
+
195
+ :param str folder: The ID of the folder for which to retrieve settings.
196
+ """
197
+ ...