# Copyright 2023 Google LLC. All Rights Reserved.
# 
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# 
#     http://www.apache.org/licenses/LICENSE-2.0
# 
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
info:
  title: Compute/TargetHttpsProxy
  description: The Compute TargetHttpsProxy resource
  x-dcl-struct-name: TargetHttpsProxy
  x-dcl-has-iam: false
paths:
  get:
    description: The function used to get information about a TargetHttpsProxy
    parameters:
    - name: targetHttpsProxy
      required: true
      description: A full instance of a TargetHttpsProxy
  apply:
    description: The function used to apply information about a TargetHttpsProxy
    parameters:
    - name: targetHttpsProxy
      required: true
      description: A full instance of a TargetHttpsProxy
  delete:
    description: The function used to delete a TargetHttpsProxy
    parameters:
    - name: targetHttpsProxy
      required: true
      description: A full instance of a TargetHttpsProxy
  deleteAll:
    description: The function used to delete all TargetHttpsProxy
    parameters:
    - name: project
      required: true
      schema:
        type: string
    - name: location
      required: true
      schema:
        type: string
  list:
    description: The function used to list information about many TargetHttpsProxy
    parameters:
    - name: project
      required: true
      schema:
        type: string
    - name: location
      required: true
      schema:
        type: string
components:
  schemas:
    TargetHttpsProxy:
      title: TargetHttpsProxy
      x-dcl-id: projects/{{project}}/global/targetHttpsProxies/{{name}}
      x-dcl-locations:
      - region
      - global
      x-dcl-parent-container: project
      x-dcl-has-create: true
      x-dcl-has-iam: false
      x-dcl-read-timeout: 0
      x-dcl-apply-timeout: 0
      x-dcl-delete-timeout: 0
      type: object
      required:
      - name
      - urlMap
      - project
      properties:
        authorizationPolicy:
          type: string
          x-dcl-go-name: AuthorizationPolicy
          description: |-
            Optional. A URL referring to a networksecurity.AuthorizationPolicy resource that describes how the proxy should authorize inbound traffic. If left blank, access will not be restricted by an authorization policy.

            Refer to the `AuthorizationPolicy` resource for additional details.

            `authorizationPolicy` only applies to a global `TargetHttpsProxy` attached to `globalForwardingRules` with the `loadBalancingScheme` set to `INTERNAL_SELF_MANAGED`.

            Note: This field currently has no impact.
          x-kubernetes-immutable: true
          x-dcl-references:
          - resource: NetworkSecurity/AuthorizationPolicy
            field: name
        description:
          type: string
          x-dcl-go-name: Description
          description: An optional description of this resource. Provide this property
            when you create the resource.
          x-kubernetes-immutable: true
        fingerprint:
          type: string
          x-dcl-go-name: Fingerprint
          readOnly: true
          description: Fingerprint of this resource. A hash of the contents stored
            in this object. This field is used in optimistic locking. This field will
            be ignored when inserting a `TargetHttpsProxy`. An up-to-date fingerprint
            must be provided in order to patch the TargetHttpsProxy; otherwise, the
            request will fail with error `412 conditionNotMet`. To see the latest
            fingerprint, make a `get()` request to retrieve the TargetHttpsProxy.
          x-kubernetes-immutable: true
        id:
          type: integer
          format: int64
          x-dcl-go-name: Id
          readOnly: true
          description: The unique identifier for the resource. This identifier is
            defined by the server.
          x-kubernetes-immutable: true
        location:
          type: string
          x-dcl-go-name: Location
          description: The location for the resource
          x-kubernetes-immutable: true
        name:
          type: string
          x-dcl-go-name: Name
          description: Name of the resource. Provided by the client when the resource
            is created. The name must be 1-63 characters long, and comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt).
            Specifically, the name must be 1-63 characters long and match the regular
            expression `)?` which means the first character must be a lowercase letter,
            and all following characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.
          x-kubernetes-immutable: true
        project:
          type: string
          x-dcl-go-name: Project
          description: The project for the resource
          x-kubernetes-immutable: true
          x-dcl-references:
          - resource: Cloudresourcemanager/Project
            field: name
            parent: true
        proxyBind:
          type: boolean
          x-dcl-go-name: ProxyBind
          description: This field only applies when the forwarding rule that references
            this target proxy has a `loadBalancingScheme` set to `INTERNAL_SELF_MANAGED`.
            When this field is set to `true`, Envoy proxies set up inbound traffic
            interception and bind to the IP address and port specified in the forwarding
            rule. This is generally useful when using Traffic Director to configure
            Envoy as a gateway or middle proxy (in other words, not a sidecar proxy).
            The Envoy proxy listens for inbound requests and handles requests when
            it receives them. The default is `false`.
          x-kubernetes-immutable: true
        quicOverride:
          type: string
          x-dcl-go-name: QuicOverride
          x-dcl-go-type: TargetHttpsProxyQuicOverrideEnum
          description: |-
            Specifies the QUIC override policy for this TargetHttpsProxy resource. This setting determines whether the load balancer attempts to negotiate QUIC with clients. You can specify `NONE`, `ENABLE`, or `DISABLE`.

            - When `quic-override` is set to `NONE`, Google manages whether QUIC is used.
            - When `quic-override` is set to `ENABLE`, the load balancer uses QUIC when possible.
            - When `quic-override` is set to `DISABLE`, the load balancer doesn't use QUIC.
            - If the `quic-override` flag is not specified, `NONE` is implied.
          x-kubernetes-immutable: true
          enum:
          - NONE
          - ENABLE
          - DISABLE
        region:
          type: string
          x-dcl-go-name: Region
          readOnly: true
          description: URL of the region where the regional TargetHttpsProxy resides.
            This field is not applicable to global TargetHttpsProxies.
          x-kubernetes-immutable: true
        selfLink:
          type: string
          x-dcl-go-name: SelfLink
          readOnly: true
          description: Server-defined URL for the resource.
          x-kubernetes-immutable: true
        serverTlsPolicy:
          type: string
          x-dcl-go-name: ServerTlsPolicy
          description: |-
            Optional. A URL referring to a networksecurity.ServerTlsPolicy resource that describes how the proxy should authenticate inbound traffic.

            `serverTlsPolicy` only applies to a global `TargetHttpsProxy` attached to `globalForwardingRules` with the `loadBalancingScheme` set to `INTERNAL_SELF_MANAGED`.

            If left blank, communications are not encrypted.

            Note: This field currently has no impact.
          x-kubernetes-immutable: true
          x-dcl-references:
          - resource: NetworkSecurity/ServerTlsPolicy
            field: name
        sslCertificates:
          type: array
          x-dcl-go-name: SslCertificates
          description: URLs to SslCertificate resources that are used to authenticate
            connections between users and the load balancer. At least one SSL certificate
            must be specified. Currently, you may specify up to 15 SSL certificates.
            sslCertificates do not apply when the load balancing scheme is set to
            INTERNAL_SELF_MANAGED.
          x-kubernetes-immutable: true
          x-dcl-send-empty: true
          x-dcl-list-type: list
          items:
            type: string
            x-dcl-go-type: string
            x-dcl-references:
            - resource: Compute/SslCertificate
              field: selfLink
        sslPolicy:
          type: string
          x-dcl-go-name: SslPolicy
          description: URL of SslPolicy resource that will be associated with the
            TargetHttpsProxy resource. If not set, the TargetHttpsProxy resource has
            no SSL policy configured.
          x-kubernetes-immutable: true
          x-dcl-references:
          - resource: Compute/SslPolicy
            field: selfLink
        urlMap:
          type: string
          x-dcl-go-name: UrlMap
          description: A reference to the UrlMap resource that defines the mapping
            from URL to the BackendService.
          x-dcl-references:
          - resource: Compute/UrlMap
            field: selfLink
