Telia LSO Sonata Geographic Site Management API

MEF 122 / MEF 79 geographic site management API in Telia's LSO Sonata wholesale programme, designed using TM Forum TMF674 as its template. Retrieves a list of geographic sites and full detail for a single site, per country. This is the only Telia OpenAPI definition that could be downloaded anonymously — the portal serves it without a login at /liveportal/apis/{apiId}/download_spec.

OpenAPI Specification

telia-lso-sonata-site-management.yml Raw ↑
openapi: 3.0.2
x-project-id: B2X-Global-SiteManagement-API-v1
info:
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  version: 1.0.1
  title: B2X-Global-SiteManagement-API-v1
  description: |
    **This file forms part of MEF 122**

    This API implements Business Requirements described in MEF 79

    It allows to retrieve a list of Geographic Sites and to get all
    information for one geographic site.

    List of supported Use Cases:

    - Retrieve Service Site List
    - Retrieve Service Site by Identifier

    Copyright 2021 MEF Forum and its contributors

    This file includes content based on the TM Forum Geographic Site API (TMF674
    v4.0.0) available at https://github.com/tmforum-apis/TMF674_GeographicSite,
    which is licensed by the TM Forum under the Apache License version 2.0. Such
    content has been modified by the MEF Forum and its contributors.
servers:
  - url: https://api-garden.teliacompany.com/v1/api/mef/geographicSiteManagement
    description: Production
  - url: https://api-garden-test.teliacompany.com/v1/api/mef/geographicSiteManagement
    description: Test
  - url: https://api-garden.teliacompany.com/sandbox/v1/api/mef/geographicSiteManagement
    description: Sandbox
security:
  - prodBearerAuth: []
  - testBearerAuth: []
tags:
  - name: listGeographicSite
    description: Retrieves a list of geographic sites based on the provided site id or other fields.
  - name: retrieveGeographicSite
    description: Retrieves detailed information for a specific geographic site using its ID.
