Global System for Mobile Communications Population Density Data API

Operations to retrieve population density information.

Documentation

📖
Documentation
https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/CallForwardingSignal/r1.3/code/API_definitions/call-forwarding-signal.yaml&nocors
📖
Documentation
https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/DeviceStatus/r1.3/code/API_definitions/device-roaming-status.yaml&nocors
📖
Documentation
https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/KnowYourCustomer/r1.3/code/API_definitions/kyc-match.yaml&nocors
📖
Documentation
https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/NumberVerification/r1.3/code/API_definitions/number-verification.yaml&nocors
📖
Documentation
https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/OTPValidation/r1.2/code/API_definitions/one-time-password-sms.yaml&nocors
📖
Documentation
https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/SimSwap/r1.3/code/API_definitions/sim-swap.yaml&nocors
📖
Documentation
https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/DeviceLocation/r1.2/code/API_definitions/location-verification.yaml&nocors
📖
Documentation
https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/DeviceLocation/r1.2/code/API_definitions/geofencing-subscriptions.yaml&nocors
📖
Documentation
https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/DeviceLocation/r1.2/code/API_definitions/location-retrieval.yaml&nocors
📖
Documentation
https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/PopulationDensityData/r1.2/code/API_definitions/population-density-data.yaml&nocors
📖
Documentation
https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/QualityOnDemand/r1.2/code/API_definitions/quality-on-demand.yaml&nocors
📖
Documentation
https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/ConnectivityInsights/r1.2/code/API_definitions/connectivity-insights.yaml&nocors
📖
Documentation
https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/ConnectivityInsights/r1.2/code/API_definitions/connectivity-insights-subscriptions.yaml&nocors
📖
Documentation
https://github.com/camaraproject/ShortMessageService/blob/6fd0ff0e79a3e26244e5f026c8e40260b0a47494/documentation/API_documentation/Text_SMS_User_Story.md
📖
Documentation
https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/HomeDevicesQoD/r1.2/code/API_definitions/home-devices-qod.yaml&nocors
📖
Documentation
https://github.com/camaraproject/SimpleEdgeDiscovery/blob/main/documentation/API_documentation/SimpleEdgeDiscovery_User_Story.md
📖
Documentation
https://github.com/camaraproject/EdgeCloud/blob/main/documentation/API_documentation/Simple_Edge_Discovery_API_Readiness_Checklist.md
📖
Documentation
https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/CarrierBillingCheckOut/r1.3/code/API_definitions/carrier-billing.yaml&nocors

Specifications

SDKs

Other Resources

