pulumi-gcp 7.20.0a1713984378__py3-none-any.whl → 7.21.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.
Files changed (131) hide show
  1. pulumi_gcp/__init__.py +48 -0
  2. pulumi_gcp/alloydb/_inputs.py +74 -0
  3. pulumi_gcp/alloydb/backup.py +0 -12
  4. pulumi_gcp/alloydb/cluster.py +0 -12
  5. pulumi_gcp/alloydb/instance.py +90 -81
  6. pulumi_gcp/alloydb/outputs.py +98 -0
  7. pulumi_gcp/apigee/environment.py +47 -0
  8. pulumi_gcp/apigee/organization.py +162 -0
  9. pulumi_gcp/apigee/sharedflow.py +0 -20
  10. pulumi_gcp/appengine/flexible_app_version.py +0 -20
  11. pulumi_gcp/applicationintegration/__init__.py +1 -0
  12. pulumi_gcp/applicationintegration/_inputs.py +843 -0
  13. pulumi_gcp/applicationintegration/auth_config.py +998 -0
  14. pulumi_gcp/applicationintegration/outputs.py +891 -0
  15. pulumi_gcp/artifactregistry/_inputs.py +186 -0
  16. pulumi_gcp/artifactregistry/outputs.py +297 -4
  17. pulumi_gcp/artifactregistry/repository.py +346 -16
  18. pulumi_gcp/bigquery/table.py +61 -0
  19. pulumi_gcp/bigquerydatapolicy/_inputs.py +21 -4
  20. pulumi_gcp/bigquerydatapolicy/data_policy.py +78 -0
  21. pulumi_gcp/bigquerydatapolicy/outputs.py +16 -3
  22. pulumi_gcp/billing/budget.py +54 -0
  23. pulumi_gcp/certificateauthority/_inputs.py +92 -12
  24. pulumi_gcp/certificateauthority/authority.py +117 -27
  25. pulumi_gcp/certificateauthority/certificate.py +176 -0
  26. pulumi_gcp/certificateauthority/outputs.py +144 -12
  27. pulumi_gcp/cloudbuild/worker_pool.py +0 -12
  28. pulumi_gcp/cloudbuildv2/connection.py +0 -12
  29. pulumi_gcp/cloudbuildv2/repository.py +0 -12
  30. pulumi_gcp/clouddeploy/automation.py +0 -12
  31. pulumi_gcp/clouddeploy/custom_target_type.py +0 -12
  32. pulumi_gcp/clouddeploy/delivery_pipeline.py +0 -12
  33. pulumi_gcp/clouddeploy/target.py +0 -12
  34. pulumi_gcp/cloudfunctionsv2/_inputs.py +16 -0
  35. pulumi_gcp/cloudfunctionsv2/function.py +110 -0
  36. pulumi_gcp/cloudfunctionsv2/outputs.py +25 -0
  37. pulumi_gcp/cloudrunv2/job.py +0 -12
  38. pulumi_gcp/cloudrunv2/service.py +0 -12
  39. pulumi_gcp/composer/__init__.py +1 -0
  40. pulumi_gcp/composer/environment.py +35 -47
  41. pulumi_gcp/composer/user_workloads_secret.py +441 -0
  42. pulumi_gcp/compute/__init__.py +1 -0
  43. pulumi_gcp/compute/_inputs.py +169 -58
  44. pulumi_gcp/compute/forwarding_rule.py +0 -13
  45. pulumi_gcp/compute/get_instance_group_manager.py +11 -1
  46. pulumi_gcp/compute/global_address.py +0 -12
  47. pulumi_gcp/compute/global_forwarding_rule.py +0 -282
  48. pulumi_gcp/compute/instance_from_machine_image.py +14 -46
  49. pulumi_gcp/compute/instance_from_template.py +14 -46
  50. pulumi_gcp/compute/instance_group_manager.py +68 -21
  51. pulumi_gcp/compute/outputs.py +213 -65
  52. pulumi_gcp/compute/region_instance_group_manager.py +61 -14
  53. pulumi_gcp/compute/region_instance_template.py +0 -13
  54. pulumi_gcp/compute/region_target_https_proxy.py +257 -0
  55. pulumi_gcp/compute/region_url_map.py +0 -470
  56. pulumi_gcp/compute/security_policy_rule.py +850 -0
  57. pulumi_gcp/container/attached_cluster.py +0 -12
  58. pulumi_gcp/container/aws_cluster.py +0 -12
  59. pulumi_gcp/container/aws_node_pool.py +0 -12
  60. pulumi_gcp/container/azure_cluster.py +0 -12
  61. pulumi_gcp/container/azure_node_pool.py +0 -12
  62. pulumi_gcp/container/cluster.py +0 -20
  63. pulumi_gcp/container/outputs.py +4 -4
  64. pulumi_gcp/dataflow/flex_template_job.py +0 -39
  65. pulumi_gcp/dataloss/__init__.py +1 -0
  66. pulumi_gcp/dataloss/_inputs.py +1040 -0
  67. pulumi_gcp/dataloss/outputs.py +1123 -0
  68. pulumi_gcp/dataloss/prevention_discovery_config.py +737 -0
  69. pulumi_gcp/dataproc/cluster.py +0 -20
  70. pulumi_gcp/dataproc/workflow_template.py +21 -26
  71. pulumi_gcp/deploymentmanager/deployment.py +0 -34
  72. pulumi_gcp/dns/_inputs.py +2 -130
  73. pulumi_gcp/dns/get_keys.py +1 -1
  74. pulumi_gcp/dns/get_managed_zones.py +3 -9
  75. pulumi_gcp/dns/get_record_set.py +3 -0
  76. pulumi_gcp/dns/outputs.py +36 -58
  77. pulumi_gcp/dns/record_set.py +2 -36
  78. pulumi_gcp/filestore/get_instance.py +11 -1
  79. pulumi_gcp/filestore/instance.py +101 -0
  80. pulumi_gcp/firebase/_inputs.py +16 -0
  81. pulumi_gcp/firebase/android_app.py +0 -27
  82. pulumi_gcp/firebase/app_check_play_integrity_config.py +20 -0
  83. pulumi_gcp/firebase/app_check_recaptcha_enterprise_config.py +10 -0
  84. pulumi_gcp/firebase/app_check_service_config.py +0 -125
  85. pulumi_gcp/firebase/apple_app.py +0 -27
  86. pulumi_gcp/firebase/hosting_custom_domain.py +0 -27
  87. pulumi_gcp/firebase/hosting_version.py +44 -0
  88. pulumi_gcp/firebase/outputs.py +12 -0
  89. pulumi_gcp/firebase/web_app.py +0 -20
  90. pulumi_gcp/firestore/database.py +0 -68
  91. pulumi_gcp/firestore/document.py +4 -4
  92. pulumi_gcp/gkeonprem/bare_metal_admin_cluster.py +0 -12
  93. pulumi_gcp/gkeonprem/bare_metal_cluster.py +0 -12
  94. pulumi_gcp/gkeonprem/bare_metal_node_pool.py +0 -12
  95. pulumi_gcp/gkeonprem/v_mware_cluster.py +0 -12
  96. pulumi_gcp/gkeonprem/v_mware_node_pool.py +0 -12
  97. pulumi_gcp/logging/folder_sink.py +54 -0
  98. pulumi_gcp/logging/organization_sink.py +54 -0
  99. pulumi_gcp/monitoring/_inputs.py +46 -2
  100. pulumi_gcp/monitoring/outputs.py +40 -2
  101. pulumi_gcp/monitoring/uptime_check_config.py +6 -0
  102. pulumi_gcp/netapp/active_directory.py +0 -20
  103. pulumi_gcp/netapp/volume_replication.py +0 -68
  104. pulumi_gcp/networkconnectivity/__init__.py +1 -0
  105. pulumi_gcp/networkconnectivity/internal_range.py +1024 -0
  106. pulumi_gcp/organizations/get_active_folder.py +18 -3
  107. pulumi_gcp/projects/__init__.py +1 -0
  108. pulumi_gcp/projects/iam_member_remove.py +313 -0
  109. pulumi_gcp/provider.py +3 -1
  110. pulumi_gcp/secretmanager/get_secret.py +13 -3
  111. pulumi_gcp/secretmanager/outputs.py +20 -1
  112. pulumi_gcp/secretmanager/secret.py +90 -15
  113. pulumi_gcp/servicenetworking/connection.py +0 -20
  114. pulumi_gcp/spanner/database.py +0 -41
  115. pulumi_gcp/spanner/instance.py +0 -40
  116. pulumi_gcp/storage/__init__.py +1 -0
  117. pulumi_gcp/storage/bucket.py +0 -12
  118. pulumi_gcp/storage/get_bucket_objects.py +153 -0
  119. pulumi_gcp/storage/outputs.py +63 -0
  120. pulumi_gcp/vmwareengine/_inputs.py +63 -5
  121. pulumi_gcp/vmwareengine/get_private_cloud.py +1 -21
  122. pulumi_gcp/vmwareengine/outputs.py +113 -5
  123. pulumi_gcp/vmwareengine/private_cloud.py +0 -94
  124. pulumi_gcp/workbench/instance.py +4 -4
  125. pulumi_gcp/workstations/workstation.py +0 -12
  126. pulumi_gcp/workstations/workstation_cluster.py +32 -12
  127. pulumi_gcp/workstations/workstation_config.py +0 -12
  128. {pulumi_gcp-7.20.0a1713984378.dist-info → pulumi_gcp-7.21.0.dist-info}/METADATA +1 -1
  129. {pulumi_gcp-7.20.0a1713984378.dist-info → pulumi_gcp-7.21.0.dist-info}/RECORD +131 -124
  130. {pulumi_gcp-7.20.0a1713984378.dist-info → pulumi_gcp-7.21.0.dist-info}/WHEEL +0 -0
  131. {pulumi_gcp-7.20.0a1713984378.dist-info → pulumi_gcp-7.21.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1024 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import pulumi
8
+ import pulumi.runtime
9
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
10
+ from .. import _utilities
11
+
12
+ __all__ = ['InternalRangeArgs', 'InternalRange']
13
+
14
+ @pulumi.input_type
15
+ class InternalRangeArgs:
16
+ def __init__(__self__, *,
17
+ network: pulumi.Input[str],
18
+ peering: pulumi.Input[str],
19
+ usage: pulumi.Input[str],
20
+ description: Optional[pulumi.Input[str]] = None,
21
+ ip_cidr_range: Optional[pulumi.Input[str]] = None,
22
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
23
+ name: Optional[pulumi.Input[str]] = None,
24
+ overlaps: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
25
+ prefix_length: Optional[pulumi.Input[int]] = None,
26
+ project: Optional[pulumi.Input[str]] = None,
27
+ target_cidr_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
28
+ """
29
+ The set of arguments for constructing a InternalRange resource.
30
+ :param pulumi.Input[str] network: Fully-qualified URL of the network that this route applies to, for example: projects/my-project/global/networks/my-network.
31
+ :param pulumi.Input[str] peering: The type of peering set for this internal range.
32
+ Possible values are: `FOR_SELF`, `FOR_PEER`, `NOT_SHARED`.
33
+
34
+
35
+ - - -
36
+ :param pulumi.Input[str] usage: The type of usage set for this InternalRange.
37
+ Possible values are: `FOR_VPC`, `EXTERNAL_TO_VPC`.
38
+ :param pulumi.Input[str] description: An optional description of this resource.
39
+ :param pulumi.Input[str] ip_cidr_range: The IP range that this internal range defines.
40
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: User-defined labels.
41
+
42
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
43
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
44
+ :param pulumi.Input[str] name: The name of the policy based route.
45
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] overlaps: Optional. Types of resources that are allowed to overlap with the current internal range.
46
+ Each value may be one of: `OVERLAP_ROUTE_RANGE`, `OVERLAP_EXISTING_SUBNET_RANGE`.
47
+ :param pulumi.Input[int] prefix_length: An alternate to ipCidrRange. Can be set when trying to create a reservation that automatically finds a free range of the given size.
48
+ If both ipCidrRange and prefixLength are set, there is an error if the range sizes do not match. Can also be used during updates to change the range size.
49
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
50
+ If it is not provided, the provider project is used.
51
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] target_cidr_ranges: Optional. Can be set to narrow down or pick a different address space while searching for a free range.
52
+ If not set, defaults to the "10.0.0.0/8" address space. This can be used to search in other rfc-1918 address spaces like "172.16.0.0/12" and "192.168.0.0/16" or non-rfc-1918 address spaces used in the VPC.
53
+ """
54
+ pulumi.set(__self__, "network", network)
55
+ pulumi.set(__self__, "peering", peering)
56
+ pulumi.set(__self__, "usage", usage)
57
+ if description is not None:
58
+ pulumi.set(__self__, "description", description)
59
+ if ip_cidr_range is not None:
60
+ pulumi.set(__self__, "ip_cidr_range", ip_cidr_range)
61
+ if labels is not None:
62
+ pulumi.set(__self__, "labels", labels)
63
+ if name is not None:
64
+ pulumi.set(__self__, "name", name)
65
+ if overlaps is not None:
66
+ pulumi.set(__self__, "overlaps", overlaps)
67
+ if prefix_length is not None:
68
+ pulumi.set(__self__, "prefix_length", prefix_length)
69
+ if project is not None:
70
+ pulumi.set(__self__, "project", project)
71
+ if target_cidr_ranges is not None:
72
+ pulumi.set(__self__, "target_cidr_ranges", target_cidr_ranges)
73
+
74
+ @property
75
+ @pulumi.getter
76
+ def network(self) -> pulumi.Input[str]:
77
+ """
78
+ Fully-qualified URL of the network that this route applies to, for example: projects/my-project/global/networks/my-network.
79
+ """
80
+ return pulumi.get(self, "network")
81
+
82
+ @network.setter
83
+ def network(self, value: pulumi.Input[str]):
84
+ pulumi.set(self, "network", value)
85
+
86
+ @property
87
+ @pulumi.getter
88
+ def peering(self) -> pulumi.Input[str]:
89
+ """
90
+ The type of peering set for this internal range.
91
+ Possible values are: `FOR_SELF`, `FOR_PEER`, `NOT_SHARED`.
92
+
93
+
94
+ - - -
95
+ """
96
+ return pulumi.get(self, "peering")
97
+
98
+ @peering.setter
99
+ def peering(self, value: pulumi.Input[str]):
100
+ pulumi.set(self, "peering", value)
101
+
102
+ @property
103
+ @pulumi.getter
104
+ def usage(self) -> pulumi.Input[str]:
105
+ """
106
+ The type of usage set for this InternalRange.
107
+ Possible values are: `FOR_VPC`, `EXTERNAL_TO_VPC`.
108
+ """
109
+ return pulumi.get(self, "usage")
110
+
111
+ @usage.setter
112
+ def usage(self, value: pulumi.Input[str]):
113
+ pulumi.set(self, "usage", value)
114
+
115
+ @property
116
+ @pulumi.getter
117
+ def description(self) -> Optional[pulumi.Input[str]]:
118
+ """
119
+ An optional description of this resource.
120
+ """
121
+ return pulumi.get(self, "description")
122
+
123
+ @description.setter
124
+ def description(self, value: Optional[pulumi.Input[str]]):
125
+ pulumi.set(self, "description", value)
126
+
127
+ @property
128
+ @pulumi.getter(name="ipCidrRange")
129
+ def ip_cidr_range(self) -> Optional[pulumi.Input[str]]:
130
+ """
131
+ The IP range that this internal range defines.
132
+ """
133
+ return pulumi.get(self, "ip_cidr_range")
134
+
135
+ @ip_cidr_range.setter
136
+ def ip_cidr_range(self, value: Optional[pulumi.Input[str]]):
137
+ pulumi.set(self, "ip_cidr_range", value)
138
+
139
+ @property
140
+ @pulumi.getter
141
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
142
+ """
143
+ User-defined labels.
144
+
145
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
146
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
147
+ """
148
+ return pulumi.get(self, "labels")
149
+
150
+ @labels.setter
151
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
152
+ pulumi.set(self, "labels", value)
153
+
154
+ @property
155
+ @pulumi.getter
156
+ def name(self) -> Optional[pulumi.Input[str]]:
157
+ """
158
+ The name of the policy based route.
159
+ """
160
+ return pulumi.get(self, "name")
161
+
162
+ @name.setter
163
+ def name(self, value: Optional[pulumi.Input[str]]):
164
+ pulumi.set(self, "name", value)
165
+
166
+ @property
167
+ @pulumi.getter
168
+ def overlaps(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
169
+ """
170
+ Optional. Types of resources that are allowed to overlap with the current internal range.
171
+ Each value may be one of: `OVERLAP_ROUTE_RANGE`, `OVERLAP_EXISTING_SUBNET_RANGE`.
172
+ """
173
+ return pulumi.get(self, "overlaps")
174
+
175
+ @overlaps.setter
176
+ def overlaps(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
177
+ pulumi.set(self, "overlaps", value)
178
+
179
+ @property
180
+ @pulumi.getter(name="prefixLength")
181
+ def prefix_length(self) -> Optional[pulumi.Input[int]]:
182
+ """
183
+ An alternate to ipCidrRange. Can be set when trying to create a reservation that automatically finds a free range of the given size.
184
+ If both ipCidrRange and prefixLength are set, there is an error if the range sizes do not match. Can also be used during updates to change the range size.
185
+ """
186
+ return pulumi.get(self, "prefix_length")
187
+
188
+ @prefix_length.setter
189
+ def prefix_length(self, value: Optional[pulumi.Input[int]]):
190
+ pulumi.set(self, "prefix_length", value)
191
+
192
+ @property
193
+ @pulumi.getter
194
+ def project(self) -> Optional[pulumi.Input[str]]:
195
+ """
196
+ The ID of the project in which the resource belongs.
197
+ If it is not provided, the provider project is used.
198
+ """
199
+ return pulumi.get(self, "project")
200
+
201
+ @project.setter
202
+ def project(self, value: Optional[pulumi.Input[str]]):
203
+ pulumi.set(self, "project", value)
204
+
205
+ @property
206
+ @pulumi.getter(name="targetCidrRanges")
207
+ def target_cidr_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
208
+ """
209
+ Optional. Can be set to narrow down or pick a different address space while searching for a free range.
210
+ If not set, defaults to the "10.0.0.0/8" address space. This can be used to search in other rfc-1918 address spaces like "172.16.0.0/12" and "192.168.0.0/16" or non-rfc-1918 address spaces used in the VPC.
211
+ """
212
+ return pulumi.get(self, "target_cidr_ranges")
213
+
214
+ @target_cidr_ranges.setter
215
+ def target_cidr_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
216
+ pulumi.set(self, "target_cidr_ranges", value)
217
+
218
+
219
+ @pulumi.input_type
220
+ class _InternalRangeState:
221
+ def __init__(__self__, *,
222
+ description: Optional[pulumi.Input[str]] = None,
223
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
224
+ ip_cidr_range: Optional[pulumi.Input[str]] = None,
225
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
226
+ name: Optional[pulumi.Input[str]] = None,
227
+ network: Optional[pulumi.Input[str]] = None,
228
+ overlaps: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
229
+ peering: Optional[pulumi.Input[str]] = None,
230
+ prefix_length: Optional[pulumi.Input[int]] = None,
231
+ project: Optional[pulumi.Input[str]] = None,
232
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
233
+ target_cidr_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
234
+ usage: Optional[pulumi.Input[str]] = None,
235
+ users: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
236
+ """
237
+ Input properties used for looking up and filtering InternalRange resources.
238
+ :param pulumi.Input[str] description: An optional description of this resource.
239
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
240
+ :param pulumi.Input[str] ip_cidr_range: The IP range that this internal range defines.
241
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: User-defined labels.
242
+
243
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
244
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
245
+ :param pulumi.Input[str] name: The name of the policy based route.
246
+ :param pulumi.Input[str] network: Fully-qualified URL of the network that this route applies to, for example: projects/my-project/global/networks/my-network.
247
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] overlaps: Optional. Types of resources that are allowed to overlap with the current internal range.
248
+ Each value may be one of: `OVERLAP_ROUTE_RANGE`, `OVERLAP_EXISTING_SUBNET_RANGE`.
249
+ :param pulumi.Input[str] peering: The type of peering set for this internal range.
250
+ Possible values are: `FOR_SELF`, `FOR_PEER`, `NOT_SHARED`.
251
+
252
+
253
+ - - -
254
+ :param pulumi.Input[int] prefix_length: An alternate to ipCidrRange. Can be set when trying to create a reservation that automatically finds a free range of the given size.
255
+ If both ipCidrRange and prefixLength are set, there is an error if the range sizes do not match. Can also be used during updates to change the range size.
256
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
257
+ If it is not provided, the provider project is used.
258
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
259
+ and default labels configured on the provider.
260
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] target_cidr_ranges: Optional. Can be set to narrow down or pick a different address space while searching for a free range.
261
+ If not set, defaults to the "10.0.0.0/8" address space. This can be used to search in other rfc-1918 address spaces like "172.16.0.0/12" and "192.168.0.0/16" or non-rfc-1918 address spaces used in the VPC.
262
+ :param pulumi.Input[str] usage: The type of usage set for this InternalRange.
263
+ Possible values are: `FOR_VPC`, `EXTERNAL_TO_VPC`.
264
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] users: Output only. The list of resources that refer to this internal range.
265
+ Resources that use the internal range for their range allocation are referred to as users of the range.
266
+ Other resources mark themselves as users while doing so by creating a reference to this internal range. Having a user, based on this reference, prevents deletion of the internal range referred to. Can be empty.
267
+ """
268
+ if description is not None:
269
+ pulumi.set(__self__, "description", description)
270
+ if effective_labels is not None:
271
+ pulumi.set(__self__, "effective_labels", effective_labels)
272
+ if ip_cidr_range is not None:
273
+ pulumi.set(__self__, "ip_cidr_range", ip_cidr_range)
274
+ if labels is not None:
275
+ pulumi.set(__self__, "labels", labels)
276
+ if name is not None:
277
+ pulumi.set(__self__, "name", name)
278
+ if network is not None:
279
+ pulumi.set(__self__, "network", network)
280
+ if overlaps is not None:
281
+ pulumi.set(__self__, "overlaps", overlaps)
282
+ if peering is not None:
283
+ pulumi.set(__self__, "peering", peering)
284
+ if prefix_length is not None:
285
+ pulumi.set(__self__, "prefix_length", prefix_length)
286
+ if project is not None:
287
+ pulumi.set(__self__, "project", project)
288
+ if pulumi_labels is not None:
289
+ pulumi.set(__self__, "pulumi_labels", pulumi_labels)
290
+ if target_cidr_ranges is not None:
291
+ pulumi.set(__self__, "target_cidr_ranges", target_cidr_ranges)
292
+ if usage is not None:
293
+ pulumi.set(__self__, "usage", usage)
294
+ if users is not None:
295
+ pulumi.set(__self__, "users", users)
296
+
297
+ @property
298
+ @pulumi.getter
299
+ def description(self) -> Optional[pulumi.Input[str]]:
300
+ """
301
+ An optional description of this resource.
302
+ """
303
+ return pulumi.get(self, "description")
304
+
305
+ @description.setter
306
+ def description(self, value: Optional[pulumi.Input[str]]):
307
+ pulumi.set(self, "description", value)
308
+
309
+ @property
310
+ @pulumi.getter(name="effectiveLabels")
311
+ def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
312
+ """
313
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
314
+ """
315
+ return pulumi.get(self, "effective_labels")
316
+
317
+ @effective_labels.setter
318
+ def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
319
+ pulumi.set(self, "effective_labels", value)
320
+
321
+ @property
322
+ @pulumi.getter(name="ipCidrRange")
323
+ def ip_cidr_range(self) -> Optional[pulumi.Input[str]]:
324
+ """
325
+ The IP range that this internal range defines.
326
+ """
327
+ return pulumi.get(self, "ip_cidr_range")
328
+
329
+ @ip_cidr_range.setter
330
+ def ip_cidr_range(self, value: Optional[pulumi.Input[str]]):
331
+ pulumi.set(self, "ip_cidr_range", value)
332
+
333
+ @property
334
+ @pulumi.getter
335
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
336
+ """
337
+ User-defined labels.
338
+
339
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
340
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
341
+ """
342
+ return pulumi.get(self, "labels")
343
+
344
+ @labels.setter
345
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
346
+ pulumi.set(self, "labels", value)
347
+
348
+ @property
349
+ @pulumi.getter
350
+ def name(self) -> Optional[pulumi.Input[str]]:
351
+ """
352
+ The name of the policy based route.
353
+ """
354
+ return pulumi.get(self, "name")
355
+
356
+ @name.setter
357
+ def name(self, value: Optional[pulumi.Input[str]]):
358
+ pulumi.set(self, "name", value)
359
+
360
+ @property
361
+ @pulumi.getter
362
+ def network(self) -> Optional[pulumi.Input[str]]:
363
+ """
364
+ Fully-qualified URL of the network that this route applies to, for example: projects/my-project/global/networks/my-network.
365
+ """
366
+ return pulumi.get(self, "network")
367
+
368
+ @network.setter
369
+ def network(self, value: Optional[pulumi.Input[str]]):
370
+ pulumi.set(self, "network", value)
371
+
372
+ @property
373
+ @pulumi.getter
374
+ def overlaps(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
375
+ """
376
+ Optional. Types of resources that are allowed to overlap with the current internal range.
377
+ Each value may be one of: `OVERLAP_ROUTE_RANGE`, `OVERLAP_EXISTING_SUBNET_RANGE`.
378
+ """
379
+ return pulumi.get(self, "overlaps")
380
+
381
+ @overlaps.setter
382
+ def overlaps(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
383
+ pulumi.set(self, "overlaps", value)
384
+
385
+ @property
386
+ @pulumi.getter
387
+ def peering(self) -> Optional[pulumi.Input[str]]:
388
+ """
389
+ The type of peering set for this internal range.
390
+ Possible values are: `FOR_SELF`, `FOR_PEER`, `NOT_SHARED`.
391
+
392
+
393
+ - - -
394
+ """
395
+ return pulumi.get(self, "peering")
396
+
397
+ @peering.setter
398
+ def peering(self, value: Optional[pulumi.Input[str]]):
399
+ pulumi.set(self, "peering", value)
400
+
401
+ @property
402
+ @pulumi.getter(name="prefixLength")
403
+ def prefix_length(self) -> Optional[pulumi.Input[int]]:
404
+ """
405
+ An alternate to ipCidrRange. Can be set when trying to create a reservation that automatically finds a free range of the given size.
406
+ If both ipCidrRange and prefixLength are set, there is an error if the range sizes do not match. Can also be used during updates to change the range size.
407
+ """
408
+ return pulumi.get(self, "prefix_length")
409
+
410
+ @prefix_length.setter
411
+ def prefix_length(self, value: Optional[pulumi.Input[int]]):
412
+ pulumi.set(self, "prefix_length", value)
413
+
414
+ @property
415
+ @pulumi.getter
416
+ def project(self) -> Optional[pulumi.Input[str]]:
417
+ """
418
+ The ID of the project in which the resource belongs.
419
+ If it is not provided, the provider project is used.
420
+ """
421
+ return pulumi.get(self, "project")
422
+
423
+ @project.setter
424
+ def project(self, value: Optional[pulumi.Input[str]]):
425
+ pulumi.set(self, "project", value)
426
+
427
+ @property
428
+ @pulumi.getter(name="pulumiLabels")
429
+ def pulumi_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
430
+ """
431
+ The combination of labels configured directly on the resource
432
+ and default labels configured on the provider.
433
+ """
434
+ return pulumi.get(self, "pulumi_labels")
435
+
436
+ @pulumi_labels.setter
437
+ def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
438
+ pulumi.set(self, "pulumi_labels", value)
439
+
440
+ @property
441
+ @pulumi.getter(name="targetCidrRanges")
442
+ def target_cidr_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
443
+ """
444
+ Optional. Can be set to narrow down or pick a different address space while searching for a free range.
445
+ If not set, defaults to the "10.0.0.0/8" address space. This can be used to search in other rfc-1918 address spaces like "172.16.0.0/12" and "192.168.0.0/16" or non-rfc-1918 address spaces used in the VPC.
446
+ """
447
+ return pulumi.get(self, "target_cidr_ranges")
448
+
449
+ @target_cidr_ranges.setter
450
+ def target_cidr_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
451
+ pulumi.set(self, "target_cidr_ranges", value)
452
+
453
+ @property
454
+ @pulumi.getter
455
+ def usage(self) -> Optional[pulumi.Input[str]]:
456
+ """
457
+ The type of usage set for this InternalRange.
458
+ Possible values are: `FOR_VPC`, `EXTERNAL_TO_VPC`.
459
+ """
460
+ return pulumi.get(self, "usage")
461
+
462
+ @usage.setter
463
+ def usage(self, value: Optional[pulumi.Input[str]]):
464
+ pulumi.set(self, "usage", value)
465
+
466
+ @property
467
+ @pulumi.getter
468
+ def users(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
469
+ """
470
+ Output only. The list of resources that refer to this internal range.
471
+ Resources that use the internal range for their range allocation are referred to as users of the range.
472
+ Other resources mark themselves as users while doing so by creating a reference to this internal range. Having a user, based on this reference, prevents deletion of the internal range referred to. Can be empty.
473
+ """
474
+ return pulumi.get(self, "users")
475
+
476
+ @users.setter
477
+ def users(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
478
+ pulumi.set(self, "users", value)
479
+
480
+
481
+ class InternalRange(pulumi.CustomResource):
482
+ @overload
483
+ def __init__(__self__,
484
+ resource_name: str,
485
+ opts: Optional[pulumi.ResourceOptions] = None,
486
+ description: Optional[pulumi.Input[str]] = None,
487
+ ip_cidr_range: Optional[pulumi.Input[str]] = None,
488
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
489
+ name: Optional[pulumi.Input[str]] = None,
490
+ network: Optional[pulumi.Input[str]] = None,
491
+ overlaps: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
492
+ peering: Optional[pulumi.Input[str]] = None,
493
+ prefix_length: Optional[pulumi.Input[int]] = None,
494
+ project: Optional[pulumi.Input[str]] = None,
495
+ target_cidr_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
496
+ usage: Optional[pulumi.Input[str]] = None,
497
+ __props__=None):
498
+ """
499
+ The internal range resource for IPAM operations within a VPC network. Used to represent a private address range along with behavioral characterstics of that range (its usage and peering behavior). Networking resources can link to this range if they are created as belonging to it.
500
+
501
+ To get more information about InternalRange, see:
502
+
503
+ * [API documentation](https://cloud.google.com/network-connectivity/docs/reference/networkconnectivity/rest/v1/projects.locations.internalRanges)
504
+ * How-to Guides
505
+ * [Use internal ranges](https://cloud.google.com/vpc/docs/create-use-internal-ranges)
506
+
507
+ ## Example Usage
508
+
509
+ ### Network Connectivity Internal Ranges Basic
510
+
511
+ ```python
512
+ import pulumi
513
+ import pulumi_gcp as gcp
514
+
515
+ default_network = gcp.compute.Network("default",
516
+ name="internal-ranges",
517
+ auto_create_subnetworks=False)
518
+ default = gcp.networkconnectivity.InternalRange("default",
519
+ name="basic",
520
+ description="Test internal range",
521
+ network=default_network.self_link,
522
+ usage="FOR_VPC",
523
+ peering="FOR_SELF",
524
+ ip_cidr_range="10.0.0.0/24",
525
+ labels={
526
+ "label-a": "b",
527
+ })
528
+ ```
529
+ ### Network Connectivity Internal Ranges Automatic Reservation
530
+
531
+ ```python
532
+ import pulumi
533
+ import pulumi_gcp as gcp
534
+
535
+ default_network = gcp.compute.Network("default",
536
+ name="internal-ranges",
537
+ auto_create_subnetworks=False)
538
+ default = gcp.networkconnectivity.InternalRange("default",
539
+ name="automatic-reservation",
540
+ network=default_network.id,
541
+ usage="FOR_VPC",
542
+ peering="FOR_SELF",
543
+ prefix_length=24,
544
+ target_cidr_ranges=["192.16.0.0/16"])
545
+ ```
546
+ ### Network Connectivity Internal Ranges External Ranges
547
+
548
+ ```python
549
+ import pulumi
550
+ import pulumi_gcp as gcp
551
+
552
+ default_network = gcp.compute.Network("default",
553
+ name="internal-ranges",
554
+ auto_create_subnetworks=False)
555
+ default = gcp.networkconnectivity.InternalRange("default",
556
+ name="external-ranges",
557
+ network=default_network.id,
558
+ usage="EXTERNAL_TO_VPC",
559
+ peering="FOR_SELF",
560
+ ip_cidr_range="172.16.0.0/24",
561
+ labels={
562
+ "external-reserved-range": "on-premises",
563
+ })
564
+ ```
565
+ ### Network Connectivity Internal Ranges Reserve With Overlap
566
+
567
+ ```python
568
+ import pulumi
569
+ import pulumi_gcp as gcp
570
+
571
+ default_network = gcp.compute.Network("default",
572
+ name="internal-ranges",
573
+ auto_create_subnetworks=False)
574
+ default = gcp.networkconnectivity.InternalRange("default",
575
+ name="overlap-range",
576
+ description="Test internal range",
577
+ network=default_network.id,
578
+ usage="FOR_VPC",
579
+ peering="FOR_SELF",
580
+ ip_cidr_range="10.0.0.0/30",
581
+ overlaps=["OVERLAP_EXISTING_SUBNET_RANGE"])
582
+ default_subnetwork = gcp.compute.Subnetwork("default",
583
+ name="overlapping-subnet",
584
+ ip_cidr_range="10.0.0.0/24",
585
+ region="us-central1",
586
+ network=default_network.id)
587
+ ```
588
+
589
+ ## Import
590
+
591
+ InternalRange can be imported using any of these accepted formats:
592
+
593
+ * `projects/{{project}}/locations/global/internalRanges/{{name}}`
594
+
595
+ * `{{project}}/{{name}}`
596
+
597
+ * `{{name}}`
598
+
599
+ When using the `pulumi import` command, InternalRange can be imported using one of the formats above. For example:
600
+
601
+ ```sh
602
+ $ pulumi import gcp:networkconnectivity/internalRange:InternalRange default projects/{{project}}/locations/global/internalRanges/{{name}}
603
+ ```
604
+
605
+ ```sh
606
+ $ pulumi import gcp:networkconnectivity/internalRange:InternalRange default {{project}}/{{name}}
607
+ ```
608
+
609
+ ```sh
610
+ $ pulumi import gcp:networkconnectivity/internalRange:InternalRange default {{name}}
611
+ ```
612
+
613
+ :param str resource_name: The name of the resource.
614
+ :param pulumi.ResourceOptions opts: Options for the resource.
615
+ :param pulumi.Input[str] description: An optional description of this resource.
616
+ :param pulumi.Input[str] ip_cidr_range: The IP range that this internal range defines.
617
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: User-defined labels.
618
+
619
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
620
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
621
+ :param pulumi.Input[str] name: The name of the policy based route.
622
+ :param pulumi.Input[str] network: Fully-qualified URL of the network that this route applies to, for example: projects/my-project/global/networks/my-network.
623
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] overlaps: Optional. Types of resources that are allowed to overlap with the current internal range.
624
+ Each value may be one of: `OVERLAP_ROUTE_RANGE`, `OVERLAP_EXISTING_SUBNET_RANGE`.
625
+ :param pulumi.Input[str] peering: The type of peering set for this internal range.
626
+ Possible values are: `FOR_SELF`, `FOR_PEER`, `NOT_SHARED`.
627
+
628
+
629
+ - - -
630
+ :param pulumi.Input[int] prefix_length: An alternate to ipCidrRange. Can be set when trying to create a reservation that automatically finds a free range of the given size.
631
+ If both ipCidrRange and prefixLength are set, there is an error if the range sizes do not match. Can also be used during updates to change the range size.
632
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
633
+ If it is not provided, the provider project is used.
634
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] target_cidr_ranges: Optional. Can be set to narrow down or pick a different address space while searching for a free range.
635
+ If not set, defaults to the "10.0.0.0/8" address space. This can be used to search in other rfc-1918 address spaces like "172.16.0.0/12" and "192.168.0.0/16" or non-rfc-1918 address spaces used in the VPC.
636
+ :param pulumi.Input[str] usage: The type of usage set for this InternalRange.
637
+ Possible values are: `FOR_VPC`, `EXTERNAL_TO_VPC`.
638
+ """
639
+ ...
640
+ @overload
641
+ def __init__(__self__,
642
+ resource_name: str,
643
+ args: InternalRangeArgs,
644
+ opts: Optional[pulumi.ResourceOptions] = None):
645
+ """
646
+ The internal range resource for IPAM operations within a VPC network. Used to represent a private address range along with behavioral characterstics of that range (its usage and peering behavior). Networking resources can link to this range if they are created as belonging to it.
647
+
648
+ To get more information about InternalRange, see:
649
+
650
+ * [API documentation](https://cloud.google.com/network-connectivity/docs/reference/networkconnectivity/rest/v1/projects.locations.internalRanges)
651
+ * How-to Guides
652
+ * [Use internal ranges](https://cloud.google.com/vpc/docs/create-use-internal-ranges)
653
+
654
+ ## Example Usage
655
+
656
+ ### Network Connectivity Internal Ranges Basic
657
+
658
+ ```python
659
+ import pulumi
660
+ import pulumi_gcp as gcp
661
+
662
+ default_network = gcp.compute.Network("default",
663
+ name="internal-ranges",
664
+ auto_create_subnetworks=False)
665
+ default = gcp.networkconnectivity.InternalRange("default",
666
+ name="basic",
667
+ description="Test internal range",
668
+ network=default_network.self_link,
669
+ usage="FOR_VPC",
670
+ peering="FOR_SELF",
671
+ ip_cidr_range="10.0.0.0/24",
672
+ labels={
673
+ "label-a": "b",
674
+ })
675
+ ```
676
+ ### Network Connectivity Internal Ranges Automatic Reservation
677
+
678
+ ```python
679
+ import pulumi
680
+ import pulumi_gcp as gcp
681
+
682
+ default_network = gcp.compute.Network("default",
683
+ name="internal-ranges",
684
+ auto_create_subnetworks=False)
685
+ default = gcp.networkconnectivity.InternalRange("default",
686
+ name="automatic-reservation",
687
+ network=default_network.id,
688
+ usage="FOR_VPC",
689
+ peering="FOR_SELF",
690
+ prefix_length=24,
691
+ target_cidr_ranges=["192.16.0.0/16"])
692
+ ```
693
+ ### Network Connectivity Internal Ranges External Ranges
694
+
695
+ ```python
696
+ import pulumi
697
+ import pulumi_gcp as gcp
698
+
699
+ default_network = gcp.compute.Network("default",
700
+ name="internal-ranges",
701
+ auto_create_subnetworks=False)
702
+ default = gcp.networkconnectivity.InternalRange("default",
703
+ name="external-ranges",
704
+ network=default_network.id,
705
+ usage="EXTERNAL_TO_VPC",
706
+ peering="FOR_SELF",
707
+ ip_cidr_range="172.16.0.0/24",
708
+ labels={
709
+ "external-reserved-range": "on-premises",
710
+ })
711
+ ```
712
+ ### Network Connectivity Internal Ranges Reserve With Overlap
713
+
714
+ ```python
715
+ import pulumi
716
+ import pulumi_gcp as gcp
717
+
718
+ default_network = gcp.compute.Network("default",
719
+ name="internal-ranges",
720
+ auto_create_subnetworks=False)
721
+ default = gcp.networkconnectivity.InternalRange("default",
722
+ name="overlap-range",
723
+ description="Test internal range",
724
+ network=default_network.id,
725
+ usage="FOR_VPC",
726
+ peering="FOR_SELF",
727
+ ip_cidr_range="10.0.0.0/30",
728
+ overlaps=["OVERLAP_EXISTING_SUBNET_RANGE"])
729
+ default_subnetwork = gcp.compute.Subnetwork("default",
730
+ name="overlapping-subnet",
731
+ ip_cidr_range="10.0.0.0/24",
732
+ region="us-central1",
733
+ network=default_network.id)
734
+ ```
735
+
736
+ ## Import
737
+
738
+ InternalRange can be imported using any of these accepted formats:
739
+
740
+ * `projects/{{project}}/locations/global/internalRanges/{{name}}`
741
+
742
+ * `{{project}}/{{name}}`
743
+
744
+ * `{{name}}`
745
+
746
+ When using the `pulumi import` command, InternalRange can be imported using one of the formats above. For example:
747
+
748
+ ```sh
749
+ $ pulumi import gcp:networkconnectivity/internalRange:InternalRange default projects/{{project}}/locations/global/internalRanges/{{name}}
750
+ ```
751
+
752
+ ```sh
753
+ $ pulumi import gcp:networkconnectivity/internalRange:InternalRange default {{project}}/{{name}}
754
+ ```
755
+
756
+ ```sh
757
+ $ pulumi import gcp:networkconnectivity/internalRange:InternalRange default {{name}}
758
+ ```
759
+
760
+ :param str resource_name: The name of the resource.
761
+ :param InternalRangeArgs args: The arguments to use to populate this resource's properties.
762
+ :param pulumi.ResourceOptions opts: Options for the resource.
763
+ """
764
+ ...
765
+ def __init__(__self__, resource_name: str, *args, **kwargs):
766
+ resource_args, opts = _utilities.get_resource_args_opts(InternalRangeArgs, pulumi.ResourceOptions, *args, **kwargs)
767
+ if resource_args is not None:
768
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
769
+ else:
770
+ __self__._internal_init(resource_name, *args, **kwargs)
771
+
772
+ def _internal_init(__self__,
773
+ resource_name: str,
774
+ opts: Optional[pulumi.ResourceOptions] = None,
775
+ description: Optional[pulumi.Input[str]] = None,
776
+ ip_cidr_range: Optional[pulumi.Input[str]] = None,
777
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
778
+ name: Optional[pulumi.Input[str]] = None,
779
+ network: Optional[pulumi.Input[str]] = None,
780
+ overlaps: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
781
+ peering: Optional[pulumi.Input[str]] = None,
782
+ prefix_length: Optional[pulumi.Input[int]] = None,
783
+ project: Optional[pulumi.Input[str]] = None,
784
+ target_cidr_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
785
+ usage: Optional[pulumi.Input[str]] = None,
786
+ __props__=None):
787
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
788
+ if not isinstance(opts, pulumi.ResourceOptions):
789
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
790
+ if opts.id is None:
791
+ if __props__ is not None:
792
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
793
+ __props__ = InternalRangeArgs.__new__(InternalRangeArgs)
794
+
795
+ __props__.__dict__["description"] = description
796
+ __props__.__dict__["ip_cidr_range"] = ip_cidr_range
797
+ __props__.__dict__["labels"] = labels
798
+ __props__.__dict__["name"] = name
799
+ if network is None and not opts.urn:
800
+ raise TypeError("Missing required property 'network'")
801
+ __props__.__dict__["network"] = network
802
+ __props__.__dict__["overlaps"] = overlaps
803
+ if peering is None and not opts.urn:
804
+ raise TypeError("Missing required property 'peering'")
805
+ __props__.__dict__["peering"] = peering
806
+ __props__.__dict__["prefix_length"] = prefix_length
807
+ __props__.__dict__["project"] = project
808
+ __props__.__dict__["target_cidr_ranges"] = target_cidr_ranges
809
+ if usage is None and not opts.urn:
810
+ raise TypeError("Missing required property 'usage'")
811
+ __props__.__dict__["usage"] = usage
812
+ __props__.__dict__["effective_labels"] = None
813
+ __props__.__dict__["pulumi_labels"] = None
814
+ __props__.__dict__["users"] = None
815
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["effectiveLabels", "pulumiLabels"])
816
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
817
+ super(InternalRange, __self__).__init__(
818
+ 'gcp:networkconnectivity/internalRange:InternalRange',
819
+ resource_name,
820
+ __props__,
821
+ opts)
822
+
823
+ @staticmethod
824
+ def get(resource_name: str,
825
+ id: pulumi.Input[str],
826
+ opts: Optional[pulumi.ResourceOptions] = None,
827
+ description: Optional[pulumi.Input[str]] = None,
828
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
829
+ ip_cidr_range: Optional[pulumi.Input[str]] = None,
830
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
831
+ name: Optional[pulumi.Input[str]] = None,
832
+ network: Optional[pulumi.Input[str]] = None,
833
+ overlaps: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
834
+ peering: Optional[pulumi.Input[str]] = None,
835
+ prefix_length: Optional[pulumi.Input[int]] = None,
836
+ project: Optional[pulumi.Input[str]] = None,
837
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
838
+ target_cidr_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
839
+ usage: Optional[pulumi.Input[str]] = None,
840
+ users: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None) -> 'InternalRange':
841
+ """
842
+ Get an existing InternalRange resource's state with the given name, id, and optional extra
843
+ properties used to qualify the lookup.
844
+
845
+ :param str resource_name: The unique name of the resulting resource.
846
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
847
+ :param pulumi.ResourceOptions opts: Options for the resource.
848
+ :param pulumi.Input[str] description: An optional description of this resource.
849
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
850
+ :param pulumi.Input[str] ip_cidr_range: The IP range that this internal range defines.
851
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: User-defined labels.
852
+
853
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
854
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
855
+ :param pulumi.Input[str] name: The name of the policy based route.
856
+ :param pulumi.Input[str] network: Fully-qualified URL of the network that this route applies to, for example: projects/my-project/global/networks/my-network.
857
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] overlaps: Optional. Types of resources that are allowed to overlap with the current internal range.
858
+ Each value may be one of: `OVERLAP_ROUTE_RANGE`, `OVERLAP_EXISTING_SUBNET_RANGE`.
859
+ :param pulumi.Input[str] peering: The type of peering set for this internal range.
860
+ Possible values are: `FOR_SELF`, `FOR_PEER`, `NOT_SHARED`.
861
+
862
+
863
+ - - -
864
+ :param pulumi.Input[int] prefix_length: An alternate to ipCidrRange. Can be set when trying to create a reservation that automatically finds a free range of the given size.
865
+ If both ipCidrRange and prefixLength are set, there is an error if the range sizes do not match. Can also be used during updates to change the range size.
866
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
867
+ If it is not provided, the provider project is used.
868
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
869
+ and default labels configured on the provider.
870
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] target_cidr_ranges: Optional. Can be set to narrow down or pick a different address space while searching for a free range.
871
+ If not set, defaults to the "10.0.0.0/8" address space. This can be used to search in other rfc-1918 address spaces like "172.16.0.0/12" and "192.168.0.0/16" or non-rfc-1918 address spaces used in the VPC.
872
+ :param pulumi.Input[str] usage: The type of usage set for this InternalRange.
873
+ Possible values are: `FOR_VPC`, `EXTERNAL_TO_VPC`.
874
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] users: Output only. The list of resources that refer to this internal range.
875
+ Resources that use the internal range for their range allocation are referred to as users of the range.
876
+ Other resources mark themselves as users while doing so by creating a reference to this internal range. Having a user, based on this reference, prevents deletion of the internal range referred to. Can be empty.
877
+ """
878
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
879
+
880
+ __props__ = _InternalRangeState.__new__(_InternalRangeState)
881
+
882
+ __props__.__dict__["description"] = description
883
+ __props__.__dict__["effective_labels"] = effective_labels
884
+ __props__.__dict__["ip_cidr_range"] = ip_cidr_range
885
+ __props__.__dict__["labels"] = labels
886
+ __props__.__dict__["name"] = name
887
+ __props__.__dict__["network"] = network
888
+ __props__.__dict__["overlaps"] = overlaps
889
+ __props__.__dict__["peering"] = peering
890
+ __props__.__dict__["prefix_length"] = prefix_length
891
+ __props__.__dict__["project"] = project
892
+ __props__.__dict__["pulumi_labels"] = pulumi_labels
893
+ __props__.__dict__["target_cidr_ranges"] = target_cidr_ranges
894
+ __props__.__dict__["usage"] = usage
895
+ __props__.__dict__["users"] = users
896
+ return InternalRange(resource_name, opts=opts, __props__=__props__)
897
+
898
+ @property
899
+ @pulumi.getter
900
+ def description(self) -> pulumi.Output[Optional[str]]:
901
+ """
902
+ An optional description of this resource.
903
+ """
904
+ return pulumi.get(self, "description")
905
+
906
+ @property
907
+ @pulumi.getter(name="effectiveLabels")
908
+ def effective_labels(self) -> pulumi.Output[Mapping[str, str]]:
909
+ """
910
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
911
+ """
912
+ return pulumi.get(self, "effective_labels")
913
+
914
+ @property
915
+ @pulumi.getter(name="ipCidrRange")
916
+ def ip_cidr_range(self) -> pulumi.Output[str]:
917
+ """
918
+ The IP range that this internal range defines.
919
+ """
920
+ return pulumi.get(self, "ip_cidr_range")
921
+
922
+ @property
923
+ @pulumi.getter
924
+ def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
925
+ """
926
+ User-defined labels.
927
+
928
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
929
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
930
+ """
931
+ return pulumi.get(self, "labels")
932
+
933
+ @property
934
+ @pulumi.getter
935
+ def name(self) -> pulumi.Output[str]:
936
+ """
937
+ The name of the policy based route.
938
+ """
939
+ return pulumi.get(self, "name")
940
+
941
+ @property
942
+ @pulumi.getter
943
+ def network(self) -> pulumi.Output[str]:
944
+ """
945
+ Fully-qualified URL of the network that this route applies to, for example: projects/my-project/global/networks/my-network.
946
+ """
947
+ return pulumi.get(self, "network")
948
+
949
+ @property
950
+ @pulumi.getter
951
+ def overlaps(self) -> pulumi.Output[Optional[Sequence[str]]]:
952
+ """
953
+ Optional. Types of resources that are allowed to overlap with the current internal range.
954
+ Each value may be one of: `OVERLAP_ROUTE_RANGE`, `OVERLAP_EXISTING_SUBNET_RANGE`.
955
+ """
956
+ return pulumi.get(self, "overlaps")
957
+
958
+ @property
959
+ @pulumi.getter
960
+ def peering(self) -> pulumi.Output[str]:
961
+ """
962
+ The type of peering set for this internal range.
963
+ Possible values are: `FOR_SELF`, `FOR_PEER`, `NOT_SHARED`.
964
+
965
+
966
+ - - -
967
+ """
968
+ return pulumi.get(self, "peering")
969
+
970
+ @property
971
+ @pulumi.getter(name="prefixLength")
972
+ def prefix_length(self) -> pulumi.Output[Optional[int]]:
973
+ """
974
+ An alternate to ipCidrRange. Can be set when trying to create a reservation that automatically finds a free range of the given size.
975
+ If both ipCidrRange and prefixLength are set, there is an error if the range sizes do not match. Can also be used during updates to change the range size.
976
+ """
977
+ return pulumi.get(self, "prefix_length")
978
+
979
+ @property
980
+ @pulumi.getter
981
+ def project(self) -> pulumi.Output[str]:
982
+ """
983
+ The ID of the project in which the resource belongs.
984
+ If it is not provided, the provider project is used.
985
+ """
986
+ return pulumi.get(self, "project")
987
+
988
+ @property
989
+ @pulumi.getter(name="pulumiLabels")
990
+ def pulumi_labels(self) -> pulumi.Output[Mapping[str, str]]:
991
+ """
992
+ The combination of labels configured directly on the resource
993
+ and default labels configured on the provider.
994
+ """
995
+ return pulumi.get(self, "pulumi_labels")
996
+
997
+ @property
998
+ @pulumi.getter(name="targetCidrRanges")
999
+ def target_cidr_ranges(self) -> pulumi.Output[Optional[Sequence[str]]]:
1000
+ """
1001
+ Optional. Can be set to narrow down or pick a different address space while searching for a free range.
1002
+ If not set, defaults to the "10.0.0.0/8" address space. This can be used to search in other rfc-1918 address spaces like "172.16.0.0/12" and "192.168.0.0/16" or non-rfc-1918 address spaces used in the VPC.
1003
+ """
1004
+ return pulumi.get(self, "target_cidr_ranges")
1005
+
1006
+ @property
1007
+ @pulumi.getter
1008
+ def usage(self) -> pulumi.Output[str]:
1009
+ """
1010
+ The type of usage set for this InternalRange.
1011
+ Possible values are: `FOR_VPC`, `EXTERNAL_TO_VPC`.
1012
+ """
1013
+ return pulumi.get(self, "usage")
1014
+
1015
+ @property
1016
+ @pulumi.getter
1017
+ def users(self) -> pulumi.Output[Sequence[str]]:
1018
+ """
1019
+ Output only. The list of resources that refer to this internal range.
1020
+ Resources that use the internal range for their range allocation are referred to as users of the range.
1021
+ Other resources mark themselves as users while doing so by creating a reference to this internal range. Having a user, based on this reference, prevents deletion of the internal range referred to. Can be empty.
1022
+ """
1023
+ return pulumi.get(self, "users")
1024
+