paths:
  /{country}/geographicSite:
    get:
      operationId: listGeographicSite
      summary: List geographic sites by site id or other parameters
      description: >
        Retrieves a list of geographic sites based on the provided site id or other fields.
      tags:
        - listGeographicSite
      parameters:
        - name: country
          in: path
          required: true
          description: Country selector for the address operation.
          schema:
            type: string
            enum:
              - se
              - fi
              - global
          examples:
            Sweden:
              summary: Sweden
              value: se
            Finland:
              summary: Finland
              value: fi
            Global:
              summary: Global
              value: global
        - name: geographicAddress.id
          in: query
          required: false
          schema:
            type: string
          description: Unique identifier of the geographic address.
        - name: geographicAddress.streetName
          in: query
          required: false
          schema:
            type: string
          description: Street name of the geographic site.
        - name: geographicAddress.streetNr
          in: query
          required: false
          schema:
            type: string
          description: Street number of the geographic site.
        - name: geographicAddress.city
          in: query
          required: false
          schema:
            type: string
          description: City of the geographic site.
        - name: geographicAddress.country
          in: query
          required: true
          schema:
            type: string
          description: ISO country code of the geographic address, for example SE.
      responses:
        "200":
          description: Successful retrieval of site list
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/GeographicSiteSummary"
              examples:
                FindSiteByAddressId:
                  summary: Find Site using geographicAddress.id
                  value:
                    - id: "105839411"
                      siteCompanyName: "Telia"
                      status: "EXISTING"
                      geographicAddress:
                        streetNr: "10"
                        streetName: "KRISTINAGATAN"
                        city: "NORRKÖPING"
                        postcode: "60226"
                        country: "SE"
                FindSiteByAddressFields:
                  summary: Find Site using address fields
                  value:
                    - id: "105839420"
                      siteCompanyName: "Telia"
                      status: "EXISTING"
                      geographicAddress:
                        streetNr: "20"
                        streetName: "KRISTINAGATAN"
                        city: "NORRKÖPING"
                        postcode: "60226"
                        country: "SE"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error400"
              examples:
                BadRequestExample:
                  summary: Example bad request error
                  value:
                    code: "400"
                    reason: "Bad Request"
                    message: "Mandatory field siteId is missing from path parameters"
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error401"
              examples:
                UnauthorizedExample:
                  summary: Example unauthorized error
                  value:
                    code: "401"
                    reason: "Unauthorized"
                    message: "Error while authenticating TMF"
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error403"
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error404"
              examples:
                NotFoundExample:
                  summary: Example not found error
                  value:
                    code: "404"
                    reason: "Not Found"
                    message: "Site not found"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error500"
              examples:
                InternalServerErrorExample:
                  summary: Example internal server error
                  value:
                    code: "500"
                    reason: "Internal Server Error"
                    message: "Error occurred while calling the API"
        "503":
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error503"
              examples:
                ServiceUnavailableExample:
                  summary: Example service unavailable error
                  value:
                    code: "503"
                    reason: "Service Unavailable"
                    message: "Service Unavailable"
  /{country}/geographicSite/{id}:
    get:
      operationId: retrieveGeographicSite
      summary: Retrieve geographic site by ID
      description: >
        Retrieves detailed information for a specific geographic site using its ID.
      tags:
        - retrieveGeographicSite
      parameters:
        - name: country
          in: path
          required: true
          description: Country selector for the address operation.
          schema:
            type: string
            enum:
              - se
              - fi
              - global
          examples:
            Sweden:
              summary: Sweden
              value: se
            Finland:
              summary: Finland
              value: fi
            Global:
              summary: Global
              value: global
        - name: id
          in: path
          required: true
          schema:
            type: integer
          description: Unique identifier of the geographic site.
      responses:
        "200":
          description: Successful retrieval of a site
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GeographicSite"
              examples:
                GetSiteById:
                  summary: Get Site Sweden by ID
                  value:
                    id: 105839411
                    siteCompanyName: "Telia"
                    additionnalSiteInformation: "{\"siteId\":\"N229 NTP 001\",\"category\":\"OnNet\"}"
                    status: "EXISTING"
                    fieldedAddress:
                      id: 105839411
                      streetNr: "10"
                      streetName: "KRISTINAGATAN"
                      postcode: "60226"
                      city: "NORRKÖPING"
                      stateOrProvince: "ÖSTERGÖTLANDS LÄN"
                      country: "SE"
                    geographicLocation:
                      id: 105839411
                      spatialRef: "WGS84"
                      geographicPoint:
                        - latitude: "58.591864"
                          longitude: "16.190793"
                    geographicSubAdress:
                      - id: 105839411
                        buildingName: "161614704"
                        subUnit:
                          - subUnitType: "business"
                            subUnitIdentifier: "1302"
                      - id: 105839411
                        buildingName: "161304865"
                        subUnit:
                          - subUnitType: "flat"
                            subUnitIdentifier: "1581110-2001"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error400"
              examples:
                BadRequestExample:
                  summary: Example bad request error
                  value:
                    code: "400"
                    reason: "Bad Request"
                    message: "Mandatory field siteId is missing from path parameters"
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error401"
              examples:
                UnauthorizedExample:
                  summary: Example unauthorized error
                  value:
                    code: "401"
                    reason: "Unauthorized"
                    message: "Error while authenticating TMF"
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error403"
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error404"
              examples:
                NotFoundExample:
                  summary: Example not found error
                  value:
                    code: "404"
                    reason: "Not Found"
                    message: "Site not found"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error500"
              examples:
                InternalServerErrorExample:
                  summary: Example internal server error
                  value:
                    code: "500"
                    reason: "Internal Server Error"
                    message: "Error occurred while calling the API"
        "503":
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error503"
              examples:
                ServiceUnavailableExample:
                  summary: Example service unavailable error
                  value:
                    code: "503"
                    reason: "Service Unavailable"
                    message: "Service Unavailable"
