openapi: '3.0.1'
info:
  title: SDN API Documentation
  contact: {}
  version: "Beta release: last updated 2023.04"

tags:

- name: Billing
  description: This is an API which retrieve Fixed, recurring, ontime  charge that customer incur when ordering port or connection that belongs to the customer as `json` or `csv` format based on header input

- name: V1 Connection
  description: This is an API to retrieve list and single connection data,add,update,delete connection related information between 2 Ethernet or cloud ports or an IP Access connection

- name: Cross Connection
  description: An API to retrieve list and single cross connection informaiton,add,update,delete cross connection and retrieve cross connection requests data

- name: Currency
  description: API  listing supported currency 

- name: Customer
  description: An API to add,update and retrieve registered Colt customer information

- name: Equinix Cloud
  description: API to retrieve list and single port data,add,update,delete information related to Equinix cloud port and retrieve related requests.

- name: Google Cloud Port
  description: API to retrieve list and single port data,add,update,delete information related to Google cloud port and retrieve related requests.

- name: IBM Cloud Port
  description: API to retrieve list and single port data,add,update,delete information related to IBM cloud port and retrieve related requests.

- name: IP Access
  description: Internet access connection API to add, retrieve and modify connection information


- name: Location
  description: API to retrieve location informaiton where connectivity can be established
  
- name: Login
  description: An API  that has collection of operations related to user authentication and session management

- name: Oracle Cloud Port
  description: API to retrieve list and single port data,add,update,delete information related to Oracle cloud port and retrieve related requests.

- name: V1 Ports
  description: An API to retrieve, add, modify port information 

- name: Prices
  description: API to retrieve price information associated with products

- name: Products
  description: An API to retrieve product details like bandwidth,connector type and interface

- name: Requests
  description: An API to retrieve requests data associated to ethernet port, cloud port, Ehethernet and cloud connection and IP access connection

- name: Schedule
  description: API to schedule events for connection

- name: Tickets
  description: An API to retrive ticket information

- name: User
  description: API to retrieve and modify user information

- name: Legal Requirements
  description: API to retrieve the Legal Requirements

- name: Ethernet Port *New
  description: API to work with Ethernet port