🔗
BrunoCollection
https://raw.githubusercontent.com/api-evangelist/global-system-for-mobile-communications/refs/heads/main/bruno/GSMA Camara Project Call Forwarding Signal API/bruno.json
🔗
PostmanCollection
https://www.postman.com/api-evangelist/global-system-for-mobile-communications-gsma/collection/35240-bd9acd12-585e-4c28-ba61-6ee7a91f55d0
🔗
BrunoCollection
https://raw.githubusercontent.com/api-evangelist/global-system-for-mobile-communications/refs/heads/main/bruno/GSMA Camara Project Device Roaming Status/bruno.json
🔗
PostmanCollection
https://www.postman.com/api-evangelist/global-system-for-mobile-communications-gsma/collection/wgatuug/gsma-camara-project-device-roaming-status
🔗
BrunoCollection
https://raw.githubusercontent.com/api-evangelist/global-system-for-mobile-communications/refs/heads/main/bruno/GSMA Camara Project Know Your Customer Match/bruno.json
🔗
PostmanCollection
https://raw.githubusercontent.com/api-evangelist/global-system-for-mobile-communications/refs/heads/main/none
🔗
BrunoCollection
https://raw.githubusercontent.com/api-evangelist/global-system-for-mobile-communications/refs/heads/main/bruno/GSMA Camara Project Number Verification/bruno.json
🔗
PostmanCollection
https://www.postman.com/api-evangelist/global-system-for-mobile-communications-gsma/collection/lvrdn91/gsma-camara-project-number-verification
🔗
BrunoCollection
https://raw.githubusercontent.com/api-evangelist/global-system-for-mobile-communications/refs/heads/main/bruno/GSMA Camara Project One Time Password SMS/bruno.json
🔗
PostmanCollection
https://www.postman.com/api-evangelist/global-system-for-mobile-communications-gsma/collection/lm2bnug/gsma-camara-project-one-time-password-sms
🔗
BrunoCollection
https://raw.githubusercontent.com/api-evangelist/global-system-for-mobile-communications/refs/heads/main/bruno/GSMA Camara Project SIM Swap API/bruno.json
🔗
PostmanCollection
https://www.postman.com/api-evangelist/global-system-for-mobile-communications-gsma/collection/1ohhvf0/gsma-camara-project-sim-swap-api
🔗
BrunoCollection
https://raw.githubusercontent.com/api-evangelist/global-system-for-mobile-communications/refs/heads/main/bruno/GSMA Camara Project SIM Swap Notification Subscription API/bruno.json
🔗
PostmanCollection
https://www.postman.com/api-evangelist/global-system-for-mobile-communications-gsma/collection/t35i4sr/gsma-camara-project-sms-delivery-notification-subscription-api
🔗
BrunoCollection
https://raw.githubusercontent.com/api-evangelist/global-system-for-mobile-communications/refs/heads/main/bruno/GSMA Camara Project Device Location Verification API/bruno.json
🔗
PostmanCollection
https://www.postman.com/api-evangelist/global-system-for-mobile-communications-gsma/collection/35240-23a17d7b-07a0-405e-896b-6c4f3f4cc8c6
🔗
BrunoCollection
https://raw.githubusercontent.com/api-evangelist/global-system-for-mobile-communications/refs/heads/main/bruno/GSMA Camara Project Device Geofencing Subscriptions API/bruno.json
🔗
PostmanCollection
https://www.postman.com/api-evangelist/global-system-for-mobile-communications-gsma/collection/lddca5b/gsma-camara-project-device-geofencing-subscriptions-api
🔗
BrunoCollection
https://raw.githubusercontent.com/api-evangelist/global-system-for-mobile-communications/refs/heads/main/bruno/GSMA Camara Project Device Location Retrieval API/bruno.json
🔗
PostmanCollection
https://www.postman.com/api-evangelist/global-system-for-mobile-communications-gsma/collection/2un0g1u/gsma-camara-project-device-location-retrieval-api
🔗
BrunoCollection
https://raw.githubusercontent.com/api-evangelist/global-system-for-mobile-communications/refs/heads/main/bruno/GSMA Camara Project Population Density Data/bruno.json
🔗
PostmanCollection
https://www.postman.com/api-evangelist/global-system-for-mobile-communications-gsma/collection/lwfh4b3/gsma-camara-project-population-density-data
🔗
BrunoCollection
https://raw.githubusercontent.com/api-evangelist/global-system-for-mobile-communications/refs/heads/main/bruno/GSMA Camara Project Quality on Demand API/bruno.json
🔗
PostmanCollection
https://www.postman.com/api-evangelist/global-system-for-mobile-communications-gsma/collection/35240-a139bda5-4882-455b-83a2-2e3ea7bcb16f
🔗
BrunoCollection
https://raw.githubusercontent.com/api-evangelist/global-system-for-mobile-communications/refs/heads/main/bruno/GSMA Camara Project Connectivity Insights API/bruno.json
🔗
PostmanCollection
https://www.postman.com/api-evangelist/global-system-for-mobile-communications-gsma/collection/0jyjgn6/gsma-camara-project-connectivity-insights-api
🔗
BrunoCollection
https://raw.githubusercontent.com/api-evangelist/global-system-for-mobile-communications/refs/heads/main/bruno/GSMA Camara Project Connectivity Insights Subscriptions API/bruno.json
🔗
PostmanCollection
https://www.postman.com/api-evangelist/global-system-for-mobile-communications-gsma/collection/odjfucf/gsma-camara-project-connectivity-insights-subscriptions-api
🔗
BrunoCollection
https://raw.githubusercontent.com/api-evangelist/global-system-for-mobile-communications/refs/heads/main/bruno/GSMA Camara Project Application Profiles API/bruno.json
🔗
PostmanCollection
https://www.postman.com/api-evangelist/global-system-for-mobile-communications-gsma/collection/ryw6hox/gsma-camara-project-application-profiles-api
🔗
BrunoCollection
https://raw.githubusercontent.com/api-evangelist/global-system-for-mobile-communications/refs/heads/main/bruno/GSMA Camara Project SMS API/bruno.json
🔗
PostmanCollection
https://www.postman.com/api-evangelist/global-system-for-mobile-communications-gsma/collection/im7p4j1/gsma-camara-project-sms-api
🔗
BrunoCollection
https://raw.githubusercontent.com/api-evangelist/global-system-for-mobile-communications/refs/heads/main/bruno/GSMA Camara Project SMS Delivery Notification Subscription API/bruno.json
🔗
BrunoCollection
https://raw.githubusercontent.com/api-evangelist/global-system-for-mobile-communications/refs/heads/main/bruno/GSMA Camara Project Home Devices QoD/bruno.json
🔗
PostmanCollection
https://raw.githubusercontent.com/api-evangelist/global-system-for-mobile-communications/refs/heads/main/nhttps://www.postman.com/api-evangelist/global-system-for-mobile-communications-gsma/collection/dedffqb/gsma-camara-project-home-devices-qodone
🔗
BrunoCollection
https://raw.githubusercontent.com/api-evangelist/global-system-for-mobile-communications/refs/heads/main/bruno/GSMA Camara Project Simple Edge Discovery/bruno.json
🔗
PostmanCollection
https://www.postman.com/api-evangelist/global-system-for-mobile-communications-gsma/collection/5ze8wkz/gsma-camara-project-simple-edge-discovery
🔗
BrunoCollection
https://raw.githubusercontent.com/api-evangelist/global-system-for-mobile-communications/refs/heads/main/bruno/GSMA Camara Project Traffic Influence API/bruno.json
🔗
PostmanCollection
https://www.postman.com/api-evangelist/global-system-for-mobile-communications-gsma/collection/1tmj16r/gsma-camara-project-traffic-influence-api
🔗
BrunoCollection
https://raw.githubusercontent.com/api-evangelist/global-system-for-mobile-communications/refs/heads/main/bruno/GSMA Camara Project Application Endpoint Discovery API/bruno.json
🔗
PostmanCollection
https://www.postman.com/api-evangelist/global-system-for-mobile-communications-gsma/collection/tomzja8/gsma-camara-project-application-endpoint-discovery-api
🔗
BrunoCollection
https://raw.githubusercontent.com/api-evangelist/global-system-for-mobile-communications/refs/heads/main/bruno/GSMA Camara Project Edge Application Management API/bruno.json
🔗
PostmanCollection
https://www.postman.com/api-evangelist/global-system-for-mobile-communications-gsma/collection/35240-981545ec-b150-47da-a448-59c92b127a05
🔗
BrunoCollection
https://raw.githubusercontent.com/api-evangelist/global-system-for-mobile-communications/refs/heads/main/bruno/GSMA Camara Project Carrier Billing/bruno.json
🔗
PostmanCollection
https://www.postman.com/api-evangelist/global-system-for-mobile-communications-gsma/collection/0m2sok6/gsma-camara-project-carrier-billing

