pulumi-gcp 8.12.0a1734477662__py3-none-any.whl → 8.12.1__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 +32 -0
- pulumi_gcp/accesscontextmanager/_inputs.py +0 -29
- pulumi_gcp/accesscontextmanager/outputs.py +0 -18
- pulumi_gcp/accesscontextmanager/service_perimeter.py +0 -36
- pulumi_gcp/artifactregistry/get_repository_iam_policy.py +12 -4
- pulumi_gcp/artifactregistry/repository.py +86 -39
- pulumi_gcp/artifactregistry/repository_iam_binding.py +42 -14
- pulumi_gcp/artifactregistry/repository_iam_member.py +42 -14
- pulumi_gcp/artifactregistry/repository_iam_policy.py +42 -14
- pulumi_gcp/compute/get_global_forwarding_rule.py +12 -1
- pulumi_gcp/compute/global_forwarding_rule.py +114 -2
- pulumi_gcp/compute/project_cloud_armor_tier.py +7 -7
- pulumi_gcp/firebase/_inputs.py +99 -0
- pulumi_gcp/firebase/database_instance.py +24 -6
- pulumi_gcp/firebase/hosting_version.py +96 -0
- pulumi_gcp/firebase/outputs.py +59 -0
- pulumi_gcp/firebase/project.py +6 -6
- pulumi_gcp/identityplatform/_inputs.py +6 -6
- pulumi_gcp/identityplatform/config.py +2 -2
- pulumi_gcp/identityplatform/outputs.py +4 -4
- pulumi_gcp/looker/instance.py +35 -14
- pulumi_gcp/networkconnectivity/_inputs.py +10 -12
- pulumi_gcp/networkconnectivity/outputs.py +6 -8
- pulumi_gcp/networksecurity/__init__.py +3 -0
- pulumi_gcp/networksecurity/_inputs.py +1903 -0
- pulumi_gcp/networksecurity/authz_policy.py +1008 -0
- pulumi_gcp/networksecurity/intercept_deployment.py +846 -0
- pulumi_gcp/networksecurity/intercept_deployment_group.py +752 -0
- pulumi_gcp/networksecurity/outputs.py +1393 -0
- pulumi_gcp/networkservices/__init__.py +1 -0
- pulumi_gcp/networkservices/authz_extension.py +1080 -0
- pulumi_gcp/oracledatabase/autonomous_database.py +4 -4
- pulumi_gcp/orgpolicy/_inputs.py +40 -0
- pulumi_gcp/orgpolicy/outputs.py +24 -0
- pulumi_gcp/orgpolicy/policy.py +64 -8
- pulumi_gcp/pulumi-plugin.json +1 -1
- pulumi_gcp/sql/_inputs.py +3 -3
- pulumi_gcp/sql/database_instance.py +14 -14
- pulumi_gcp/sql/outputs.py +2 -2
- pulumi_gcp/storage/_inputs.py +53 -6
- pulumi_gcp/storage/outputs.py +33 -4
- pulumi_gcp/tpu/_inputs.py +26 -18
- pulumi_gcp/tpu/outputs.py +18 -12
- pulumi_gcp/tpu/v2_vm.py +63 -0
- {pulumi_gcp-8.12.0a1734477662.dist-info → pulumi_gcp-8.12.1.dist-info}/METADATA +1 -1
- {pulumi_gcp-8.12.0a1734477662.dist-info → pulumi_gcp-8.12.1.dist-info}/RECORD +48 -44
- {pulumi_gcp-8.12.0a1734477662.dist-info → pulumi_gcp-8.12.1.dist-info}/WHEEL +0 -0
- {pulumi_gcp-8.12.0a1734477662.dist-info → pulumi_gcp-8.12.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1080 @@
|
|
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__ = ['AuthzExtensionArgs', 'AuthzExtension']
|
18
|
+
|
19
|
+
@pulumi.input_type
|
20
|
+
class AuthzExtensionArgs:
|
21
|
+
def __init__(__self__, *,
|
22
|
+
authority: pulumi.Input[str],
|
23
|
+
load_balancing_scheme: pulumi.Input[str],
|
24
|
+
location: pulumi.Input[str],
|
25
|
+
service: pulumi.Input[str],
|
26
|
+
timeout: pulumi.Input[str],
|
27
|
+
description: Optional[pulumi.Input[str]] = None,
|
28
|
+
fail_open: Optional[pulumi.Input[bool]] = None,
|
29
|
+
forward_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
30
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
31
|
+
metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
32
|
+
name: Optional[pulumi.Input[str]] = None,
|
33
|
+
project: Optional[pulumi.Input[str]] = None,
|
34
|
+
wire_format: Optional[pulumi.Input[str]] = None):
|
35
|
+
"""
|
36
|
+
The set of arguments for constructing a AuthzExtension resource.
|
37
|
+
:param pulumi.Input[str] authority: The :authority header in the gRPC request sent from Envoy to the extension service.
|
38
|
+
:param pulumi.Input[str] load_balancing_scheme: All backend services and forwarding rules referenced by this extension must share the same load balancing scheme.
|
39
|
+
For more information, refer to [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service).
|
40
|
+
Possible values are: `INTERNAL_MANAGED`, `EXTERNAL_MANAGED`.
|
41
|
+
:param pulumi.Input[str] location: The location of the resource.
|
42
|
+
|
43
|
+
|
44
|
+
- - -
|
45
|
+
:param pulumi.Input[str] service: The reference to the service that runs the extension.
|
46
|
+
To configure a callout extension, service must be a fully-qualified reference to a [backend service](https://cloud.google.com/compute/docs/reference/rest/v1/backendServices) in the format:
|
47
|
+
https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/backendServices/{backendService} or https://www.googleapis.com/compute/v1/projects/{project}/global/backendServices/{backendService}.
|
48
|
+
:param pulumi.Input[str] timeout: Specifies the timeout for each individual message on the stream. The timeout must be between 10-10000 milliseconds.
|
49
|
+
:param pulumi.Input[str] description: A human-readable description of the resource.
|
50
|
+
:param pulumi.Input[bool] fail_open: Determines how the proxy behaves if the call to the extension fails or times out.
|
51
|
+
When set to TRUE, request or response processing continues without error. Any subsequent extensions in the extension chain are also executed. When set to FALSE or the default setting of FALSE is used, one of the following happens:
|
52
|
+
* If response headers have not been delivered to the downstream client, a generic 500 error is returned to the client. The error response can be tailored by configuring a custom error response in the load balancer.
|
53
|
+
* If response headers have been delivered, then the HTTP stream to the downstream client is reset.
|
54
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] forward_headers: List of the HTTP headers to forward to the extension (from the client). If omitted, all headers are sent. Each element is a string indicating the header name.
|
55
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Set of labels associated with the AuthzExtension resource.
|
56
|
+
|
57
|
+
**Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
|
58
|
+
Please refer to the field `effective_labels` for all of the labels present on the resource.
|
59
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] metadata: The metadata provided here is included as part of the metadata_context (of type google.protobuf.Struct) in the ProcessingRequest message sent to the extension server. The metadata is available under the namespace com.google.authz_extension.<resourceName>. The following variables are supported in the metadata Struct:
|
60
|
+
{forwarding_rule_id} - substituted with the forwarding rule's fully qualified resource name.
|
61
|
+
:param pulumi.Input[str] name: Identifier. Name of the AuthzExtension resource.
|
62
|
+
:param pulumi.Input[str] project: The ID of the project in which the resource belongs.
|
63
|
+
If it is not provided, the provider project is used.
|
64
|
+
:param pulumi.Input[str] wire_format: The format of communication supported by the callout extension.
|
65
|
+
Default value is `EXT_PROC_GRPC`.
|
66
|
+
Possible values are: `WIRE_FORMAT_UNSPECIFIED`, `EXT_PROC_GRPC`.
|
67
|
+
"""
|
68
|
+
pulumi.set(__self__, "authority", authority)
|
69
|
+
pulumi.set(__self__, "load_balancing_scheme", load_balancing_scheme)
|
70
|
+
pulumi.set(__self__, "location", location)
|
71
|
+
pulumi.set(__self__, "service", service)
|
72
|
+
pulumi.set(__self__, "timeout", timeout)
|
73
|
+
if description is not None:
|
74
|
+
pulumi.set(__self__, "description", description)
|
75
|
+
if fail_open is not None:
|
76
|
+
pulumi.set(__self__, "fail_open", fail_open)
|
77
|
+
if forward_headers is not None:
|
78
|
+
pulumi.set(__self__, "forward_headers", forward_headers)
|
79
|
+
if labels is not None:
|
80
|
+
pulumi.set(__self__, "labels", labels)
|
81
|
+
if metadata is not None:
|
82
|
+
pulumi.set(__self__, "metadata", metadata)
|
83
|
+
if name is not None:
|
84
|
+
pulumi.set(__self__, "name", name)
|
85
|
+
if project is not None:
|
86
|
+
pulumi.set(__self__, "project", project)
|
87
|
+
if wire_format is not None:
|
88
|
+
pulumi.set(__self__, "wire_format", wire_format)
|
89
|
+
|
90
|
+
@property
|
91
|
+
@pulumi.getter
|
92
|
+
def authority(self) -> pulumi.Input[str]:
|
93
|
+
"""
|
94
|
+
The :authority header in the gRPC request sent from Envoy to the extension service.
|
95
|
+
"""
|
96
|
+
return pulumi.get(self, "authority")
|
97
|
+
|
98
|
+
@authority.setter
|
99
|
+
def authority(self, value: pulumi.Input[str]):
|
100
|
+
pulumi.set(self, "authority", value)
|
101
|
+
|
102
|
+
@property
|
103
|
+
@pulumi.getter(name="loadBalancingScheme")
|
104
|
+
def load_balancing_scheme(self) -> pulumi.Input[str]:
|
105
|
+
"""
|
106
|
+
All backend services and forwarding rules referenced by this extension must share the same load balancing scheme.
|
107
|
+
For more information, refer to [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service).
|
108
|
+
Possible values are: `INTERNAL_MANAGED`, `EXTERNAL_MANAGED`.
|
109
|
+
"""
|
110
|
+
return pulumi.get(self, "load_balancing_scheme")
|
111
|
+
|
112
|
+
@load_balancing_scheme.setter
|
113
|
+
def load_balancing_scheme(self, value: pulumi.Input[str]):
|
114
|
+
pulumi.set(self, "load_balancing_scheme", value)
|
115
|
+
|
116
|
+
@property
|
117
|
+
@pulumi.getter
|
118
|
+
def location(self) -> pulumi.Input[str]:
|
119
|
+
"""
|
120
|
+
The location of the resource.
|
121
|
+
|
122
|
+
|
123
|
+
- - -
|
124
|
+
"""
|
125
|
+
return pulumi.get(self, "location")
|
126
|
+
|
127
|
+
@location.setter
|
128
|
+
def location(self, value: pulumi.Input[str]):
|
129
|
+
pulumi.set(self, "location", value)
|
130
|
+
|
131
|
+
@property
|
132
|
+
@pulumi.getter
|
133
|
+
def service(self) -> pulumi.Input[str]:
|
134
|
+
"""
|
135
|
+
The reference to the service that runs the extension.
|
136
|
+
To configure a callout extension, service must be a fully-qualified reference to a [backend service](https://cloud.google.com/compute/docs/reference/rest/v1/backendServices) in the format:
|
137
|
+
https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/backendServices/{backendService} or https://www.googleapis.com/compute/v1/projects/{project}/global/backendServices/{backendService}.
|
138
|
+
"""
|
139
|
+
return pulumi.get(self, "service")
|
140
|
+
|
141
|
+
@service.setter
|
142
|
+
def service(self, value: pulumi.Input[str]):
|
143
|
+
pulumi.set(self, "service", value)
|
144
|
+
|
145
|
+
@property
|
146
|
+
@pulumi.getter
|
147
|
+
def timeout(self) -> pulumi.Input[str]:
|
148
|
+
"""
|
149
|
+
Specifies the timeout for each individual message on the stream. The timeout must be between 10-10000 milliseconds.
|
150
|
+
"""
|
151
|
+
return pulumi.get(self, "timeout")
|
152
|
+
|
153
|
+
@timeout.setter
|
154
|
+
def timeout(self, value: pulumi.Input[str]):
|
155
|
+
pulumi.set(self, "timeout", value)
|
156
|
+
|
157
|
+
@property
|
158
|
+
@pulumi.getter
|
159
|
+
def description(self) -> Optional[pulumi.Input[str]]:
|
160
|
+
"""
|
161
|
+
A human-readable description of the resource.
|
162
|
+
"""
|
163
|
+
return pulumi.get(self, "description")
|
164
|
+
|
165
|
+
@description.setter
|
166
|
+
def description(self, value: Optional[pulumi.Input[str]]):
|
167
|
+
pulumi.set(self, "description", value)
|
168
|
+
|
169
|
+
@property
|
170
|
+
@pulumi.getter(name="failOpen")
|
171
|
+
def fail_open(self) -> Optional[pulumi.Input[bool]]:
|
172
|
+
"""
|
173
|
+
Determines how the proxy behaves if the call to the extension fails or times out.
|
174
|
+
When set to TRUE, request or response processing continues without error. Any subsequent extensions in the extension chain are also executed. When set to FALSE or the default setting of FALSE is used, one of the following happens:
|
175
|
+
* If response headers have not been delivered to the downstream client, a generic 500 error is returned to the client. The error response can be tailored by configuring a custom error response in the load balancer.
|
176
|
+
* If response headers have been delivered, then the HTTP stream to the downstream client is reset.
|
177
|
+
"""
|
178
|
+
return pulumi.get(self, "fail_open")
|
179
|
+
|
180
|
+
@fail_open.setter
|
181
|
+
def fail_open(self, value: Optional[pulumi.Input[bool]]):
|
182
|
+
pulumi.set(self, "fail_open", value)
|
183
|
+
|
184
|
+
@property
|
185
|
+
@pulumi.getter(name="forwardHeaders")
|
186
|
+
def forward_headers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
|
187
|
+
"""
|
188
|
+
List of the HTTP headers to forward to the extension (from the client). If omitted, all headers are sent. Each element is a string indicating the header name.
|
189
|
+
"""
|
190
|
+
return pulumi.get(self, "forward_headers")
|
191
|
+
|
192
|
+
@forward_headers.setter
|
193
|
+
def forward_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
|
194
|
+
pulumi.set(self, "forward_headers", value)
|
195
|
+
|
196
|
+
@property
|
197
|
+
@pulumi.getter
|
198
|
+
def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
|
199
|
+
"""
|
200
|
+
Set of labels associated with the AuthzExtension resource.
|
201
|
+
|
202
|
+
**Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
|
203
|
+
Please refer to the field `effective_labels` for all of the labels present on the resource.
|
204
|
+
"""
|
205
|
+
return pulumi.get(self, "labels")
|
206
|
+
|
207
|
+
@labels.setter
|
208
|
+
def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
|
209
|
+
pulumi.set(self, "labels", value)
|
210
|
+
|
211
|
+
@property
|
212
|
+
@pulumi.getter
|
213
|
+
def metadata(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
|
214
|
+
"""
|
215
|
+
The metadata provided here is included as part of the metadata_context (of type google.protobuf.Struct) in the ProcessingRequest message sent to the extension server. The metadata is available under the namespace com.google.authz_extension.<resourceName>. The following variables are supported in the metadata Struct:
|
216
|
+
{forwarding_rule_id} - substituted with the forwarding rule's fully qualified resource name.
|
217
|
+
"""
|
218
|
+
return pulumi.get(self, "metadata")
|
219
|
+
|
220
|
+
@metadata.setter
|
221
|
+
def metadata(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
|
222
|
+
pulumi.set(self, "metadata", value)
|
223
|
+
|
224
|
+
@property
|
225
|
+
@pulumi.getter
|
226
|
+
def name(self) -> Optional[pulumi.Input[str]]:
|
227
|
+
"""
|
228
|
+
Identifier. Name of the AuthzExtension resource.
|
229
|
+
"""
|
230
|
+
return pulumi.get(self, "name")
|
231
|
+
|
232
|
+
@name.setter
|
233
|
+
def name(self, value: Optional[pulumi.Input[str]]):
|
234
|
+
pulumi.set(self, "name", value)
|
235
|
+
|
236
|
+
@property
|
237
|
+
@pulumi.getter
|
238
|
+
def project(self) -> Optional[pulumi.Input[str]]:
|
239
|
+
"""
|
240
|
+
The ID of the project in which the resource belongs.
|
241
|
+
If it is not provided, the provider project is used.
|
242
|
+
"""
|
243
|
+
return pulumi.get(self, "project")
|
244
|
+
|
245
|
+
@project.setter
|
246
|
+
def project(self, value: Optional[pulumi.Input[str]]):
|
247
|
+
pulumi.set(self, "project", value)
|
248
|
+
|
249
|
+
@property
|
250
|
+
@pulumi.getter(name="wireFormat")
|
251
|
+
def wire_format(self) -> Optional[pulumi.Input[str]]:
|
252
|
+
"""
|
253
|
+
The format of communication supported by the callout extension.
|
254
|
+
Default value is `EXT_PROC_GRPC`.
|
255
|
+
Possible values are: `WIRE_FORMAT_UNSPECIFIED`, `EXT_PROC_GRPC`.
|
256
|
+
"""
|
257
|
+
return pulumi.get(self, "wire_format")
|
258
|
+
|
259
|
+
@wire_format.setter
|
260
|
+
def wire_format(self, value: Optional[pulumi.Input[str]]):
|
261
|
+
pulumi.set(self, "wire_format", value)
|
262
|
+
|
263
|
+
|
264
|
+
@pulumi.input_type
|
265
|
+
class _AuthzExtensionState:
|
266
|
+
def __init__(__self__, *,
|
267
|
+
authority: Optional[pulumi.Input[str]] = None,
|
268
|
+
create_time: Optional[pulumi.Input[str]] = None,
|
269
|
+
description: Optional[pulumi.Input[str]] = None,
|
270
|
+
effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
271
|
+
fail_open: Optional[pulumi.Input[bool]] = None,
|
272
|
+
forward_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
273
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
274
|
+
load_balancing_scheme: Optional[pulumi.Input[str]] = None,
|
275
|
+
location: Optional[pulumi.Input[str]] = None,
|
276
|
+
metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
277
|
+
name: Optional[pulumi.Input[str]] = None,
|
278
|
+
project: Optional[pulumi.Input[str]] = None,
|
279
|
+
pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
280
|
+
service: Optional[pulumi.Input[str]] = None,
|
281
|
+
timeout: Optional[pulumi.Input[str]] = None,
|
282
|
+
update_time: Optional[pulumi.Input[str]] = None,
|
283
|
+
wire_format: Optional[pulumi.Input[str]] = None):
|
284
|
+
"""
|
285
|
+
Input properties used for looking up and filtering AuthzExtension resources.
|
286
|
+
:param pulumi.Input[str] authority: The :authority header in the gRPC request sent from Envoy to the extension service.
|
287
|
+
:param pulumi.Input[str] create_time: The timestamp when the resource was created.
|
288
|
+
:param pulumi.Input[str] description: A human-readable description of the resource.
|
289
|
+
: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.
|
290
|
+
:param pulumi.Input[bool] fail_open: Determines how the proxy behaves if the call to the extension fails or times out.
|
291
|
+
When set to TRUE, request or response processing continues without error. Any subsequent extensions in the extension chain are also executed. When set to FALSE or the default setting of FALSE is used, one of the following happens:
|
292
|
+
* If response headers have not been delivered to the downstream client, a generic 500 error is returned to the client. The error response can be tailored by configuring a custom error response in the load balancer.
|
293
|
+
* If response headers have been delivered, then the HTTP stream to the downstream client is reset.
|
294
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] forward_headers: List of the HTTP headers to forward to the extension (from the client). If omitted, all headers are sent. Each element is a string indicating the header name.
|
295
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Set of labels associated with the AuthzExtension resource.
|
296
|
+
|
297
|
+
**Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
|
298
|
+
Please refer to the field `effective_labels` for all of the labels present on the resource.
|
299
|
+
:param pulumi.Input[str] load_balancing_scheme: All backend services and forwarding rules referenced by this extension must share the same load balancing scheme.
|
300
|
+
For more information, refer to [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service).
|
301
|
+
Possible values are: `INTERNAL_MANAGED`, `EXTERNAL_MANAGED`.
|
302
|
+
:param pulumi.Input[str] location: The location of the resource.
|
303
|
+
|
304
|
+
|
305
|
+
- - -
|
306
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] metadata: The metadata provided here is included as part of the metadata_context (of type google.protobuf.Struct) in the ProcessingRequest message sent to the extension server. The metadata is available under the namespace com.google.authz_extension.<resourceName>. The following variables are supported in the metadata Struct:
|
307
|
+
{forwarding_rule_id} - substituted with the forwarding rule's fully qualified resource name.
|
308
|
+
:param pulumi.Input[str] name: Identifier. Name of the AuthzExtension resource.
|
309
|
+
:param pulumi.Input[str] project: The ID of the project in which the resource belongs.
|
310
|
+
If it is not provided, the provider project is used.
|
311
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
|
312
|
+
and default labels configured on the provider.
|
313
|
+
:param pulumi.Input[str] service: The reference to the service that runs the extension.
|
314
|
+
To configure a callout extension, service must be a fully-qualified reference to a [backend service](https://cloud.google.com/compute/docs/reference/rest/v1/backendServices) in the format:
|
315
|
+
https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/backendServices/{backendService} or https://www.googleapis.com/compute/v1/projects/{project}/global/backendServices/{backendService}.
|
316
|
+
:param pulumi.Input[str] timeout: Specifies the timeout for each individual message on the stream. The timeout must be between 10-10000 milliseconds.
|
317
|
+
:param pulumi.Input[str] update_time: The timestamp when the resource was updated.
|
318
|
+
:param pulumi.Input[str] wire_format: The format of communication supported by the callout extension.
|
319
|
+
Default value is `EXT_PROC_GRPC`.
|
320
|
+
Possible values are: `WIRE_FORMAT_UNSPECIFIED`, `EXT_PROC_GRPC`.
|
321
|
+
"""
|
322
|
+
if authority is not None:
|
323
|
+
pulumi.set(__self__, "authority", authority)
|
324
|
+
if create_time is not None:
|
325
|
+
pulumi.set(__self__, "create_time", create_time)
|
326
|
+
if description is not None:
|
327
|
+
pulumi.set(__self__, "description", description)
|
328
|
+
if effective_labels is not None:
|
329
|
+
pulumi.set(__self__, "effective_labels", effective_labels)
|
330
|
+
if fail_open is not None:
|
331
|
+
pulumi.set(__self__, "fail_open", fail_open)
|
332
|
+
if forward_headers is not None:
|
333
|
+
pulumi.set(__self__, "forward_headers", forward_headers)
|
334
|
+
if labels is not None:
|
335
|
+
pulumi.set(__self__, "labels", labels)
|
336
|
+
if load_balancing_scheme is not None:
|
337
|
+
pulumi.set(__self__, "load_balancing_scheme", load_balancing_scheme)
|
338
|
+
if location is not None:
|
339
|
+
pulumi.set(__self__, "location", location)
|
340
|
+
if metadata is not None:
|
341
|
+
pulumi.set(__self__, "metadata", metadata)
|
342
|
+
if name is not None:
|
343
|
+
pulumi.set(__self__, "name", name)
|
344
|
+
if project is not None:
|
345
|
+
pulumi.set(__self__, "project", project)
|
346
|
+
if pulumi_labels is not None:
|
347
|
+
pulumi.set(__self__, "pulumi_labels", pulumi_labels)
|
348
|
+
if service is not None:
|
349
|
+
pulumi.set(__self__, "service", service)
|
350
|
+
if timeout is not None:
|
351
|
+
pulumi.set(__self__, "timeout", timeout)
|
352
|
+
if update_time is not None:
|
353
|
+
pulumi.set(__self__, "update_time", update_time)
|
354
|
+
if wire_format is not None:
|
355
|
+
pulumi.set(__self__, "wire_format", wire_format)
|
356
|
+
|
357
|
+
@property
|
358
|
+
@pulumi.getter
|
359
|
+
def authority(self) -> Optional[pulumi.Input[str]]:
|
360
|
+
"""
|
361
|
+
The :authority header in the gRPC request sent from Envoy to the extension service.
|
362
|
+
"""
|
363
|
+
return pulumi.get(self, "authority")
|
364
|
+
|
365
|
+
@authority.setter
|
366
|
+
def authority(self, value: Optional[pulumi.Input[str]]):
|
367
|
+
pulumi.set(self, "authority", value)
|
368
|
+
|
369
|
+
@property
|
370
|
+
@pulumi.getter(name="createTime")
|
371
|
+
def create_time(self) -> Optional[pulumi.Input[str]]:
|
372
|
+
"""
|
373
|
+
The timestamp when the resource was created.
|
374
|
+
"""
|
375
|
+
return pulumi.get(self, "create_time")
|
376
|
+
|
377
|
+
@create_time.setter
|
378
|
+
def create_time(self, value: Optional[pulumi.Input[str]]):
|
379
|
+
pulumi.set(self, "create_time", value)
|
380
|
+
|
381
|
+
@property
|
382
|
+
@pulumi.getter
|
383
|
+
def description(self) -> Optional[pulumi.Input[str]]:
|
384
|
+
"""
|
385
|
+
A human-readable description of the resource.
|
386
|
+
"""
|
387
|
+
return pulumi.get(self, "description")
|
388
|
+
|
389
|
+
@description.setter
|
390
|
+
def description(self, value: Optional[pulumi.Input[str]]):
|
391
|
+
pulumi.set(self, "description", value)
|
392
|
+
|
393
|
+
@property
|
394
|
+
@pulumi.getter(name="effectiveLabels")
|
395
|
+
def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
|
396
|
+
"""
|
397
|
+
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
|
398
|
+
"""
|
399
|
+
return pulumi.get(self, "effective_labels")
|
400
|
+
|
401
|
+
@effective_labels.setter
|
402
|
+
def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
|
403
|
+
pulumi.set(self, "effective_labels", value)
|
404
|
+
|
405
|
+
@property
|
406
|
+
@pulumi.getter(name="failOpen")
|
407
|
+
def fail_open(self) -> Optional[pulumi.Input[bool]]:
|
408
|
+
"""
|
409
|
+
Determines how the proxy behaves if the call to the extension fails or times out.
|
410
|
+
When set to TRUE, request or response processing continues without error. Any subsequent extensions in the extension chain are also executed. When set to FALSE or the default setting of FALSE is used, one of the following happens:
|
411
|
+
* If response headers have not been delivered to the downstream client, a generic 500 error is returned to the client. The error response can be tailored by configuring a custom error response in the load balancer.
|
412
|
+
* If response headers have been delivered, then the HTTP stream to the downstream client is reset.
|
413
|
+
"""
|
414
|
+
return pulumi.get(self, "fail_open")
|
415
|
+
|
416
|
+
@fail_open.setter
|
417
|
+
def fail_open(self, value: Optional[pulumi.Input[bool]]):
|
418
|
+
pulumi.set(self, "fail_open", value)
|
419
|
+
|
420
|
+
@property
|
421
|
+
@pulumi.getter(name="forwardHeaders")
|
422
|
+
def forward_headers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
|
423
|
+
"""
|
424
|
+
List of the HTTP headers to forward to the extension (from the client). If omitted, all headers are sent. Each element is a string indicating the header name.
|
425
|
+
"""
|
426
|
+
return pulumi.get(self, "forward_headers")
|
427
|
+
|
428
|
+
@forward_headers.setter
|
429
|
+
def forward_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
|
430
|
+
pulumi.set(self, "forward_headers", value)
|
431
|
+
|
432
|
+
@property
|
433
|
+
@pulumi.getter
|
434
|
+
def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
|
435
|
+
"""
|
436
|
+
Set of labels associated with the AuthzExtension resource.
|
437
|
+
|
438
|
+
**Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
|
439
|
+
Please refer to the field `effective_labels` for all of the labels present on the resource.
|
440
|
+
"""
|
441
|
+
return pulumi.get(self, "labels")
|
442
|
+
|
443
|
+
@labels.setter
|
444
|
+
def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
|
445
|
+
pulumi.set(self, "labels", value)
|
446
|
+
|
447
|
+
@property
|
448
|
+
@pulumi.getter(name="loadBalancingScheme")
|
449
|
+
def load_balancing_scheme(self) -> Optional[pulumi.Input[str]]:
|
450
|
+
"""
|
451
|
+
All backend services and forwarding rules referenced by this extension must share the same load balancing scheme.
|
452
|
+
For more information, refer to [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service).
|
453
|
+
Possible values are: `INTERNAL_MANAGED`, `EXTERNAL_MANAGED`.
|
454
|
+
"""
|
455
|
+
return pulumi.get(self, "load_balancing_scheme")
|
456
|
+
|
457
|
+
@load_balancing_scheme.setter
|
458
|
+
def load_balancing_scheme(self, value: Optional[pulumi.Input[str]]):
|
459
|
+
pulumi.set(self, "load_balancing_scheme", value)
|
460
|
+
|
461
|
+
@property
|
462
|
+
@pulumi.getter
|
463
|
+
def location(self) -> Optional[pulumi.Input[str]]:
|
464
|
+
"""
|
465
|
+
The location of the resource.
|
466
|
+
|
467
|
+
|
468
|
+
- - -
|
469
|
+
"""
|
470
|
+
return pulumi.get(self, "location")
|
471
|
+
|
472
|
+
@location.setter
|
473
|
+
def location(self, value: Optional[pulumi.Input[str]]):
|
474
|
+
pulumi.set(self, "location", value)
|
475
|
+
|
476
|
+
@property
|
477
|
+
@pulumi.getter
|
478
|
+
def metadata(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
|
479
|
+
"""
|
480
|
+
The metadata provided here is included as part of the metadata_context (of type google.protobuf.Struct) in the ProcessingRequest message sent to the extension server. The metadata is available under the namespace com.google.authz_extension.<resourceName>. The following variables are supported in the metadata Struct:
|
481
|
+
{forwarding_rule_id} - substituted with the forwarding rule's fully qualified resource name.
|
482
|
+
"""
|
483
|
+
return pulumi.get(self, "metadata")
|
484
|
+
|
485
|
+
@metadata.setter
|
486
|
+
def metadata(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
|
487
|
+
pulumi.set(self, "metadata", value)
|
488
|
+
|
489
|
+
@property
|
490
|
+
@pulumi.getter
|
491
|
+
def name(self) -> Optional[pulumi.Input[str]]:
|
492
|
+
"""
|
493
|
+
Identifier. Name of the AuthzExtension resource.
|
494
|
+
"""
|
495
|
+
return pulumi.get(self, "name")
|
496
|
+
|
497
|
+
@name.setter
|
498
|
+
def name(self, value: Optional[pulumi.Input[str]]):
|
499
|
+
pulumi.set(self, "name", value)
|
500
|
+
|
501
|
+
@property
|
502
|
+
@pulumi.getter
|
503
|
+
def project(self) -> Optional[pulumi.Input[str]]:
|
504
|
+
"""
|
505
|
+
The ID of the project in which the resource belongs.
|
506
|
+
If it is not provided, the provider project is used.
|
507
|
+
"""
|
508
|
+
return pulumi.get(self, "project")
|
509
|
+
|
510
|
+
@project.setter
|
511
|
+
def project(self, value: Optional[pulumi.Input[str]]):
|
512
|
+
pulumi.set(self, "project", value)
|
513
|
+
|
514
|
+
@property
|
515
|
+
@pulumi.getter(name="pulumiLabels")
|
516
|
+
def pulumi_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
|
517
|
+
"""
|
518
|
+
The combination of labels configured directly on the resource
|
519
|
+
and default labels configured on the provider.
|
520
|
+
"""
|
521
|
+
return pulumi.get(self, "pulumi_labels")
|
522
|
+
|
523
|
+
@pulumi_labels.setter
|
524
|
+
def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
|
525
|
+
pulumi.set(self, "pulumi_labels", value)
|
526
|
+
|
527
|
+
@property
|
528
|
+
@pulumi.getter
|
529
|
+
def service(self) -> Optional[pulumi.Input[str]]:
|
530
|
+
"""
|
531
|
+
The reference to the service that runs the extension.
|
532
|
+
To configure a callout extension, service must be a fully-qualified reference to a [backend service](https://cloud.google.com/compute/docs/reference/rest/v1/backendServices) in the format:
|
533
|
+
https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/backendServices/{backendService} or https://www.googleapis.com/compute/v1/projects/{project}/global/backendServices/{backendService}.
|
534
|
+
"""
|
535
|
+
return pulumi.get(self, "service")
|
536
|
+
|
537
|
+
@service.setter
|
538
|
+
def service(self, value: Optional[pulumi.Input[str]]):
|
539
|
+
pulumi.set(self, "service", value)
|
540
|
+
|
541
|
+
@property
|
542
|
+
@pulumi.getter
|
543
|
+
def timeout(self) -> Optional[pulumi.Input[str]]:
|
544
|
+
"""
|
545
|
+
Specifies the timeout for each individual message on the stream. The timeout must be between 10-10000 milliseconds.
|
546
|
+
"""
|
547
|
+
return pulumi.get(self, "timeout")
|
548
|
+
|
549
|
+
@timeout.setter
|
550
|
+
def timeout(self, value: Optional[pulumi.Input[str]]):
|
551
|
+
pulumi.set(self, "timeout", value)
|
552
|
+
|
553
|
+
@property
|
554
|
+
@pulumi.getter(name="updateTime")
|
555
|
+
def update_time(self) -> Optional[pulumi.Input[str]]:
|
556
|
+
"""
|
557
|
+
The timestamp when the resource was updated.
|
558
|
+
"""
|
559
|
+
return pulumi.get(self, "update_time")
|
560
|
+
|
561
|
+
@update_time.setter
|
562
|
+
def update_time(self, value: Optional[pulumi.Input[str]]):
|
563
|
+
pulumi.set(self, "update_time", value)
|
564
|
+
|
565
|
+
@property
|
566
|
+
@pulumi.getter(name="wireFormat")
|
567
|
+
def wire_format(self) -> Optional[pulumi.Input[str]]:
|
568
|
+
"""
|
569
|
+
The format of communication supported by the callout extension.
|
570
|
+
Default value is `EXT_PROC_GRPC`.
|
571
|
+
Possible values are: `WIRE_FORMAT_UNSPECIFIED`, `EXT_PROC_GRPC`.
|
572
|
+
"""
|
573
|
+
return pulumi.get(self, "wire_format")
|
574
|
+
|
575
|
+
@wire_format.setter
|
576
|
+
def wire_format(self, value: Optional[pulumi.Input[str]]):
|
577
|
+
pulumi.set(self, "wire_format", value)
|
578
|
+
|
579
|
+
|
580
|
+
class AuthzExtension(pulumi.CustomResource):
|
581
|
+
@overload
|
582
|
+
def __init__(__self__,
|
583
|
+
resource_name: str,
|
584
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
585
|
+
authority: Optional[pulumi.Input[str]] = None,
|
586
|
+
description: Optional[pulumi.Input[str]] = None,
|
587
|
+
fail_open: Optional[pulumi.Input[bool]] = None,
|
588
|
+
forward_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
589
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
590
|
+
load_balancing_scheme: Optional[pulumi.Input[str]] = None,
|
591
|
+
location: Optional[pulumi.Input[str]] = None,
|
592
|
+
metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
593
|
+
name: Optional[pulumi.Input[str]] = None,
|
594
|
+
project: Optional[pulumi.Input[str]] = None,
|
595
|
+
service: Optional[pulumi.Input[str]] = None,
|
596
|
+
timeout: Optional[pulumi.Input[str]] = None,
|
597
|
+
wire_format: Optional[pulumi.Input[str]] = None,
|
598
|
+
__props__=None):
|
599
|
+
"""
|
600
|
+
AuthzExtension is a resource that allows traffic forwarding to a callout backend service to make an authorization decision.
|
601
|
+
|
602
|
+
To get more information about AuthzExtension, see:
|
603
|
+
|
604
|
+
* [API documentation](https://cloud.google.com/service-extensions/docs/reference/rest/v1beta1/projects.locations.authzExtensions)
|
605
|
+
|
606
|
+
## Example Usage
|
607
|
+
|
608
|
+
### Network Services Authz Extension Basic
|
609
|
+
|
610
|
+
```python
|
611
|
+
import pulumi
|
612
|
+
import pulumi_gcp as gcp
|
613
|
+
|
614
|
+
default = gcp.compute.RegionBackendService("default",
|
615
|
+
name="authz-service",
|
616
|
+
project="my-project-name",
|
617
|
+
region="us-west1",
|
618
|
+
protocol="HTTP2",
|
619
|
+
load_balancing_scheme="INTERNAL_MANAGED",
|
620
|
+
port_name="grpc")
|
621
|
+
default_authz_extension = gcp.networkservices.AuthzExtension("default",
|
622
|
+
name="my-authz-ext",
|
623
|
+
project="my-project-name",
|
624
|
+
location="us-west1",
|
625
|
+
description="my description",
|
626
|
+
load_balancing_scheme="INTERNAL_MANAGED",
|
627
|
+
authority="ext11.com",
|
628
|
+
service=default.self_link,
|
629
|
+
timeout="0.1s",
|
630
|
+
fail_open=False,
|
631
|
+
forward_headers=["Authorization"])
|
632
|
+
```
|
633
|
+
|
634
|
+
## Import
|
635
|
+
|
636
|
+
AuthzExtension can be imported using any of these accepted formats:
|
637
|
+
|
638
|
+
* `projects/{{project}}/locations/{{location}}/authzExtensions/{{name}}`
|
639
|
+
|
640
|
+
* `{{project}}/{{location}}/{{name}}`
|
641
|
+
|
642
|
+
* `{{location}}/{{name}}`
|
643
|
+
|
644
|
+
* `{{name}}`
|
645
|
+
|
646
|
+
When using the `pulumi import` command, AuthzExtension can be imported using one of the formats above. For example:
|
647
|
+
|
648
|
+
```sh
|
649
|
+
$ pulumi import gcp:networkservices/authzExtension:AuthzExtension default projects/{{project}}/locations/{{location}}/authzExtensions/{{name}}
|
650
|
+
```
|
651
|
+
|
652
|
+
```sh
|
653
|
+
$ pulumi import gcp:networkservices/authzExtension:AuthzExtension default {{project}}/{{location}}/{{name}}
|
654
|
+
```
|
655
|
+
|
656
|
+
```sh
|
657
|
+
$ pulumi import gcp:networkservices/authzExtension:AuthzExtension default {{location}}/{{name}}
|
658
|
+
```
|
659
|
+
|
660
|
+
```sh
|
661
|
+
$ pulumi import gcp:networkservices/authzExtension:AuthzExtension default {{name}}
|
662
|
+
```
|
663
|
+
|
664
|
+
:param str resource_name: The name of the resource.
|
665
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
666
|
+
:param pulumi.Input[str] authority: The :authority header in the gRPC request sent from Envoy to the extension service.
|
667
|
+
:param pulumi.Input[str] description: A human-readable description of the resource.
|
668
|
+
:param pulumi.Input[bool] fail_open: Determines how the proxy behaves if the call to the extension fails or times out.
|
669
|
+
When set to TRUE, request or response processing continues without error. Any subsequent extensions in the extension chain are also executed. When set to FALSE or the default setting of FALSE is used, one of the following happens:
|
670
|
+
* If response headers have not been delivered to the downstream client, a generic 500 error is returned to the client. The error response can be tailored by configuring a custom error response in the load balancer.
|
671
|
+
* If response headers have been delivered, then the HTTP stream to the downstream client is reset.
|
672
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] forward_headers: List of the HTTP headers to forward to the extension (from the client). If omitted, all headers are sent. Each element is a string indicating the header name.
|
673
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Set of labels associated with the AuthzExtension resource.
|
674
|
+
|
675
|
+
**Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
|
676
|
+
Please refer to the field `effective_labels` for all of the labels present on the resource.
|
677
|
+
:param pulumi.Input[str] load_balancing_scheme: All backend services and forwarding rules referenced by this extension must share the same load balancing scheme.
|
678
|
+
For more information, refer to [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service).
|
679
|
+
Possible values are: `INTERNAL_MANAGED`, `EXTERNAL_MANAGED`.
|
680
|
+
:param pulumi.Input[str] location: The location of the resource.
|
681
|
+
|
682
|
+
|
683
|
+
- - -
|
684
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] metadata: The metadata provided here is included as part of the metadata_context (of type google.protobuf.Struct) in the ProcessingRequest message sent to the extension server. The metadata is available under the namespace com.google.authz_extension.<resourceName>. The following variables are supported in the metadata Struct:
|
685
|
+
{forwarding_rule_id} - substituted with the forwarding rule's fully qualified resource name.
|
686
|
+
:param pulumi.Input[str] name: Identifier. Name of the AuthzExtension resource.
|
687
|
+
:param pulumi.Input[str] project: The ID of the project in which the resource belongs.
|
688
|
+
If it is not provided, the provider project is used.
|
689
|
+
:param pulumi.Input[str] service: The reference to the service that runs the extension.
|
690
|
+
To configure a callout extension, service must be a fully-qualified reference to a [backend service](https://cloud.google.com/compute/docs/reference/rest/v1/backendServices) in the format:
|
691
|
+
https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/backendServices/{backendService} or https://www.googleapis.com/compute/v1/projects/{project}/global/backendServices/{backendService}.
|
692
|
+
:param pulumi.Input[str] timeout: Specifies the timeout for each individual message on the stream. The timeout must be between 10-10000 milliseconds.
|
693
|
+
:param pulumi.Input[str] wire_format: The format of communication supported by the callout extension.
|
694
|
+
Default value is `EXT_PROC_GRPC`.
|
695
|
+
Possible values are: `WIRE_FORMAT_UNSPECIFIED`, `EXT_PROC_GRPC`.
|
696
|
+
"""
|
697
|
+
...
|
698
|
+
@overload
|
699
|
+
def __init__(__self__,
|
700
|
+
resource_name: str,
|
701
|
+
args: AuthzExtensionArgs,
|
702
|
+
opts: Optional[pulumi.ResourceOptions] = None):
|
703
|
+
"""
|
704
|
+
AuthzExtension is a resource that allows traffic forwarding to a callout backend service to make an authorization decision.
|
705
|
+
|
706
|
+
To get more information about AuthzExtension, see:
|
707
|
+
|
708
|
+
* [API documentation](https://cloud.google.com/service-extensions/docs/reference/rest/v1beta1/projects.locations.authzExtensions)
|
709
|
+
|
710
|
+
## Example Usage
|
711
|
+
|
712
|
+
### Network Services Authz Extension Basic
|
713
|
+
|
714
|
+
```python
|
715
|
+
import pulumi
|
716
|
+
import pulumi_gcp as gcp
|
717
|
+
|
718
|
+
default = gcp.compute.RegionBackendService("default",
|
719
|
+
name="authz-service",
|
720
|
+
project="my-project-name",
|
721
|
+
region="us-west1",
|
722
|
+
protocol="HTTP2",
|
723
|
+
load_balancing_scheme="INTERNAL_MANAGED",
|
724
|
+
port_name="grpc")
|
725
|
+
default_authz_extension = gcp.networkservices.AuthzExtension("default",
|
726
|
+
name="my-authz-ext",
|
727
|
+
project="my-project-name",
|
728
|
+
location="us-west1",
|
729
|
+
description="my description",
|
730
|
+
load_balancing_scheme="INTERNAL_MANAGED",
|
731
|
+
authority="ext11.com",
|
732
|
+
service=default.self_link,
|
733
|
+
timeout="0.1s",
|
734
|
+
fail_open=False,
|
735
|
+
forward_headers=["Authorization"])
|
736
|
+
```
|
737
|
+
|
738
|
+
## Import
|
739
|
+
|
740
|
+
AuthzExtension can be imported using any of these accepted formats:
|
741
|
+
|
742
|
+
* `projects/{{project}}/locations/{{location}}/authzExtensions/{{name}}`
|
743
|
+
|
744
|
+
* `{{project}}/{{location}}/{{name}}`
|
745
|
+
|
746
|
+
* `{{location}}/{{name}}`
|
747
|
+
|
748
|
+
* `{{name}}`
|
749
|
+
|
750
|
+
When using the `pulumi import` command, AuthzExtension can be imported using one of the formats above. For example:
|
751
|
+
|
752
|
+
```sh
|
753
|
+
$ pulumi import gcp:networkservices/authzExtension:AuthzExtension default projects/{{project}}/locations/{{location}}/authzExtensions/{{name}}
|
754
|
+
```
|
755
|
+
|
756
|
+
```sh
|
757
|
+
$ pulumi import gcp:networkservices/authzExtension:AuthzExtension default {{project}}/{{location}}/{{name}}
|
758
|
+
```
|
759
|
+
|
760
|
+
```sh
|
761
|
+
$ pulumi import gcp:networkservices/authzExtension:AuthzExtension default {{location}}/{{name}}
|
762
|
+
```
|
763
|
+
|
764
|
+
```sh
|
765
|
+
$ pulumi import gcp:networkservices/authzExtension:AuthzExtension default {{name}}
|
766
|
+
```
|
767
|
+
|
768
|
+
:param str resource_name: The name of the resource.
|
769
|
+
:param AuthzExtensionArgs args: The arguments to use to populate this resource's properties.
|
770
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
771
|
+
"""
|
772
|
+
...
|
773
|
+
def __init__(__self__, resource_name: str, *args, **kwargs):
|
774
|
+
resource_args, opts = _utilities.get_resource_args_opts(AuthzExtensionArgs, pulumi.ResourceOptions, *args, **kwargs)
|
775
|
+
if resource_args is not None:
|
776
|
+
__self__._internal_init(resource_name, opts, **resource_args.__dict__)
|
777
|
+
else:
|
778
|
+
__self__._internal_init(resource_name, *args, **kwargs)
|
779
|
+
|
780
|
+
def _internal_init(__self__,
|
781
|
+
resource_name: str,
|
782
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
783
|
+
authority: Optional[pulumi.Input[str]] = None,
|
784
|
+
description: Optional[pulumi.Input[str]] = None,
|
785
|
+
fail_open: Optional[pulumi.Input[bool]] = None,
|
786
|
+
forward_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
787
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
788
|
+
load_balancing_scheme: Optional[pulumi.Input[str]] = None,
|
789
|
+
location: Optional[pulumi.Input[str]] = None,
|
790
|
+
metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
791
|
+
name: Optional[pulumi.Input[str]] = None,
|
792
|
+
project: Optional[pulumi.Input[str]] = None,
|
793
|
+
service: Optional[pulumi.Input[str]] = None,
|
794
|
+
timeout: Optional[pulumi.Input[str]] = None,
|
795
|
+
wire_format: Optional[pulumi.Input[str]] = None,
|
796
|
+
__props__=None):
|
797
|
+
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
|
798
|
+
if not isinstance(opts, pulumi.ResourceOptions):
|
799
|
+
raise TypeError('Expected resource options to be a ResourceOptions instance')
|
800
|
+
if opts.id is None:
|
801
|
+
if __props__ is not None:
|
802
|
+
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
|
803
|
+
__props__ = AuthzExtensionArgs.__new__(AuthzExtensionArgs)
|
804
|
+
|
805
|
+
if authority is None and not opts.urn:
|
806
|
+
raise TypeError("Missing required property 'authority'")
|
807
|
+
__props__.__dict__["authority"] = authority
|
808
|
+
__props__.__dict__["description"] = description
|
809
|
+
__props__.__dict__["fail_open"] = fail_open
|
810
|
+
__props__.__dict__["forward_headers"] = forward_headers
|
811
|
+
__props__.__dict__["labels"] = labels
|
812
|
+
if load_balancing_scheme is None and not opts.urn:
|
813
|
+
raise TypeError("Missing required property 'load_balancing_scheme'")
|
814
|
+
__props__.__dict__["load_balancing_scheme"] = load_balancing_scheme
|
815
|
+
if location is None and not opts.urn:
|
816
|
+
raise TypeError("Missing required property 'location'")
|
817
|
+
__props__.__dict__["location"] = location
|
818
|
+
__props__.__dict__["metadata"] = metadata
|
819
|
+
__props__.__dict__["name"] = name
|
820
|
+
__props__.__dict__["project"] = project
|
821
|
+
if service is None and not opts.urn:
|
822
|
+
raise TypeError("Missing required property 'service'")
|
823
|
+
__props__.__dict__["service"] = service
|
824
|
+
if timeout is None and not opts.urn:
|
825
|
+
raise TypeError("Missing required property 'timeout'")
|
826
|
+
__props__.__dict__["timeout"] = timeout
|
827
|
+
__props__.__dict__["wire_format"] = wire_format
|
828
|
+
__props__.__dict__["create_time"] = None
|
829
|
+
__props__.__dict__["effective_labels"] = None
|
830
|
+
__props__.__dict__["pulumi_labels"] = None
|
831
|
+
__props__.__dict__["update_time"] = None
|
832
|
+
secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["effectiveLabels", "pulumiLabels"])
|
833
|
+
opts = pulumi.ResourceOptions.merge(opts, secret_opts)
|
834
|
+
super(AuthzExtension, __self__).__init__(
|
835
|
+
'gcp:networkservices/authzExtension:AuthzExtension',
|
836
|
+
resource_name,
|
837
|
+
__props__,
|
838
|
+
opts)
|
839
|
+
|
840
|
+
@staticmethod
|
841
|
+
def get(resource_name: str,
|
842
|
+
id: pulumi.Input[str],
|
843
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
844
|
+
authority: Optional[pulumi.Input[str]] = None,
|
845
|
+
create_time: Optional[pulumi.Input[str]] = None,
|
846
|
+
description: Optional[pulumi.Input[str]] = None,
|
847
|
+
effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
848
|
+
fail_open: Optional[pulumi.Input[bool]] = None,
|
849
|
+
forward_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
850
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
851
|
+
load_balancing_scheme: Optional[pulumi.Input[str]] = None,
|
852
|
+
location: Optional[pulumi.Input[str]] = None,
|
853
|
+
metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
854
|
+
name: Optional[pulumi.Input[str]] = None,
|
855
|
+
project: Optional[pulumi.Input[str]] = None,
|
856
|
+
pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
857
|
+
service: Optional[pulumi.Input[str]] = None,
|
858
|
+
timeout: Optional[pulumi.Input[str]] = None,
|
859
|
+
update_time: Optional[pulumi.Input[str]] = None,
|
860
|
+
wire_format: Optional[pulumi.Input[str]] = None) -> 'AuthzExtension':
|
861
|
+
"""
|
862
|
+
Get an existing AuthzExtension resource's state with the given name, id, and optional extra
|
863
|
+
properties used to qualify the lookup.
|
864
|
+
|
865
|
+
:param str resource_name: The unique name of the resulting resource.
|
866
|
+
:param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
|
867
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
868
|
+
:param pulumi.Input[str] authority: The :authority header in the gRPC request sent from Envoy to the extension service.
|
869
|
+
:param pulumi.Input[str] create_time: The timestamp when the resource was created.
|
870
|
+
:param pulumi.Input[str] description: A human-readable description of the resource.
|
871
|
+
: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.
|
872
|
+
:param pulumi.Input[bool] fail_open: Determines how the proxy behaves if the call to the extension fails or times out.
|
873
|
+
When set to TRUE, request or response processing continues without error. Any subsequent extensions in the extension chain are also executed. When set to FALSE or the default setting of FALSE is used, one of the following happens:
|
874
|
+
* If response headers have not been delivered to the downstream client, a generic 500 error is returned to the client. The error response can be tailored by configuring a custom error response in the load balancer.
|
875
|
+
* If response headers have been delivered, then the HTTP stream to the downstream client is reset.
|
876
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] forward_headers: List of the HTTP headers to forward to the extension (from the client). If omitted, all headers are sent. Each element is a string indicating the header name.
|
877
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Set of labels associated with the AuthzExtension resource.
|
878
|
+
|
879
|
+
**Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
|
880
|
+
Please refer to the field `effective_labels` for all of the labels present on the resource.
|
881
|
+
:param pulumi.Input[str] load_balancing_scheme: All backend services and forwarding rules referenced by this extension must share the same load balancing scheme.
|
882
|
+
For more information, refer to [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service).
|
883
|
+
Possible values are: `INTERNAL_MANAGED`, `EXTERNAL_MANAGED`.
|
884
|
+
:param pulumi.Input[str] location: The location of the resource.
|
885
|
+
|
886
|
+
|
887
|
+
- - -
|
888
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] metadata: The metadata provided here is included as part of the metadata_context (of type google.protobuf.Struct) in the ProcessingRequest message sent to the extension server. The metadata is available under the namespace com.google.authz_extension.<resourceName>. The following variables are supported in the metadata Struct:
|
889
|
+
{forwarding_rule_id} - substituted with the forwarding rule's fully qualified resource name.
|
890
|
+
:param pulumi.Input[str] name: Identifier. Name of the AuthzExtension resource.
|
891
|
+
:param pulumi.Input[str] project: The ID of the project in which the resource belongs.
|
892
|
+
If it is not provided, the provider project is used.
|
893
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
|
894
|
+
and default labels configured on the provider.
|
895
|
+
:param pulumi.Input[str] service: The reference to the service that runs the extension.
|
896
|
+
To configure a callout extension, service must be a fully-qualified reference to a [backend service](https://cloud.google.com/compute/docs/reference/rest/v1/backendServices) in the format:
|
897
|
+
https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/backendServices/{backendService} or https://www.googleapis.com/compute/v1/projects/{project}/global/backendServices/{backendService}.
|
898
|
+
:param pulumi.Input[str] timeout: Specifies the timeout for each individual message on the stream. The timeout must be between 10-10000 milliseconds.
|
899
|
+
:param pulumi.Input[str] update_time: The timestamp when the resource was updated.
|
900
|
+
:param pulumi.Input[str] wire_format: The format of communication supported by the callout extension.
|
901
|
+
Default value is `EXT_PROC_GRPC`.
|
902
|
+
Possible values are: `WIRE_FORMAT_UNSPECIFIED`, `EXT_PROC_GRPC`.
|
903
|
+
"""
|
904
|
+
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
|
905
|
+
|
906
|
+
__props__ = _AuthzExtensionState.__new__(_AuthzExtensionState)
|
907
|
+
|
908
|
+
__props__.__dict__["authority"] = authority
|
909
|
+
__props__.__dict__["create_time"] = create_time
|
910
|
+
__props__.__dict__["description"] = description
|
911
|
+
__props__.__dict__["effective_labels"] = effective_labels
|
912
|
+
__props__.__dict__["fail_open"] = fail_open
|
913
|
+
__props__.__dict__["forward_headers"] = forward_headers
|
914
|
+
__props__.__dict__["labels"] = labels
|
915
|
+
__props__.__dict__["load_balancing_scheme"] = load_balancing_scheme
|
916
|
+
__props__.__dict__["location"] = location
|
917
|
+
__props__.__dict__["metadata"] = metadata
|
918
|
+
__props__.__dict__["name"] = name
|
919
|
+
__props__.__dict__["project"] = project
|
920
|
+
__props__.__dict__["pulumi_labels"] = pulumi_labels
|
921
|
+
__props__.__dict__["service"] = service
|
922
|
+
__props__.__dict__["timeout"] = timeout
|
923
|
+
__props__.__dict__["update_time"] = update_time
|
924
|
+
__props__.__dict__["wire_format"] = wire_format
|
925
|
+
return AuthzExtension(resource_name, opts=opts, __props__=__props__)
|
926
|
+
|
927
|
+
@property
|
928
|
+
@pulumi.getter
|
929
|
+
def authority(self) -> pulumi.Output[str]:
|
930
|
+
"""
|
931
|
+
The :authority header in the gRPC request sent from Envoy to the extension service.
|
932
|
+
"""
|
933
|
+
return pulumi.get(self, "authority")
|
934
|
+
|
935
|
+
@property
|
936
|
+
@pulumi.getter(name="createTime")
|
937
|
+
def create_time(self) -> pulumi.Output[str]:
|
938
|
+
"""
|
939
|
+
The timestamp when the resource was created.
|
940
|
+
"""
|
941
|
+
return pulumi.get(self, "create_time")
|
942
|
+
|
943
|
+
@property
|
944
|
+
@pulumi.getter
|
945
|
+
def description(self) -> pulumi.Output[Optional[str]]:
|
946
|
+
"""
|
947
|
+
A human-readable description of the resource.
|
948
|
+
"""
|
949
|
+
return pulumi.get(self, "description")
|
950
|
+
|
951
|
+
@property
|
952
|
+
@pulumi.getter(name="effectiveLabels")
|
953
|
+
def effective_labels(self) -> pulumi.Output[Mapping[str, str]]:
|
954
|
+
"""
|
955
|
+
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
|
956
|
+
"""
|
957
|
+
return pulumi.get(self, "effective_labels")
|
958
|
+
|
959
|
+
@property
|
960
|
+
@pulumi.getter(name="failOpen")
|
961
|
+
def fail_open(self) -> pulumi.Output[bool]:
|
962
|
+
"""
|
963
|
+
Determines how the proxy behaves if the call to the extension fails or times out.
|
964
|
+
When set to TRUE, request or response processing continues without error. Any subsequent extensions in the extension chain are also executed. When set to FALSE or the default setting of FALSE is used, one of the following happens:
|
965
|
+
* If response headers have not been delivered to the downstream client, a generic 500 error is returned to the client. The error response can be tailored by configuring a custom error response in the load balancer.
|
966
|
+
* If response headers have been delivered, then the HTTP stream to the downstream client is reset.
|
967
|
+
"""
|
968
|
+
return pulumi.get(self, "fail_open")
|
969
|
+
|
970
|
+
@property
|
971
|
+
@pulumi.getter(name="forwardHeaders")
|
972
|
+
def forward_headers(self) -> pulumi.Output[Optional[Sequence[str]]]:
|
973
|
+
"""
|
974
|
+
List of the HTTP headers to forward to the extension (from the client). If omitted, all headers are sent. Each element is a string indicating the header name.
|
975
|
+
"""
|
976
|
+
return pulumi.get(self, "forward_headers")
|
977
|
+
|
978
|
+
@property
|
979
|
+
@pulumi.getter
|
980
|
+
def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
|
981
|
+
"""
|
982
|
+
Set of labels associated with the AuthzExtension resource.
|
983
|
+
|
984
|
+
**Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
|
985
|
+
Please refer to the field `effective_labels` for all of the labels present on the resource.
|
986
|
+
"""
|
987
|
+
return pulumi.get(self, "labels")
|
988
|
+
|
989
|
+
@property
|
990
|
+
@pulumi.getter(name="loadBalancingScheme")
|
991
|
+
def load_balancing_scheme(self) -> pulumi.Output[str]:
|
992
|
+
"""
|
993
|
+
All backend services and forwarding rules referenced by this extension must share the same load balancing scheme.
|
994
|
+
For more information, refer to [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service).
|
995
|
+
Possible values are: `INTERNAL_MANAGED`, `EXTERNAL_MANAGED`.
|
996
|
+
"""
|
997
|
+
return pulumi.get(self, "load_balancing_scheme")
|
998
|
+
|
999
|
+
@property
|
1000
|
+
@pulumi.getter
|
1001
|
+
def location(self) -> pulumi.Output[str]:
|
1002
|
+
"""
|
1003
|
+
The location of the resource.
|
1004
|
+
|
1005
|
+
|
1006
|
+
- - -
|
1007
|
+
"""
|
1008
|
+
return pulumi.get(self, "location")
|
1009
|
+
|
1010
|
+
@property
|
1011
|
+
@pulumi.getter
|
1012
|
+
def metadata(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
|
1013
|
+
"""
|
1014
|
+
The metadata provided here is included as part of the metadata_context (of type google.protobuf.Struct) in the ProcessingRequest message sent to the extension server. The metadata is available under the namespace com.google.authz_extension.<resourceName>. The following variables are supported in the metadata Struct:
|
1015
|
+
{forwarding_rule_id} - substituted with the forwarding rule's fully qualified resource name.
|
1016
|
+
"""
|
1017
|
+
return pulumi.get(self, "metadata")
|
1018
|
+
|
1019
|
+
@property
|
1020
|
+
@pulumi.getter
|
1021
|
+
def name(self) -> pulumi.Output[str]:
|
1022
|
+
"""
|
1023
|
+
Identifier. Name of the AuthzExtension resource.
|
1024
|
+
"""
|
1025
|
+
return pulumi.get(self, "name")
|
1026
|
+
|
1027
|
+
@property
|
1028
|
+
@pulumi.getter
|
1029
|
+
def project(self) -> pulumi.Output[str]:
|
1030
|
+
"""
|
1031
|
+
The ID of the project in which the resource belongs.
|
1032
|
+
If it is not provided, the provider project is used.
|
1033
|
+
"""
|
1034
|
+
return pulumi.get(self, "project")
|
1035
|
+
|
1036
|
+
@property
|
1037
|
+
@pulumi.getter(name="pulumiLabels")
|
1038
|
+
def pulumi_labels(self) -> pulumi.Output[Mapping[str, str]]:
|
1039
|
+
"""
|
1040
|
+
The combination of labels configured directly on the resource
|
1041
|
+
and default labels configured on the provider.
|
1042
|
+
"""
|
1043
|
+
return pulumi.get(self, "pulumi_labels")
|
1044
|
+
|
1045
|
+
@property
|
1046
|
+
@pulumi.getter
|
1047
|
+
def service(self) -> pulumi.Output[str]:
|
1048
|
+
"""
|
1049
|
+
The reference to the service that runs the extension.
|
1050
|
+
To configure a callout extension, service must be a fully-qualified reference to a [backend service](https://cloud.google.com/compute/docs/reference/rest/v1/backendServices) in the format:
|
1051
|
+
https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/backendServices/{backendService} or https://www.googleapis.com/compute/v1/projects/{project}/global/backendServices/{backendService}.
|
1052
|
+
"""
|
1053
|
+
return pulumi.get(self, "service")
|
1054
|
+
|
1055
|
+
@property
|
1056
|
+
@pulumi.getter
|
1057
|
+
def timeout(self) -> pulumi.Output[str]:
|
1058
|
+
"""
|
1059
|
+
Specifies the timeout for each individual message on the stream. The timeout must be between 10-10000 milliseconds.
|
1060
|
+
"""
|
1061
|
+
return pulumi.get(self, "timeout")
|
1062
|
+
|
1063
|
+
@property
|
1064
|
+
@pulumi.getter(name="updateTime")
|
1065
|
+
def update_time(self) -> pulumi.Output[str]:
|
1066
|
+
"""
|
1067
|
+
The timestamp when the resource was updated.
|
1068
|
+
"""
|
1069
|
+
return pulumi.get(self, "update_time")
|
1070
|
+
|
1071
|
+
@property
|
1072
|
+
@pulumi.getter(name="wireFormat")
|
1073
|
+
def wire_format(self) -> pulumi.Output[Optional[str]]:
|
1074
|
+
"""
|
1075
|
+
The format of communication supported by the callout extension.
|
1076
|
+
Default value is `EXT_PROC_GRPC`.
|
1077
|
+
Possible values are: `WIRE_FORMAT_UNSPECIFIED`, `EXT_PROC_GRPC`.
|
1078
|
+
"""
|
1079
|
+
return pulumi.get(self, "wire_format")
|
1080
|
+
|