pulumi-gcp 8.11.0a1734385115__py3-none-any.whl → 8.12.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 (48) hide show
  1. pulumi_gcp/__init__.py +32 -0
  2. pulumi_gcp/accesscontextmanager/_inputs.py +0 -29
  3. pulumi_gcp/accesscontextmanager/outputs.py +0 -18
  4. pulumi_gcp/accesscontextmanager/service_perimeter.py +0 -36
  5. pulumi_gcp/artifactregistry/get_repository_iam_policy.py +12 -4
  6. pulumi_gcp/artifactregistry/repository.py +86 -39
  7. pulumi_gcp/artifactregistry/repository_iam_binding.py +42 -14
  8. pulumi_gcp/artifactregistry/repository_iam_member.py +42 -14
  9. pulumi_gcp/artifactregistry/repository_iam_policy.py +42 -14
  10. pulumi_gcp/compute/get_global_forwarding_rule.py +12 -1
  11. pulumi_gcp/compute/global_forwarding_rule.py +114 -2
  12. pulumi_gcp/compute/project_cloud_armor_tier.py +7 -7
  13. pulumi_gcp/firebase/_inputs.py +99 -0
  14. pulumi_gcp/firebase/database_instance.py +24 -6
  15. pulumi_gcp/firebase/hosting_version.py +96 -0
  16. pulumi_gcp/firebase/outputs.py +59 -0
  17. pulumi_gcp/firebase/project.py +6 -6
  18. pulumi_gcp/identityplatform/_inputs.py +6 -6
  19. pulumi_gcp/identityplatform/config.py +2 -2
  20. pulumi_gcp/identityplatform/outputs.py +4 -4
  21. pulumi_gcp/looker/instance.py +35 -14
  22. pulumi_gcp/networkconnectivity/_inputs.py +10 -12
  23. pulumi_gcp/networkconnectivity/outputs.py +6 -8
  24. pulumi_gcp/networksecurity/__init__.py +3 -0
  25. pulumi_gcp/networksecurity/_inputs.py +1903 -0
  26. pulumi_gcp/networksecurity/authz_policy.py +1008 -0
  27. pulumi_gcp/networksecurity/intercept_deployment.py +846 -0
  28. pulumi_gcp/networksecurity/intercept_deployment_group.py +752 -0
  29. pulumi_gcp/networksecurity/outputs.py +1393 -0
  30. pulumi_gcp/networkservices/__init__.py +1 -0
  31. pulumi_gcp/networkservices/authz_extension.py +1080 -0
  32. pulumi_gcp/oracledatabase/autonomous_database.py +4 -4
  33. pulumi_gcp/orgpolicy/_inputs.py +40 -0
  34. pulumi_gcp/orgpolicy/outputs.py +24 -0
  35. pulumi_gcp/orgpolicy/policy.py +64 -8
  36. pulumi_gcp/pulumi-plugin.json +1 -1
  37. pulumi_gcp/sql/_inputs.py +3 -3
  38. pulumi_gcp/sql/database_instance.py +14 -14
  39. pulumi_gcp/sql/outputs.py +2 -2
  40. pulumi_gcp/storage/_inputs.py +53 -6
  41. pulumi_gcp/storage/outputs.py +33 -4
  42. pulumi_gcp/tpu/_inputs.py +26 -18
  43. pulumi_gcp/tpu/outputs.py +18 -12
  44. pulumi_gcp/tpu/v2_vm.py +63 -0
  45. {pulumi_gcp-8.11.0a1734385115.dist-info → pulumi_gcp-8.12.0.dist-info}/METADATA +1 -1
  46. {pulumi_gcp-8.11.0a1734385115.dist-info → pulumi_gcp-8.12.0.dist-info}/RECORD +48 -44
  47. {pulumi_gcp-8.11.0a1734385115.dist-info → pulumi_gcp-8.12.0.dist-info}/WHEEL +0 -0
  48. {pulumi_gcp-8.11.0a1734385115.dist-info → pulumi_gcp-8.12.0.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
+