OpenAPI Specification

global-system-for-mobile-communications-population-density-data-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Global System for Mobile Communications GSMA Camara Project Endpoint Discovery Application Population Density Data API
  version: 0.1.0-wip
  description: The Application Discovery API extends beyond the capabilities of the Simple Edge Discovery API by not only locating the nearest Edge Cloud Zone but also directly linking to the application endpoints within those Edge Cloud Zones.
  contact:
    email: sp-edc@lists.camaraproject.org
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: '{apiRoot}/{basePath}'
  variables:
    apiRoot:
      default: https://localhost:443
      description: API root.
    basePath:
      default: application-endpoint-discovery/vwip
      description: Base path for the Application Endpoint Discovery.
tags:
- name: Population Density Data
  description: Operations to retrieve population density information.
paths:
  /retrieve:
    post:
      tags:
      - Population Density Data
      summary: Global System for Mobile Communications Retrieves population density information in a specified area
      description: Retrieves population density estimation together with the estimation range related  for a time slot for a given area (described as a polygon) as a data set consisting of a sequence of equally-sized objects covering the input polygon area.
      operationId: retrievePopulationDensity
      parameters:
      - $ref: '#/components/parameters/x-correlator'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PopulationDensityRequest'
            example:
              area:
                areaType: POLYGON
                boundary:
                - latitude: 45.754114
                  longitude: 4.860374
                - latitude: 45.753845
                  longitude: 4.863185
                - latitude: 45.75249
                  longitude: 4.861876
                - latitude: 45.751224
                  longitude: 4.861125
                - latitude: 45.751442
                  longitude: 4.859827
              startDate: '2024-04-23T14:44:18.165Z'
              endDate: '2024-04-23T14:44:18.165Z'
              precision: 7
        required: true
      callbacks:
        populationDensityDataCallback:
          '{$request.body#/sink}':
            post:
              tags:
              - Population Density Data
              summary: Population Density Data callback
              description: 'Important: this endpoint is to be implemented by the API consumer.

                The Population Density Data server will call this endpoint when the request result is ready.

                '
              operationId: postNotification
              parameters:
              - $ref: '#/components/parameters/x-correlator'
              requestBody:
                description: Population density data result.
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/PopulationDensityResponse'
                    examples:
                      PopulationDensitySupportedAreaResponseExample:
                        $ref: '#/components/examples/PopulationDensitySupportedAreaResponseExample'
                      PopulationDensityAreaNotSupportedResponseExample:
                        $ref: '#/components/examples/PopulationDensityAreaNotSupportedResponseExample'
                      PopulationDensityPartOfAreaNotSupportedResponseExample:
                        $ref: '#/components/examples/PopulationDensityPartOfAreaNotSupportedResponseExample'
              responses:
                '204':
                  description: Successful notification
                  headers:
                    x-correlator:
                      $ref: '#/components/headers/x-correlator'
                '400':
                  $ref: '#/components/responses/Generic400'
                '401':
                  $ref: '#/components/responses/Generic401'
                '403':
                  $ref: '#/components/responses/Generic403'
                '410':
                  $ref: '#/components/responses/Generic410'
                '500':
                  $ref: '#/components/responses/Generic500'
                '503':
                  $ref: '#/components/responses/Generic503'
              security:
              - {}
              - notificationsBearerAuth: []
      responses:
        '200':
          description: Population density data result.
          headers:
            x-correlator:
              $ref: '#/components/headers/x-correlator'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PopulationDensityResponse'
              examples:
                PopulationDensitySupportedAreaResponseExample:
                  $ref: '#/components/examples/PopulationDensitySupportedAreaResponseExample'
                PopulationDensityAreaNotSupportedResponseExample:
                  $ref: '#/components/examples/PopulationDensityAreaNotSupportedResponseExample'
                PopulationDensityPartOfAreaNotSupportedResponseExample:
                  $ref: '#/components/examples/PopulationDensityPartOfAreaNotSupportedResponseExample'
        '202':
          description: Population density data requested. This response is returned when the behaviour of the API is asynchronous.
          headers:
            x-correlator:
              $ref: '#/components/headers/x-correlator'
        '400':
          $ref: '#/components/responses/RetrieveLocationBadRequest400'
        '401':
          $ref: '#/components/responses/Generic401'
        '403':
          $ref: '#/components/responses/Generic403'
        '404':
          $ref: '#/components/responses/Generic404'
        '500':
          $ref: '#/components/responses/Generic500'
        '503':
          $ref: '#/components/responses/Generic503'
      security:
      - openId:
        - population-density-data:read
