# Change Control
# ===============
# Version    Date        Author         Change Description
# 1.0.0      04/10/2024  Viswanathan    Initial Draft R18
# 1.0.0      25/10/2024  Viswanathan    Added version at resource level, defined country as required in validateAddressRequestV1, updated enum for exceptionSystemTypeV1
# 1.0.0      07/11/2024  Viswanathan    Removed orientationNumber in LACByLocation, Removed municipality and department in validateAddress response, aligned address fields sequence
# 1.0.0      12/03/2024  Viswanathan    R18 changes
# updated path parameter addressId to addressID in GET /v1/address
#

openapi: 3.0.0
info: 
  title: Address Management
  version: 1.0.0
  description: This API specification is for address management
               operations like address validation, getting LACS for
               given location, getting address for given address ID
  contact: 
    name: Colt Reseller Support Voice
    email: ResellerSupport.Voice@colt.net
    
servers:
  - url: https://apis.colt.net/addressManagement
    description: Production server 
  - url: https://sandbox.apis.colt.net/addressManagement
    description: Sandbox server 
security:
  - bearerAuth: []

tags: 
  - name: "Validate address"
  - name: "Get Local Area Code (LAC) by location"
  - name: "Get address by addressID"

paths:
  /v1/validateAddress:
    post:
      operationId: validateAddress
      tags: 
        - "Validate address"
      description: "API to validate address"
      parameters:
      - name: x-tracking-id
        in: "header"
        required: true
        description: "Unique identifier for the request"        
        schema:
          $ref: '#/components/schemas/trackingIdTypeV1'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/validateAddressRequestV1'
      responses:
        "200": 
          description: Success
          headers:
            Content-Type: 
              schema:
                type: string
                enum:
                  - application/json
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/validateAddressResponseV1'               
        "400":
          description: Bad Request
          headers:          
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorTypeV1'
        "401":
          description: Unauthorized
          headers:
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorTypeV1'
        "403":
          description: Forbidden
          headers:
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorTypeV1'
        "404":
          description: Not Found
          headers:
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorTypeV1'
        "405":
          description: Method Not allowed
          headers:
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorTypeV1'
        "406":
          description: Not Acceptable
          headers:
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorTypeV1'
        "413":
          description: Payload Too Large
          headers:
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorTypeV1'
        "415":
          description: Unsupported Media Type
          headers:
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorTypeV1' 
        "429":
          description: Too Many Requests
          headers:
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorTypeV1'
        "500":
          description: Internal Server Error
          headers:
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorTypeV1'  
        "503":
          description: Service Unavailable
          headers:
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorTypeV1'  
        "504":
          description: Gateway Timeout
          headers:
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorTypeV1'

  /v1/address/{addressID}:
    get:
      operationId: getAddressByID    
      tags: 
        - "Get address by addressID"
      description: "API to get address for given addressID"
      parameters:
      - name: x-tracking-id
        in: "header"
        required: true
        description: "Unique identifier for the request"        
        schema:
          $ref: '#/components/schemas/trackingIdTypeV1'
      - name: addressID
        in: "path"
        required: true
        schema:
          $ref: '#/components/schemas/stringLen20TypeV1'
      - name: country
        in: "query"
        required: true
        schema:
          $ref: '#/components/schemas/countryCodeListV1'          
      responses:
        "200": 
          description: Success
          headers:
            Content-Type: 
              schema:
                type: string
                enum:
                  - application/json
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/addressSchemaV1'               
        "400":
          description: Bad Request
          headers:          
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorTypeV1'
        "401":
          description: Unauthorized
          headers:
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:          
              schema:
                $ref: '#/components/schemas/errorTypeV1'
        "403":
          description: Forbidden
          headers:
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorTypeV1'
        "404":
          description: Not Found
          headers:
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:          
              schema:
                $ref: '#/components/schemas/errorTypeV1'
        "405":
          description: Method Not allowed
          headers:
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:          
              schema:
                $ref: '#/components/schemas/errorTypeV1'
        "406":
          description: Not Acceptable
          headers:
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:          
              schema:
                $ref: '#/components/schemas/errorTypeV1'                
        "413":
          description: Payload Too Large
          headers:
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:          
              schema:
                $ref: '#/components/schemas/errorTypeV1'                 
        "415":
          description: Unsupported Media Type
          headers:
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:          
              schema:
                $ref: '#/components/schemas/errorTypeV1' 
        "429":
          description: Too Many Requests
          headers:
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:          
              schema:
                $ref: '#/components/schemas/errorTypeV1'                 
        "500":
          description: Internal Server Error
          headers:
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:          
              schema:
                $ref: '#/components/schemas/errorTypeV1'  
        "503":
          description: Service Unavailable
          headers:
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorTypeV1'  
        "504":
          description: Gateway Timeout
          headers:
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorTypeV1'

  /v1/LACByLocation:
    get:
      operationId: getLACByLocation    
      tags: 
        - "Get Local Area Code (LAC) by location"
      description: "API to get LAC for given location"
      parameters:
      - name: x-tracking-id
        in: "header"
        required: true
        schema:
          $ref: '#/components/schemas/trackingIdTypeV1'
      - name: streetName
        in: "query"
        schema:
          $ref: '#/components/schemas/streetNameTypeV1'
      - name: houseNumber
        in: "query"
        schema:
          $ref: '#/components/schemas/houseNumberTypeV1'
      - name: houseNumberExtension
        in: "query"
        schema:
          $ref: '#/components/schemas/addressExtensionTypeV1'
      - name: province
        in: "query"
        schema:
          $ref: '#/components/schemas/provinceTypeV1'
      - name: city
        in: "query"
        schema:
          $ref: '#/components/schemas/cityTownTypeV1'
      - name: postalCode
        in: "query"
        schema:
          $ref: '#/components/schemas/postalZipCodeTypeV1'
      - name: country
        in: "query"
        required: true
        schema:
          $ref: '#/components/schemas/countryCodeListV1'
      - name: latitude
        in: "query"
        schema:
          $ref: '#/components/schemas/geoCoordinateTypeV1'
      - name: longitude
        in: "query"
        schema:
          $ref: '#/components/schemas/geoCoordinateTypeV1'          
      responses:
        "200": 
          description: Success
          headers:
            Content-Type: 
              schema:
                type: string
                enum:
                  - application/json
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LACDetailsTypeV1'      
                
        "400":
          description: Bad Request
          headers:          
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorTypeV1'
        "401":
          description: Unauthorized
          headers:
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:          
              schema:
                $ref: '#/components/schemas/errorTypeV1'
        "403":
          description: Forbidden
          headers:
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorTypeV1'
        "404":
          description: Not Found
          headers:
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:          
              schema:
                $ref: '#/components/schemas/errorTypeV1'
        "405":
          description: Method Not allowed
          headers:
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:          
              schema:
                $ref: '#/components/schemas/errorTypeV1'
        "406":
          description: Not Acceptable
          headers:
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:          
              schema:
                $ref: '#/components/schemas/errorTypeV1'                
        "413":
          description: Payload Too Large
          headers:
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:          
              schema:
                $ref: '#/components/schemas/errorTypeV1'                 
        "415":
          description: Unsupported Media Type
          headers:
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:          
              schema:
                $ref: '#/components/schemas/errorTypeV1' 
        "429":
          description: Too Many Requests
          headers:
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:          
              schema:
                $ref: '#/components/schemas/errorTypeV1'                 
        "500":
          description: Internal Server Error
          headers:
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:          
              schema:
                $ref: '#/components/schemas/errorTypeV1'  
        "503":
          description: Service Unavailable
          headers:
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorTypeV1'  
        "504":
          description: Gateway Timeout
          headers:
            x-exception-system: 
              schema:
                $ref: '#/components/schemas/exceptionSystemTypeV1'
            x-tracking-id:
              description: "Unique identifier for the request"
              schema: 
                $ref: '#/components/schemas/trackingIdTypeV1'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorTypeV1'
                
