# 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/Interconnect
  description: The Compute Interconnect resource
  x-dcl-struct-name: Interconnect
  x-dcl-has-iam: false
paths:
  get:
    description: The function used to get information about a Interconnect
    parameters:
    - name: interconnect
      required: true
      description: A full instance of a Interconnect
  apply:
    description: The function used to apply information about a Interconnect
    parameters:
    - name: interconnect
      required: true
      description: A full instance of a Interconnect
  delete:
    description: The function used to delete a Interconnect
    parameters:
    - name: interconnect
      required: true
      description: A full instance of a Interconnect
  deleteAll:
    description: The function used to delete all Interconnect
    parameters:
    - name: project
      required: true
      schema:
        type: string
  list:
    description: The function used to list information about many Interconnect
    parameters:
    - name: project
      required: true
      schema:
        type: string
components:
  schemas:
    Interconnect:
      title: Interconnect
      x-dcl-id: projects/{{project}}/global/interconnects/{{name}}
      x-dcl-locations:
      - 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
      - location
      - linkType
      - interconnectType
      - customerName
      - project
      properties:
        adminEnabled:
          type: boolean
          x-dcl-go-name: AdminEnabled
          description: Administrative status of the interconnect. When this is set
            to true, the Interconnect is functional and can carry traffic. When set
            to false, no packets can be carried over the interconnect and no BGP routes
            are exchanged over it. By default, the status is set to true.
        circuitInfos:
          type: array
          x-dcl-go-name: CircuitInfos
          readOnly: true
          description: A list of CircuitInfo objects, that describe the individual
            circuits in this LAG.
          x-kubernetes-immutable: true
          x-dcl-list-type: list
          items:
            type: object
            x-dcl-go-type: InterconnectCircuitInfos
            properties:
              customerDemarcId:
                type: string
                x-dcl-go-name: CustomerDemarcId
                description: Customer-side demarc ID for this circuit.
                x-kubernetes-immutable: true
              googleCircuitId:
                type: string
                x-dcl-go-name: GoogleCircuitId
                description: Google-assigned unique ID for this circuit. Assigned
                  at circuit turn-up.
                x-kubernetes-immutable: true
              googleDemarcId:
                type: string
                x-dcl-go-name: GoogleDemarcId
                description: Google-side demarc ID for this circuit. Assigned at circuit
                  turn-up and provided by Google to the customer in the LOA.
                x-kubernetes-immutable: true
        customerName:
          type: string
          x-dcl-go-name: CustomerName
          description: Customer name, to put in the Letter of Authorization as the
            party authorized to request a crossconnect.
        description:
          type: string
          x-dcl-go-name: Description
          description: An optional description of this resource. Provide this property
            when you create the resource.
        expectedOutages:
          type: array
          x-dcl-go-name: ExpectedOutages
          readOnly: true
          description: A list of outages expected for this Interconnect.
          x-kubernetes-immutable: true
          x-dcl-list-type: list
          items:
            type: object
            x-dcl-go-type: InterconnectExpectedOutages
            properties:
              affectedCircuits:
                type: array
                x-dcl-go-name: AffectedCircuits
                description: If issue_type is IT_PARTIAL_OUTAGE, a list of the Google-side
                  circuit IDs that will be affected.
                x-kubernetes-immutable: true
                x-dcl-send-empty: true
                x-dcl-list-type: list
                items:
                  type: string
                  x-dcl-go-type: string
              description:
                type: string
                x-dcl-go-name: Description
                description: A description about the purpose of the outage.
                x-kubernetes-immutable: true
              endTime:
                type: integer
                format: int64
                x-dcl-go-name: EndTime
                description: Scheduled end time for the outage (milliseconds since
                  Unix epoch).
                x-kubernetes-immutable: true
              issueType:
                type: string
                x-dcl-go-name: IssueType
                x-dcl-go-type: InterconnectExpectedOutagesIssueTypeEnum
                description: 'Form this outage is expected to take, which can take
                  one of the following values: OUTAGE: The Interconnect may be completely
                  out of service for some or all of the specified window. PARTIAL_OUTAGE:
                  Some circuits comprising the Interconnect as a whole should remain
                  up, but with reduced bandwidth.nn Note that the versions of this
                  enum prefixed with "IT_" have been deprecated in favor of the unprefixed
                  values.'
                x-kubernetes-immutable: true
                enum:
                - OUTAGE
                - PARTIAL_OUTAGE
              name:
                type: string
                x-dcl-go-name: Name
                description: Unique identifier for this outage notification.
                x-kubernetes-immutable: true
              source:
                type: string
                x-dcl-go-name: Source
                x-dcl-go-type: InterconnectExpectedOutagesSourceEnum
                description: 'The party that generated this notification, which can
                  take the following value: GOOGLE: this notification as generated
                  by Google. Note that the value of NSRC_GOOGLE has been deprecated
                  in favor of GOOGLE.'
                x-kubernetes-immutable: true
                enum:
                - GOOGLE
              startTime:
                type: integer
                format: int64
                x-dcl-go-name: StartTime
                description: Scheduled start time for the outage (milliseconds since
                  Unix epoch).
                x-kubernetes-immutable: true
              state:
                type: string
                x-dcl-go-name: State
                x-dcl-go-type: InterconnectExpectedOutagesStateEnum
                description: 'State of this notification, which can take one of the
                  following values: ACTIVE: This outage notification is active. The
                  event could be in the past, present, or future. See start_time and
                  end_time for scheduling. CANCELLED: The outage associated with this
                  notification was cancelled before the outage was due to start. Note
                  that the versions of this enum prefixed with "NS_" have been deprecated
                  in favor of the unprefixed values.'
                x-kubernetes-immutable: true
                enum:
                - ACTIVE
                - CANCELLED
        googleIPAddress:
          type: string
          x-dcl-go-name: GoogleIPAddress
          readOnly: true
          description: IP address configured on the Google side of the Interconnect
            link. This can be used only for ping tests.
          x-kubernetes-immutable: true
        googleReferenceId:
          type: string
          x-dcl-go-name: GoogleReferenceId
          readOnly: true
          description: Google reference ID to be used when raising support tickets
            with Google or otherwise to debug backend connectivity issues.
          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
        interconnectAttachments:
          type: array
          x-dcl-go-name: InterconnectAttachments
          readOnly: true
          description: A list of the URLs of all InterconnectAttachments configured
            to use this Interconnect.
          x-kubernetes-immutable: true
          x-dcl-list-type: list
          items:
            type: string
            x-dcl-go-type: string
        interconnectType:
          type: string
          x-dcl-go-name: InterconnectType
          x-dcl-go-type: InterconnectInterconnectTypeEnum
          description: 'Type of interconnect, which can take one of the following
            values: PARTNER: A partner-managed interconnection shared between customers
            though a partner. DEDICATED: A dedicated physical interconnection with
            the customer.nn Note that a value IT_PRIVATE has been deprecated in favor
            of DEDICATED.'
          enum:
          - IT_PRIVATE
          - PARTNER
          - DEDICATED
        linkType:
          type: string
          x-dcl-go-name: LinkType
          x-dcl-go-type: InterconnectLinkTypeEnum
          description: 'Type of link requested, which can take one of the following
            values: LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics LINK_TYPE_ETHERNET_100G_LR:
            A 100G Ethernet with LR optics.nn Note that this field indicates the speed
            of each of the links in the bundle, not the speed of the entire bundle.'
          enum:
          - LINK_TYPE_ETHERNET_10G_LR
          - LINK_TYPE_ETHERNET_100G_LR
        location:
          type: string
          x-dcl-go-name: Location
          description: URL of the InterconnectLocation object that represents where
            this connection is to be provisioned.
        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.
            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.
        nocContactEmail:
          type: string
          x-dcl-go-name: NocContactEmail
          description: Email address to contact the customer NOC for operations and
            maintenance notifications regarding this Interconnect. If specified, this
            will be used for notifications in addition to all other forms described,
            such as Stackdriver logs alerting and Cloud Notifications.
        operationalStatus:
          type: string
          x-dcl-go-name: OperationalStatus
          x-dcl-go-type: InterconnectOperationalStatusEnum
          readOnly: true
          description: 'The current status of this Interconnect''s functionality,
            which can take one of the following values: OS_ACTIVE: A valid Interconnect,
            which is turned up and is ready to use. Attachments may be provisioned
            on this Interconnect. OS_UNPROVISIONED: An Interconnect that has not completed
            turnup. No attachments may be provisioned on this Interconnect. OS_UNDER_MAINTENANCE:
            An Interconnect that is undergoing internal maintenance. No attachments
            may be provisioned or updated on this Interconnect.'
          x-kubernetes-immutable: true
          enum:
          - OS_ACTIVE
          - OS_UNPROVISIONED
          - OS_UNDER_MAINTENANCE
        peerIPAddress:
          type: string
          x-dcl-go-name: PeerIPAddress
          readOnly: true
          description: IP address configured on the customer side of the Interconnect
            link. The customer should configure this IP address during turnup when
            prompted by Google NOC. This can be used only for ping tests.
          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
        provisionedLinkCount:
          type: integer
          format: int64
          x-dcl-go-name: ProvisionedLinkCount
          readOnly: true
          description: Number of links actually provisioned in this interconnect.
          x-kubernetes-immutable: true
        requestedLinkCount:
          type: integer
          format: int64
          x-dcl-go-name: RequestedLinkCount
          description: Target number of physical links in the link bundle, as requested
            by the customer.
        selfLink:
          type: string
          x-dcl-go-name: SelfLink
          readOnly: true
          description: Server-defined URL for the resource.
          x-kubernetes-immutable: true
        state:
          type: string
          x-dcl-go-name: State
          x-dcl-go-type: InterconnectStateEnum
          readOnly: true
          description: 'The current state of Interconnect functionality, which can
            take one of the following values: ACTIVE: The Interconnect is valid, turned
            up and ready to use. Attachments may be provisioned on this Interconnect.
            UNPROVISIONED: The Interconnect has not completed turnup. No attachments
            may be provisioned on this Interconnect. UNDER_MAINTENANCE: The Interconnect
            is undergoing internal maintenance. No attachments may be provisioned
            or updated on this Interconnect. Possible values: DEPRECATED, OBSOLETE,
            DELETED, ACTIVE'
          x-kubernetes-immutable: true
          enum:
          - DEPRECATED
          - OBSOLETE
          - DELETED
          - ACTIVE
