openapi: 3.1.0
info:
  version: '1.0'
  title: Zayo APIs
  description: >-
    Zayo offers free APIs to help make doing business with Zayo easier. The world is shifting from user-led interfaces to system-to-system integration through application programming interfaces. 
    Zayo, your trusted digital transformation partner, is ready to help.
    Seamless integration to Zayo’s Customer Portal responds to the growing need for automation.
    Discover how to expand your network, get quotes, order quotes, and manage your
    network with our Ticketing and Maintenance Cases API.    
  x-logo:
    url: 'https://zayo-ui-bucket.s3-us-west-2.amazonaws.com/Common/Logos/zayo-logo-orange.png'  
    altText: 'Zayo orange logo'
  contact:
    name: Zayo API Team
    email: zayoapi@zayo.com
servers:
  - url: https://api.test.zayo.com
    description: Test server
paths:
  /services/location-management/v2/buildings/validation:
    post:
      summary: Validate building addresses
      description: >-
        Validate any building in the world with a few parameters to see if Zayo is on net. Request an array of building addresses in a standard building format and you will either get matched or unmatched buildings. Matched buildings will return Zayo Network Status. Unmatched buildings might require alternative naming formats, otherwise, you can assume unmatched buildings are off net.  
        
        
        Once you have a Building Id, you can use the Locations route to get location-based information. A `buildingId` or `locationId` is required for quoting.
      operationId: validateBuildings
      tags:
        - Network Discovery
      requestBody:
        description: An array of building objects that will be validated against Zayo's systems. 
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                buildings:
                  type: array
                  items:
                    type: object
                    additionalProperties: false
                    maxProperties: 7
                    minProperties: 2
                    maxItems: 20
                    minItems: 1
                    uniqueItems: true
                    required:
                      - address
                      - countryCode
                    properties:
                      address:
                        type: string
                        example: 60 Hudson Street
                        minLength: 3
                      neighborhood:
                        type: string
                      city:
                        type: string
                        example: New York
                      subregion:
                        type: string
                      region:
                        type: string
                      countryCode:
                        type: string
                        example: USA
                        minLength: 3
                        maxLength: 3
                      postal:
                        type: string
                        example: '80013'
            examples:
              Several Buildings:
                value:
                  buildings:
                    - address: 8 Buckingham Ave
                      city: Slough
                      subregion: ''
                      countryCode: GBR
                      postal: SL1 4AX
                    - address: 60 Hudson Street
                      neighborhood: Manhattan
                      city: New York
                      subregion: Manhattan
                      region: New York
                      countryCode: USA
                      postal: '10013'
                    - address: 123 Test Street
                      neighborhood: Test Neighborhood
                      city: Boulder
                      subregion: Test Subregion
                      region: CO
                      countryCode: USA
                      postal: '80303'
              One Building:
                value:
                  buildings:
                    - address: 60 Hudson Street
                      city: New York
                      region: New York
                      countryCode: USA
                      postal: '10013'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  apiVersion:
                    type: string
                  data:
                    type: object
                    properties:
                      matchedAddresses:
                        type: array
                        items:
                          type: object
                          properties:
                            country:
                              type: string
                            address:
                              type: string
                            matched_address:
                              type: string
                            city:
                              type: string
                            subregion:
                              type: ['null', string]
                            neighborhood:
                              type: ['null', string]
                            postal: 
                              type: string
                            region: 
                              type: ['null', string]
                            latitude:
                              type: number
                            longitude:
                              type: number
                            zayoNetworkStatus:
                              type: string
                              enum:
                                - On Zayo Network
                                - Not On Zayo Network
                            buildingClassification:
                              type: ['null', string]
                            competitiveInternetEnablement:
                              type: string
                            buildingId:
                              type: string
                      unmatchedAddresses:
                        type: array
                        items:
                          type: object
                          properties:
                            country:
                              type: string
                            address:
                              type: string
                            city:
                              type: string
                            subregion:
                              type: ['null', string]
                            neighborhood:
                              type: ['null', string]
                            postal:
                              type: string
                            region: 
                              type: ['null', string]
                            latitude:
                              type: number
                            longitude:
                              type: number
                            message:
                              type: string
                            zayoNetworkStatus: 
                              type: ['null', string]
                            buildingId:
                              type: ['null', string]
              examples:
                'Several Buildings':
                  value: 
                    apiVersion: v2
                    data:
                      matchedAddresses:
                        - buildingId: a0W600000009mrkEAA
                          matched_address: 60 Hudson St, New York, 10013
                          address: 60 Hudson Street
                          neighborhood: null
                          city: New York
                          subregion: null
                          region: null
                          country: USA
                          postal: '10013'
                          zayoNetworkStatus: On Zayo Network
                          buildingClassification: On-Net
                          competitiveInternetEnablements: 'Yes'
                          latitude: -74.00890867164877
                          longitude: 40.71790374632121
                        - buildingId: a0W60000002AmvsEAC
                          matched_address: 8 Buckingham Avenue, Slough, Berkshire, England, SL1 4
                          address: 8 Buckingham Ave
                          neighborhood: null
                          city: Slough
                          subregion: null
                          region: null
                          country: GBR
                          postal: SL1 4AX
                          zayoNetworkStatus: On Zayo Network
                          buildingClassification: null
                          competitiveInternetEnablements: 'Yes'
                          latitude: -0.6338168030935715
                          longitude: 51.52350290497991
                      unmatchedAddresses:
                        - buildingId: null
                          address: 123 Test Street
                          neighborhood: null
                          city: Boulder
                          subregion: null
                          region: CO
                          country: USA
                          postal: '80303'
                          zayoNetworkStatus: null
                          message: Unable to validate this address in the current format. Please reformat before resubmitting.
                'Matched Building':
                  value: 
                    apiVersion: v2
                    data:
                      matchedAddresses:
                        - buildingId: a0W600000009mrkEAA
                          matched_address: 60 Hudson St, New York, 10013
                          address: 60 Hudson Street
                          neighborhood: null
                          city: New York
                          subregion: null
                          region: null
                          country: USA
                          postal: '10013'
                          zayoNetworkStatus: On Zayo Network
                          buildingClassification: On-Net
                          competitiveInternetEnablements: 'Yes'
                          latitude: -74.00890867164877
                          longitude: 40.71790374632121
                'Unmatched Building':
                  value: 
                    apiVersion: v2
                    data:
                      unmatchedAddresses:
                        - buildingId: null
                          address: 123 Test Street
                          neighborhood: null
                          city: Boulder
                          subregion: null
                          region: CO
                          country: USA
                          postal: USA
                          zayoNetworkStatus: null
                          message: Unable to validate this address in the current format. Please reformat before resubmitting.
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
              examples:
                'Missing Required Field':
                  value: 
                    apiVersion: v2
                    error: 
                      errorId: 797ac530-9326-917e-fa38-13d82e065ffe
                      code: 400
                      message: >- 
                        Error: Failed JSON Validation - [[0].countryCode - should NOT be shorter than 3 characters. limit: 3]
                      errors: []
  /services/location-management/v2/building/{buildingId}/locations:
    get:
      summary: Get locations
      description: >-
        View all locations for the specified building in the URL. Locations contain floor, room, and suite information as available, serviceability per product code, and network status. Locations are returned based on serviceability where most desirable locations are returned first. 
        
        
        Serviceability is represented by enabled and preferred. Enabled means Zayo can service that product at that location. Preferred means this location is Zayo's preferred location to service. For example, cross connects might not be required at preferred locations. There will only ever be 1 location for each preferred product, while several locations can be enabled for each product. 
      operationId: getLocations
      tags:
        - Network Discovery
      parameters:
        - name: buildingId
          in: path
          required: true
          description: >-
            `buildingId` returned from the validate building address route.
          schema:
            type: string
            example: a0W60000002BxA8EAK
            pattern: ^[a-zA-Z0-9]{18}$
            maxLength: 18
            minLength: 18
        - name: productCode
          in: query
          required: false
          description: >-
            `productCode` query param will only return locations where the specified `productCode` values are enabled (and is required when `enabled` is populated).
          schema:
            type: array
            maxItems: 9
            minItems: 0
            uniqueItems: true
            items:
              type: string
              example: [ETH-ELINE-P2P, WAVES-STD-P2P]
              enum:
                - ETH-ELAN-M2M
                - ETH-ELINE-NNI
                - ETH-ELINE-P2P
                - ETH-ELINE-UNI
                - ETH-PDN-P2P
                - IP-DIA
                - IP-DIA-AGG
                - IP-VPN
                - WAVES-STD-P2P
        - name: enabled
          in: query
          required: false
          schema:
            type: string
            example: any
            default: any
            enum:
              - any
              - all
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  apiVersion:
                    type: string
                    example: v2
                  data:
                    type: object
                    properties:
                      buildingId:
                        type: string
                        example: a0W60000002BxA8EAK
                      address:
                        type: string
                        example: 9417 Corporate Lake Dr, Tampa, Florida, 33634
                      zayoNetworkStatus:
                        type: string
                        example: On Zayo Network
                      locations:
                        type: array
                        items:
                          type: object
                          properties:
                            locationName:
                              type: string
                              example: 9417 Corporate Lake Dr/Fl-1/Rm-MMR
                            locationId:
                              type: string
                              example: a0b6000000Avil2AAB
                            networkStatus:
                              type: string
                              example: On Zayo Network
                            buildingClassification:
                              type: ['null', string]
                            competitiveInternetEnablement:
                              type: string
                            suite:
                              type: ['null', string]
                            floor:
                              type: string
                              example: '1'
                            room:
                              type: string
                              example: MMR
                            enabled:
                              type: object
                              properties:
                                ETH-ELAN-M2M:
                                  type: boolean
                                  example: true
                                ETH-ELINE-NNI:
                                  type: boolean
                                  example: true
                                ETH-ELINE-P2P:
                                  type: boolean
                                  example: true
                                ETH-ELINE-UNI:
                                  type: boolean
                                  example: true
                                ETH-PDN-P2P:
                                  type: boolean
                                  example: false
                                IP-DIA:
                                  type: boolean
                                  example: true
                                IP-DIA-AGG:
                                  type: boolean
                                  example: true
                                IP-VPN:
                                  type: boolean
                                  example: true
                                WAVES-STD-P2P:
                                  type: boolean
                                  example: false
                            preferred:
                              type: object
                              properties:
                                ETH-ELAN-M2M:
                                  type: boolean
                                  example: true
                                ETH-ELINE-NNI:
                                  type: boolean
                                  example: true
                                ETH-ELINE-P2P:
                                  type: boolean
                                  example: true
                                ETH-ELINE-UNI:
                                  type: boolean
                                  example: true
                                ETH-PDN-P2P:
                                  type: boolean
                                  example: false
                                IP-DIA:
                                  type: boolean
                                  example: true
                                IP-DIA-AGG:
                                  type: boolean
                                  example: true
                                IP-VPN:
                                  type: boolean
                                  example: true
                                WAVES-STD-P2P:
                                  type: boolean
                                  example: false
                      messages:
                        type: array
                        items:
                          type: string
              examples:
                'On Net and Off Net Locations':
                  value: 
                    apiVersion: v2
                    data:
                        buildingId: a0W60000002BxA8EAK
                        address: 9417 Corporate Lake Dr, Tampa, Florida, 33634
                        zayoNetworkStatus: On Zayo Network
                        locations:
                          - locationName: 9417 Corporate Lake Dr/Fl-1/Rm-MMR
                            locationId: a0b6000000Avil2AAB
                            networkStatus: On Zayo Network
                            buildingClassification: On-Net
                            competitiveInternetEnablement: 'Yes'
                            suite: null
                            floor: '1'
                            room: MMR
                            enabled:
                                ETH-ELAN-M2M: true
                                ETH-ELINE-NNI: true
                                ETH-ELINE-P2P: true
                                ETH-ELINE-UNI: true
                                ETH-PDN-P2P: false
                                IP-DIA: true
                                IP-DIA-AGG: true
                                IP-VPN: true
                                WAVES-STD-P2P: false
                            preferred:
                                ETH-ELAN-M2M: true
                                ETH-ELINE-NNI: true
                                ETH-ELINE-P2P: true
                                ETH-ELINE-UNI: true
                                ETH-PDN-P2P: false
                                IP-DIA: true
                                IP-DIA-AGG: true
                                IP-VPN: true
                                WAVES-STD-P2P: false
                          - locationName: 9417 Corporate Lake Dr/Fl-1/Rm-MPOE
                            locationId: a0b4z00000QwxoRAAR
                            networkStatus: Not on Zayo Network
                            buildingClassification: On-Net
                            competitiveInternetEnablement: 'Yes'
                            suite: null
                            floor: '1'
                            room: MPOE
                            enabled:
                                ETH-ELAN-M2M: false
                                ETH-ELINE-NNI: false
                                ETH-ELINE-P2P: false
                                ETH-ELINE-UNI: false
                                ETH-PDN-P2P: false
                                IP-DIA: false
                                IP-DIA-AGG: false
                                IP-VPN: false
                                WAVES-STD-P2P: false
                            preferred:
                                ETH-ELAN-M2M: false
                                ETH-ELINE-NNI: false
                                ETH-ELINE-P2P: false
                                ETH-ELINE-UNI: false
                                ETH-PDN-P2P: false
                                IP-DIA: false
                                IP-DIA-AGG: false
                                IP-VPN: false
                                WAVES-STD-P2P: false
                        messages: []
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
              examples:
                'Incorrect buildingId format':
                  value: 
                    apiVersion: v2
                    error: 
                      errorId: 4863bed3-9220-9a6b-dac9-9cd0abeae6c7
                      code: 400
                      message: >- 
                        Error: Failed Parameter Validation - [.buildingSfid - should NOT be shorter than 18 characters. limit: 18], [.buildingSfid - should match pattern \"^[a-zA-Z0-9]{18}$\". pattern: ^[a-zA-Z0-9]{18}$]
                      errors: []
  /services/quote-management/v2/sites/available-cloud-providers:
    post:
      summary: Get cloud sites
      description: >- 
        Search for cloud on-ramp locations based on `productCodes`, `buildingIds`, `cloudProviders`, and `connectionTypes` values to get over 200 cloud on-ramp options. Filter option values are case sentitive. Providers include - Amazon AWS, Google Cloud, Microsoft Azure / Office365, IBM Cloud, Salesforce, Twilio, and many more!
        
        
        Cloud on-ramp locations are returned per building and grouped in the desinations array. Within the destinations array, cloud on-ramps are returned based on the demarc (floor, room, suite), product code, and then connection type. Once you get down to the `connectionType` level, you will see available bandwidths for that Connection Type, for that product, for that cloud on ramp/demarc. Zayo will provide Dedicated connections at all of our cloud on-ramp locations, but we don't support Hosted at all the locations.
        
        
        We recommend you apply filters to get the specific data you need to place a quote, otherwise if you are mapping Zayo's cloud serviceability, feel free to send in an empty request object. Please note, there is not pagination with this route.
        
        
          *Please note: at this time only ETH-ELINE-UNI and ETH-ELINE-P2P product codes can be quoted with a cloudSite. You will apply `cloudProvider` key value pair from the `destinations` array, `connectionType` key value pair from the `destinationDetails` array,  and `locationId` key value pair from the `destinations` array to your quote request.*
      operationId: getCloudSites
      tags:
        - Network Discovery
      requestBody:
        description: >- 
          Apply filters to return a list of cloud sites to quote to available Zayo products. Filter options include - cloudProviders, connectionTypes, productCodes, and buildingIds. 
          
          `cloudProviders` options are case-sensitive and include: Amazon AWS, Microsoft Azure / Office365, Google Cloud, Oracle Cloud, Microsoft Cloud for Government, IBM Cloud, Salesforce, Cisco Webex Edge Connect, Alibaba, OVH, Cloudflare, Accenture, ADISTA, AIS Business Cloud, Ajubeo, Artisan Infrastructure, Carpathia Hosting, DataBank Cloud Services, Day 1 Solutions, Enovance, Expedient, Flexential: FlexAnywhere, Fullsave, GROUPE RDI, Hosting.com, Ikoula, IntelePeer, Internap, Linkbynet, Lunavi Inc, NetDepot, Nimbix, Outscale, Oxalide, Packet, Phoenix NAP, QTS Cloud Services, RapidScale, Scale Matrix, StratoGen, The Faction Group, Twilio, Virtustream, Vitelity Cloud, VMware Cloud on AWS, Wasabi Cloud, Xtium.
        required: false
        content:
          application/json:
            schema:
              type: object
              properties: 
                filters:
                  type: object
                  additionalProperties: false
                  description: Object to define filter options.
                  not:
                    required:
                      - buildingIds
                      - locationIds
                  properties:
                    productCodes: 
                      type: array
                      description: Apply multiple product code options. `productCode` returned from the product catalog route. At this time, only ETH-ELINE-UNI and ETH-ELINE-P2P product codes can be quoted with a cloud site.
                      items: 
                        type: string
                        example: ETH-ELINE-UNI
                        enum:
                          - ETH-ELINE-UNI
                          - ETH-ELINE-P2P
                    buildingIds:
                      type: array
                      description: Apply multiple `buildingId` options. `buildingId` returned from the validate building address route. `buildingIds` or `locationIds` can be provided (but not both).
                      items:
                        type: string
                        pattern: ^a0W
                        minLength: 18
                        maxLength: 18
                        example: a0W600000009moPEAQ
                    locationIds:
                      type: array
                      description: Apply multiple `locationId` options. `locationId` returned from the get locations route. `buildingIds` or `locationIds` can be provided (but not both).
                      items:
                        type: string
                        pattern: ^a0b
                        minLength: 18
                        maxLength: 18
                        example: a0b60000000TURgAAO
                    cloudProviders:
                      type: array
                      description: Apply multiple cloudProvider options.
                      maxItems: 5
                      items:
                        type: string
                        example: Amazon AWS
                        enum:
                          - Amazon AWS
                          - Microsoft Azure / Office365
                          - Google Cloud
                          - Oracle Cloud
                          - Microsoft Cloud for Government
                          - IBM Cloud
                          - Salesforce
                          - Cisco Webex Edge Connect
                          - Alibaba
                          - OVH
                          - Cloudflare
                          - Accenture
                          - ADISTA
                          - AIS Busines
                          - Cloud
                          - Ajubeo
                          - Artisan Infrastructure
                          - Carpathia Hosting,
                          - ataBank Cloud Services
                          - Day 1 Solutions
                          - Enovance
                          - Expedient
                          - >- 
                            Flexential: FlexAnywhere
                          - Fullsave
                          - GROUPE RDI
                          - Hosting.com
                          - Ikoula
                          - IntelePeer
                          - Internap
                          - Linkbynet
                          - Lunavi Inc
                          - NetDepot
                          - Nimbix
                          - Outscale
                          - Oxalide
                          - Packet
                          - Phoenix NAP
                          - QTS Cloud Services
                          - RapidScale
                          - Scale Matrix
                          - StratoGen
                          - The Faction Group,
                          - wilio
                          - Virtustream
                          - Vitelity Cloud
                          - VMware Cloud on AWS
                          - Wasabi Cloud
                          - Xtium
                    connectionTypes:
                      type: array
                      maxItems: 2
                      uniqueItems: true
                      description: Apply connection type options - Direct, Hosted, or Dedicated. 
                      items:
                        type: string
                        example: Dedicated
                        enum:
                          - Direct
                          - Hosted
                          - Dedicated      
            examples:
              By Building(s):
                value:
                  filters:
                    productCodes: [ETH-ELINE-UNI]
                    buildingIds: [a0W600000009moPEAQ]
                    cloudProviders: [Google Cloud]
                    connectionTypes: [Direct]
              By Location(s):
                value:
                  filters:
                    productCodes: [ETH-ELINE-P2P]
                    locationIds: [a0b60000006E5q2AAC]
                    cloudProviders: [Amazon AWS, Google Cloud]
                    connectionTypes: [Dedicated, Hosted]
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                    apiVersion:
                      type: string
                      example: v2
                    data:
                      type: array
                      items: 
                        type: object
                        properties:
                          buildingId:
                            type: string
                            example: a0W600000009mrjEAA
                          buildingAddress:
                            type: string
                            example: 32 Avenue Of The Americas, New York, NY 10013 USA
                          destinations:
                            type: array
                            items: 
                              type: object
                              properties:
                                building:
                                  type: string
                                  example: 32 Avenue Of The Americas
                                cloudProvider:
                                    type: string
                                    example: Amazon AWS
                                demarc: 
                                    type: string
                                    example: Fl-7/Ste-Coresite/Rm-700
                                destinationDetails:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      productCode:
                                        type: string
                                        example: ETH-ELINE-UNI
                                      aggregatedBandwidth: 
                                        type: string
                                        example: No
                                      connectionType:
                                        type: object
                                        properties:
                                          hosted:
                                            type: object
                                            properties:
                                              bandwidths: 
                                                type: array
                                                items:
                                                  type: string
                                                  example: 10Mb, 20Mb, 30Mb, 40Mb, 50Mb, 60Mb, 70Mb, 80Mb, 90Mb, 100Mb
                                              evcEnabled:
                                                type: boolean
                                                example: true
                                                description: Designates whether a cloud on-ramp is eligible for same-day provisioning. This is only available for hosted connections for ETH-ELINE-UNI products.
                                          dedicated:
                                            type: object
                                            properties:
                                              bandwidths:
                                                type: array
                                                items:
                                                  type: string
                                                  example: 10Mb, 20Mb, 30Mb, 40Mb, 50Mb, 60Mb, 70Mb, 80Mb, 90Mb, 100Mb
                                destinationName:
                                  type: string
                                  example: US East (N. Virginia)
                                latitude: 
                                  type: number
                                  example: 40.719979
                                locationId:
                                  type: string
                                  example: a0b60000000VmskAAC
                                  description: Use this value in the quote request payload when quoting to a cloud on-ramp.
                                longitude:
                                  type: number
                                  example: -74.004689
                                region:
                                  type: string
                                  example: us-east-1
                                zone:
                                  type: string
                                  example: CS32A
              examples:
                'Hosted Amazon AWS Options for ETH-ELINE-UNI':
                  value: 
                    apiVersion: v2
                    data:
                      - buildingId: a0W60000002BG6REAW
                        buildingAddress: 15 Pioneer Walk, Singapore, 627753 Singapore
                        destinations:
                          - building: Equinix SG2
                            cloudProvider: Amazon AWS
                            demarc: Fl-1/Rm-MPOE
                            destinationDetails:
                              - productCode: ETH-ELINE-UNI
                                aggregatedBandwidth: No
                                connectionType: 
                                  hosted:
                                    bandwidths:
                                    - 10Mb
                                    - 20Mb
                                    - 30Mb
                                    - 40Mb
                                    - 50Mb
                                    - 60Mb
                                    - 70Mb
                                    - 80Mb
                                    - 90Mb
                                    - 100Mb
                                    - 200Mb
                                    - 300Mb
                                    - 400Mb
                                    - 500Mb
                                    - 600Mb
                                    - 700Mb
                                    - 800Mb
                                    - 900Mb
                                    - 1G
                                    - 2G
                                    - 3G
                                    - 5G
                                    - 250Mb
                                    evcEnabled: true
                            destinationName: Asia Pacific (Signapore)
                            latitude: 1.32187
                            locationId: a0b60000003MZCQAA4
                            longitude: 103.695274
                            region: ap-southeast-1
                            zone: EQSG2
                      - buildingId: a0W60000008EahnEAC
                        buildingAddress: 800 Rue du Square-Victoria, Montreal, QC H4Z 1A1 Canada
                        destinations:
                          - building: eStruxture MTL-1
                            cloudProvider: Amazon AWS
                            demarc: Fl-SS1/Rm-MMR1
                            destinationDetails:
                              - productCode: ETH-ELINE-UNI
                                aggregatedBandwidth: No
                                connectionType: 
                                  hosted:
                                    bandwidths:
                                    - 10Mb
                                    - 20Mb
                                    - 30Mb
                                    - 40Mb
                                    - 50Mb
                                    - 60Mb
                                    - 70Mb
                                    - 80Mb
                                    - 90Mb
                                    - 100Mb
                                    - 200Mb
                                    - 300Mb
                                    - 400Mb
                                    - 500Mb
                                    - 600Mb
                                    - 700Mb
                                    - 800Mb
                                    - 900Mb
                                    - 1G
                                    - 2G
                                    - 3G
                                    - 5G
                                    - 250Mb
                                    evcEnabled: true
                            destinationName: Canada (Central)
                            latitude: 45.500623
                            locationId: a0b6000000EkkQDAAZ
                            longitude: -73.561876
                            region: ca-central-1
                            zone: NTM62           
                      - buildingId: a0W600000009mo2EAA
                        buildingAddress: 21715 Filigree Ct, Ashburn, VA 20147 USA
                        destinations:
                          - building: Equinix DC2/DC11
                            cloudProvider: Amazon AWS
                            demarc: Fl-1/Rm-Equinix
                            destinationDetails:
                              - productCode: ETH-ELINE-UNI
                                aggregatedBandwidth: No
                                connectionType: 
                                  hosted:
                                    bandwidths:
                                    - 10Mb
                                    - 20Mb
                                    - 30Mb
                                    - 40Mb
                                    - 50Mb
                                    - 60Mb
                                    - 70Mb
                                    - 80Mb
                                    - 90Mb
                                    - 100Mb
                                    - 200Mb
                                    - 300Mb
                                    - 400Mb
                                    - 500Mb
                                    - 600Mb
                                    - 700Mb
                                    - 800Mb
                                    - 900Mb
                                    - 1G
                                    - 2G
                                    - 3G
                                    - 5G
                                    - 250Mb
                                    evcEnabled: true
                            destinationName: US East (N. Virginia)
                            latitude: 39.0166517
                            locationId: a0b60000006E5q2AAC
                            longitude: -77.4589872
                            region: us-east-1
                            zone: EQDC2
                      - buildingId: a0W600000009nMLEAY
                        buildingAddress: 350 E Cermak Rd, Chicago, IL 60616 USA
                        destinations:
                          - building: Lakeside Technology Center
                            cloudProvider: Amazon AWS
                            demarc: Fl-5 or 6 or 8/Rm-Equinix
                            destinationDetails:
                              - productCode: ETH-ELINE-UNI
                                aggregatedBandwidth: No
                                connectionType: 
                                  hosted:
                                    bandwidths:
                                    - 10Mb
                                    - 20Mb
                                    - 30Mb
                                    - 40Mb
                                    - 50Mb
                                    - 60Mb
                                    - 70Mb
                                    - 80Mb
                                    - 90Mb
                                    - 100Mb
                                    - 200Mb
                                    - 300Mb
                                    - 400Mb
                                    - 500Mb
                                    - 600Mb
                                    - 700Mb
                                    - 800Mb
                                    - 900Mb
                                    - 1G
                                    - 2G
                                    - 3G
                                    - 5G
                                    - 250Mb
                                    evcEnabled: true
                            destinationName: US East (Ohio)
                            latitude: 41.853686
                            locationId: a0b60000008c0KYAAY
                            longitude: -87.618249
                            region: us-east-2
                            zone: EQC50
                      - buildingId: a0W60000002AmytEAC
                        buildingAddress: 250 Front St W, Toronto, ON M5V 3G5 Canada
                        destinations:
                          - building: Allied 250 Front St W
                            cloudProvider: Amazon AWS
                            demarc: Fl-B2/Rm-South MMR
                            destinationDetails:
                              - productCode: ETH-ELINE-UNI
                                aggregatedBandwidth: No
                                connectionType: 
                                  hosted:
                                    bandwidths:
                                    - 10Mb
                                    - 20Mb
                                    - 30Mb
                                    - 40Mb
                                    - 50Mb
                                    - 60Mb
                                    - 70Mb
                                    - 80Mb
                                    - 90Mb
                                    - 100Mb
                                    - 200Mb
                                    - 300Mb
                                    - 400Mb
                                    - 500Mb
                                    - 600Mb
                                    - 700Mb
                                    - 800Mb
                                    - 900Mb
                                    - 1G
                                    - 2G
                                    - 3G
                                    - 5G
                                    - 250Mb
                                    evcEnabled: true
                            destinationName: Canada (Central)
                            latitude: 43.64459
                            locationId: a0b6000000G6BthAAF
                            longitude: -79.38801
                            region: ca-central-1
                            zone: 151FS
                      - buildingId: a0W60000002AmvsEAC
                        buildingAddress: 8 Buckingham Ave, Slough, SL1 4AX United Kingdom
                        destinations:
                          - building: Equinix LD5
                            cloudProvider: Amazon AWS
                            demarc: Fl-1/Rm-0601MC1.1
                            destinationDetails:
                              - productCode: ETH-ELINE-UNI
                                aggregatedBandwidth: No
                                connectionType: 
                                  hosted:
                                    bandwidths:
                                    - 10Mb
                                    - 20Mb
                                    - 30Mb
                                    - 40Mb
                                    - 50Mb
                                    - 60Mb
                                    - 70Mb
                                    - 80Mb
                                    - 90Mb
                                    - 100Mb
                                    - 200Mb
                                    - 300Mb
                                    - 400Mb
                                    - 500Mb
                                    - 600Mb
                                    - 700Mb
                                    - 800Mb
                                    - 900Mb
                                    - 1G
                                    - 2G
                                    - 3G
                                    - 5G
                                    - 250Mb
                                    evcEnabled: true
                            destinationName: Europe (Ireland)
                            latitude: 51.5222611
                            locationId: a0b60000003LBlYAAW
                            longitude: -0.6294121
                            region: eu-west-1
                            zone: EQLD5
                          - building: Equinix LD5
                            cloudProvider: Amazon AWS
                            demarc: Fl-1/Rm-0601MC1.1
                            destinationDetails:
                              - productCode: ETH-ELINE-UNI
                                aggregatedBandwidth: No
                                connectionType: 
                                  hosted:
                                    bandwidths:
                                    - 10Mb
                                    - 20Mb
                                    - 30Mb
                                    - 40Mb
                                    - 50Mb
                                    - 60Mb
                                    - 70Mb
                                    - 80Mb
                                    - 90Mb
                                    - 100Mb
                                    - 200Mb
                                    - 300Mb
                                    - 400Mb
                                    - 500Mb
                                    - 600Mb
                                    - 700Mb
                                    - 800Mb
                                    - 900Mb
                                    - 1G
                                    - 2G
                                    - 3G
                                    - 5G
                                    - 250Mb
                                    evcEnabled: false
                            destinationName: Europe (London)
                            latitude: 51.5222611
                            locationId: a0b60000003LBlYAAW
                            longitude: -0.6294121
                            region: eu-west-2
                            zone: EQLD5
                      - buildingId: a0W600000009nFhEAI
                        buildingAddress: 2001 6th Ave, Seattle, WA 98121 USA
                        destinations:
                          - building: Westin Building
                            cloudProvider: Amazon AWS
                            demarc: Fl-12/Ste-1200
                            destinationDetails:
                              - productCode: ETH-ELINE-UNI
                                aggregatedBandwidth: No
                                connectionType: 
                                  hosted:
                                    bandwidths:
                                    - 10Mb
                                    - 20Mb
                                    - 30Mb
                                    - 40Mb
                                    - 50Mb
                                    - 60Mb
                                    - 70Mb
                                    - 80Mb
                                    - 90Mb
                                    - 100Mb
                                    - 200Mb
                                    - 300Mb
                                    - 400Mb
                                    - 500Mb
                                    - 600Mb
                                    - 700Mb
                                    - 800Mb
                                    - 900Mb
                                    - 1G
                                    - 2G
                                    - 3G
                                    - 5G
                                    - 250Mb
                                    evcEnabled: true
                            destinationName: US West (Oregon)
                            latitude: 47.6143693
                            locationId: a0b60000003Ku54AAC
                            longitude: -122.3387104
                            region: us-west-2
                            zone: SQSE2
                      - buildingId: a0W60000000BNQYEA4
                        buildingAddress: 624 S Grand Ave, Los Angeles, CA 90017 USA
                        destinations:
                          - building: One Wilshire
                            cloudProvider: Amazon AWS
                            demarc: Fl-4/Rm-MMR
                            destinationDetails:
                              - productCode: ETH-ELINE-UNI
                                aggregatedBandwidth: No
                                connectionType: 
                                  hosted:
                                    bandwidths:
                                    - 10Mb
                                    - 20Mb
                                    - 30Mb
                                    - 40Mb
                                    - 50Mb
                                    - 60Mb
                                    - 70Mb
                                    - 80Mb
                                    - 90Mb
                                    - 100Mb
                                    - 200Mb
                                    - 300Mb
                                    - 400Mb
                                    - 500Mb
                                    - 600Mb
                                    - 700Mb
                                    - 800Mb
                                    - 900Mb
                                    - 1G
                                    - 2G
                                    - 3G
                                    - 5G
                                    - 250Mb
                                    evcEnabled: true
                            destinationName: US West (N. California)
                            latitude: 34.047905
                            locationId: a0b60000003Ku11AAC
                            longitude: -118.255571
                            region: us-west-1
                            zone: CSOW
                      - buildingId: a0W60000002AnABEA0
                        buildingAddress: 114 rue Ambroise Croizat, Saint-Denis, 93200 France
                        destinations:
                          - building: Equinix PA2/PA3, Reliance, zColo Saint Denis
                            cloudProvider: Amazon AWS
                            demarc: Fl-G/Rm-120GS16 (Icare)
                            destinationDetails:
                              - productCode: ETH-ELINE-UNI
                                aggregatedBandwidth: No
                                connectionType: 
                                  hosted:
                                    bandwidths:
                                    - 10Mb
                                    - 20Mb
                                    - 30Mb
                                    - 40Mb
                                    - 50Mb
                                    - 60Mb
                                    - 70Mb
                                    - 80Mb
                                    - 90Mb
                                    - 100Mb
                                    - 200Mb
                                    - 300Mb
                                    - 400Mb
                                    - 500Mb
                                    - 600Mb
                                    - 700Mb
                                    - 800Mb
                                    - 900Mb
                                    - 1G
                                    - 2G
                                    - 3G
                                    - 5G
                                    - 250Mb
                                    evcEnabled: true
                            destinationName: Europe (Paris)
                            latitude: 48.927223
                            locationId: a0b60000008en3WAAQ
                            longitude: 2.350562
                            region: eu-west-3
                            zone: EQPA3      
                      - buildingId: a0W60000000A0DIEA0
                        buildingAddress: 910 15th St, Denver, CO 80202 USA
                        destinations:
                          - building: Denver Gas & Electric
                            cloudProvider: Amazon AWS
                            demarc: Fl-3/Ste-350/Rm-MMR
                            destinationDetails:
                              - productCode: ETH-ELINE-UNI
                                aggregatedBandwidth: No
                                connectionType: 
                                  hosted:
                                    bandwidths:
                                    - 10Mb
                                    - 20Mb
                                    - 30Mb
                                    - 40Mb
                                    - 50Mb
                                    - 60Mb
                                    - 70Mb
                                    - 80Mb
                                    - 90Mb
                                    - 100Mb
                                    - 200Mb
                                    - 300Mb
                                    - 400Mb
                                    - 500Mb
                                    - 600Mb
                                    - 700Mb
                                    - 800Mb
                                    - 900Mb
                                    - 1G
                                    - 2G
                                    - 3G
                                    - 5G
                                    - 250Mb
                                    evcEnabled: false
                            destinationName: US West (Oregon)
                            latitude: 39.74556
                            locationId: a0b60000000TURgAAO
                            longitude: -104.995682
                            region: us-west-2
                            zone: CSDE1   
                      - buildingId: a0W60000002An1MEAS
                        buildingAddress: 227 Marsh Wall, London, E14 9SD United Kingdom
                        destinations:
                          - building: Digital Realty Sovereign House
                            cloudProvider: Amazon AWS
                            demarc: Fl-3/Rm-MMR 2
                            destinationDetails:
                              - productCode: ETH-ELINE-UNI
                                aggregatedBandwidth: No
                                connectionType: 
                                  hosted:
                                    bandwidths:
                                    - 10Mb
                                    - 20Mb
                                    - 30Mb
                                    - 40Mb
                                    - 50Mb
                                    - 60Mb
                                    - 70Mb
                                    - 80Mb
                                    - 90Mb
                                    - 100Mb
                                    - 200Mb
                                    - 300Mb
                                    - 400Mb
                                    - 500Mb
                                    - 600Mb
                                    - 700Mb
                                    - 800Mb
                                    - 900Mb
                                    - 1G
                                    - 2G
                                    - 3G
                                    - 5G
                                    - 250Mb
                                    evcEnabled: true
                            destinationName: Europe (London)
                            latitude: 51.499894532300985
                            locationId: a0b60000003LGd8AAG
                            longitude: -0.011129790474255729
                            region: eu-west-2
                            zone: TCSH   
                          - building: Digital Realty Sovereign House
                            cloudProvider: Amazon AWS
                            demarc: Fl-3/Rm-MMR 2
                            destinationDetails:
                              - productCode: ETH-ELINE-UNI
                                aggregatedBandwidth: No
                                connectionType: 
                                  hosted:
                                    bandwidths:
                                    - 10Mb
                                    - 20Mb
                                    - 30Mb
                                    - 40Mb
                                    - 50Mb
                                    - 60Mb
                                    - 70Mb
                                    - 80Mb
                                    - 90Mb
                                    - 100Mb
                                    - 200Mb
                                    - 300Mb
                                    - 400Mb
                                    - 500Mb
                                    - 600Mb
                                    - 700Mb
                                    - 800Mb
                                    - 900Mb
                                    - 1G
                                    - 2G
                                    - 3G
                                    - 5G
                                    - 250Mb
                                    evcEnabled: true
                            destinationName: Europe (Ireland)
                            latitude: 51.499894532300985
                            locationId: a0b60000003LGd8AAG
                            longitude: -0.011129790474255729
                            region: eu-west-1
                            zone: TCSH   
                      - buildingId: a0W600000009ypzEAA
                        buildingAddress: 11 Great Oaks Blvd, San Jose, CA 95119 USA
                        destinations:
                          - building: Equinix SV1
                            cloudProvider: Amazon AWS
                            demarc: Fl-1/Rm-Equinix
                            destinationDetails:
                              - productCode: ETH-ELINE-UNI
                                aggregatedBandwidth: No
                                connectionType: 
                                  hosted:
                                    bandwidths:
                                    - 10Mb
                                    - 20Mb
                                    - 30Mb
                                    - 40Mb
                                    - 50Mb
                                    - 60Mb
                                    - 70Mb
                                    - 80Mb
                                    - 90Mb
                                    - 100Mb
                                    - 200Mb
                                    - 300Mb
                                    - 400Mb
                                    - 500Mb
                                    - 600Mb
                                    - 700Mb
                                    - 800Mb
                                    - 900Mb
                                    - 1G
                                    - 2G
                                    - 3G
                                    - 5G
                                    - 250Mb
                                    evcEnabled: true
                            destinationName: US West (N. California)
                            latitude: 37.241589
                            locationId: a0b60000000DoPKAA0
                            longitude: -121.783319
                            region: us-west-1
                            zone: EQSV5   
                      - buildingId: a0W600000009mrjEAA
                        buildingAddress: 32 Avenue Of The Americas, New York, NY 10013 USA
                        destinations:
                          - building: 32 Avenue Of The Americas
                            cloudProvider: Amazon AWS
                            demarc: Fl-7/Ste-Coresite/Rm-700
                            destinationDetails:
                              - productCode: ETH-ELINE-UNI
                                aggregatedBandwidth: No
                                connectionType:
                                  hosted:
                                    bandwidths:
                                    - 10Mb
                                    - 20Mb
                                    - 30Mb
                                    - 40Mb
                                    - 50Mb
                                    - 60Mb
                                    - 70Mb
                                    - 80Mb
                                    - 90Mb
                                    - 100Mb
                                    - 200Mb
                                    - 300Mb
                                    - 400Mb
                                    - 500Mb
                                    - 600Mb
                                    - 700Mb
                                    - 800Mb
                                    - 900Mb
                                    - 1G
                                    - 2G
                                    - 3G
                                    - 5G
                                    - 250Mb
                                    evcEnabled: true
                            destinationName: US East (N. Virginia)
                            latitude: 40.719979
                            locationId: a0b60000000VmskAAC
                            longitude: -74.004689
                            region: us-east-1
                            zone: CS32A   
                      - buildingId: a0W60000002AJTAEA4
                        buildingAddress: 2972 Stender Way, Santa Clara, CA 95054 USA
                        destinations:
                          - building: Coresite SV4
                            cloudProvider: Amazon AWS
                            demarc: Fl-2/Rm-212A
                            destinationDetails:
                              - productCode: ETH-ELINE-UNI
                                aggregatedBandwidth: No
                                connectionType:
                                  hosted:
                                    bandwidths:
                                    - 10Mb
                                    - 20Mb
                                    - 30Mb
                                    - 40Mb
                                    - 50Mb
                                    - 60Mb
                                    - 70Mb
                                    - 80Mb
                                    - 90Mb
                                    - 100Mb
                                    - 200Mb
                                    - 300Mb
                                    - 400Mb
                                    - 500Mb
                                    - 600Mb
                                    - 700Mb
                                    - 800Mb
                                    - 900Mb
                                    - 1G
                                    - 2G
                                    - 3G
                                    - 5G
                                    - 250Mb
                                    evcEnabled: false
                            destinationName: US West (N. California)
                            latitude: 37.3762704
                            locationId: a0b60000006I5WQAA0
                            longitude: -121.9706989
                            region: us-west-1
                            zone: CSSV4 
                      - buildingId: a0W60000002An9CEAS
                        buildingAddress: 137 Boulevard Voltaire, Paris, 75011 France
                        destinations:
                          - building: Telehouse 2
                            cloudProvider: Amazon AWS
                            demarc: Fl-2/Rm-22.07
                            destinationDetails:
                              - productCode: ETH-ELINE-UNI
                                aggregatedBandwidth: No
                                connectionType: 
                                  hosted:
                                    bandwidths:
                                    - 10Mb
                                    - 20Mb
                                    - 30Mb
                                    - 40Mb
                                    - 50Mb
                                    - 60Mb
                                    - 70Mb
                                    - 80Mb
                                    - 90Mb
                                    - 100Mb
                                    - 200Mb
                                    - 300Mb
                                    - 400Mb
                                    - 500Mb
                                    - 600Mb
                                    - 700Mb
                                    - 800Mb
                                    - 900Mb
                                    - 1G
                                    - 2G
                                    - 3G
                                    - 5G
                                    - 250Mb
                                    evcEnabled: true
                            destinationName: Europe (Frankfurt)
                            latitude: 48.8562758
                            locationId: a0b60000008eiILAAY
                            longitude: 2.3835683
                            region: eu-central-1
                            zone: THV52 
                      - buildingId: a0W60000002AnGSEA0
                        buildingAddress: Kleyerstraße 88-90, Frankfurt am Main, 60326 Germany
                        destinations:
                          - building: Equinix FR5, Itenos
                            cloudProvider: Amazon AWS
                            demarc: Fl-G/Rm-Colo
                            destinationDetails:
                              - productCode: ETH-ELINE-UNI
                                aggregatedBandwidth: No
                                connectionType: 
                                  hosted:
                                    bandwidths:
                                    - 10Mb
                                    - 20Mb
                                    - 30Mb
                                    - 40Mb
                                    - 50Mb
                                    - 60Mb
                                    - 70Mb
                                    - 80Mb
                                    - 90Mb
                                    - 100Mb
                                    - 200Mb
                                    - 300Mb
                                    - 400Mb
                                    - 500Mb
                                    - 600Mb
                                    - 700Mb
                                    - 800Mb
                                    - 900Mb
                                    - 1G
                                    - 2G
                                    - 3G
                                    - 5G
                                    - 250Mb
                                    evcEnabled: true
                            destinationName: Europe (Frankfurt)
                            latitude: 50.09914717148319
                            locationId: a0b6000000EqsfLAAR
                            longitude: 8.632502551280991
                            region: eu-central-1
                            zone: EQFA5 
                      - buildingId: a0W60000002EI8EEAW
                        buildingAddress: 6327 NE Evergreen Pkwy - Bldg C, Hillsboro, OR 97124 USA
                        destinations:
                          - building: EdgeConnex POR01
                            cloudProvider: Amazon AWS
                            demarc: Fl-1/Rm-104 MMR:2
                            destinationDetails:
                              - productCode: ETH-ELINE-UNI
                                aggregatedBandwidth: No
                                connectionType: 
                                  hosted:
                                    bandwidths:
                                    - 10Mb
                                    - 20Mb
                                    - 30Mb
                                    - 40Mb
                                    - 50Mb
                                    - 60Mb
                                    - 70Mb
                                    - 80Mb
                                    - 90Mb
                                    - 100Mb
                                    - 200Mb
                                    - 300Mb
                                    - 400Mb
                                    - 500Mb
                                    - 600Mb
                                    - 700Mb
                                    - 800Mb
                                    - 900Mb
                                    - 1G
                                    - 2G
                                    - 3G
                                    - 5G
                                    - 250Mb
                                    evcEnabled: false
                            destinationName: US West (Oregon)
                            latitude: 45.551671
                            locationId: a0b6000000G5qDSAAZ
                            longitude: -122.915335
                            region: us-west-2
                            zone: ECPO1 
                      - buildingId: a0W60000000ArT1EAK
                        buildingAddress: 12100 Sunrise Valley Dr, Reston, VA 20191 USA
                        destinations:
                          - building: Coresite Reston VA1
                            cloudProvider: Amazon AWS
                            demarc: Fl-1/Rm-CR-8
                            destinationDetails:
                              - productCode: ETH-ELINE-UNI
                                aggregatedBandwidth: No
                                connectionType: 
                                  hosted:
                                    bandwidths:
                                    - 10Mb
                                    - 20Mb
                                    - 30Mb
                                    - 40Mb
                                    - 50Mb
                                    - 60Mb
                                    - 70Mb
                                    - 80Mb
                                    - 90Mb
                                    - 100Mb
                                    - 200Mb
                                    - 300Mb
                                    - 400Mb
                                    - 500Mb
                                    - 600Mb
                                    - 700Mb
                                    - 800Mb
                                    - 900Mb
                                    - 1G
                                    - 2G
                                    - 3G
                                    - 5G
                                    - 250Mb
                                    evcEnabled: true
                            destinationName: Fl-1/Rm-CR-8
                            latitude: 38.950516
                            locationId: a0b60000003NUHJAA4
                            longitude: -77.364571
                            region: us-east-1
                            zone: CSVA1 
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
              examples:
                'Incorrect buildingIds format':
                  value: 
                    apiVersion: v2
                    error: 
                      errorId: 2268d09e-b9d3-ca93-32a5-b4b3f624b077
                      code: 400
                      message: >- 
                        Failed JSON Validation - /filters/buildingIds/0 should NOT be shorter than 18 characters,/filters/buildingIds/0 should match pattern \"a0W\"
                      errors: []
                'Incorrect casing of connectionTypes value':
                  value: 
                    apiVersion: v2
                    error: 
                      errorId: 56135e62-b2e7-4d05-f478-69064c0dfb07
                      code: 400
                      message: >- 
                        Failed JSON Validation - /filters/connectionTypes/0 should be equal to one of the allowed values,/filters/connectionTypes/0 should match some schema in anyOf
                      errors: []
  /services/quote-management/v3/catalog/product-code:
    get:
      summary: Get product catalog
      description: Get the Zayo product catalog where products are represented as a `productCode`. For each `productCode` get the description and latest version. 
      operationId: getProductCatalog
      tags:
        - Product Catalog
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  apiVersion:
                    type: string
                    example: v3
                  data:
                    type: object
                    properties:
                      productCodes:
                        type: array
                        items:
                          type: object
                          properties:
                            productCode: 
                              type: string
                              description: Zayo product.
                              example: ETH-ELINE-P2P
                              enum:
                                - WAVES-STD-P2P
                                - ETH-ELINE-UNI
                                - ETH-ELINE-NNI
                                - ETH-ELINE-P2P
                                - IP-DIA
                                - IP-DIA-AGG
                                - IP-VPN
                                - ETH-ELAN-M2M
                                - ETH-PDN-P2P
                            version:
                              type: string
                              description: Semantic version.
                              example: 3.2.0
                            description:
                              type: string
                              description: Description of the product.
                              example: >-
                                Metro and Intercity Point to Point service configurations provide an Ethernet Layer 2 private line connection between two locations.
              examples:
                'Product Catalog v3':
                  value: 
                    apiVersion: v3
                    data:
                      productCodes:
                          - productCode: ETH-PDN-P2P
                            version: 3.1.0
                            description: Ethernet connectivity across a completely private managed network operated by Zayo with dedicated fiber and dedicated equipment.
                          - productCode: ETH-ELAN-M2M
                            version: 3.1.0
                            description: A Carrier Ethernet, multipoint to multipoint configuration that allows communications across all locations.  Allows for an aggregated commit across locations.  Provides customers a simple WAN solution that is easier to maintain, support, and scale.
                          - productCode: ETH-ELINE-P2P
                            version: 3.3.0
                            description: Metro and Intercity Point to Point service configurations provide an Ethernet Layer 2 private line connection between two locations.
                          - productCode: ETH-ELINE-NNI
                            version: 3.2.0
                            description: Deliver full connectivity across your network by unifying multiple access points into a single aggregation point.
                          - productCode: ETH-ELINE-UNI
                            version: 3.3.0
                            description: Metro & Intercity Point-to-Multi-Point service provides a hub-and-spoke configuration where multiple locations (UNIs) are homed to a single hub or aggregation point (NNI) at a central location.
                          - productCode: IP-VPN
                            version: 3.3.0
                            description: IPVPN (Virtual Private Network using IP/MPLS backbone).
                          - productCode: IP-DIA
                            version: 3.7.0
                            description: Zayo's high performance Dedicated Internet Access (DIA) service combines essential internet features with global internet reach and scalability for enterprises of all sizes.
                          - productCode: IP-DIA-AGG
                            version: 3.6.0
                            description: Zayo's high performance Aggregated Dedicated Internet Access (DIA) service combines essential internet features with global internet reach and scalability for enterprises of all sizes.
                          - productCode: WAVES-STD-P2P
                            version: 3.0.0
                            description: With Wavelength Point to Point solutions, feel confident with your bandwidth capacity. Zayo offers a range of flexible connectivity options that can be customized to meet your technical specifications. Connect between Tier 1-5 markets across North America.
                'Product Catalog v2':
                  value: 
                    apiVersion: v2
                    data:
                      productCodes:
                        - productCode: ETH-ELINE-UNI
                          version: 2.1.0
                          description: Metro & Intercity Point-to-Multi-Point service provides a hub-and-spoke configuration where multiple locations (UNIs) are homed to a single hub or aggregation point (NNI) at a central location.
                        - productCode: ETH-ELINE-P2P
                          version: 2.1.0
                          description: Metro and Intercity Point to Point service configurations provide an Ethernet Layer 2 private line connection between two locations.
                        - productCode: ETH-ELINE-NNI
                          version: 2.0.0
                          description: Deliver full connectivity across your network by unifying multiple access points into a single aggregation point.
                        - productCode: ETH-ELAN-M2M
                          version: 2.0.0
                          description: A Carrier Ethernet, multipoint to multipoint configuration that allows communications across all locations.  Allows for an aggregated commit across locations.  Provides customers a simple WAN solution that is easier to maintain, support, and scale.
                        - productCode: ETH-PDN-P2P
                          version: 2.0.0
                          description: Ethernet connectivity across a completely private managed network operated by Zayo with dedicated fiber and dedicated equipment.
                        - productCode: IP-DIA-AGG
                          version: 2.1.0
                          description: Zayo's high performance Aggregated Dedicated Internet Access (DIA) service combines essential internet features with global internet reach and scalability for enterprises of all sizes.
                        - productCode: IP-DIA
                          version: 2.1.0
                          description: Zayo's high performance Dedicated Internet Access (DIA) service combines essential internet features with global internet reach and scalability for enterprises of all sizes.
                        - productCode: IP-VPN
                          version: 2.0.0
                          description: IPVPN (Virtual Private Network using IP/MPLS backbone).
                        - productCode: WAVES-STD-P2P
                          version: 2.0.0
                          description: With Wavelength Point to Point solutions, feel confident with your bandwidth capacity. Zayo offers a range of flexible connectivity options that can be customized to meet your technical specifications. Connect between Tier 1-5 markets across North America.
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
  /services/quote-management/v3/catalog/product-code-details/{productCode}/{version}:
    get:
      summary: Get product code details
      description: >- 
        After you get the latest semantic version from the product catalog route, plug the version and the product code into the product code details route to dynamically receive the latest quote request schema with required and optional attributes needed per product code/version combination. The response of this route is the guide to your quote request. The product code details response and quote request schema includes 3 major components - `attrs` array, `configuration` object, and `preferences` object. 
        
        
        The `attrs` array is where you can specify your existing `quoteId` to make edits to your quote. 
        
        
        The `configuration` object is where all of the product-specific attributes are returned. This schema will vary based on the product and version.
        
        
        The `preferences` object is where you can specific non-configuration attributes like notes and a unique Id like a corresponding quoteId from your system. This schema is the same for all products and versions.
      operationId: getProductCodeDetails
      tags:
        - Product Catalog
      parameters:
        - name: productCode
          in: path
          required: true
          description: >-
            Product code returned from the /product-catalog route.
          schema:
            type: string
            example: IP-DIA
            enum:
              - IP-DIA
              - IP-DIA-AGG
              - ETH-ELINE-UNI
              - ETH-ELINE-NNI
              - ETH-ELINE-P2P
              - WAVES-STD-P2P
              - IP-VPN
              - ETH-ELAN-M2M
              - ETH-PDN-P2P
        - name: version
          in: path
          required: true
          description: >-
            Semantic version returned from the /product-catalog route.
          schema:
            type: string
            example: 3.7.0
      responses: 
        '200':
          description: Success
          content:
             application/json:
               schema:
                 type: object
                 properties:
                  apiVersion:
                    type: string
                    example: v3
                  data:
                    type: object
                    properties:
                      productCodeConfigurations:
                        type: array
                        description: Array that contains attrs array, configuration object, and preferences ojbect. 
                        items:
                          type: object
                          properties:
                            attrs:
                              type: array
                              description: Object shows all of the fields that can be passed into the quote request payload at the root level. Attrs objects explain the attributes with a name, displayName, description, criteria, and value or options. Options include value, default value and allowed for controlling fields. These controlling fields will also have a value, and deafult value. 
                              items:
                                type: object
                                properties:
                                  name: 
                                    type: string
                                    example: quoteId
                                    description: Name of the attribute.
                                  displayName: 
                                    type: string
                                    example: Quote Id
                                    description: Recommended name if you are exposing this attribute in your own application.
                                  description: 
                                    type: string
                                    example: Unique API identifier to be used for subsequent routes.
                                    description: Description of the attribute.
                                  criteria:
                                    type: object
                                    properties:
                                      dataType: 
                                        type: string
                                        example: String
                                        description: Data type of the attribute. 
                                      isRequired:
                                        type: boolean
                                        example: false
                                        description: Specifies if the attribute or object is required.
                                      anyRequired:
                                        type: array
                                        items:
                                          type: string
                            configuration:
                              type: object
                              description: Object that has its own attrs array with fields that can be passed into the quote request payload within the configuration object. Attrs objects explain the attributes with a name, displayName, description, criteria, and value. Sometimes there are options arrays that show the available picklist values, which can also contain controlling fields. There is also a children array that shows location-based attributes and will explain the number of locations required per quote with the `minCount` and `maxCount` attributes. 
                              properties:
                                isRequired:
                                  type: boolean
                                  example: true
                                  description: Specifies if the configuration object is required.
                                attrs:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      name: 
                                        type: string
                                        example: quoteId
                                        description: unique identifier of the quote. Pass in this value to the POST quotes/quote route to edit your quote.
                                      displayName: 
                                        type: string
                                        example: Quote Id
                                        description: Recommended name if you are exposing this attribute in your own application.
                                      description: 
                                        type: string
                                        example: Unique API identifier to be used for subsequent routes.
                                        description: Description of the attribute.
                                      criteria:
                                        type: object
                                        properties:
                                          dataType: 
                                            type: string
                                            example: String
                                            description: Data type of the attribute. 
                                          isRequired:
                                            type: boolean
                                            example: false
                                            description: Specifies if the attribute is required.
                                          anyRequired:
                                            type: array
                                            description: Array of attribute names that are related in that, at least one of these is required. So, in this case, either locationId or buildingId is required in the quote request payload.
                                            items:
                                              type: string
                                              example: locationA
                                      value:
                                        type: string
                                        example: ETH-ELINE-UNI
                                        description: If a value is specified for this attribute, it will be defined and populated here. Value is returned for `version` and `nodeId`, otherwise you will see `options`.
                                children:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      minCount:
                                        type: integer
                                        example: 1
                                        description: Minimum number of children objects allowed for that product code/version combination.
                                      maxCount:
                                        type: integer
                                        example: 1
                                        description: Maximum number of children objects allowed for that product code/version combination.
                                      attrs:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            name: 
                                              type: string
                                              example: quoteId
                                              description: Name of the attribute. 
                                            displayName: 
                                              type: string
                                              example: Quote Id
                                              description: Recommended name if you are exposing this attribute in your own application.
                                            description: 
                                              type: string
                                              example: Unique API identifier to be used for subsequent routes.
                                              description: Description of the attribute.
                                            criteria:
                                              type: object
                                              properties:
                                                dataType: 
                                                  type: string
                                                  example: String
                                                  description: Data type of the attribute. 
                                                isRequired:
                                                  type: boolean
                                                  example: false
                                                  description: Specifies if the attribute is required.
                                                anyRequired:
                                                  type: array
                                                  items:
                                                    type: string
                                            value:
                                              type: string
                                              example: ETH-ELINE-UNI
                                              description: If a value is specified for this attribute, it will be defined and populated here. Other static values include `version` and `nodeId`. 
                                            options:
                                              type: array
                                              description: This is an alternative to the value option. This represents an array of enum values, or potential picklist options. Some of these enum values can be controlled by other values which are defined in this array.
                                              items:
                                                type: object
                                                properties:
                                                  value:
                                                    type: string
                                                    example: 10/100/1000BaseT
                                                    description: This is the enum value for the attribute. 
                                                  defaultValue:
                                                    type: boolean
                                                    example: false
                                                    description: Specifies if this value is the default option.
                                                  allowedForControllingFields:
                                                    type: array
                                                    description: Array of controlling fields and field values. Controlling fields are used for attributes which have options that are dependent on another attribute. For example, a port handoff speed of GigE can’t support a bandwidth over 10G, therefore `allowForControllingFields` under that port handoff speed includes `bandwidth` and the supported bandwidth `values`.
                                                    items:
                                                      type: object
                                                      properties:
                                                        controllingField:
                                                          type: string
                                                          example: bandwidth
                                                          description: Name of the field that controls the enum value.
                                                        values:
                                                          type: array
                                                          description: Array of value options for the `controllingField`.
                                                          items:
                                                            type: object
                                                            properties:
                                                              value: 
                                                                type: string
                                                                example: 10Mb
                                                                description: Value option for the `controllingField`.
                                                              defaultValue:
                                                                type: boolean
                                                                example: false
                                                                description: Explains if the `controllingField` has a default value.
                            preferences:
                              type: object
                              description: Object that contains attributes not related to the product configuration, like `requestFollowUp`, `notes`, and `quoteNameIedntifier`.
                              properties:
                                isRequired:
                                  type: boolean
                                  example: false
                                  description: Specifies if the properties object is required.
                                attrs:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      name: 
                                        type: string
                                        example: requestFollowUp
                                        description: Name of the attribute.
                                      displayName: 
                                        type: string
                                        example: Request Follow Up
                                        description: Recommended name if you are exposing this attribute in your own application.
                                      description: 
                                        type: string
                                        example: If "Yes" then if the quote does nto have immediate pricing available, then quote is routed to the Tranzact Experts desk for research and further investigation. If "No" then quote is disregarded. If you are setting this value to Yes, please gain approval from zayoapi@zayo.com and provide contact information under Notes for direct follow up.
                                        description: Description of the attribute.
                                      criteria:
                                        type: object
                                        properties:
                                          dataType: 
                                            type: string
                                            example: String
                                            description: Data type of the attribute. 
                                          isRequired:
                                            type: boolean
                                            example: false
                                            description: Specifies if the attribute is required.
                                      options:
                                        type: array
                                        description: This represents an array of enum values, or potential picklist options. Some of these enum values can be controlled by other values which are defined in this array.
                                        items:
                                          type: object
                                          properties:
                                            value:
                                              type: string
                                              example: Yes
                                              description: This is the enum value for the attribute. 
                                            defaultValue:
                                              type: boolean
                                              example: true
                                              description: Specifies if this value is the default option.
               examples:
                'ETH-ELINE-UNI 3.3.0':
                  value: 
                    apiVersion: v3
                    data:
                      productCodeConfigurations:
                        - attrs:
                          - name: quoteId
                            displayName: Quote Id
                            description: Unique API identifier to be used for subsequent routes.
                            criteria:
                              dataType: string
                              isRequired: false
                          configuration:
                            isRequired: true
                            attrs:
                              - name: productCode
                                displayName: Product Code
                                description: N/A
                                criteria:
                                  dataType: String
                                  isRequired: true
                                value: ETH-ELINE-UNI
                              - name: version
                                displayName: Version
                                description: N/A
                                criteria:
                                  dataType: String
                                  isRequired: true
                                value: 3.3.0
                              - name: nodeId
                                displayName: Node Id
                                description: 36-character UUID
                                criteria:
                                  dataType: String
                                  isRequired: true
                                value: AAC758F0-F719-470D-B716-E8EC6804810F
                              - name: bandwidth
                                displayName: Bandwidth
                                description: Amount of data capacity for the service
                                criteria:
                                  dataType: String
                                  isRequired: true
                                options: 
                                  - value: 10Mb
                                    defaultValue: false
                                    allowForControllingFields: []
                                  - value: 20Mb
                                    defaultValue: false
                                    allowForControllingFields: []
                                  - value: 30Mb
                                    defaultValue: false
                                    allowForControllingFields: []
                                  - value: 40Mb
                                    defaultValue: false
                                    allowForControllingFields: []
                                  - value: 50Mb
                                    defaultValue: false
                                    allowForControllingFields: []
                                  - value: 60Mb
                                    defaultValue: false
                                    allowForControllingFields: []
                                  - value: 70Mb
                                    defaultValue: false
                                    allowForControllingFields: []
                                  - value: 80Mb
                                    defaultValue: false
                                    allowForControllingFields: []
                                  - value: 90Mb
                                    defaultValue: false
                                    allowForControllingFields: []
                                  - value: 100Mb
                                    defaultValue: false
                                    allowForControllingFields: []
                                  - value: 150Mb
                                    defaultValue: false
                                    allowForControllingFields: []
                                  - value: 200Mb
                                    defaultValue: false
                                    allowForControllingFields: []
                                  - value: 250Mb
                                    defaultValue: false
                                    allowForControllingFields: []
                                  - value: 300Mb
                                    defaultValue: false
                                    allowForControllingFields: []
                                  - value: 400Mb
                                    defaultValue: false
                                    allowForControllingFields: []
                                  - value: 500Mb
                                    defaultValue: false
                                    allowForControllingFields: []
                                  - value: 600Mb
                                    defaultValue: false
                                    allowForControllingFields: []
                                  - value: 700Mb
                                    defaultValue: false
                                    allowForControllingFields: []
                                  - value: 800Mb
                                    defaultValue: false
                                    allowForControllingFields: []
                                  - value: 900Mb
                                    defaultValue: false
                                    allowForControllingFields: []
                                  - value: 1G
                                    defaultValue: false
                                    allowForControllingFields: []
                                  - value: 2G
                                    defaultValue: false
                                    allowForControllingFields: []
                                  - value: 3G
                                    defaultValue: false
                                    allowForControllingFields: []
                                  - value: 5G
                                    defaultValue: false
                                    allowForControllingFields: []
                                  - value: 10G
                                    defaultValue: false
                                    allowForControllingFields: []
                                  - value: 20G
                                    defaultValue: false
                                    allowForControllingFields: []
                                  - value: 30G
                                    defaultValue: false
                                    allowForControllingFields: []
                                  - value: 40G
                                    defaultValue: false
                                    allowForControllingFields: []
                              - name: burstableService
                                displayName: Burstable Service
                                description: Ability for traffic to exceed the Comitted Information Rate (CIR) at a cost
                                criteria:
                                  dataType: String
                                  isRequired: false
                                options: 
                                  - value: Yes
                                    defaultValue: false
                                    allowedForControllingFields: []
                                  - value: No
                                    defaultValue: true
                                    allowedForControllingFields: []
                              - name: qualityOfService
                                displayName: Quality of Service
                                description: N/A
                                criteria:
                                  dataType: String
                                  isRequired: false
                                options:
                                  - value: Off
                                    defaultValue: true
                                    allowedForControllingFields: []
                                  - value: Metro-On
                                    defaultValue: false
                                    allowedForControllingFields: []
                              - name: mefCertified
                                displayName: MEF Certified
                                description: N/A
                                criteria:
                                  dataType: String
                                  isRequired: false
                                options:
                                  - value: No
                                    defaultValue: true
                                    allowedForControllingFields: []
                                  - value: Yes
                                    defaultValue: false
                                    allowedForControllingFields: []
                              - name: currencyIsoCode
                                displayName: Currency ISO Code
                                description: Three letter ISO code for Currency
                                criteria:
                                  dataType: String
                                  isRequired: false
                                options:
                                  - value: USD
                                    defaultValue: true
                                    allowedForControllingFields: []
                                  - value: CAD
                                    defaultValue: false
                                    allowedForControllingFields: []
                                  - value: EUR
                                    defaultValue: false
                                    allowedForControllingFields: []
                                  - value: GDP
                                    defaultValue: false
                                    allowedForControllingFields: []
                                  - value: HKD
                                    defaultValue: false
                                    allowedForControllingFields: []
                                  - value: AUD
                                    defaultValue: false
                                    allowedForControllingFields: []
                                  - value: CHF
                                    defaultValue: false
                                    allowedForControllingFields: []
                                  - value: JPY
                                    defaultValue: false
                                    allowedForControllingFields: []
                                  - value: SGD
                                    defaultValue: false
                                    allowedForControllingFields: []
                                  - value: MXN
                                    defaultValue: false
                                    allowedForControllingFields: []
                                  - value: BRL
                                    defaultValue: false
                                    allowedForControllingFields: []
                                  - value: DKK
                                    defaultValue: false
                                    allowedForControllingFields: []
                                  - value: SEK
                                    defaultValue: false
                                    allowedForControllingFields: []
                                  - value: ZAR
                                    defaultValue: false
                                    allowedForControllingFields: []
                            children:
                              - minCount: 1
                                maxCount: 1
                                attrs:
                                  - name: productCode
                                    displayName: Product Code
                                    description: N/A
                                    criteria:
                                      dataType: String
                                      isRequired: true
                                    value: ETH-ELINE-UNI
                                  - name: version
                                    displayName: Version
                                    description: N/A
                                    criteria: 
                                      dataType: String
                                      isRequired: true
                                    value: 3.3.0
                                  - name: nodeId
                                    displayName: Node Id
                                    description: 36-character UUID
                                    criteria:
                                      dataType: String
                                      isRequired: true
                                    value: 61DE1859-7A99-4218-B43E-F96CD57303A0
                                  - name: portHandoffSpeed
                                    displayName: Port Handoff Speed
                                    description: GigE - Supports up to 1G, 10GigE - Supports up to 10G, 100GigE - Supports up to 100G
                                    criteria:
                                      dataType: String
                                      isRequired: false
                                    options: 
                                      - value: 10/100/1000BaseT
                                        defaultValue: false
                                        allowedForControllingFields:
                                          - controllingField: bandwidth
                                            values:
                                              - value: 10Mb
                                                defaultValue: false
                                              - value: 20Mb
                                                defaultValue: false
                                              - value: 30Mb
                                                defaultValue: false
                                              - value: 40Mb
                                                defaultValue: false
                                              - value: 50Mb
                                                defaultValue: false
                                              - value: 60Mb
                                                defaultValue: false
                                              - value: 70Mb
                                                defaultValue: false
                                              - value: 80Mb
                                                defaultValue: false
                                              - value: 90Mb
                                                defaultValue: false
                                              - value: 100Mb
                                                defaultValue: false
                                              - value: 150Mb
                                                defaultValue: false
                                              - value: 200Mb
                                                defaultValue: false
                                              - value: 250Mb
                                                defaultValue: false
                                              - value: 300Mb
                                                defaultValue: false
                                              - value: 400Mb
                                                defaultValue: false
                                              - value: 500Mb
                                                defaultValue: false
                                              - value: 600Mb
                                                defaultValue: false
                                              - value: 700Mb
                                                defaultValue: false
                                              - value: 800Mb
                                                defaultValue: false
                                              - value: 900Mb
                                                defaultValue: false
                                              - value: 1G
                                                defaultValue: false
                                      - value: GigE
                                        defaultValue: false
                                        allowedForControllingFields:
                                          - controllingField: bandwidth
                                            values:
                                              - value: 10Mb
                                                defaultValue: false
                                              - value: 20Mb
                                                defaultValue: false
                                              - value: 30Mb
                                                defaultValue: false
                                              - value: 40Mb
                                                defaultValue: false
                                              - value: 50Mb
                                                defaultValue: false
                                              - value: 60Mb
                                                defaultValue: false
                                              - value: 70Mb
                                                defaultValue: false
                                              - value: 80Mb
                                                defaultValue: false
                                              - value: 90Mb
                                                defaultValue: false
                                              - value: 100Mb
                                                defaultValue: false
                                              - value: 150Mb
                                                defaultValue: false
                                              - value: 200Mb
                                                defaultValue: false
                                              - value: 250Mb
                                                defaultValue: false
                                              - value: 300Mb
                                                defaultValue: false
                                              - value: 400Mb
                                                defaultValue: false
                                              - value: 500Mb
                                                defaultValue: false
                                              - value: 600Mb
                                                defaultValue: false
                                              - value: 700Mb
                                                defaultValue: false
                                              - value: 800Mb
                                                defaultValue: false
                                              - value: 900Mb
                                                defaultValue: false
                                              - value: 1G
                                                defaultValue: false
                                      - value: 10GigE
                                        defaultValue: false
                                        allowedForControllingFields:
                                          - controllingField: bandwidth
                                            values:
                                              - value: 10Mb
                                                defaultValue: false
                                              - value: 20Mb
                                                defaultValue: false
                                              - value: 30Mb
                                                defaultValue: false
                                              - value: 40Mb
                                                defaultValue: false
                                              - value: 50Mb
                                                defaultValue: false
                                              - value: 60Mb
                                                defaultValue: false
                                              - value: 70Mb
                                                defaultValue: false
                                              - value: 80Mb
                                                defaultValue: false
                                              - value: 90Mb
                                                defaultValue: false
                                              - value: 100Mb
                                                defaultValue: false
                                              - value: 150Mb
                                                defaultValue: false
                                              - value: 200Mb
                                                defaultValue: false
                                              - value: 250Mb
                                                defaultValue: false
                                              - value: 300Mb
                                                defaultValue: false
                                              - value: 400Mb
                                                defaultValue: false
                                              - value: 500Mb
                                                defaultValue: false
                                              - value: 600Mb
                                                defaultValue: false
                                              - value: 700Mb
                                                defaultValue: false
                                              - value: 800Mb
                                                defaultValue: false
                                              - value: 900Mb
                                                defaultValue: false
                                              - value: 1G
                                                defaultValue: false
                                              - value: 2G
                                                defaultValue: false
                                              - value: 3G
                                                defaultValue: false
                                              - value: 5G
                                                defaultValue: false
                                              - value: 10G
                                                defaultValue: false
                                      - value: 100GigE
                                        defaultValue: false
                                        allowedForControllingFields:
                                          - controllingField: bandwidth
                                            values:
                                              - value: 10Mb
                                                defaultValue: false
                                              - value: 20Mb
                                                defaultValue: false
                                              - value: 30Mb
                                                defaultValue: false
                                              - value: 40Mb
                                                defaultValue: false
                                              - value: 50Mb
                                                defaultValue: false
                                              - value: 60Mb
                                                defaultValue: false
                                              - value: 70Mb
                                                defaultValue: false
                                              - value: 80Mb
                                                defaultValue: false
                                              - value: 90Mb
                                                defaultValue: false
                                              - value: 100Mb
                                                defaultValue: false
                                              - value: 150Mb
                                                defaultValue: false
                                              - value: 200Mb
                                                defaultValue: false
                                              - value: 250Mb
                                                defaultValue: false
                                              - value: 300Mb
                                                defaultValue: false
                                              - value: 400Mb
                                                defaultValue: false
                                              - value: 500Mb
                                                defaultValue: false
                                              - value: 600Mb
                                                defaultValue: false
                                              - value: 700Mb
                                                defaultValue: false
                                              - value: 800Mb
                                                defaultValue: false
                                              - value: 900Mb
                                                defaultValue: false
                                              - value: 1G
                                                defaultValue: false
                                              - value: 2G
                                                defaultValue: false
                                              - value: 3G
                                                defaultValue: false
                                              - value: 5G
                                                defaultValue: false
                                              - value: 10G
                                                defaultValue: false
                                              - value: 20G
                                                defaultValue: false
                                              - value: 30G
                                                defaultValue: false
                                              - value: 40G
                                                defaultValue: false
                                  - name: handoff
                                    displayName: Handoff
                                    description: Handoff media expected for service delivery
                                    criteria:
                                      dataType: String
                                      isRequired: false
                                    options: 
                                      - value: 2-Fiber (Optical MMF)
                                        defaultValue: false
                                        allowedForControllingFields:
                                          - controllingField: portHandoffSpeed
                                            values:
                                              - value: GigE
                                                defaultValue: false
                                              - value: 10GigE
                                                defaultValue: false
                                              - value: 100GigE
                                                defaultValue: false
                                      - value: 2-Fiber (Optical SMF)
                                        defaultValue: false
                                        allowedForControllingFields:
                                          - controllingField: portHandoffSpeed
                                            values:
                                              - value: GigE
                                                defaultValue: true
                                              - value: 10GigE
                                                defaultValue: true
                                              - value: 100GigE
                                                defaultValue: true
                                      - value: Copper (RJ-45 Electrical)
                                        defaultValue: false
                                        allowedForControllingFields:
                                          - controllingField: portHandoffSpeed
                                            values:
                                              - value: 10/100/1000BaseT
                                                defaultValue: true
                                              - value: 10GigE
                                                defaultValue: false
                                              - value: 100GigE
                                                defaultValue: false
                                  - name: networkInterfaceDevice
                                    displayName: Network Interface Device
                                    description: N/A
                                    criteria:
                                      dataType: String
                                      isRequired: false
                                    options: 
                                      - value: No
                                        defaultValue: false
                                        allowedForControllingFields:
                                          - controllingField: handoff
                                            values:
                                              - value: 2-Fiber (Optical MMF)
                                                defaultValue: false
                                              - value: 2-Fiber (Optical SMF)
                                                defaultValue: false
                                              - value: Copper (RJ-45 Electrical)
                                                defaultValue: false
                                          - controllingField: mefCertified
                                            values:
                                              - value: No
                                                defaultValue: false
                                              - value: Yes
                                                defaultValue: false
                                      - value: Yes
                                        defaultValue: false
                                        allowedForControllingFields:
                                          - controllingField: handoff
                                            values:
                                              - value: 2-Fiber (Optical MMF)
                                                defaultValue: false
                                              - value: 2-Fiber (Optical SMF)
                                                defaultValue: false
                                              - value: Copper (RJ-45 Electrical)
                                                defaultValue: false
                                          - controllingField: mefCertified
                                            values:
                                              - value: No
                                                defaultValue: false
                                              - value: Yes
                                                defaultValue: false
                                  - name: cfaProvidedBy
                                    displayName: CFA Provided By
                                    description: Entity responsible for Customer Facility Assignment
                                    criteria:
                                      dataType: String
                                      isRequired: false
                                    options: 
                                      - value: Zayo
                                        defaultValue: true
                                        allowedForControllingFields: []
                                      - value: Customer
                                        defaultValue: false
                                        allowedForControllingFields: []
                                  - name: locationA
                                    displayName: Location A
                                    description: 18-character location ID
                                    criteria:
                                      dataType: Id
                                      isRequired: false
                                      anyRequired: 
                                      - locationA
                                      - buildingA
                                  - name: buildingA
                                    displayName: Building A
                                    description: 18-character building ID
                                    criteria:
                                      dataType: Id
                                      isRequired: false
                                      anyRequired: 
                                      - locationA
                                      - buildingA
                                  - name: nniId
                                    displayName: NNI Id
                                    description: 18-character NNI ID
                                    criteria:
                                      dataType: Id
                                      isRequired: false
                                  - name: cloudProvider
                                    displayName: Cloud Provider
                                    description: Name of provider
                                    criteria:
                                      dataType: String
                                      isRequired: false
                                      schemaRefs:
                                        - "defs.json#/definitions/cloudlink"
                                        - "defs.json#/definitions/checkProvider"
                                        - "defs.json#/definitions/defaultConnectionType"
                                    options: 
                                      - value:
                                        defaultValue:
                                        allowedForControllingFields: []
                                  - name: connectionType
                                    displayName: Connection Type
                                    description: Required when Cloud Provider is present.
                                    criteria:
                                      dataType: String
                                      isRequired: false
                                      notRequired: true
                                      schemaRefs:
                                        - "defs.json#/definitions/evcEnabled"
                                    options:
                                      - value: Dedicated
                                        defaultValue: false
                                        allowedForControllingFields: []
                                      - value: Hosted
                                        defaultValue: false
                                        allowedForControllingFields: []
                                  - name: lag
                                    displayName: LAG
                                    description: LAG (Link Aggregation) gives you the ability to enhance your network capacity and reduce cost while maintaining a fast transmission speed by using all the same hardware devices.
                                    criteria:
                                      dataType: String
                                      isRequired: false
                                      notRequired: true
                                    options:
                                      - value: Yes
                                        defaultValue: false
                                        allowedForControllingFields: []
                                      - value: No
                                        defaultValue: true
                                        allowedForControllingFields: []
                                children: []
                          preferences:
                            isRequired: false
                            attrs:
                              - name: requestFollowUp
                                displayName: Request Follow Up
                                description: If \"Yes\" then quote is routed to the Tranzact Experts desk for research. If \"No\" then quote is disregarded. Please provide contact information under Notes for direct follow up.
                                criteria:
                                  dataType: String
                                  isRequired: false
                                options: 
                                  - value: No
                                    defaultValue: true
                                    allowedForControllingFields: []
                                  - value: Yes
                                    defaultValue: false
                                    allowedForControllingFields: []
                              - name: notes
                                displayName: Notes
                                description: Free form text field limited to 255 characters. Use to provide additional information relevant to the quote, for example Customer Contact email for follow up.
                                criteria:
                                  dataType: String
                                  isRequired: false
                              - name: quoteNameIdentifier
                                displayName: Quote Name Identifier
                                description: Customer Identifier
                                criteria:
                                  dataType: String
                                  isRequired: false
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
  /services/quote-management/v3/quotes/quote:
    post:
      summary: Create or edit quote
      description: >-
        Creates a quote using building or location information from the Network Discovery APIs and product code details from the Product Catalog APIs. You can also update an existing quote by passing in the quoteId. Each quote response will include the quote confinguration, `estimatedInstallInterval`, and pricing for multiple terms within the `financialTerms` array.
      operationId: requestQuote
      tags:
        - Quote
      requestBody:
        description: >-
          Quote request body. This includes 3 major components - `attrs` array, `configuration` object, and `preferences` object. The `configuration` object will vary based on the product code and version, while the `attrs` and `preferences` object will have the same schema for all product codes and versions. 
        required: true
        content:
          application/json:
            schema:
              anyOf:
                - $ref: '#/components/schemas/uniCloudLinkQuoteRequest'
                - $ref: '#/components/schemas/uniQuoteRequest'
      responses:
        '200':
          description: 'Success'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/uniCloudLinkQuoteResponse'
                  - $ref: '#/components/schemas/uniQuoteResponse'
              examples:
                'DIA - Immediate Pricing Available':
                  value:
                    apiVersion: v3
                    data:
                      configuration:
                        children:
                          - productCode: IP-DIA
                            version: 3.7.0
                            nodeId: EED0662D-0710-43D2-8539-498496F3B77E
                            portHandoffSpeed: 10GigE
                            locationA: a0b60000000W6LjAAK
                            connectedIpv4Address: IPv4/31
                            additionalIpv4Addresses:
                              - IPv4/31: 0
                                IPv4/29: 0
                                IPv4/28: 0
                                IPv4/27: 0
                                IPv4/26: 0
                                IPv4/24: 0
                                IPv4/30: 0
                            additionalIpv6Addresses:
                              - IPv6/64
                                IPv6/48
                            routing: No
                            lag: No
                            networkInterfaceDevice: No
                            cfaProvidedBy: Zayo
                            handoff: 2-Fiber (Optical SMF)
                        nodeId: 6DD6BC0E-CE1F-4EAC-8D4A-07DE8F5BF597
                        productCode: IP-DIA
                        version: 3.7.0
                        ddosProtection:
                          ddosProtectionIncluded: False
                          cleanTraffic: None
                          subscription: None
                        currencyIsoCode: USD
                        bandwidth: 10G
                        burstableService: No
                        bandwidthType: Standard
                        product: DIA
                        productCategory: DIA
                        aggregatedBandwidth: No
                        locations:
                          - locationId: a0b60000000W6LjAAK
                            address: 393 Inverness Pkwy Englewood, CO 80112
                            floorRoomSuite: Fl-1/Rm-DC-04
                            buildingNetworkStatus: On Zayo Network
                            buildingClassification: On-Net
                            competitiveInternetEnablement: 'Yes'
                            locationNetworkStatus: On Zayo Network
                            preferredDemarc: Yes
                            customerAccessRights: Full Access Tier 0
                      preferences:
                        - requestFollowUp: No
                          notes: Some notes
                          quoteNameIdentifier: Cutomer identifier, like a PO Number
                      quoteId: 1cd080ac-1d02-4a9d-b7ee-3fe0d4a77d2b
                      quoteNumber: Quote-10900936
                      estimatedInstallInterval: 45 days
                      financialTerms:
                        - term: 12
                          totalMrc: 1434.69
                          totalNrc: 1100
                        - term: 24
                          totalMrc: 1274.1
                          totalNrc: 1100
                        - term: 36
                          totalMrc: 1220.57
                          totalNrc: 1100
                        - term: 48
                          totalMrc: 1167.04
                          totalNrc: 1100
                        - term: 60
                          totalMrc: 1113.51
                          totalNrc: 1100
                      lineItems: []
                      cpqStatus: Approved
                'UNI - Immediate Pricing Available':
                  value: 
                    apiVersion: v3
                    data:
                      configuration:
                        children:
                          - productCode: ETH-ELINE-UNI
                            version: 3.3.0
                            nodeId: 61DE1859-7A99-4218-B43E-F96CD57303A0
                            evcEnabled: No
                            portHandoffSpeed: GigE
                            locationA: a0b6000000A6IzoAAF
                            lag: No
                            cfaProvidedBy: Zayo
                            handoff: 2-Fiber (Optical SMF)
                            networkInterfaceDevice: No
                        nodeId: AAC758F0-F719-470D-B716-E8EC6804810F
                        productCode: ETH-ELINE-UNI
                        version: 3.3.0
                        currencyIsoCode: USD
                        bandwidth: 1G
                        burstableService: No
                        qualityOfService: Off
                        mefCertified: No
                        aggregatedBandwidth: No
                        bandwidthType: Standard
                        product: ELine
                        productCategory: Pt to Multi-Pt (UNI)
                        locations:
                          - locationId: a0b6000000A6IzoAAF
                            address: 1656 McCarthy Blvd Milpitas, CA 95035
                            floorSuiteRoom: Fl-1/Rm-MMR
                            buildingNetworkStatus: On Zayo Network
                            buildingClassification: On-Net
                            locationNetworkStatus: On Zayo Network
                            preferredDemarc: No
                            customerAccessRights: Full Access Tier 0
                            nniLocation: false
                          - locationId: a0b60000003KuM0AAK
                            address: 2334 Lundy Pl San Jose, CA 95131
                            floorSuiteRoom: Fl-1/Ste-100/Rm-MMR
                            buildingNetworkStatus: On Zayo Network
                            buildingClassification: On-Net
                            locationNetworkStatus: On Zayo Network
                            preferredDemarc: No
                            customerAccessRights: Full Access Tier 0
                            nniLocation: true
                      preferences:
                        - requestFollowUp: No
                          notes: Some notes
                          quoteNameIdentifier: Cutomer identifier, like a PO Number
                      quoteId: c0011d2a-5deb-4ae3-b658-536535a83a4b
                      quoteNumber: Quote-10900840
                      estimatedInstallInterval: 40 days
                      financialTerms:
                        - term: 12
                          totalMrc: 998.23
                          totalNrc: 500
                        - term: 24
                          totalMrc: 873.18
                          totalNrc: 500
                        - term: 36
                          totalMrc: 831.84
                          totalNrc: 500
                        - term: 48
                          totalMrc: 790.43
                          totalNrc: 500
                        - term: 60
                          totalMrc: 747.66
                          totalNrc: 500
                      lineItems: []
                      cpqStatus: Approved
                'ICB':
                  value: 
                    apiVersion: v3
                    data:
                      configuration:
                        children:
                          - productCode: WAVES-STD-P2P
                            version: 3.0.0
                            nodeId: 826D38D2-8242-4A6E-AD8A-D35BE2476750
                            locationA: a0b60000000DnN3AAK
                            cfaProvidedBy: Zayo
                            lateral: One (Single)
                          - productCode: WAVES-STD-P2P
                            version: 3.0.0
                            nodeId: 97D7EC88-D734-4069-BF62-D54E913ED0EA
                            locationZ: a0b60000000W6LjAAK
                            cfaProvidedBy: Zayo
                            lateral: One (Single)
                        nodeId: 348DBAF4-AC35-47D1-A9B8-1617BB25C57E
                        productCode: WAVES-STD-P2P
                        version: 3.0.0
                        currencyIsoCode: USD
                        bandwidth: 1G
                        product: Standard Wavelength
                        productCategory: Point-to-Point
                        locations:
                          - locationId: a0b60000000DnN3AAK
                            address: 60 Hudson St New York, NY 10013
                            floorSuiteRoom: Fl-12/Ste-1211
                            buildingNetworkStatus: On Zayo Network
                            buildingClassification: On-Net
                            locationNetworkStatus: On Zayo Network
                            preferredDemarc: Yes
                            customerAccessRights: Full Access Tier 0
                          - locationId: a0b60000000W6LjAAK
                            address: 393 Inverness Pkwy Englewood, CO 80112
                            floorSuiteRoom: Fl-1/Rm-DC-04
                            buildingNetworkStatus: On Zayo Network
                            buildingClassification: On-Net
                            locationNetworkStatus: On Zayo Network
                            referredDemarc: Yes
                            customerAccessRights: Full Access Tier 0
                      preferences:
                        requestFollowUp: No
                      quoteId: e93f59d6-2201-4346-9b19-9e95cb5f5265
                      quoteNumber: Quote-10150144
                      estimatedInstallInterval: 60 days
                      financialTerms:
                        - term: '12'
                          totalMrc: ICB
                          totalNrc: ICB
                        - term: '24'
                          totalMrc: ICB
                          totalNrc: ICB
                        - term: '36'
                          totalMrc: ICB
                          totalNrc: ICB
                        - term: '48' 
                          totalMrc: ICB
                          totalNrc: ICB
                        - term: '60'
                          totalMrc: ICB
                          totalNrc: ICB
                'Quote Edit':
                  value:
                    apiVersion: v3
                    data:
                      quoteId: 9242dd1d-3b36-4755-a0b1-3a7c78935fc3
                      configuration: 
                        children:
                          - productCode: IP-DIA
                            version: 3.7.0
                            nodeId: EED0662D-0710-43D2-8539-498496F3B77E
                            portHandoffSpeed: 10GigE
                            locationA: a0b60000000W6LjAAK
                            connectedIpv4Address: IPv4/31
                            connectedIpv6Address: None
                            additionalIpv4Addresses:
                              IPv4/31: 0
                              IPv4/29: 0
                              IPv4/28: 0
                              IPv4/27: 0
                              IPv4/26: 0
                              IPv4/25: 0
                              IPv4/24: 0
                              IPv4/30: 0
                            additionalIPv6Addresses:
                              IPv6/64: 0
                              IPv6/48: 0
                            routing: No
                            lag: No
                            networkInterfaceDevice: No
                            cfaProvidedBy: Zayo
                            handoff: 2-Fiber (Optical SMF)
                        nodeId: 6DD6BC0E-CE1F-4EAC-8D4A-07DE8F5BF597
                        productCode: IP-DIA
                        version: 3.7.0
                        ddosProtection:
                          ddosProtectionIncluded: false
                          cleanTraffic: None
                          subscription: None
                        currencyIsoCode: USD
                        bandwidth: 5G
                        burstableService: No
                        bandwidthType: Standard
                        product: DIA
                        productCategory: DIA
                        aggregatedBandwidth: No
                        locations:
                          - locationId: a0b60000000W6LjAAK
                            address: 393 Inverness Pkwy Englewood, CO 80112
                            floorSuiteRoom: Fl-1/Rm-DC-04
                            buildingNetworkStatus: On Zayo Network
                            buildingClassification: On-Net
                            locationNetworkStatus: On Zayo Network
                            preferredDemarc: No
                            customerAccessRights: Full Access Tier 0
                      preferences:
                        requestFollowUp: No
                        notes: This is a test
                        quoteNameIdentifier: Zayo-923533
                      quoteNumber: Quote-10117821
                      estimatedInstallInterval: 45 days
                      financialTerms:
                        - term: '12'
                          totalMrc: 1661.54
                          totalNrc: 1100
                        - term: '24'
                          totalMrc: 1472.6
                          totalNrc: 1100
                        - term: '36'
                          totalMrc: 1409.62
                          totalNrc: 1100
                        - term: '48'
                          totalMrc: 1346.63
                          totalNrc: 1100
                        - term: '60'
                          totalMrc: 1283.65
                          totalNrc: 1100
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
              examples:
                'Missing Required Attribute':
                  value:
                    apiVersion: v3
                    error: 
                      errorId: 8d3cf823-fe28-067e-50a5-ca2c8e2b8786
                      code: 400
                      message: >- 
                        Error: Failed JSON Validation - [ - should have required property 'bandwidth'. missingProperty: bandwidth]
                      errors: []
                'Cloud Provider is invalid for defined location':
                  value:
                    apiVersion: v3
                    code: 400
                    message: 'Error: Failed JSON Validation - [/children/0.cloudProvider - cloudProvider: Amazon AWS, is invalid for location: a0b60000003N2S8AAK. The following are valid cloudProvider options for this location: [Carpathia Hosting]. allowedValues: Carpathia Hosting]'
  /services/quote-management/v3/quotes/quote/{quoteId}:
    get:
      summary: Get quote details
      description: View quote, product configuration, and pricing information by quoteId. Get the same details you'd get from a create quote or edit quote request. You can pass in the `quoteId` or `quoteName` param, only one is required to retrieve your quote information.
      operationId: getQuoteDetails
      tags:
      - Quote
      parameters:
        - name: quoteId
          in: path
          required: true
          description: Either `quoteId` or `quoteName` is required. Unique quote identifier returned by the create or edit quote route. 
          schema:
            type: string
          examples:
            quoteId (uuid):
              value: 4d5c2bdc-473b-47d6-8958-a8028ac35850
            quoteName (^Quote-\d+$):
              value: Quote-10256816
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  apiVersion:
                    type: string
                    example: v2
                  data:
                    type: object
                    properties:
                      quoteId:
                        type: string
                        example: 9242dd1d-3b36-4755-a0b1-3a7c78935fc3
                        format: uuid
                      configuration:
                        type: object
                        properties:
                          children:
                            type: array
                            items:
                              type: object
                              properties:
                                productCode:
                                  type: string
                                  example: IP-DIA
                                version:
                                  type: string
                                  example: 3.7.0
                                nodeId:
                                  type: string
                                  format: uuid
                                  example: EED0662D-0710-43D2-8539-498496F3B77E
                                portHandoffSpeed:
                                  type: string
                                  example: 10GigE
                                locationA:
                                  type: string
                                  example: a0b60000000W6LjAAK
                                connectedIpv4Address:
                                  type: string
                                  example: IPv4/31
                                connectedIpv6Address:
                                  type: string
                                  example: None
                                additionalIpv4Addresses:
                                  type: object
                                  properties:
                                    IPv4/31:
                                      type: integer
                                      example: 0
                                    IPv4/29:
                                      type: integer
                                      example: 0
                                    IPv4/28:
                                      type: integer
                                      example: 0
                                    IPv4/27:
                                      type: integer
                                      example: 0
                                    IPv4/26:
                                      type: integer
                                      example: 0
                                    IPv4/25:
                                      type: integer
                                      example: 0
                                    IPv4/24:
                                      type: integer
                                      example: 0
                                    IPv4/30:
                                      type: integer
                                      example: 0
                                additionalIpv6Addresses:
                                  type: object
                                  properties:
                                    IPv6/64:
                                      type: integer
                                      example: 0
                                    IPv6/48:
                                      type: integer
                                      example: 0
                                routing:
                                  type: string
                                  example: 'No'
                                lag:
                                  type: string
                                  example: 'No'
                                networkInterfaceDevice:
                                  type: string
                                  example: 'No'
                                cfaProvidedBy:
                                  type: string
                                  example: Zayo
                                handoff:
                                  type: string
                                  example: 2-Fiber (Optical SMF)
                          nodeId:
                            type: string
                            example: 6DD6BC0E-CE1F-4EAC-8D4A-07DE8F5BF597
                            format: uuid
                          productCode:
                            type: string
                            example: IP-DIA
                          version:
                            type: string
                            example: 3.7.0
                          ddosProtection:
                            type: object
                            properties:
                              ddosProtectionIncluded:
                                type: boolean
                                example: false
                              cleanTraffic:
                                type: string
                                example: None
                              subscription:
                                type: string
                                example: None
                          currencyIsoCode:
                            type: string
                            example: USD
                          bandwidth:
                            type: string
                            example: 5G
                          burstableService:
                            type: string
                            example: 'No'
                          bandwidthType:
                            type: string
                            example: Standard
                          product:
                            type: string
                            example: DIA
                          productCategory:
                            type: string
                            example: DIA
                          aggregatedBandwidth:
                            type: string
                            example: 'No'
                          locations:
                            type: array
                            items:
                              type: object
                              properties:
                                locationId:
                                  type: string
                                  example: a0b60000000W6LjAAK
                                address:
                                  type: string
                                  example: 393 Inverness Pkwy Englewood, CO 80112
                                floorSuiteRoom:
                                  type: string
                                  example: Fl-1/Rm-DC-04
                                buildingNetworkStatus:
                                  type: string
                                  example: On Zayo Network
                                buildingClassification:
                                  type: string
                                  example: On-Net
                                competitiveInternetEnablement:
                                  type: string
                                  example: 'Yes'
                                locationNetworkStatus:
                                  type: string
                                  example: On Zayo Network
                                preferredDemarc:
                                  type: string
                                  example: 'Yes'
                                customerAccessRights: 
                                  type: string
                                  example: Full Access Tier 0
                      preferences:
                        type: object
                        properties:
                          requestFollowUp:
                            type: string
                            example: 'No'
                          notes:
                            type: string
                            example: Some notes
                          quoteNameIdentifier:
                            type: string
                            example: Customer Identifier, like a PO Number
                      quoteNumber:
                        type: string
                        example: Quote-10117821
                      estimatedInstallInterval:
                        type: string
                        example: 45 days
                      financialTerms:
                        type: array
                        items:
                          type: object
                          properties:
                            term:
                              type: string
                              example: '12'
                            totalMrc:
                              type: number
                              example: 1661.54
                            totalNrc:
                              type: number
                              example: 1100
                      lineItems:
                        type: array
                        items:
                          type: string
                      cpqStatus:
                        type: string
                        example: Approved
              examples:
                'ETH-ELINE-P2P 3.3.0':
                  value: 
                    apiVersion: v3
                    data:
                      configuration:
                        children:
                          - productCode: ETH-ELINE-P2P
                            version: 3.3.0
                            nodeId: E21DFC33-B3D0-4C53-90A9-73A713E2217E
                            portHandoffSpeed: 10GigE
                            locationA: a0b6000000FZkaZAAT
                            lag: No
                            cfaProvidedBy: Zayo
                            handoff: 2-Fiber (Optical SMF)
                            networkInterfaceDevice: No
                          - productCode: ETH-ELINE-P2P
                            version: 3.3.0
                            nodeId: 8798F7D1-2C02-4C3D-916D-7B095A8524DF
                            portHandoffSpeed: 10GigE
                            locationZ: a0b60000003M8uxAAC
                            lag: No
                            cfaProvidedBy: Zayo
                            handoff: 2-Fiber (Optical SMF)
                            networkInterfaceDevice: No
                        nodeId: 55E0230B-BB01-4D5B-B48B-07E7C9994616
                        productCode: ETH-ELINE-P2P
                        version: 3.3.0
                        currencyIsoCode: USD
                        bandwidth: 5G
                        burstableService: No
                        qualityOfService: Off
                        mefCertified: No
                        aggregatedBandwidth: No
                        bandwidthType: Standard
                        product: ELine
                        productCategory: Point-to-Point
                        locations:
                          - locationId: a0b6000000FZkaZAAT
                            address: 151 Front St W Toronto, ON M5J 2N1
                            floorSuiteRoom: Fl-1/Rm-MMR 2
                            buildingNetworkStatus: On Zayo Network
                            buildingClassification: On-Net
                            locationNetworkStatus: On Zayo Network
                            preferredDemarc: Yes
                            customerAccessRights: Full Access Tier 0
                          - locationId: a0b60000003M8uxAAC
                            address: 3420 Ocean Park Blvd Santa Monica, CA 90405
                            floorSuiteRoom: Fl-1/Rm-OSP Demarc
                            buildingNetworkStatus: On Zayo Network
                            buildingClassification: On-Net
                            locationNetworkStatus: On Zayo Network
                            preferredDemarc: Yes
                            customerAccessRights: Full Access Tier 0
                      preferences:
                        requestFollowUp: No
                      quoteId: 629896f7-61d4-4d19-ac6e-ddbcfe3e298b
                      quoteNumber: Quote-10153701
                      estimatedInstallInterval: 40 days
                      financialTerms:
                        - term: '12'
                          totalMrc: 1541.17
                          totalNrc: 859.17
                        - term: '24'
                          totalMrc: 1348.52
                          totalNrc: 859.17
                        - term: '36'
                          totalMrc: 1284.31
                          totalNrc: 859.17
                        - term: '48'
                          totalMrc: 1220.09
                          totalNrc: 859.17
                        - term: '60'
                          totalMrc: 1155.88
                          totalNrc: 859.17
                      lineItems: []
                      cpqStatus: Approved
                'IP-DIA 3.8.0':
                  value:
                    apiVersion: v3
                    data:
                      configuration:
                        children:
                          - productCode: IP-DIA
                            version: 3.8.0
                            nodeId: 255AE314-3966-4149-8122-CA4E4FC9B55D
                            portHandoffSpeed: GigE
                            handoff: 2-Fiber (Optical SMF)
                            locationA: a0b60000008bU33AAE
                            connectedIpv4Address: IPv4/31
                            connectedIpv6Address: None
                            additionalIpv4Addresses: 
                              - IPv4/31: 0
                                IPv4/29: 0
                                IPv4/28: 0
                                IPv4/27: 0
                                IPv4/26: 0
                                IPv4/25: 0
                                IPv4/24: 0
                                IPv4/30: 0
                            additionalIpv6Addresses: 
                              - IPv6/64: 0
                                IPv6/48: 0
                            routing: No
                            lag: No
                            networkInterfaceDevice: Yes
                            cfaProvidedBy: Zayo
                        nodeId: 551F50C8-501A-4C13-AD32-9D13308DBAC5
                        productCode: IP-DIA
                        version: 3.8.0
                        ddosProtection: 
                        - ddosProtectionIncluded: false
                          cleanTraffic: None
                          subscription: None
                        currencyIsoCode: USD
                        bandwidth: 1G
                        mefCertified: Yes
                        burstableService: No
                        bandwidthType: Standard
                        product: DIA
                        productCategory: DIA
                        aggregatedBandwidth: No
                        locations:
                          - locationId: a0b60000008bU33AAE
                            address: 10290 W 70th St Eden Prairie, MN 55344
                            floorSuiteRoom: Fl-1/Rm-A-PoP
                            buildingNetworkStatus: On Zayo Network
                            buildingClassification: On-Net
                            competitiveInternetEnablement: No
                            locationNetworkStatus: On Zayo Network
                            preferredDemarc: Yes
                            customerAccessRights: Full Access Tier 0
                      preferences:
                        requestFollowUp: No
                      quoteId: b56ba50c-bb41-42ef-8164-630f4af291f8
                      quoteNumber: Quote-16342467
                      estimatedInstallInterval: 35 days
                      financialTerms:
                        - term: '12'
                          totalMrc: 964.8
                          totalNrc: 3000
                        - term: '24'
                          totalMrc: 844.2
                          totalNrc: 1500
                        - term: '36'
                          totalMrc: 804
                          totalNrc: 0
                        - term: '48'
                          totalMrc: 763.8
                          totalNrc: 0
                        - term: '60'
                          totalMrc: 723.6
                          totalNrc: 0
                      lineItems: []
                      cpqStatus: Approved
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
              examples:
                'Private Quote':
                  value: 
                    apiVersion: v2
                    error: 
                      errorId: f35506e9-e088-c6a9-6f3f-f94432841f79
                      code: 400
                      message: Quote inaccessible!
                      errors: []
                'Incorrect Quote Format':
                  value: 
                    apiVersion: v2
                    error: 
                      errorId: 8d3cf823-fe28-067e-50a5-ca2c8e2b8786
                      code: 400
                      message: This Quote Number (Quote-101537) could not be retrieved or is not available for your account.
                      errors: []    
  /services/quote-management/v2/quotes/nnis:
    post:
      summary: View all NNI records
      description: Retrieve all NNI records including quotes, orders, and services. Used to identify an NNI to associate with your UNI quote via the `nniId` in the quote request payload. The `nniId` attribute is optional, so if it is omitted from the quote request, Zayo will always default to the nearest NNI.
      operationId: getNNIs
      tags:
        - Quote
      requestBody:
        description: Optional request body to add a filter on `type` of record and to add pagination.
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                filter:
                  type: object
                  additionalProperties: false
                  description: Object to define filter options.
                  properties:
                    locationId:
                      type: string
                      pattern: ^a0b
                      example: a0b60000003KP8EAAW
                      minLength: 18
                      maxLength: 18
                    type:
                      type: array
                      maxItems: 3
                      uniqueItems: true
                      default: [Quote, Service Order, Service]
                      items:
                        type: string
                        enum:
                          - Quote
                          - Service Order
                          - Service
                      description: Type of NNI record, please note this field is case-sensitive.
                      example: [Service]
                paging:
                  type: object
                  additionalProperties: false
                  description: Object to define pagination for the number of records per page, and how many records to skip. Follows odata pagination standards.
                  properties:
                    top:                        
                      type: integer
                      description: Number of records to be returned per page. 
                      example: 50
                      default: 10
                    skip:
                      type: integer
                      description: Number of records to skip. 
                      example: 0
                      default: 0
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
              examples:
                 'Test Account NNIs':
                    value:  
                      apiVersion: v2
                      data: 
                        records:
                          - nniId: a0M0z00000PiJ3DEAV
                            custNNI: a1X0z000004aLbmEAE
                            type: Service
                            bandwidth: 10G
                            circuitId: ETYX/TEST008/ZYO
                            name: 559510
                            productCategory: Pt to Multi-Pt (NNI)
                            location: 393 Inverness Pkwy/Fl-1/Rm-DC-04 Englewood, CO 80112
                            locationId: a0b60000000W6LjAAK
                            address: 393 Inverness Pkwy
                            floor: 1
                            suite: null
                            room: DC-04
                            state: CO
                            zip: 80112
                            city: Englewood
                            country: USA
                            sortBy: 1
                          - nniId: a0M0z00000PiJ33EAF
                            custNNI: a1X0z000004aLbcEAE
                            type: Service
                            bandwidth: 1G
                            circuitId: ETYX/TEST005/ZYO
                            name: 559510
                            productCategory: Pt to Multi-Pt (NNI)
                            location: 4100 Bryan St/Fl-1/Rm-LSA 199 Dallas, TX 75204
                            locationId: a0b60000003N9p6AAC
                            address: 4100 Bryan St
                            floor: 1
                            suite: null
                            room: LSA 199
                            state: TX
                            zip: 75204
                            city: Dallas
                            country: USA
                            sortBy: 1
                        metaData:
                          top: 2
                          skip: 0
                          currentPage: 1
                          totalPages: 98
                          totalRecordCount: 195
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'    
  /services/order-management/v2/orders/contacts/{quoteId}:
    get:
      summary: Get order contacts
      description: >- 
        Returns order contact information per billing account for a specified quote. Use the `id` returned in the `billingAccounts` array, `id` returned in the `signers` array, and `id` returned in the `primary` array in the following respective fields in the order request payload - `billingAccountId`, `primaryContactId`, and `contractSignerId`. You use either the `quoteId` or `quoteName` path param, only one is required to retrieve your order information.
      
      
        *Please Note: At the moment, only `quoteId` is accepted in the order request payload.*
      operationId: getOrderContacts
      tags:
        - Order
      parameters:
        - name: quoteId
          in: path
          required: true
          description: Either `quoteId` or `quoteName` is required. Unique quote identifier returned by the create or edit quote route. 
          schema:
            type: string
          examples:
            quoteId (uuid):
              value: 4d5c2bdc-473b-47d6-8958-a8028ac35850
            quoteName (^Quote-\d+$):
              value: Quote-10256816
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  apiVersion:
                    type: string
                    example: v2
                  data:
                    type: object
                    properties:
                      quoteId:
                        type: string
                        example: Quote-10153701
                        description: Response of the unique identifier used in the URL. Could be quoteId or quoteName.
                      currencyIsoCode:
                        type: string
                        example: USD
                      billingAccounts:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              example: 0014z00001d89HqAAI
                            billingAccountNumber:
                              type: ['null', string]
                              example: 11-DevTest
                            currencyIsoCode:
                              type: string
                              example: USD
                            name:
                              type: string
                              example: Test Account - Tranzact
                            signers:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                    example: 0030z00002RTQwMAAX
                                  firstName:
                                    type: string
                                    example: Devon
                                  lastName:
                                    type: string
                                    example: Holt
                            primary:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                    example: 0030z00002V068qAAB
                                  firstName:
                                    type: string
                                    example: Leidy
                                  lastName:
                                    type: string
                                    example: Perez
              examples:
                'Test Account Contacts':
                  value: 
                    apiVersion: v2
                    data:
                      quoteId: 0b85fdf6-f462-47b9-8bf3-7996f4f2db9a
                      currencyIsoCode: USD
                      billingAccounts:
                        - id: 0010z00001RkkUVAAZ
                          billingAccountNumber: 1-TrazDemo
                          currencyIsoCode: USD
                          name: Mordor Forging - Trial Account
                          signers:
                            - id: 0030z00002OamyHAAR
                              firstName: Hannah
                              lastName: Wanderer
                            - id: 0030z00002V068qAAB
                              firstName: Leidy
                              lastName: Perez
                          primary:
                            - id: 0030z00002OamyHAAR
                              firstName: Hannah
                              lastName: Wanderer
                        - id: 0010z00001RmCjJAAV
                          billingAccountNumber: '31857'
                          currencyIsoCode: USD
                          name: Enterprise Networks Demo Test Account
                          signers: 
                            - id: 0030z00002UxqhqAAB
                              firstName: Randall
                              lastName: Holman
                          primary:
                            - id: 0030z00002UxqhqAAB
                              firstName: Randall
                              lastName: Holman
                            - id: 0030z00002RTQwMAAX
                              firstName: Devon
                              lastName: Holt
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'    
  /services/order-management/v2/orders/order:
    post:
      summary: Submit order
      description: >-
        Order a quote. Creates a job to be completed in the background that creates the New Order and saves the result as a `jobId` for lookup. Since this is a time-consuming task for Zayo, this route will trigger a job that will create an order directly in Zayo's ordering system. The response is a `jobId`, and you will follow up on the request via the `job/{jobId}` route to get the Order details.
        
        
        Pre-requisite APIs include quotes route (alternativly have your account rep provide this value) and the contacts route to get your billing account and order contact information. SOF signature is still required after the order is placed. Certain orders are eligible for digital signature. 


        *Please Note: At the moment, only `quoteId` is accepted in the order request payload.* 
      operationId: submitOrder
      tags:
        - Order
      requestBody:
        description: >-
          Order request body. Prequisites include having a quoteId or quoteName from the quotes/quote route as well as billingAccountId, primaryContactId, and contractSignerId from the /orders/contacts/{quoteId} route.
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - quoteId
                - term
                - billingAccountId
                - primaryContactId
                - contractSignerId
              additionalProperties: false
              properties:
                quoteId:
                  type: string
                  format: uuid
                  description: Unique quote identifier returned by quotes/quote route.
                term:
                  description: Term of the order, pricing per term is provided from the create or edit quote route.
                  oneOf:
                    - type: integer
                      enum:
                        - 1
                        - 12
                        - 24
                        - 36
                        - 48
                        - 60
                        - 120
                        - 240
                    - type: string
                      enum:
                        - '1'
                        - '12'
                        - '24'
                        - '36'
                        - '48'
                        - '60'
                        - '120'
                        - '240'
                  example: 12
                billingAccountId:
                  type: string
                  minLength: 18
                  maxLength: 18
                  description: Unique identifier to designate the billing account to be billed for the Order. This value is returned in the /orders/contacts/{quoteId}.
                  example: 0014z00001d89HqAAI
                primaryContactId:
                  type: string
                  minLength: 18
                  maxLength: 18
                  description: Unique identifier to designate the contact responsible for general support for the Order. This value is returned in the /orders/contacts/{quoteId}.
                  example: 0030z00002YnGLRAA3
                contractSignerId:
                  type: string
                  minLength: 18
                  maxLength: 18
                  description: Unique identifier to designate the contact responsible for signing the contract for the Order. This value is returned in the /orders/contacts/{quoteId}.
                  example: 0030z00002YnGLRAA3
                notes: 
                  type: string
                  maxLength: 4000
                  description: Any additional notes you'd like to specify on the Order.
                  example: These are some notes
                poNumber:
                  type: string
                  maxLength: 40
                  description: Optional field to store purchase order number.
                  example: Zayo-12345
                msaRead:
                  description: Represents the user has read the related Master Service Agreement related to the Order. At this time we do not support sending these documents via API and must be coordinated with your account representative. This field must be set to True in order to submit an order for auto-provisioning.
                  oneOf:
                    - type: boolean
                      example: true
                      default: false
                    - type: string
                      pattern: ^(true|false|True|False)$
                serviceScheduleRead:
                  description: Represents the user has read the related Service Schedule related to the Order. At this time we do not support sending these documents via API and must be coordinated with your account representative. This field must be set to True in order to submit an order for auto-provisioning.
                  oneOf:
                    - type: boolean
                      example: true
                      default: false
                    - type: string
                      pattern: ^(true|false|True|False)$
                digitalSignature:
                  description: Represents a digital version of the user’s signature agreeing to the terms and conditions presented in the related MSA and Service Schedule. This field must be set to True (and is required when `msaRead` = True, `serviceScheduleRead` = True) in order to submit an order for auto-provisioning.
                  oneOf:
                    - type: boolean
                      example: true
                      default: false
                    - type: string
                      pattern: ^(true|false|True|False)$
                provisioningDetails:
                  type: array
                  items:
                    type: object
                    properties:
                      cloudProvider:
                        type: string
                        example: Amazon AWS
                        description: Cloud on ramp related to the order, this must match from the Quote.
                      accountId:
                        type: string
                        example: '529554258215'
                        description: Cloud provider-specific account key to enable your cloud connection.
                      sTagVlanId:
                        type: string
                        example: '101'
                        description: Desired s-tag vlan id.
                      cTagVlanId:
                        type: string
                        example: '232'
                        description: Desired c-tag vlan id.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  apiVersion:
                    type: string
                    example: v2
                  data:
                    type: object
                    properties:
                      jobId:
                        type: string
                        example: a0e5a907-0851-47f2-8870-e58e565061f3
                        format: uuid
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
  /services/order-management/v2/job/{jobId}:
    get:
      summary: Get job details
      description: Returns job status. Once the job is finished processing it will return order details. The order job typically finishes processing within 30 seconds. The order details include a similar schema as the quote response in addition to the `serviceOrderNumber` attribute.
      operationId: getJobDetails
      tags:
        - Order
      parameters:
        - name: jobId
          in: path
          required: true
          description: Unique order job identifier returned by submit order route.
          schema:
            type: string
            format: uuid
            example: a0e5a907-0851-47f2-8870-e58e565061f3
      responses:
        '200':
          description: Success
          content: 
            application/json:
              schema:
                type: object
                properties:
                  apiVersion:
                    type: string
                    example: v2
                  data:
                    type: object
                    properties:
                      status:
                        type: string
                        example: success
                        description: Status of the job. 
                        enum:
                          - processing
                          - success
                          - failure
                      result:
                        type: object
                        properties:
                          serviceOrderNumber:
                            type: string
                            example: '2042080'
                          quoteNumber:
                            type: string
                            example: Quote-8997573
                          quoteId:
                            type: string
                            example: 948da5ef-858f-4960-949b-8385736f8869
                            format: uuid
                          totalMrc:
                            type: number
                            example: 1409.5
                          totalNrc:
                            type: integer
                            example: 1100
                          term:
                            type: integer
                            example: 36
                          configuration:
                            type: object
                            properties:
                              children:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    productCode:
                                      type: string
                                      example: IP-DIA
                                    version:
                                      type: string
                                      example: 3.7.0
                                    nodeId:
                                      type: string
                                      format: uuid
                                      example: EED0662D-0710-43D2-8539-498496F3B77E
                                    portHandoffSpeed:
                                      type: string
                                      example: 10GigE
                                    locationA:
                                      type: string
                                      example: a0b60000000W6LjAAK
                                    connectedIpv4Address:
                                      type: string
                                      example: IPv4/31
                                    connectedIpv6Address:
                                      type: string
                                      example: None
                                    additionalIpv4Addresses:
                                      type: object
                                      properties:
                                        IPv4/31:
                                          type: integer
                                          example: 0
                                        IPv4/29:
                                          type: integer
                                          example: 0
                                        IPv4/28:
                                          type: integer
                                          example: 0
                                        IPv4/27:
                                          type: integer
                                          example: 0
                                        IPv4/26:
                                          type: integer
                                          example: 0
                                        IPv4/25:
                                          type: integer
                                          example: 0
                                        IPv4/24:
                                          type: integer
                                          example: 0
                                        IPv4/30:
                                          type: integer
                                          example: 0
                                    additionalIpv6Addresses:
                                      type: object
                                      properties:
                                        IPv6/64:
                                          type: integer
                                          example: 0
                                        IPv6/48:
                                          type: integer
                                          example: 0
                                    routing:
                                      type: string
                                      example: 'No'
                                    lag:
                                      type: string
                                      example: 'No'
                                    networkInterfaceDevice:
                                      type: string
                                      example: 'No'
                                    cfaProvidedBy:
                                      type: string
                                      example: Zayo
                                    handoff:
                                      type: string
                                      example: 2-Fiber (Optical SMF)
                                    buildingA:
                                      type: string
                                      example: a0W60000000AGCAEA4
                              nodeId:
                                type: string
                                example: 6DD6BC0E-CE1F-4EAC-8D4A-07DE8F5BF597
                                format: uuid
                              productCode:
                                type: string
                                example: IP-DIA
                              version:
                                type: string
                                example: 3.7.0
                              ddosProtection:
                                type: object
                                properties:
                                  ddosProtectionIncluded:
                                    type: boolean
                                    example: false
                                  cleanTraffic:
                                    type: string
                                    example: None
                                  subscription:
                                    type: string
                                    example: None
                              currencyIsoCode:
                                type: string
                                example: USD
                              bandwidth:
                                type: string
                                example: 10G
                              burstableService:
                                type: string
                                example: 'No'
                              bandwidthType:
                                type: string
                                example: Standard
                              product:
                                type: string
                                example: DIA
                              productCategory:
                                type: string
                                example: DIA
                              aggregatedBandwidth:
                                type: string
                                example: 'No'
                              locations:
                                type: array
                                items:
                                  type: object
              examples:
                'Processing':
                  value:
                    apiVersion: v2
                    data:
                      status: processing
                      result: 
                'Success':
                  value:
                    apiVersion: v2
                    data:
                      status: success
                      result:
                        serviceOrderNumber: '2042080'
                        quoteNumber: Quote-8997573
                        quoteId: 948da5ef-858f-4960-949b-8385736f8869
                        totalMrc: 1409.5
                        totalNrc: 1100
                        term: 36
                        configuration:
                          children:
                            - productCode: IP-DIA
                              version: 3.7.0
                              nodeId: EED0662D-0710-43D2-8539-498496F3B77E
                              portHandoffSpeed: 10GigE
                              locationA: a0b60000000W6LjAAK
                              connectedIpv4Address: IPv4/31
                              connectedIpv6Address: None
                              additionalIpv4Addresses:
                                IPv4/31: 0
                                IPv4/29: 0
                                IPv4/28: 0
                                IPv4/27: 0
                                IPv4/26: 0
                                IPv4/25: 0
                                IPv4/24: 0
                                IPv4/30: 0
                              additionalIpv6Addresses:
                                IPv6/64: 0
                                IPv6/48: 0
                              routing: No
                              lag: No
                              networkInterfaceDevice: No
                              cfaProvidedBy: Zayo
                              handoff: 2-Fiber (Optical SMF)
                              buildingA: a0W60000000AGCAEA4
                          nodeId: 6DD6BC0E-CE1F-4EAC-8D4A-07DE8F5BF597
                          productCode: IP-DIA
                          version: 3.7.0
                          ddosProtection:
                            ddosProtectionIncluded: false
                            cleanTraffic: None
                            subscription: None
                          currencyIsoCode: USD
                          bandwidth: 10G
                          burstableService: No
                          bandwidthType: Standard
                          product: DIA
                          productCategory: DIA
                          aggregatedBandwidth: No
                          locations: []
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response' 
  /services/service-management/v1/existing-services:
    post:
      summary: Get services
      description: Retrieve all non-disconnected services where locations of the services are reflected as components. 
      operationId: getservices
      tags:
        - Service Inventory
      requestBody:
        description: Optional body to apply filters to return a list of non-disconnected services. Filter options include - service name, service id, billing account number, status, product group, product category, product, circuit id, legacy circuit id, customer circuit id, bandwidth, term, total mrc, and customer PO. Pagination with top and skip options.
        required: false
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              required: [paging]
              properties: 
                filter:
                  type: object
                  description: Object to define filter options.
                  additionalProperties: false
                  properties:
                    serviceName: 
                      type: string
                      description: Service unique identifier, also available in Tranzact.
                      example: '022691'
                    serviceId:
                      type: string
                      description: Service unique identifier.
                      example: a0M60000007Mv6XEAS
                    status: 
                      type: string
                      description: Service status.
                      example: Active
                    productGroup: 
                      type: string
                      description: Zayo product group.
                      example: Wavelengths - Metro
                    productCategory: 
                      type: string
                      description: Zayo product category.
                      example: Point-to-Point
                    product:
                      type: string
                      description: Zayo product.
                      example: Standard Wavelength
                    circuitId:
                      type: string
                      description: Circuit ID.
                      example: WAVE/ZGBU/TEST
                    term:
                      type: integer
                      description: Term length of the service.
                      example: 12
                paging:
                  type: object
                  description: Object to define pagination for the number of records per page, and how many records to skip. Follows odata pagination standards.
                  required: [top, skip]
                  additionalProperties: false
                  properties:
                    top:
                      type: integer
                      description: Number of records to be returned per page. 
                      example: 50
                      default: 10
                      maximum: 50
                      minimum: 0
                    skip:
                      type: integer
                      description: Number of records to skip.
                      example: 0
                      default: 0
                      maximum: 500
                      minimum: 0
                search:
                  type: string
                  minLength: 3
                  example: Wave
      responses:
        '200':
          description: Success
          content: 
            application/json:
              schema:
                type: object
                properties:
                  apiVersion:
                    type: string
                    example: v1
                  data:
                    type: object
                    properties:
                      records:
                        type: array
                        items:
                          type: object
                          properties:
                            serviceName:
                              type: string
                              example: '229808'
                            serviceId:
                              type: string
                              example: a0M6000000CQkUSEA1
                            accountName:
                              type: string
                              example: billing INTL-zCan test account
                            billingAccountNumber:
                              type: string
                              example: ''
                            status:
                              type: string
                              example: Active
                            productGroup:
                              type: string
                              example: Ethernet
                            productCategory:
                              type: string
                              example: Multi-pt to Multi-pt
                            product:
                              type: string
                              example: ELAN
                            circuitId:
                              type: string
                              example: GEYX/123467//ZYO
                            legacyCircuitId:
                              type: ['null', string]
                            customerCircuitId:
                              type: ['null', string]
                            bandwidth:
                              type: string
                              example: 1000Mb
                            term:
                              type: integer
                              example: 36
                            totalMrc:
                              type: integer
                              example: 3250
                            customerPO:                                
                              type: string
                              example: ''
                            termStartDate:
                              type: string
                              format: date
                              example: '2012-09-28'
                            termEndDate:
                              type: string
                              format: date
                              example: '2019-09-27'
                            serviceNoticePeriodDays:
                              type: integer
                              example: 60
                            renewalIntervalMonths:
                              type: integer
                              example: 12
                            renewalTermType:
                              type: string
                              example: Auto-Renewal
                            components:
                              type: array
                              items:
                                type: object
                      metadata:
                        type: object
                        properties:
                          top:
                            type: integer
                            example: 50
                          skip:
                            type: integer
                            example: 0
                          currentPage:
                            type: integer
                            example: 1
                          totalPages:
                            type: integer
                            example: 1
                          totalRecordCount:
                            type: integer
                            example: 1
              examples:
                'circuitId filter applied':
                    value: 
                      apiVersion: v1
                      data:
                        records:
                          - serviceName: '254477'
                            serviceId: a0M6000000HKgWXEA1
                            accountName: Test Account - Tranzact Billing
                            billingAccountNumber: 11-DevTest
                            status: Pending Change
                            productGroup: Wavelengths - Metro
                            productCategory: Point-to-Point
                            product: Standard Wavelength
                            circuitId: WAVE/ZGBU/TEST
                            legacyCircuitId: null
                            customerCircuitId: null
                            bandwidth: 10G
                            term: 24
                            totalMrc: 4500
                            customerPO: N/A
                            termStartDate: 2022-04-01
                            termEndDate: 2024-03-31
                            serviceNoticePeriodDays: 90
                            renewalIntervalMonths: 12
                            renewalTermType: Auto-Renewal
                            components:
                              - bandwidth: 10G
                                circuitId: WAVE/ZGBU/TEST
                                customerCircuitId:
                                legacyCircuitId:
                                locations:
                                  - id: a0b60000007Ws1vAAC
                                    name: 639 E 18th Ave/Fl-B/Rm-B101
                                    city: Denver
                                    state: CO
                                    postalCode: 80203
                                    latitude: 39.7451918
                                    longitude: -104.9792774
                                  - id: a0b60000000XO4AAAW
                                    name: 910 15th St/Fl-7/Rm-751
                                    city: Denver
                                    state: CO
                                    postalCode: 80203
                                    latitude: 39.74556
                                    longitude: -104.995682
                                parentId:
                                id: a1X60000002Me9XEAS
                                type: 
                                cfa: 
                                cfaZ: 
                                components: []
                        metadata:
                          top: 10
                          skip: 0
                          currentPage: 1
                          totalPages: 1
                          totalRecordCount: 1
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
  /services/service-management/v1/ticket-catalog: 
    get:
      summary: Get ticket catalog
      description: Get the Zayo trouble ticket catalog where tickets are represented as a `ticketType`. For each `ticketType` get the description and latest version.
      operationId: getTicketCatalog
      tags:
        - Ticket Catalog
      responses:
        '200': 
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  apiVersion:
                    type: string
                    example: v1
                  data:
                    type: object
                    properties:
                      ticketTypes:
                        type: array
                        items:
                          type: object
                          properties:
                            ticketType:
                              type: string
                              example: Billing
                              enum:
                                - Billing
                                - Access Request
                                - Remote Hands
                                - Customer Service
                                - Technical Support
                            version:
                              type: string
                              example: 1.0.0
                            description:
                              type: string
                              example: Inquiries related to receivables due on billing accounts.
              examples:
                'Ticket Catalog v1':
                  value:
                    apiVersion: v1
                    data:
                      ticketTypes:
                        - ticketType: Billing
                          version: 1.0.0
                          description: Inquiries related to receivables due on billing accounts.
                        - ticketType: Access Request
                          version: 1.0.0
                          description: Request access into data centers and facilities.
                        - ticketType: Remote Hands
                          version: 1.0.0
                          description: Support on tasks zColo can perform to be your hands and eyes regarding data center functions.
                        - ticketType: Customer Service
                          version: 1.0.0
                          description: Customer support on general questions, service inventory, network documents, service credits and disputes.
                        - ticketType: Technical Support
                          version: 1.0.0
                          description: Trouble ticket creation, escalate service repair issues, and RFO requests.
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
  /services/service-management/v1/ticket-type-details/{ticketType}/{version}:
    get:
      summary: Get ticket type details
      description: After you get the latest semantic version from the ticket-catalog route, plug this into the ticket-type-details route to dynamically receive the latest request schema with required and optional attributes needed per ticket type/version combination.
      operationId: getTicketTypeDetails
      tags:
        - Ticket Catalog
      parameters:
        - name: ticketType
          in: path
          required: true
          description: Ticket type returned from the get ticket catalog route.
          schema:
            type: string
            example: Technical Support
            enum:
              - Technical Support
              - Access Request
              - Billing
              - Customer Service
              - Remote Hands
        - name: version
          in: path
          required: true
          description: >-
            Semantic version returned from the get ticket catalog route.
          schema:
            type: string
            example: 1.0.0
            enum:
              - 1.0.0
              - 1.0.1
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/technicalSupportTicketDetails'  
                  - $ref: '#/components/schemas/accessRequestTicketDetails'
                  - $ref: '#/components/schemas/billingTicketDetails'
                  - $ref: '#/components/schemas/customerServiceTicketDetails'
              examples:
                'Technical Support Ticket Details':
                  value:
                    apiVersion: v1
                    data:
                      attrs:
                        - name: ticketType
                          displayName: Ticket Type
                          description: Applicable ticket type from ticket catalog
                          criteria:
                            dataType: string
                            isRequired: true
                            anyRequired: []
                          value: Technical Support
                        - name: componentId
                          displayName: Component Id
                          description: Unique Id obtained from GET Existing Services Route
                          criteria: 
                            dataType: string
                            isRequired: false
                            anyRequired: 
                              - componentId, serviceId
                        - name: customerReferenceId
                          displayName: Customer Reference Id
                          description: Customer Input, reference specific to customer
                          criteria:
                            dataType: string
                            isRequired: false
                            anyRequired: []
                        - name: description
                          displayName: Description
                          description: Please provide a detailed statement of work
                          criteria:
                            dataType: string
                            isRequired: false
                            anyRequired: []
                        - name: downtimeInitialDate
                          displayName: Downtime Initial Date
                          description: ISO format date string of initial downtime
                          criteria:
                            dataType: string
                            isRequired: true
                            anyRequired: []
                        - name: downtimeInitialTime
                          displayName: Downtime Initial Time
                          description: ISO format time string of initial downtime
                          criteria:
                            dataType: string
                            isRequired: true
                            anyRequired: []
                        - name: serviceId
                          displayName: Service Id
                          description: Unique Id obtained from GET Existing Services Route
                          criteria:
                            dataType: string
                            isRequired: false
                            anyRequired: 
                              - componentId, serviceId
                        - name: serviceState
                          displayName: Service state
                          description: State of the service [Hard Down, Impaired, Request, Against, Service]
                          criteria:
                            dataType: string
                            isRequired: true
                            anyRequired: []
                          options:
                            - value: Hard Down
                              defaultValue: false
                              allowedForControllingFields: []
                            - value: Impaired
                              defaultValue: false
                              allowedForControllingFields: []
                            - value: Request Against Service
                              defaultValue: false
                              allowedForControllingFields: []
                        - name: subject
                          displayName: Subject
                          description: Summary of request
                          criteria:
                            dataType: string
                            isRequired: false
                            anyRequired: []
                      contacts:
                          - attrs:
                            - name: contactType 
                              displayName: Contact Type
                              description: Indicator of what this contact should be reached out for (Technical or Primary)
                              criteria:
                                dataType: string
                                isRequired: false
                                anyRequired: []
                              options:
                                - value: Primary
                                  defaultValue: false
                                  allowedForControllingFields: []
                                - value: Technical
                                  defaultValue: false
                                  allowedForControllingFields: []
                            - name: email
                              displayName: Email
                              description: Contact email
                              criteria:
                                dataType: string
                                isRequired: true
                                anyRequired: []
                            - name: fullName
                              displayName: Full Name
                              description: Contact full name
                              criteria:
                                dataType: string
                                isRequired: true
                                anyRequired: []
                            - name: phone
                              displayName: Phone 
                              description: Contact phone number
                              criteria:
                                dataType: string
                                isRequired: true
                                anyRequired: []
                            minCount: 1
                            maxCount: 20
                      troubleshooting:
                        attrs:
                          - name: circuitPassTraffic
                            displayName: Circuit Passing Traffic
                            description: Has this circuit passed traffice before?
                            criteria: 
                              dataType: boolean
                              isRequired: false
                              anyRequired: []
                          - name: disconnectedFibers
                            displayName: Disconnected Fibers
                            description: Has physical maintenance been performed that disconnected fibers?
                            criteria: 
                              dataType: boolean
                              isRequired: false
                              anyRequired: []
                          - name: gearOn
                            displayName: Gear on
                            description: Do you have physical or remote access to your gear?
                            criteria: 
                              dataType: boolean
                              isRequired: false
                              anyRequired: []
                          - name: interfaceReset
                            displayName: Interface Reset
                            description: Does your interface have Duplex settings enabled?
                            criteria: 
                              dataType: boolean
                              isRequired: false
                              anyRequired: []
                          - name: verifyLightLevels
                            displayName: Verify Light Levels
                            description: Have you verified input/output light levels?
                            criteria: 
                              dataType: boolean
                              isRequired: false
                              anyRequired: []
                        isRequired: false
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
  /services/service-management/v1/create-ticket:
    post:
      summary: Create ticket
      description: Create a ticket against your service. Associate your service via the `serviceId`, `componentId`, or `circuitId` returned from the Service Inventory route. 
      operationId: createTicket
      tags:
        - Ticketing
      requestBody:
        description: Ticket request body. There are different request bodies for each ticket type. Prerequisites include having reference to your service from the service inventory route and pass in either the `serviceId`, `componentId`, or `circuitId` key value pair in the request.
        required: true
        content:
          application/json:
            schema:
              anyOf:
                - $ref: '#/components/schemas/technicalSupportTicketRequest'
                - $ref: '#/components/schemas/accessRequestTicketRequest'
                - $ref: '#/components/schemas/billingTicketRequest'
      responses:
        '200':
          description: Success - Technical Support ticket type
          content:
            application/json:
              schema:
                type: object
                properties:
                  apiVersion:
                    type: string
                    example: v1
                  data:
                    type: object
                    properties:
                      status:
                        type: string
                        example: New
                        enum: 
                          - New
                          - Isolation and Repair
                          - Service Restored
                          - Closed
                          - Action Required
                          - On-Hold
                          - Cancelled
                        description: Tickets will always start in the new status. Anytime a comment is made on the ticket, the status updates to Action Required. Typical status flow is - New > Isolation and Repair > Service Restored > Closed. Customer will be contacted after Service Restored to verify service status.
                      ticketId:
                        type: string
                        example: 5004z00001dIuveAAC
                      ticketNumber:
                        type: string
                        example: TTN-0005833575
                      customerReferenceId:
                        type: string
                        example: 'Zayo-239823'
                      dateTimeOpened:
                        type: string
                        example: 2022-04-25T20:29:49.000+0000
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
  /services/service-management/v1/ticket-comment:
    post:
      summary: Create ticket comment
      description: Add a ticket comment to directly communicate with the Zayo NOC team. Once a comment is added on a ticket, the ticket status will update to Action Required, so that it notifies our NOC teams. 
      operationId: addTicketComment
      tags:
        - Ticketing
      requestBody:
        description: Ticket comment request body. Either `ticketId` or `ticketNumber` is required.
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              required:
                - commentBody
                - contactEmail
                - contactName
                - ticketId
                - ticketNumber
              properties:
                ticketId: 
                  type: string
                  pattern: ^500
                  anyOf:
                    - maxLength: 15
                      minLength: 15
                    - maxLength: 18
                      minLength: 18
                  description: Ticket unique identifier. Either `ticketId` or `ticketNumber` is required.
                  example: 5000x00000BHrN2AAL
                ticketNumber:
                  type: string
                  description: Ticket unique Identifier, also used in Tranzact portal. Either `ticketId` or `ticketNumber` is required.
                  example: TTN-0003449133
                commentBody:
                  type: string
                  description: Comment content.
                  example: The problem was not resolved, please address.
                contactEmail:
                  type: string
                  format: email
                  description: Email of the user who is posting the comment.
                  example: wwhite@company.com
                contactName:
                  type: string
                  description: Name of the user who is posting the comment. 
                  example: Walter White
                customerReferenceId:
                  type: string
                  description: Internal reference identifier.
                  example: Ticket 1029342
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  apiVersion:
                    type: string
                    example: v1
                  data:
                    type: object
                    properties:
                      message:
                        type: string
                        example: Ticket comment was successfully created
                      success:
                        type: boolean
                        example: true
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
  /services/service-management/v1/ticket-details/{ticketName}:
    get:
      summary: Get ticket details
      description: Get ticket and ticket comment details. 
      operationId: getTicketDetails
      tags:
        - Ticketing
      parameters:
        - name: ticketName
          in: path
          required: true
          description: Ticket Number returned from the create ticket route.
          schema:
            type: string
            example: TTN-0006181640
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  apiVersion:
                    type: string
                    example: v1
                  data:
                    type: object
                    properties:
                      serviceSummary:
                        type: object
                        properties:
                          billingAccountNumber:
                            type: string
                            example: 11-DevTest
                          componentId:
                            type: string
                            example: a1X0z000004aLc6EAE
                          customerAccount:
                            type: string
                            example: Test Account - Tranzact Billing
                          poNumber:
                              type: string
                              example: TT-1298126
                          serviceId:
                            type: string
                            example: a0M0z00000PiJ3SEAV
                          serviceName:
                            type: string
                            example: '559512'
                      ticketDetails:
                        type: object
                        properties:
                          ticketComments:
                            type: array
                            items:
                              type: object
                              properties:
                                commentBody:
                                  type: string
                                  example: >-
                                    Dear Zayo Customer, <br/><br/>We are investigating a possible service interruption which may be impacting your circuit. We regret that your services are impacted and appreciate your patience while we troubleshoot and work diligently to resolve the underlying issue. We will continue to provide updates until your services have been restored. If you have any additional questions please contact the Zayo Network Control Center and reference the ticket below.<br/><br/>GENERAL INFORMATION<br/>Case Number: TTN-0006181640<br/>Customer Ticket Number: Zayo-1398732<br/>Customer Circuit Id: <br/>Case Subject: TESTING<br/>Case Description: TESTING API\n\nContact Email: devon.holt@zayo.com\nContact Name: Devon Holt\nContact Phone: 123-456-7890\nContact Type: Primary<br/>Case Status: New<br/>Case Sub-Status: In Queue<br/><br/>LOCATION INFORMATION <br/>Location A: <br/>Location Z: <br/><br/>For quick access to ticket creation and updates, please visit our <a href=\"https://tranzact.zayo.com\">Tranzact</a> portal. <br/>Zayo US: 1.866.236.2824<br/>Zayo Canada: 1.888.404.9296<br/>Zayo UK: +44 (0) 20 3846 4222<br/>Zayo France: +33 (0) 1 49 97 07 37<br/>Website: https://www.zayo.com",
                                createdBy:
                                  type: string
                                  example: Tranzact Admin
                                createdDate:
                                  type: string
                                  example: 2022-09-08T20:04:20.000+0000
                          closureSummary:
                            type: string
                            example: This was a test ticket and has been closed.
                          contacts:
                            type: array
                            items:
                              type: object
                              properties:
                                email:
                                  type: string
                                  format: email
                                  example: test@test.com
                                fullName:
                                  type: string
                                  example: Test Test
                                phone:
                                  type: string
                                  example: '(877) 502-8600'
                          criticalDates:
                            type: object
                            properties:
                              dateTimeOpened:
                                type: string
                                example: 2022-09-08T20:04:20.000+0000
                              dateTimeClosed:
                                type: string
                                example: 2022-09-08T20:36:25.000+0000
                              downtimeInitialDate:
                                type: string
                                example: 2022-09-08T20:04:19.000+0000
                              lastUpdateDateTime:
                                type: string
                                example: 2022-09-08T20:36:24.000+0000
                              restoreDateTime:
                                type: string
                                example: 2022-09-08T20:36:25.000+0000
                          customerReferenceId:
                              type: string
                              example: Zayo-1398732
                          description:
                            type: string
                            example: |-
                              TESTING API\r\n\r\nContact Email: devon.holt@zayo.com\r\nContact Name: Devon Holt\r\nContact Phone: 123-456-7890\r\nContact Type: Primary
                          impact:
                            type: string
                            example: Impaired
                          repairAction:
                            type: object
                            properties:
                              fixType:
                                type: string
                              otherRestore:
                                type: string
                              restoreAction:
                                type: string
                              restoreItem:
                                type: string
                          subject:
                            type: string
                            example: TESTING
                          symptom:
                            type: string
                            example: Degraded
                          ticketOwner:
                            type: string
                            example: Technical Support Desk
                          ticketNumber:
                            type: string
                            example: TTN-0006181640
                          ticketStatus:
                            type: string
                            example: Cancelled
                          ticketSubStatus:
                            type: string
                            example: Cancelled
                          ticketType:
                            type: string
                            example: Technical Support
  /services/service-management/v1/all-tickets:
    post:
      summary: Get all tickets
      description: Retrieve all tickets based on filter options and pagination. 
      operationId: getAllTickets
      tags:
        - Ticketing
      requestBody:
        description: Optional request body to apply filters to return a list of all tickets. Pagination with top and skip options.
        required: false
        content:
          application/json:
            schema: 
              type: object
              additionalProperties: false
              properties: 
                filter:
                  type: object
                  description: Object to define filter options.
                  additionalProperties: false
                  properties:
                    serviceId: 
                      description: Service unique identifier.
                      $ref: '#/components/schemas/baseFilter'
                    serviceName:
                      description: Service unique identifier, also used in Tranzact portal.
                      $ref: '#/components/schemas/baseFilter'
                    componenteId:
                      description: Service component unique identifier.
                      $ref: '#/components/schemas/baseFilter'
                    circuitId:
                      description: Circuit unique identifier related to ticket.
                      $ref: '#/components/schemas/baseFilter'
                    customerReferenceId:
                      description: Optional customer defined identifier.
                      $ref: '#/components/schemas/baseFilter'
                    dateTimeOpened:
                      description: Datetime the ticket was opened.
                      $ref: '#/components/schemas/dateTimeOpened'
                    legacyCircuitId:
                      description: Legacy circuit unique identifier related to ticket.
                      $ref: '#/components/schemas/baseFilter'
                    status:
                      description: Status values can vary based on the ticket type.
                      $ref: '#/components/schemas/baseFilter'
                    ticketId:
                      description: Ticket unique identifier.
                      $ref: '#/components/schemas/baseFilter'
                    ticketNumber:
                      description: Ticket unique identifier, also used in Tranzact portal.
                      $ref: '#/components/schemas/baseFilter'
                    ticketType:
                      description: Type of ticket (Access Request, Billing, Customer Service, Remote Hands, Technical Support).
                      $ref: '#/components/schemas/ticketTypeFilter'
                    subject:
                      description: Ticket subject title.
                      $ref: '#/components/schemas/baseFilter'
                    and:
                      type: array
                      items:
                        $ref: '#/components/schemas/andOrFilter'
                      minItems: 2
                      maxItems: 5
                      uniqueItems: true
                    or: 
                      type: array
                      items:
                        $ref: '#/components/schemas/andOrFilter'
                      additionalProperties: false
                      minItems: 2
                      maxItems: 5
                      uniqueItems: true
                paging:
                  type: object
                  description: Object to define pagination for the number of records per page, and how many records to skip. Follows odata pagination standards.
                  additionalProperties: false
                  required: [top, skip]
                  properties:
                    top:                        
                      type: integer
                      description: Number of records to be returned per page. 
                      example: 50
                      default: 10
                      maximum: 50
                      minimum: 0
                    skip:
                      type: integer
                      description: Number of records to skip. 
                      default: 0
                      minimum: 0
                search:
                  type: string
                  minLength: 3
            examples:
              Status filter using or:
                value:
                  filter:
                    or:
                      - status: New
                      - status: Isolation and Repair
                  paging:
                    top: 50
                    skip: 0
              Ticket type filter:
                value:
                  filter:
                    - ticketType: Disconnect Request
                  paging:
                    top: 10
                    skip: 0
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  apiVersion:
                    type: string
                    example: v1
                  data:
                    type: object
                    properties:
                      records:
                        type: array
                        items:
                          type: object
                          properties:
                            circuitId:
                              type: ['null', string]
                              example: ETYX/TEST012/ZYO
                            componentId:
                              type: ['null', string]
                              example: a1X0z000004aLcBEAU
                            customerReferenceId:
                              type: ['null', string]
                              example: test
                            description:
                              type: string
                              example: >-
                                Issue: Slow Service - Constant 
                                Description: test
                                Customer Reported Initial Down time : Jun 27, 2022 2:59 PM
                            legacyCircuitId:
                              type: ['null', string]
                            serviceId:
                              type: string
                              example: a0M0z00000PiJ3XEAV
                            serviceName:
                              type: string
                              example: '559513'
                            status:
                              type: string
                              example: Service Restored
                            subStatus:
                              type: string
                              example: Monitor
                            subject:
                              type: string
                              example: Test Account - GBP / ETYX/TEST012/ZYO / Hard Down
                            dateTimeOpened:
                              type: string
                              format: date-time
                              example: '2022-06-27T15:01:30.000Z'
                            dateTimeClosed:
                              type: ['null', string]
                              format: date-time
                              example: '2022-06-27T14:15:52.000Z'
                            ticketId:
                              type: string
                              example: 5004z00001dBSudAAG
                            ticketNumber:
                              type: string
                              example: TTN-0005993810
                            ticketType:
                              type: string
                              example: Technical Support
                          additionalProperties: false
                      metadata:
                        type: object
                        properties:
                          top:
                            type: integer
                            example: 5
                          skip:
                            type: integer
                            example: 0
                          currentPage:
                            type: integer
                            example: 1
                          totalPages:
                            type: integer
                            example: 4964
                          totalRecordCount:
                            type: integer
                            example: 24818
                        additionalProperties: false
                    additionalProperties: false
                additionalProperties: false
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
  /services/service-management/v1/customer-ticket-action:
    post:
      summary: Send Ticket Action 
      description: Send action for existing tickets whether to Approve Resolution or Cancel Ticket.
      operationId: customerTicketAction
      tags:
        - Ticketing
      requestBody:
        description: Send Ticket Action request body. Either `ticketId` or `ticketNumber` is required.
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              required:
                - contactEmail
                - contactName
                - ticketId
                - ticketNumber
                - ticketAction
              properties:
                ticketId: 
                  anyOf:
                    - maxLength: 15
                      minLength: 15
                    - maxLength: 18
                      minLength: 18
                  description: Ticket unique identifier. Either `ticketId` or `ticketNumber` is required.
                  example: 5000x00000BHrN2AAL
                ticketNumber:
                  type: string
                  minLength: 14
                  description: Ticket unique identifier. Either `ticketId` or `ticketNumber` is required.
                  example: TTN-0003449133
                contactEmail:
                  type: string
                  format: email
                  description: Email of the user who is sending the action for the ticket.
                  example: wwhite@company.com
                contactName:
                  type: string
                  description: Name of the user who is sending the action for the ticket.
                  example: Walter White
                ticketAction:
                  type: string
                  description: Action for the ticket. Either `Approve Resolution` or `Cancel Ticket` is required.
                  example: Approve Resolution
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  apiVersion:
                    type: string
                    example: v1
                  data:
                    type: object
                    properties:
                      message:
                        type: string
                        example: Ticket was successfully updated. 
                    additionalProperties: false
                additionalProperties: false
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
              examples:
                'Your ticket has not been picked up yet':
                  value: 
                    apiVersion: v1
                    error: 
                      errorId: 797ac530-9326-917e-fa38-13d82e065ffe
                      code: 400
                      message: >- 
                        Your ticket has not been picked up yet. To cancel ticket, please cancel by set ticketAction field on request payload as Cancel Ticket
                      errors: []
  /services/service-management/v1/maintenance-cases:
    post:
      summary: Get all maintenance cases
      description: |

        :::warning
        If no date filters are provided in the payload, results will be filtered server side for the Last 30 Days.
        :::


        Retrieve all Maintenance Cases based on filter, search, order by, and pagination options. Maintenance Cases include maintenance event information like urgency, level of impact, status, primary date, second primary date, third primary date, time, time zone, reason for maintenance, location, latitude, and longitude. 


        The recommended flow is to get your Maintenance Case, then use the `caseNumber` or `caseId` as a filter option to receive the impacted circuits for that maintenance event.
      

        To get related services impacted by this event data from the Maintenance Case, pass in the `caseId` or `caseNumber` value as a filter option in the Maintenance Impacts route.
      operationId: getMaintenanceCases
      tags:
        - Maintenance Cases
      requestBody:
        description: Optional body to apply filters, search values, and pagination as well as order by defined attributes to return a specific list of Maintenance Cases. 
        required: false
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              properties: 
                filter:
                  type: object
                  description: Object to define filter options.
                  additionalProperties: false
                  properties:
                    caseId:
                      $ref: '#/components/schemas/caseId'
                    caseNumber:
                      $ref: '#/components/schemas/caseNumber'
                    levelOfImpact:
                      example: Service Affecting
                      $ref: '#/components/schemas/levelOfImpact'
                    fromTime:
                      $ref: '#/components/schemas/fromTime'
                    location:
                      $ref: '#/components/schemas/location'
                      example: 175 W Cordova St, Vancouver, BC, V6B 1E1
                    latitude:
                      $ref: '#/components/schemas/latitude'
                    longitude:
                      $ref: '#/components/schemas/longitude'
                    primaryDate: 
                      $ref: '#/components/schemas/primaryDate'
                    status:
                      $ref: '#/components/schemas/status'
                      example: Scheduled
                    toTime:
                      $ref: '#/components/schemas/toTime'
                    timeZone:
                      $ref: '#/components/schemas/timeZone'
                    x2ndPrimaryDate:
                      $ref: '#/components/schemas/x2ndPrimaryDate'
                    x3rdPrimaryDate:
                      $ref: '#/components/schemas/x3rdPrimaryDate'
                    urgency:
                      $ref: '#/components/schemas/urgency'
                    or:
                      type: array
                      additionalProperties: false
                      minItems: 2
                      maxItems: 5
                      items:
                        $ref: '#/components/schemas/orFilter'
                orderBy:
                    type: array
                    description: Array to specify results ordering.
                    additionalProperties: false
                    uniqueItems: true
                    items:
                        type: string
                        example: primaryDate desc
                        enum:
                            - caseId
                            - caseId asc
                            - caseId desc
                            - caseNumber
                            - caseNumber asc
                            - caseNumber desc
                            - levelOfImpact
                            - levelofImpact asc
                            - levelOfImpact desc
                            - fromTime
                            - fromTime asc
                            - fromTime desc
                            - location
                            - location asc
                            - location desc
                            - latitude
                            - latitude asc
                            - latitude desc
                            - longitude
                            - longitude asc
                            - longitude desc
                            - primaryDate
                            - primaryDate asc
                            - primaryDate desc
                            - status
                            - status asc
                            - status desc
                            - timeZone
                            - timeZone asc
                            - timeZone desc
                            - toTime
                            - toTime asc
                            - toTime desc
                            - x2ndPrimaryDate
                            - x2ndPrimaryDate asc
                            - x2ndPrimaryDate desc
                            - x3rdPrimaryDate
                            - x3rdPrimaryDate asc
                            - x3rdPrimaryDate desc
                            - urgency
                            - urgency asc
                            - urgency desc
                search:
                    type: string
                    example: DKFB
                    minLength: 1
                paging:
                    type: object
                    additionalProperties: false
                    required:
                        - top
                        - skip
                    description: Object to define pagination for the number of records per page, and how many records to skip. Follows odata pagination standards.
                    properties:
                        top:
                            type: integer
                            description: Number of records to be returned per page.
                            example: 50
                            default: 10
                            maximum: 50
                            minimum: 0
                        skip:
                            type: integer
                            description: Number of records to skip.
                            default: 0
                            minimum: 0
            examples:
              Filters and Order by:
                value:
                  filter:
                    primaryDate:
                      le: 2022-06-29
                  orderBy:
                    - primaryDate desc
                  paging:
                    top: 10
                    skip: 0
      responses:
        '200':
          description: Success
          content: 
            application/json:
              schema:
                type: object
                properties:
                  apiVersion:
                    type: string
                    example: v1
                  data:
                    type: object
                    properties:
                      records:
                        type: array
                        items:
                          type: object
                          properties:
                            caseId:
                              type: string
                              example: 5004z00001YdmnOAAR
                            caseNumber:
                              type: string
                              example: TTN-0005305662
                            urgency:
                              type: string
                              example: Demand
                              description: Urgency of the case. Options include - planned (planned in advance and in adherence to the defined standard intervals for services impacted), demand (standard intervals cannot be met, such changes are planned with less than 10 business day’s lead-time), emergency (an immediate need to make changes to the current state of the environment, the immediate need is directly related to an outage, potential outage or degradation of the network).
                            levelOfImpact:
                              type: string
                              example: Service Affecting
                              description: Level of impact the event has on a service, options include - Non-Sevice Affecting, Service Affecting, Potential Service Affecting, HRE-Fiber Splicing, LRE-Fiber Splicing.
                            status:
                              type: string
                              example: Closed
                              description: Status of the Maintenance Case, options include - Scheduled, Rescheduled, Maintenance Started, Maintenance Stopped, Maintenance Completed, Cancelled, and Closed.
                            primaryDate:
                              type: string
                              format: date
                              example: '2021-10-08'
                              description: First date of the Maintenance Event. All Maintenance Cases will have at least a primaryDate.
                            x2ndPrimaryDate:
                              type: ['null', string]
                              format: date
                              example: '2021-07-10'
                              description: Optional second date of the Maintenance Event if it is scheduled for more than 24 hours.
                            x3rdPrimaryDate:
                              type: ['null', string]
                              description: Optional second date of the Maintenance Event if it is scheduled for more than 48 hours.
                            fromTime:
                              type: string
                              example: '00:01'
                              description: Start time of the entire Maintenance Event.
                            toTime:
                              type: string
                              example: '05:00'
                              description: End time of the entire Maintenance Event.
                            timeZone:
                              type: string
                              example: Pacific
                              description: Time zone of the entire Maintenance Event.
                              enum:
                                - Pacific
                                - Mountain
                                - Centrl
                                - Eastern
                                - Atlantic
                                - Newfoundland
                                - GMT
                                - Central Europe
                                - Europe/London
                                - CEST
                                - AST
                                - UTC
                                - CET
                                - NST
                                - BST
                            reasonForMaintenance:
                              type: string
                              example: >-
                                Zayo will be upgrading the provider edge device to fix known
                                issues and improve stability.
                              description: Reason for the Maintenance Event.
                            location:
                              type: string
                              example: 2001 6th Ave, Seattle, WA, 98121
                              description: Location of the Maintenance Event.
                            latitude:
                              type: ['null', number]
                              example: 47.6143693
                              description: Latitude of the Maintenance Event.
                            longitude:
                              type: ['null', number]
                              example: -122.3387104
                              description: Longitude of the Maintenance Event.
                      metadata:
                        type: object
                        properties:
                          top:
                            type: integer
                            example: 10
                          skip:
                            type: integer
                            example: 0
                          currentPage:
                            type: integer
                            example: 1
                          totalPages:
                            type: integer
                            example: 3
                          totalRecordCount:
                            type: integer
                            example: 21
              examples:
                '2022 Events on Test Circuits':
                  value: 
                    apiVersion: v1
                    data:
                      records:
                        - caseId: 5004z00001dIOHFAA4
                          caseNumber: TTN-0005809480
                          urgency: Planned
                          levelOfImpact: Service Affecting
                          status: Closed
                          primaryDate: 2022-06-05
                          x2dPrimaryDate: 
                          x3rdPrimaryDate: 
                          fromTime: 06:00
                          toTime: 12:00
                          timeZone: GMT
                          reasonForMaintenance: Zayo is performing a mandatory vendor recommended software upgrade
                          location: 303 9 Ave Se, Calgary, AB, T2G 0R7
                          latitude: 51.044168
                          longitude: -114.057667
                        - caseId: 5004z00001cTR37AAG
                          caseNumber: TTN-0005782528
                          urgency:  Planned
                          levelOfImpact: Service Affecting
                          status: Closed
                          primaryDate: 2022-05-15
                          x2dPrimaryDate:
                          x3rdPrimaryDate:
                          fromTime: 07:00
                          toTime: 13:00
                          timeZone: GMT
                          reasonForMaintenance: Zayo is performing a mandatory vendor recommended software upgrade
                          location: 175 W Cordova St, Vancouver, BC, V6B 1E1
                          latitude: 49.28354
                          longitude: -123.10871
                        - caseId:  5004z00001a47cdAAA
                          caseNumber: TTN-0005504936
                          urgency: Planned
                          levelOfImpact: Service Affecting
                          status: Closed
                          primaryDate: 2022-02-06
                          x2dPrimaryDate:
                          x3rdPrimaryDate:
                          fromTime: 00:01
                          toTime: 05:00
                          timeZone: Eastern
                          reasonForMaintenance: Zayo will be performing Repair on Fibers on Tube 3 must be re-installed/spliced as there are short/kinked to prevent imminent failure.
                          location: 45.39801 N , 75.74815 W
                          latitude: 
                          longitude: 
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'     
  /services/service-management/v1/maintenance-impacts:
    post:
      summary: Get all maintenance impacts
      description: >-
        Retrieve all Maintenance Impacts based on filter, search, order by, and pagination options. Maintenance Impacts contain service-based attributes like Service Name, CircuitId, A Location Clli, Z Location Clli, and Legacy Circuit Id. 
         
         
         The recommended flow is to get your Maintenance Case, then use the `caseNumber` or `caseId` as a filter option to receive the impacted circuits for that maintenance event.
      operationId: getMaintenanceImpacts
      tags:
        - Maintenance Cases
      requestBody:
        description: Optional body to apply filters, search values, and pagination as well as order by defined attributes to return a specific list of Maintenance Impacts.
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                filter:
                  type: object
                  description: Object to define filter options.
                  additionalProperties: false
                  uniqueItems: true
                  properties:
                    caseNumber:
                      type: string
                      example: TTN-0003802821
                      description: Unique identifier of the Maintenance Case. Returned from the /vi/maintenance-impacts route.
                    serviceId:
                      type: string
                      example: a0M0z00000Pi42wEAB
                      description: Unique identifier of the Zayo service. Returned from the /v1/existing-services route.
                    serviceName:
                      type: string
                      example: '543288'
                      description: Unique identifier of the Zayo service. Returned from the /v1/existing-services route.
                    circuitId:
                      type: string
                      example: /IVPN/247644/006/ZYO /
                      description: Circuit Id of the impacted service.
                    expectedImpact:
                      type: string
                      example: Hard Down
                      description: Expected impact of the Maintenance Event.
                      enum:
                        - Hard Down
                        - Switch Hit(s)
                        - No Expected Impact
                    aLocationClli:
                      type: string
                      example: AMSTNLLRHG2 
                    zLocationClli:
                      type: string
                      example: LONEENOZHG3
                    legacyCircuitId:
                      type: string
                      example: 07/LOXX/000455/UCN/001
                    or:
                      type: array
                      additionalProperties: false
                      minItems: 2
                      maxItems: 5
                      items:
                        type: object
                        additionalProperties: false
                        maxProperties: 3
                        properties:
                          caseNumber: 
                            type: string
                          circuitId:
                            type: string
                          expectedImpact:
                            type: string
                          aLocationClli:
                            type: string
                          zLocationClli:
                            type: string
                          legacyCircuitId:
                            type: string
                          serviceId:
                            type: string
                          serviceName:
                            type: string
                search:
                  type: string
                  minLength: 1
                  example: DKFB
                orderBy:
                  type: array
                  description: Array to specify results ordering.
                  additionalProperties: false
                  uniqueItems: true
                  items:
                    type: string
                    minItems: 1
                    maxItems: 5
                    example: expectedImpact
                    enum:
                      - circuitId
                      - circuitId asc
                      - circuitId desc
                      - expectedImpact
                      - expectedImpact asc
                      - expectedImpact desc
                      - aLocationClli
                      - aLocationClli asc
                      - aLocationClli desc
                      - zLocationClli
                      - zLocationClli asc
                      - zLocationClli desc
                      - legacyCircuitId
                      - legacyCircuitId asc
                      - legacyCircuitId desc
                      - serviceId
                      - serviceId asc
                      - serviceId desc
                      - serviceName
                      - serviceName asc
                      - serviceName desc
                paging:
                  type: object
                  description: Object to define pagination for the number of records per page, and how many records to skip. Follows odata pagination standards.
                  additionalProperties: false
                  properties:
                    top:
                      type: integer
                      description: Number of records to be returned per page.
                      example: 50
                      default: 10
                      maximum: 50
                      minimum: 0
                    skip:
                      type: integer
                      example: 0
                      description: Number of records to skip.
                      default: 0
                      minimum: 0
            examples:
              pagination:
                value:
                  paging:
                    top: 10
                    skip: 0  
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  apiVersion:
                    type: string
                    example: v1
                  data:
                    type: object
                    properties:
                      records:
                        type: array
                        items:
                          type: object
                          properties:
                            caseNumber:
                              type: string
                              example: TTN-0003590895
                            serviceId:
                              type: string
                              example: a0M0z00000P5QHrEAN
                            serviceName:
                              type: string
                              example: '450385'
                            circuitId:
                              type: string
                              example: /IPYX/106744/   /ZYO /
                            expectedImpact:
                              type: string
                              example: Hard Down
                            aLocationClli:
                              type: string
                              example: STTLWACC000
                            zLocationClli:
                              type: string
                              example: STTLWAWB012
                            legacyCircuitId:
                              type: ['null', string]
                      metadata:
                        type: object
                        properties:
                          top:
                            type: integer
                            example: 10
                          skip:
                            type: integer
                            example: 0
                          currentPage:
                            type: integer
                            example: 1
                          totalPages:
                            type: integer
                            example: 5
                          totalRecordCount:
                            type: integer
                            example: 50
              examples:
                'TTN-0005809480 Maintenance Impacts':
                  value: 
                    apiVersion: v1
                    data:
                      records:
                        - caseNumber: TTN-0005809480
                          serviceId: a0M6000000MnLy8EAF
                          serviceName: 345313
                          circuitId: CV2PVC00008
                          expectedImpact: Hard Down
                          aLocationClli: CLGRABCD
                          zLocationClli: TOROONXNSP1
                          legacyCircuitId: 07/LOXX/000455/UCN/001
                      metadata:
                        top: 5
                        skip: 0
                        currentPage: 1
                        totalPages: 1
                        totalRecordCount: 1
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
  /services/service-management/v1/maintenance-cases/{caseNumber}/notifications:
    get:
      summary: Get maintenance notifications
      description: Returns all available Maintenance Notifications based on the `caseNumber`. These notifications are also available via email to enabled users. Reach out to your account rep to get subscribed for Maintenance Notifications emails.
      operationId: getMaintenanceNotifications
      tags:
        - Maintenance Cases
      parameters:
        - name: caseNumber
          in: path
          required: true
          description: Case Number returned from the Maintenance Cases or Maintenance Impacts route.
          schema:
            type: string
            example: TTN-0003590895
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  apiVersion:
                    type: string
                    example: v1
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          example: MNN-00482176
                          description: Unique identifier of the Maintenance Notification.
                        notificationType:
                          type: string
                          example: Maintenance Completed
                          description: Type of notification. This correlates to Maintenance Case status too. Values include - Scheduled, Rescheduled, Maintenance Started, Maintenance Stopped, Maintenance Completed, Cancelled, and Closed.
                        lastModifiedDate:
                          type: string
                          format: date-time
                          example: '2019-10-15T08:07:48.000Z'
                          description: Last modified date/time of the Maintenance Notification by Zayo NOC.
                        subject:
                          type: string
                          example: >-
                            COMPLETED MAINTENANCE NOTIFICATION***Z-FAANG US***ZAYO
                            TTN-0003590895 Planned***
                          description: Subject line of the Maintenance Notification email. 
                        toEmailList:
                          type: string
                          example: >-
                            ipeng@zayo.com; ip-tac@zayo.com; iparch@zayo.com;
                            ethernet.arch@zayo.com; net-eng@zayo.com; telemetry@zayo.com
                          description: Email distribution of the Maintenance Notification email. 
              examples:
               '200':
                  value: 
                    apiVersion: v1
                    data:
                      - name: MNN-00482176
                        notificationType: Maintenance Completed
                        lastModifiedDate: 2019-10-15T08:07:48.000Z
                        subject: COMPLETED MAINTENANCE NOTIFICATION***Z-FAANG US***ZAYO TTN-0003590895 Planned***
                        toEmailList: ipeng@zayo.com; ip-tac@zayo.com; iparch@zayo.com; ethernet.arch@zayo.com; net-eng@zayo.com; telemetry@zayo.com
                      - name: MNN-00482146
                        notificationType: Maintenance Started
                        lastModifiedDate: 2019-10-15T07:45:05.000Z
                        subject: START MAINTENANCE NOTIFICATION***Z-FAANG US***ZAYO TTN-0003590895 Planned***
                        toEmailList: ipeng@zayo.com; ip-tac@zayo.com; iparch@zayo.com; ethernet.arch@zayo.com; net-eng@zayo.com; telemetry@zayo.com
                      - name: MNN-00457342
                        notificationType: Scheduled
                        lastModifiedDate: 2019-09-26T20:07:24.000Z
                        subject: >- 
                          ***Z-FAANG US***ZAYO TTN-0003590895 Planned MAINTENANCE NOTIFICATION***
                        toEmailList: ipeng@zayo.com; ip-tac@zayo.com; iparch@zayo.com; ethernet.arch@zayo.com; net-eng@zayo.com; telemetry@zayo.com
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
  /services/service-management/v1/maintenance-cases/notifications/{maintenanceNotificationName}:
    get:
      summary: Get maintenance notification details
      description: Returns maintenance notification details by Maintenance Notification Name. Maintenance Notification details include the email body in HTML.
      operationId: getMaintenanceNotificationDetails
      tags:
        - Maintenance Cases
      parameters:
        - name: maintenanceNotificationName
          in: path
          required: true
          description: >-
            `name` attribute returned from the get Maintenance Notifications route.
          schema:
            type: string
            example: MNN-00002814
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  apiVersion:
                    type: string
                    example: v1
                  data:
                    type: object
                    properties:
                      name:
                        type: string
                        example: MNN-00482176
                      notificationType:
                        type: string
                        example: Maintenance Completed
                      lastModifiedDate:
                        type: string
                        example: '2019-10-15T08:07:48.000Z'
                        format: date-time
                      subject:
                        type: string
                        example: >-
                          COMPLETED MAINTENANCE NOTIFICATION***Z-FAANG US***ZAYO TTN-0003590895
                          Planned***
                      emailBody:
                        type: string
                      toEmailList:
                        type: string
                        example: >-
                          ipeng@zayo.com; ip-tac@zayo.com; iparch@zayo.com;
                          ethernet.arch@zayo.com; net-eng@zayo.com; telemetry@zayo.com
              examples:
                '200':
                  value: 
                    apiVersion: v1
                    data:
                      name: MNN-00482176
                      notificationType: Maintenance Completed
                      lastModifiedDate: 2019-10-15T08:07:48.000Z
                      subject: COMPLETED MAINTENANCE NOTIFICATION***Z-FAANG US***ZAYO TTN-0003590895 Planned***
                      emailBody: >-
                        Dear Zayo Customer,\r\n\r\n<br><br>Please be advised that the scheduled maintenance window has been completed in its entirety for this event.\r\n<br><br><font color=\"FF0000\">If your services are still being impacted please take a moment to review the service and bounce any interfaces that may have been impacted.  In the event that this does not fully restore your service please contact the Zayo NCC at 866-236-2824 or at <u>zayoncc@zayo.com</u>.</font>\r\n\r\n<br><br><b>Maintenance Ticket #: </b> TTN-0003590895\r\n\r\n<br><br> <b>Maintenance Window: </b> 00:01 - 05:00 Pacific\r\n\r\n<br><br><b>1<sup>st</sup> Activity Date: </b> 15-Oct-2019\n\r\n\r\n<br><br><b>Location of Maintenance: </b> 2001 6th Ave, Seattle, WA\r\n\r\n<br><br><b>Reason for Maintenance: </b> Zayo will perform groom for network optimization.\r\n\r\n<br><br><b>Circuit(s) Affected: </b><br>\r\n<table border=3D\"1\"><tr>\n<tr>\n<th>Circuit Id</th>\n<th>Expected Impact</th>\n<th>A Location CLLI</th>\n\n<th>Z Location CLLI</th>\n<th>Legacy Circuit Id</th>\n</tr>\n<tr>\n<td>/IPYX/106744/   /ZYO /</td>\n<td>Hard Down - Duration of maintenance window</td>\n<td>STTLWACC000</td>\n<td>STTLWAWB012</td>\n<td></td>\n</tr>\n</table>\n\r\n\r\n<br><br>If you have any questions or need any additional information related to this maintenance event, please contact the MR group at mr@zayo.com or call 866-236-2824.\r\n\r\n<br><br>Regards,<br><p><b>\r\n<font color=\"808080\" size=\"3\" face=\"Times New Roman\">Zay</font><font color=\"FF9900\" size=\"3\" face=\"Times New Roman\">o </font>\r\n<font color=\"808080\" size=\"3\" face=\"Times New Roman\">Global Change Management Team/<i>Équipe de Gestion du Changement Global Zay</font><font color=\"FF9900\" size=\"3\" face=\"Times New Roman\">o</font></i><br>\r\n<font color=\"808080\" size=\"3\" face=\"Times New Roman\">Zay</font><font color=\"FF9900\" size=\"3\" face=\"Times New Roman\"><b>o </b></font>\r\n<font color=\"808080\" size=\"3\" face=\"Times New Roman\">Group/<i>Le Groupe Zay</font><font color=\"FF9900\" size=\"3\" face=\"Times New Roman\">o</font></i></b>\r\n<font size=\"2\" face=\"Times New Roman\">\r\n<br>Toll free/<i>N° sans frais</i>: <a href=\"tel:1-866-236-2824\">1.866.236.2824 </a>\r\n<br>United Kingdom Toll Free/<i>N° sans frais Royaume-Uni</i>: <a href=\"tel:0800-169-1646\">0800.169.1646</a>\r\n<br>Email/<i>Courriel</i>: <a href=\"mailto:mr@zayo.com\">mr@zayo.com</a>\r\n<br>Website/<i>Site Web</i>: <a href=\"https://www.zayo.com\">https://www.zayo.com</a>\r\n\r\n<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:\r\nnormal'><a href=\"http://www.zayo.com/company/about-zayo/\" target=\"_blank\"><b><span\r\nlang=EN-US style='font-family:\"Helvetica\",sans-serif;color:#ED7D31;background:\r\nwhite;mso-ansi-language:EN-US'>About Zayo</span></b></a><span lang=EN-US\r\nstyle='font-family:\"Helvetica\",sans-serif;color:#ED7D31;background:white;\r\nmso-ansi-language:EN-US'>&nbsp;|&nbsp;</span><a\r\nhref=\"http://www.zayo.com/solutions/global-network/\" target=\"_blank\"><b><span\r\nlang=EN-US style='font-family:\"Helvetica\",sans-serif;color:#ED7D31;background:\r\nwhite;mso-ansi-language:EN-US'>Network</span></b></a><strong><span lang=EN-US\r\nstyle='font-family:\"Helvetica\",sans-serif;color:#ED7D31;background:white;\r\nmso-ansi-language:EN-US'>&nbsp;</span></strong><span lang=EN-US\r\nstyle='font-family:\"Helvetica\",sans-serif;color:#ED7D31;background:white;\r\nmso-ansi-language:EN-US'>|&nbsp;</span><a\r\nhref=\"https://tranzact.zayo.com/#!/escalation-lists\" target=\"_blank\"><b><span\r\nlang=EN-US style='font-family:\"Helvetica\",sans-serif;color:#ED7D31;background:\r\nwhite;mso-ansi-language:EN-US'>Escalation List</span></b></a><b><span\r\nlang=EN-US style='font-family:\"Helvetica\",sans-serif;color:#ED7D31;background:\r\nwhite;mso-ansi-language:EN-US'>&nbsp;</span></b><span lang=EN-US\r\nstyle='font-family:\"Helvetica\",sans-serif;color:#ED7D31;background:white;\r\nmso-ansi-language:EN-US'>|&nbsp;</span><a\r\nhref=\"https://www.linkedin.com/company/530962/\" target=\"_blank\"><b><span\r\nlang=EN-US style='font-family:\"Helvetica\",sans-serif;color:#ED7D31;background:\r\nwhite;mso-ansi-language:EN-US'>LinkedIn</span></b></a><b><span lang=EN-US\r\nstyle='font-family:\"Helvetica\",sans-serif;color:#ED7D31;background:white;\r\nmso-ansi-language:EN-US'>&nbsp;</span></b><span lang=EN-US style='font-family:\r\n\"Helvetica\",sans-serif;color:#ED7D31;background:white;mso-ansi-language:EN-US'>|&nbsp;</span><a\r\nhref=\"https://twitter.com/zayogroup\" target=\"_blank\"><b><span lang=EN-US\r\nstyle='font-family:\"Helvetica\",sans-serif;color:#ED7D31;background:white;\r\nmso-ansi-language:EN-US'>Twitter</span></b></a><b><span lang=EN-US\r\nstyle='font-family:\"Helvetica\",sans-serif;color:#ED7D31;background:white;\r\nmso-ansi-language:EN-US'>&nbsp;</span></b><span lang=EN-US style='font-family:\r\n\"Helvetica\",sans-serif;color:#ED7D31;background:white;mso-ansi-language:EN-US'>|&nbsp;<a\r\nhref=\"https://tranzact.zayo.com/#!/login\" target=\"_blank\"><b><span\r\nstyle='color:#ED7D31'>Tranzact</span></b><span style='color:#ED7D31'>&nbsp;</span></a><o:p></o:p></span></p>\r\n\r\n\r\n<br><br><font color=\"008080\" size=\"1.5\" face=\"Times New Roman\">\r\nSTRICTLY PERSONAL AND CONFIDENTIAL. This email may contain confidential and proprietary material for the sole use of the intended recipient. Any review or distribution by others is strictly prohibited. If you are not the intended recipient please contact the sender and delete all copies.\r\n</font>\r\n</p>
                      toEmailList: ipeng@zayo.com; ip-tac@zayo.com; iparch@zayo.com; ethernet.arch@zayo.com; net-eng@zayo.com; telemetry@zayo.com
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
  /services/notifications/v1/generate-auth-token:
    post:
      summary: Generate auth token
      description: >-
        Generating the auth token only needs to be done once, since this auth token will be good for receiving
        all push notifications associated with your current API token. However, this endpoint may be called as
        many times as necessary to reset the auth token for additional security. The active auth token is
        always the most recently generated auth token.
        
        
        **Workflow to set up push notifications services:**
        
        
        1. Generate auth token | Generate the auth token to be used in the HTTP header to authenticate invocations to your callback endpoint.
        
        2. Implement a callback URL endpoint on your infrastructure.
            The callback URL endpoint must meet the following requirements:
            
            ● Implemented on HTTPS
            
            ● Accessible from any IP address
            
            ● Requires an `Authorization` header with the auth token generated in Step 1
            
            ● Rejects (via HTTP 401) a request that does not have an `Authorization` header or has the
            wrong `Authorization` header
            
            ● Accepts a HTTP POST request with a JSON body
        
        3. Register callback URL | Register your endpoint to recieve Maintenance Notifications.
        
        4. Send test notification | Test out your endpoint.
      operationId: generateAuthToken
      tags: 
        - Maintenance Cases
      requestBody:
        description: Required request body containing your grant type, client id and client secret. If you do not have API credentials, please reach out to zayoapi@zayo.com to obtain these.
        required: true
        content:
          application/x-www-form-urlencode:
            schema:
              type: object
              required:
                - grant_type
                - client_id
                - client_secret
              properties:
                grant_type: 
                  type: string
                  example: client_credentials
                  description: This value will always be client_credentials
                client_id:
                  type: string
                client_secret: 
                  type: string
                scope:
                  type: string
                  example: openID
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  apiVersion:
                    type: string
                  data:
                    type: object
                    properties:
                        authToken:
                            type: string
                            format: uuid
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
  /services/notifications/v1/register-callback-url:
    post:
      summary: Register callback URL
      description: Once you've implemented a callback URL endpoint in your infrastructure register it with Zayo. 
      operationId: registerCallbackUrl
      tags:  
        - Maintenance Cases
      requestBody:
        description: Required request body to register your endpoint and subscribe to Maintenance Notifications. 
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - notificationType
                - callbackUrl
              properties: 
                notificationType:
                  type: string
                  example: Maintenaance Notifications
                callbackUrl: 
                  type: string
                  format: url
                  example: https://sample-zayo-callback-endpoint.com/sampleCallback
                accounts:
                  type: array
                  items:
                    type: string
                    example: 0016000000umyBWAAY, 0014z00001d8bxoAAA, 0010z00001XXXiEAAX
                    description: Billing account ids for which you'd like to recieve updates on. If this is null, all billing account ids will be subscribed for notifications. If you would like to define the billling account ids, please reach out to zayoapi@zayo.com to get a list of billing account ids. 
            examples:
              All Values:
                value:
                  notificationType: Maintenance Notifications
                  callbackUrl: https://sample-zayo-callback-endpoint.com/sampleCallback
                  accounts:
                    - 0010z00001XWmYBAA1
                    - 0010z00001XXXiEAAX
                    - 0014z00001d8bxoAAA
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  apiVersion:
                    type: string
                    example: v1
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        example: 58bfe26e-38a7-4c67-868a-65f536c3ae51
                        format: uuid
                      target:
                        type: string
                        example: >-
                          https://4381968a-143c-4195-87db-986c11fb54ce.mock.pstmn.io/sampleCallback
                        format: url
                      notification_type:
                        type: string
                        example: Maintenance Notifications
                      account_id:
                        type: string
                        example: 0016000000unFcJAAU
                      target_account_ids:
                        type: array
                        items:
                          type: string
                          example: 0016000000umyBWAAY, 0010z00001XVx7hAAD, 0010z00001XVxgNAAT, 0010z00001XWdh2AAD, 0014z00001b1FMPAA2, 0014z00001d89HqAAI
                      conditions:
                        type: ['null', string]
                      enabled:
                        type: boolean
                        example: true
                      created_at:
                        type: string
                        example: '2022-06-28T03:44:45.394Z'
                        format: date-time
                      updated_at:
                        type: string
                        example: '2022-06-28T03:44:45.394Z'
                        format: date-time
                      created_by_username:
                        type: string
                        example: tranzactquote.api@zayo.com
                        format: email
                      created_by_user_id:
                        type: string
                        example: 44a5d370-18a9-11eb-883f-e1dcd53ef907
                        format: uuid
                      target_type:
                        type: string
                        example: CALLBACK_URL
                      target_header:
                        type: ['null', string]
                      oauth_access_token_header:
                        type: ['null', string]
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
  /services/notifications/v1/send-test-notification:
    post:
      summary: Send test notification
      description: >-
        Once the callback URL is registered, you can send test notifications to your registered callback URLs
        for a particular notification type.
      operationId: sendTestNotification
      tags:  
        - Maintenance Cases
      requestBody:
        description: Requireed request body to register your endpoint and subscribe to Maintenance Notifications. 
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                notificationType:
                  type: string
                  example: Maintenance Notifications
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  apiVersion:
                    type: string
                    example: v1
                  data:
                    type: object
                    properties:
                      name:
                        type: string
                        example: MNN-12345678
                      type:
                        type: string
                        example: Calendar
                      case:
                        type: string
                        example: TTN-0123456789
                      timestamp:
                        type: string
                        example: '2021-01-01T12:00:00'
                        format: date-time
                      urgency:
                        type: string
                        example: Planned
                      levelOfImpact:
                        type: string
                        example: Potential Service Affecting
                      circuitId:
                        type: string
                        example: /xxx/xxxxxx/   /xxx /
                      primaryDate:
                        type: string
                        example: '2021-01-03'
                        format: date
                      x2ndPrimaryDate:
                        type: ['null', string]
                      x3rdPrimaryDate:
                        type: ['null', string]
                      fromTime:
                        type: string
                        example: '00:01'
                      toTime:
                        type: string
                        example: '05:00'
                      timeZone:
                        type: string
                        example: Mountain
                      reasonForMaintenance:
                        type: string
                        example: reason for maintenance
                      location:
                        type: string
                        example: Boulder, CO
                      accountIds:
                        type: array
                        items:
                          type: string
                          example: 0016000000unFcJAAU
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
components:
  securitySchemes:
    BearerToken:
      type: http
      bearerFormat: JWT
      description: Bearer token authentication.
      scheme: bearer
    OAuthClientCredentials:
      description: OAuth 2.0 using the Client Credentials grant type.
      flows:
        clientCredentials:
          scopes:
            openid: openid scope
          tokenUrl: 'https://auth.api.zayo.com/oauth/token'
      type: oauth2  
  schemas:
    #requestQuote
    uniCloudLinkQuoteRequest:
      title: ETH-ELINE-UNI Cloud Request
      type: object
      properties:
        configuration:
          type: object
          required:
            - nodeId
            - productCode
            - version
            - bandwidth
            - cloudProvider
          properties:
            nodeId:
              type: string
              example: AAC758F0-F719-470D-B716-E8EC6804810F
              format: uuid
            productCode:
              type: string
              example: ETH-ELINE-UNI
            version:
              type: string
              example: 3.3.0
            currencyIsoCode:
              type: string
              example: USD
            bandwidth:
              type: string
              example: 1G
            burstableService:
              type: string
              example: No
            qualityOfService:
              type: string
              example: Off
            mefCertified:
              type: string
              example: No
            children:
              type: array
              items:
                type: object
                required:
                  - nodeId
                  - productCode
                  - version
                  - buildingA
                  - locationA
                properties:
                  productCode:
                    type: string
                    example: ETH-ELINE-UNI
                  version:
                    type: string
                    example: 3.3.0
                  nodeId:
                    type: string
                    format: uuid
                    example: 61DE1859-7A99-4218-B43E-F96CD57303A0
                  portHandoffSpeed:
                    type: string
                    example: GigE
                  handoff:
                    type: string
                    example: 2-Fiber (Optical MMF)
                  networkInterfaceDevice:
                    type: string
                    example: Yes
                  cfaProvidedBy:
                    type: string
                    example: Zayo
                  buildingA:
                    type: string
                    example: a0W60000000CVbEEAW
                    description: buildingId returned from the /buildings/validation route. Either a buildingA or locationA is required.
                  locationA:
                    type: string
                    example: a0b6000000A6IzoAAF
                    description: locationId returned from the /building/{buildingId}/locations route. Either a buildingA or locationA is required.
                  cloudProvider:
                    type: string
                    example: Amazon AWS
                    description: >-
                      Cloud Provider you wish to connect with. Options include - Accenture, ADISTA, AIS Business Cloud, Ajubeo, Alibaba Cloud, Amazon AWS, Artisan Infrastructure, Carpathia Hosting, Cisco Webex Edge Connect, Cloudflare, DataBank Cloud Services, Day 1 Solutions, Enovance, Expedient, Flexential: FlexAnywhere, Fullsave, Google Cloud, GROUPE RDI, Hosting.com, IBM Cloud, Ikoula, IntelePeer, Internap, Linkbynet, Lunavi Inc, Microsoft Azure / Office365, Microsoft Cloud for Government, NetDepot, Nimbix, Oracle Cloud, Outscale, OVH, Oxalide, Packet, Phoenix NAP, QTS Cloud Services, RapidScale, Salesforce, Scale Matrix, StratoGen, The Faction Group, Twilio, Virtustream, Vitelity Cloud, VMware Cloud on AWS, Wasabi Cloud, and Xtium.
                  connectionType:
                    type: string
                    example: Hosted
                    description: Type of connection to the cloud on ramp, options include - dedicated or hosted. 
                  nniId:
                    type: string
                    example: a0M0z00000OuUB8EAN
                    description: Unique identifier of the related NNI service where you want to add a cloud connection. You can find all NNIs in the view all NNI records route. If this field is null, Zayo will default to the closest NNI service. If no services are found, then you will get an error to associate a related NNI record. The best way to solve this error is to create an NNI quote and use the quoteId as the nniId.
        preferences:
          type: object
          properties:
            requestFollowUp:
              type: string
              example: No
            notes:
              type: string
              example: These are some notes
            quoteNameIdentifier:
              type: string
              example: Quote-123
    uniCloudLinkQuoteResponse:
      title: ETH-ELINE-UNI Cloud Response
      type: object
      properties:
        apiVersion:
          type: string
          example: v3
        data:
          type: object
          properties:
            configuration:
              type: object
              properties:
                children:
                  type: array
                  items:
                    type: object
                    properties:
                      productCode:
                        type: string
                        example: ETH-ELINE-UNI
                      version:
                        type: string
                        example: 3.3.0
                      nodeId:
                        type: string
                        format: uuid
                        example: 61DE1859-7A99-4218-B43E-F96CD57303A0
                      evcEnabled:
                        type: string
                        example: No
                        description: If yes, this quote may be eligible for same-day activation.
                      portHandoffSpeed:
                        type: string
                        example: GigE
                      handoff:
                        type: string
                        example: 2-Fiber (Optical MMF)
                      networkInterfaceDevice:
                        type: string
                        example: Yes
                      cfaProvidedBy:
                        type: string
                        example: Zayo
                      locationA:
                        type: string
                        example: a0b6000000A6IzoAAF
                      cloudProvider:
                        type: string
                        example: Amazon AWS
                      connectionType:
                        type: string
                        example: Dedicated
                      locationType:
                        type: string
                        example: CloudLink
                        description: Zayo indicator that the quote is for a CloudLink service.
                      nniId:
                        type: string
                        example: a0M0z00000OuUB8EAN
                      lag:
                        type: string
                        example: No
                nodeId:
                  type: string
                  example: AAC758F0-F719-470D-B716-E8EC6804810F
                  format: uuid
                productCode:
                  type: string
                  example: ETH-ELINE-UNI
                version:
                  type: string
                  example: 3.3.0
                currencyIsoCode:
                  type: string
                  example: USD
                bandwidth:
                  type: string
                  example: 1G
                burstableService:
                  type: string
                  example: 'No'
                qualityOfService:
                  type: string
                  example: 'Off'
                mefCertified:
                  type: string
                  example: 'No'
                aggregatedBandwidth:
                  type: string
                  example: 'No'
                bandwidthType:
                  type: string
                  example: Standard
                product:
                  type: string
                  example: ELine
                productCategory:
                  type: string
                  example: Pt to Multi-Pt (UNI)
                locations:
                  type: array
                  items:
                    type: object
                    properties:
                      locationId:
                        type: string
                        example: a0b6000000A6IzoAAF
                      address:
                        type: string
                        example: 1656 McCarthy Blvd Milpitas, CA 95035
                      floorSuiteRoom:
                        type: string
                        example: Fl-1/Rm-MMR
                      buildingNetworkStatus:
                        type: string
                        example: On Zayo Network
                      buildingClassification:
                        type: string
                        example: On-Net
                      locationNetworkStatus:
                        type: string
                        example: On Zayo Network
                      preferredDemarc:
                        type: string
                        example: Yes
                      customerAccessRights: 
                        type: string
                        example: Full Access Tier 0
                      nniLocation:
                        type: boolean
                        example: false
                      locationType:
                        type: string
                        example: CloudLink
                      cloudProvider:
                        type: string
                        example: Amazon AWS
                      destinationName:
                        type: string
                        example: US West (N. California)
            preferences:
              type: object
              properties:
                requestFollowUp:
                  type: string
                  example: 'No'
                notes:
                  type: string
                  example: These are some notes
                quoteNameIdentifier:
                  type: string
                  example: Quote-123
            quoteId:
              type: string
              example: 474fe2db-2cf2-44b9-b9a7-b5e740a9d487
              format: uuid
            quoteNumber:
              type: string
              example: Quote-9491826
            estimatedInstallInterval:
              type: string
              example: 40 days
            financialTerms:
              type: array
              items:
                type: object
                properties:
                  term:
                    type: string
                    example: '1'
                  totalMrc:
                    anyOf:
                      - type: integer
                        example: 806
                      - type: number
                        example: 957.2
                      - type: string
                        example: ICB
                  totalNrc:
                    anyOf:
                      - type: integer
                        example: 500
                      - type: number
                        example: 500.5
                      - type: string
                        example: ICB
    uniQuoteRequest:
      title: ETH-ELINE-UNI Request
      type: object
      properties:
        configuration:
          type: object
          required:
            - nodeId
            - productCode
            - version
            - bandwidth
          properties:
            nodeId:
              type: string
              example: AAC758F0-F719-470D-B716-E8EC6804810F
              format: uuid
            productCode:
              type: string
              example: ETH-ELINE-UNI
            version:
              type: string
              example: 3.3.0
            currencyIsoCode:
              type: string
              example: USD
            bandwidth:
              type: string
              example: 50Mb
            burstableService:
              type: string
              example: 'No'
            qualityOfService:
              type: string
              example: 'Off'
            mefCertified:
              type: string
              example: 'No'
            children:
              type: array
              items:
                type: object
                required:
                - productCode
                - nodeId
                - version
                - buildingA
                - locationA
                properties:
                  productCode:
                    type: string
                    example: ETH-ELINE-UNI
                  version:
                    type: string
                    example: 3.3.0
                  nodeId:
                    type: string
                    example: 61DE1859-7A99-4218-B43E-F96CD57303A0
                  portHandoffSpeed:
                    type: string
                    example: 10/100/1000BaseT
                  handoff:
                    type: string
                    example: Copper (RJ-45 Electrical)
                  networkInterfaceDevice:
                    type: string
                    example: 'Yes'
                  cfaProvidedBy:
                    type: string
                    example: Zayo
                  buildingA:
                    type: string
                    example: a0W60000000CVbEEAW
                    description: buildingId returned from the /buildings/validation route. Either a buildingA or locationA is required.
                  locationA:
                    type: string
                    example: a0b6000000A6IzoAAF
                    description: locationId returned from the /building/{buildingId}/locations route. Either a buildingA or locationA is required.
                  nniId:
                    type: string
                    example: a0M0z00000OuUB8EAN
                    description: Unique identifier of the related NNI reference to connect your service back to. You can find all NNIs in the view all NNI records route. If this field is null, Zayo will default to the closest NNI service. If no services are found, then you will get an error to associate a related NNI record. The best way to solve this error is to create an NNI quote and use the quoteId as the `nniId`.
                  lag:
                    type: string
                    example: No
                    description: LAG (Link Aggregation) gives you the ability to enhance your network capacity and reduce cost while maintaining a fast transmission speed by using all the same hardware devices.
        preferences:
          type: object
          properties:
            requestFollowUp:
              type: string
              example: 'No'
            notes:
              type: string
              example: These are some notes
            quoteNameIdentifier:
              type: string
              example: Quote-123
    uniQuoteResponse: 
      title: ETH-ELINE-UNI Response
      type: object
      properties:
        apiVersion:
          type: string
          example: v3
        data:
          type: object
          properties:
            configuration:
              type: object
              properties:
                children:
                  type: array
                  items:
                    type: object
                    properties:
                      productCode:
                        type: string
                        example: ETH-ELINE-UNI
                      version:
                        type: string
                        example: 3.3.0
                      nodeId:
                        type: string
                        format: uuid
                        example: AAC758F0-F719-470D-B716-E8EC6804810F
                      evcEnabled:
                        type: string
                        example: 'No'
                      portHandoffSpeed:
                        type: string
                        example: 10/100/1000BaseT
                      handoff:
                        type: string
                        example: Copper (RJ-45 Electrical)
                      networkInterfaceDevice:
                        type: string
                        example: 'Yes'
                      cfaProvidedBy:
                        type: string
                        example: Zayo
                      locationA:
                        type: string
                        example: a0b6000000A6IzoAAF
                      lag:
                        type: string
                        example: No
                nodeId:
                  type: string
                  example: C8E0AA1C-D301-462C-A9B7-3CA3B33F5E1C
                  format: uuid
                productCode:
                  type: string
                  example: ETH-ELINE-UNI
                version:
                  type: string
                  example: 3.3.0
                currencyIsoCode:
                  type: string
                  example: USD
                bandwidth:
                  type: string
                  example: 50Mb
                burstableService:
                  type: string
                  example: 'No'
                qualityOfService:
                  type: string
                  example: 'Off'
                mefCertified:
                  type: string
                  example: 'No'
                aggregatedBandwidth:
                  type: string
                  example: 'No'
                bandwidthType:
                  type: string
                  example: Standard
                product:
                  type: string
                  example: ELine
                productCategory:
                  type: string
                  example: Pt to Multi-Pt (UNI)
                locations:
                  type: array
                  items:
                    type: object
                    properties:
                      locationId:
                        type: string
                        example: a0b6000000A6IzoAAF
                      address:
                        type: string
                        example: 1656 McCarthy Blvd Milpitas, CA 95035
                      floorSuiteRoom:
                        type: string
                        example: Fl-1/Rm-MMR
                      buildingNetworkStatus:
                        type: string
                        example: On Zayo Network
                      buildingClassification:
                        type: string
                        example: On-Net
                      locationNetworkStatus:
                        type: string
                        example: On Zayo Network
                      preferredDemarc: 
                        type: string
                        example: Yes
                      customerAccessRights: 
                        type: string
                        example: Full Access Tier 0
                      nniLocation:
                        type: boolean
                        example: false
            preferences:
              type: object
              properties:
                requestFollowUp:
                  type: string
                  example: 'No'
                notes:
                  type: string
                  example: These are some notes
                quoteNameIdentifier:
                  type: string
                  example: Quote-123
            quoteId:
              type: string
              example: 0b85fdf6-f462-47b9-8bf3-7996f4f2db9a
              format: uuid
            quoteNumber:
              type: string
              example: Quote-9500090
            estimatedInstallInterval:
              type: string
              example: 40 days
            financialTerms:
              type: array
              items:
                type: object
                properties:
                  term:
                    type: string
                    example: '12'
                  totalMrc:
                    anyOf:
                      - type: integer
                        example: 806
                      - type: number
                        example: 957.2
                      - type: string
                        example: ICB
                  totalNrc:
                    anyOf:
                      - type: integer
                        example: 500
                      - type: number
                        example: 500.5
                      - type: string
                        example: ICB
    #createTicket
    accessRequestTicketRequest:
      title: Access Request Ticket Request
      type: object
      required:
        - ticketType
      properties:
        ticketType:
          type: string
          example: Access Request
        componentId:
          type: string
          example: a1X60000004namIEAQ
        contacts:
          type: array
          items:
            type: object
            required:
              - contactType
              - fullName
              - email
            properties:
              contactType:
                type: string
                example: Primary
              fullName:
                type: string
                example: John Smith
              email:
                type: string
                format: email
                example: john.smith@zayo.com
              phone:
                type: string
                example: '3038858963'
        customerReferenceId:
          type: string
          example: 'Ticket #123'
        description:
          type: string
          example: test
        estimatedArrivalDate:
          type: string
          example: '2030-08-24'
          format: date
        estimatedArrivalTime:
          type: string
          example: 20:20:39+00:00
          format: time
        idNumber:
          type: string
          example: '123'
        issuingState:
          type: string
          example: CO
        poNumber:
          type: string
          example: n/a
        preciseLocation:
          type: string
          example: DEN2 Floor:1, Row:1.12
        serviceId:
          type: string
          example: a0M6000000Mve6iEAB
    billingTicketRequest:
      title: Billing Ticket Request
      type: object
      required:
        - ticketType
      properties:
        ticketType:
          type: string
          example: Billing
        description:
          type: string
          example: test api ticket create
        serviceId:
          type: string
          example: a0M6000000Mve6iEAB
        componentId:
          type: string
          example: ''
        customerReferenceId:
          type: string
          example: 'Ticket #123'
        contacts:
          type: array
          items:
            type: object
            required:
              - contactType
              - fullName
              - email
            properties:
              contactType:
                type: string
                example: Primary
              fullName:
                type: string
                example: Hannah Wanderer
              email:
                type: string
                format: email
                example: test@zayo.com
              phone:
                type: string
                example: '3038858963'
    technicalSupportTicketRequest:
      title: Technical Support Ticket Request
      type: object
      required:
        - ticketType
        - circuitId
        - downtimeInitialDate
        - downtimeInitialTime
        - serviceState
      properties:
        ticketType:
          type: string
          example: Technical Support
        contacts:
          type: array
          minItems: 1
          maxItems: 20
          items:
            type: object
            required:
              - contactType
              - fullName
              - email
            properties:
              contactType:
                type: string
                example: Primary
                description: Indicator of what this contact should be reached out for - Technical or Primary.
              fullName:
                type: string
                example: Devon Holt
              email:
                type: string
                format: email
                example: devon.holt@zayo.com
              phone:
                type: string
                example: 123-456-7890
            additionalProperties: false
        customerReferenceId:
          type: string
          example: Zayo-1398732
          description: Ticket reference specific to customer.
        description:
          type: string
          example: TESTING API
          description: This will be the description of the Zayo ticket. Please provide a detailed statement of work.
        downtimeInitialDate:
          type: string
          example: '2022-06-29'
          format: date
          description: ISO format date string of initial downtime.
        downtimeInitialTime:
          type: string
          example: 20:20:39+00:00
          format: time
          description: ISO format time string of initial downtime.
        circuitId:
          type: string
          example: ETYX/TEST011/ZYO
          description: Either `circuitId`, `serviceId`, or `componentId` is required. You can get all values from the service inventory route.
        serviceId:
          type: string
          example: a0M0z00000PiJ3SEAV
        componentId: 
          type: string
          example: a1X0z000004aLc6EAE
        serviceState:
          type: string
          example: Impaired
          enum:
            - Hard Down
            - Impaired
            - Request Against Service
          description: The state of your service you are creating a ticket against. **Impaired** = Degraded or Erroring but still usable. **Hard Down** = Service degraded to the point of being unusable or completely hard down. **Request Against Service** = Incident investigation (service bounced but cleared before the ticket was opened) and information requests or questions related to the configuration of an active service.
        subject:
          type: string
          example: TESTING
          description: Summary of request, this will be the subject of the Zayo ticket.
        troubleshooting:
          type: object
          properties:
            circuitPassTraffic:
              type: boolean
              example: false
              description: Has this circuit passed traffice before?
            disconnectedFibers:
              type: boolean
              example: false
              description:  Has physical maintenance been performed that disconnected fibers?
            gearOn:
              type: boolean
              example: true
              description: Do you have physical or remote access to your gear?
            interfaceReset:
              type: boolean
              example: false
              description: Does your interface have Duplex settings enabled?
            verifyLightLevels:
              type: boolean
              example: false
              description: Have you verified input/output light levels?
          additionalProperties: false
      additionalProperties: false            
    #getTicketTypeDetails
    billingTicketDetails:
      title: Billing Ticket Details
      type: object
      properties:
        apiVersion:
          type: string
          example: v1
        data:
          type: object
          properties:
            attrs:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                    example: ticketType
                  displayName:
                    type: string
                    example: Ticket Type
                  description:
                    type: string
                    example: Applicable ticket type from ticket catalog
                  criteria:
                    type: object
                    properties:
                      dataType:
                        type: string
                        example: string
                      isRequired:
                        type: boolean
                        example: true
                  value:
                    type: string
                    example: Billing
            contacts:
              type: array
              items:
                type: object
                properties:
                  attrs:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          example: ticketType
                        displayName:
                          type: string
                          example: Ticket Type
                        description:
                          type: string
                          example: Applicable ticket type from ticket catalog
                        criteria:
                          type: object
                          properties:
                            dataType:
                              type: string
                              example: string
                            isRequired:
                              type: boolean
                              example: true
                        options:
                          type: array
                          items:
                            type: object
                            properties:
                              value:
                                type: string
                                example: Primary
                              defaultValue:
                                type: boolean
                                example: false
                  minCount:
                    type: integer
                    example: 1
                  maxCount:
                    type: integer
                    example: 20
    customerServiceTicketDetails: 
      title: Customer Service Ticket Details
      type: object
      properties:
        apiVersion:
          type: string
          example: v1
        data:
          type: object
          properties:
            attrs:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                    example: ticketType
                  displayName:
                    type: string
                    example: Ticket Type
                  description:
                    type: string
                    example: Applicable ticket type from ticket catalog
                  criteria:
                    type: object
                    properties:
                      dataType:
                        type: string
                        example: string
                      isRequired:
                        type: boolean
                        example: true
                  value:
                    type: string
                    example: Customer Service
            contacts:
              type: array
              items:
                type: object
                properties:
                  attrs:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          example: ticketType
                        displayName:
                          type: string
                          example: Ticket Type
                        description:
                          type: string
                          example: Applicable ticket type from ticket catalog
                        criteria:
                          type: object
                          properties:
                            dataType:
                              type: string
                              example: string
                            isRequired:
                              type: boolean
                              example: true
                        options:
                          type: array
                          items:
                            type: object
                            properties:
                              value:
                                type: string
                                example: Primary
                              defaultValue:
                                type: boolean
                                example: false
                  minCount:
                    type: integer
                    example: 1
                  maxCount:
                    type: integer
                    example: 20
    technicalSupportTicketDetails:
      title: Technical Support Ticket Details
      type: object
      properties:
        apiVersion:
          type: string
          example: v1
        data:
          type: object
          properties:
            attrs:
              type: array
              items:
                type: object
                description: Object shows all of the fields that can be passed into the ticket request payload at the root level. Attrs objects explain the attributes with a name, displayName, description, criteria, and value or options. Options include value, default value and allowed for controlling fields. These controlling fields will also have a value, and default value.
                properties:
                  name:
                    type: string
                    example: ticketType
                    description: Name of the attribute.
                  displayName:
                    type: string
                    example: Ticket Type
                    description: Recommended name if you are exposing this attribute in your own application.
                  description:
                    type: string
                    example: Applicable ticket type from ticket catalog
                    description: Description of the attribute.
                  criteria:
                    type: object
                    properties:
                      dataType:
                        type: string
                        example: string
                        description: Data type of the attribute.
                      isRequired:
                        type: boolean
                        example: true
                        description: Specifies if the attribute is required.
                      anyRequired:
                        type: array
                        items:
                          type: string
                          example: componentId, serviceId
                  value:
                    type: string
                    example: Technical Support
                    description: If a value is specified for this attribute, it will be defined and populated here. Value is returned for `ticketType` and `nodeId`, otherwise you will see `options`.
                  options:
                    type: array
                    items:
                      type: object
                      properties:
                        value:
                          type: string
                          example: Hard Down
                        defaultValue:
                          type: boolean
                          example: false
                        allowedForControllingFields:
                          type: array
                          items:
                            type: string
            contacts:
              type: array
              items:
                type: object
                properties:
                  attrs:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          example: contactType
                        displayName:
                          type: string
                          example: Contact Type
                        description:
                          type: string
                          example: Indicator of what this contact should be reached out for (Technical or Primary)
                        criteria:
                          type: object
                          properties:
                            dataType:
                              type: string
                              example: string
                            isRequired:
                              type: boolean
                              example: true
                            anyRequired:
                              type: array
                              items:
                                type: string
                        options:
                          type: array
                          items:
                            type: object
                            properties:
                              value:
                                type: string
                                example: Primary
                              defaultValue:
                                type: boolean
                                example: false
                              allowedForControllingFields:
                                type: array
                                items:
                                  type: string
                  minCount:
                    type: integer
                    example: 1
                  maxCount:
                    type: integer
                    example: 20
            troubleshooting:
              type: object
              properties:
                attrs:
                  type: array
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        example: circuitPassTraffic
                      displayName:
                        type: string
                        example: Circuit Passing Traffic
                      description:
                        type: string
                        example: Has this circuit passed traffice before?
                      criteria:
                        type: object
                        properties:
                          dataType:
                            type: string
                            example: boolean
                          isRequired:
                            type: boolean
                            example: false
                          anyRequired:
                              type: array
                              items:
                                type: string
                isRequired:
                  type: boolean
                  example: false
    accessRequestTicketDetails:
      title: Access Request Ticket Details
      type: object
      properties:
        apiVersion:
          type: string
          example: v1
        data:
          type: object
          properties:
            attrs:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                    example: ticketType
                  displayName:
                    type: string
                    example: Ticket Type
                  description:
                    type: string
                    example: Applicable ticket type from ticket catalog
                  criteria:
                    type: object
                    properties:
                      dataType:
                        type: string
                        example: string
                      isRequired:
                        type: boolean
                        example: true
                  value:
                    type: string
                    example: Access Request
            contacts:
              type: array
              items:
                type: object
                properties:
                  attrs:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          example: ticketType
                        displayName:
                          type: string
                          example: Ticket Type
                        description:
                          type: string
                          example: Applicable ticket type from ticket catalog
                        criteria:
                          type: object
                          properties:
                            dataType:
                              type: string
                              example: string
                            isRequired:
                              type: boolean
                              example: true
                        options:
                          type: array
                          items:
                            type: object
                            properties:
                              value:
                                type: string
                                example: Primary
                              defaultValue:
                                type: boolean
                                example: false
                  minCount:
                    type: integer
                    example: 1
                  maxCount:
                    type: integer
                    example: 20
            individualAuthorized:
              type: object
              properties:
                attrs:
                  type: array
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        example: address
                      displayName:
                        type: string
                        example: Address
                      description:
                        type: string
                        example: Appropriate address for the individual authorized
                      criteria:
                        type: object
                        properties:
                          dataType:
                            type: string
                            example: string
                          isRequired:
                            type: boolean
                            example: false
                isRequired:
                  type: boolean
                  example: false
        isrequired:
          type: boolean
          example: false                  
    #getAllTickets
    baseFilter:
      title: Get All Tickets Base Filter
      type: [string, object]
      anyOf: 
        - type: string
        - type: object
          additionalProperties: false
          properties:
            eq:
              type: string
              description: Equal to.
            ge:
              type: string
              description: Greater than or equal to.
            gt:
              type: string
              description: Greater than.
            le:
              type: string
              description: Less than or equal to.
            lt:
              type: string
              description: Less than.
            ne:
              type: string
              description: Not equal to.
    ticketTypes:
      title: Get All Tickets Ticket Types
      type: string
      enum:
        - Access Request
        - Billing
        - Customer Service
        - Disconnect Request
        - Professional Services
        - Remote Hands
        - Tech Assist
        - Technical Support
        - Service Inquiry
        - Shipping & Receiving
    ticketTypeFilter:
      title: Get All Tickets Ticket Type Filter
      type: [string, object]
      anyOf: 
        - $ref: '#/components/schemas/ticketTypes'
        - type: object
          additionalProperties: false
          properties:
            eq:
              $ref: '#/components/schemas/ticketTypes'
            ge:
              $ref: '#/components/schemas/ticketTypes'
            gt:
              $ref: '#/components/schemas/ticketTypes'
            le:
              $ref: '#/components/schemas/ticketTypes'
            lt:
              $ref: '#/components/schemas/ticketTypes'
            ne:
              $ref: '#/components/schemas/ticketTypes'
    dateTimeOpened:
      title: Get All Tickets Date Time Opened
      type: [string, object]
      anyOf: 
      - type: string
        format: date-time
      - type: string
        format: date
      - type: object
        additionalProperties: false
        properties:
          eq:
            type: string
            description: Equal to.
            oneOf: 
              - format: date-time
              - format: date
          ge:
            type: string
            description: Greater than or equal to.
            oneOf: 
              - format: date-time
              - format: date
          gt:
            type: string
            description: Greater than.
            oneOf: 
              - format: date-time
              - format: date
          le:
            type: string
            description: Less than or equal to.
            oneOf: 
              - format: date-time
              - format: date
          lt:
            type: string
            description: Less than.
            oneOf: 
              - format: date-time
              - format: date
    andOrFilter:
      title: Get All Tickets And and Or Filter
      type: object
      additionalProperties: false
      minProperties: 1
      maxProperties: 3
      properties:
        circuitId:
          description: Circuit unique identifier related to ticket.
          $ref: '#/components/schemas/baseFilter'
        componentId:
          description: Service component unique identifier.
          $ref: '#/components/schemas/baseFilter'
        customerReferenceId:
          description: Optional customer defined identifier.
          $ref: '#/components/schemas/baseFilter'
        dateTimeOpened:
          description: Datetime the ticket was opened.
          $ref: '#/components/schemas/dateTimeOpened'
        legacyCircuitId:
          description: Legacy circuit unique identifier related to ticket.
          $ref: '#/components/schemas/baseFilter'
        serviceId: 
          description: Service unique identifier.
          $ref: '#/components/schemas/baseFilter'
        serviceName:
          description: Service unique identifier, also used in Tranzact portal.
          $ref: '#/components/schemas/baseFilter'
        status:
          description: Status values can vary based on the ticket type.
          $ref: '#/components/schemas/baseFilter'
        subject:
          description: Ticket subject title.
          $ref: '#/components/schemas/baseFilter'
        ticketId:
          description: Ticket unique identifier.
          $ref: '#/components/schemas/baseFilter'
        ticketNumber:
          description: Ticket unique identifier, also used in Tranzact portal.
          $ref: '#/components/schemas/baseFilter'
        ticketType:
          description: Type of the ticket.
          $ref: '#/components/schemas/ticketTypeFilter'
    #getMaintenanceCases
    caseId:
      title: Maintenance Cases Case Id
      description: Case unique identifier related the maintenance event.
      type: string
    caseNumber:
      title: Maintenance Cases Case Number
      description: Case unique identifier related the maintenance event.
      type: string
    primaryDate:
      title: Maintenance Cases Primary Date
      description: Primary date of maintenance event.
      anyOf: 
        - type: string
        - type: object
      format: date
      additionalProperties: false
      properties:
        eq:
          type: string
          format: date
          description: Equal to.
          example: '2022-12-31'
        ge:
          type: string
          format: date
          description: Greater than or equal to.
          example: '2022-12-31'
        gt:
          type: string
          format: date
          description: Greater than.
          example: '2022-12-31'
        le:
          type: string
          format: date
          description: Less than or equal to.
          example: '2022-01-01'
        lt:
          type: string
          format: date
          description: Less than.
          example: '2022-01-01'
    status:
      title: Maintenance Cases Status
      description: Current status of maintenance event.
      type: string
      enum:
        - Scheduled
        - Maintenance Started
        - Maintenance Extended
        - Maintenance Stopped
        - Maintenance Completed
        - Closed
        - Cancelled
    urgency:
      title: Maintenance Cases Urgency
      description: Urgency of the maintenance event.
      type: string
      enum:
        - Courtesy
        - Customer Initiated
        - Demand
        - Emergency
        - Off Schedule
        - Planned
    levelOfImpact:
      title: Maintenance Cases Level of Impact
      description: Impact level of the maintenance event.
      type: string
      enum:
        - Service Affecting
        - Potential Service Affecting
        - Non-Service Affecting
        - LRE-Fiber Splicing
        - HRE-Fiber Splicing
    x2ndPrimaryDate:
      title: Maintenance Cases 2nd Primary Date
      description: Secondary date of maintenance event.
      anyOf: 
        - type: string
        - type: object
      format: date
      additionalProperties: false
      properties:
        eq:
          type: string
          format: date
          description: Equal to.
        ge:
          type: string
          format: date
          description: Greater than or equal to.
        gt:
          type: string
          format: date
          description: Greater than.
        le:
          type: string
          format: date
          description: Less than or equal to.
        lt:
          type: string
          format: date
          description: Less than.
    x3rdPrimaryDate:
      title: Maintenance Cases 3rd Primary Date
      description: Tertiary date of maintenance event.
      anyOf: 
        - type: string
        - type: object
      format: date
      additionalProperties: false
      properties:
        eq:
          type: string
          format: date
          description: Equal to.
        ge:
          type: string
          format: date
          description: Greater than or equal to.
        gt:
          type: string
          format: date
          description: Greater than.
        le:
          type: string
          format: date
          description: Less than or equal to.
        lt:
          type: string
          format: date
          description: Less than.
    fromTime:
      title: Maintenance Cases From Time
      description: Maintenance event start time.
      format: ^[0-9][0-9]:[0-9][0-9]$
      anyOf: 
        - type: string
        - type: object
      additionalProperties: false
      properties:
        eq:
          type: string
          pattern: ^[0-9][0-9]:[0-9][0-9]$
          description: Equal to.
        ge:
          type: string
          pattern: ^[0-9][0-9]:[0-9][0-9]$
          description: Greater than or equal to.
        gt:
          type: string
          pattern: ^[0-9][0-9]:[0-9][0-9]$
          description: Greater than.
        le:
          type: string
          pattern: ^[0-9][0-9]:[0-9][0-9]$
          description: Less than or equal to.
        lt:
          type: string
          pattern: ^[0-9][0-9]:[0-9][0-9]$
          description: Less than.
    toTime:
      title: Maintenance Cases To Time
      description: Maintenance event start time.
      format: ^[0-9][0-9]:[0-9][0-9]$
      anyOf: 
        - type: string
        - type: object
      additionalProperties: false
      properties:
        eq:
          type: string
          pattern: ^[0-9][0-9]:[0-9][0-9]$
          description: Equal to.
        ge:
          type: string
          pattern: ^[0-9][0-9]:[0-9][0-9]$
          description: Greater than or equal to.
        gt:
          type: string
          pattern: ^[0-9][0-9]:[0-9][0-9]$
          description: Greater than.
        le:
          type: string
          pattern: ^[0-9][0-9]:[0-9][0-9]$
          description: Less than or equal to.
        lt:
          type: string
          pattern: ^[0-9][0-9]:[0-9][0-9]$
          description: Less than.
    timeZone:
      title: Maintenance Cases Time Zone
      description: Time zone of from and to times.
      type: string
    location:
      title: Maintenance Cases Location
      description: Maintenance event location.
      type: string
    latitude:
      title: Maintenance Cases Latitude
      description: Latitude of maintenance event.
      anyOf: 
        - type: string
        - type: object
      additionalProperties: false
      properties:
        eq:
          type: string
          description: Equal to.
        ge:
          type: string
          description: Greater than or equal to.
        gt:
          type: string
          description: Greater than.
        le:
          type: string
          description: Less than or equal to.
        lt:
          type: string
          description: Less than.
    longitude:
      title: Maintenance Cases Longitude
      description: Longitude of maintenance event.
      anyOf: 
        - type: string
        - type: object
      additionalProperties: false
      properties:
        eq:
          type: string
          description: Equal to.
        ge:
          type: string
          description: Greater than or equal to.
        gt:
          type: string
          description: Greater than.
        le:
          type: string
          description: Less than or equal to.
        lt:
          type: string
          description: Less than.
    orFilter:
      title: Maintenance Cases Or Filter
      type: object
      additionalProperties: false
      maxProperties: 3
      properties:
        caseId:
          $ref: '#/components/schemas/caseId'
        caseNumber:
          $ref: '#/components/schemas/caseNumber'
        levelOfImpact:
          $ref: '#/components/schemas/levelOfImpact'
        fromTime:
          $ref: '#/components/schemas/fromTime'
        location:
          $ref: '#/components/schemas/location'
        latitude: 
          $ref: '#/components/schemas/latitude'
        longitude:
          $ref: '#/components/schemas/longitude'
        primaryDate:
          $ref: '#/components/schemas/primaryDate'
        status:
          $ref: '#/components/schemas/status'
        toTime:
          $ref: '#/components/schemas/toTime'
        timeZone:
          $ref: '#/components/schemas/timeZone'
        x2ndPrimaryDate:
          $ref: '#/components/schemas/x2ndPrimaryDate'
        x3rdPrimaryDate:
          $ref: '#/components/schemas/x3rdPrimaryDate'
        urgency:
          $ref: '#/components/schemas/urgency'
    # Shared Responses Codes
    400Response:
      title: 400 Response
      description: Bad Request
      type: object
      properties:
        apiVersion:
          type: string
          description: API version of the request.
        error:
          type: object
          description: Error information from the request.
          properties:
            errorId:
              type: string
              format: uuid
              example: 851e419f-93df-46b3-a718-819e923c88f4
              description: UUID for Zayo troubleshooting.
            code:
              type: integer
              example: 400
              description: 400 - the request contains bad syntax or cannot be fulfilled.
            message:
              type: string
              description: More detailed explanation of the error.
            errors:
              type: array
              description: Additional error information, if necessary.
              items:
                type: string
                description: Not used yet by Zayo teams, this is typically null.
security:
  - BearerToken: []
  - OAuthClientCredentials: []
tags:
  - name: Network Discovery
    description: Grow your footprint by analyzing network availability by utilizing our Building, Locations, and Cloud Providers APIs.
  - name: Product Catalog
    description: View available Zayo products and product detials to use in the Quoting API. 
  - name: Quote
    description: Grow your footprint by reviewing Zayo products in our Product Catalog API, generating quotes with our Quoting API, and automating the ordering process through the Order API. 
  - name: Order
    description: Grow your footprint by reviewing Zayo products in our Product Catalog API, generating quotes with our Quoting API, and automating the ordering process through the Order API. 
  - name: Service Inventory
    description: Monitor your critical services with our Service Inventory API.  
  - name: Ticket Catalog
    description: View available tickets and ticket details to use in the Ticketing API. 
  - name: Ticketing
    description: Create various types of tickets, view all tickets, and create ticket comments. 
  - name: Maintenance Cases
    description: Monitor upcoming outages with Maintenance Cases API. The Zayo Maintenance Cases API is composed of a series of API calls that are intended to be leveraged sequentially with each request/response cycle providing the required inputs for the next step in the Maintenance Case flow. 
