# 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/TargetVpnGateway
  description: The Compute TargetVpnGateway resource
  x-dcl-struct-name: TargetVpnGateway
  x-dcl-has-iam: false
paths:
  get:
    description: The function used to get information about a TargetVpnGateway
    parameters:
    - name: targetVpnGateway
      required: true
      description: A full instance of a TargetVpnGateway
  apply:
    description: The function used to apply information about a TargetVpnGateway
    parameters:
    - name: targetVpnGateway
      required: true
      description: A full instance of a TargetVpnGateway
  delete:
    description: The function used to delete a TargetVpnGateway
    parameters:
    - name: targetVpnGateway
      required: true
      description: A full instance of a TargetVpnGateway
  deleteAll:
    description: The function used to delete all TargetVpnGateway
    parameters:
    - name: project
      required: true
      schema:
        type: string
    - name: region
      required: true
      schema:
        type: string
  list:
    description: The function used to list information about many TargetVpnGateway
    parameters:
    - name: project
      required: true
      schema:
        type: string
    - name: region
      required: true
      schema:
        type: string
components:
  schemas:
    TargetVpnGateway:
      title: TargetVpnGateway
      x-dcl-id: projects/{{project}}/regions/{{region}}/targetVpnGateways/{{name}}
      x-dcl-locations:
      - region
      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:
      - project
      properties:
        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
        forwardingRule:
          type: array
          x-dcl-go-name: ForwardingRule
          readOnly: true
          description: |-
            [Output Only] A list of URLs to the ForwardingRule resources.
            ForwardingRules are created using
             compute.forwardingRules.insert and associated with a VPN
            gateway.
          x-kubernetes-immutable: true
          x-dcl-list-type: list
          items:
            type: string
            x-dcl-go-type: string
        id:
          type: integer
          format: int64
          x-dcl-go-name: Id
          readOnly: true
          description: |-
            [Output Only] The unique identifier for the resource. This identifier is
            defined by the server.
          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 `[a-z]([-a-z0-9]*[a-z0-9])?` 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
        network:
          type: string
          x-dcl-go-name: Network
          description: |-
            URL of the network to which this VPN gateway is attached. Provided by the
            client when the VPN gateway is created.
          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
        region:
          type: string
          x-dcl-go-name: Region
          description: |-
            URL of the region where the target VPN gateway resides.
            You must specify this field as part of the HTTP request URL. It is
            not settable as a field in the request body.
          x-kubernetes-immutable: true
        selfLink:
          type: string
          x-dcl-go-name: SelfLink
          readOnly: true
          description: '[Output Only] Server-defined URL for the resource.'
          x-kubernetes-immutable: true
        status:
          type: string
          x-dcl-go-name: Status
          x-dcl-go-type: TargetVpnGatewayStatusEnum
          readOnly: true
          description: |-
            [Output Only] The status of the VPN gateway,
            which can be one of the following: CREATING, READY, FAILED, or DELETING. Possible values: PENDING, RUNNING, DONE
          x-kubernetes-immutable: true
          enum:
          - PENDING
          - RUNNING
          - DONE
        tunnel:
          type: array
          x-dcl-go-name: Tunnel
          readOnly: true
          description: |-
            [Output Only] A list of URLs to VpnTunnel resources. VpnTunnels are
            created using the <code>compute.vpntunnels.insert</code> method and
            associated with a VPN gateway.
          x-kubernetes-immutable: true
          x-dcl-list-type: list
          items:
            type: string
            x-dcl-go-type: string