paths:

  /v2/legal_requirements:
    get:
      tags:
        - Legal Requirements
      summary: "Gets terms and conditions"
      description: "This api gets the `Legal Requirements` details "
      operationId: "getLegalRequirementsV2"
      parameters:
        - in: "header"
          name: "x-colt-user-agent"
          schema:
            type: "string"
          required: true
        - name: "preferred_language"
          in: "query"
          required: true
          style: "form"
          explode: true
          schema:
            $ref: "#/components/schemas/SupportedLanguageV2"
      responses:
        "200":
          description: "Success response"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LegalRequirementsResponseV2"
        "400":
          description: "Bad request"
        "401":
          description: "Authentication failure"
        "403":
          description: "Forbidden request"
        "406":
          description: "Not Acceptable"
        "415":
          description: "Unsupported Media Type"
        "500":
          description: "Internal server error"
        "503":
          description: "Service unavailable"
      security:
        - BearerAuth: []  
    patch:
      tags:
        - "Legal Requirements"
      summary: "Updates terms and conditions"
      description: "This api will update the `Legal Requirements` details for a user"
      operationId: "updateLegalRequirementsV2"
      parameters:
        - in: "header"
          name: "x-colt-user-agent"
          schema:
            type: "string"
          required: true
      requestBody:
        required: true
        description: "UpdateLegalRequirementsRequestV2 that needs to be sent to the backend"
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateLegalRequirementsRequestV2"
      responses:
        "200":
          description: "Success response"
        "400":
          description: "Bad request"
        "401":
          description: "Authentication failure"
        "403":
          description: "Forbidden request"
        "406":
          description: "Not Acceptable"
        "415":
          description: "Unsupported Media Type"
        "500":
          description: "Internal server error"
        "503":
          description: "Service unavailable"
      
  /v2/buildings/{id}:
    get:
      tags:
        - Location
      summary: Get building by id
      description: Provide a Colt Building ID to retrieve building information 
      operationId: getAddress
      parameters:
        - in: "header"
          name: "x-colt-user-agent"
          schema:
            type: "string"
          required: true
        - name: id
          in: path
          required: true
          description: A Colt building identifier
          example: LON00001
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommonBuildingAttributesV2'
        "400":
          description: Bad request
        "401":
          description: Authentication failure
        "403":
          description: Forbidden request
        
        "415":
          description: Unsupported Media Type
        "500":
          description: Internal server error
        "503":
          description: Service unavailable
      security:
        - BearerAuth: []    
  /v2/customer:
    get:
      tags:
        - "Customer"
      description: "Get customer details"
      operationId: "getCustomerV2"
      parameters:
        - in: "header"
          name: "x-colt-user-agent"
          schema:
            type: "string"
          required: true
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CustomerResponseV2"
        "400":
          description: "Bad request"
        "401":
          description: "Authentication failure"
        "406":
          description: "Not Acceptable"
        "415":
          description: "Unsupported Media Type"
        "500":
          description: "Internal server error"
        "503":
          description: "Service unavailable"
      security:
        - BearerAuth: []
    patch:
      tags:
        - "Customer"
      summary: "Update Customer's spend limit"
      description: "This api allows the Customer's to set a max spend limit per month. \n\n
        `spend_limited` - flag to enable/disable this feature \n\n
        `monthly_spend_limit` - max spend limit value in customer's currency"
      operationId: "updateCustomerV2"
      parameters:
        - in: "header"
          name: "x-colt-user-agent"
          schema:
            type: "string"
          required: true
      requestBody:
        required: true
        description: "UpdateCustomer"
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateCustomerRequestV2"
      responses:
        "200":
          description: "OK"
        "400":
          description: "Bad request"
        "401":
          description: "Authentication failure"
        "403":
          description: "Forbidden request"
        "406":
          description: "Not Acceptable"
        "412":
          description: "Precondition failed"
        "415":
          description: "Unsupported Media Type"
        "500":
          description: "Internal server error"
        "503":
          description: "Service unavailable"
      security:
        - BearerAuth: []
  /v2/user:
    get:
      tags:
        - "User"
      summary: "Gets user details"
      description: "This api will gets the details for a user"
      operationId: "getUserV2"
      parameters:
        - in: "header"
          name: "x-colt-user-agent"
          schema:
            type: "string"
          required: true
      responses:
        "200":
          description: "Success response"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserResponseV2"
        "400":
          description: "Bad request"
        "401":
          description: "Authentication failure"
        "406":
          description: "Not Acceptable"
        "415":
          description: "Unsupported Media Type"
        "500":
          description: "Internal server error"
        "503":
          description: "Service unavailable"
      security:
        - BearerAuth: []
    patch:
      tags:
        - "User"
      summary: "Update language and customer account"
      description: "This api will update the User's preferred language and preferred customer account"
      operationId: "updateUserV2"
      parameters:
        - in: "header"
          name: "x-colt-user-agent"
          schema:
            type: "string"
          required: true
      requestBody:
        required: true
        description: "UpdateUser"
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateUserRequestV2"
      responses:
        "200":
          description: "Success response"
        "400":
          description: "Bad request"
        "401":
          description: "Authentication failure"
        "403":
          description: "Forbidden request"
        "406":
          description: "Not Acceptable"
        "412":
          description: "Precondition failed"
        "415":
          description: "Unsupported Media Type"
        "500":
          description: "Internal server error"
        "503":
          description: "Service unavailable"
      security:
        - BearerAuth: []    
  /v2/equinix/requests/{id}:
    get:
      tags:
        - Equinix Cloud
      summary: Get request by id
      description: Get a specific Equinix Cloud port request
      operationId: getEquinixPortRequest
      parameters:
        - in: "header"
          name: "x-colt-user-agent"
          schema:
            type: "string"
          required: true
        - name: id
          in: path
          required: true
          description: The Request identifier
          example: 1234567
          schema:
            type: integer
      responses:
        "200":
          description: Details of an Equinix Cloud Port request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EquinixGetCloudPortRequestV2'
        "400":
          description: Bad request
        "401":
          description: Authentication failure
        "403":
          description: Forbidden request
        "404":
          description: Not found
        "415":
          description: Unsupported Media Type
        "500":
          description: Internal server error
        "503":
          description: Service unavailable
      security:
        - BearerAuth: []
  /v2/equinix/services:
    get:
      tags:
        - Equinix Cloud
      summary: Get ports
      description: return all Equinix cloud ports for the logged-in customer
      operationId: getEquinixPorts
      parameters:
        - in: "header"
          name: "x-colt-user-agent"
          schema:
            type: "string"
          required: true
        - name: available
          in: query
          required: false
          style: form
          explode: true
          schema:
            type: boolean
      responses:
        "200":
          description: Details of all Equinix Cloud Port services
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EquinixGetCloudPortServiceV2'
        "400":
          description: Bad request
        "401":
          description: Authentication failure
        "403":
          description: Forbidden request
        "404":
          description: Not found
        "415":
          description: Unsupported Media Type
        "500":
          description: Internal server error
        "503":
          description: Service unavailable
      security:
        - BearerAuth: []
    post:
      tags:
        - Equinix Cloud
      summary: Create port
      description: Create a request for an Equinix portThis method will return a request ID and a service ID
      operationId: createEquinixPortRequest
      parameters:
        - in: "header"
          name: "x-colt-user-agent"
          schema:
            type: "string"
          required: true
      requestBody:
        description: Request a new Equinix cloud port
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EquinixCreateCloudPortRequestV2'
      responses:
        "200":
          description: Success response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommonCreateResponseV2'
        "400":
          description: Bad request
        "401":
          description: Authentication failure
        "403":
          description: Forbidden request
        "406":
          description: Not Acceptable
        "415":
          description: Unsupported Media Type
        "500":
          description: Internal server error
        "503":
          description: Service unavailable
      security:
        - BearerAuth: []
  /v2/equinix/services/{id}:
    parameters:
      - name: id
        in: path
        required: true
        description: The Service identifier
        example: 80001234
        schema:
          type: string
    get:
      tags:
        - Equinix Cloud
      summary: Get port by id
      description: Get a specific Equinix Cloud port service.Returns a single service body
      operationId: getEquinixPortService
      parameters:
        - in: "header"
          name: "x-colt-user-agent"
          schema:
            type: "string"
          required: true
        - in: path
          name: id
          required: true
          description: The Service identifier
          example: 80001234
          schema:
            type: string
      responses:
        "200":
          description: Details of an Equinix Cloud Port service
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EquinixGetCloudPortServiceV2'
        "400":
          description: Bad request
        "401":
          description: Authentication failure
        "403":
          description: Forbidden request
        "404":
          description: Not found
        "415":
          description: Unsupported Media Type
        "500":
          description: Internal server error
        "503":
          description: Service unavailable
      security:
        - BearerAuth: []
    patch:
      tags:
        - Equinix Cloud
      summary: Modify port
      description: Change the name of an Equinix Cloud Port.This call will return with an immediate success or failure status
      operationId: renameEquinixPortService
      parameters:
        - in: "header"
          name: "x-colt-user-agent"
          schema:
            type: "string"
          required: true
      requestBody:
        description: Supply the new name for the service
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NameChangeRequestV2'
      responses:
        "200":
          description: The Equinix Cloud Port was successfully renamed
        "400":
          description: Bad request
        "401":
          description: Authentication failure
        "403":
          description: Forbidden request
        "404":
          description: Not found
        "415":
          description: Unsupported Media Type
        "500":
          description: Internal server error
        "503":
          description: Service unavailable
      security:
        - BearerAuth: []
    delete:
      tags:
        - Equinix Cloud
      summary: delete port
      description: Request deletion of an Equinix Cloud Port. This call will create a new Request
      operationId: deleteEquinixPortService
      parameters:
        - in: "header"
          name: "x-colt-user-agent"
          schema:
            type: "string"
          required: true
        - in: path
          name: id
          required: true
          description: The Service identifier
          example: 80001234
          schema:
            type: string
      responses:
        "200":
          description: Success response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommonCreateResponseV2'
        "400":
          description: Bad request
        "401":
          description: Authentication failure
        "403":
          description: Forbidden request
        "406":
          description: Not Acceptable
        "415":
          description: Unsupported Media Type
        "500":
          description: Internal server error
        "503":
          description: Service unavailable
      security:
        - BearerAuth: []
  /building/{building_id}/site:
    get:
      summary: Get site
      description: Retrive sites and available products in that site for a building
      operationId: getSitesAvailableCapacityForBuilding
      tags:
        - Location
      parameters:
        - in: "header"
          name: "x-colt-user-agent"
          schema:
            type: "string"
          required: false
        - name: version
          in: query
          description: API version
          schema:
            type: integer
            format: int32
          required: false
        - in: path
          name: building_id
          description: Identifier of the building
          schema:
            type: string
            example: "UKLON12345"
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AvailableSiteResponseV2"
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error

  /charges:
    get:
      tags:
      - Billing
      summary: Get charges
      description: operation to retrieve rental,fixed,penalty,installation charges for ports and connections for a customer
      operationId: createBillCharges
      parameters:
      - name: connection_id
        in: query
        description: connection_id
        example: 80059249
        schema:
          type: string
        required: false
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
        required: false
      responses:
        '200':
          description: OK
          content:
            text/csv:
              schema:
                type: object
            application/vnd.ms-excel;charset=UTF-8:
              schema:
                $ref: "#/components/schemas/BillChargesResponse"
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
          

  /cloudsites:
    get:
      tags:
      - Location
      summary: Get cloud sites
      description: This api retrieve the cloud location details including regions,interconnects,buiding , sitetype etc associated with cloud provider name, if no parameter is provided data for all the providers is retrieved
      operationId: getCloudSites
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
        required: false
      - name: cloud_provider
        in: query
        description: cloud provider name
        schema:
          type: string
        example: GOOGLE_CLOUD
        required: false
      responses:
        200:
          description: OK
          content:
            '*/*':
              schema:
                $ref: "#/components/schemas/CloudSitesResponse"
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
  /schedule:
    post:
      tags:
        - Schedule
      description: Create scheduled events for connection
      summary: Create schedule
      parameters:
        - in: "header"
          name: "x-colt-user-agent"
          schema:
              type: "string"
        - name: version
          in: query
          description: version
          schema:
            type: integer
            format: int32
            example: 1
          required: false
      requestBody:
        description: Schedule Event request details
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScheduleEventRequest'
      responses:
        '200':
          description: Success response
        '400':
          description: Bad request
        '401':        
          description: Authentication failure
      
  /connections:
    get:
      tags:
      - Connection
      summary: Get connection data
      description: Operation to retrieve list and details of ethernet,cloud and IP Access connection information
      operationId: getConnections
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
        required: false
      - name: name
        in: query
        description: name of connection
        schema:
          type: string
        required: false
      - name: version
        in: query
        description: version
        schema:
          type: integer
          format: int32
        required: false
      responses:
        200:
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CommonConnectionInfo'
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
          
      
    post:
      tags:
      - Connection
      summary: Create connection 
      description: The api is used to create connection of type Ethernet,cloud, IP Access 
      operationId: createConnectionRequest
      parameters:
        - in: "header"
          name: "x-colt-user-agent"
          schema:
              type: "string"
        - name: version
          in: query
          description: version
          schema:
            type: integer
            format: int32
            example: 1
          required: false
      requestBody:
        description: createConnectionRequest
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateConnectionRequest'
        required: true
      responses:
        '201':
          description: ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateRequestSuccessResponse'
        '400':
          description: 'Bad request. Sometimes with possible status_id (-1:Invalid price identifier, -2:Price not found, -3:Novitas Umbrella Service Identifier not found the customer, -4:Request already placed, -5:Customer Connection name already exists -6:Port not available, -7:Invalid A end vlan Id range, -8:Invalid B end vlan Id range, -9:A end vlan overlap, -10:B end vlan overlap, -11:Invalid vlan combnation, -12:Invalid vlan translation combination, -13:Maximum connection reached in this port, -14:Connection with open-Port to open-Port already exists, -15:Unknown error, -16:Connection name is invalid or exceeds thirty characters, -17:Cloud port already used, -18:Request not allowed when FROM end & TO end ports are cloud ports)'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateRequestFailureResponse'
        
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role or if module is disabled'
        '409':
          description: Conflict. Request not allowed when FROM end & TO end ports are cloud ports
        '426':
          description: 'Upgrade required, Spend limit exceeded'
        '500':
          description: Internal error
      
  /connections/{connection_id}:
    get:
      tags:
      - Connection
      summary: Get connection details by Id
      description: Retrieve connecion attributes for given connection, common API supports Ethernet, Cloud and IP Access connection
      operationId: getConnectionDetails
      parameters:
      - name: connection_id
        in: path
        description: connection_id
        required: true
        schema:
          type: string
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      - name: version
        in: query
        description: version
        schema:
          type: integer
          format: int32
        required: false
      responses:
        200:
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/CommonConnectionInfo'
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
          
      
    put:
      tags:
      - Connection
      summary: Update a connection 
      description: The API is used to modify the connection attribute
      operationId: updateConnectionRequest
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      - name: connection_id
        in: path
        description: connection_id
        required: true
        schema:
          type: string
      requestBody:
        description: updateConnectionRequest
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CommonUpdateConnectionRequest'
              required: true;
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateRequestSuccessResponse'
        '400':
          description: 'Bad request. Sometimes with possible status_id (-1:Request already placed, -2:Price not found, -3:Customer Connection not found, -4:Invalid price id, -5:Invalid A end vlan Id range, -6:Invalid B end vlan Id range, -7:A end vlan overlap, -8:B end vlan overlap, -9:Invalid vlan combination, -10:Invalid vlan translation combination, -11:Connection with open-Port to open-Port already exists, -12:Unknown error, -13:Invalid coterminus price combination, -16:Connection name is invalid or exceeds thirty characters)'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateRequestFailureResponse'
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'', ''OnDemandPrimaryRole'' or ''OnDemandFlexRole'' role or if module is disabled'
        '500':
          description: internal error
      
      
    delete:
      tags:
      - Connection
      summary: Delete connection
      operationId: deleteConnection
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      - name: connection_id
        in: path
        description: connection_id
        required: true
        schema:
          type: string
      responses:
        200:
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/CreateRequestSuccessResponse'
        '400':
          description: 'Bad request. Sometimes with possible status_id (-1:Invalid customer Connection identifier, -2:Invliad customer, -3:Request already placed, -4:Unknown error)'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateRequestFailureResponse'
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'', ''OnDemandPrimaryRole'' role or if module is disabled'
        '426':
          description: 'Upgrade required, Spend limit exceeded'
        '500':
          description: Internal error
      
  /country:
    get:
      tags:
      - Location
      summary: get countries
      description: Operation to retrieve data associated with countries
      operationId: getCountries
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      responses:
        200:
          description: OK
          content:
            '*/*':
              schema:
                $ref: "#/components/schemas/Country"
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
          
      
  /cross_connect:
    get:
      tags:
      - Cross Connection
      description: Get cross connect 
      operationId: getAllCrossConnection
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      - name: version
        in: query
        description: version
        schema:
          type: integer
          format: int32
      responses:
        200:
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CrossConnectResponse'
        '201':
          description: created
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
          

    post:
      tags:
      - Cross Connection
      summary: Create cross connect
      description : Create cross connect
      operationId: createCrossConnectRequest
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      - name: version
        in: query
        description: version
        schema:
          type: integer
          format: int32
      requestBody:
        description: request payload
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CrossConnectRequest'
        required: true
      responses:
        200:
          description: ok
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/CreateRequestSuccessResponse'
        '400':
          description: Bad request
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
      
      
      
  /cross_connect/{id}:
    get:
      tags:
      - Cross Connection
      summary: Get crosss connect by id
      operationId: getCrossConnection
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      - name: id
        in: path
        description: id
        required: true
        schema:
          type: string
      - name: version
        in: query
        description: version
        schema:
          type: integer
          format: int32
      responses:
        200:
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/CrossConnectResponse'
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
          
      
      
    delete:
      tags:
      - Cross Connection
      summary: Delete a cross connect
      operationId: deleteCrossConnection
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      - name: id
        in: path
        description: id
        required: true
        schema:
          type: string
      responses:
        200:
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/CreateRequestSuccessResponse'
        '204':
          description: No Content Retrieved
          
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
          
      
  
          
  
  
  /geolocation-reachable:
    get:
      tags:
      - Location
      summary: Get reachable location
      description: operation to check if the builing or location is reachable from colt network
      operationId: getGeolocationReachable
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      - name: lat
        in: query
        description: Google latitude value
        required: true
        schema:
          type: string
      - name: long
        in: query
        description: Google longitude value
        required: true
        schema:
          type: string
      - name: place_id
        in: query
        description: Colt's unique place identifier
        required: true
        schema:
          type: string
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/NearNetPriceResponse'
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
          
      
  /global_directory:
    get:
      tags:
      - Location
      summary: Get global location
      description: "Endpoint to retrieve all available locations in the global directory basis the input parameters provided by user. If there are no locations found, empty array will be returned. Either (Building Id) or (Country & City) are mandatory"
      operationId: getGlobalLocations
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      - name: building_id
        in: query
        description: building_id
        required: true
        schema:
          type: string
      - name: building_name
        in: query
        description: building_name
        schema:
          type: string
        required: false
      - name: city
        in: query
        description: city
        schema:
          type: string
        required: true
      - name: country
        in: query
        description: country
        schema:
          type: string
        required: true
      - name: post_code
        in: query
        description: post_code
        schema:
          type: string
        required: false
      - name: street_name
        in: query
        description: street_name
        schema:
          type: string
        required: false
      responses:
        200:
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SiteResponse'
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
          
      
      
  /global_directory/address:
    get:
      tags:
      - Location
      summary: Get location
      description: "'This endpoint is used to retrieve the buildings from global directory where colt can provide connectivity. If location is found, empty array will be returned. Either Place Id or Country, City and either Street Name, Postcode or Building Name are required'"
      operationId: getGlobalBuildingInfo
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      - name: building_name
        in: query
        description: name of the building
        example: "Id00441"
        schema:
          type: string
      - name: city
        in: query
        description: city in which the building is available
        schema:
          type: string
          example: "Munich"
      - name: count
        in: query
        description: number of records to be displayed on page
        schema:
          type: integer
          format: int32
          example: 50
      - name: country
        in: query
        description: country
        schema:
          type: string
          example: "Germany"
      - name: place_id
        in: query
        description: Google place identifier. Refer https://developers.google.com/maps/documentation/javascript/examples/places-placeid-finder
        schema:
          type: string
          example: "ChIJrQsXh4B2nkcRftPCv0HAyHI"
      - name: post_code
        in: query
        description: post code of the place
        schema:
          type: string
          example: "80809"
      - name: premises_number
        in: query
        description: premises number
        schema:
          type: string
          example: "58"
      - name: street_name
        in: query
        description: street name on which the building is located
        schema:
          type: string
          example: "Schopenhauerstrasse"
      responses:
        200:
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GlobalBuildingAddressResponse'
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
          
      
      
  /google/request/port:
    get:
      tags:
      - Google Cloud Port
      summary: Get requests
      operationId: getGooglePortRequests
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      - name: port_id
        in: query
        description: port identifier
        required: false
        schema: 
          type: string
      - name: name
        in: query
        description: name
        schema:
          type: string
      responses:
        200:
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CloudPortRequestResponse'
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
          
      
  /google/service/port:
    get:
      tags:
      - Google Cloud Port
      summary: Get port list
      operationId: getGooglePorts
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      
      - name: name
        in: query
        description: name of the google port
        schema:
          type: string
      responses:
        200:
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GoogleCloudPortResponse'
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
          
      
      
    post:
      tags:
      - Google Cloud Port
      summary: Create port 
      operationId: createGooglePortRequest
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      requestBody:
        description: createGooglePortRequest
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateGooglePortRequest'
        required: true
      responses:
        201:
          description: OK
          content:
            '*/*':
              schema:
                type: object
                items:
                  $ref: '#/components/schemas/CreateRequestSuccessResponse'
        
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error


  /google/service/port/{port_id}:
    get:
      tags:
      - Google Cloud Port
      summary: Get port by id
      operationId: getGoogleCloudPortDetails
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      - name: port_id
        in: path
        description: port_id
        required: true
        schema:
          type: string
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                  $ref: '#/components/schemas/GoogleCloudPortResponse'
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
          
      
    put:
      tags:
      - Google Cloud Port
      summary: Modify port
      operationId: updateGoogleCloudPortName
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      - name: port_id
        in: path
        description: port_id
        required: true
        schema:
          type: string
      requestBody:
        description: nameRequest
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateNameRequest'
        required: true
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateRequestSuccessResponse'
        
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
      
    delete:
      tags:
      - Google Cloud Port
      summary: Delete port 
      operationId: deleteGoogleCloudPort
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      - name: port_id
        in: path
        description: port_id
        required: true
        schema:
          type: string
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateRequestSuccessResponse'
        
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: 'data not found'
        '500':
          description: Internal error
      
  /ibm/request/port:
    get:
      tags:
      - IBM Cloud Port
      summary: Get requests
      operationId: getPortRequests
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      - name: port_id
        in: query
        description: port identifier
        schema:
          type: string
        
      - name: name
        in: query
        description: name
        schema:
          type: string
      responses:
        200:
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CloudPortRequestResponse'
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
          
      
     
  /ibm/service/port:
    get:
      tags:
      - IBM Cloud Port
      summary: Get ports
      operationId: getPorts
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      
      - name: name
        in: query
        description: name of the port
        schema:
          type: string
      responses:
        200:
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CloudPortRequestResponse'
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
          
      
    post:
      tags:
      - IBM Cloud Port
      summary: Create port
      operationId: createPortRequest
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string" 
      requestBody:
        description: createPortRequest
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateIbmPortRequest'
        required: true
      responses:
        201:
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateRequestSuccessResponse'
        
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: 'data not found'
        '500':
          description: Internal error
      
  /ibm/service/port/{port_id}:
    get:
      tags:
      - IBM Cloud Port
      summary: Get port by Id
      operationId: getCloudPortDetails
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string" 
      - name: port_id
        in: path
        description: port_id
        required: true
        schema:
          type: string
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloudPortRequestResponse'
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
          
      
    put:
      tags:
      - IBM Cloud Port
      summary: Modify port
      operationId: updateCloudPortName
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      - name: port_id
        in: path
        description: port_id
        required: true
        schema:
          type: string
      requestBody:
        description: nameRequest
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateNameRequest'
        required: true
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateRequestSuccessResponse'
        
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: 'Data not found'
        '500':
          description: Internal error
      
    delete:
      tags:
      - IBM Cloud Port
      summary: Delete port
      operationId: deleteCloudPort
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      - name: port_id
        in: path
        description: port_id
        required: true
        schema:
          type: string
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateRequestSuccessResponse'
        
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
      
  /ipaccess/request:
    get:
      tags:
      - IP Access
      summary: Get requests 
      operationId: getAllIpaccessRequests
      responses:
        200:
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IpaccessRequestResponse'
             
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
      
    post:
      tags:
      - IP Access
      summary:  create IP Access Connection
      operationId: createIpaccessConnectionRequest
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      requestBody:
        description: ipaccessRequest data
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IpaccessRequest'
        required: true
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateRequestSuccessResponse'
        
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
      
  /ipaccess/request/{request_id}:
    get:
      tags:
      - IP Access
      summary: Get request by id
      operationId: getIpaccessRequestDetails
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      - name: request_id
        in: path
        description: request_id
        required: true
        schema:
          type: integer
          format: int32
      responses:
        200:
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/IpaccessRequestResponse'
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
          
      
  /ipaccess/service:
    get:
      tags:
      - IP Access
      summary: Get IP Access connections 
      operationId: getAllIpaccessServices
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      - name: available
        in: query
        description: available
        required: true
        schema:
          type: object
      - name: name
        in: query
        description: name
        schema:
          type: string
      responses:
        200:
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IpaccessServiceResponse'
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
          
      
  /ipaccess/service/{connection_id}:
    put:
      tags:
      - IP Access
      summary: Update IP Access connection
      operationId: updateServiceName
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      - name: connection_id
        in: path
        description: connection_id
        required: true
        schema:
          type: string
      requestBody:
        description: nameRequest
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IpaccessUpdateNameRequest'
        required: true
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateRequestSuccessResponse'
        
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
      
  /ipaccess/service/{service_id}:
    get:
      tags:
      - IP Access
      summary: Get IP Access by id
      operationId: getIpServiceDetails
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      - name: service_id
        in: path
        description: service_id
        required: true
        schema:
          type: string
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IpaccessServiceResponse'
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
      
  /ipaccess/services/{service_id}/requests:
    get:
      tags:
      - IP Access
      summary: Get request by serive id
      operationId: getAllIpaccessRequestsByConnectionIds
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      - name: service_id
        in: path
        description: service_id
        required: true
        schema:
          type: string
      responses:
        200:
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RequestResponse'
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal errord
          
      
  /locations:
    get:
      tags:
      - Location
      summary: Get customer address book
      operationId: getCustomerLocations
      parameters:
      - name: version
        in: query
        description: API version
        schema:
          type: integer
          format: int32
        required: false
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
        required: true
      responses:
        200:
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/LocationAddressBookResponse'
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
          
      
    post:
      tags:
      - Location
      summary: "Add location to customer address book"
      operationId: addCustomerLocation
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string" 
      requestBody:
        description: Location payload to be added in the customer address book
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LocationRequest'
        required: true
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateRequestSuccessResponse'
        
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        
        '500':
          description: Internal error
      
  /locations/{site_id}:
    put:
      tags:
      - Location
      summary: Modify customer address book
      operationId: updateLocation
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string" 
      - name: site_id
        in: path
        description: site_id
        required: true
        schema:
          type: string
      - name: site_name
        in: query
        description: site_name
        required: true
        schema:
          type: string
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateRequestSuccessResponse'
        
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
      
    delete:
      tags:
      - Location
      summary: Delete from customer master
      operationId: removeCustomerLocation
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string" 
      - name: site_id
        in: path
        description: site_id
        required: true
        schema:
          type: string
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateRequestSuccessResponse'
        
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
      
  
  /oracle/request/port:
    get:
      tags:
      - Oracle Cloud Port
      summary: Get port requests
      description: operation to retrieve list of oracle port requests and data
      operationId: getPortRequests
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string" 
      - name: port_id
        in: query
        description: port identifier
        required: false
        schema: 
          type: string
      - name: name
        in: query
        description: name
        schema:
          type: string
      responses:
        200:
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CloudPortRequestResponse'
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
      
      
  /oracle/request/port/{request_id}:
    get:
      tags:
      - Oracle Cloud Port
      summary: Get request by id
      description: get port list and data by request id
      operationId: getRequestById
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string" 
      - name: request_id
        in: path
        description: request_id
        required: true
        schema:
          type: integer
          format: int32
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloudPortRequestResponse'
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
      
      
  /oracle/service/port:
    get:
      tags:
      - Oracle Cloud Port
      summary: Get port
      description: Operation to retrieve list of already created port
      operationId: getPorts
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string" 
      - name: available
        in: query
        description: available
        required: true
        schema:
          type: object
      - name: name
        in: query
        description: name
        schema:
          type: string
      responses:
        200:
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CloudPortRequestResponse'
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
      
      
    post:
      tags:
      - Oracle Cloud Port
      summary: Create port
      description: Operation to create oracle cloud port request
      operationId: createPortRequest
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      requestBody:
        description: createPortRequest
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateOraclePortRequest'
        required: true
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateRequestSuccessResponse'
        
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
          
      
      
  
  /oracle/service/port/{port_id}:
    get:
      tags:
      - Oracle Cloud Port
      summary: Get port by id
      description: Operation to retrieve port details by id
      operationId: getCloudPortDetails
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string" 
      - name: port_id
        in: path
        description: port_id
        required: true
        schema:
          type: string
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OracleCloudPortResponse'
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
      
      
    put:
      tags:
      - Oracle Cloud Port
      summary: Modify port
      description: operation to update oracle cloud data
      operationId: updateCloudPortName
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      - name: port_id
        in: path
        description: port_id
        required: true
        schema:
          type: string
      requestBody:
        description: nameRequest
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateNameRequest'
        required: true
      responses:
        201:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateRequestSuccessResponse'
        
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
      
    delete:
      tags:
      - Oracle Cloud Port
      summary: Delete port
      description: Operation to delete cloud port request
      operationId: deleteCloudPort
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      - name: port_id
        in: path
        description: port_id
        required: true
        schema:
          type: string
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateRequestSuccessResponse'
        
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
      
  
        
  
  /v2/session:
    post:
      tags:
        - Login
      summary: "Create session"
      description: "This api will login the user and provide user's access token and\
         \ roles. The received token is valid for 15 minutes and will become invalid\
         \ if the API is called again as new token is generated everytime the API is\
         \ called. The access token need to be sent for any other invocation of API following the Bearer Authentication scheme."
      operationId: "loginV2"
      parameters:
        - in: "header"
          name: "x-colt-user-agent"
          schema:
            type: "string"
          required: true
      requestBody:
        description: "SessionRequest object that needs to be sent to the backend"
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SessionRequestV2'
        required: true
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionResponseV2'
        "400":
          description: "Bad request"
        "401":
          description: "Authentication failure, Invalid Credentials.Customer not found or Customer On-boarding in-progress"
        
        "406":
          description: "Not Acceptable"
        "412":
          description: "Precondition failed"
        "415":
          description: "Unsupported Media Type"
        "500":
          description: "Internal server error"
        "503":
          description: "Service unavailable"
      security:
        - BearerAuth: []
    patch:
      tags:
        - Login
      summary: "Continue session"
      description: "Keeps the user session active"
      operationId: "keepSessionAliveV2"
      parameters:
        - in: "header"
          name: "x-colt-user-agent"
          schema:
            type: "string"
          required: true
      responses:
        "200":
          description: "OK"
        "400":
          description: "Bad request"
        "403":
          description: "Forbidden"
        "401":
          description: "Authentication failure"
        "406":
          description: "Not Acceptable"
        "415":
          description: "Unsupported Media Type"
        "500":
          description: "Internal server error"
        "503":
          description: "Service unavailable"
      security:
        - BearerAuth: []
    delete:
      tags:
        - Login
      summary: "Delete session"
      description: "This api will logout the current session of the portal user. The\
           \ token will become invalid if this is called."
      operationId: "logoutV2"
      parameters:
        - in: "header"
          name: "x-colt-user-agent"
          schema:
            type: "string"
          required: true
      responses:
        "200":
          description: "OK"
        "400":
          description: "Bad request"
        "406":
          description: "Not Acceptable"
        "415":
          description: "Unsupported Media Type"
        "500":
          description: "Internal server error"
        "503":
          description: "Service unavailable"
      security:
        - BearerAuth: []
  /ports:
    get:
      tags:
      - Ports
      summary: Get ports
      operationId: getPorts
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
        required: false
      - name: version
        in: query
        description: version
        schema:
          type: integer
          format: int32
        required: false
      - name: name
        in: query
        description: port name
        schema:
          type: string
      - name: available
        in: query
        description: possibility to make connection
        schema:
          type: boolean
      responses:
        200:
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PortResponse'
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
      
    post:
      tags:
      - Ports
      summary: Create port
      operationId: createPortRequest
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
        required: true
      requestBody:
        description: createPortRequest
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePortRequest'
        required: true
      responses:
        201:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateRequestSuccessResponse'
               
        400:
          description: 'Bad request. Sometimes with possible status_id (-1:Invalid Price Id, -2:Price not found for this Port request, -3:Novitas Umbrella Service Identifier not found, -4:Customer Port name already exists, -5:If azure port then ServiceKey Already Exists, -6:Port name is invalid or exceeds thirty characters, -7:Service key for Azure port is empty, -8:AWS account number or AWS region or Location for AWS_Hosted port is empty, -9:LOA value is either empty or not base64 encoded of AWS Dedicated port, -10:Unknown error)'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateRequestFailureResponse'
        401:
          description: Authenication failure
        403:
          description: Forbidden request
        426:
          description: 'Upgrade required, Spend limit exceeded'
        404:
          description: Data Not Found
        500:
          description: Internal error
      
      
  /ports/{port_id}:
    get:
      tags:
      - Ports
      summary: Get port by Id
      operationId: getPortDetails
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      - name: port_id
        in: path
        description: port_id
        required: true
        schema:
          type: string
      responses:
        200:
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PortResponse'
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
      
      
    put:
      tags:
      - Ports
      summary: Modify port name
      operationId: updatePortName
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      - name: port_id
        in: path
        description: port_id
        required: true
        schema:
          type: string
      requestBody:
        description: nameRequest
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateNameRequest'
        required: true
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateRequestSuccessResponse'
        
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
      
      
    delete:
      tags:
      - Ports
      summary: Delete a port
      operationId: deletePort
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
        required: true
      - name: port_id
        in: path
        description: port_id
        required: true
        schema:
          type: string
      responses:
        200:
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/CreateRequestSuccessResponse'
        '400':
          description: 'Bad request. Sometimes with possible status_id (-1:Invalid Customer Port Identifier, -2:Invalid Customer, -3:Customer Connection exists using this Port, -4:Request already placed, -5:Connection request exists, -6:Unknown error)'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateRequestFailureResponse'
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'', ''OnDemandPrimaryRole'' role'
        '500':
          description: Internal error
  
      
  /ports/{port_id}/loa:
    post:
      tags:
      - Ports
      summary: Create LOA 
      operationId: createLOA
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      - name: port_id
        in: path
        description: port_id
        required: true
        schema:
          type: string
      - name: version
        in: query
        description: version
        schema:
          type: integer
          format: int32
      requestBody:
        description: loaRequest
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LOARequest'
        required: true
      responses:
        200:
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/CreateRequestSuccessResponse'
        '400':
          description: 'Bad request. Sometimes with possible status_id (-1:Invalid Customer Port Identifier, -2:Invalid Customer, -3:Customer Connection exists using this Port, -4:Request already placed, -5:Connection request exists, -6:Unknown error)'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateRequestFailureResponse'
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'', ''OnDemandPrimaryRole'' role'
        '500':
          description: Internal error
  
  /prices:
    get:
      tags:
      - Prices
      summary: Get prices
      operationId: getPrices
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
        required: true
      
      - in: query
        name: service_type
        schema:
          type: string
        required: true
        description: "These are colt service types e.g. ETHERNETPORT,CLOUDPORT,ETHERNETCIRCUIT"
        example: "ETHERNETCIRCUIT"
      - name: building_id
        in: query
        description: Building id of where the port exist. Required when looking for Cross Connect price.
        schema:
          type: string
        required: false
        example: "SHARED-UKLON-0000019188"
      - name: to_port_id
        in: query
        description: Destination port identifier of the connection. Required when looking for Connection price.
        example: "80059391"
        schema:
          type: string
        required: false
      - name: to_port_id_2
        in: query
        description: Secondary destination port identifier of the connection. Required only when looking for Azure Connection price.
        schema:
            type: string
        required: false
        example: "string"
      - name: to_site_type
        in: query
        description: Novitas site type of the destination Port
        schema:
          type: string
        required: false
        example: "KDC-UK-LON"
      - name: to_site_type_1
        in: query
        description: Novitas site type of the secondary destination Port
        schema:
          type: string
        required: false
        example: "DCNET-NL-AMS"
      - name: location_id
        in: query
        description: location id for the port
        schema:
          type: string
        required: false
        example: "SHARED-UKLON-0000019188"
      - name: product_id
        in: query
        description: Product identifier
        schema:
          type: string
        required: false
        example: "971010"
      - name: connection_id
        in: query
        description: connection id to get prices for connection modification
        schema:
          type: string
        required: false
        example: "string"
      - name: from_port_id
        in: query
        description: Source port identifier of the connection. Required when looking for Connection price.
        schema:
          type: string
        required: false
        example: "80058990"
      - name: from_site_type
        in: query
        description: Novitas site type of the source Port
        schema:
          type: string
        required: false
        example: "KDC-UK-LON"
      - name: service
        in: query
        description: 'Name of the cloud service.  ''AZURE_EXPRESS'',''AWS_HOSTED'',''AWS_DEDICATED''. One of the value should be passed when looking for Cloud related product prices.'
        schema:
          type: string
        required: false
        example: "AWS_HOSTED"
      
      - name: version
        in: query
        description: API version
        schema:
          type: integer
          format: int32
        required: false  
        example: 1
      responses:
        200:
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PriceResponse'
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
      
      
  /products:
    get:
      tags:
      - Products
      summary: Get products
      operationId: getProducts
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
        required: true
      - name: version
        in: query
        description: API version
        schema:
          type: integer
          format: int32
        required: false
      - name: location_id
        in: query
        description: location id for the site where port would be requested
        schema:
          type: string
        required: true
      - name: service_type
        in: query
        description: location id for the site where port would be requested
        schema:
          type: string
        required: true
      responses:
        200:
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProductResponse' 
          
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
      
  
      
  /requests:
    get:
      tags:
      - Requests
      summary: Get requests
      description: Operation to retrive requests for given parameters
      operationId: getRequests
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
        required: false
      - name: version
        in: query
        description: API version
        schema:
          type: integer
          format: int32
        required: false
      - name: value
        in: query
        description: Indicator to retrieve which type of requests details expected in the response
        schema:
          type: string
          
        required: false
      responses:
        200:
          description: OK
          content:
           application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RequestResponse'
          
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
      
  /requests/{request_id}:
    get:
      tags:
      - Requests
      summary: Get request by id
      description: Operation to retrive request detaild by identifier
      operationId: getRequestById
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      - name: request_id
        in: path
        description: request_id
        required: true
        schema:
          type: integer
          format: int32
      responses:
        200:
          description: OK
          content:
            '*/*':
              schema:
                type: object
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
      
  
  /siteport:
    post:
      tags:
      - Ports
      summary: Create new site port
      operationId: createSitePortRequest
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      
      requestBody:
        description: createSitePortRequest
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSitePortRequest'
        required: true
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateRequestSuccessResponse'
        '201':
          description: created           
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
  
  /supported_cities:
    get:
      tags:
      - Location
      summary: Get supported cities
      description: "Operation to retrieve list of cities where Colt connectivity is available"
      operationId: getSupportedCities
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      responses:
        200:
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SupportedCitiesResponse'
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
      
      
  /supported_currencies:
    get:
      tags:
      - Currency
      summary: Get currencies
      operationId: getSupportedCurrencies
      parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
      responses:
        200:
          description: OK
          content:
            '*/*':
              schema:
                type: object
        '401':
          description: Authentication failure
        '403':
          description: 'Forbidden, Encountered if user doesn''t have either of ''OnDemandFullRole'' or ''OnDemandPrimaryRole'' role'
        '404':
          description: Data Not Found
        '500':
          description: Internal error
      
  /v3/user:
    get:
      tags:
        - "User"
      summary: "Gets user details"
      description: "This api will gets the details for a user"
      operationId: "getUserV3"
      parameters:
        - in: "header"
          name: "x-colt-user-agent"
          schema:
            type: "string"
          required: true
      responses:
        "200":
          description: "Success response"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserResponseV3"
        "400":
          description: "Bad request"
        "401":
          description: "Authentication failure"
        "406":
          description: "Not Acceptable"
        "415":
          description: "Unsupported Media Type"
        "500":
          description: "Internal server error"
        "503":
          description: "Service unavailable"
      security:
        - BearerAuth: []
  /v2/port/services/{id}/loa:
    parameters:
      - name: id
        in: path
        required: true
        description: The Service identifier
        example: 80001234
        schema:
          type: string
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
        required: true
    post:
      tags:
        - "Ethernet Port (New*)"
      description: Request a Letter of Authority to connect to the specified port
      summary: Generate and download a Letter of Authority
      operationId: createLOA
      parameters:
        - in: "header"
          name: "x-colt-user-agent"
          schema:
            type: "string"
          required: true
      requestBody:
        description: Request an LOA
        content:
          application/json:
            schema:
              type: object
              properties:
                issue_to:
                  type: string
              required:
                - issue_to
      responses:
        "200":
          description: Success response
          content:
            application/pdf:
              schema:
                type: string
                format: binary
        "400":
          description: Bad request
        "401":
          description: Authentication failure
        "403":
          description: Forbidden request
        "406":
          description: Not Acceptable
        "415":
          description: Unsupported Media Type
        "500":
          description: Internal server error
        "503":
          description: Service unavailable
      security:
        - BearerAuth: []
  /v2/connection/services/{connection_id}:
    parameters:
      - in: path
        name: connection_id
        schema:
          type: string
        required: true
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
        required: true
    get:
      tags:
        - Ethernet Connection (New*)
      summary: Get a connection
      description: Get ethernet connection service details by Connection ID
      operationId: getEthernetConnectionById
      responses:
        '200':
          description: Details of the Ethernet connection service
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectionServiceV2'
        '404':
          description: Not found
      security:
        - BearerAuth: []
    patch:
      tags:
        - Ethernet Connection (New*)
      summary: Modify name
      description: Modify name of an ethernet connection 
      operationId: updateConnectionService
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NameChangeRequestV2'
      responses:
        '200':
          description: Update was successful
        '400':
          description: Unrecognised input
          content:
            application/json:
              schema:
                type: object
                required:
                  - message
                properties:
                  message:
                    type: string
      security:
        - BearerAuth: []
    put:
      tags:
        - Ethernet Connection (New*)
      summary: Modify a connection
      description: Modify an Ethernet connection
      operationId: modifyConnectionRequest
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConnectionUpdateRequestV2'
      responses:
        '200':
          description: Success response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommonCreateResponseV2'
        '401':
          description: Authentication failure
        '500':
          description: Internal server error
      security:
        - BearerAuth: []
    delete:
      tags:
        - Ethernet Connection (New*)
      summary: Delete a connection
      description: Delete an ethernet connection
      operationId: deleteConnectionService
      responses:
        '200':
          description: Success response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommonCreateResponseV2'
        '400':
          description: Bad request
        '401':
          description: Authentication failure
        '500':
          description: Internal server error
      security:
        - BearerAuth: []
  /v2/connection/services:
    parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
        required: true
    get:
      tags:
        - Ethernet Connection (New*)
      summary: List of connections
      description: List of ethernet connections
      operationId: listEthernetConnectionServices
      responses:
        '200':
          description: A list of matching Ethernet connection services
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ConnectionServiceV2'
        "401":
          description: Authentication failure
        "500":
          description: Internal server error
      security:
        - BearerAuth: []
    post:
      tags:
        - Ethernet Connection (New*)
      summary: Create a new connection
      description: Create new requests for an Ethernet connection
      operationId: createConnectionRequest
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConnectionCreateRequestV2'
      responses:
        '201':
          description: Success response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommonCreateResponseV2'
      security:
        - BearerAuth: []
  /v2/port/services:
    parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
        required: true
    post:
      tags:
        - "Ethernet Port (New*)"
      summary: Create a new port
      description: Create a new ethernet port
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateEthernetPortRequestV1'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommonCreateResponseV2'
        "400":
          description: Bad request
        "401":
          description: Authentication failure
        "403":
          description: Forbidden request
        "406":
          description: Not Acceptable
        "415":
          description: Unsupported Media Type
        "500":
          description: Internal server error
        '503':
          description: Service unavailable
      security:
        - BearerAuth: []
    get:
      tags:
        - "Ethernet Port (New*)"
      summary: List of ports
      description: return ethernet ports
      operationId: listEthernetPorts
      responses:
        "200":
          description: Details of all Ethernet Port services
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EthernetPortServiceAttributesV1'
        "400":
          description: Bad request
        "401":
          description: Authentication failure
        "403":
          description: Forbidden request
        "404":
          description: Not found
        "415":
          description: Unsupported Media Type
        "500":
          description: Internal server error
        "503":
          description: Service unavailable
      security:
        - BearerAuth: []
  /v2/port/services/{id}:
    parameters:
      - name: id
        in: path
        required: true
        description: The Service identifier
        example: 80001234
        schema:
          type: string
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
        required: true
    get:
      tags:
        - "Ethernet Port (New*)"
      summary: Get a port
      description: return details of an ethernet port
      operationId: getEthernetPort
      responses:
        "200":
          description: Details of an Ethernet Port service
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EthernetPortServiceAttributesV1'
        "400":
          description: Bad request
        "401":
          description: Authentication failure
        "403":
          description: Forbidden request
        "404":
          description: Not found
        "415":
          description: Unsupported Media Type
        "500":
          description: Internal server error
        "503":
          description: Service unavailable
      security:
        - BearerAuth: []  
    patch:
      tags:
        - "Ethernet Port (New*)"
      summary: Modify name
      description: Modify ethernet port name
      operationId: renameEthernetPortService
      requestBody:
        description: Supply the new name for the service
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NameChangeRequestV2'
      responses:
        "200":
          description: The Port was successfully renamed
        "400":
          description: Bad request
        "401":
          description: Authentication failure
        "403":
          description: Forbidden request
        "404":
          description: Not found
        "415":
          description: Unsupported Media Type
        "500":
          description: Internal server error
        "503":
          description: Service unavailable
      security:
        - BearerAuth: []
    delete:
      tags:
        - "Ethernet Port (New*)"
      summary: Delete a port
      description: Delete an ethernet port
      operationId: deleteEthernetPortService
      responses:
        "200":
          description: Success response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommonCreateResponseV2'
        "400":
          description: Bad request
        "401":
          description: Authentication failure
        "403":
          description: Forbidden request
        "406":
          description: Not Acceptable
        "415":
          description: Unsupported Media Type
        "500":
          description: Internal server error
        "503":
          description: Service unavailable
      security:
        - BearerAuth: []
  /v2/port/requests:
    parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
        required: true
    get:
      tags:
        - "Ethernet Port (New*)"
      summary: Return all requests
      description: Return all ethernet port requests
      operationId: listEthernetPortRequests
      responses:
        "200":
          description: Success response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EthernetPortRequestAttributesV1'
        "400":
          description: Bad request
        "401":
          description: Authentication failure
        "403":
          description: Forbidden request
        "406":
          description: Not Acceptable
        "415":
          description: Unsupported Media Type
        "500":
          description: Internal server error
        "503":
          description: Service unavailable
      security:
        - BearerAuth: []  
  /v2/port/requests/{id}:
    get:
      tags:
        - "Ethernet Port (New*)"
      summary: Get a request
      description: Returns a single ethernet port request
      operationId: getPortRequestByRequestId
      parameters:
        - in: "header"
          name: "x-colt-user-agent"
          schema:
            type: "string"
          required: true
        - name: id
          in: path
          required: true
          description: The Request identifier
          example: 1234567
          schema:
            type: string
      responses:
        "200":
          description: Details of an Ethernet Port request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EthernetPortRequestAttributesV1'
        "400":
          description: Bad request
        "401":
          description: Authentication failure
        "403":
          description: Forbidden request
        "404":
          description: Not found
        "415":
          description: Unsupported Media Type
        "500":
          description: Internal server error
        "503":
          description: Service unavailable
      security:
        - BearerAuth: []
  /v2/connection/requests:
    parameters:
      - in: "header"
        name: "x-colt-user-agent"
        schema:
          type: "string"
        required: true
    get:
      tags:
        - Ethernet Connection (New*)
      summary: Return all requests
      description: Return all Ethernet Connection requests
      operationId: listConnectionRequests
      responses:
        '200':
          description: A list of matching connection requests
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ConnectionRequestV2'
        '404':
          description: Not found
      security:
        - BearerAuth: []
  /v2/connection/requests/{id}:
    get:
      tags:
        - Ethernet Connection (New*)
      summary: Get a request
      description: Returns a single ethernet connection request
      operationId: getEthernetConnectionRequestByRequestId
      parameters:
        - in: "header"
          name: "x-colt-user-agent"
          schema:
            type: "string"
          required: true
        - name: id
          in: path
          required: true
          description: The Request identifier
          example: 1234567
          schema:
            type: string
      responses:
        "200":
          description: Details of an Ethernet Connection request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectionRequestV2'
        "400":
          description: Bad request
        "401":
          description: Authentication failure
        "403":
          description: Forbidden request
        "404":
          description: Not found
        "415":
          description: Unsupported Media Type
        "500":
          description: Internal server error
        "503":
          description: Service unavailable
      security:
        - BearerAuth: []
  /tickets:
    get:
      tags:
      - Tickets
      summary: Get tickets
      operationId: getTicketsUsingGET
      parameters:
      - name: available
        in: query
        description: available
        required: true
        schema:
          type: object
      responses:
        200:
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Ticket'
        401:
          description: Unauthorized
          content: {}
        403:
          description: Forbidden
          content: {}
        404:
          description: Not Found
          content: {}
      deprecated: false
