|
| 1 | +# Copyright 2019 Google LLC |
| 2 | +# |
| 3 | +# Licensed under the Apache License, Version 2.0 (the "License"); |
| 4 | +# you may not use this file except in compliance with the License. |
| 5 | +# You may obtain a copy of the License at |
| 6 | +# |
| 7 | +# http://www.apache.org/licenses/LICENSE-2.0 |
| 8 | +# |
| 9 | +# Unless required by applicable law or agreed to in writing, software |
| 10 | +# distributed under the License is distributed on an "AS IS" BASIS, |
| 11 | +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 12 | +# See the License for the specific language governing permissions and |
| 13 | +# limitations under the License. |
| 14 | + |
| 15 | +# NOTE: This file is auto generated by the elixir code generator program. |
| 16 | +# Do not edit this file manually. |
| 17 | + |
| 18 | +defmodule GoogleApi.NetworkServices.V1.Model.AuthzExtension do |
| 19 | + @moduledoc """ |
| 20 | + `AuthzExtension` is a resource that allows traffic forwarding to a callout backend service to make an authorization decision. |
| 21 | +
|
| 22 | + ## Attributes |
| 23 | +
|
| 24 | + * `authority` (*type:* `String.t`, *default:* `nil`) - Required. The `:authority` header in the gRPC request sent from Envoy to the extension service. |
| 25 | + * `createTime` (*type:* `DateTime.t`, *default:* `nil`) - Output only. The timestamp when the resource was created. |
| 26 | + * `description` (*type:* `String.t`, *default:* `nil`) - Optional. A human-readable description of the resource. |
| 27 | + * `failOpen` (*type:* `boolean()`, *default:* `nil`) - Optional. Determines how the proxy behaves if the call to the extension fails or times out. 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: * 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. * If response headers have been delivered, then the HTTP stream to the downstream client is reset. |
| 28 | + * `forwardHeaders` (*type:* `list(String.t)`, *default:* `nil`) - Optional. 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. |
| 29 | + * `labels` (*type:* `map()`, *default:* `nil`) - Optional. Set of labels associated with the `AuthzExtension` resource. The format must comply with [the requirements for labels](/compute/docs/labeling-resources#requirements) for Google Cloud resources. |
| 30 | + * `loadBalancingScheme` (*type:* `String.t`, *default:* `nil`) - Required. All backend services and forwarding rules referenced by this extension must share the same load balancing scheme. Supported values: `INTERNAL_MANAGED`, `EXTERNAL_MANAGED`. For more information, refer to [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service). |
| 31 | + * `metadata` (*type:* `map()`, *default:* `nil`) - Optional. 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.`. The following variables are supported in the metadata Struct: `{forwarding_rule_id}` - substituted with the forwarding rule's fully qualified resource name. |
| 32 | + * `name` (*type:* `String.t`, *default:* `nil`) - Required. Identifier. Name of the `AuthzExtension` resource in the following format: `projects/{project}/locations/{location}/authzExtensions/{authz_extension}`. |
| 33 | + * `service` (*type:* `String.t`, *default:* `nil`) - Required. The reference to the service that runs the extension. 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: `https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/backendServices/{backendService}` or `https://www.googleapis.com/compute/v1/projects/{project}/global/backendServices/{backendService}`. |
| 34 | + * `timeout` (*type:* `String.t`, *default:* `nil`) - Required. Specifies the timeout for each individual message on the stream. The timeout must be between 10-10000 milliseconds. |
| 35 | + * `updateTime` (*type:* `DateTime.t`, *default:* `nil`) - Output only. The timestamp when the resource was updated. |
| 36 | + * `wireFormat` (*type:* `String.t`, *default:* `nil`) - Optional. The format of communication supported by the callout extension. If not specified, the default is `EXT_PROC_GRPC`. |
| 37 | + """ |
| 38 | + |
| 39 | + use GoogleApi.Gax.ModelBase |
| 40 | + |
| 41 | + @type t :: %__MODULE__{ |
| 42 | + :authority => String.t() | nil, |
| 43 | + :createTime => DateTime.t() | nil, |
| 44 | + :description => String.t() | nil, |
| 45 | + :failOpen => boolean() | nil, |
| 46 | + :forwardHeaders => list(String.t()) | nil, |
| 47 | + :labels => map() | nil, |
| 48 | + :loadBalancingScheme => String.t() | nil, |
| 49 | + :metadata => map() | nil, |
| 50 | + :name => String.t() | nil, |
| 51 | + :service => String.t() | nil, |
| 52 | + :timeout => String.t() | nil, |
| 53 | + :updateTime => DateTime.t() | nil, |
| 54 | + :wireFormat => String.t() | nil |
| 55 | + } |
| 56 | + |
| 57 | + field(:authority) |
| 58 | + field(:createTime, as: DateTime) |
| 59 | + field(:description) |
| 60 | + field(:failOpen) |
| 61 | + field(:forwardHeaders, type: :list) |
| 62 | + field(:labels, type: :map) |
| 63 | + field(:loadBalancingScheme) |
| 64 | + field(:metadata, type: :map) |
| 65 | + field(:name) |
| 66 | + field(:service) |
| 67 | + field(:timeout) |
| 68 | + field(:updateTime, as: DateTime) |
| 69 | + field(:wireFormat) |
| 70 | +end |
| 71 | + |
| 72 | +defimpl Poison.Decoder, for: GoogleApi.NetworkServices.V1.Model.AuthzExtension do |
| 73 | + def decode(value, options) do |
| 74 | + GoogleApi.NetworkServices.V1.Model.AuthzExtension.decode(value, options) |
| 75 | + end |
| 76 | +end |
| 77 | + |
| 78 | +defimpl Poison.Encoder, for: GoogleApi.NetworkServices.V1.Model.AuthzExtension do |
| 79 | + def encode(value, options) do |
| 80 | + GoogleApi.Gax.ModelBase.encode(value, options) |
| 81 | + end |
| 82 | +end |
0 commit comments