components:
  securitySchemes:
    bearerAuth:            
      type: http
      scheme: bearer
      bearerFormat: JWT 
    
  schemas:
    trackingIdTypeV1: 
      type: string
      description: "Unique identifier for the request"
      example: abcd456e-d45645-dfaafda-1232345667dd
      pattern: "^[a-zA-Z0-9_.~:@-]{1,255}$"
      maxLength: 255

    exceptionSystemTypeV1:
      type: string
      enum:
        - 'APIGW'
        - 'ESB'
        - 'IMS'
        - 'RIMS'
        - 'AMS'

    validateAddressRequestV1:
      type: object
      required:
        - country      
      properties:
        floorNumber:
          $ref: '#/components/schemas/floorSuiteTypeV1'    
        houseNumber:
          $ref: '#/components/schemas/houseNumberTypeV1'
        houseNumberExtension:
          $ref: '#/components/schemas/addressExtensionTypeV1'          
        orientationNumber:
          $ref: '#/components/schemas/buildingNumberTypeV1'
        buildingName:
          $ref: '#/components/schemas/buildingNameTypeV1'
        streetName:
          $ref: '#/components/schemas/streetNameTypeV1'
        streetType:
          $ref: '#/components/schemas/streetTypeSchemaV1'
        subLocality:
          $ref: '#/components/schemas/subLocalityTypeV1'          
        city:
          $ref: '#/components/schemas/cityTownTypeV1'
        province:
          $ref: '#/components/schemas/provinceTypeV1'
        county:
          $ref: '#/components/schemas/countyTypeV1'          
        postalCode:
          $ref: '#/components/schemas/postalZipCodeTypeV1'
        poBoxNumber:
          $ref: '#/components/schemas/poBoxNumberTypeV1'
        country:
          $ref: '#/components/schemas/countryCodeListV1'          
      
    validateAddressResponseV1:
      type: object
      properties:
        validationDate:
          $ref: '#/components/schemas/dateFormatV1'
        validationStatus:
          $ref: '#/components/schemas/addressValidationStatusTypeV1'
        geographicAddressList:
          $ref: '#/components/schemas/addressListTypeV1'
          
    addressListTypeV1:
      type: array
      items:
        $ref: '#/components/schemas/addressSchemaV1'      

    addressSchemaV1:
      type: object
      properties:
        floorNumber:
          $ref: '#/components/schemas/floorSuiteTypeV1'    
        houseNumber:
          $ref: '#/components/schemas/houseNumberTypeV1'
        houseNumberExtension:
          $ref: '#/components/schemas/addressExtensionTypeV1'          
        orientationNumber:
          $ref: '#/components/schemas/buildingNumberTypeV1'
        buildingName:
          $ref: '#/components/schemas/buildingNameTypeV1'
        streetName:
          $ref: '#/components/schemas/streetNameTypeV1'
        streetType:
          $ref: '#/components/schemas/streetTypeSchemaV1'
        subLocality:
          $ref: '#/components/schemas/subLocalityTypeV1'
        city:
          $ref: '#/components/schemas/cityTownTypeV1'
        province:
          $ref: '#/components/schemas/provinceTypeV1'
        county:
          $ref: '#/components/schemas/countyTypeV1'
        postalCode:
          $ref: '#/components/schemas/postalZipCodeTypeV1'
        poBoxNumber:
          $ref: '#/components/schemas/poBoxNumberTypeV1'
        country:
          $ref: '#/components/schemas/countryCodeListV1'
        addressID:
          $ref: '#/components/schemas/stringLen20TypeV1'
        latitude:
          $ref: '#/components/schemas/geoCoordinateTypeV1'
        longitude:
          $ref: '#/components/schemas/geoCoordinateTypeV1'
          
    countryCodeListV1:
      type: string
      enum:
        - 'GB'
        - 'ES'
        - 'FR'
        - 'DE'
        - 'AT'
        - 'BE'
        - 'NL'
        - 'IE'
        - 'IT'
        - 'SE'
        - 'DK'
        - 'PT'
        - 'CH'
        - 'CZ'
        - 'NO'
        - 'RO'
        - 'PL'
        - 'FI'
        - 'LU'
        - 'SK'        

    streetTypeSchemaV1:
      type: string
      maxLength: 50
      
    provinceTypeV1:
      type: string
      maxLength: 50

    addressExtensionTypeV1:
      type: string
      maxLength: 50
      
    subLocalityTypeV1:
      type: string
      maxLength: 70

    stringLen20TypeV1:
      type: string
      maxLength: 20

    stringLen2048TypeV1:
      type: string
      maxLength: 2048
      
    countyTypeV1:
      type: string
      maxLength: 15

    floorSuiteTypeV1:
      type: string
      maxLength: 50
      
    buildingNumberTypeV1:
      type: string
      pattern: "^[0-9]+[ ]?[A-Za-z]*([- ][0-9]+[A-Za-z]*)*$"
      maxLength: 20

    houseNumberTypeV1:
      type: string
      maxLength: 20
      
    buildingNameTypeV1:
      type: string
      maxLength: 55
      
    streetNameTypeV1:
      type: string
      maxLength: 200
      
    cityTownTypeV1:
      type: string
      maxLength: 100

    postalZipCodeTypeV1:
      type: string
      maxLength: 50

    areaCodeTypeV1:
      type: string
      pattern: "^[0-9]{1,6}$"
      
    dateFormatV1:
      type: string
      format: date
      description: date time in ISO 8601 format      
      example: "2019-05-17"
    
    addressValidationStatusTypeV1:
      type: string
      enum:
        - 'Valid'
        - 'Invalid'
        - 'Partial'
        
    geoCoordinateTypeV1:
      type: string
      maxLength: 10                 
      
    poBoxNumberTypeV1:
      type: string
      maxLength: 50        
        
    areaNameTypeV1:
      type: string
      
    areaCodeListTypeV1:
      type: array
      items:
        $ref: '#/components/schemas/areaCodeTypeV1'
      
    LACDetailsTypeV1:
      type: object
      properties:
        geoLACList:
          $ref: '#/components/schemas/geoLACListTypeV1'
        nomadicLACList:
          $ref: '#/components/schemas/nomadicLACListTypeV1'
        addtionalInfo:
          $ref: '#/components/schemas/stringLen2048TypeV1'
          
    geoLACListTypeV1:
      type: array
      items:
       $ref: '#/components/schemas/geoLACTypeV1'
       
    geoLACTypeV1:
      type: object
      properties:
        areaName:
          $ref: '#/components/schemas/areaNameTypeV1'
        areaCodeList:
          $ref: '#/components/schemas/areaCodeListTypeV1'       
          
    nomadicLACListTypeV1:
      type: array
      items:
        $ref: '#/components/schemas/nomadicLACTypeV1'
        
    nomadicLACTypeV1:
      type: string        

    errorTypeV1:
      description: 'Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)'
      type: object
      required:
        - code
        - reason
      properties:
        code:
          type: string
          description: 'Application relevant detail, defined in the API or a common list.'
          example: ERR01
        reason:
          type: string
          description: Explanation of the reason for the error which can be shown to a client user.
        message:
          type: string
          description: More details and corrective actions related to the error which can be shown to a client user.