security:
  - ApiKeyAuth: []

  
components:
  schemas:
    Ticket:
      type: object
      description: Attribute related to a support/incident ticket
      properties:
        ticket_id:
          type: string
          description: ticket identifier
          example: "1-44319837423"
        status:
          type: string
          description: "status of the ticket "
          example: "IN_PROGRESS"
        summary:
          type: string
          description: summary of the incident
          example: "On Demand Proactive Incident - Request #86315"
        priority:
          type: string
          description: priority of the incident
          example: "P2"
        service_id:
            type: string
            description: The OnDemand service to which this request applies
            example: 80001233
        request_id:
            type: string
            description: The OnDemand request identifier
            example: 5023123123
        most_recent_outbound_interraction:
          $ref: '#/components/schemas/Interraction'
        most_recent_inbound_interaction:
          $ref: '#/components/schemas/Interraction'
    ConnectionRequestV2:
      allOf:
        - $ref: '#/components/schemas/ConnectionAttributesV2'
        - type: object
          properties:
            id:
              type: string
            action:
              $ref: '#/components/schemas/RequestAction'
            charges:
              $ref:  '#/components/schemas/ChargesV2'
            in_progress_at:
              type: string
              format: date-time
              description: when request change to inProgress status
            customer:
              $ref: '#/components/schemas/CustomerV2'
            last_updated:
              type: string
              format: date-time
            connection_id:
              description: the ID of the corresponding Connection service
              type: string
            coterminus_option:
              type: boolean
            previous_rental_charge:
              type: number
            previous_bandwidth:
              type: integer
            description:
              type: string
            host_address:
              type: string
            process_instance_id:
              type: string
            requested_at:
              type: string
              format: date-time
            resource_type:
              type: string
              description: ETHERNET_CONNECTION
            status:
              $ref: '#/components/schemas/RequestStatus'
            status_code:
              type: integer
            status_code_description:
              type: string
          required:
            - id
            - action
            - status
            - customer
            - charges
            - port
            - service_id
            - created_at
            - last_updated
    EthernetPortRequestAttributesV1:
      allOf:
        - $ref: '#/components/schemas/CommonGetPortRequestAttributesV3'
        - $ref: '#/components/schemas/CommonBuildingAttributesV2'
        - $ref: '#/components/schemas/CommonSiteAttributesV1'
        - type: object
          properties:
            capacity_installation_charge:
              type: number
              description: The additional charge required to connect this site to the Colt network
            capacity_validated:
              type: boolean
            connector_type:
              type: string
              example: RJ45
            internal_order:
              $ref: '#/components/schemas/InternalOrderDetails'
            site_access_details:
              $ref: '#/components/schemas/SiteAccessDetails'
            technology:
              type: string
              example: 1000BASE-T
    UserResponseV3:
      required:
        - "name"
        - "title"
        - "email"
        - "status"
        - "user_id"
        - "telephone_no"
        - "2fa_status"
        - "otp_delivery_channel"
        - "otp_destination"
        - "preferred_language"
        - "user_roles"
        - "last_user_role"
        - "user_type"
        - "colt_online_sso_token"
        - "colt_online_base_url"
        - "associated_customers"
      type: "object"
      properties:
        name:
          type: "string"
          example: "demo user1"
        title:
          type: "string"
          example: "Mr"
        email:
          type: "string"
          example: "demouser1@colt.net"
        status:
          $ref: "#/components/schemas/UserStatus"
        user_id:
          type: "string"
          example: "demouser1@colt.net"
        telephone_no:
          type: "string"
          example: "+44123456789"
        2fa_status:
          $ref: "#/components/schemas/TwoFactorAuthStatus"
        otp_delivery_channel:
          $ref: "#/components/schemas/OTPDeliveryChannel"
        otp_destination:
          type: "string"
          example: "+44796*****70"
        preferred_language:
          $ref: "#/components/schemas/SupportedLanguageV2"
        user_roles:
          type: "array"
          items:
            type: "string"
          example: ["OnDemandFullRole","OnDemandFlexRole","OnDemandReadOnlyRole","soft_ceased","ViewTickets"]
        last_user_role:
          type: "string"
          example: "OnDemandReadOnlyRole"
        user_type:
          $ref: "#/components/schemas/UserTypeV2"
        colt_online_sso_token:
          type: "string"
        colt_online_base_url:
          type: "string"
        associated_customers:
          type: "array"
          items:
            $ref: "#/components/schemas/AssociatedCustomersV1"
        preferred_customer_id:
          type: string
          example: 1232
    AssociatedCustomersV1:
      type: object
      required:
        - customer_id
        - legal_requirements_accepted
        - ocn
        - bcn
        - legal_name
      properties:
        customer_id:
          type : integer
          example: "1232"
          description: "Unique Identifier for the customer account (OCN)"
        ocn:
          type: string
          example: ACN1313
          description: "Customer's identifiaction"
        bcn:
          type: string
          example: 23232
        legal_name:
          type: string
          example: "ABC Ltd"
          description: "Customer's legal name"
        legal_requirements_accepted:
          type: boolean
          example: true
          description: "Tells the use has accepted the T&C or not for this account"
    Interraction:
      type: object
      description: Attribute related to a Interraction
      properties:
        medium:
          type: string
        timestamp: 
          type: string
          format: date-time
    ConnectionServiceV2:
      type: object
      allOf:
        - $ref: '#/components/schemas/CommonServiceV2'
        - $ref: '#/components/schemas/ConnectionAttributesV2'
        - required:
            - bandwidth_mbps
            - from_port
            - to_port
          properties:
            bandwidth_mbps:
              description: Connection bandwidth
              type: integer
            bandwidth_boost:
              type: array
              items:
                $ref: '#/components/schemas/BandwidthBoostV2'
            base_bandwidth:
              type: integer
              example: 100
            base_rental:
              type: number
              example: 320
            connection_type:
              type: string
              example: DCNCONNECTION
            from_port:
              $ref: '#/components/schemas/ConnectionPortDetailsV2'
            nc_tech_service_id:
              type: string
              example: 9356242646613976846
            nms:
              type: string
            circuit_reference:
              type: string
              example: LON/LON/LE-533629
            to_port:
              $ref: '#/components/schemas/ConnectionPortDetailsV2'
    ConnectionUpdateRequestV2:
      type: object
      properties:
        from_vlans:
          $ref: '#/components/schemas/ConnectionPortVLANDetailsV2'
        price:
          $ref: '#/components/schemas/PriceV2'
        coterminus_option:
          type: boolean
        to_vlans:
          $ref: '#/components/schemas/ConnectionPortVLANDetailsV2'
        boost_bandwidth_mbps:
          type: integer
    ConnectionPortDetailsV2:
      allOf:
        - $ref: '#/components/schemas/ConnectionPortVLANDetailsV2'
        - type: object
          properties:
            port_service_id:
              type: string
    ConnectionPortVLANDetailsV2:
      type: object
      required:
        - vlan_mapping
      properties:
        vlan_mapping:
          type: string
        vlan_type:
          type: string
        vlan_id:
          type: integer
          minimum: 1
          maximum: 4094
    BandwidthBoostV2:
      type: object
      properties:
        bandwidth_mbps:
          type: integer
        expires_at:
          type: string
          format: date-time
        rental_boost_charge:
          type: number
    ConnectionAttributesV2:
      type: object
      properties:
        bandwidth_mbps:
          type: integer
        base_rental:
          type: number
        from_port:
          $ref: '#/components/schemas/ConnectionPortDetailsV2'
        name:
          type: string
        to_port:
          $ref: '#/components/schemas/ConnectionPortDetailsV2'
      required:
        - name
        - bandwidth_mbps
    CommonServiceV2:
      type: object
      required:
        - id
        - status
        - customer
        - charges
        - created_at
        - name
        - parent_service_id
      properties:
        id:
          type: string
          example: "80045656"
        name:
          type: string
          example: London Circuit 1
        description:
          type: string
          example: Ethernet Connection
        status:
          $ref: '#/components/schemas/ServiceStatus'
        charges:
          $ref: '#/components/schemas/ChargesV2'
        customer:
          $ref: '#/components/schemas/CommonCustomerV2'
        created_at:
          type: string
          format: date-time
        last_updated:
          type: string
          format: date-time
        decommissioned_at:
          type: string
          format: date-time
    CommonCustomerV2:
      type: object
      required:
        - customer_id
        - ocn
        - customer_region
        - customer_currency
        - pricing_model
      properties:
        customer_id:
          type: string
        customer_name:
          type: string
        customer_local_name:
          type: string
        ocn:
          type: string
        bcn:
          type: string
        parent_service_id:
          type: string
        customer_region:
          type: string
        customer_currency:
          type: string
        pricing_model:
          type: string
    ChargesV2:
      type: object
      properties:
        currency:
          type: string
        rental_charge:
          type: number
        rental_unit:
          type: string
        installation_charge:
          type: number
        penalty_charge:
          type: number
        modification_charge:
          type: number
        decommissioning_charge:
          type: number
        commitment_period:
          type: integer
        commitment_expiry:
          type: string
          format: date-time
    
     
    UserResponseV2:
      required:
        - "name"
        - "title"
        - "email"
        - "status"
        - "user_id"
        - "telephone_no"
        - "legal_requirements_accepted"
        - "2fa_status"
        - "otp_delivery_channel"
        - "otp_destination"
        - "preferred_language"
        - "user_roles"
        - "last_user_role"
        - "user_type"
        - "colt_online_sso_token"
        - "colt_online_base_url"
      type: "object"
      properties:
        name:
          type: "string"
          example: "demo user1"
        title:
          type: "string"
          example: "Mr"
        email:
          type: "string"
          example: "demouser1@colt.net"
        status:
          $ref: "#/components/schemas/UserStatus"
        user_id:
          type: "string"
          example: "demouser1@colt.net"
        telephone_no:
          type: "string"
          example: "+44123456789"
        legal_requirements_accepted:
          type: "boolean"
          example: true
        2fa_status:
          $ref: "#/components/schemas/TwoFactorAuthStatus"
        otp_delivery_channel:
          $ref: "#/components/schemas/OTPDeliveryChannel"
        otp_destination:
          type: "string"
          example: "+44796*****70"
        preferred_language:
          $ref: "#/components/schemas/SupportedLanguageV2"
        user_roles:
          type: "array"
          items:
            type: "string"
          example: ["OnDemandFullRole","OnDemandFlexRole","OnDemandReadOnlyRole","soft_ceased","ViewTickets"]
        last_user_role:
          type: "string"
          example: "OnDemandReadOnlyRole"
        user_type:
          $ref: "#/components/schemas/UserTypeV2"
        colt_online_sso_token:
          type: "string"
        colt_online_base_url:
          type: "string"
    UpdateUserRequestV2:
      type: "object"
      properties:
        preferred_language:
          $ref: "#/components/schemas/SupportedLanguageV2"
        preferred_customer_id:
          type: integer
          example: 1231
          description: "Identifier of the customer account"
    UserTypeV2:
      description: Portal User types.
      type: string
      example: "super_user"
      enum:
        - "impersonate_user"
        - "super_user"
    OTPDeliveryChannel:
      type: "string"
      example: "SMS"
      enum:
        - "SMS"
        - "EMAIL"
        - "APP"      
    SupportedLanguageV2:
      type: "string"
      default: "EN"
      example: "EN"
      enum:
        - "DE"
        - "EN"
        - "ES"
        - "FR"
        - "IT"
        - "JA"
    TwoFactorAuthStatus:
      description: "The current acceptance state of a Terms and Conditions"
      type: "string"
      example: "PENDING"
      enum:
        - "PENDING"
        - "COMPLETED"
        - "NOT_REQUIRED"
    UserStatus:
      type: "string"
      example: "ACTIVE"
      enum:
        - "ACTIVE"
        - "ARCHIVED"
    CommonGetPortRequestAttributesV2:
      type: object
      description: These attributes are common to all saved Port requests, regardless of type
      properties:
        bandwidth:
          type: integer
        building_id:
          type: string
          description: A Colt building identifier
          example: LON00001
      allOf:
        - $ref: '#/components/schemas/CommonGetRequestAttributesV2'
    ConnectionCreateRequestV2:
      type: object
      required:
        - customer
        - name
        - from_port_id
        - to_port_id
      properties:
        from_port_id:
          type: string
        from_vlans:
          $ref: '#/components/schemas/ConnectionPortVLANDetailsV2'
        name:
          type: string
        price:
          $ref: '#/components/schemas/PriceV2'
        to_port_id:
          type: string
        to_vlans:
          $ref: '#/components/schemas/ConnectionPortVLANDetailsV2'
    PriceV2:
      type: object
      required:
        - pricing_tier
        - discount_percentage
        - rental_unit
      properties:
        price_id:
          type: integer
          minimum: 1
    CommonCreateResponseV2:
      type: object
      description: Common response to a POST of a Request
      properties:
        request_url:
          type: string
          description: An HTTP link to the successfully created OnDemand Request
          example: https://ondemand.colt.net/api/v2/google/request/21389764
        service_url:
          type: string
          description: An HTTP link to the skeletonOnDemand Service whose details will be enriched during the provisioning process
          example: https://ondemand.colt.net/api/v2/google/service/21389764
    CommonGetRequestChargesV2:
      type: object
      description: Charging attributes held for all requests and services
      properties:
        commitment_period:
          type: integer
          description: Commitment period in months
      allOf:
        - $ref: '#/components/schemas/CommonChargesV2'
    CommonChargesV2:
      type: object
      properties:
        currency:
          type: string
        decommissioning_charge:
          type: number
          format: float
          description: Charge made to decommission the service
          example: 123.45
        installation_charge:
          type: number
          format: float
          description: One-off charge made when the service is installed
          example: 123.45
        penalty_charge:
          type: number
          format: float
          description: One-time charge made if the service is decommisioned prior to its commitment date
          example: 123.45
        rental_charge:
          type: number
          format: float
          description: Recurring charge for this service
          example: 0.75
        rental_unit:
          type: string
          description: The frequency with which the charge will be applied
          example: HOURLY, MONTHLY
    NameChangeRequestV2:
      type: object
      required:
        - name
      properties:
        name:
          type: string
          description: The new name to be assigned to a service
          example: My New Port Name
    CommonGetRequestAttributesV2:
        type: object
        description: These attributes are common to all Requests after they have been created
        properties:
          id:
            type: integer
          action:
            $ref: '#/components/schemas/RequestAction'
          charges:
            $ref: '#/components/schemas/CommonGetRequestChargesV2'
          description:
            type: string
          detail_url:
            type: string
            description: URL that can be called to return only the detail of this specific request
            example: "https://ondemand.colt.net/equinix/request/1234"
          last_updated:
            type: string
          name:
            type: string
          parent_service_id:
            type: string
            description: The parent Novitas Service ID
          requested_at:
            type: string
          requested_by:
            type: string
          resource_type:
            $ref: '#/components/schemas/ResourceType'
          service_id:
            type: string
            description: The OnDemand service to which this request applies
            example: 80001233
          status:
            $ref: '#/components/schemas/RequestStatus'
          bandwidth:
            type: integer
          site_name:
            type: string
          csp_key:
            type: string
          cloud_provider:
            type: string
    RequestStatus:
      type: string
      description: Information regarding the state of an OnDemand Request
      example: INPROGRESS
      enum:
        - REQUESTED
        - INPROGRESS
        - FAILED
        - REJECTED
        - ONHOLD
        - CLEAN_REQUIRED
        - COMPLETED
    ResourceType:
      type: string
      description: Used in both Request and Service to identify the specific type of service
      example: EQUINIX_PORT
      enum:
        # - AWS_DEDICATED_PORT
        # - AWS_HOSTED_PORT
        # - AZURE_PORT
        # - GOOGLE_PORT
        - EQUINIX_PORT
        - IBM_PORT
      # - ORACLE_PORT   
    CommonCreatePortRequestV2:
      type: object
      description: Attributes common to all CREATE port requests
      required:
        - name
        - price_id
        - building_id
      properties:
        name:
          type: string
          description: The name of the service
          example: "Head Office AWS Port"
        price_id:
          type: integer
          description: ID of the price associated with the port Request was created
          example: 111222333
        building_id:
          type: string
          description: Colt identifier of the building containing the cloud port
          example: LON0001/001   
    CommonCreateCloudPortRequestV2:
      description: Attributes common to all CREATE cloud port requests
      allOf:
        - $ref: '#/components/schemas/CommonCreatePortRequestV2'
        - type: object
          required:
            - cloud_provider
            - csp_key
      properties:
        cloud_provider:
          type: string
          description: The short name of the cloud provider, as used by Colt
          example: AWS | GOOGLE
        csp_key:
          type: string
          description: The unique identifier for this port as generated by the cloud service provider
          example: 8a2d98b9-844f-4d10-b3a4-0d93731f8983
    EquinixGetCloudPortRequestV2:
      allOf:
        - $ref: '#/components/schemas/CommonGetCloudPortRequestAttributesV2'
    EquinixCreateCloudPortRequestV2:
      allOf:
        - $ref: '#/components/schemas/CommonCreateCloudPortRequestV2'
        - type: object
          required:
            - cloud_region
          properties:
            cloud_region:
              type: string
              description: The cloud region where the building is located
              example: uk-lon
    EquinixGetCloudPortServiceV2:
      allOf:
        - $ref: '#/components/schemas/CommonGetCloudPortServiceAttributesV2'
    CommonGetCloudPortServiceAttributesV2:
      properties:
        cloud_provider:
          type: string
          description: The short name of the cloud provider, as used by Colt
          example: AWS | GOOGLE
        csp_key:
          type: string
          description: The unique identifier for this port as generated by the cloud service provider
          example: 8a2d98b9-844f-4d10-b3a4-0d93731f8983
        building_id:
          type: string
          description: A Colt building identifier
          example: LON00001
      allOf:
        - $ref: '#/components/schemas/CommonGetPortServiceAttributesV2'
    CommonGetPortServiceAttributesV2:
      properties:
        bandwidth:
          type: integer
          description: The capacity of the port in Mbps
          example: 100
        used_bandwidth:
          type: integer
          description: The amount of bandwidth in Mbps used by connections to this port
          example: 50
        available_bandwidth:
          type: integer
          description: The amount of unused bandwidth (total - used - requested) available for new connections to this port
          example: 50
        no_of_connections:
          type: integer
          description: The number of connection already using this port - each connection will have a distinct VLAN ID
          example: 1
        max_allowed_connections:
          type: integer
          description: The maximum connections supported by this port. Cloud ports usually support only one connections
          example: 2000
        no_of_connections_requested:
          type: integer
          description: The number of INPROGRESS connection requests for this port
          example: 2
        resource_id:
          type: string
          description: Also called the circuit reference and circuit_name_1
      allOf:
        - $ref: '#/components/schemas/CommonGetServiceAttributesV2'
    CommonGetServiceAttributesV2:
      properties:
        id:
          type: string
          description: Colt-assigned unique identifier for this service
          example: 8001234
        name:
          type: string
          description: The name given to this service by the customer
          example: My AWS port
        parent_service_id:
          type: string
          description: A unique identifier associated with the Customer Number, for service assurance and billing purposes.
          example: 8001234
        status:
          $ref: '#/components/schemas/ServiceStatus'
        resource_type:
          $ref: '#/components/schemas/ResourceType'
      allOf:
        - $ref: '#/components/schemas/CommonGetServiceChargeAttributesV2'
    ScheduleEventRequest:
      type: object
      properties:
        price_id:
          type: integer
          format: int32
          description: Price identifier for new bandwidth
        connection_id:
          type: string
          description: Connection identifier
        event_date:
          type: string
          format: date-time
          description: Scheduled event date & time in UTC
        event_frequency:
          type: string
          description: 'Bandwidth modification frequency. Possible value is ''ONE_OFF'',''WEEKLY'' or ''MONTHLY'''
        event_day_of_week:
          type: integer
          format: int32
          description: Event day of the week. Possible value from 0 to 6.
        event_time:
          type: string
          description: 'Scheduled event time in format ''HH:mm:ss'' of UTC'
        event_day_of_month:
          type: integer
          format: int32
          description: Event day of the month. Possible value from -31 to 31 except 0.
    CommonGetServiceChargeAttributesV2:
      type: object
      description: Charging attributes held for all requests and services
      properties:
        commitment_expiry:
          type: string
          description: The date on which the customer's commitment to pay for the service runs out. After this date, the service can be cancelled with no penalty.
          example: 01-FEB-21
      allOf:
        - $ref: '#/components/schemas/CommonChargesV2'
    ServiceStatus:
      description: The current state of a service
      type: string
      example: PENDING
      enum:
        - PENDING
        - ACTIVE
        - DECOMMISSIONING
        - DECOMMISSIONED
        - ABORTED
    RequestAction:
      type: string
      description: The goal of the request
      example: CREATE, MODIFY, DELETE
      enum:
        - CREATE
        - UPDATE
        - DELETE
    CommonGetCloudPortRequestAttributesV2:
      type: object
      description: Attributes common to all saved CloudPort Requests
      properties:
        cloud_region:
          type: string
          description: CSP region name, if the CSP defines geographic regions
          example: emea
        cloud_provider:
          type: string
          description: The short name of the CSP
          example: GOOGLE
        csp_key:
          type: string
          description: The unique identifier for this port as generated by the cloud service provider
          example: 8a2d98b9-844f-4d10-b3a4-0d93731f8983
      allOf:
        - $ref: '#/components/schemas/CommonGetPortRequestAttributesV2'
    RequestResponse:
      required:
        - id
        - resource
        - action
        - portal_user_id
        - requested_at
        - name
        - bandwidth
        - status
        - is_cloud
      properties:
        action:
          type: string
          description: 'Type of request created by the user, allowed values are ''CREATE'',''UPDATE'',''DELETE'''
          example: "CREATE"
        aws_account_no:
          type: string
          description: Amazon webservices account number
          example: "123456789011"
        aws_region:
          type: string
          description: Amazon webservices supported geographic region
          example: "ap-southeast-1"
        bandwidth:
          type: integer
          format: int32
          description: product bandwidth associated with the request in MBPS
          example: "400"
        cloud_provider:
          type: string
          description: The name of the cloud provider if this is a cloud port request
          example: "AWS_HOSTED"
        commitment_expiry_date:
          type: string
          format: date-time
          description: Commitment expiry date with timestamp of the resource
          example: "2021-05-24T13:44:26+0000"
        commitment_period:
          type: integer
          format: int32
          description: commitment period in months
          example: 12
        component_connections:
          type: array
          description: Holds list of ComponentConnection
          items:
            $ref: '#/components/schemas/ComponentConnectionResponse'
        connection_id:
          type: string
          description: Connection identifier of the request
          example: "80059367"
        connector:
          type: string
          description: 'E.g. LC, RJ45'
          example: "RJ45"
        coterminus_option:
          type: boolean
          description: 'When changing a connection in some chargeable way, this option defines whether the new contract should run only until the end date of the current contract (true), or whether you want to “reset” the contract period to start from the date of the change'
          example: true
        cpd:
          type: string
          format: date-time
          description: Colt promised date with timestamp of the resource
          example: "2021-05-24T13:44:26+0000"
        customer_pp_cabinet:
          type: string
          description: Cabinet detail where the customer device placed
          example: "upper"
        customer_pp_device:
          type: string
          description: Customer device detail
          example: "cables"
        customer_pp_floor:
          type: string
          description: Floor number where the customer device placed
          example: "10"
        customer_pp_port:
          type: string
          description: port name 
          example: "new port"
        customer_pp_room:
          type: string
          description: room name or number where the customer device placed
          example: "comms room"
        decommissioning_charge:
          type: number
          format: float
          description: decommissioning charge for the request
          example: 289.00
        decommissioning_currency:
          type: string
          description: decommissioning currency for the request
          example: "GBP"
        description:
          type: string
          description: short information of the request action
          example: "New port create request"
        id:
          type: integer
          format: int32
          description: request identifier
          example: "503526"
        installation_charge:
          type: number
          format: float
          description: installation charge for the request
          example: 289.00
        installation_currency:
          type: string
          description: installation currency for the request
          example: "GBP"
        is_cloud:
          type: boolean
          description: flag to specify if the request is of cloud or not
          example: false
        last_updated:
          type: string
          format: date-time
          description: last updated timestamp for the request
          example: "2021-05-24T13:44:26+0000"
        location:
          type: string
          description: location name where the device is placed
          example: "Demo site 123"
        location_building_name:
          type: string
          description: Building name of the site located
          example: "Cyxtera Slough LHR1A"
        location_city:
          type: string
          description: City name of the site located
          example: "London"
        modification_charge:
          type: number
          format: float
          description: modification charge for the request
          example: 20.09
        modification_currency:
          type: string
          description: modification currency for request
          example: "GBP"
        name:
          type: string
          description: name of the request
          example: "Ethernet port at data centre"
        old_rental_charge:
          type: number
          format: float
          description: old rental charge of the resource
          example: 0.0
        old_rental_currency:
          type: string
          description: old rental currency of the resource
          example: "GBP"
        penalty_charge:
          type: number
          format: float
          description: penalty charge for deleting the resource before the commitment expiry
          example: 38.90
        penalty_currency:
          type: string
          description: currency used while applying penalty charge
          example: "GBP"
        port_id:
          type: string
          description: Port identifier of the request
          example: "80059847"
        port_request_id:
          type: string
          description: Port Request identifier. This will be populated for siteport requests creation.
          example: "503545"
        previous_bandwidth:
          type: integer
          format: int32
          description: earlier bandwidth used by the resource in MBPS
          example: 300
        product_name:
          type: string
          description: 'name of the associated product, example ''1000BASE-TX'''
          example: "1000BASE-TX'"
        rental_charge:
          type: number
          format: float
          description: rental charge for using the resource
          example: 0.21
        rental_currency:
          type: string
          description: rental currency used while charging the resource
          example: "GBP"
        rental_frequency:
          type: string
          description: 'frequency of rental charge for the resource. Allowed values are ''HOURLY'' for connection,''MONTHLY'' for port & crossconnect'
          example: "HOURLY"
        requested_at:
          type: string
          format: date-time
          description: creation timestamp for the request
          example: "2021-06-15T13:30:51+0000"
        requested_by:
          type: string
          description: Portal User name who rasied request
          example: "fname lName"
        requester_email:
          type: string
          description: Portal User email who rasied request
          example: "pb@colt.com"
        resource:
          type: string
          description: 'this specifies type of request. Allowed values are ''PORT'',''CONNECTION'',''SITEPORT'',''CROSSCONNECT'''
          example: "PORT"
        portal_user_id:
          type: integer
          format: int32
          description: internal portal user identifier for the associated customer
          example: 4960357
        siteport:
          type: array
          description: Holds list of SitePortRequestDetails
          items:
            $ref: '#/components/schemas/SitePortRequestDetails'
        status:
          type: string
          description: 'Status of the request. Allowed values are ''INPROGRESS'',''COMPLETED'',''FAILED'''
        status_code:
          type: integer
          format: int32
          description: error status code defined by JBPM/Python
        site_type:
          type: string
          description: Type of site
    CreateRequestFailureResponse:
      required:
      - status_id
      properties:
        status_id:
          type: integer
          format: int32
          description: unique error code identifier
    PriceResponse:
      required:
      - id
      - installation_charge
      - installation_currency
      properties:
        id:
          type: integer
          format: int32
          description: Price identifier
          example: 951689
        service_type:
          type: string
          description: 'Type of the products, values can be ''ETHERNETCIRCUIT'',''ETHERNETPORT'',''CLOUDPORT'',''CLOUDCIRCUIT'',''SITEPORT'',''CROSSCONNECT'',"IPACCESS_CIRCUIT" . SITEPORT is used when site is newly added'
          example: "ETHERNETPORT"
        product_name:
          type: string
          description: Name of the product
          example: "1000BASE-T"
        description:
          type: string
          description: Description of the product
          example: "1000BASE-T - 1 Gbps Electrical RJ45"
        rental_charge:
          type: number
          format: float
          description: Rental charge for the respective product
          example: 0.21
        rental_unit:
          type: string
          description: 'Rental unit specifies how often rental charged, ex, ''HOURLY'' for connection ''MONTHLY'' for port and cross_connect'
          example: "HOURLY"
        rental_currency:
          type: string
          description: 'Name of currency used for rental charge. Valid currencies are ''GBP'', ''EUR'', ''CHF'', ''USD'', ''JPY'', etc.,'
          example: "GBP"
        installation_charge:
          type: number
          format: float
          description: Installation charge for the respective product
          example: 0
        installation_currency:
          type: string
          description: 'Name of currency used for installation charge. Valid currencies are ''GBP'', ''EUR'', ''CHF'', ''USD'', ''JPY'', etc.,'
          example: "GBP"
        modification_charge:
          type: number
          format: float
          description: Modification charge for the respective product
          example: 0
        modification_currency:
          type: string
          description: 'Name of currency used for modification charge. Valid currencies are ''GBP'', ''EUR'', ''CHF'', ''USD'', ''JPY'', etc.,'
          example: "GBP"
        decommissioning_charge:
          type: number
          format: float
          description: Charge for decommissioning the respective service
          example: 0
        decommissioning_currency:
          type: string
          description: 'Name of currency used for decommissioning charge. Valid currencies are ''GBP'', ''EUR'', ''CHF'', ''USD'', ''JPY'', etc.,'
          example: "GBP"
        comment:
          type: string
          description: Note on the product
          example: "1000mb"
        commitment_period:
          type: integer
          format: int32
          description: Commitment period in months
          example: 12
        boost_multiplier:
          type: integer
          format: int32
          example: 2
        product_connector:
          type: string
          description: Type of connector used in the port
          example: "RJ45"
        bandwidth:
          type: integer
          format: int32
          description: Product bandwidth in MBPS
          example: 1000
        siteType1:
          type: string
          description: A end Port site type of the product
          example: "DCNET-NL-AMS"
        siteType2:
          type: string
          description: B end Port site type of the product
          example: "KDC-UK-LON"
        coterminus_option:
          type: boolean
          description: 'When change in existing commitment period of connection, flag will be ''false'', else ''true'''
          example: true
        availability:
          type: string
          description: Helps to filter prices. Possible value is 'IMMEDIATE' or 'FUTURE'.
          example: "IMMEDIATE"
        monthly_rental_charge:
          type: number
          format: float
          description: Rental charge for cross connect. 
          example: 0.35
        monthly_rental_currency:
          type: string
          description: 'Name of currency used for cross connect rental charge. Valid currencies are ''GBP'', ''EUR'', ''CHF'', ''USD'', ''JPY'', etc.,'
          example: "GBP"
        bandwidth_boost_prices:
          type: array
          items:
            $ref: '#/components/schemas/Bandwidthboostprices'
    SiteResponse:
      required:
        - id
        - type
        - name
        - address
        - city
        - country
        - is_exist_in_address_book
        - building_id
      properties:
        id:
          type: string
          description: location identifier
          example: "string"
        type:
          type: string
          description: type of the site
          example: "string"
        name:
          type: string
          description: name of the site
          example: "string"
        address:
          type: string
          description: address of the site
          example: "97 Schopenhauerstrasse, 80809. Munich, Germany."
        site_room_name:
          type: string
          description: Room name of site located
          example: "Common connect"
        site_floor:
          type: string
          description: Floor number of site located
          example: "7"
        site_type:
          type: string
          description: Colt's site tye description
          example: "KDC, DCNET, LANLINK, DCA-MSA, DCA-AWSH"
        location_street_name:
          type: string
          description: Street name of site located
          example: "Schopenhauerstrasse"
        location_building_name:
          type: string
          description: Building name of site located
          example: "(Id00441)"
        location_premises_number:
          type: string
          description: Premises number of site located
          example: "10"
        city:
          type: string
          description: city name of the site located
          example: "Munich"
        country:
          type: string
          description: country name of the site located
          example: "Germany"
        postal_zip_code:
          type: string
          description: post code of the site located
          example: "80809"
        is_exist_in_address_book:
          type: boolean
          description: tells if the location already exist in customer address book or not
          example: false
        building_id:
          type: string
          description: colt's Building identifier
          example: "DEMUN-0000008175"
        customer_site_name:
          type: string
          description: Customer's custom site name when added in address book
          example: "BMW site"
    BillChargesResponse:
      type: object
      properties:
        currency:
          type: string
          description: the currency used for billing
          example: GBP
        ports:
          type: array
          description: Holds list of port charges
          items:
            $ref: '#/components/schemas/ServiceInstance'
        connections:
          type: array
          description: Holds list of connection charges
          items:
            $ref: '#/components/schemas/ServiceInstance'
        siteports:
          type: array
          description: Holds list of siteport charges
          items:
            $ref: '#/components/schemas/ServiceInstance'
    
    SessionRequestV2:
      required:
        - "password"
        - "username"
      type: "object"
      properties:
        username:
          maxLength: 255
          minLength: 3
          type: "string"
          example: "demouser1@colt.net"
        password:
          maxLength: 255
          minLength: 6
          type: "string"
          example: "WgkB4C3Lr2"
    SessionResponseV2:
      required:
        - "token"
      type: "object"
      properties:
        token:
          type: "string"
          example: "A-624b4368343d-32684157343d-f4ef0a64-5529-4a8b-ab84-0d9adbece452"
    
    Country:
      type: array
      items:
        $ref: '#/components/schemas/Countries' 
    Countries:
      properties:
        country_name:
          type: string
          example: CANADA
        country_code:
          type: string
          example: CA
        language_name: 
          type: string
          example: ENGLISH
        language_code: 
          type: string
          example: en
        terms_and_condition_id:
          type: string
          example: null

    CloudSitesResponse:
      type: object
      properties:
        cloud_provider:
          type: string
          description: Cloud Provider name
          example: GOOGLE_CLOUD
        regions:
          type: array
          description: Holds list of cloud regions and its interconnects
          items:
            $ref: '#/components/schemas/CloudSitesRegionResponse'
    CloudSitesRegionResponse:
      type: object
      properties:
        region_id:
          type: string
          description: Region identifier. 
          example: eu-central-1
        region_name:
          type: string
          description: Region name of Cloud provider. 
          example: 'EU (Frankfurt)'
        interconnects:
          type: array
          description: Holds list of Interconnects
          items:
            $ref: '#/components/schemas/InterconnectsResponse'
    InterconnectsResponse:
      properties:
        name:
          type: string
          description: Name
          example: 'Equinix AM5'
        location_id:
          type: string
          description: Location Identifier
          example: PAR00044/003
        building_name:
          type: string
          description: Building name
          example: Equinix AM5
        building_id:
          type: string
          description: Building Identifier
          example: NLAMS-0000001828
        colt_region:
          type: string
          description: Customer region
          example: EU
        site_type:
          type: string
          description: Novitas site type
          example: DCA-MSA-NL-AMS
        city:
          type: string
          description: City name
          example: Amsterdam
        country:
          type: string
          description: Country name code
          example: NL
    ServiceInstance:
      type: object
      properties:
        id:
          type: string
          description: id of the connection or port
          example: "80058854"
        name:
          type: string
          description: name of the connection or port
          example : "Inhouseport"
        type:
          type: string
          description: type of port e.g. LANPORT
          example: "LANPORT"
        cloud:
          type: boolean
          description: if the given port is cloud or not
          example: false
        one_off_charges:
          type: array
          description: Holds list of one off charges
          items:
            $ref: '#/components/schemas/Charge'
        recurring_charges:
          type: array
          description: Holds list of recurring charges
          items:
            $ref: '#/components/schemas/Charge'
        boost_charges:
          type: array
          description: Holds list of boost charges
          items:
            $ref: '#/components/schemas/BoostCharge'
    BoostCharge:
      properties:
        amount:
          type: number
          format: float
          description: The amount of the charge
          example: 3799
        date:
          type: string
          format: date-time
          description: 'Timestamp of the charge, used for only one off charges'
          example: "2021-05-06T15:59:31+0000"
        type:
          type: string
          description: 'The type of the charge INSTALLATION or RENTAL, flex or commit'
          example: "BOOST"
    Bandwidthboost:
      properties:
        rental_boost_charge:
          type: number
          format: float
          description: Rental charge for boost
          example: 0.21
        bandwidth_mb:
          type: string
          description: bandwidth on this port in Mbps
          example: "1000"
    Bandwidthboostprices:
      properties:
        incremental_rental_charge:
          type: number
          format: float
          description: Rental charge for boost
          example: 0.21
        bw:
          type: string
          description: bandwidth on this port in Mbps
          example: "1000"
        
    Charge:
      properties:
        amount:
          type: number
          format: float
          description: The amount of the charge
          example: 3799
        date:
          type: string
          format: date-time
          description: 'Timestamp of the charge, used for only one off charges'
          example: "2021-05-06T15:59:31+0000"
        type:
          type: string
          description: 'The type of the charge INSTALLATION or RENTAL, flex or commit'
          example: "INSTALATION"
        granularity:
          type: string
          description: Granularity of the charge HOURLY or Daily
          example: "Hourly"
        from:
          type: string
          format: date-time
          description: 'Timestamp of the from date, used for recurring charges'
          example: "2021-05-10T09:00:00+0000"
        to:
          type: string
          format: date-time
          example: "2021-05-31T23:59:59+0000"
          description: 'Timestamp of the to date, used for recurring charges'
    CommonBuildingAttributesV2:
      properties:
        id:
          type: string
          description: A Colt building identifier
          example: LON00001
        building_type:
          type: string
          description: A broad price-affecting categorisation of the building
          example:  Datacentre, Standard Building
        city:
          type: string
          description: The name of the city
          example: London
        country:
          type: string
          description: The name of the country
          example: United Kingdom
        geolocation:
          $ref: '#/components/schemas/GeolocationV2'
        name:
          type: string
          description: The name of the building
          example: Colt House
        postal_zip_code:
          type: string
          description: The country-specific postal or zip postal_zip_code
          example: WC1A 1AA
        premises_number:
          type: string
          description: The premises number 
          example: 221B
        state:
          type: string
          description: The state or province to which the city belongs
          example: Catalonia
        street_name:
          type: string
          description: name of the rroad within the city
          example: Baker Street
    GeolocationV2:
      type: object
      description: A geographic point
      properties:
        longitude:
          type: number
          format: float
          description: negative numbers signify east of meridian
          minimum: -180.0
          maximum: 180.0
          example: -111.344
        latitude:
          type: number
          format: float
          description: negative numbers signify south of the equator
          minimum: 0
          maximum: 90.0
          example: -50.123
    AvailableSiteResponseV2:
      type: object
      properties:
        building_id:
          type: string
          description: Building identifier
          example: "Colt house"
        building_name:
          type: string
          description: Building name
          example: Colt house on eastern street
        street_number:
          type: string
          example: 2
          description: Street number
        street:
          type: string
          description: Street name of where the building located
          example: Eastern street
        postcode:
          type: string
          description: Postal code of where the building located
          example: SL6
        city:
          type: string
          description: City name of where the building located
          example: London
        country:
          type: string
          description: Country name of where the building located
          example: UK
        new_site_allowed:
          type: boolean
          description: Boolean flag whether new site creation allowed in the building or not
          example: true
        premises_number:
          type: string
          description: Premise number of where the building located
          example: 11
        cross_connect_allowed:
          type: boolean
          description: Flag tells about cross connect allowed or not in this building
          example: true
        sites:
          type: array
          description: Holds list of sites
          items:
            $ref: '#/components/schemas/AvailableSiteResponse'
    
    
    SitePortRequestDetails:
      required:
        - id
        - service_id
        - action
        - address
        - customer_name
        - last_updated
        - requested_at
        - latitude
        - longitude
        - location_id
        - installation_charge
        - installation_currency
        - cpd
        - postal_zip_code
        - site_access_out_of_hours
        - order_id
        - order_status
        - order_status_updated
        - notice_required
        - status
        - status_code
        - status_code_description
        - ports
        - contacts
      properties:
        action:
          type: string
          description: 'Action of the request. ex, CREATE, It only supports CREATE and no other action'
          example: "CREATE"
        id:
          type: integer
          format: int32
          description: SitePort request identifier
          example: 2616
        location:
          type: string
          description: Location name
          example: 
        address:
          type: string
          description: Location address of the siteport belongs
          example: "240, Great Eastern Street, EC2A 3EH, London, United Kingdom"
        commitment_period:
          type: integer
          format: int32
          description: Minimum period commitment to use the port in months
          example: 12
        last_updated:
          type: string
          format: date-time
          description: Date/time of the siteport request updated
          example: "2018-03-06T12:00:29+0000"
        requested_at:
          type: string
          format: date-time
          description: Date/time of the siteport request raised
          example: "2018-03-06T12:00:29+0000"
        latitude:
          type: number
          format: float
          description: latitude of the site located
          example: 51.51102
        location_building_name:
          type: string
          description: Building name of the site located
          example: "Global Switch London North"
        location_premises_number:
          type: string
          description: Premise name of the site located
          example: "240"
        location_city:
          type: string
          description: City name of the site located
          example: "London"
        location_country:
          type: string
          description: Country name of the site located
          example: "united Kingdom"
        location_id:
          type: string
          description: Clot's location id of the site 
          example: "LOND20012%7C%7C288"
        location_street_name:
          type: string
          description: Street name of the site located
          example: "Great Eastern Street"
        longitude:
          type: number
          format: float
          description: longitude of the site located
          example: -0.0045044
        location_name:
          type: string
          description: Location name of the siteport belongs
          example: "Equinix LD1 - G - COLO ROOM-240asdasd"
        installation_charge:
          type: number
          format: float
          description: Installation charge for the siteport.
          example: 0.0
        installation_currency:
          type: string
          description: 'Installation currency for the siteport. Valid currencies are GBP, EUR, CHF, USD, JPY'
          example: "GBP"
        portal_user_id:
          type: integer
          format: int32
          description: Requester user id
          example: "20167"
        service_id:
          type: string
          description: Novitas umbrella service identifier
          example: "80000001"
        crd:
          type: string
          format: date-time
          description: Customer required date for the siteport request to be completed. There is no logic implemented for this yet.
          example: "2018-03-06T12:00:29+0000"
        cpd:
          type: string
          format: date-time
          description: Colt promised date for the siteport request to be completed. This is retrieved from external system.
          example: "2018-03-06T12:00:29+0000"
        postal_zip_code:
          type: string
          description: Postal zip code of the site located
          example: "EC2A 3EH"
        site_floor:
          type: string
          description: Floor number of the device placed in the site
          example: "22"
        site_room_name:
          type: string
          description: Room name of the device placed in the site
          example: "COLO ROOM"
        site_access_out_of_hours:
          type: boolean
          description: Determine whether support is available out of business hours
          example: false
        status:
          type: string
          description: Status of the siteport request.
          example: "INPROGRESS"
        status_code:
          type: integer
          format: int32
          description: Status code shows success or failure of the siteport request
          example: ""
        status_code_description:
          type: string
          description: Description of the status code
          example: ""
        order_id:
          type: string
          description: Order identifier for the siteport request.
          example: "1519761162"
        order_status:
          type: string
          description: Order status for the siteport request.
          example: "COMPLETED"
        order_status_updated:
          type: string
          format: date-time
          description: Date/time of the siteport request updated
          example: "2018-02-27T19:54:42+0000"
        contacts:
          $ref: '#/components/schemas/SitePortContact'
        ports:
          type: array
          description: Holds set of SitePortRequestPortDetails
          items:
            $ref: '#/components/schemas/SitePortRequestPortDetails'
        notice_required:
          type: string
          description: Notice days that is required by the customer for private sites 
          example: "1"
        capacity_validated:
          type: boolean
          description: 'Returns ''true'' when capacity validated, else ''false'''
          example: false
        order_tracking_url:
          type: string
          description: URL to track the site port order
          example: "https://dcp.colt.net/omporders/getFullOrderDetails.html?eOrderNo=1519761162"
        cpd_first_set:
          type: string
          format: date-time
          description: Date/time of the when colt promised was first set
          example: "2018-02-27T19:54:42+0000"
        cpd_last_updated:
          type: string
          format: date-time
          description: Date/time of the when colt promised was last updated
          example: "2018-02-27T19:54:42+0000"
    UpdateLegalRequirementsRequestV2:
      required:
        - "id"
        - "accepted"
      type: "object"
      properties:
        id:
          type: "integer"
          example: 49652
        accepted:
          type: "boolean"
          example: true
    SitePortRequestPortDetails:
      required:
        - id
        - port_name
        - request_id
        - bandwidth
        - connector
        - technology
        - installation_charge
      properties:
        id:
          type: integer
          format: int32
          description: Port identifier
          example: 21506
        port_name:
          type: string
          description: Name of the port
          example: "Port_United-Kingdom_London_20180227-1950NONAo"
        request_id:
          type: integer
          format: int32
          description: Request identifier for the port
          example: 2186
        bandwidth:
          type: string
          description: bandwidth on this port in Mbps
          example: "1000"
        connector:
          type: string
          description: Connector used for the port
          example: "SC"
        technology:
          type: string
          description: Name of the product used in the port
          example: "1000BASE-SX"
        installation_charge:
          type: number
          format: float
          description: Installation charge for the port
          example: 558.09
    NearNetPriceResponse:
      type: object
      properties:
        nearnet_price_id:
          type: integer
          format: int32
          description: Nearnet price identifier
          example: "801675"
        reachable:
          type: boolean
          description: Boolean flag describes if site reachable or not
          example: true
        installation_currency:
          type: string
          description: 'Installation currency for the nearnet price. Valid currencies are GBP, EUR, CHF, USD, JPY'
          example: "GBP"
        installation_charge:
          type: number
          format: float
          description: Installation charge for the port.
          example: "289.89"
    AvailableSiteResponse:
      type: object
      properties:
        site_id:
          type: string
          description: Site identifier
          example: UKLON-0000019188
        site_name:
          type: string
          description: Name of the site
          example: Demo site #13434
        site_floor:
          type: string
          description: Floor number of site located
          example: Basement
        site_room:
          type: string
          description: Room name of site located
          example: comms
        shared_area:
          type: string
          description: Flag to specify if the site is in shared area
          example: true
        site_visible:
          type: string
          description: Flag for site visibility in UI
          example: true
        premises_number:
          type: string
          description: Premises number of site located
          example: 20
        capacity_available:
          type: array
          description: Holds list of available products
          items:
            $ref: '#/components/schemas/ProductResponse'
    ProductResponse:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: product identifier
          example: 301014
        name:
          type: string
          description: 'Name of the product, sample value is "1000BASE-TX"'
          example: 1000BASE-LX
        description:
          type: string
          description: 'Description of the product, example value is "Twisted pair electrical 1Gbps ethernet port"'
          example: 1000BaseLX SC 1G Port
        service_type:
          type: string
          description: 'Service type of the product, valid value is ''ETHERNETPORT'' or ''ETHERNETCIRCUIT'''
          example: ETHERNETPORT
        bandwidth:
          type: integer
          format: int32
          description: Product bandwidth
          example: 1000
        connector:
          type: string
          description: 'Connector type for the product, example values are RJ45, LC, etc'
          example: SC
        expiration_period:
          type: integer
          format: int32
          description: Expiration period in days
          example: null
        ports_available:
          type: boolean
          description: Flag to say if particular port product available or not
          example: true
        siteport_request_id:
          type: string
          description: Existing Siteport request id
          example: null
        siteport_orderable:
          type: boolean
          description: Flag to say if new capacity allowed in this site or not
          example: true
    ColtLOAResponse:
      title: ColtLOAResponse
      description: "details on the Letter of authority to promit the site work"
      type: object
      properties:
        address:
          type: string
          description: "address of the site"
        connector:
          type: string
          description: "connector used at the site"
          example: "RJ45"
        expires_on:
          type: string
          description: "LOA expiry date"
        floor:
          type: string
          description: "floor on which connectivity will be done"
        issued_on:
          type: string
          description: "date of LOA issued"
        issued_to:
          type: string
          description: "LOA issued to"
        loa_id:
          type: integer
          format: int32
          description: "Colt's LOA identifier"
        port_id:
          type: string
          description: "Colt port identifier"
        presentation_label:
          type: string
        requested_by:
          type: string
          description: "who has requested the LOA"
        room:
          type: string
        technology:
          type: string

 
    CommonConnectionInfo:
      title: CommonConnectionInfo
      type: object
      properties:
        bandwidth:
          type: integer
          format: int32
          description: Total bandwidth
          example: 1000
        base_bandwidth:
          type: integer
          format: int32
          description: existing bandwidth in mbps
          example: 20
        base_rental:
          type: number
          format: float
          description: existing rental charge
          example: 12.90
        commitment_expiry_date:
          type: string
          description: Expiry date of commitment
          example: "2022-05-10T00:00:00+0000"
        commitment_period:
          type: integer
          format: int32
          description: Commitment period in months
          example: 12
        bandwidth_boost:
          type: array
          items:
            $ref: '#/components/schemas/Bandwidthboost'
        component_connections:
          type: array
          items:
            $ref: '#/components/schemas/ConnectionPortPair'
        connection_id:
          type: string
          description: Connection identifier
          example: 83010
        connection_type:
          type: string
          description: type of the connection. Possible value is 'DCNCONNECTION' or 'DCACONNECTION'
          example: "DCNCONNECTION"
        created_date:
          type: string
          description: Creation date of commitment
          example: "2022-05-10T00:00:00+0000"
        customer_name:
          type: string
          description: name of the customer
          example: Colt
        decommissioned_on:
          type: string
          description: Connection decomissioning date 
          example: "2022-05-10T00:00:00+0000"
        event_exist:
          type: boolean
          description: Says if future scheduled events exists for connection or not
          example: false
        is_cloud_connection:
          type: boolean
          description: If it is a cloud connection
          example: false
        last_updated:
          type: string
          description: Date of last update
          example: "2022-05-10T00:00:00+0000"
        name:
          type: string
          description: name of the connection
          example: Eht connection 100 mb
        ocn:
          type: string
          description:  Customer number
          example: "80024932"
        penalty_charge:
          type: number
          format: float
          description: Charge of penalty
          example: 20.90
        refunds:
          type: array
          items:
            $ref: '#/components/schemas/RefundResponse'
        rental_charge:
          type: number
          format: float
          description: rental charge
          example: 12.90
        rental_currency:
          type: string
          example: GBP
        rental_unit:
          type: string
          description: How the charges are measured
          example: HOURLY or MONthLY
        resource_id_1:
          type: string
          description: Identifier of resource
          example: "Dummy/circuitid"
        resource_id_2:
          type: string
          description: Identifier of resource
        service_id:
          type: string
          description: Identifier of service
          example: 832010
        sla_id:
          type: string
          description: service level agreement identifier
          example: "SLA_02"
        status:
          type: string
          enum:
          - ACTIVE
          - CANCELLED
          - ERRORED
          - COMPLETED
    CreateConnectionRequest:
      type: object
      required:
      - price_id
      - connection_name
      - component_connections
      properties:
        price_id:
          type: integer
          format: int32
          description: Price identifier corresponding to the chosen bandwidth & commitment
          example: 80059249
        connection_name:
          type: string
          description: User defined name for the new connection
          example: GooglecloudAMtoLn
        component_connections:
          type: array
          description: Holds list of ComponentConnection
          items:
            $ref: '#/components/schemas/ComponentConnectionCreateRequest'
    ComponentConnectionCreateRequest:
      type: object
      required:
        - a_end_vlan_mapping
        - b_end_vlan_mapping
        - from_port_id
        - to_port_id
      properties:
        a_end_vlan_ids:
          type: array
          description: Holds list of VLAN id ranges of source port. Mandatory when creating/modifying vlan details
          items:
            $ref: '#/components/schemas/VlanIdRangeRequest'
        a_end_vlan_mapping:
          type: string
          description: 'VLAN mapping of source port. Valid values are ''F'', ''FM'', ''X'', ''P''. Mandatory when creating vlan details'
          example: "P"
        a_end_vlan_type:
          type: string
          description: VLAN type of source port. Valid type is 'C' or 'S'. Mandatory when creating vlan details
          example: "S"
        b_end_vlan_ids:
          type: array
          description: Holds list of VLAN id ranges of destination port. Mandatory when creating vlan details
          items:
            $ref: '#/components/schemas/VlanIdRangeRequest'
        b_end_vlan_mapping:
          type: string
          description: 'VLAN mapping of destination port. Valid values are ''F'', ''FM'', ''X'', ''P''. Mandatory when creating vlan details'
          example: "P"
        b_end_vlan_type:
          type: string
          description: VLAN type of destination port. Valid type is 'C' or 'S'. Mandatory when creating vlan details
          example: "C"
        from_port_id:
          type: string
          description: Port identifier of source of the connection
          example: 80059214
        to_port_id:
          type: string
          description: Port identifier of destination of the connection
          example: 80059147
        cloud_provider_from_port:
          type: string
          description: 'Cloud provider name of from port. Valid value is ''AWS_HOSTED'',''AWS_DEDICATED'' or ''AZURE_EXPRESS''. Mandatory only for cloud connection'
          example: AWS_HOSTED else null
    
    CommonUpdateConnectionRequest:
      type: object
      properties:
        base_bandwidth:
          type: integer
          format: int32
          example: 20
        boost_bandwidth_mbps:
          type: integer
          format: int32
          example: null
        base_rental:
          type: integer
          format: int32
          example: 58
        bcn:
          type: string
          description: Customer identifier
          example: 80024932
        component_connections:
          type: array
          items:
            $ref: '#/components/schemas/ConnectionPortPair'
            required: false
          description: This parameter is needed when VLAN configuration changes are requested
        coterminus_option:
          type: boolean
          description: ': When changing a connection in some chargeable way, this option defines whether the new contract should run only until the end date of the current contract (true), or whether you want to “reset” the contract period to start from the date of the change. Mandatory when modifying bandwidth or commitment'
          example: false
        customer_currency:
          type: string
          description: currency
          example: GBP
        customer_name:
          type: string
          example: Colt Technology Services
        customer_pricing_model:
          type: string
          example: FIXED
        customer_region:
          type: string
        customer_rental_unit:
          type: string
          example: HOURLY
        discount_percentage:
          type: number
          format: float
          example: 0
        is_cloud_connection:
          type: boolean
          example: true
        name:
          type: string
          description: name of the connection
          example: "cloudconnectionAWS"
        ocn:
          type: string
          description: oracle customer id
          example: 80024932
        portal_user_id:
          type: integer
          format: int32
          description: loggedin user details
          example : pankaj.bodade@colt.net
        price_id:
          type: integer
          format: int32
          description: price identifier corresponding to the chosen price
          example : 10138094
        pricing_tier:
          type: string
        
    
    ConnectionPortPair:
      title: ConnectionPortPair
      type: object
      properties:
        a_end_vlan_ids:
          type: array
          description: Holds list of VLAN id ranges of source port. Mandatory when creating/modifying vlan details
          items:
            $ref: '#/components/schemas/VlanIdRangeRequest'
        a_end_vlan_mapping:
          type: string
          description: 'VLAN mapping of source port. Valid values are ''F'', ''X'', ''P''. Mandatory when creating/modifying vlan details'
          example: "X"
        a_end_vlan_type:
          type: string
          description: VLAN type of source port. Valid type is 'C' or 'S'. C- Customer VLAN, S- Supplier VLAN.Mandatory when modifying vlan details
          example: "C"
        b_end_vlan_ids:
          type: array
          description: Holds list of VLAN id ranges of desitnation port. Mandatory when creating/modifying vlan details
          items:
            $ref: '#/components/schemas/VlanIdRangeRequest'
        b_end_vlan_mapping:
          type: string
          description: 'VLAN mapping of source port. Valid values are ''F'', ''FM'', ''X'', ''P''. Mandatory when creating/modifying vlan details'
          example: "P"
        b_end_vlan_type:
          type: string
          description: VLAN type of source port. Valid type is 'C' or 'S'. Mandatory when modifying vlan details
          example: "C"
        cloud_provider_from_port:
          type: string
          description: 'cloud provide name'
          example: AZURE_EXPRESS'
          
        cloud_provider_to_port:
          type: string
          description: 'Provide name at B end'
          example: null
        from_latlong:
          $ref: '#/components/schemas/LatLong'
        from_port_id:
          type: string
          description: Port identifier of source of the connection
          example: "80058870"
        from_port_name:
          type: string
          description: Port name of source of the connection
          example: "Japan colt center"
        from_port_site_type:
          type: string
          description: Sitetype of source port
        to_latlong:
          $ref: '#/components/schemas/LatLong'
        to_port_id:
          type: string
          description: Port identifier of destination of the connection
          example: "80059407"
        to_port_name:
          type: string
          description: Port name of destination of the connection
          example: "Inhouseport"
        to_port_site_type:
          type: string
          description: Site type for the B end
    
    CreateGooglePortRequest:
      title: CreateGooglePortRequest
      type: object
      properties:
        
        building_id:
          type: string
          description: "Colt's building identifier"
          example: "DEFRA-0000019041"
        cloud_provider:
          type: string
          description: "cloud providers name"
          example: "GOOGLE_CLOUD"
        cloud_region:
          type: string
          description: "colt defined google cloud regsion"
          example: "europe-west3/2"
        csp_key:
          type: string
          description: "Service provider key"
          example: "d9b0f85a-4598-4a34-9f95-36d06b12b0f2/europe-west3/2"
        
        port_name:
          type: string
          description: "unique name given to the port"
          example: "googleport"
        
        price_id:
          type: integer
          format: int32
          example: "953034"
        
    CreateIbmPortRequest:
      title: CreateIbmPortRequest
      type: object
      properties:
        building_id:
          type: string
          description: Colt identifier for building
          example: ""
        cloud_provider:
          type: string
          description: The cloud provider 
          example: IBM_CLOUD
        cloud_region:
          type: string
          description: The cloud region where the building is located
          example: ""
        csp_key:
          type: string
          description: The unique identifier for this port as generated by the cloud service provider
          example: b0f4e3f1-35c9-4916-bd4e-2d0d75233d2f
        port_name:
          type: string
          description: Name of the port
          example: Head Office IBM Port
        price_id:
          type: integer
          format: int32
          description: ID of the price associated with the port Request was created
          example: 953322
        
    CreateOraclePortRequest:
      title: CreateOraclePortRequest
      type: object
      properties:
        
        building_id:
          type: string
          description: Colt identifier for building
          example: UKSLO-0000101931
        cloud_provider:
          type: string
          description: The cloud provider -Oracle
          example: ORACLE_CLOUD
        cloud_region:
          type: string
          description: The cloud region where the building is located
          example: "uk-london-1"
        csp_key:
          type: string
          description: The unique identifier for this port as generated by the cloud service provider
          example: ocid1.virtualcircuit.oc1.uk-london-1.aaaaaxedhokuuyvzu4ehyndlkmg353aifjbcafdapsl3dnrk6xgjrjg6k53ha
        port_name:
          type: string
          description: Name of the port
          example: Head Office Oracle Port
        price_id:
          type: integer
          format: int32
          description: ID of the price associated with the port Request was created
          example: 111222333
    CreatePortRequest:
      required:
        - price_id
        - port_name
      properties:
        price_id:
          type: integer
          format: int32
          description: price identifier corresponding to the chosen price
          example: 952592
        location_id:
          type: string
          description: location identifier corresponding to the chosen location
        port_name:
          type: string
          description: desired name of the new port
          example: "azure port"
        cloud_provider:
          type: string
          description: Cloud provider. Valid value is 'AZURE_EXPRESS' and 'AWS_HOSTED'
          example: "AZURE_EXPRESS"
        azure_service_key:
          type: string
          description: Azure service key (mandatory for DCA port creation)
          example: "31517e68-f4d9-4268-8539-37f2cf4e4bd3"
        aws_region:
          type: string
          description: Aws region as creatdefined by Colt
          example: "ap-northeast-1"
        aws_account_no:
          type: string
          description: Aws account number. for AWS port
          example: "123456789987"
        loa:
          type: string
          description: Letter Of Authority from AWS in the form of base64 encoded
        building_id:
          type: string
          description: Building identifier. For AWS port
          example: "JPKOT-0000112271"
    CreateRequestSuccessResponse:
      title: CreateRequestSuccessResponse
      type: object
      properties:
        response_url:
          type: string
          description: response url with the unique identifier at the end
    CreateSitePortRequest:
      required:
        - price_id
        - location_id
        - contacts
        - ports
        - notice_required
        - nearnet_price_id
      properties:
        price_id:
          type: integer
          format: int32
          description: price identifier corresponding to the siteport
          example: 954310
        location_id:
          type: string
          description: location identifier for the site
          example: "5007486"
        crd:
          type: string
          format: date-time
          description: Customer required date for the siteport
        ports:
          type: array
          description: Holds set of PortRequestDetails
          items:
            $ref: '#/components/schemas/CreateSitePortRequestPort'
        contacts:
          type: array
          description: Holds SitePortContact object
          items:
            $ref: '#/components/schemas/SitePortContact'
        notice_required:
          type: string
          description: Notice days that is required by the customer for private sites
          example: 15
        emergency_priority_flag:
          type: boolean
          description: "if the installation is on priority" 
          example: false
        nearnet_price_id:
          type: integer
          format: int32
          description: Nearnet price identifier corresponding to the chosen site
          example: 64537
    SitePortContact:
      required:
        - user
      properties:
        site:
          $ref: '#/components/schemas/SiteContact'
        technical:
          $ref: '#/components/schemas/TechnicalContact'
        user:
          $ref: '#/components/schemas/SiteContact'
    CreateSitePortRequestPort:
      required:
        - price_id
        - name
      properties:
        price_id:
          type: integer
          format: int32
          description: price identifier corresponding to the chosen Ethernet port
          example: 951689
        name:
          type: string
          description: User given port name
          example: "new site port"
    LegalRequirementsResponseV2:
      required:
        - "id"
        - "legal_requirements"
        - "accepted"
        - "accepted_dt"
      type: "object"
      properties:
        id:
          type: "integer"
          example: 49652
        legal_requirements:
          type: "string"
          example: "<h1>English&nbsp;terms &amp; conditions</h1>↵<p>Terms1</p>↵<p>Terms2</p>↵\
              <p>&nbsp;</p>"
        accepted:
          type: boolean
          example: true
        accepted_dt:
          type: "string"
          example: "2017-07-21T17:32:28Z"
          nullable: true
    
    CrossConnectRequest:
      title: CrossConnectRequest
      required:
      - customer_pp_port
      - price_id
      type: object
      properties:
        
        connector:
          type: string
          description: Connector type of the port on which cross coneect is ordered
          example: "SC"
        customer_pp_cabinet:
          type: string
          description: Cabinet detail where the customer device placed
          example: upper 
        customer_pp_device:
          type: string
          description: customer device details
          example: colt cross connect device
        customer_pp_floor:
          type: string
          description: Floor details
          example: 1
        customer_pp_port:
          type: string
          description: Cross connect port name
          example: crsconnect
        customer_pp_room:
          type: string
          description: Port room
          example: 
        loa:
          type: string
          description: Letter of authority 
          example: poa.pdf
        
        port_id:
          type: string
          description: service identifier of the port on which cross connect is ordered
          example: 80366
        port_request_id:
          type: integer
          format: int32
          description: Request identifier of the port on which cross connect is ordered
          example: 85466
        price_id:
          type: integer
          format: int32
          description: Price identifier for charging cross connect service
          example: 5000146
        
    CrossConnectResponse:
      title: CrossConnectResponse
      type: object
      properties:
        associated_port_id:
          type: string
          description: Port where the cross connection  is added
          example: "80059389"
        commitment_expiry_date:
          type: string
          format: date-time
          description: Cross connect commitment expiry date
          example: "2022-05-23T13:59:59+0000"
        commitment_period:
          type: integer
          format: int32
          description: Cross connect commitment period in months
          example: 12
        connector:
          type: string
          description: Connector type on the port where corss coneect is ordered
          example: "SC"
        cpd:
          type: string
          format: date-time
          description: Colt promised date with timestamp of the resource
          example: "2022-05-23T13:59:59+0000"
        crd:
          type: string
          format: date-time]
          description: Customer requested date with timestamp of the resource
          example: "2022-05-23T13:59:59+0000"
        created_date:
          type: string
          format: date-time
          description: Cross connect request created date
          example: "2022-05-23T13:59:59+0000"
        cross_connect_id:
          type: string
          description: Colt internal cross connect identifier
          example: 80059390
        customer_name:
          type: string
          description: Cross connect requested customer name
          example: "Colt tehcnologies limited"
        customer_pp_cabinet:
          type: string
          description: Cabinet detail where the customer device placed
          example: "uuper"
        customer_pp_device:
          type: string
          description: Customer device detail
          example: "topped cable"
        customer_pp_floor:
          type: string
          description: Floor  where the customer device placed
          example: "top"
        customer_pp_port:
          type: string
          description: connection name used in the customer device
        customer_pp_rack:
          type: string
          description: Rack number where the customer device placed
        customer_pp_room:
          type: string
          description: room name or number where the customer device placed
          example: "Cross connect in colt london"
        customer_pp_slot:
          type: string
          description: Slot number where the customer device placed
        decommissioned_on:
          type: string
          format: date-time
          description: Cross connect service decommissioned date
        decommissioning_charge:
          type: number
          format: float
          description: Charge implied when decommissioning Cross connect service
          example: 0
        decommissioning_currency:
          type: string
          description: Charge currency
          example: "GBP"
        order_id:
          type: string
          description: OHS Order number
        order_status:
          type: string
          description: OHS Order status
        order_status_updated:
          type: string
          format: date-time
          description: OHS Order updated date
        penalty_charge:
          type: number
          format: float
          description: Penalty charge implied when decommissioning Cross connect service
          example: 1834.1399
        penalty_currency:
          type: string
          description: Currency of the charge
          example: "GBP"
        rental_charge:
          type: number
          format: float
          description: Rental charge for Cross connect service
          example: 0.21
        rental_currency:
          type: string
          description: Currency of the rental charge
          example: "GBP"
        rental_unit:
          type: string
          description: Frequency of rental charge, e.g. MONTHLY,HOURLY
          example: "HOURLY"
        service_id:
          type: string
          description: Novitas unbrella service id. This is service id of the Port on which connection is requested.
          example: "80036616"
        status:
          type: string
          description: Status of the cross connect service
          example: "ACTIVE"
    CustomerLocationRequest:
      required:
      - site_id
      - customer_site_name
      type: object
      properties:
        site_id:
          type: string
          description: Customer Site Identifier
          example: "UKLON-site1234"
        customer_site_name:
          type: string
          description: Customer's custom location name
          example: "comms room"
   
    GoogleCloudPortResponse:
      title: GoogleCloudPortResponse
      type: object
      properties:
        address:
          type: string
          description: "address of the building where the port is installed"
          example: "NA Chai Wan Road, Hong Kong, 00000, Hong Kong"
        available_bandwidth:
          type: integer
          format: int32
          description: "remaining bandwidth in MBPS"
          example: 9700
        bandwidth:
          type: integer
          format: int32
          description: "total bandwidth supported by the port"
          example: 1000
        building_id:
          type: string
          description: "colt's identifier of the building id"
          example: "HKHON-0000112488"
        
        buldingName:
          type: string
          description: "name of the building"
          example: "HK state building"
        city:
          type: string
          description: "city in which the building is located"
          example: "Hong Kong"
        cloud_provider:
          type: string
          description: "name of the cloud provider"
          example: "GOOGLE_CLOUD"
        cloud_region:
          type: string
          description: "colt defined cloud regions"
          example: "asia-east1/1"
        commitment_expiry:
          type: string
          format: date-time
          description: "commitment expiration date"
          example: "2021-05-17T10:13:41+0000"
        country:
          type: string
          description: "country in which the building is located"
          example: "HongKong"
        csp_key:
          type: string
          description: "service provider key"
          example: "021f9a2f-4eaf-4753-b415-6163f474483f/asia-east1/1"
        currency:
          type: string
          description: "curreny in which charges are charged"
          example: "GBP"
        decommissioning_charge:
          type: number
          format: float
          description: "charges for decommissioning the port"
          example: 0
        id:
          type: string
          example: "80059216"
        installation_charge:
          type: number
          format: float
          description: "charges for installing the port"
          example: 0.0
        interconnect_attachment_name:
          type: string
          description: "name of the interconnect as per colt"
          example: "dxcon-abcd0001-80059911-colttechnologyservices"
        latitude:
          type: number
          format: float
          description: "lattitude of the location"
          example: 22.266098
        location:
          type: string
          description: "location of the site"
          example: null
        location_building_address:
          type: string
          example: null
        location_building_id:
          type: string
          example: "HKHON-0000112488"
        location_building_name:
          type: string
        location_building_type:
        
          type: string
          example: "Mega iAdvantag"
        location_city:
          type: string
          example: "Hong Kong"
        location_city_code:
          type: string
        location_country:
          type: string
          example: "Hong Kong"
        location_country_code:
          type: string
          example: "HK"
        location_id:
          type: string
          description: "locaiton identifier defined by Colt"
          example: "HKG0000112488/012"
        location_premises_number:
          type: string
          description: "number on the premise where connectivity is established"
          example: "110"
        location_state:
          type: string
        location_street_name:
          type: string
        longitude:
          type: number
          format: float
          description: "longitude og the place"
          example: 8.587307
        max_allowed_connections:
          type: integer
          format: int32
          description: "max number of connection allowed on the port"
          example: 1
        name:
          type: string
          description: "name of the port"
          example: "googleport112"
        nc_tech_service_id:
          type: string
          description: "technology id"
          example: "f68182fb-43b7-4f2a-afb3-4e290e41e48a"
        no_of_connections:
          type: integer
          description: "number of connection made on the port"
          format: int32
        no_of_connections_requested:
          type: integer
          format: int32
        novitas_site_type:
          type: string
          description: "site type defined by Colt"
          example: "DCA-GCP-DE-FRA"
        pairing_key:
          type: string
        penalty_charge:
          type: number
          format: float
          description: "charges on penalty"
        pm_site_type:
          type: string
          description: "post code of the location"
          example: "65933"
        port:
          type: string
        postal_zip_code:
          type: string
        premises_number:
          type: string
        presentation_label:
          type: string
        rental_charge:
          type: number
          format: float
          description: "charge value in GBP"
          example: 12.12
        rental_unit:
          type: string
          enum:
          - MONTHLY
          - HOURLY
        resource_id:
          type: string
        service_id:
          type: string
          description: "Colt's identifer for service"
          example: "80059911"
        site_floor:
          type: string
          description: "floor on whihc port is installed"
          example: "Ground"
        site_name:
          type: string
        site_room_name:
          type: string
          description: "name of the room in the stie where port is installed"
          example: "M4S10"
        site_street_name:
          type: string

        status:
          type: string
          description: "status of port"
          enum:
          - PENDING
          - ACTIVE
          - REVERSED
          - DECOMMISSIONING
          - DECOMMISSIONED
          - ABORTED
        used_bandwidth:
          type: integer
          format: int32
          description: "bandwith used by the connection at the port in MBPS"
          example: 300
        vlan:
          type: integer
          format: int32
          description: "virtual lan identifier"
          example: 1234
    
    CloudPortRequestResponse:
      title: CloudPortRequestResponse
      type: object
      properties:
        
        action:
          type: string
          description: action initiated by customer when making the request
          example: "CREATE"
        alternate_discount_tier:
          type: string
          description: discount tier other than defined
          example: null
        bandwidth:
          type: integer
          format: int32
          description: bandwidth requested in Mbps
          example: 1000
        building_id:
          type: string
          description: building identifier
          example: "HKHON-0000112488"
          
        cloud_provider:
          type: string
          example: "GOOGLE_CLOUD"
        cloud_region:
          type: string
          description: Region defined by the colt for a particilar cloud provider
          example: "asia-east/1"
        commitment_period:
          type: integer
          format: int32
          description: period of contract in month
          example: 12
        csp_key:
          type: string
          description: cloud service provider key needed to order cloud port. This is different for different cloud provider. Example is just for represntation
          example:  "f66f8de0-5a9e-458f-a94d-9266eaeeca63/asia-east1/1"
        currency:
          type: string
          description: currency in which the charges are to be paid
          example: "GBP"
        decommissioning_charge:
          type: number
          format: float
          description: charge for decommisioning the service
          example: 0.0
        description:
          type: string
          description: Detiail of the request
          example: "New Port Requested"
        id:
          type: integer
          format: int32
          description: request identifier
          example: 502246
        installation_charge:
          type: number
          format: float
          description: on off charge
          example: 0.0
        last_updated:
          type: string
          description: when was the last request created
          example:  "2021-05-07T06:06:22+0000"

        latitude:
          type: number
          format: float
          description: latitude value of the place
          example: 22.266098
        local_building_name:
          type: string
          description: name of the building locally
          example: "colt in hk"
        location_building_name:
          type: string
          description: name of the building
          example: "Mega iAdvantage"
        location_city:
          type: string
          example: "Hong Kong"
        location_country:
          type: string
          example: "Hong Kong"
        location_id:
          type: string
          description: location identifier defined by Colt
          example: "HKG0000112488/012"
        location_name:
          type: string
          description: name of the location
          example: "HK_00000_399 CHAI WAN ROAD"
        location_premises_number:
          type: string
          example: 23
        location_state:
          type: string
          example: "HK"
        location_street_name:
          type: string
          example: "399 Chai Wan Road, Chai Wan"
        longitude:
          type: number
          format: float
          description: "longitude of the place"
          example: 114.24651
        penalty_charge:
          type: number
          format: float
          description: penalty charges for breaking contract term 
          example: 100
        port_id:
          type: string
          description: colt identifier for ports
          example: "80058907"
        port_name:
          type: string
          description: name of the requested port
          example: "new google port"
        portal_user_id:
          type: integer
          format: int32
          example: 4960357
        postal_zip_code:
          type: string
          description: zip code of the area
          example: "0000"
        rental_charge:
          type: number
          format: float
          description: rental charge
          example: 0.0
        rental_unit:
          type: string
          description: frequency of rental charge
          example: "HOURLY"
        requested_at:
          type: string
          description: date and time of request
          example:  "2021-05-07T06:04:57+0000"
        requested_by:
          type: string
          description: name of the requested_port_vlan_id_range
          example: "fname lname"
        requester_email:
          type: string
          example: "fnam.lname@gmail.com"
        resource:
          type: string
          description: colt identifier for resource
          example: "GOOGLE_PORT"
        service_id:
          type: string
          example: "80036616"
        site_floor:
          type: string
          description: floor of the site
          example: "1"
        site_room_name:
          type: string
          description: room of the site
        site_type:
          type: string
          description: Colt identifier of site 
          example: "CARRIER HOTEL CEA - ONNET"
        status:
          type: string
          description: status of the request
          example: "COMPLETED"
    
    
    IpaccessRequest:
      title: IpaccessRequest
      type: object
      properties:
        action:
          type: string
        connection_id:
          type: string
        connection_name:
          type: string
        customer_pricing_model:
          type: string
        customer_rental_unit:
          type: string
        from_port_id:
          type: string
        ip_access_type:
          type: string
        ocn:
          type: string
        port_vlan_ids:
          type: array
          items:
            $ref: '#/components/schemas/VlanIdRangeRequest'
        port_vlan_mapping:
          type: string
        port_vlan_type:
          type: string
        portal_user_id:
          type: integer
          format: int32
        price_id:
          type: integer
          format: int32
        terms_and_conditions_id:
          type: integer
          format: int32
    LocationAddressBookResponse:
      type: object
      required:
        - id
        - name
        - address
        - city
        - country
        - number_of_ports
        - customer_site_name
        - siteport_next
        - siteport_last
        - private_site
        - can_order_capacity
        - building_id
      properties:
        id:
          type: string
          description: Customer site identifier
          example: "FRISS-0000005104"
        name:
          type: string
          description: Name of the customer site
          example: "Demo site #13136"
        address:
          type: string
          description: Address of the customer site located
          example: "Nov-13 Rue Rene Jacques, 92130. Paris, France."
        city:
          type: string
          description: City name of the customer site located
          example: "Paris"
        country:
          type: string
          description: Country name of the customer site located
          example: "France"
        number_of_ports:
          type: integer
          format: int32
          description: Number of ports used in this customer location
          example: 10
        customer_site_name:
          type: string
          description: Customer's custom Site name
          example: "Demo site #13136"
        siteport_next:
          type: string
          description: The next siteport request date which would be picked
          example: "2021-05-17T15:01:39+0000"
        siteport_last:
          type: string
          description: The most recent siteport request date
          example: "2021-05-17T15:01:39+0000"
        private_site:
          type: boolean
          description: Determine whether the site is private or not
          example: false
        can_order_capacity:
          type: string
          description: Determine whether there is an existing siteport request so that user can create another one if there isn't any pending siteport request
          example: true
        building_id:
          type: string
          description: Building Identifier
          example: "FRISS-0000005104"
        building_name:
          type: string
          description: Name of the building
          example:  "Vivaldi - Issy Les Mlx"
        validated:
          type: boolean
          description: Determine whether the site is valid or not
          example: true
        building_type:
          type: string
          description: Type of the building like 'Datacentre'
          example: "Datacentre"
        room:
          type: string
          description: Room name or number in the building
          example: "comms"
        floor:
          type: string
          description: Floor number in the building
          example: "top"
        latitude:
          type: number
          format: float
          description: Latitude of the site
          example: 48.879017
        longitude:
          type: number
          format: float
          description: Longitude of the site
          example: 2.337906
        local_building_name:
          type: string
          description: Name of the building in local language
          example: "Deom site"
        premises_number:
          type: string
          description: Premise number of the building
          example: "Nov -13"
        building_category:
          type: string
          description: Building category
          example: "Colt Location - Node"
    IpaccessRequestResponse:
      title: IpaccessRequestResponse
      type: object
      properties:
        action:
          type: string
          example: "CREATE"
        bandwidth:
          type: integer
          format: int32
          example: 10
        bandwidth_boost:
          type: integer
          format: int32
          example: null
        base_bandwidth:
          type: integer
          format: int32
          example: null
        base_rental:
          type: integer
          format: int32
          example: null
        bcn:
          type: string
          example: "80024932"
        commitment_period:
          type: integer
          format: int32
          example: 12
        connection_id:
          type: string
          example: "80060668"
        connection_name:
          type: string
          example: "IPConnection_80060111_9_12519"
        coterminus_option:
          type: boolean
          example: false
        currency:
          type: string
          example: "GBP"
        customer_name:
          type: string
          example: "Colt Technology Services"
        decommissioning_charge:
          type: number
          format: float
          example: 0
        description:
          type: string
          example: "NEW IP Access CONNECTION REQUESTED"

        from_port_id:
          type: string
          example: "80060111"
        id:
          type: integer
          format: int32
          example: 504566
        installation_charge:
          type: number
          format: float
          example: 0
        ip_access_type:
          type: string
          example: "WIRESONLY"
        last_updated:
          type: string
          example: "2021-07-09T11:08:36+0000"
        modification_charge:
          type: number
          format: float
          example: 0
        ocn:
          type: string
          example: "80024932"
        old_bandwidth:
          type: integer
          format: int32
          example: null
        old_rental_charge:
          type: number
          format: float
          example: 0
        old_rental_unit:
          type: string
          example: null
        penalty_charge:
          type: number
          format: float
          example: 0
        port_vlan_ids:
          type: array
          items:
            $ref: '#/components/schemas/VlanIdRangeRequest'
        port_vlan_mapping:
          type: string
          example: "X"
        port_vlan_type:
          type: string
          example: "C"
        portal_user_id:
          type: integer
          format: int32
        price_id:
          type: integer
          format: int32
          example: 1123759
        rental_charge:
          type: number
          format: float
          example: 0.34
        rental_unit:
          type: string
          example: "HOURLY"
        requested_at:
          type: string
          example: "2021-07-09T11:08:36+0000"
        requested_by:
          type: string
          example: "Fristname Lastname"
        requester_email:
          type: string
          example: "user.lastname@newtech.com"
        resource:
          type: string
          example: "IPACCESS_WIRESONLY"
        service_id:
          type: string
          example: null
        status:
          type: string
          example: "COMPLETED"
        status_code:
          type: integer
          format: int32
          example: null
    GlobalBuildingAddressResponse:
      type: object
      required:
        - building_id
        - building_type
        - building_name
        - address
        - city
        - country
        - cross_connect_allowed
      properties:
        building_id:
          type: string
          description: Building identifier
          example: "DEMUN-0000008175"
        building_name:
          type: string
          description: Building name where port has to be ordered
          example: "Id00441"
        
        building_reachable:
          type: boolean
          description: If the building reachable from colt connectivity
          example: true
        address:
          type: string
          description: address of the site
          example: "97 Schopenhauerstrasse, 80809. Munich, Germany."
        building_type:
          type: string
          description: Colt defined Building type 
          example: "Standard Building"
        city:
          type: string
          description: city name of the site located
          example: "Munich"
        country:
          type: string
          description: country name of the site located
          example: "Germany"
        local_city:
          type: string
          description: City name in the local language
          example: "München"
        local_street_name:
          type: string
          description: Street name in the local language
          example: "Schopenhauerstrasse"
        new_site_allowed:
          type: boolean
          description: Boolean flag whether new site creation allowed in the building or not
          example: true
        street_name:
          type: string
          description: Street name of the building
          example: "Schopenhauerstrasse"
        premises_number:
          type: string
          description: Premise number of the building
          example: "10"
        postcode:
          type: string
          description: Postal code of the building
          example: "80809"
        latitude:
          type: number
          format: float
          description: Latitude of the building location
          example: 123.123123
        longitude:
          type: number
          format: float
          description: Longitute of the building location
          example: 1345.234234
        novitas_site_type:
          type: string
          description: Colt's identifier for site type
          example: "LANLINK-DE-MUC"
        cross_connect_allowed:
          type: boolean
          description: if cross connect allowed or not on the site
          example: true
        containing_premises_numbers:
          description: Premises numbers at the site
          type: array
          items:
            type: string
            example: "80"
        
    IpaccessServiceResponse:
      title: IpaccessServiceResponse
      type: object
      properties:
        bandwidth:
          type: integer
          format: int32
        commitment_expiry_date:
          type: string
        commitment_period:
          type: integer
          format: int32
        connection_id:
          type: string
        connection_name:
          type: string
        connection_type:
          type: string
        cpe_public_ip:
          type: string
        created_date:
          type: string
        currency:
          type: string
        customer_name:
          type: string
        decommissioned_on:
          type: string
        from_port_id:
          type: string
        ip_access_type:
          type: string
        lan_ip_list:
          type: array
          items:
            type: string
        last_updated:
          type: string
        ocn:
          type: string
        penalty_charge:
          type: number
          format: float
        port_vlan_ids:
          type: array
          items:
            $ref: '#/components/schemas/VlanIdRangeRequest'
        port_vlan_mapping:
          type: string
        port_vlan_type:
          type: string
        rental_charge:
          type: number
          format: float
        rental_unit:
          type: string
        resource_id:
          type: string
        service_id:
          type: string
        status:
          type: string
        vas_container_id:
          type: integer
          format: int32
        wan_ip_list:
          type: array
          items:
            type: string
    IpaccessUpdateNameRequest:
      title: IpaccessUpdateNameRequest
      type: object
      properties:
        connection_name:
          type: string
        customer_id:
          type: integer
          format: int32
        name:
          type: string
        old_name:
          type: string
        service_id:
          type: string
    LOARequest:
      title: LOARequest
      type: object
      properties:
        issued_to:
          type: string
          description: "LOA issued to create a port"
    LatLong:
      title: LatLong
      type: object
      properties:
        latitude:
          type: number
          format: float
          example: 51.539967  
        longitude:
          type: number
          format: float
          example: 4.5089955
    
    LocationRequest:
      title: LocationRequest
      type: object
      properties:
        building_id:
          type: string
          description: "Building id. Required only when adding new site"
          example: "UKLON-2342342"
        country:
          type: string
          description: Country name. Required only when adding new site
          example: "United Kingdom"
        site_floor:
          type: string
          description: New site floor number. Required only when adding new site
          example: "10"
        site_room_name:
          type: string
          description: New site room name. Required only when adding new site
          example: "Comms"
        location_name:
          type: string
          description: "name of the location"
        customer_location_list:
          type: array
          items:
            $ref: '#/components/schemas/CustomerLocationRequest'
        
    LoginRequest:
      title: LoginRequest
      type: object
      properties:
        email:
          type: string
        password:
          type: string
    
    
    
    OracleCloudPortResponse:
      title: OracleCloudPortResponse
      type: object
      properties:
        address:
          type: string
        available_bandwidth:
          type: integer
          format: int32
        bandwidth:
          type: integer
          format: int32
        building_id:
          type: string
        building_name:
          type: string
        city:
          type: string
        cloud_provider:
          type: string
        cloud_region:
          type: string
        commitment_expiry:
          type: string
        country:
          type: string
        csp_key:
          type: string
        currency:
          type: string
        decommissioning_charge:
          type: number
          format: float
        id:
          type: string
        installation_charge:
          type: number
          format: float
        interconnect_attachment_name:
          type: string
        latitude:
          type: number
          format: float
        location:
          type: string
        location_building_address:
          type: string
        location_building_id:
          type: string
        location_building_name:
          type: string
        location_building_type:
          type: string
        location_city:
          type: string
        location_city_code:
          type: string
        location_country:
          type: string
        location_country_code:
          type: string
        location_id:
          type: string
        location_premises_number:
          type: string
        location_state:
          type: string
        location_street_name:
          type: string
        longitude:
          type: number
          format: float
        max_allowed_connections:
          type: integer
          format: int32
        name:
          type: string
        nc_tech_service_id:
          type: string
        no_of_connections:
          type: integer
          format: int32
        no_of_connections_requested:
          type: integer
          format: int32
        novitas_site_type:
          type: string
        pairing_key:
          type: string
        penalty_charge:
          type: number
          format: float
        pm_site_type:
          type: string
        port:
          type: string
        postal_zip_code:
          type: string
        premises_number:
          type: string
        presentation_label:
          type: string
        rental_charge:
          type: number
          format: float
        rental_unit:
          type: string
          enum:
          - MONTHLY
          - HOURLY
        resource_id:
          type: string
        service_id:
          type: string
        site_floor:
          type: string
        site_name:
          type: string
        site_room_name:
          type: string
        site_street_name:
          type: string
        status:
          type: string
          enum:
          - PENDING
          - ACTIVE
          - REVERSED
          - DECOMMISSIONING
          - DECOMMISSIONED
          - ABORTED
        used_bandwidth:
          type: integer
          format: int32
        vlan:
          type: integer
          format: int32
   
    PortResponse:
      title: PortResponse
      type: object
      properties:
        address:
          type: string
          description: "address of the building port is installed"
          example: "716 Via Salaria, 00138. Rome, Italy"
        available_bandwidth:
          type: integer
          format: int32
          description: "bandwidth left on the port in MBPS"
          example: 900
        aws_account_no:
          type: string
          description: "AWS cloud  account number."
          example: "123456789101"
        aws_ref:
          type: string
          example: "dxcon-fg6o94e9"
        aws_region:
          type: string
          description: AWS cloud region supported by Colt connectivity. e.g. Asia pacific south east 1
          example: "ap-southeast-1"
        azure_service_key:
          type: string
          description: "Azure key provide by azure during account creation"
          example: "3a19e2fa-1a9b-40f8-9000-b860689da949"
        bandwidth:
          type: integer
          format: int32
          description: "total bandwidth supported by the port in MBPS"
          example: 1000
        cloud_provider:
          type: string
          description: "cloud providers name e.g. AZURE_EXPRESS,AWS_HOSTED,AWS_DEDICATED,ORACLE_CLOUD,GOOGLE_COUD"
          example: "AZURE_EXPRESS"
        commitment_expiry:
          type: string
          description: "contract expiry date"
          example: "2021-05-14T10:35:33+0000"
        commitment_period:
          type: integer
          format: int32
          description: "contract period in months"
          example: 12
        connector:
          type: string
          description: "connector supported by the port like RJ45,SC//PC"
          example: "RJ45"
        created_date:
          type: string
          description: "port creation date"
          example: "2021-05-14T10:35:33+0000"
        cross_connect_allowed:
          type: boolean
          description: "if cross connection is possible at the site"
          example: true
        cross_connect_id:
          type: string
          description: "cross connection identifier"
          example: "503546"
        cross_connect_request_id:
          type: string
          description: "cross connect request identifier"
          example: "80059848"
        decommissioned_on:
          type: string
          description: "date on which port is decommission"
          example: ""
        expires_on:
          type: string
          description:  "contract expiry date"
          example: "2021-08-22T13:51:11+0000"
        generated_loas:
          type: array
          items:
            $ref: '#/components/schemas/ColtLOAResponse'
        has_p_to_p_mapping:
          type: boolean
          description: "if port to prot mapping is available"
          example: true
        id:
          type: string
          description: "port identifier"
          example: "80059389"
        is_hybrid:
          type: boolean
          description: ""
          example: true
        latitude:
          type: number
          format: float
          description: "geo latitude value"
          example: 51.522305
        loa_allowed:
          type: boolean
          description: "Letter of authority allowed"
          example: true
        local_building_name:
          type: string
          description: "name of the building in local languge"
          example: "muniche huse"
        location:
          type: string
          description: "Colt's location identifier"
          example: "UK_SL1-4AX_BUCKINGHAM AVENUE_8_G_060G:MC4*"
        location_building_address:
          type: string
          description: "address of the building"
          example: "8 Buckingham Avenue, SL1 4AX. London, United Kingdom."
        location_building_id:
          type: string
          description: "colt's identifer for a building"
          example: "UKSLO-0000008462"
        location_building_name:
          type: string
          description: "nmae of the building"
          example: "Cyxtera Slough LHR1A"
        location_building_type:
          type: string
          description: "type of building as colt classification"
          example: "Datacentre"
        location_city:
          type: string
          description: "city of the building"
          example: Amsterdam"
        location_country:
          type: string
          description: "country in which the building is located"
          example: "Netherlands"
        location_id:
          type: string
          description: "location identifier as per Colt"
          example: "AMS0000108804/013"
        location_premises_number:
          type: string
          description: ""
          example: "G"
        location_state:
          type: string
        location_street_name:
          type: string
          description: "name of the street"
          example: "20 Ayer Rajah Crescent#05-05/08"
        longitude:
          type: number
          format: float
          description: "geo longitude of the location"
          example: 103.78985
        max_allowed_connections:
          type: integer
          format: int32
          description: "connection allowed at the port"
          example: 1
        max_allowed_ipa_conn_bandwdith:
          type: integer
          format: int32
          description: "maximum connection bandwdith allowed for IPA connection on this port"
          example: 5000
        name:
          type: string
          description: "name of the port"
          example: "AWShostedport"
        network_platform:
          type: string
          description: "type of platfrom MMSP or IQNET"
          example: "IQNET"
        no_of_connections:
          type: integer
          format: int32
          description: "number of totla connection on the port"
          example: 1
        no_of_connections_requested:
          type: integer
          format: int32
          description: "number of  connection requested on the port"
          example: 1
        on_shared_site:
          type: boolean
          description: "is it a shared site"
          example: true
        penalty_charge:
          type: number
          format: float
          description: "enalty charges if applicable"
          example: 467
        port:
          type: string
        port_type:
          type: string
          description: "Colt's classigication of port types"
          example: "DCNPORT"
        port_vlan_id_range:
          type: array
          items:
            $ref: '#/components/schemas/VlanIdRangeRequest'
        postal_zip_code:
          type: string
          description: "post code of the location"
          example: "00138"
        presentation_label:
          type: string
        rental_charge:
          type: number
          format: float
          description: " rental charges for the port "
          example: 0
        rental_currency:
          type: string
          example: "GBP"
        rental_unit:
          type: string
          description: "Unit at which rent is charged"
          example: "HOURLY"
        requested_port_vlan_id_range:
          type: array
          items:
            $ref: '#/components/schemas/VlanIdRangeRequest'
        resource_id_1:
          type: string
          description: "Colts way of resoruce identifier "
          example: "Dummy-handover/circuit-id"
        resource_id_2:
          type: string
          description: ""
        service_id:
          type: string
          description: "service identifier for a port request "
          example: "80036616"
        site_floor:
          type: string
          description: "floor of the site where port will be isntalled"
          example: "Basement"
        site_room_name:
          type: string
          description: "room in which the port will be installed"
          example: "comms"
        site_type:
          type: string
          description: "colt identifier for site type"
          example: "KDC-UK-LON"
        status:
          type: string
          description: "Status of the port request"
          example: "ACTIVE"
        technology:
          type: string
          description: "technology supported by the port"
          example: "1000BASE-LX"
        used_bandwidth:
          type: integer
          format: int32
          description: "amount of bandwidth used on the port in MBPS"
          example: 100
        vlan:
          type: integer
          format: int32
          description: "Vlan identifier"
          example: 1234
    RefundResponse:
      title: RefundResponse
      type: object
      properties:
        charge_type:
          type: string
          description: Refund
        comment:
          type: string
        end_date:
          type: string
        percentage_refund:
          type: number
          format: float
          example: 10.00
        refund_amount:
          type: number
          format: float
          example: 100
        start_date:
          type: string
    
    
    
    SiteContact:
      required:
        - name
        - phone
        - email
        
      properties:
        name:
          type: string
          description: Name of person to contact for siteport
          example: "Fname lName"
        phone:
          type: string
          description: Phone number of the person to contact for siteport
          example: "+123123123"
        email:
          type: string
          description: Email of the person to contact for siteport
          example: "name.lname@company.net"
        
    
    SupportedCitiesResponse:
      title: SupportedCitiesResponse
      type: object
      properties:
        cities:
          type: array
          items:
            type: string
        cities_latlng:
          type: array
          items:
            $ref: '#/components/schemas/SupportedCityLatLng'
        country:
          type: string
    SupportedCityLatLng:
      title: SupportedCityLatLng
      type: object
      properties:
        city:
          type: string
        nw_latitude:
          type: number
          format: float
        nw_longitude:
          type: number
          format: float
        se_latitude:
          type: number
          format: float
        se_longitude:
          type: number
          format: float
    EthernetPortServiceAttributesV1:
      allOf:
        - $ref: '#/components/schemas/CommonGetPortServiceAttributesV2'
        - $ref: '#/components/schemas/CommonBuildingAttributesV2'
        - $ref: '#/components/schemas/CommonSiteAttributesV1'
        - type: object
          properties:
            connector_type:
              type: string
              description: the connector type
              example: LC
            cross_connect_allowed:
              type: boolean
            cross_connect_id:
              type: string
            cross_connect_request_id:
              type: string
            generated_loas:
              type: array
              items:
                $ref: '#/components/schemas/LOA'
            has_p_mapping:
              type: boolean
              description: Determines whether non-VLAN connections can be created on the port
            is_hybrid:
              type: boolean
              description: True if the port was not ordered and created via OnDemand
            loa_allowed:
              type: boolean
            max_allowed_ipaccess_conn_bw:
              type: integer
            on_shared_site:
              type: boolean
            circuit_ref:
              type: string
            presentation_label:
              type: string
            technology:
              type: string
              description: the port technology
              example: 1000BASE-SX
            vlan:
              type: array
              items:
                $ref: '#/components/schemas/CommonConnectionPortVLANV2'
    
    CommonConnectionPortVLANV2:
      type: object
      description: VLAN associated with an Ethernet Connection
      properties:
        connection_type:
          type: string
          enum:
            - CLOUD
            - CUSTOMER
            - INTERNET
            - VIRTUAL
        connection_id:
          type: string
          description: the connection that uses these VLANs
        vlan_id:
          type: integer
    ConnectionResponse:
      required:
      - connection_id
      - name
      - bandwidth
      - created_date
      - last_updated
      - status
      - rental_charge
      - rental_unit
      - rental_currency
      - service_id
      - penalty_charge
      - commitment_period
      - commitment_expiry_date
      - is_cloud_connection
      - event_exist
      properties:
        connection_id:
          type: string
          description: Identifier for the connection
          example: 80059231
        name:
          type: string
          description: Name of the connection
          example: coltdctoNL123
        bandwidth:
          type: integer
          format: int32
          description: maximum available on this connection in Mbps
          example: 50
        created_date:
          type: string
          format: date-time
          description: Date of connection created
          example: 2021-05-17T15:01:39+0000
        last_updated:
          type: string
          format: date-time
          description: Date of connection updated
          example: 2021-05-17T15:01:39+0000
        decommissioned_on:
          type: string
          format: date-time
          description: Date of connection decommissioned
        status:
          type: string
          description: 'Status of connection. Valid statuses are ''PENDING, ACTIVE, MODIFYING, DECOMMISSIONING, DECOMMISSIONED'''
          example: ACTIVE
        rental_charge:
          type: number
          format: float
          description: Rental charge for the connection
          example: 0.08
        rental_unit:
          type: string
          description: Rent is caluculated based on 'HOURLY' or 'MONTHLY'
          example: HOURLY
        rental_currency:
          type: string
          description: 'Valid currencies are GBP, EUR, CHF, USD, JPY'
          example: GBP
        service_id:
          type: string
          description: Novitas umbrella service identifier
        is_cloud_connection:
          type: boolean
          description: Says if the connection is DCA connection or not
          example: false
        resource_id_1:
          type: string
          description: Identifier of resource
          example: Dummy/circuit-id
        resource_id_2:
          type: string
          description: Identifier of resource
          example: null
        customer_name:
          type: string
          description: Customer name
          example: Colt
        ocn:
          type: string
          description: Oracle Customer number
          example: 80024932
        sla_id:
          type: string
          description: Service level agreement identifier
          example: SLA_01
        penalty_charge:
          type: number
          format: float
          description: Penalty charge for the connection
          example: 2094.48
        commitment_period:
          type: integer
          format: int32
          description: Connection commitment period
          example: 36
        commitment_expiry_date:
          type: string
          format: date-time
          description: Connection commitment expiry date
          example: 2024-05-27T13:59:59+0000
        component_connections:
          type: array
          description: Holds list of ComponentConnection
          items:
            $ref: '#/components/schemas/ComponentConnectionResponse'
        connection_type:
          type: string
          description: type of the connection. Possible value is 'DCNCONNECTION' or 'DCACONNECTION'
        event_exist:
          type: boolean
          description: Says if future scheduled events exists for connection or not
          example: false
        refunds:
          type: string
          example: null
    ComponentConnectionResponse:
      type: object
      properties:
        a_end_vlan_ids:
          type: array
          description: Holds list of VLAN id ranges of source port. Mandatory when creating/modifying vlan details
          items:
            $ref: '#/components/schemas/VlanIdRangeRequest'
        a_end_vlan_mapping:
          type: string
          description: 'VLAN mapping of source port. Valid values are ''F'', ''FM'', ''X'', ''P''. Mandatory when creating/modifying vlan details'
          example: X
        a_end_vlan_type:
          type: string
          description: VLAN type of source port. Valid type is 'C' or 'S'. Mandatory when modifying vlan details
          example: S
        b_end_vlan_ids:
          type: array
          description: Holds list of VLAN id ranges of destination port. Mandatory when creating/modifying vlan details
          items:
            $ref: '#/components/schemas/VlanIdRangeRequest'
        b_end_vlan_mapping:
          type: string
          description: 'VLAN mapping of destination port. Valid values are ''F'', ''FM'', ''X'', ''P''. Mandatory when creating/modifying vlan details'
          example: X
        b_end_vlan_type:
          type: string
          description: VLAN type of destination port. Valid type is 'C' or 'S'. Mandatory when modifying vlan details
          example: S
        cloud_provider_from_port:
          type: string
          description: 'null if ethernet port'
          example: "null"
        cloud_provider_to_port:
          type: string
          description: 'null if ethernet port'
          example: "null"
        from_latlong:
          type: object
          description: Holds location coordinates of source port
          items:
            $ref: '#/components/schemas/LatLong'
        from_port_id:
          type: string
          description: Port identifier of source of the connection
          example: 80058990
        from_port_name:
          type: string
          description: Port name of source of the connection
          example: 80058991
        from_port_site_type:
          type: string
          description: Sitetype of source port
          example: null
        to_latlong:
          type: object
          description: Holds location coordinates of destination port
          items:
            $ref: '#/components/schemas/LatLong'
        to_port_id:
          type: string
          description: Port identifier of destination of the connection
        to_port_name:
          type: string
          description: Port name of destination of the connection
        to_port_site_type:
          type: string
          description: Sitetype of destination port
    TechnicalContact:
      type: object
      properties:
        company:
          type: string
          description: name of the compnay
          example: "Test comp."
        email:
          type: string
          description: "Technical person caontact email"
          example: "fname.lname@comp.net"
        name:
          type: string
          description: "nmae of the technical contact"
          example: "fname lname"
        phone:
          type: string
          description: "technical contact telephone"
          example: "+1234567891"
    CustomerResponseV2:
      required:
        - "customer_id"
        - "legal_name"
        - "legal_address"
        - "ocn"
        - "monthly_spend_limit"
        - "spend_limited"
        - "country_code"
        - "features"
        - "on_demand_service_id"
        - "portal_experience"
        - "rental_unit"
        - "colt_region"
        - "language_code"
      type: "object"
      properties:
        customer_id:
          type: "integer"
          example: 654321
        legal_name:
          type: "string"
          example: "UK Test Account"
        legal_address:
          type: "string"
          example: "20 Great Eastern Street, London, UK"
        ocn:
          type: "string"
          example: "A12345"
        monthly_spend_limit:
          type: "number"
          format: "double"
          example: 100.12
        spend_limited:
          type: "boolean"
          example: true
        country_code:
          type: "string"
          example: "GB"
        features:
          type: "array"
          example: ["GCP","IBM"]
          items:
            type: "string"
        on_demand_service_id:
          type: "string"
          example: "8000001"
        portal_experience:
          type: "string"
          example: "FLEX"
        rental_unit:
          type: "string"
          example: "HOURLY"
        colt_region:
          type: "string"
          example: "EU"
        language_code:
          type: "string"
          example: "EN"
    UpdateCustomerRequestV2:
      type: "object"
      properties:
        monthly_spend_limit:
          type: "number"
          format: "double"
          example: 100.12
        spend_limited:
          type: "boolean"
          example: true
    

    
    
    UpdateNameRequest:
      title: UpdateNameRequest
      type: object
      required:
        - "service_type"
        - "name"
      properties:
        name:
          type: string
          description: "updated name of the port"
          example: " update name"
          
        old_name:
          type: string
          description: "old name of the port"
          example: "old name"

        service_id:
          type: string
          description: "service id of the port creation request"
          example: "899989"
        service_type:
          type: string
          description: type of service
          example: "PORT"
        
          enum:
          - PORT
          - CONNECTION
          - ETHERNET_PORT
          - IP_ACCESS
    
    VlanIdRangeRequest:
      title: VlanIdRangeRequest
      type: object
      properties:
        cloud:
          type: boolean
          description: Says if this of DCA Port's VLAN ranges
          example: true
          
        from_id_range:
          type: integer
          format: int32
          description: start of VLAN id range
          example: 1184
          
        to_id_range:
          type: integer
          format: int32
          description: end of VLAN id range
          example: 123
    CreateEthernetPortRequestV1:
      type: object
      properties:
        nearnet_price_id:
          type: integer
          description: Represents an additional price to install equipment at a new site
        site_access_price_id:
          type: integer
          description: Represents an  additional price to gain access to the site out of hours
        name:
          type: string
          description: The name of the service
          example: "Head Office Port"
        price_id:
          type: integer
          description: ID of the price associated with the port creation
          example: 111222333
        site_access_details:
          $ref: '#/components/schemas/SiteAccessDetails'
        site_id:
          type: string
          description: Unique identifier of the building and site at which the port should be created
          example: '50001234'
      required:
        - name
        - price_id
        - site_id
    SiteAccessDetails:
      type: object
      properties:
        access_out_of_hours:
          type: boolean
        notice_required_days:
          type: string
        site_contact:
          $ref: '#/components/schemas/ContactDetails'
        technical_contact:
          $ref: '#/components/schemas/ContactDetails'
        technical_contact_company :
          type: string
        user_contact:
          $ref: '#/components/schemas/ContactDetails'
    LOA:
      description: a Letter of Authority
      type: object
      properties:
        id:
          type: integer
        issued_on:
          type: string
          format: date-time
        expires_on:
          type: string
          format: date-time
        issued_to:
          type: string
        requested_by:
          type: string
    CommonSiteAttributesV1:
      type: object
      properties:
        site_id:
          type: string
        site_name:
          type: string
        site_floor:
          type: string
        site_room_name:
          type: string
        site_type:
          type: string
    ContactDetails:
      type: object
      properties:
        email:
          type: string
        name:
          type: string
        phone:
          type: string
      required:
        - email
        - name
        - phone
          
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Auth-token
    BearerAuth:
      type: http
      scheme: bearer