components:
  responses:
    Generic503:
      description: Service unavailable
      headers:
        x-correlator:
          $ref: '#/components/headers/x-correlator'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorInfo'
          example:
            status: 503
            code: UNAVAILABLE
            message: Service unavailable
    Generic500:
      description: Internal server error
      headers:
        x-correlator:
          $ref: '#/components/headers/x-correlator'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorInfo'
          example:
            status: 500
            code: INTERNAL
            message: Internal server error
    Generic410:
      description: Gone
      headers:
        x-correlator:
          $ref: '#/components/headers/x-correlator'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorInfo'
          examples:
            GENERIC_410_GONE:
              description: Use in notifications flow to allow API Consumer to indicate that its callback is no longer available
              value:
                status: 410
                code: GONE
                message: Access to the target resource is no longer available.
    Generic400:
      description: Problem with the client request
      headers:
        x-correlator:
          $ref: '#/components/headers/x-correlator'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorInfo'
          example:
            status: 400
            code: INVALID_ARGUMENT
            message: Client specified an invalid argument, request body or query param
    RetrieveLocationBadRequest400:
      description: "Problem with the client request. In addition to generic scenarios of `INVALID_ARGUMENT`, `INVALID_CREDENTIAL`, `INVALID_TOKEN`, another scenarios may exist:\n  - The area is not a polygon shape or exceeds supported complexity (\"code\": \"POPULATION_DENSITY_DATA.INVALID_AREA\", \"message\": \"The area is not a polygon shape or exceeds supported complexity\")\n  - Indicated combination of area, time interval and precision is too big (\"code\": \"POPULATION_DENSITY_DATA.UNSUPPPORTED_REQUEST\", \"message\": \"Indicated combination of area, time interval and precision is too big\")\n  - Indicated `startDate` is greater than the maximum allowed (\"code\": \"POPULATION_DENSITY_DATA.MAX_STARTDATE_EXCEEDED\", \"message\": \"Indicated startDate is greater than the maximum allowed\")\n  - Indicated `startDate` is earlier than the minimum allowed (\"code\": \"POPULATION_DENSITY_DATA.MIN_STARTDATE_EXCEEDED\", \"message\": \"Indicated startDate is earlier than the minimum allowed\")\n  - Indicated `endDate` is earlier than the `startDate` (\"code\": \"POPULATION_DENSITY_DATA.INVALID_END_DATE\", \"message\": \"Indicated endDate is earlier than the startDate\")\n  - Indicated time period is greater than the maximum allowed (More than maximum hours between startDate and endDate) (\"code\": \"POPULATION_DENSITY_DATA.MAX_TIME_PERIOD_EXCEEDED\", \"message\": \"Indicated time period is greater than the maximum allowed (More than maximum hours between startDate and endDate)\")\n  - Indicated cell precision (Geohash level) is not supported (\"code\": \"POPULATION_DENSITY_DATA.UNSUPPORTED_PRECISION\", \"message\": \"Indicated cell precision (Geohash level) is not supported\")\n  - Indicated combination of area, time interval and precision is too big for a sync response (\"code\": \"POPULATION_DENSITY_DATA.UNSUPPORTED_SYNC_RESPONSE\", \"message\": \"Indicated combination of area, time interval and precision is too big for a sync response\")"
      headers:
        x-correlator:
          $ref: '#/components/headers/x-correlator'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorInfo'
          examples:
            InvalidArgument:
              value:
                status: 400
                code: INVALID_ARGUMENT
                message: Invalid input
            GENERIC_400_INVALID_CREDENTIAL:
              value:
                status: 400
                code: INVALID_CREDENTIAL
                message: Only Access token is supported
            GENERIC_400_INVALID_TOKEN:
              value:
                status: 400
                code: INVALID_TOKEN
                message: Only bearer token is supported
            InvalidAreaIssue:
              value:
                status: 400
                code: POPULATION_DENSITY_DATA.INVALID_AREA
                message: The area is not a polygon shape or has an arbitrary complexity
            UnsupportedRequestIssue:
              value:
                status: 400
                code: POPULATION_DENSITY_DATA.UNSUPPPORTED_REQUEST
                message: Indicated combination of area, time interval and precision is too big
            MaxStartDateIssue:
              value:
                status: 400
                code: POPULATION_DENSITY_DATA.MAX_STARTDATE_EXCEEDED
                message: Indicated startDate is greater than the maximum allowed
            MinStartDateIssue:
              value:
                status: 400
                code: POPULATION_DENSITY_DATA.MIN_STARTDATE_EXCEEDED
                message: Indicated startDate is earlier than the minimum allowed
            InvalidEndDateIssue:
              value:
                status: 400
                code: POPULATION_DENSITY_DATA.INVALID_END_DATE
                message: Indicated endDate is earlier than the startDate
            MaxDurationIssue:
              value:
                status: 400
                code: POPULATION_DENSITY_DATA.MAX_TIME_PERIOD_EXCEEDED
                message: Indicated time period is greater than the maximum allowed (More than maximum hours between startDate and endDate)
            PrecisionNotSupportedIssue:
              value:
                status: 400
                code: POPULATION_DENSITY_DATA.UNSUPPORTED_PRECISION
                message: Indicated cell precision (Geohash length) is not supported
            UnsupportedSyncResponseIssue:
              value:
                status: 400
                code: POPULATION_DENSITY_DATA.UNSUPPORTED_SYNC_RESPONSE
                message: Indicated combination of area, time interval and precision is too big for a sync response
    Generic401:
      description: Unauthorized
      headers:
        x-correlator:
          $ref: '#/components/headers/x-correlator'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorInfo'
          example:
            status: 401
            code: UNAUTHENTICATED
            message: 'Authorization failed: ...'
    Generic403:
      description: Forbidden
      headers:
        x-correlator:
          $ref: '#/components/headers/x-correlator'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorInfo'
          example:
            status: 403
            code: PERMISSION_DENIED
            message: 'Operation not allowed: ...'
    Generic404:
      description: Not found
      headers:
        x-correlator:
          $ref: '#/components/headers/x-correlator'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorInfo'
          example:
            status: 404
            code: NOT_FOUND
            message: The specified resource is not found
  parameters:
    x-correlator:
      name: x-correlator
      in: header
      description: Correlation id for the different services.
      schema:
        type: string
  examples:
    PopulationDensitySupportedAreaResponseExample:
      value:
        status: SUPPORTED_AREA
        timedPopulationDensityData:
        - startTime: '2024-01-03T10:00:00Z'
          endTime: '2024-01-03T11:00:00Z'
          cellPopulationDensityData:
          - geohash: ezdqemf
            populationDensityData:
              dataType: DENSITY_ESTIMATION
              maxPplDensity: 150
              minPplDensity: 30
              pplDensity: 60
          - geohash: ezdqemg
            populationDensityData:
              dataType: DENSITY_ESTIMATION
              maxPplDensity: 100
              minPplDensity: 40
              pplDensity: 90
          - geohash: ezdqemu
            populationDensityData:
              dataType: LOW_DENSITY
        - startTime: '2024-01-03T11:00:00Z'
          endTime: '2024-01-03T12:00:00Z'
          cellPopulationDensityData:
          - geohash: ezdqemf
            populationDensityData:
              dataType: DENSITY_ESTIMATION
              maxPplDensity: 100
              minPplDensity: 30
              pplDensity: 70
          - geohash: ezdqemg
            populationDensityData:
              dataType: DENSITY_ESTIMATION
              maxPplDensity: 200
              minPplDensity: 40
              pplDensity: 100
          - geohash: ezdqemu
            populationDensityData:
              dataType: DENSITY_ESTIMATION
              maxPplDensity: 200
              minPplDensity: 40
              pplDensity: 100
    PopulationDensityAreaNotSupportedResponseExample:
      value:
        status: AREA_NOT_SUPPORTED
        timedPopulationDensityData: []
    PopulationDensityPartOfAreaNotSupportedResponseExample:
      value:
        status: PART_OF_AREA_NOT_SUPPORTED
        timedPopulationDensityData:
        - startTime: '2024-01-03T10:00:00Z'
          endTime: '2024-01-03T11:00:00Z'
          cellPopulationDensityData:
          - geohash: ezdqemf
            populationDensityData:
              dataType: DENSITY_ESTIMATION
              maxPplDensity: 150
              minPplDensity: 30
              pplDensity: 60
          - geohash: ezdqemg
            populationDensityData:
              dataType: DENSITY_ESTIMATION
              maxPplDensity: 100
              minPplDensity: 40
              pplDensity: 90
          - geohash: ezdqemu
            populationDensityData:
              dataType: NO_DATA
        - startTime: '2024-01-03T11:00:00Z'
          endTime: '2024-01-03T12:00:00Z'
          cellPopulationDensityData:
          - geohash: ezdqemf
            populationDensityData:
              dataType: DENSITY_ESTIMATION
              maxPplDensity: 100
              minPplDensity: 30
              pplDensity: 70
          - geohash: ezdqemg
            populationDensityData:
              dataType: DENSITY_ESTIMATION
              maxPplDensity: 200
              minPplDensity: 40
              pplDensity: 100
          - geohash: ezdqemu
            populationDensityData:
              dataType: NO_DATA
  schemas:
    AreaType:
      type: string
      description: 'Type of this area.

        POLYGON - The area is defined as a polygon.

        '
      enum:
      - POLYGON
    PopulationDensityRequest:
      type: object
      description: 'Request object for retrieving population density data in a specified area. **NOTE**: The difference between `startDate` and `endDate` cannot be greater than 7 days.'
      properties:
        area:
          $ref: '#/components/schemas/Area'
        startDate:
          type: string
          format: date-time
          description: Start date time. It must follow [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) and must have time zone. Recommended format is yyyy-MM-dd'T'HH:mm:ss.SSSZ  (i.e. which allows 2023-07-03T14:27:08.312+02:00 or 2023-07-03T12:27:08.312Z) The minimum startDate is the time of the request.
        endDate:
          type: string
          format: date-time
          description: End date time. It must follow [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) and must have time zone. Recommended format is yyyy-MM-dd'T'HH:mm:ss.SSSZ (i.e. which allows 2023-07-03T14:27:08.312+02:00 or 2023-07-03T12:27:08.312Z) The maximum endDate allowed is 3 months from the time of the request.
        precision:
          type: integer
          description: Precision required of response cells. Precision defines a geohash level and corresponds to the length of the geohash for each cell. More information at [Geohash system](https://en.wikipedia.org/wiki/Geohash)" If not included the default precision level 7 is used by default. In case of using a not supported level by the MNO, the API returns the error response `POPULATION_DENSITY_DATA.UNSUPPORTED_PRECISION`.
          minimum: 1
          maximum: 12
          default: 7
        sink:
          type: string
          format: url
          description: The address to which events about all status changes of the session (e.g. session termination) shall be delivered, using the HTTP protocol.
          example: https://endpoint.example.com/sink
        sinkCredential:
          description: A sink credential provides authentication or authorization information necessary to enable delivery of events to a target.
          allOf:
          - $ref: '#/components/schemas/SinkCredential'
      required:
      - area
      - startDate
      - endDate
    PopulationDensityResponse:
      type: object
      description: Population density values is represented in time intervals for different  cells of the requested area. Each element in `timedPopulationDensityData` array corresponds  to a time interval, containing population density data for the grid cells. The intervals are 1 hour long.
      properties:
        timedPopulationDensityData:
          type: array
          description: "Time ranges along with the population density data for the cells within it.\n The request startDate or the request endDate have to be fully covered by the intervals.\n For example, if the intervals are 1-hour long and the input date range were [2024-01-03T11:25:00Z\n to 2024-01-03T12:45:00Z] it would contain 2 intervals (Interval from 2024-01-03T11:00:00Z\n to 2024-01-03T12:00:00Z and interval from 2024-01-03T12:00:00Z to 2024-01-03T13:00:00Z)."
          items:
            $ref: '#/components/schemas/TimedPopulationDensityData'
        status:
          $ref: '#/components/schemas/ResponseStatus'
      required:
      - timedPopulationDensityData
      - status
    Area:
      type: object
      properties:
        areaType:
          $ref: '#/components/schemas/AreaType'
      required:
      - areaType
      discriminator:
        propertyName: areaType
        mapping:
          POLYGON: '#/components/schemas/Polygon'
    ResponseStatus:
      type: string
      description: "Represents the state of the response for the input polygon defined in the request, the possible values are:\n  - `SUPPORTED_AREA`: The whole request area is supported. Population density data for the entire requested area is returned.\n  - `PART_OF_AREA_NOT_SUPPORTED`: Part of the requested area is outside the MNOs coverage area, the cells outside the coverage\n  area will have property `dataType` with value `NO_DATA`.\n  - `AREA_NOT_SUPPORTED`: The whole requested area is outside the MNOs coverage area. No data will be returned."
      enum:
      - SUPPORTED_AREA
      - PART_OF_AREA_NOT_SUPPORTED
      - AREA_NOT_SUPPORTED
    SinkCredential:
      type: object
      properties:
        credentialType:
          type: string
          enum:
          - PLAIN
          - ACCESSTOKEN
          - REFRESHTOKEN
          description: The type of the credential. With the current API version the type MUST be set to `ACCESSTOKEN`
      discriminator:
        propertyName: credentialType
        mapping:
          PLAIN: '#/components/schemas/PlainCredential'
          ACCESSTOKEN: '#/components/schemas/AccessTokenCredential'
          REFRESHTOKEN: '#/components/schemas/RefreshTokenCredential'
      required:
      - credentialType
    ErrorInfo:
      type: object
      required:
      - status
      - code
      - message
      properties:
        status:
          type: integer
          description: HTTP status code returned along with this error response.
        code:
          type: string
          description: Code given to this error.
        message:
          type: string
          description: Detailed error description.
    TimedPopulationDensityData:
      type: object
      properties:
        startTime:
          type: string
          format: date-time
          description: Interval start time. It must follow [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) and must have time zone. Recommended format is yyyy-MM-dd'T'HH:mm:ss.SSSZ (i.e. which allows 2023-07-03T14:27:08.312+02:00 or 2023-07-03T12:27:08.312Z)
        endTime:
          type: string
          format: date-time
          description: Interval end time. It must follow [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) and must have time zone. Recommended format is yyyy-MM-dd'T'HH:mm:ss.SSSZ (i.e. which allows 2023-07-03T14:27:08.312+02:00 or 2023-07-03T12:27:08.312Z)
          example: '2024-01-03T13:00:00Z'
        cellPopulationDensityData:
          $ref: '#/components/schemas/CellPopulationDensityDataArray'
      required:
      - startTime
      - endTime
      - cellPopulationDensityData
    CellPopulationDensityDataArray:
      type: array
      description: Population density data for the different cells in a concrete time range.
      items:
        $ref: '#/components/schemas/CellPopulationDensityData'
      minItems: 1
    PopulationDensityData:
      description: Object that contains the estimated population density and an estimation range in a cell for a specific time interval. In case of insufficient data to guarantee an anonymized prediction due to the k-anonymity within a specific cell and time range, no population density data is returned and the property `dataType` value is "LOW_DENSITY". In case of a cell not supported `dataType` value is "NO_DATA"
      properties:
        dataType:
          type: string
          enum:
          - NO_DATA
          - LOW_DENSITY
          - DENSITY_ESTIMATION
      required:
      - dataType
      discriminator:
        propertyName: dataType
        mapping:
          NO_DATA: '#/components/schemas/PopulationDensityData'
          LOW_DENSITY: '#/components/schemas/PopulationDensityData'
          DENSITY_ESTIMATION: '#/components/schemas/DensityEstimationPopulationDensityData'
    CellPopulationDensityData:
      type: object
      description: Population density data of a cell in a concrete time range.
      properties:
        geohash:
          type: string
          description: Coordinates of the cell represented as a string using the [Geohash system](https://en.wikipedia.org/wiki/Geohash). Encoding a geographic location into a short string. The value length, and thus, the cell granularity, is determined by the request body property `precision`.
          example: ezdmemd
        populationDensityData:
          $ref: '#/components/schemas/PopulationDensityData'
      required:
      - geohash
      - populationDensityData
  headers:
    x-correlator:
      description: Correlation id for the different services.
      schema:
        type: string
  securitySchemes:
    openId:
      description: OpenID Provider Configuration Information.
      type: openIdConnect
      openIdConnectUrl: .well-known/openid-configuration
externalDocs:
  description: Product documentation at CAMARA.
  url: https://github.com/camaraproject/EdgeCloud