pulumi-gcp 8.26.0a1744267117__py3-none-any.whl → 8.27.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pulumi_gcp/__init__.py +128 -0
- pulumi_gcp/accesscontextmanager/_inputs.py +117 -0
- pulumi_gcp/accesscontextmanager/gcp_user_access_binding.py +81 -26
- pulumi_gcp/accesscontextmanager/outputs.py +95 -0
- pulumi_gcp/apigee/__init__.py +1 -0
- pulumi_gcp/apigee/control_plane_access.py +419 -0
- pulumi_gcp/bigquery/_inputs.py +87 -30
- pulumi_gcp/bigquery/outputs.py +58 -20
- pulumi_gcp/bigquery/table.py +28 -14
- pulumi_gcp/clouddeploy/__init__.py +1 -0
- pulumi_gcp/clouddeploy/_inputs.py +2876 -1314
- pulumi_gcp/clouddeploy/automation.py +64 -2
- pulumi_gcp/clouddeploy/deploy_policy.py +1179 -0
- pulumi_gcp/clouddeploy/outputs.py +1130 -5
- pulumi_gcp/cloudrun/service.py +46 -0
- pulumi_gcp/cloudrunv2/get_service.py +12 -1
- pulumi_gcp/cloudrunv2/service.py +87 -2
- pulumi_gcp/compute/_inputs.py +448 -1
- pulumi_gcp/compute/image.py +183 -0
- pulumi_gcp/compute/outputs.py +387 -3
- pulumi_gcp/compute/region_backend_service.py +6 -2
- pulumi_gcp/compute/resource_policy.py +30 -0
- pulumi_gcp/compute/snapshot.py +6 -0
- pulumi_gcp/databasemigrationservice/_inputs.py +27 -24
- pulumi_gcp/databasemigrationservice/connection_profile.py +168 -0
- pulumi_gcp/databasemigrationservice/migration_job.py +6 -0
- pulumi_gcp/databasemigrationservice/outputs.py +18 -15
- pulumi_gcp/datastream/_inputs.py +506 -0
- pulumi_gcp/datastream/outputs.py +376 -0
- pulumi_gcp/datastream/stream.py +0 -2
- pulumi_gcp/developerconnect/__init__.py +1 -0
- pulumi_gcp/developerconnect/_inputs.py +77 -0
- pulumi_gcp/developerconnect/account_connector.py +866 -0
- pulumi_gcp/developerconnect/outputs.py +64 -0
- pulumi_gcp/firebase/hosting_version.py +34 -14
- pulumi_gcp/firestore/database.py +82 -0
- pulumi_gcp/firestore/index.py +263 -7
- pulumi_gcp/folder/__init__.py +1 -0
- pulumi_gcp/folder/service_identity.py +314 -0
- pulumi_gcp/gemini/__init__.py +2 -0
- pulumi_gcp/gemini/_inputs.py +176 -0
- pulumi_gcp/gemini/code_tools_setting.py +601 -0
- pulumi_gcp/gemini/code_tools_setting_binding.py +753 -0
- pulumi_gcp/gemini/outputs.py +124 -0
- pulumi_gcp/gkeonprem/v_mware_cluster.py +49 -0
- pulumi_gcp/gkeonprem/vmware_admin_cluster.py +28 -0
- pulumi_gcp/managedkafka/_inputs.py +6 -6
- pulumi_gcp/managedkafka/connect_cluster.py +84 -40
- pulumi_gcp/managedkafka/connector.py +98 -44
- pulumi_gcp/managedkafka/outputs.py +4 -4
- pulumi_gcp/memorystore/_inputs.py +205 -0
- pulumi_gcp/memorystore/get_instance.py +45 -1
- pulumi_gcp/memorystore/instance.py +194 -0
- pulumi_gcp/memorystore/outputs.py +270 -0
- pulumi_gcp/ml/engine_model.py +0 -22
- pulumi_gcp/monitoring/_inputs.py +37 -19
- pulumi_gcp/monitoring/outputs.py +39 -11
- pulumi_gcp/monitoring/uptime_check_config.py +8 -0
- pulumi_gcp/netapp/_inputs.py +92 -6
- pulumi_gcp/netapp/outputs.py +77 -4
- pulumi_gcp/netapp/volume_replication.py +12 -2
- pulumi_gcp/networkconnectivity/service_connection_policy.py +4 -2
- pulumi_gcp/networkconnectivity/spoke.py +14 -14
- pulumi_gcp/orgpolicy/policy.py +2 -2
- pulumi_gcp/osconfig/__init__.py +1 -0
- pulumi_gcp/osconfig/_inputs.py +5439 -0
- pulumi_gcp/osconfig/outputs.py +3978 -0
- pulumi_gcp/osconfig/v2_policy_orchestrator.py +8 -0
- pulumi_gcp/osconfig/v2_policy_orchestrator_for_organization.py +1055 -0
- pulumi_gcp/parametermanager/get_regional_parameter.py +12 -1
- pulumi_gcp/parametermanager/get_regional_parameter_version.py +15 -1
- pulumi_gcp/parametermanager/outputs.py +11 -0
- pulumi_gcp/parametermanager/regional_parameter.py +78 -0
- pulumi_gcp/parametermanager/regional_parameter_version.py +66 -0
- pulumi_gcp/pubsub/subscription.py +6 -6
- pulumi_gcp/pulumi-plugin.json +1 -1
- pulumi_gcp/redis/_inputs.py +69 -0
- pulumi_gcp/redis/cluster.py +140 -0
- pulumi_gcp/redis/outputs.py +40 -0
- pulumi_gcp/spanner/database.py +0 -34
- pulumi_gcp/storage/_inputs.py +111 -0
- pulumi_gcp/storage/bucket_object.py +28 -0
- pulumi_gcp/storage/control_folder_intelligence_config.py +32 -0
- pulumi_gcp/storage/control_organization_intelligence_config.py +32 -0
- pulumi_gcp/storage/control_project_intelligence_config.py +32 -0
- pulumi_gcp/storage/get_bucket_object.py +12 -1
- pulumi_gcp/storage/get_bucket_object_content.py +12 -1
- pulumi_gcp/storage/get_control_folder_intelligence_config.py +12 -1
- pulumi_gcp/storage/get_control_organization_intelligence_config.py +12 -1
- pulumi_gcp/storage/get_control_project_intelligence_config.py +12 -1
- pulumi_gcp/storage/outputs.py +174 -0
- pulumi_gcp/vertex/__init__.py +12 -0
- pulumi_gcp/vertex/_inputs.py +294 -0
- pulumi_gcp/vertex/ai_endpoint.py +4 -4
- pulumi_gcp/vertex/ai_feature_group.py +1 -1
- pulumi_gcp/vertex/ai_feature_group_iam_binding.py +583 -0
- pulumi_gcp/vertex/ai_feature_group_iam_member.py +583 -0
- pulumi_gcp/vertex/ai_feature_group_iam_policy.py +422 -0
- pulumi_gcp/vertex/ai_feature_online_store_featureview.py +26 -27
- pulumi_gcp/vertex/ai_feature_online_store_featureview_iam_binding.py +614 -0
- pulumi_gcp/vertex/ai_feature_online_store_featureview_iam_member.py +614 -0
- pulumi_gcp/vertex/ai_feature_online_store_featureview_iam_policy.py +453 -0
- pulumi_gcp/vertex/ai_feature_online_store_iam_binding.py +583 -0
- pulumi_gcp/vertex/ai_feature_online_store_iam_member.py +583 -0
- pulumi_gcp/vertex/ai_feature_online_store_iam_policy.py +422 -0
- pulumi_gcp/vertex/get_ai_feature_group_iam_policy.py +177 -0
- pulumi_gcp/vertex/get_ai_feature_online_store_featureview_iam_policy.py +194 -0
- pulumi_gcp/vertex/get_ai_feature_online_store_iam_policy.py +177 -0
- pulumi_gcp/vertex/outputs.py +168 -0
- pulumi_gcp/workbench/_inputs.py +60 -0
- pulumi_gcp/workbench/instance.py +48 -0
- pulumi_gcp/workbench/outputs.py +55 -0
- {pulumi_gcp-8.26.0a1744267117.dist-info → pulumi_gcp-8.27.0.dist-info}/METADATA +1 -1
- {pulumi_gcp-8.26.0a1744267117.dist-info → pulumi_gcp-8.27.0.dist-info}/RECORD +116 -97
- {pulumi_gcp-8.26.0a1744267117.dist-info → pulumi_gcp-8.27.0.dist-info}/WHEEL +0 -0
- {pulumi_gcp-8.26.0a1744267117.dist-info → pulumi_gcp-8.27.0.dist-info}/top_level.txt +0 -0
@@ -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
|
pulumi_gcp/apigee/__init__.py
CHANGED
@@ -0,0 +1,419 @@
|
|
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 builtins
|
6
|
+
import copy
|
7
|
+
import warnings
|
8
|
+
import sys
|
9
|
+
import pulumi
|
10
|
+
import pulumi.runtime
|
11
|
+
from typing import Any, Mapping, Optional, Sequence, Union, overload
|
12
|
+
if sys.version_info >= (3, 11):
|
13
|
+
from typing import NotRequired, TypedDict, TypeAlias
|
14
|
+
else:
|
15
|
+
from typing_extensions import NotRequired, TypedDict, TypeAlias
|
16
|
+
from .. import _utilities
|
17
|
+
|
18
|
+
__all__ = ['ControlPlaneAccessArgs', 'ControlPlaneAccess']
|
19
|
+
|
20
|
+
@pulumi.input_type
|
21
|
+
class ControlPlaneAccessArgs:
|
22
|
+
def __init__(__self__, *,
|
23
|
+
analytics_publisher_identities: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
|
24
|
+
name: Optional[pulumi.Input[builtins.str]] = None,
|
25
|
+
synchronizer_identities: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None):
|
26
|
+
"""
|
27
|
+
The set of arguments for constructing a ControlPlaneAccess resource.
|
28
|
+
:param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] analytics_publisher_identities: Array of service accounts authorized to publish analytics data to the control plane, each specified using the following format: `serviceAccount:service-account-name`.
|
29
|
+
The `service-account-name` is formatted like an email address. For example: serviceAccount@my_project_id.iam.gserviceaccount.com
|
30
|
+
You might specify multiple service accounts, for example, if you have multiple environments and wish to assign a unique service account to each one.
|
31
|
+
:param pulumi.Input[builtins.str] name: Name of the Apigee organization.
|
32
|
+
|
33
|
+
|
34
|
+
- - -
|
35
|
+
:param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] synchronizer_identities: Array of service accounts to grant access to control plane resources (for the Synchronizer component), each specified using the following format: `serviceAccount:service-account-name`.
|
36
|
+
The `service-account-name` is formatted like an email address. For example: serviceAccount@my_project_id.iam.gserviceaccount.com
|
37
|
+
You might specify multiple service accounts, for example, if you have multiple environments and wish to assign a unique service account to each one.
|
38
|
+
The service accounts must have **Apigee Synchronizer Manager** role. See also [Create service accounts](https://cloud.google.com/apigee/docs/hybrid/v1.8/sa-about#create-the-service-accounts).
|
39
|
+
"""
|
40
|
+
if analytics_publisher_identities is not None:
|
41
|
+
pulumi.set(__self__, "analytics_publisher_identities", analytics_publisher_identities)
|
42
|
+
if name is not None:
|
43
|
+
pulumi.set(__self__, "name", name)
|
44
|
+
if synchronizer_identities is not None:
|
45
|
+
pulumi.set(__self__, "synchronizer_identities", synchronizer_identities)
|
46
|
+
|
47
|
+
@property
|
48
|
+
@pulumi.getter(name="analyticsPublisherIdentities")
|
49
|
+
def analytics_publisher_identities(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
|
50
|
+
"""
|
51
|
+
Array of service accounts authorized to publish analytics data to the control plane, each specified using the following format: `serviceAccount:service-account-name`.
|
52
|
+
The `service-account-name` is formatted like an email address. For example: serviceAccount@my_project_id.iam.gserviceaccount.com
|
53
|
+
You might specify multiple service accounts, for example, if you have multiple environments and wish to assign a unique service account to each one.
|
54
|
+
"""
|
55
|
+
return pulumi.get(self, "analytics_publisher_identities")
|
56
|
+
|
57
|
+
@analytics_publisher_identities.setter
|
58
|
+
def analytics_publisher_identities(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
|
59
|
+
pulumi.set(self, "analytics_publisher_identities", value)
|
60
|
+
|
61
|
+
@property
|
62
|
+
@pulumi.getter
|
63
|
+
def name(self) -> Optional[pulumi.Input[builtins.str]]:
|
64
|
+
"""
|
65
|
+
Name of the Apigee organization.
|
66
|
+
|
67
|
+
|
68
|
+
- - -
|
69
|
+
"""
|
70
|
+
return pulumi.get(self, "name")
|
71
|
+
|
72
|
+
@name.setter
|
73
|
+
def name(self, value: Optional[pulumi.Input[builtins.str]]):
|
74
|
+
pulumi.set(self, "name", value)
|
75
|
+
|
76
|
+
@property
|
77
|
+
@pulumi.getter(name="synchronizerIdentities")
|
78
|
+
def synchronizer_identities(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
|
79
|
+
"""
|
80
|
+
Array of service accounts to grant access to control plane resources (for the Synchronizer component), each specified using the following format: `serviceAccount:service-account-name`.
|
81
|
+
The `service-account-name` is formatted like an email address. For example: serviceAccount@my_project_id.iam.gserviceaccount.com
|
82
|
+
You might specify multiple service accounts, for example, if you have multiple environments and wish to assign a unique service account to each one.
|
83
|
+
The service accounts must have **Apigee Synchronizer Manager** role. See also [Create service accounts](https://cloud.google.com/apigee/docs/hybrid/v1.8/sa-about#create-the-service-accounts).
|
84
|
+
"""
|
85
|
+
return pulumi.get(self, "synchronizer_identities")
|
86
|
+
|
87
|
+
@synchronizer_identities.setter
|
88
|
+
def synchronizer_identities(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
|
89
|
+
pulumi.set(self, "synchronizer_identities", value)
|
90
|
+
|
91
|
+
|
92
|
+
@pulumi.input_type
|
93
|
+
class _ControlPlaneAccessState:
|
94
|
+
def __init__(__self__, *,
|
95
|
+
analytics_publisher_identities: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
|
96
|
+
name: Optional[pulumi.Input[builtins.str]] = None,
|
97
|
+
synchronizer_identities: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None):
|
98
|
+
"""
|
99
|
+
Input properties used for looking up and filtering ControlPlaneAccess resources.
|
100
|
+
:param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] analytics_publisher_identities: Array of service accounts authorized to publish analytics data to the control plane, each specified using the following format: `serviceAccount:service-account-name`.
|
101
|
+
The `service-account-name` is formatted like an email address. For example: serviceAccount@my_project_id.iam.gserviceaccount.com
|
102
|
+
You might specify multiple service accounts, for example, if you have multiple environments and wish to assign a unique service account to each one.
|
103
|
+
:param pulumi.Input[builtins.str] name: Name of the Apigee organization.
|
104
|
+
|
105
|
+
|
106
|
+
- - -
|
107
|
+
:param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] synchronizer_identities: Array of service accounts to grant access to control plane resources (for the Synchronizer component), each specified using the following format: `serviceAccount:service-account-name`.
|
108
|
+
The `service-account-name` is formatted like an email address. For example: serviceAccount@my_project_id.iam.gserviceaccount.com
|
109
|
+
You might specify multiple service accounts, for example, if you have multiple environments and wish to assign a unique service account to each one.
|
110
|
+
The service accounts must have **Apigee Synchronizer Manager** role. See also [Create service accounts](https://cloud.google.com/apigee/docs/hybrid/v1.8/sa-about#create-the-service-accounts).
|
111
|
+
"""
|
112
|
+
if analytics_publisher_identities is not None:
|
113
|
+
pulumi.set(__self__, "analytics_publisher_identities", analytics_publisher_identities)
|
114
|
+
if name is not None:
|
115
|
+
pulumi.set(__self__, "name", name)
|
116
|
+
if synchronizer_identities is not None:
|
117
|
+
pulumi.set(__self__, "synchronizer_identities", synchronizer_identities)
|
118
|
+
|
119
|
+
@property
|
120
|
+
@pulumi.getter(name="analyticsPublisherIdentities")
|
121
|
+
def analytics_publisher_identities(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
|
122
|
+
"""
|
123
|
+
Array of service accounts authorized to publish analytics data to the control plane, each specified using the following format: `serviceAccount:service-account-name`.
|
124
|
+
The `service-account-name` is formatted like an email address. For example: serviceAccount@my_project_id.iam.gserviceaccount.com
|
125
|
+
You might specify multiple service accounts, for example, if you have multiple environments and wish to assign a unique service account to each one.
|
126
|
+
"""
|
127
|
+
return pulumi.get(self, "analytics_publisher_identities")
|
128
|
+
|
129
|
+
@analytics_publisher_identities.setter
|
130
|
+
def analytics_publisher_identities(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
|
131
|
+
pulumi.set(self, "analytics_publisher_identities", value)
|
132
|
+
|
133
|
+
@property
|
134
|
+
@pulumi.getter
|
135
|
+
def name(self) -> Optional[pulumi.Input[builtins.str]]:
|
136
|
+
"""
|
137
|
+
Name of the Apigee organization.
|
138
|
+
|
139
|
+
|
140
|
+
- - -
|
141
|
+
"""
|
142
|
+
return pulumi.get(self, "name")
|
143
|
+
|
144
|
+
@name.setter
|
145
|
+
def name(self, value: Optional[pulumi.Input[builtins.str]]):
|
146
|
+
pulumi.set(self, "name", value)
|
147
|
+
|
148
|
+
@property
|
149
|
+
@pulumi.getter(name="synchronizerIdentities")
|
150
|
+
def synchronizer_identities(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
|
151
|
+
"""
|
152
|
+
Array of service accounts to grant access to control plane resources (for the Synchronizer component), each specified using the following format: `serviceAccount:service-account-name`.
|
153
|
+
The `service-account-name` is formatted like an email address. For example: serviceAccount@my_project_id.iam.gserviceaccount.com
|
154
|
+
You might specify multiple service accounts, for example, if you have multiple environments and wish to assign a unique service account to each one.
|
155
|
+
The service accounts must have **Apigee Synchronizer Manager** role. See also [Create service accounts](https://cloud.google.com/apigee/docs/hybrid/v1.8/sa-about#create-the-service-accounts).
|
156
|
+
"""
|
157
|
+
return pulumi.get(self, "synchronizer_identities")
|
158
|
+
|
159
|
+
@synchronizer_identities.setter
|
160
|
+
def synchronizer_identities(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
|
161
|
+
pulumi.set(self, "synchronizer_identities", value)
|
162
|
+
|
163
|
+
|
164
|
+
class ControlPlaneAccess(pulumi.CustomResource):
|
165
|
+
@overload
|
166
|
+
def __init__(__self__,
|
167
|
+
resource_name: str,
|
168
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
169
|
+
analytics_publisher_identities: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
|
170
|
+
name: Optional[pulumi.Input[builtins.str]] = None,
|
171
|
+
synchronizer_identities: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
|
172
|
+
__props__=None):
|
173
|
+
"""
|
174
|
+
Authorize the Runtime components to access directly with Apigee Control Plane.
|
175
|
+
|
176
|
+
To get more information about ControlPlaneAccess, see:
|
177
|
+
|
178
|
+
* [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations/updateControlPlaneAccess)
|
179
|
+
* How-to Guides
|
180
|
+
* [Enable ControlPlane access](https://cloud.google.com/apigee/docs/hybrid/v1.14/install-enable-control-plane-access)
|
181
|
+
|
182
|
+
## Example Usage
|
183
|
+
|
184
|
+
### Apigee Control Plane Access Basic Test
|
185
|
+
|
186
|
+
```python
|
187
|
+
import pulumi
|
188
|
+
import pulumi_gcp as gcp
|
189
|
+
|
190
|
+
project = gcp.organizations.Project("project",
|
191
|
+
project_id="my-project",
|
192
|
+
name="my-project",
|
193
|
+
org_id="123456789",
|
194
|
+
billing_account="000000-0000000-0000000-000000",
|
195
|
+
deletion_policy="DELETE")
|
196
|
+
apigee = gcp.projects.Service("apigee",
|
197
|
+
project=project.project_id,
|
198
|
+
service="apigee.googleapis.com")
|
199
|
+
apigee_org = gcp.apigee.Organization("apigee_org",
|
200
|
+
analytics_region="us-central1",
|
201
|
+
project_id=project.project_id,
|
202
|
+
runtime_type="HYBRID",
|
203
|
+
opts = pulumi.ResourceOptions(depends_on=[apigee]))
|
204
|
+
service_account = gcp.serviceaccount.Account("service_account",
|
205
|
+
account_id="my-account",
|
206
|
+
display_name="Service Account")
|
207
|
+
synchronizer_iam = gcp.projects.IAMMember("synchronizer-iam",
|
208
|
+
project=project.project_id,
|
209
|
+
role="roles/apigee.synchronizerManager",
|
210
|
+
member=service_account.email.apply(lambda email: f"serviceAccount:{email}"))
|
211
|
+
apigee_control_plane_access = gcp.apigee.ControlPlaneAccess("apigee_control_plane_access",
|
212
|
+
name=apigee_org.name,
|
213
|
+
synchronizer_identities=[service_account.email.apply(lambda email: f"serviceAccount:{email}")],
|
214
|
+
analytics_publisher_identities=[service_account.email.apply(lambda email: f"serviceAccount:{email}")])
|
215
|
+
```
|
216
|
+
|
217
|
+
## Import
|
218
|
+
|
219
|
+
ControlPlaneAccess can be imported using any of these accepted formats:
|
220
|
+
|
221
|
+
* `organizations/{{name}}/controlPlaneAccess`
|
222
|
+
|
223
|
+
* `{{name}}`
|
224
|
+
|
225
|
+
When using the `pulumi import` command, ControlPlaneAccess can be imported using one of the formats above. For example:
|
226
|
+
|
227
|
+
```sh
|
228
|
+
$ pulumi import gcp:apigee/controlPlaneAccess:ControlPlaneAccess default organizations/{{name}}/controlPlaneAccess
|
229
|
+
```
|
230
|
+
|
231
|
+
```sh
|
232
|
+
$ pulumi import gcp:apigee/controlPlaneAccess:ControlPlaneAccess default {{name}}
|
233
|
+
```
|
234
|
+
|
235
|
+
:param str resource_name: The name of the resource.
|
236
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
237
|
+
:param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] analytics_publisher_identities: Array of service accounts authorized to publish analytics data to the control plane, each specified using the following format: `serviceAccount:service-account-name`.
|
238
|
+
The `service-account-name` is formatted like an email address. For example: serviceAccount@my_project_id.iam.gserviceaccount.com
|
239
|
+
You might specify multiple service accounts, for example, if you have multiple environments and wish to assign a unique service account to each one.
|
240
|
+
:param pulumi.Input[builtins.str] name: Name of the Apigee organization.
|
241
|
+
|
242
|
+
|
243
|
+
- - -
|
244
|
+
:param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] synchronizer_identities: Array of service accounts to grant access to control plane resources (for the Synchronizer component), each specified using the following format: `serviceAccount:service-account-name`.
|
245
|
+
The `service-account-name` is formatted like an email address. For example: serviceAccount@my_project_id.iam.gserviceaccount.com
|
246
|
+
You might specify multiple service accounts, for example, if you have multiple environments and wish to assign a unique service account to each one.
|
247
|
+
The service accounts must have **Apigee Synchronizer Manager** role. See also [Create service accounts](https://cloud.google.com/apigee/docs/hybrid/v1.8/sa-about#create-the-service-accounts).
|
248
|
+
"""
|
249
|
+
...
|
250
|
+
@overload
|
251
|
+
def __init__(__self__,
|
252
|
+
resource_name: str,
|
253
|
+
args: Optional[ControlPlaneAccessArgs] = None,
|
254
|
+
opts: Optional[pulumi.ResourceOptions] = None):
|
255
|
+
"""
|
256
|
+
Authorize the Runtime components to access directly with Apigee Control Plane.
|
257
|
+
|
258
|
+
To get more information about ControlPlaneAccess, see:
|
259
|
+
|
260
|
+
* [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations/updateControlPlaneAccess)
|
261
|
+
* How-to Guides
|
262
|
+
* [Enable ControlPlane access](https://cloud.google.com/apigee/docs/hybrid/v1.14/install-enable-control-plane-access)
|
263
|
+
|
264
|
+
## Example Usage
|
265
|
+
|
266
|
+
### Apigee Control Plane Access Basic Test
|
267
|
+
|
268
|
+
```python
|
269
|
+
import pulumi
|
270
|
+
import pulumi_gcp as gcp
|
271
|
+
|
272
|
+
project = gcp.organizations.Project("project",
|
273
|
+
project_id="my-project",
|
274
|
+
name="my-project",
|
275
|
+
org_id="123456789",
|
276
|
+
billing_account="000000-0000000-0000000-000000",
|
277
|
+
deletion_policy="DELETE")
|
278
|
+
apigee = gcp.projects.Service("apigee",
|
279
|
+
project=project.project_id,
|
280
|
+
service="apigee.googleapis.com")
|
281
|
+
apigee_org = gcp.apigee.Organization("apigee_org",
|
282
|
+
analytics_region="us-central1",
|
283
|
+
project_id=project.project_id,
|
284
|
+
runtime_type="HYBRID",
|
285
|
+
opts = pulumi.ResourceOptions(depends_on=[apigee]))
|
286
|
+
service_account = gcp.serviceaccount.Account("service_account",
|
287
|
+
account_id="my-account",
|
288
|
+
display_name="Service Account")
|
289
|
+
synchronizer_iam = gcp.projects.IAMMember("synchronizer-iam",
|
290
|
+
project=project.project_id,
|
291
|
+
role="roles/apigee.synchronizerManager",
|
292
|
+
member=service_account.email.apply(lambda email: f"serviceAccount:{email}"))
|
293
|
+
apigee_control_plane_access = gcp.apigee.ControlPlaneAccess("apigee_control_plane_access",
|
294
|
+
name=apigee_org.name,
|
295
|
+
synchronizer_identities=[service_account.email.apply(lambda email: f"serviceAccount:{email}")],
|
296
|
+
analytics_publisher_identities=[service_account.email.apply(lambda email: f"serviceAccount:{email}")])
|
297
|
+
```
|
298
|
+
|
299
|
+
## Import
|
300
|
+
|
301
|
+
ControlPlaneAccess can be imported using any of these accepted formats:
|
302
|
+
|
303
|
+
* `organizations/{{name}}/controlPlaneAccess`
|
304
|
+
|
305
|
+
* `{{name}}`
|
306
|
+
|
307
|
+
When using the `pulumi import` command, ControlPlaneAccess can be imported using one of the formats above. For example:
|
308
|
+
|
309
|
+
```sh
|
310
|
+
$ pulumi import gcp:apigee/controlPlaneAccess:ControlPlaneAccess default organizations/{{name}}/controlPlaneAccess
|
311
|
+
```
|
312
|
+
|
313
|
+
```sh
|
314
|
+
$ pulumi import gcp:apigee/controlPlaneAccess:ControlPlaneAccess default {{name}}
|
315
|
+
```
|
316
|
+
|
317
|
+
:param str resource_name: The name of the resource.
|
318
|
+
:param ControlPlaneAccessArgs args: The arguments to use to populate this resource's properties.
|
319
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
320
|
+
"""
|
321
|
+
...
|
322
|
+
def __init__(__self__, resource_name: str, *args, **kwargs):
|
323
|
+
resource_args, opts = _utilities.get_resource_args_opts(ControlPlaneAccessArgs, pulumi.ResourceOptions, *args, **kwargs)
|
324
|
+
if resource_args is not None:
|
325
|
+
__self__._internal_init(resource_name, opts, **resource_args.__dict__)
|
326
|
+
else:
|
327
|
+
__self__._internal_init(resource_name, *args, **kwargs)
|
328
|
+
|
329
|
+
def _internal_init(__self__,
|
330
|
+
resource_name: str,
|
331
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
332
|
+
analytics_publisher_identities: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
|
333
|
+
name: Optional[pulumi.Input[builtins.str]] = None,
|
334
|
+
synchronizer_identities: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
|
335
|
+
__props__=None):
|
336
|
+
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
|
337
|
+
if not isinstance(opts, pulumi.ResourceOptions):
|
338
|
+
raise TypeError('Expected resource options to be a ResourceOptions instance')
|
339
|
+
if opts.id is None:
|
340
|
+
if __props__ is not None:
|
341
|
+
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
|
342
|
+
__props__ = ControlPlaneAccessArgs.__new__(ControlPlaneAccessArgs)
|
343
|
+
|
344
|
+
__props__.__dict__["analytics_publisher_identities"] = analytics_publisher_identities
|
345
|
+
__props__.__dict__["name"] = name
|
346
|
+
__props__.__dict__["synchronizer_identities"] = synchronizer_identities
|
347
|
+
super(ControlPlaneAccess, __self__).__init__(
|
348
|
+
'gcp:apigee/controlPlaneAccess:ControlPlaneAccess',
|
349
|
+
resource_name,
|
350
|
+
__props__,
|
351
|
+
opts)
|
352
|
+
|
353
|
+
@staticmethod
|
354
|
+
def get(resource_name: str,
|
355
|
+
id: pulumi.Input[str],
|
356
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
357
|
+
analytics_publisher_identities: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
|
358
|
+
name: Optional[pulumi.Input[builtins.str]] = None,
|
359
|
+
synchronizer_identities: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None) -> 'ControlPlaneAccess':
|
360
|
+
"""
|
361
|
+
Get an existing ControlPlaneAccess resource's state with the given name, id, and optional extra
|
362
|
+
properties used to qualify the lookup.
|
363
|
+
|
364
|
+
:param str resource_name: The unique name of the resulting resource.
|
365
|
+
:param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
|
366
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
367
|
+
:param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] analytics_publisher_identities: Array of service accounts authorized to publish analytics data to the control plane, each specified using the following format: `serviceAccount:service-account-name`.
|
368
|
+
The `service-account-name` is formatted like an email address. For example: serviceAccount@my_project_id.iam.gserviceaccount.com
|
369
|
+
You might specify multiple service accounts, for example, if you have multiple environments and wish to assign a unique service account to each one.
|
370
|
+
:param pulumi.Input[builtins.str] name: Name of the Apigee organization.
|
371
|
+
|
372
|
+
|
373
|
+
- - -
|
374
|
+
:param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] synchronizer_identities: Array of service accounts to grant access to control plane resources (for the Synchronizer component), each specified using the following format: `serviceAccount:service-account-name`.
|
375
|
+
The `service-account-name` is formatted like an email address. For example: serviceAccount@my_project_id.iam.gserviceaccount.com
|
376
|
+
You might specify multiple service accounts, for example, if you have multiple environments and wish to assign a unique service account to each one.
|
377
|
+
The service accounts must have **Apigee Synchronizer Manager** role. See also [Create service accounts](https://cloud.google.com/apigee/docs/hybrid/v1.8/sa-about#create-the-service-accounts).
|
378
|
+
"""
|
379
|
+
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
|
380
|
+
|
381
|
+
__props__ = _ControlPlaneAccessState.__new__(_ControlPlaneAccessState)
|
382
|
+
|
383
|
+
__props__.__dict__["analytics_publisher_identities"] = analytics_publisher_identities
|
384
|
+
__props__.__dict__["name"] = name
|
385
|
+
__props__.__dict__["synchronizer_identities"] = synchronizer_identities
|
386
|
+
return ControlPlaneAccess(resource_name, opts=opts, __props__=__props__)
|
387
|
+
|
388
|
+
@property
|
389
|
+
@pulumi.getter(name="analyticsPublisherIdentities")
|
390
|
+
def analytics_publisher_identities(self) -> pulumi.Output[Optional[Sequence[builtins.str]]]:
|
391
|
+
"""
|
392
|
+
Array of service accounts authorized to publish analytics data to the control plane, each specified using the following format: `serviceAccount:service-account-name`.
|
393
|
+
The `service-account-name` is formatted like an email address. For example: serviceAccount@my_project_id.iam.gserviceaccount.com
|
394
|
+
You might specify multiple service accounts, for example, if you have multiple environments and wish to assign a unique service account to each one.
|
395
|
+
"""
|
396
|
+
return pulumi.get(self, "analytics_publisher_identities")
|
397
|
+
|
398
|
+
@property
|
399
|
+
@pulumi.getter
|
400
|
+
def name(self) -> pulumi.Output[builtins.str]:
|
401
|
+
"""
|
402
|
+
Name of the Apigee organization.
|
403
|
+
|
404
|
+
|
405
|
+
- - -
|
406
|
+
"""
|
407
|
+
return pulumi.get(self, "name")
|
408
|
+
|
409
|
+
@property
|
410
|
+
@pulumi.getter(name="synchronizerIdentities")
|
411
|
+
def synchronizer_identities(self) -> pulumi.Output[Optional[Sequence[builtins.str]]]:
|
412
|
+
"""
|
413
|
+
Array of service accounts to grant access to control plane resources (for the Synchronizer component), each specified using the following format: `serviceAccount:service-account-name`.
|
414
|
+
The `service-account-name` is formatted like an email address. For example: serviceAccount@my_project_id.iam.gserviceaccount.com
|
415
|
+
You might specify multiple service accounts, for example, if you have multiple environments and wish to assign a unique service account to each one.
|
416
|
+
The service accounts must have **Apigee Synchronizer Manager** role. See also [Create service accounts](https://cloud.google.com/apigee/docs/hybrid/v1.8/sa-about#create-the-service-accounts).
|
417
|
+
"""
|
418
|
+
return pulumi.get(self, "synchronizer_identities")
|
419
|
+
|