pulumi-gcp 7.34.0a1722421695__py3-none-any.whl → 7.35.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.

Potentially problematic release.


This version of pulumi-gcp might be problematic. Click here for more details.

Files changed (96) hide show
  1. pulumi_gcp/__init__.py +40 -0
  2. pulumi_gcp/accesscontextmanager/_inputs.py +12 -3
  3. pulumi_gcp/accesscontextmanager/access_policy.py +18 -18
  4. pulumi_gcp/accesscontextmanager/outputs.py +8 -2
  5. pulumi_gcp/alloydb/_inputs.py +174 -0
  6. pulumi_gcp/alloydb/instance.py +54 -0
  7. pulumi_gcp/alloydb/outputs.py +133 -0
  8. pulumi_gcp/apigee/__init__.py +2 -0
  9. pulumi_gcp/apigee/environment_keyvaluemaps.py +370 -0
  10. pulumi_gcp/apigee/environment_keyvaluemaps_entries.py +440 -0
  11. pulumi_gcp/apigee/instance.py +2 -2
  12. pulumi_gcp/apigee/nat_address.py +2 -2
  13. pulumi_gcp/apigee/organization.py +4 -4
  14. pulumi_gcp/apphub/service_project_attachment.py +11 -11
  15. pulumi_gcp/bigquery/_inputs.py +36 -0
  16. pulumi_gcp/bigquery/app_profile.py +54 -0
  17. pulumi_gcp/bigquery/data_transfer_config.py +52 -0
  18. pulumi_gcp/bigquery/outputs.py +38 -0
  19. pulumi_gcp/bigquery/reservation.py +34 -4
  20. pulumi_gcp/bigquery/table.py +65 -21
  21. pulumi_gcp/bigtable/table.py +27 -26
  22. pulumi_gcp/certificateauthority/authority.py +4 -4
  23. pulumi_gcp/cloudfunctions/function.py +47 -0
  24. pulumi_gcp/cloudfunctions/get_function.py +11 -1
  25. pulumi_gcp/cloudfunctionsv2/function.py +2 -2
  26. pulumi_gcp/cloudrun/_inputs.py +24 -21
  27. pulumi_gcp/cloudrun/outputs.py +20 -24
  28. pulumi_gcp/cloudrunv2/_inputs.py +3 -0
  29. pulumi_gcp/cloudrunv2/outputs.py +4 -0
  30. pulumi_gcp/compute/__init__.py +2 -0
  31. pulumi_gcp/compute/_inputs.py +2358 -353
  32. pulumi_gcp/compute/backend_service.py +6 -0
  33. pulumi_gcp/compute/disk.py +75 -0
  34. pulumi_gcp/compute/get_disk.py +11 -1
  35. pulumi_gcp/compute/get_hc_vpn_gateway.py +11 -1
  36. pulumi_gcp/compute/get_instance_template.py +2 -2
  37. pulumi_gcp/compute/get_region_instance_template.py +2 -2
  38. pulumi_gcp/compute/get_snapshot.py +2 -2
  39. pulumi_gcp/compute/ha_vpn_gateway.py +68 -7
  40. pulumi_gcp/compute/outputs.py +1490 -31
  41. pulumi_gcp/compute/public_advertised_prefix.py +30 -2
  42. pulumi_gcp/compute/resize_request.py +782 -0
  43. pulumi_gcp/compute/router_peer.py +437 -0
  44. pulumi_gcp/compute/router_route_policy.py +616 -0
  45. pulumi_gcp/compute/service_attachment.py +7 -14
  46. pulumi_gcp/container/_inputs.py +218 -21
  47. pulumi_gcp/container/node_pool.py +0 -14
  48. pulumi_gcp/container/outputs.py +228 -14
  49. pulumi_gcp/databasemigrationservice/private_connection.py +10 -6
  50. pulumi_gcp/dataloss/_inputs.py +707 -21
  51. pulumi_gcp/dataloss/outputs.py +588 -14
  52. pulumi_gcp/datastore/data_store_index.py +24 -12
  53. pulumi_gcp/datastream/_inputs.py +83 -3
  54. pulumi_gcp/datastream/outputs.py +51 -3
  55. pulumi_gcp/datastream/stream.py +170 -0
  56. pulumi_gcp/firebase/database_instance.py +8 -8
  57. pulumi_gcp/firebase/hosting_site.py +8 -8
  58. pulumi_gcp/firebase/project.py +10 -2
  59. pulumi_gcp/firestore/index.py +10 -10
  60. pulumi_gcp/gkeonprem/_inputs.py +78 -78
  61. pulumi_gcp/gkeonprem/outputs.py +52 -52
  62. pulumi_gcp/iap/client.py +4 -4
  63. pulumi_gcp/integrationconnectors/_inputs.py +30 -30
  64. pulumi_gcp/integrationconnectors/outputs.py +20 -20
  65. pulumi_gcp/kms/key_handle.py +7 -7
  66. pulumi_gcp/migrationcenter/_inputs.py +21 -129
  67. pulumi_gcp/migrationcenter/outputs.py +14 -86
  68. pulumi_gcp/netapp/volume.py +1 -1
  69. pulumi_gcp/networkconnectivity/_inputs.py +3 -6
  70. pulumi_gcp/networkconnectivity/hub.py +129 -49
  71. pulumi_gcp/networkconnectivity/outputs.py +2 -4
  72. pulumi_gcp/networkconnectivity/spoke.py +159 -104
  73. pulumi_gcp/networksecurity/tls_inspection_policy.py +2 -2
  74. pulumi_gcp/organizations/project.py +16 -7
  75. pulumi_gcp/orgpolicy/policy.py +4 -4
  76. pulumi_gcp/projects/get_project_service.py +11 -1
  77. pulumi_gcp/projects/service.py +68 -0
  78. pulumi_gcp/projects/service_identity.py +30 -2
  79. pulumi_gcp/pubsub/subscription.py +6 -6
  80. pulumi_gcp/pulumi-plugin.json +1 -1
  81. pulumi_gcp/securesourcemanager/instance.py +528 -4
  82. pulumi_gcp/securitycenter/__init__.py +1 -0
  83. pulumi_gcp/securitycenter/v2_organization_mute_config.py +673 -0
  84. pulumi_gcp/sql/_inputs.py +35 -15
  85. pulumi_gcp/sql/database_instance.py +2 -2
  86. pulumi_gcp/sql/outputs.py +50 -14
  87. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  88. pulumi_gcp/vmwareengine/get_private_cloud.py +21 -1
  89. pulumi_gcp/vmwareengine/private_cloud.py +121 -2
  90. pulumi_gcp/workbench/_inputs.py +77 -0
  91. pulumi_gcp/workbench/instance.py +18 -4
  92. pulumi_gcp/workbench/outputs.py +67 -1
  93. {pulumi_gcp-7.34.0a1722421695.dist-info → pulumi_gcp-7.35.0.dist-info}/METADATA +1 -1
  94. {pulumi_gcp-7.34.0a1722421695.dist-info → pulumi_gcp-7.35.0.dist-info}/RECORD +96 -91
  95. {pulumi_gcp-7.34.0a1722421695.dist-info → pulumi_gcp-7.35.0.dist-info}/WHEEL +0 -0
  96. {pulumi_gcp-7.34.0a1722421695.dist-info → pulumi_gcp-7.35.0.dist-info}/top_level.txt +0 -0
