pulumi-gcp 8.29.0a1746115375__py3-none-any.whl → 8.29.0a1746140206__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 +24 -0
- pulumi_gcp/alloydb/instance.py +1 -1
- pulumi_gcp/apigee/organization.py +26 -0
- pulumi_gcp/beyondcorp/_inputs.py +129 -0
- pulumi_gcp/beyondcorp/application.py +106 -3
- pulumi_gcp/beyondcorp/outputs.py +93 -0
- pulumi_gcp/bigtable/__init__.py +2 -0
- pulumi_gcp/bigtable/logical_view.py +473 -0
- pulumi_gcp/bigtable/materialized_view.py +524 -0
- pulumi_gcp/certificateauthority/ca_pool.py +12 -0
- pulumi_gcp/certificatemanager/get_certificates.py +29 -0
- pulumi_gcp/clouddeploy/automation.py +66 -10
- pulumi_gcp/compute/_inputs.py +366 -55
- pulumi_gcp/compute/backend_service.py +6 -2
- pulumi_gcp/compute/get_region_disk.py +12 -1
- pulumi_gcp/compute/interconnect.py +25 -24
- pulumi_gcp/compute/outputs.py +380 -48
- pulumi_gcp/compute/region_disk.py +28 -0
- pulumi_gcp/compute/region_resize_request.py +2 -2
- pulumi_gcp/compute/region_security_policy.py +16 -0
- pulumi_gcp/compute/region_security_policy_rule.py +16 -0
- pulumi_gcp/compute/resize_request.py +2 -2
- pulumi_gcp/compute/resource_policy.py +0 -2
- pulumi_gcp/container/_inputs.py +69 -9
- pulumi_gcp/container/outputs.py +71 -7
- pulumi_gcp/dataplex/_inputs.py +219 -1
- pulumi_gcp/dataplex/datascan.py +20 -0
- pulumi_gcp/dataplex/outputs.py +168 -1
- pulumi_gcp/developerconnect/_inputs.py +6 -0
- pulumi_gcp/developerconnect/account_connector.py +56 -0
- pulumi_gcp/developerconnect/outputs.py +4 -0
- pulumi_gcp/dns/_inputs.py +34 -13
- pulumi_gcp/dns/outputs.py +25 -10
- pulumi_gcp/gkehub/_inputs.py +3 -3
- pulumi_gcp/gkehub/feature_membership.py +92 -0
- pulumi_gcp/gkehub/outputs.py +2 -2
- pulumi_gcp/identityplatform/_inputs.py +54 -0
- pulumi_gcp/identityplatform/oauth_idp_config.py +83 -5
- pulumi_gcp/identityplatform/outputs.py +49 -0
- pulumi_gcp/memcache/__init__.py +1 -0
- pulumi_gcp/memcache/get_instance.py +338 -0
- pulumi_gcp/memcache/outputs.py +363 -0
- pulumi_gcp/netapp/storage_pool.py +141 -0
- pulumi_gcp/networkservices/_inputs.py +35 -6
- pulumi_gcp/networkservices/lb_traffic_extension.py +7 -0
- pulumi_gcp/networkservices/outputs.py +22 -4
- pulumi_gcp/osconfig/__init__.py +1 -0
- pulumi_gcp/osconfig/_inputs.py +5400 -0
- pulumi_gcp/osconfig/outputs.py +3952 -0
- pulumi_gcp/osconfig/v2_policy_orchestrator_for_folder.py +1098 -0
- pulumi_gcp/pulumi-plugin.json +1 -1
- pulumi_gcp/spanner/instance_config.py +14 -14
- pulumi_gcp/sql/_inputs.py +83 -0
- pulumi_gcp/sql/database_instance.py +28 -0
- pulumi_gcp/sql/get_database_instance.py +12 -1
- pulumi_gcp/sql/outputs.py +146 -6
- pulumi_gcp/storage/_inputs.py +20 -0
- pulumi_gcp/storage/bucket.py +56 -0
- pulumi_gcp/storage/get_bucket.py +23 -1
- pulumi_gcp/storage/outputs.py +14 -0
- pulumi_gcp/vertex/ai_feature_online_store_featureview.py +2 -14
- {pulumi_gcp-8.29.0a1746115375.dist-info → pulumi_gcp-8.29.0a1746140206.dist-info}/METADATA +1 -1
- {pulumi_gcp-8.29.0a1746115375.dist-info → pulumi_gcp-8.29.0a1746140206.dist-info}/RECORD +65 -61
- {pulumi_gcp-8.29.0a1746115375.dist-info → pulumi_gcp-8.29.0a1746140206.dist-info}/WHEEL +0 -0
- {pulumi_gcp-8.29.0a1746115375.dist-info → pulumi_gcp-8.29.0a1746140206.dist-info}/top_level.txt +0 -0
pulumi_gcp/dns/_inputs.py
CHANGED
@@ -481,9 +481,9 @@ class ManagedZoneForwardingConfigArgs:
|
|
481
481
|
|
482
482
|
if not MYPY:
|
483
483
|
class ManagedZoneForwardingConfigTargetNameServerArgsDict(TypedDict):
|
484
|
-
|
484
|
+
domain_name: NotRequired[pulumi.Input[builtins.str]]
|
485
485
|
"""
|
486
|
-
|
486
|
+
Fully qualified domain name for the forwarding target.
|
487
487
|
"""
|
488
488
|
forwarding_path: NotRequired[pulumi.Input[builtins.str]]
|
489
489
|
"""
|
@@ -492,36 +492,45 @@ if not MYPY:
|
|
492
492
|
to the Internet. When set to `private`, Cloud DNS will always send queries through VPC for this target
|
493
493
|
Possible values are: `default`, `private`.
|
494
494
|
"""
|
495
|
+
ipv4_address: NotRequired[pulumi.Input[builtins.str]]
|
496
|
+
"""
|
497
|
+
IPv4 address of a target name server.
|
498
|
+
"""
|
495
499
|
elif False:
|
496
500
|
ManagedZoneForwardingConfigTargetNameServerArgsDict: TypeAlias = Mapping[str, Any]
|
497
501
|
|
498
502
|
@pulumi.input_type
|
499
503
|
class ManagedZoneForwardingConfigTargetNameServerArgs:
|
500
504
|
def __init__(__self__, *,
|
501
|
-
|
502
|
-
forwarding_path: Optional[pulumi.Input[builtins.str]] = None
|
505
|
+
domain_name: Optional[pulumi.Input[builtins.str]] = None,
|
506
|
+
forwarding_path: Optional[pulumi.Input[builtins.str]] = None,
|
507
|
+
ipv4_address: Optional[pulumi.Input[builtins.str]] = None):
|
503
508
|
"""
|
504
|
-
:param pulumi.Input[builtins.str]
|
509
|
+
:param pulumi.Input[builtins.str] domain_name: Fully qualified domain name for the forwarding target.
|
505
510
|
:param pulumi.Input[builtins.str] forwarding_path: Forwarding path for this TargetNameServer. If unset or `default` Cloud DNS will make forwarding
|
506
511
|
decision based on address ranges, i.e. RFC1918 addresses go to the VPC, Non-RFC1918 addresses go
|
507
512
|
to the Internet. When set to `private`, Cloud DNS will always send queries through VPC for this target
|
508
513
|
Possible values are: `default`, `private`.
|
514
|
+
:param pulumi.Input[builtins.str] ipv4_address: IPv4 address of a target name server.
|
509
515
|
"""
|
510
|
-
|
516
|
+
if domain_name is not None:
|
517
|
+
pulumi.set(__self__, "domain_name", domain_name)
|
511
518
|
if forwarding_path is not None:
|
512
519
|
pulumi.set(__self__, "forwarding_path", forwarding_path)
|
520
|
+
if ipv4_address is not None:
|
521
|
+
pulumi.set(__self__, "ipv4_address", ipv4_address)
|
513
522
|
|
514
523
|
@property
|
515
|
-
@pulumi.getter(name="
|
516
|
-
def
|
524
|
+
@pulumi.getter(name="domainName")
|
525
|
+
def domain_name(self) -> Optional[pulumi.Input[builtins.str]]:
|
517
526
|
"""
|
518
|
-
|
527
|
+
Fully qualified domain name for the forwarding target.
|
519
528
|
"""
|
520
|
-
return pulumi.get(self, "
|
529
|
+
return pulumi.get(self, "domain_name")
|
521
530
|
|
522
|
-
@
|
523
|
-
def
|
524
|
-
pulumi.set(self, "
|
531
|
+
@domain_name.setter
|
532
|
+
def domain_name(self, value: Optional[pulumi.Input[builtins.str]]):
|
533
|
+
pulumi.set(self, "domain_name", value)
|
525
534
|
|
526
535
|
@property
|
527
536
|
@pulumi.getter(name="forwardingPath")
|
@@ -538,6 +547,18 @@ class ManagedZoneForwardingConfigTargetNameServerArgs:
|
|
538
547
|
def forwarding_path(self, value: Optional[pulumi.Input[builtins.str]]):
|
539
548
|
pulumi.set(self, "forwarding_path", value)
|
540
549
|
|
550
|
+
@property
|
551
|
+
@pulumi.getter(name="ipv4Address")
|
552
|
+
def ipv4_address(self) -> Optional[pulumi.Input[builtins.str]]:
|
553
|
+
"""
|
554
|
+
IPv4 address of a target name server.
|
555
|
+
"""
|
556
|
+
return pulumi.get(self, "ipv4_address")
|
557
|
+
|
558
|
+
@ipv4_address.setter
|
559
|
+
def ipv4_address(self, value: Optional[pulumi.Input[builtins.str]]):
|
560
|
+
pulumi.set(self, "ipv4_address", value)
|
561
|
+
|
541
562
|
|
542
563
|
if not MYPY:
|
543
564
|
class ManagedZonePeeringConfigArgsDict(TypedDict):
|
pulumi_gcp/dns/outputs.py
CHANGED
@@ -369,10 +369,12 @@ class ManagedZoneForwardingConfigTargetNameServer(dict):
|
|
369
369
|
@staticmethod
|
370
370
|
def __key_warning(key: str):
|
371
371
|
suggest = None
|
372
|
-
if key == "
|
373
|
-
suggest = "
|
372
|
+
if key == "domainName":
|
373
|
+
suggest = "domain_name"
|
374
374
|
elif key == "forwardingPath":
|
375
375
|
suggest = "forwarding_path"
|
376
|
+
elif key == "ipv4Address":
|
377
|
+
suggest = "ipv4_address"
|
376
378
|
|
377
379
|
if suggest:
|
378
380
|
pulumi.log.warn(f"Key '{key}' not found in ManagedZoneForwardingConfigTargetNameServer. Access the value via the '{suggest}' property getter instead.")
|
@@ -386,26 +388,31 @@ class ManagedZoneForwardingConfigTargetNameServer(dict):
|
|
386
388
|
return super().get(key, default)
|
387
389
|
|
388
390
|
def __init__(__self__, *,
|
389
|
-
|
390
|
-
forwarding_path: Optional[builtins.str] = None
|
391
|
+
domain_name: Optional[builtins.str] = None,
|
392
|
+
forwarding_path: Optional[builtins.str] = None,
|
393
|
+
ipv4_address: Optional[builtins.str] = None):
|
391
394
|
"""
|
392
|
-
:param builtins.str
|
395
|
+
:param builtins.str domain_name: Fully qualified domain name for the forwarding target.
|
393
396
|
:param builtins.str forwarding_path: Forwarding path for this TargetNameServer. If unset or `default` Cloud DNS will make forwarding
|
394
397
|
decision based on address ranges, i.e. RFC1918 addresses go to the VPC, Non-RFC1918 addresses go
|
395
398
|
to the Internet. When set to `private`, Cloud DNS will always send queries through VPC for this target
|
396
399
|
Possible values are: `default`, `private`.
|
400
|
+
:param builtins.str ipv4_address: IPv4 address of a target name server.
|
397
401
|
"""
|
398
|
-
|
402
|
+
if domain_name is not None:
|
403
|
+
pulumi.set(__self__, "domain_name", domain_name)
|
399
404
|
if forwarding_path is not None:
|
400
405
|
pulumi.set(__self__, "forwarding_path", forwarding_path)
|
406
|
+
if ipv4_address is not None:
|
407
|
+
pulumi.set(__self__, "ipv4_address", ipv4_address)
|
401
408
|
|
402
409
|
@property
|
403
|
-
@pulumi.getter(name="
|
404
|
-
def
|
410
|
+
@pulumi.getter(name="domainName")
|
411
|
+
def domain_name(self) -> Optional[builtins.str]:
|
405
412
|
"""
|
406
|
-
|
413
|
+
Fully qualified domain name for the forwarding target.
|
407
414
|
"""
|
408
|
-
return pulumi.get(self, "
|
415
|
+
return pulumi.get(self, "domain_name")
|
409
416
|
|
410
417
|
@property
|
411
418
|
@pulumi.getter(name="forwardingPath")
|
@@ -418,6 +425,14 @@ class ManagedZoneForwardingConfigTargetNameServer(dict):
|
|
418
425
|
"""
|
419
426
|
return pulumi.get(self, "forwarding_path")
|
420
427
|
|
428
|
+
@property
|
429
|
+
@pulumi.getter(name="ipv4Address")
|
430
|
+
def ipv4_address(self) -> Optional[builtins.str]:
|
431
|
+
"""
|
432
|
+
IPv4 address of a target name server.
|
433
|
+
"""
|
434
|
+
return pulumi.get(self, "ipv4_address")
|
435
|
+
|
421
436
|
|
422
437
|
@pulumi.output_type
|
423
438
|
class ManagedZonePeeringConfig(dict):
|
pulumi_gcp/gkehub/_inputs.py
CHANGED
@@ -1930,7 +1930,7 @@ if not MYPY:
|
|
1930
1930
|
class FeatureMembershipConfigmanagementConfigSyncArgsDict(TypedDict):
|
1931
1931
|
deployment_overrides: NotRequired[pulumi.Input[Sequence[pulumi.Input['FeatureMembershipConfigmanagementConfigSyncDeploymentOverrideArgsDict']]]]
|
1932
1932
|
"""
|
1933
|
-
The override configurations for the Config Sync Deployments. Structure is documented below.
|
1933
|
+
The override configurations for the Config Sync Deployments. Structure is documented below. The field is only available on Config Sync version 1.20.1 or later.
|
1934
1934
|
"""
|
1935
1935
|
enabled: NotRequired[pulumi.Input[builtins.bool]]
|
1936
1936
|
"""
|
@@ -1977,7 +1977,7 @@ class FeatureMembershipConfigmanagementConfigSyncArgs:
|
|
1977
1977
|
source_format: Optional[pulumi.Input[builtins.str]] = None,
|
1978
1978
|
stop_syncing: Optional[pulumi.Input[builtins.bool]] = None):
|
1979
1979
|
"""
|
1980
|
-
:param pulumi.Input[Sequence[pulumi.Input['FeatureMembershipConfigmanagementConfigSyncDeploymentOverrideArgs']]] deployment_overrides: The override configurations for the Config Sync Deployments. Structure is documented below.
|
1980
|
+
:param pulumi.Input[Sequence[pulumi.Input['FeatureMembershipConfigmanagementConfigSyncDeploymentOverrideArgs']]] deployment_overrides: The override configurations for the Config Sync Deployments. Structure is documented below. The field is only available on Config Sync version 1.20.1 or later.
|
1981
1981
|
:param pulumi.Input[builtins.bool] enabled: Enables the installation of ConfigSync. If set to true, ConfigSync resources will be created and the other ConfigSync fields will be applied if exist. If set to false, all other ConfigSync fields will be ignored, ConfigSync resources will be deleted. If omitted, ConfigSync resources will be managed depends on the presence of the git or oci field.
|
1982
1982
|
:param pulumi.Input['FeatureMembershipConfigmanagementConfigSyncGitArgs'] git: (Optional) Structure is documented below.
|
1983
1983
|
:param pulumi.Input[builtins.str] metrics_gcp_service_account_email: Deprecated: If Workload Identity Federation for GKE is enabled, Google Cloud Service Account is no longer needed for exporting Config Sync metrics: https://cloud.google.com/kubernetes-engine/enterprise/config-sync/docs/how-to/monitor-config-sync-cloud-monitoring#custom-monitoring.
|
@@ -2009,7 +2009,7 @@ class FeatureMembershipConfigmanagementConfigSyncArgs:
|
|
2009
2009
|
@pulumi.getter(name="deploymentOverrides")
|
2010
2010
|
def deployment_overrides(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['FeatureMembershipConfigmanagementConfigSyncDeploymentOverrideArgs']]]]:
|
2011
2011
|
"""
|
2012
|
-
The override configurations for the Config Sync Deployments. Structure is documented below.
|
2012
|
+
The override configurations for the Config Sync Deployments. Structure is documented below. The field is only available on Config Sync version 1.20.1 or later.
|
2013
2013
|
"""
|
2014
2014
|
return pulumi.get(self, "deployment_overrides")
|
2015
2015
|
|
@@ -428,6 +428,52 @@ class FeatureMembership(pulumi.CustomResource):
|
|
428
428
|
})
|
429
429
|
```
|
430
430
|
|
431
|
+
### Config Management With Deployment Override
|
432
|
+
|
433
|
+
```python
|
434
|
+
import pulumi
|
435
|
+
import pulumi_gcp as gcp
|
436
|
+
|
437
|
+
cluster = gcp.container.Cluster("cluster",
|
438
|
+
name="my-cluster",
|
439
|
+
location="us-central1-a",
|
440
|
+
initial_node_count=1)
|
441
|
+
membership = gcp.gkehub.Membership("membership",
|
442
|
+
membership_id="my-membership",
|
443
|
+
endpoint={
|
444
|
+
"gke_cluster": {
|
445
|
+
"resource_link": cluster.id.apply(lambda id: f"//container.googleapis.com/{id}"),
|
446
|
+
},
|
447
|
+
})
|
448
|
+
feature = gcp.gkehub.Feature("feature",
|
449
|
+
name="configmanagement",
|
450
|
+
location="global",
|
451
|
+
labels={
|
452
|
+
"foo": "bar",
|
453
|
+
})
|
454
|
+
feature_member = gcp.gkehub.FeatureMembership("feature_member",
|
455
|
+
location="global",
|
456
|
+
feature=feature.name,
|
457
|
+
membership=membership.membership_id,
|
458
|
+
configmanagement={
|
459
|
+
"version": "1.20.1",
|
460
|
+
"config_sync": {
|
461
|
+
"enabled": True,
|
462
|
+
"deployment_overrides": [{
|
463
|
+
"deployment_name": "reconciler-manager",
|
464
|
+
"deployment_namespace": "config-management-system",
|
465
|
+
"containers": [{
|
466
|
+
"container_name": "reconciler-manager",
|
467
|
+
"cpu_request": "100m",
|
468
|
+
"memory_request": "64Mi",
|
469
|
+
"cpu_limit": "250m",
|
470
|
+
"memory_limit": "128Mi",
|
471
|
+
}],
|
472
|
+
}],
|
473
|
+
},
|
474
|
+
})
|
475
|
+
```
|
476
|
+
|
431
477
|
### Config Management With Regional Membership
|
432
478
|
|
433
479
|
```python
|
@@ -748,6 +794,52 @@ class FeatureMembership(pulumi.CustomResource):
|
|
748
794
|
})
|
749
795
|
```
|
750
796
|
|
797
|
+
### Config Management With Deployment Override
|
798
|
+
|
799
|
+
```python
|
800
|
+
import pulumi
|
801
|
+
import pulumi_gcp as gcp
|
802
|
+
|
803
|
+
cluster = gcp.container.Cluster("cluster",
|
804
|
+
name="my-cluster",
|
805
|
+
location="us-central1-a",
|
806
|
+
initial_node_count=1)
|
807
|
+
membership = gcp.gkehub.Membership("membership",
|
808
|
+
membership_id="my-membership",
|
809
|
+
endpoint={
|
810
|
+
"gke_cluster": {
|
811
|
+
"resource_link": cluster.id.apply(lambda id: f"//container.googleapis.com/{id}"),
|
812
|
+
},
|
813
|
+
})
|
814
|
+
feature = gcp.gkehub.Feature("feature",
|
815
|
+
name="configmanagement",
|
816
|
+
location="global",
|
817
|
+
labels={
|
818
|
+
"foo": "bar",
|
819
|
+
})
|
820
|
+
feature_member = gcp.gkehub.FeatureMembership("feature_member",
|
821
|
+
location="global",
|
822
|
+
feature=feature.name,
|
823
|
+
membership=membership.membership_id,
|
824
|
+
configmanagement={
|
825
|
+
"version": "1.20.1",
|
826
|
+
"config_sync": {
|
827
|
+
"enabled": True,
|
828
|
+
"deployment_overrides": [{
|
829
|
+
"deployment_name": "reconciler-manager",
|
830
|
+
"deployment_namespace": "config-management-system",
|
831
|
+
"containers": [{
|
832
|
+
"container_name": "reconciler-manager",
|
833
|
+
"cpu_request": "100m",
|
834
|
+
"memory_request": "64Mi",
|
835
|
+
"cpu_limit": "250m",
|
836
|
+
"memory_limit": "128Mi",
|
837
|
+
}],
|
838
|
+
}],
|
839
|
+
},
|
840
|
+
})
|
841
|
+
```
|
842
|
+
|
751
843
|
### Config Management With Regional Membership
|
752
844
|
|
753
845
|
```python
|
pulumi_gcp/gkehub/outputs.py
CHANGED
@@ -1435,7 +1435,7 @@ class FeatureMembershipConfigmanagementConfigSync(dict):
|
|
1435
1435
|
source_format: Optional[builtins.str] = None,
|
1436
1436
|
stop_syncing: Optional[builtins.bool] = None):
|
1437
1437
|
"""
|
1438
|
-
:param Sequence['FeatureMembershipConfigmanagementConfigSyncDeploymentOverrideArgs'] deployment_overrides: The override configurations for the Config Sync Deployments. Structure is documented below.
|
1438
|
+
:param Sequence['FeatureMembershipConfigmanagementConfigSyncDeploymentOverrideArgs'] deployment_overrides: The override configurations for the Config Sync Deployments. Structure is documented below. The field is only available on Config Sync version 1.20.1 or later.
|
1439
1439
|
:param builtins.bool enabled: Enables the installation of ConfigSync. If set to true, ConfigSync resources will be created and the other ConfigSync fields will be applied if exist. If set to false, all other ConfigSync fields will be ignored, ConfigSync resources will be deleted. If omitted, ConfigSync resources will be managed depends on the presence of the git or oci field.
|
1440
1440
|
:param 'FeatureMembershipConfigmanagementConfigSyncGitArgs' git: (Optional) Structure is documented below.
|
1441
1441
|
:param builtins.str metrics_gcp_service_account_email: Deprecated: If Workload Identity Federation for GKE is enabled, Google Cloud Service Account is no longer needed for exporting Config Sync metrics: https://cloud.google.com/kubernetes-engine/enterprise/config-sync/docs/how-to/monitor-config-sync-cloud-monitoring#custom-monitoring.
|
@@ -1467,7 +1467,7 @@ class FeatureMembershipConfigmanagementConfigSync(dict):
|
|
1467
1467
|
@pulumi.getter(name="deploymentOverrides")
|
1468
1468
|
def deployment_overrides(self) -> Optional[Sequence['outputs.FeatureMembershipConfigmanagementConfigSyncDeploymentOverride']]:
|
1469
1469
|
"""
|
1470
|
-
The override configurations for the Config Sync Deployments. Structure is documented below.
|
1470
|
+
The override configurations for the Config Sync Deployments. Structure is documented below. The field is only available on Config Sync version 1.20.1 or later.
|
1471
1471
|
"""
|
1472
1472
|
return pulumi.get(self, "deployment_overrides")
|
1473
1473
|
|
@@ -66,6 +66,8 @@ __all__ = [
|
|
66
66
|
'InboundSamlConfigSpConfigArgsDict',
|
67
67
|
'InboundSamlConfigSpConfigSpCertificateArgs',
|
68
68
|
'InboundSamlConfigSpConfigSpCertificateArgsDict',
|
69
|
+
'OauthIdpConfigResponseTypeArgs',
|
70
|
+
'OauthIdpConfigResponseTypeArgsDict',
|
69
71
|
'TenantClientArgs',
|
70
72
|
'TenantClientArgsDict',
|
71
73
|
'TenantClientPermissionsArgs',
|
@@ -1575,6 +1577,58 @@ class InboundSamlConfigSpConfigSpCertificateArgs:
|
|
1575
1577
|
pulumi.set(self, "x509_certificate", value)
|
1576
1578
|
|
1577
1579
|
|
1580
|
+
if not MYPY:
|
1581
|
+
class OauthIdpConfigResponseTypeArgsDict(TypedDict):
|
1582
|
+
code: NotRequired[pulumi.Input[builtins.bool]]
|
1583
|
+
"""
|
1584
|
+
If true, authorization code is returned from IdP's authorization endpoint.
|
1585
|
+
"""
|
1586
|
+
id_token: NotRequired[pulumi.Input[builtins.bool]]
|
1587
|
+
"""
|
1588
|
+
If true, ID token is returned from IdP's authorization endpoint.
|
1589
|
+
"""
|
1590
|
+
elif False:
|
1591
|
+
OauthIdpConfigResponseTypeArgsDict: TypeAlias = Mapping[str, Any]
|
1592
|
+
|
1593
|
+
@pulumi.input_type
|
1594
|
+
class OauthIdpConfigResponseTypeArgs:
|
1595
|
+
def __init__(__self__, *,
|
1596
|
+
code: Optional[pulumi.Input[builtins.bool]] = None,
|
1597
|
+
id_token: Optional[pulumi.Input[builtins.bool]] = None):
|
1598
|
+
"""
|
1599
|
+
:param pulumi.Input[builtins.bool] code: If true, authorization code is returned from IdP's authorization endpoint.
|
1600
|
+
:param pulumi.Input[builtins.bool] id_token: If true, ID token is returned from IdP's authorization endpoint.
|
1601
|
+
"""
|
1602
|
+
if code is not None:
|
1603
|
+
pulumi.set(__self__, "code", code)
|
1604
|
+
if id_token is not None:
|
1605
|
+
pulumi.set(__self__, "id_token", id_token)
|
1606
|
+
|
1607
|
+
@property
|
1608
|
+
@pulumi.getter
|
1609
|
+
def code(self) -> Optional[pulumi.Input[builtins.bool]]:
|
1610
|
+
"""
|
1611
|
+
If true, authorization code is returned from IdP's authorization endpoint.
|
1612
|
+
"""
|
1613
|
+
return pulumi.get(self, "code")
|
1614
|
+
|
1615
|
+
@code.setter
|
1616
|
+
def code(self, value: Optional[pulumi.Input[builtins.bool]]):
|
1617
|
+
pulumi.set(self, "code", value)
|
1618
|
+
|
1619
|
+
@property
|
1620
|
+
@pulumi.getter(name="idToken")
|
1621
|
+
def id_token(self) -> Optional[pulumi.Input[builtins.bool]]:
|
1622
|
+
"""
|
1623
|
+
If true, ID token is returned from IdP's authorization endpoint.
|
1624
|
+
"""
|
1625
|
+
return pulumi.get(self, "id_token")
|
1626
|
+
|
1627
|
+
@id_token.setter
|
1628
|
+
def id_token(self, value: Optional[pulumi.Input[builtins.bool]]):
|
1629
|
+
pulumi.set(self, "id_token", value)
|
1630
|
+
|
1631
|
+
|
1578
1632
|
if not MYPY:
|
1579
1633
|
class TenantClientArgsDict(TypedDict):
|
1580
1634
|
permissions: NotRequired[pulumi.Input['TenantClientPermissionsArgsDict']]
|
@@ -14,6 +14,8 @@ 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__ = ['OauthIdpConfigArgs', 'OauthIdpConfig']
|
19
21
|
|
@@ -26,7 +28,8 @@ class OauthIdpConfigArgs:
|
|
26
28
|
display_name: Optional[pulumi.Input[builtins.str]] = None,
|
27
29
|
enabled: Optional[pulumi.Input[builtins.bool]] = None,
|
28
30
|
name: Optional[pulumi.Input[builtins.str]] = None,
|
29
|
-
project: Optional[pulumi.Input[builtins.str]] = None
|
31
|
+
project: Optional[pulumi.Input[builtins.str]] = None,
|
32
|
+
response_type: Optional[pulumi.Input['OauthIdpConfigResponseTypeArgs']] = None):
|
30
33
|
"""
|
31
34
|
The set of arguments for constructing a OauthIdpConfig resource.
|
32
35
|
:param pulumi.Input[builtins.str] client_id: The client id of an OAuth client.
|
@@ -40,6 +43,10 @@ class OauthIdpConfigArgs:
|
|
40
43
|
:param pulumi.Input[builtins.str] name: The name of the OauthIdpConfig. Must start with `oidc.`.
|
41
44
|
:param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
|
42
45
|
If it is not provided, the provider project is used.
|
46
|
+
:param pulumi.Input['OauthIdpConfigResponseTypeArgs'] response_type: The response type to request for in the OAuth authorization flow.
|
47
|
+
You can set either idToken or code to true, but not both.
|
48
|
+
Setting both types to be simultaneously true ({code: true, idToken: true}) is not yet supported.
|
49
|
+
Structure is documented below.
|
43
50
|
"""
|
44
51
|
pulumi.set(__self__, "client_id", client_id)
|
45
52
|
pulumi.set(__self__, "issuer", issuer)
|
@@ -53,6 +60,8 @@ class OauthIdpConfigArgs:
|
|
53
60
|
pulumi.set(__self__, "name", name)
|
54
61
|
if project is not None:
|
55
62
|
pulumi.set(__self__, "project", project)
|
63
|
+
if response_type is not None:
|
64
|
+
pulumi.set(__self__, "response_type", response_type)
|
56
65
|
|
57
66
|
@property
|
58
67
|
@pulumi.getter(name="clientId")
|
@@ -142,6 +151,21 @@ class OauthIdpConfigArgs:
|
|
142
151
|
def project(self, value: Optional[pulumi.Input[builtins.str]]):
|
143
152
|
pulumi.set(self, "project", value)
|
144
153
|
|
154
|
+
@property
|
155
|
+
@pulumi.getter(name="responseType")
|
156
|
+
def response_type(self) -> Optional[pulumi.Input['OauthIdpConfigResponseTypeArgs']]:
|
157
|
+
"""
|
158
|
+
The response type to request for in the OAuth authorization flow.
|
159
|
+
You can set either idToken or code to true, but not both.
|
160
|
+
Setting both types to be simultaneously true ({code: true, idToken: true}) is not yet supported.
|
161
|
+
Structure is documented below.
|
162
|
+
"""
|
163
|
+
return pulumi.get(self, "response_type")
|
164
|
+
|
165
|
+
@response_type.setter
|
166
|
+
def response_type(self, value: Optional[pulumi.Input['OauthIdpConfigResponseTypeArgs']]):
|
167
|
+
pulumi.set(self, "response_type", value)
|
168
|
+
|
145
169
|
|
146
170
|
@pulumi.input_type
|
147
171
|
class _OauthIdpConfigState:
|
@@ -152,7 +176,8 @@ class _OauthIdpConfigState:
|
|
152
176
|
enabled: Optional[pulumi.Input[builtins.bool]] = None,
|
153
177
|
issuer: Optional[pulumi.Input[builtins.str]] = None,
|
154
178
|
name: Optional[pulumi.Input[builtins.str]] = None,
|
155
|
-
project: Optional[pulumi.Input[builtins.str]] = None
|
179
|
+
project: Optional[pulumi.Input[builtins.str]] = None,
|
180
|
+
response_type: Optional[pulumi.Input['OauthIdpConfigResponseTypeArgs']] = None):
|
156
181
|
"""
|
157
182
|
Input properties used for looking up and filtering OauthIdpConfig resources.
|
158
183
|
:param pulumi.Input[builtins.str] client_id: The client id of an OAuth client.
|
@@ -166,6 +191,10 @@ class _OauthIdpConfigState:
|
|
166
191
|
:param pulumi.Input[builtins.str] name: The name of the OauthIdpConfig. Must start with `oidc.`.
|
167
192
|
:param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
|
168
193
|
If it is not provided, the provider project is used.
|
194
|
+
:param pulumi.Input['OauthIdpConfigResponseTypeArgs'] response_type: The response type to request for in the OAuth authorization flow.
|
195
|
+
You can set either idToken or code to true, but not both.
|
196
|
+
Setting both types to be simultaneously true ({code: true, idToken: true}) is not yet supported.
|
197
|
+
Structure is documented below.
|
169
198
|
"""
|
170
199
|
if client_id is not None:
|
171
200
|
pulumi.set(__self__, "client_id", client_id)
|
@@ -181,6 +210,8 @@ class _OauthIdpConfigState:
|
|
181
210
|
pulumi.set(__self__, "name", name)
|
182
211
|
if project is not None:
|
183
212
|
pulumi.set(__self__, "project", project)
|
213
|
+
if response_type is not None:
|
214
|
+
pulumi.set(__self__, "response_type", response_type)
|
184
215
|
|
185
216
|
@property
|
186
217
|
@pulumi.getter(name="clientId")
|
@@ -270,6 +301,21 @@ class _OauthIdpConfigState:
|
|
270
301
|
def project(self, value: Optional[pulumi.Input[builtins.str]]):
|
271
302
|
pulumi.set(self, "project", value)
|
272
303
|
|
304
|
+
@property
|
305
|
+
@pulumi.getter(name="responseType")
|
306
|
+
def response_type(self) -> Optional[pulumi.Input['OauthIdpConfigResponseTypeArgs']]:
|
307
|
+
"""
|
308
|
+
The response type to request for in the OAuth authorization flow.
|
309
|
+
You can set either idToken or code to true, but not both.
|
310
|
+
Setting both types to be simultaneously true ({code: true, idToken: true}) is not yet supported.
|
311
|
+
Structure is documented below.
|
312
|
+
"""
|
313
|
+
return pulumi.get(self, "response_type")
|
314
|
+
|
315
|
+
@response_type.setter
|
316
|
+
def response_type(self, value: Optional[pulumi.Input['OauthIdpConfigResponseTypeArgs']]):
|
317
|
+
pulumi.set(self, "response_type", value)
|
318
|
+
|
273
319
|
|
274
320
|
class OauthIdpConfig(pulumi.CustomResource):
|
275
321
|
|
@@ -286,6 +332,7 @@ class OauthIdpConfig(pulumi.CustomResource):
|
|
286
332
|
issuer: Optional[pulumi.Input[builtins.str]] = None,
|
287
333
|
name: Optional[pulumi.Input[builtins.str]] = None,
|
288
334
|
project: Optional[pulumi.Input[builtins.str]] = None,
|
335
|
+
response_type: Optional[pulumi.Input[Union['OauthIdpConfigResponseTypeArgs', 'OauthIdpConfigResponseTypeArgsDict']]] = None,
|
289
336
|
__props__=None):
|
290
337
|
"""
|
291
338
|
OIDC IdP configuration for a Identity Toolkit project.
|
@@ -308,7 +355,11 @@ class OauthIdpConfig(pulumi.CustomResource):
|
|
308
355
|
client_id="client-id",
|
309
356
|
issuer="issuer",
|
310
357
|
enabled=True,
|
311
|
-
client_secret="secret"
|
358
|
+
client_secret="secret",
|
359
|
+
response_type={
|
360
|
+
"id_token": True,
|
361
|
+
"code": False,
|
362
|
+
})
|
312
363
|
```
|
313
364
|
|
314
365
|
## Import
|
@@ -348,6 +399,10 @@ class OauthIdpConfig(pulumi.CustomResource):
|
|
348
399
|
:param pulumi.Input[builtins.str] name: The name of the OauthIdpConfig. Must start with `oidc.`.
|
349
400
|
:param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
|
350
401
|
If it is not provided, the provider project is used.
|
402
|
+
:param pulumi.Input[Union['OauthIdpConfigResponseTypeArgs', 'OauthIdpConfigResponseTypeArgsDict']] response_type: The response type to request for in the OAuth authorization flow.
|
403
|
+
You can set either idToken or code to true, but not both.
|
404
|
+
Setting both types to be simultaneously true ({code: true, idToken: true}) is not yet supported.
|
405
|
+
Structure is documented below.
|
351
406
|
"""
|
352
407
|
...
|
353
408
|
@overload
|
@@ -376,7 +431,11 @@ class OauthIdpConfig(pulumi.CustomResource):
|
|
376
431
|
client_id="client-id",
|
377
432
|
issuer="issuer",
|
378
433
|
enabled=True,
|
379
|
-
client_secret="secret"
|
434
|
+
client_secret="secret",
|
435
|
+
response_type={
|
436
|
+
"id_token": True,
|
437
|
+
"code": False,
|
438
|
+
})
|
380
439
|
```
|
381
440
|
|
382
441
|
## Import
|
@@ -425,6 +484,7 @@ class OauthIdpConfig(pulumi.CustomResource):
|
|
425
484
|
issuer: Optional[pulumi.Input[builtins.str]] = None,
|
426
485
|
name: Optional[pulumi.Input[builtins.str]] = None,
|
427
486
|
project: Optional[pulumi.Input[builtins.str]] = None,
|
487
|
+
response_type: Optional[pulumi.Input[Union['OauthIdpConfigResponseTypeArgs', 'OauthIdpConfigResponseTypeArgsDict']]] = None,
|
428
488
|
__props__=None):
|
429
489
|
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
|
430
490
|
if not isinstance(opts, pulumi.ResourceOptions):
|
@@ -445,6 +505,7 @@ class OauthIdpConfig(pulumi.CustomResource):
|
|
445
505
|
__props__.__dict__["issuer"] = issuer
|
446
506
|
__props__.__dict__["name"] = name
|
447
507
|
__props__.__dict__["project"] = project
|
508
|
+
__props__.__dict__["response_type"] = response_type
|
448
509
|
super(OauthIdpConfig, __self__).__init__(
|
449
510
|
'gcp:identityplatform/oauthIdpConfig:OauthIdpConfig',
|
450
511
|
resource_name,
|
@@ -461,7 +522,8 @@ class OauthIdpConfig(pulumi.CustomResource):
|
|
461
522
|
enabled: Optional[pulumi.Input[builtins.bool]] = None,
|
462
523
|
issuer: Optional[pulumi.Input[builtins.str]] = None,
|
463
524
|
name: Optional[pulumi.Input[builtins.str]] = None,
|
464
|
-
project: Optional[pulumi.Input[builtins.str]] = None
|
525
|
+
project: Optional[pulumi.Input[builtins.str]] = None,
|
526
|
+
response_type: Optional[pulumi.Input[Union['OauthIdpConfigResponseTypeArgs', 'OauthIdpConfigResponseTypeArgsDict']]] = None) -> 'OauthIdpConfig':
|
465
527
|
"""
|
466
528
|
Get an existing OauthIdpConfig resource's state with the given name, id, and optional extra
|
467
529
|
properties used to qualify the lookup.
|
@@ -480,6 +542,10 @@ class OauthIdpConfig(pulumi.CustomResource):
|
|
480
542
|
:param pulumi.Input[builtins.str] name: The name of the OauthIdpConfig. Must start with `oidc.`.
|
481
543
|
:param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
|
482
544
|
If it is not provided, the provider project is used.
|
545
|
+
:param pulumi.Input[Union['OauthIdpConfigResponseTypeArgs', 'OauthIdpConfigResponseTypeArgsDict']] response_type: The response type to request for in the OAuth authorization flow.
|
546
|
+
You can set either idToken or code to true, but not both.
|
547
|
+
Setting both types to be simultaneously true ({code: true, idToken: true}) is not yet supported.
|
548
|
+
Structure is documented below.
|
483
549
|
"""
|
484
550
|
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
|
485
551
|
|
@@ -492,6 +558,7 @@ class OauthIdpConfig(pulumi.CustomResource):
|
|
492
558
|
__props__.__dict__["issuer"] = issuer
|
493
559
|
__props__.__dict__["name"] = name
|
494
560
|
__props__.__dict__["project"] = project
|
561
|
+
__props__.__dict__["response_type"] = response_type
|
495
562
|
return OauthIdpConfig(resource_name, opts=opts, __props__=__props__)
|
496
563
|
|
497
564
|
@property
|
@@ -554,3 +621,14 @@ class OauthIdpConfig(pulumi.CustomResource):
|
|
554
621
|
"""
|
555
622
|
return pulumi.get(self, "project")
|
556
623
|
|
624
|
+
@property
|
625
|
+
@pulumi.getter(name="responseType")
|
626
|
+
def response_type(self) -> pulumi.Output[Optional['outputs.OauthIdpConfigResponseType']]:
|
627
|
+
"""
|
628
|
+
The response type to request for in the OAuth authorization flow.
|
629
|
+
You can set either idToken or code to true, but not both.
|
630
|
+
Setting both types to be simultaneously true ({code: true, idToken: true}) is not yet supported.
|
631
|
+
Structure is documented below.
|
632
|
+
"""
|
633
|
+
return pulumi.get(self, "response_type")
|
634
|
+
|
@@ -42,6 +42,7 @@ __all__ = [
|
|
42
42
|
'InboundSamlConfigIdpConfigIdpCertificate',
|
43
43
|
'InboundSamlConfigSpConfig',
|
44
44
|
'InboundSamlConfigSpConfigSpCertificate',
|
45
|
+
'OauthIdpConfigResponseType',
|
45
46
|
'TenantClient',
|
46
47
|
'TenantClientPermissions',
|
47
48
|
'TenantInboundSamlConfigIdpConfig',
|
@@ -1373,6 +1374,54 @@ class InboundSamlConfigSpConfigSpCertificate(dict):
|
|
1373
1374
|
return pulumi.get(self, "x509_certificate")
|
1374
1375
|
|
1375
1376
|
|
1377
|
+
@pulumi.output_type
|
1378
|
+
class OauthIdpConfigResponseType(dict):
|
1379
|
+
@staticmethod
|
1380
|
+
def __key_warning(key: str):
|
1381
|
+
suggest = None
|
1382
|
+
if key == "idToken":
|
1383
|
+
suggest = "id_token"
|
1384
|
+
|
1385
|
+
if suggest:
|
1386
|
+
pulumi.log.warn(f"Key '{key}' not found in OauthIdpConfigResponseType. Access the value via the '{suggest}' property getter instead.")
|
1387
|
+
|
1388
|
+
def __getitem__(self, key: str) -> Any:
|
1389
|
+
OauthIdpConfigResponseType.__key_warning(key)
|
1390
|
+
return super().__getitem__(key)
|
1391
|
+
|
1392
|
+
def get(self, key: str, default = None) -> Any:
|
1393
|
+
OauthIdpConfigResponseType.__key_warning(key)
|
1394
|
+
return super().get(key, default)
|
1395
|
+
|
1396
|
+
def __init__(__self__, *,
|
1397
|
+
code: Optional[builtins.bool] = None,
|
1398
|
+
id_token: Optional[builtins.bool] = None):
|
1399
|
+
"""
|
1400
|
+
:param builtins.bool code: If true, authorization code is returned from IdP's authorization endpoint.
|
1401
|
+
:param builtins.bool id_token: If true, ID token is returned from IdP's authorization endpoint.
|
1402
|
+
"""
|
1403
|
+
if code is not None:
|
1404
|
+
pulumi.set(__self__, "code", code)
|
1405
|
+
if id_token is not None:
|
1406
|
+
pulumi.set(__self__, "id_token", id_token)
|
1407
|
+
|
1408
|
+
@property
|
1409
|
+
@pulumi.getter
|
1410
|
+
def code(self) -> Optional[builtins.bool]:
|
1411
|
+
"""
|
1412
|
+
If true, authorization code is returned from IdP's authorization endpoint.
|
1413
|
+
"""
|
1414
|
+
return pulumi.get(self, "code")
|
1415
|
+
|
1416
|
+
@property
|
1417
|
+
@pulumi.getter(name="idToken")
|
1418
|
+
def id_token(self) -> Optional[builtins.bool]:
|
1419
|
+
"""
|
1420
|
+
If true, ID token is returned from IdP's authorization endpoint.
|
1421
|
+
"""
|
1422
|
+
return pulumi.get(self, "id_token")
|
1423
|
+
|
1424
|
+
|
1376
1425
|
@pulumi.output_type
|
1377
1426
|
class TenantClient(dict):
|
1378
1427
|
def __init__(__self__, *,
|