# 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/NetworkPeering
  description: The Compute NetworkPeering resource
  x-dcl-struct-name: NetworkPeering
  x-dcl-has-iam: false
paths:
  get:
    description: The function used to get information about a NetworkPeering
    parameters:
    - name: networkPeering
      required: true
      description: A full instance of a NetworkPeering
  apply:
    description: The function used to apply information about a NetworkPeering
    parameters:
    - name: networkPeering
      required: true
      description: A full instance of a NetworkPeering
  delete:
    description: The function used to delete a NetworkPeering
    parameters:
    - name: networkPeering
      required: true
      description: A full instance of a NetworkPeering
  deleteAll:
    description: The function used to delete all NetworkPeering
    parameters:
    - name: network
      required: true
      schema:
        type: string
  list:
    description: The function used to list information about many NetworkPeering
    parameters:
    - name: network
      required: true
      schema:
        type: string
components:
  schemas:
    NetworkPeering:
      title: NetworkPeering
      x-dcl-id: names/{{name}}
      x-dcl-uses-state-hint: true
      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
      properties:
        autoCreateRoutes:
          type: boolean
          x-dcl-go-name: AutoCreateRoutes
          description: This field will be deprecated soon. Use the `exchange_subnet_routes`
            field instead. Indicates whether full mesh connectivity is created and
            managed automatically between peered networks. Currently this field should
            always be true since Google Compute Engine will automatically create and
            manage subnetwork routes between two networks when peering state is `ACTIVE`.
          x-dcl-server-default: true
        exchangeSubnetRoutes:
          type: boolean
          x-dcl-go-name: ExchangeSubnetRoutes
          description: Indicates whether full mesh connectivity is created and managed
            automatically between peered networks. Currently this field should always
            be true since Google Compute Engine will automatically create and manage
            subnetwork routes between two networks when peering state is `ACTIVE`.
        exportCustomRoutes:
          type: boolean
          x-dcl-go-name: ExportCustomRoutes
          description: Whether to export the custom routes to peer network.
        exportSubnetRoutesWithPublicIP:
          type: boolean
          x-dcl-go-name: ExportSubnetRoutesWithPublicIP
          description: Whether subnet routes with public IP range are exported. The
            default value is true, all subnet routes are exported. The IPv4 special-use
            ranges (https://en.wikipedia.org/wiki/IPv4#Special_addresses) are always
            exported to peers and are not controlled by this field.
          x-dcl-server-default: true
        importCustomRoutes:
          type: boolean
          x-dcl-go-name: ImportCustomRoutes
          description: Whether to import the custom routes from peer network.
        importSubnetRoutesWithPublicIP:
          type: boolean
          x-dcl-go-name: ImportSubnetRoutesWithPublicIP
          description: Whether subnet routes with public IP range are imported. The
            default value is false. The IPv4 special-use ranges (https://en.wikipedia.org/wiki/IPv4#Special_addresses)
            are always imported from peers and are not controlled by this field.
        name:
          type: string
          x-dcl-go-name: Name
          description: Name of this peering. Provided by the client when the peering
            is created. The name must comply with (https://www.ietf.org/rfc/rfc1035.txt).
            Specifically, the name must be 1-63 characters long and match regular
            expression `)?`. The first character must be a lowercase letter, and all
            the following characters must be a dash, lowercase letter, or digit, except
            the last character, which cannot be a dash.
        network:
          type: string
          x-dcl-go-name: Network
          description: The network of the resource.
          x-kubernetes-immutable: true
          x-dcl-forward-slash-allowed: true
          x-dcl-references:
          - resource: Compute/Network
            field: name
            parent: true
        peerMtu:
          type: integer
          format: int64
          x-dcl-go-name: PeerMtu
          description: Maximum Transmission Unit in bytes.
          x-dcl-mutable-unreadable: true
        peerNetwork:
          type: string
          x-dcl-go-name: PeerNetwork
          description: The URL of the peer network. It can be either full URL or partial
            URL. The peer network may belong to a different project. If the partial
            URL does not contain project, it is assumed that the peer network is in
            the same project as the current network.
          x-dcl-forward-slash-allowed: true
          x-dcl-references:
          - resource: Compute/Network
            field: name
        state:
          type: string
          x-dcl-go-name: State
          x-dcl-go-type: NetworkPeeringStateEnum
          readOnly: true
          description: 'State for the peering, either `ACTIVE` or `INACTIVE`. The
            peering is `ACTIVE` when there''s a matching configuration in the peer
            network. Possible values: DEPRECATED, OBSOLETE, DELETED, ACTIVE'
          enum:
          - DEPRECATED
          - OBSOLETE
          - DELETED
          - ACTIVE
        stateDetails:
          type: string
          x-dcl-go-name: StateDetails
          readOnly: true
          description: Details about the current state of the peering.