@@ -47,6 +47,7 @@ __all__ = [
47
47
  'InstanceMachineConfig',
48
48
  'InstanceNetworkConfig',
49
49
  'InstanceNetworkConfigAuthorizedExternalNetwork',
50
+ 'InstanceObservabilityConfig',
50
51
  'InstancePscInstanceConfig',
51
52
  'InstanceQueryInsightsConfig',
52
53
  'InstanceReadPoolConfig',
@@ -1575,6 +1576,138 @@ class InstanceNetworkConfigAuthorizedExternalNetwork(dict):
1575
1576
  return pulumi.get(self, "cidr_range")
1576
1577
 
1577
1578
 
1579
+ @pulumi.output_type
1580
+ class InstanceObservabilityConfig(dict):
1581
+ @staticmethod
1582
+ def __key_warning(key: str):
1583
+ suggest = None
1584
+ if key == "maxQueryStringLength":
1585
+ suggest = "max_query_string_length"
1586
+ elif key == "preserveComments":
1587
+ suggest = "preserve_comments"
1588
+ elif key == "queryPlansPerMinute":
1589
+ suggest = "query_plans_per_minute"
1590
+ elif key == "recordApplicationTags":
1591
+ suggest = "record_application_tags"
1592
+ elif key == "trackActiveQueries":
1593
+ suggest = "track_active_queries"
1594
+ elif key == "trackWaitEventTypes":
1595
+ suggest = "track_wait_event_types"
1596
+ elif key == "trackWaitEvents":
1597
+ suggest = "track_wait_events"
1598
+
1599
+ if suggest:
1600
+ pulumi.log.warn(f"Key '{key}' not found in InstanceObservabilityConfig. Access the value via the '{suggest}' property getter instead.")
1601
+
1602
+ def __getitem__(self, key: str) -> Any:
1603
+ InstanceObservabilityConfig.__key_warning(key)
1604
+ return super().__getitem__(key)
1605
+
1606
+ def get(self, key: str, default = None) -> Any:
1607
+ InstanceObservabilityConfig.__key_warning(key)
1608
+ return super().get(key, default)
1609
+
1610
+ def __init__(__self__, *,
1611
+ enabled: Optional[bool] = None,
1612
+ max_query_string_length: Optional[int] = None,
1613
+ preserve_comments: Optional[bool] = None,
1614
+ query_plans_per_minute: Optional[int] = None,
1615
+ record_application_tags: Optional[bool] = None,
1616
+ track_active_queries: Optional[bool] = None,
1617
+ track_wait_event_types: Optional[bool] = None,
1618
+ track_wait_events: Optional[bool] = None):
1619
+ """
1620
+ :param bool enabled: Observability feature status for an instance.
1621
+ :param int max_query_string_length: Query string length. The default value is 10240. Any integer between 1024 and 100000 is considered valid.
1622
+ :param bool preserve_comments: Preserve comments in the query string.
1623
+ :param int query_plans_per_minute: Number of query execution plans captured by Insights per minute for all queries combined. The default value is 5. Any integer between 0 and 200 is considered valid.
1624
+ :param bool record_application_tags: Record application tags for an instance. This flag is turned "on" by default.
1625
+ :param bool track_active_queries: Track actively running queries. If not set, default value is "off".
1626
+ :param bool track_wait_event_types: Record wait event types during query execution for an instance.
1627
+ :param bool track_wait_events: Record wait events during query execution for an instance.
1628
+ """
1629
+ if enabled is not None:
1630
+ pulumi.set(__self__, "enabled", enabled)
1631
+ if max_query_string_length is not None:
1632
+ pulumi.set(__self__, "max_query_string_length", max_query_string_length)
1633
+ if preserve_comments is not None:
1634
+ pulumi.set(__self__, "preserve_comments", preserve_comments)
1635
+ if query_plans_per_minute is not None:
1636
+ pulumi.set(__self__, "query_plans_per_minute", query_plans_per_minute)
1637
+ if record_application_tags is not None:
1638
+ pulumi.set(__self__, "record_application_tags", record_application_tags)
1639
+ if track_active_queries is not None:
1640
+ pulumi.set(__self__, "track_active_queries", track_active_queries)
1641
+ if track_wait_event_types is not None:
1642
+ pulumi.set(__self__, "track_wait_event_types", track_wait_event_types)
1643
+ if track_wait_events is not None:
1644
+ pulumi.set(__self__, "track_wait_events", track_wait_events)
1645
+
1646
+ @property
1647
+ @pulumi.getter
1648
+ def enabled(self) -> Optional[bool]:
1649
+ """
1650
+ Observability feature status for an instance.
1651
+ """
1652
+ return pulumi.get(self, "enabled")
1653
+
1654
+ @property
1655
+ @pulumi.getter(name="maxQueryStringLength")
1656
+ def max_query_string_length(self) -> Optional[int]:
1657
+ """
1658
+ Query string length. The default value is 10240. Any integer between 1024 and 100000 is considered valid.
1659
+ """
1660
+ return pulumi.get(self, "max_query_string_length")
1661
+
1662
+ @property
1663
+ @pulumi.getter(name="preserveComments")
1664
+ def preserve_comments(self) -> Optional[bool]:
1665
+ """
1666
+ Preserve comments in the query string.
1667
+ """
1668
+ return pulumi.get(self, "preserve_comments")
1669
+
1670
+ @property
1671
+ @pulumi.getter(name="queryPlansPerMinute")
1672
+ def query_plans_per_minute(self) -> Optional[int]:
1673
+ """
1674
+ Number of query execution plans captured by Insights per minute for all queries combined. The default value is 5. Any integer between 0 and 200 is considered valid.
1675
+ """
1676
+ return pulumi.get(self, "query_plans_per_minute")
1677
+
1678
+ @property
1679
+ @pulumi.getter(name="recordApplicationTags")
1680
+ def record_application_tags(self) -> Optional[bool]:
1681
+ """
1682
+ Record application tags for an instance. This flag is turned "on" by default.
1683
+ """
1684
+ return pulumi.get(self, "record_application_tags")
1685
+
1686
+ @property
1687
+ @pulumi.getter(name="trackActiveQueries")
1688
+ def track_active_queries(self) -> Optional[bool]:
1689
+ """
1690
+ Track actively running queries. If not set, default value is "off".
1691
+ """
1692
+ return pulumi.get(self, "track_active_queries")
1693
+
1694
+ @property
1695
+ @pulumi.getter(name="trackWaitEventTypes")
1696
+ def track_wait_event_types(self) -> Optional[bool]:
1697
+ """
1698
+ Record wait event types during query execution for an instance.
1699
+ """
1700
+ return pulumi.get(self, "track_wait_event_types")
1701
+
1702
+ @property
1703
+ @pulumi.getter(name="trackWaitEvents")
1704
+ def track_wait_events(self) -> Optional[bool]:
1705
+ """
1706
+ Record wait events during query execution for an instance.
1707
+ """
1708
+ return pulumi.get(self, "track_wait_events")
1709
+
1710
+
1578
1711
  @pulumi.output_type
1579
1712
  class InstancePscInstanceConfig(dict):
1580
1713
  @staticmethod
@@ -15,6 +15,8 @@ from .environment import *
15
15
  from .environment_iam_binding import *
16
16
  from .environment_iam_member import *
17
17
  from .environment_iam_policy import *
18
+ from .environment_keyvaluemaps import *
19
+ from .environment_keyvaluemaps_entries import *
18
20
  from .flowhook import *
19
21
  from .get_environment_iam_policy import *
20
22
  from .instance import *
@@ -0,0 +1,370 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from .. import _utilities
16
+
17
+ __all__ = ['EnvironmentKeyvaluemapsArgs', 'EnvironmentKeyvaluemaps']
18
+
19
+ @pulumi.input_type
20
+ class EnvironmentKeyvaluemapsArgs:
21
+ def __init__(__self__, *,
22
+ env_id: pulumi.Input[str],
23
+ name: Optional[pulumi.Input[str]] = None):
24
+ """
25
+ The set of arguments for constructing a EnvironmentKeyvaluemaps resource.
26
+ :param pulumi.Input[str] env_id: The Apigee environment group associated with the Apigee environment,
27
+ in the format `organizations/{{org_name}}/environments/{{env_name}}`.
28
+
29
+
30
+ - - -
31
+ :param pulumi.Input[str] name: Required. ID of the key value map.
32
+ """
33
+ pulumi.set(__self__, "env_id", env_id)
34
+ if name is not None:
35
+ pulumi.set(__self__, "name", name)
36
+
37
+ @property
38
+ @pulumi.getter(name="envId")
39
+ def env_id(self) -> pulumi.Input[str]:
40
+ """
41
+ The Apigee environment group associated with the Apigee environment,
42
+ in the format `organizations/{{org_name}}/environments/{{env_name}}`.
43
+
44
+
45
+ - - -
46
+ """
47
+ return pulumi.get(self, "env_id")
48
+
49
+ @env_id.setter
50
+ def env_id(self, value: pulumi.Input[str]):
51
+ pulumi.set(self, "env_id", value)
52
+
53
+ @property
54
+ @pulumi.getter
55
+ def name(self) -> Optional[pulumi.Input[str]]:
56
+ """
57
+ Required. ID of the key value map.
58
+ """
59
+ return pulumi.get(self, "name")
60
+
61
+ @name.setter
62
+ def name(self, value: Optional[pulumi.Input[str]]):
63
+ pulumi.set(self, "name", value)
64
+
65
+
66
+ @pulumi.input_type
67
+ class _EnvironmentKeyvaluemapsState:
68
+ def __init__(__self__, *,
69
+ env_id: Optional[pulumi.Input[str]] = None,
70
+ name: Optional[pulumi.Input[str]] = None):
71
+ """
72
+ Input properties used for looking up and filtering EnvironmentKeyvaluemaps resources.
73
+ :param pulumi.Input[str] env_id: The Apigee environment group associated with the Apigee environment,
74
+ in the format `organizations/{{org_name}}/environments/{{env_name}}`.
75
+
76
+
77
+ - - -
78
+ :param pulumi.Input[str] name: Required. ID of the key value map.
79
+ """
80
+ if env_id is not None:
81
+ pulumi.set(__self__, "env_id", env_id)
82
+ if name is not None:
83
+ pulumi.set(__self__, "name", name)
84
+
85
+ @property
86
+ @pulumi.getter(name="envId")
87
+ def env_id(self) -> Optional[pulumi.Input[str]]:
88
+ """
89
+ The Apigee environment group associated with the Apigee environment,
90
+ in the format `organizations/{{org_name}}/environments/{{env_name}}`.
91
+
92
+
93
+ - - -
94
+ """
95
+ return pulumi.get(self, "env_id")
96
+
97
+ @env_id.setter
98
+ def env_id(self, value: Optional[pulumi.Input[str]]):
99
+ pulumi.set(self, "env_id", value)
100
+
101
+ @property
102
+ @pulumi.getter
103
+ def name(self) -> Optional[pulumi.Input[str]]:
104
+ """
105
+ Required. ID of the key value map.
106
+ """
107
+ return pulumi.get(self, "name")
108
+
109
+ @name.setter
110
+ def name(self, value: Optional[pulumi.Input[str]]):
111
+ pulumi.set(self, "name", value)
112
+
113
+
114
+ class EnvironmentKeyvaluemaps(pulumi.CustomResource):
115
+ @overload
116
+ def __init__(__self__,
117
+ resource_name: str,
118
+ opts: Optional[pulumi.ResourceOptions] = None,
119
+ env_id: Optional[pulumi.Input[str]] = None,
120
+ name: Optional[pulumi.Input[str]] = None,
121
+ __props__=None):
122
+ """
123
+ Collection of key/value string pairs.
124
+
125
+ To get more information about EnvironmentKeyvaluemaps, see:
126
+
127
+ * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.environments.keyvaluemaps/create)
128
+ * How-to Guides
129
+ * [Using key value maps](https://cloud.google.com/apigee/docs/api-platform/cache/key-value-maps)
130
+
131
+ ## Example Usage
132
+
133
+ ### Apigee Environment Keyvaluemaps Basic
134
+
135
+ ```python
136
+ import pulumi
137
+ import pulumi_gcp as gcp
138
+
139
+ current = gcp.organizations.get_client_config()
140
+ apigee_network = gcp.compute.Network("apigee_network", name="apigee-network")
141
+ apigee_range = gcp.compute.GlobalAddress("apigee_range",
142
+ name="apigee-range",
143
+ purpose="VPC_PEERING",
144
+ address_type="INTERNAL",
145
+ prefix_length=16,
146
+ network=apigee_network.id)
147
+ apigee_vpc_connection = gcp.servicenetworking.Connection("apigee_vpc_connection",
148
+ network=apigee_network.id,
149
+ service="servicenetworking.googleapis.com",
150
+ reserved_peering_ranges=[apigee_range.name])
151
+ apigee_org = gcp.apigee.Organization("apigee_org",
152
+ analytics_region="us-central1",
153
+ project_id=current.project,
154
+ authorized_network=apigee_network.id,
155
+ opts = pulumi.ResourceOptions(depends_on=[apigee_vpc_connection]))
156
+ apigee_environment = gcp.apigee.Environment("apigee_environment",
157
+ org_id=apigee_org.id,
158
+ name="tf-test-env",
159
+ description="Apigee Environment",
160
+ display_name="Apigee Environment")
161
+ apigee_instance = gcp.apigee.Instance("apigee_instance",
162
+ name="tf-test-instance",
163
+ location="us-central1",
164
+ org_id=apigee_org.id)
165
+ apigee_instance_attachment = gcp.apigee.InstanceAttachment("apigee_instance_attachment",
166
+ instance_id=apigee_instance.id,
167
+ environment=apigee_environment.name)
168
+ apigee_environment_keyvaluemaps = gcp.apigee.EnvironmentKeyvaluemaps("apigee_environment_keyvaluemaps",
169
+ env_id=apigee_environment.id,
170
+ name="tf-test-env-kvms",
171
+ opts = pulumi.ResourceOptions(depends_on=[
172
+ apigee_org,
173
+ apigee_environment,
174
+ apigee_instance,
175
+ apigee_instance_attachment,
176
+ ]))
177
+ ```
178
+
179
+ ## Import
180
+
181
+ EnvironmentKeyvaluemaps can be imported using any of these accepted formats:
182
+
183
+ * `{{env_id}}/keyvaluemaps/{{name}}`
184
+
185
+ * `{{env_id}}/{{name}}`
186
+
187
+ When using the `pulumi import` command, EnvironmentKeyvaluemaps can be imported using one of the formats above. For example:
188
+
189
+ ```sh
190
+ $ pulumi import gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps default {{env_id}}/keyvaluemaps/{{name}}
191
+ ```
192
+
193
+ ```sh
194
+ $ pulumi import gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps default {{env_id}}/{{name}}
195
+ ```
196
+
197
+ :param str resource_name: The name of the resource.
198
+ :param pulumi.ResourceOptions opts: Options for the resource.
199
+ :param pulumi.Input[str] env_id: The Apigee environment group associated with the Apigee environment,
200
+ in the format `organizations/{{org_name}}/environments/{{env_name}}`.
201
+
202
+
203
+ - - -
204
+ :param pulumi.Input[str] name: Required. ID of the key value map.
205
+ """
206
+ ...
207
+ @overload
208
+ def __init__(__self__,
209
+ resource_name: str,
210
+ args: EnvironmentKeyvaluemapsArgs,
211
+ opts: Optional[pulumi.ResourceOptions] = None):
212
+ """
213
+ Collection of key/value string pairs.
214
+
215
+ To get more information about EnvironmentKeyvaluemaps, see:
216
+
217
+ * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.environments.keyvaluemaps/create)
218
+ * How-to Guides
219
+ * [Using key value maps](https://cloud.google.com/apigee/docs/api-platform/cache/key-value-maps)
220
+
221
+ ## Example Usage
222
+
223
+ ### Apigee Environment Keyvaluemaps Basic
224
+
225
+ ```python
226
+ import pulumi
227
+ import pulumi_gcp as gcp
228
+
229
+ current = gcp.organizations.get_client_config()
230
+ apigee_network = gcp.compute.Network("apigee_network", name="apigee-network")
231
+ apigee_range = gcp.compute.GlobalAddress("apigee_range",
232
+ name="apigee-range",
233
+ purpose="VPC_PEERING",
234
+ address_type="INTERNAL",
235
+ prefix_length=16,
236
+ network=apigee_network.id)
237
+ apigee_vpc_connection = gcp.servicenetworking.Connection("apigee_vpc_connection",
238
+ network=apigee_network.id,
239
+ service="servicenetworking.googleapis.com",
240
+ reserved_peering_ranges=[apigee_range.name])
241
+ apigee_org = gcp.apigee.Organization("apigee_org",
242
+ analytics_region="us-central1",
243
+ project_id=current.project,
244
+ authorized_network=apigee_network.id,
245
+ opts = pulumi.ResourceOptions(depends_on=[apigee_vpc_connection]))
246
+ apigee_environment = gcp.apigee.Environment("apigee_environment",
247
+ org_id=apigee_org.id,
248
+ name="tf-test-env",
249
+ description="Apigee Environment",
250
+ display_name="Apigee Environment")
251
+ apigee_instance = gcp.apigee.Instance("apigee_instance",
252
+ name="tf-test-instance",
253
+ location="us-central1",
254
+ org_id=apigee_org.id)
255
+ apigee_instance_attachment = gcp.apigee.InstanceAttachment("apigee_instance_attachment",
256
+ instance_id=apigee_instance.id,
257
+ environment=apigee_environment.name)
258
+ apigee_environment_keyvaluemaps = gcp.apigee.EnvironmentKeyvaluemaps("apigee_environment_keyvaluemaps",
259
+ env_id=apigee_environment.id,
260
+ name="tf-test-env-kvms",
261
+ opts = pulumi.ResourceOptions(depends_on=[
262
+ apigee_org,
263
+ apigee_environment,
264
+ apigee_instance,
265
+ apigee_instance_attachment,
266
+ ]))
267
+ ```
268
+
269
+ ## Import
270
+
271
+ EnvironmentKeyvaluemaps can be imported using any of these accepted formats:
272
+
273
+ * `{{env_id}}/keyvaluemaps/{{name}}`
274
+
275
+ * `{{env_id}}/{{name}}`
276
+
277
+ When using the `pulumi import` command, EnvironmentKeyvaluemaps can be imported using one of the formats above. For example:
278
+
279
+ ```sh
280
+ $ pulumi import gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps default {{env_id}}/keyvaluemaps/{{name}}
281
+ ```
282
+
283
+ ```sh
284
+ $ pulumi import gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps default {{env_id}}/{{name}}
285
+ ```
286
+
287
+ :param str resource_name: The name of the resource.
288
+ :param EnvironmentKeyvaluemapsArgs args: The arguments to use to populate this resource's properties.
289
+ :param pulumi.ResourceOptions opts: Options for the resource.
290
+ """
291
+ ...
292
+ def __init__(__self__, resource_name: str, *args, **kwargs):
293
+ resource_args, opts = _utilities.get_resource_args_opts(EnvironmentKeyvaluemapsArgs, pulumi.ResourceOptions, *args, **kwargs)
294
+ if resource_args is not None:
295
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
296
+ else:
297
+ __self__._internal_init(resource_name, *args, **kwargs)
298
+
299
+ def _internal_init(__self__,
300
+ resource_name: str,
301
+ opts: Optional[pulumi.ResourceOptions] = None,
302
+ env_id: Optional[pulumi.Input[str]] = None,
303
+ name: Optional[pulumi.Input[str]] = None,
304
+ __props__=None):
305
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
306
+ if not isinstance(opts, pulumi.ResourceOptions):
307
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
308
+ if opts.id is None:
309
+ if __props__ is not None:
310
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
311
+ __props__ = EnvironmentKeyvaluemapsArgs.__new__(EnvironmentKeyvaluemapsArgs)
312
+
313
+ if env_id is None and not opts.urn:
314
+ raise TypeError("Missing required property 'env_id'")
315
+ __props__.__dict__["env_id"] = env_id
316
+ __props__.__dict__["name"] = name
317
+ super(EnvironmentKeyvaluemaps, __self__).__init__(
318
+ 'gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps',
319
+ resource_name,
320
+ __props__,
321
+ opts)
322
+
323
+ @staticmethod
324
+ def get(resource_name: str,
325
+ id: pulumi.Input[str],
326
+ opts: Optional[pulumi.ResourceOptions] = None,
327
+ env_id: Optional[pulumi.Input[str]] = None,
328
+ name: Optional[pulumi.Input[str]] = None) -> 'EnvironmentKeyvaluemaps':
329
+ """
330
+ Get an existing EnvironmentKeyvaluemaps resource's state with the given name, id, and optional extra
331
+ properties used to qualify the lookup.
332
+
333
+ :param str resource_name: The unique name of the resulting resource.
334
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
335
+ :param pulumi.ResourceOptions opts: Options for the resource.
336
+ :param pulumi.Input[str] env_id: The Apigee environment group associated with the Apigee environment,
337
+ in the format `organizations/{{org_name}}/environments/{{env_name}}`.
338
+
339
+
340
+ - - -
341
+ :param pulumi.Input[str] name: Required. ID of the key value map.
342
+ """
343
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
344
+
345
+ __props__ = _EnvironmentKeyvaluemapsState.__new__(_EnvironmentKeyvaluemapsState)
346
+
347
+ __props__.__dict__["env_id"] = env_id
348
+ __props__.__dict__["name"] = name
349
+ return EnvironmentKeyvaluemaps(resource_name, opts=opts, __props__=__props__)
350
+
351
+ @property
352
+ @pulumi.getter(name="envId")
353
+ def env_id(self) -> pulumi.Output[str]:
354
+ """
355
+ The Apigee environment group associated with the Apigee environment,
356
+ in the format `organizations/{{org_name}}/environments/{{env_name}}`.
357
+
358
+
359
+ - - -
360
+ """
361
+ return pulumi.get(self, "env_id")
362
+
363
+ @property
364
+ @pulumi.getter
365
+ def name(self) -> pulumi.Output[str]:
366
+ """
367
+ Required. ID of the key value map.
368
+ """
369
+ return pulumi.get(self, "name")
370
+