components:
  schemas:
    Error400:
      type: object
      properties:
        code:
          type: string
          example: "400"
        reason:
          type: string
          example: "Bad Request"
        message:
          type: string
          example: "Mandatory field siteId is missing from path parameters"
      required:
        - code
        - reason
    Error401:
      type: object
      properties:
        code:
          type: string
          example: "401"
        reason:
          type: string
          example: "Unauthorized"
        message:
          type: string
          example: "Error while authenticating TMF"
      required:
        - code
        - reason
    Error403:
      type: object
      properties:
        code:
          type: string
          example: "403"
        reason:
          type: string
          example: "Forbidden"
        message:
          type: string
          example: "Access to the requested resource is denied"
      required:
        - code
        - reason
    Error404:
      type: object
      properties:
        code:
          type: string
          example: "404"
        reason:
          type: string
          example: "Not Found"
        message:
          type: string
          example: "Site not found"
      required:
        - code
        - reason
    Error500:
      type: object
      properties:
        code:
          type: string
          example: "500"
        reason:
          type: string
          example: "Internal Server Error"
        message:
          type: string
          example: "Error occurred while calling the API"
      required:
        - code
        - reason
    Error503:
      type: object
      properties:
        code:
          type: string
          example: "503"
        reason:
          type: string
          example: "Service Unavailable"
        message:
          type: string
          example: "Service Unavailable"
      required:
        - code
        - reason
    GeographicSiteSummary:
      type: object
      properties:
        id:
          type: string
          example: "105839411"
        siteCompanyName:
          type: string
          example: "Telia"
        status:
          type: string
          example: "EXISTING"
        geographicAddress:
          $ref: "#/components/schemas/GeographicAddress"
      required:
        - id
        - siteCompanyName
        - status
        - geographicAddress
      additionalProperties: false
    GeographicSite:
      type: object
      properties:
        id:
          type: integer
          example: 105839411
        siteCompanyName:
          type: string
          example: "Telia"
        additionnalSiteInformation:
          type: string
          example: "{\"siteId\":\"N229 NTP 001\",\"category\":\"OnNet\"}"
        status:
          type: string
          example: "EXISTING"
        fieldedAddress:
          $ref: "#/components/schemas/FieldedAddress"
        geographicLocation:
          $ref: "#/components/schemas/GeographicLocation"
        geographicSubAdress:
          type: array
          items:
            $ref: "#/components/schemas/GeographicSubAdress"
      required:
        - id
        - siteCompanyName
        - additionnalSiteInformation
        - status
        - fieldedAddress
        - geographicLocation
        - geographicSubAdress
      additionalProperties: false
    GeographicAddress:
      type: object
      properties:
        streetNr:
          type: string
        streetName:
          type: string
        city:
          type: string
        postcode:
          type: string
        country:
          type: string
      required:
        - streetNr
        - streetName
        - city
        - postcode
        - country
      additionalProperties: false
      example:
        streetNr: "10"
        streetName: "KRISTINAGATAN"
        city: "NORRKÖPING"
        postcode: "60226"
        country: "SE"
    FieldedAddress:
      type: object
      properties:
        id:
          type: integer
        streetNr:
          type: string
        streetName:
          type: string
        postcode:
          type: string
        city:
          type: string
        stateOrProvince:
          type: string
        country:
          type: string
      required:
        - id
        - streetNr
        - streetName
        - postcode
        - city
        - stateOrProvince
        - country
      additionalProperties: false
    GeographicLocation:
      type: object
      properties:
        id:
          type: integer
        spatialRef:
          type: string
        geographicPoint:
          type: array
          items:
            $ref: "#/components/schemas/GeographicPoint"
      required:
        - id
        - spatialRef
        - geographicPoint
      additionalProperties: false
    GeographicPoint:
      type: object
      properties:
        latitude:
          type: string
        longitude:
          type: string
      required:
        - latitude
        - longitude
      additionalProperties: false
    GeographicSubAdress:
      type: object
      properties:
        id:
          type: integer
        buildingName:
          type: string
        levelType:
          type: string
        levelNumber:
          type: string
        subUnit:
          type: array
          items:
            $ref: "#/components/schemas/SubUnit"
      required:
        - id
        - buildingName
        - subUnit
      additionalProperties: false
    SubUnit:
      type: object
      properties:
        subUnitType:
          type: string
        subUnitIdentifier:
          nullable: true
          type: string
      required:
        - subUnitType
      additionalProperties: false
  securitySchemes:
    prodBearerAuth:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api-garden.teliacompany.com/v4/oauth/client_credential/accesstoken
          scopes: {}
      description: Token endpoint for the production environment
    testBearerAuth:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api-garden-test.teliacompany.com/v4/oauth/client_credential/accesstoken
          scopes: {}
      description: Token endpoint for all test environments