Global System for Mobile Communications Application API

Application and Application Instance Lice Cycle Management

Operations 7

POST /apps Global System for Mobile Communications Submit application metadata to the Edge Cloud Provider. #
GET /apps Global System for Mobile Communications Retrieve a list of existing Applications #
GET /apps/{appId} Global System for Mobile Communications Retrieve the information of an Application #
DELETE /apps/{appId} Global System for Mobile Communications Delete an Application from an Edge Cloud Provider #
POST /appinstances Global System for Mobile Communications Instantiation of an Application #
GET /appinstances Global System for Mobile Communications Retrieve the information of Application Instances for a given App #
DELETE /appinstances/{appInstanceId} Global System for Mobile Communications Terminate an Application Instance #

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
🔗
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
🔗
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

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/global-system-for-mobile-communications-application-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

global-system-for-mobile-communications-application-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Global System for Mobile Communications GSMA Camara Project Endpoint Discovery Application 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: Application
  description: Application and Application Instance Lice Cycle Management
paths:
  /apps:
    post:
      security:
      - openId:
        - edge-application-management:apps:write
      tags:
      - Application
      summary: Global System for Mobile Communications Submit application metadata to the Edge Cloud Provider.
      description: 'Contains the information about the application to be

        instantiated in the Edge Cloud

        '
      operationId: submitApp
      parameters:
      - $ref: '#/components/parameters/x-correlator'
      requestBody:
        description: 'The Application Provider request contains mandatory

          criteria (e.g. required CPU, memory, storage, bandwidth) and

          optional parameters.

          '
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppManifest'
        required: true
      responses:
        '201':
          description: Application created successfully
          headers:
            x-correlator:
              $ref: '#/components/headers/x-correlator'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubmittedApp'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
              example:
                status: 409
                code: CONFLICT
                message: App already exists
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
    get:
      security:
      - openId:
        - edge-application-management:apps:read
      tags:
      - Application
      summary: Global System for Mobile Communications Retrieve a list of existing Applications
      description: 'Get the list of all existing Application definitions from the

        Edge Cloud Provider that the user has permission to view.

        '
      operationId: getApps
      parameters:
      - $ref: '#/components/parameters/x-correlator'
      responses:
        '200':
          description: List of existing applications
          headers:
            x-correlator:
              $ref: '#/components/headers/x-correlator'
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AppManifest'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
        '503':
          $ref: '#/components/responses/503'
  /apps/{appId}:
    get:
      security:
      - openId:
        - edge-application-management:apps:read
      tags:
      - Application
      summary: Global System for Mobile Communications Retrieve the information of an Application
      description: 'Ask the Edge Cloud Provider the information for a given application

        '
      operationId: getApp
      parameters:
      - $ref: '#/components/parameters/x-correlator'
      - name: appId
        description: 'A globally unique identifier associated with the

          application.

          Edge Cloud Provider generates this identifier when the application

          is submitted.

          '
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/AppId'
      responses:
        '200':
          description: Information of Application
          headers:
            x-correlator:
              $ref: '#/components/headers/x-correlator'
          content:
            application/json:
              schema:
                type: object
                properties:
                  appManifest:
                    $ref: '#/components/schemas/AppManifest'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
        '503':
          $ref: '#/components/responses/503'
    delete:
      security:
      - openId:
        - edge-application-management:apps:delete
      tags:
      - Application
      summary: Global System for Mobile Communications Delete an Application from an Edge Cloud Provider
      description: Delete all the information and content related to an Application
      operationId: deleteApp
      parameters:
      - $ref: '#/components/parameters/x-correlator'
      - name: appId
        in: path
        description: 'Identificator of the application to be

          deleted provided by the Edge Cloud Provider

          once the submission was successful

          '
        required: true
        schema:
          $ref: '#/components/schemas/AppId'
      responses:
        '202':
          description: Request accepted
          headers:
            x-correlator:
              $ref: '#/components/headers/x-correlator'
        '204':
          description: App deleted
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
              example:
                status: 409
                code: CONFLICT
                message: App with a running application instance cannot be deleted
        '500':
          $ref: '#/components/responses/500'
        '503':
          $ref: '#/components/responses/503'
  /appinstances:
    post:
      security:
      - openId:
        - edge-application-management:instances:write
      tags:
      - Application
      summary: Global System for Mobile Communications Instantiation of an Application
      description: 'Ask the Edge Cloud Platform to instantiate an application to one

        or several Edge Cloud Zones with an Application as an input and an

        Application Instance as the output.

        '
      operationId: createAppInstance
      parameters:
      - $ref: '#/components/parameters/x-correlator'
      requestBody:
        description: 'The Application ID and the array of Edge Cloud Zones to deploy

          it to.

          '
        content:
          application/json:
            schema:
              type: object
              required:
              - appId
              - appZones
              properties:
                appId:
                  $ref: '#/components/schemas/AppId'
                appZones:
                  $ref: '#/components/schemas/AppZones'
        required: true
      responses:
        '202':
          description: Application instantiation accepted
          headers:
            x-correlator:
              $ref: '#/components/headers/x-correlator'
            Location:
              description: Contains the URI of the newly created application.
              required: true
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  appInstances:
                    type: array
                    items:
                      $ref: '#/components/schemas/AppInstanceInfo'
                minItems: 1
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
              example:
                status: 409
                code: CONFLICT
                message: Application already instantiated in the given Edge Cloud Zone or Edge Cloud Region
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
    get:
      security:
      - openId:
        - edge-application-management:instances:read
      tags:
      - Application
      summary: Global System for Mobile Communications Retrieve the information of Application Instances for a given App
      description: 'Ask the Edge Cloud Provider the information of the instances for a

        given application

        '
      operationId: getAppInstance
      parameters:
      - $ref: '#/components/parameters/x-correlator'
      - name: appId
        description: 'A globally unique identifier associated with

          the application.

          Edge Cloud Provider generates this identifier when the

          application is submitted.

          '
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/AppId'
      - name: appInstanceId
        description: 'A globally unique identifier associated with a running

          instance of an application within an specific Edge Cloud Zone.

          Edge Cloud Provider generates this identifier.

          '
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/AppInstanceId'
      - name: region
        description: 'Human readable name of the geographical Edge Cloud Region of

          the Edge Cloud. Defined by the Edge Cloud Provider.

          '
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/EdgeCloudRegion'
      responses:
        '200':
          description: Information of Application Instances
          headers:
            x-correlator:
              $ref: '#/components/headers/x-correlator'
          content:
            application/json:
              schema:
                type: object
                properties:
                  appInstanceInfo:
                    type: array
                    items:
                      $ref: '#/components/schemas/AppInstanceInfo'
                minItems: 1
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
        '503':
          $ref: '#/components/responses/503'
  /appinstances/{appInstanceId}:
    delete:
      security:
      - openId:
        - edge-application-management:instances:delete
      tags:
      - Application
      summary: Global System for Mobile Communications Terminate an Application Instance
      description: 'Terminate a running instance of an application within

        an Edge Cloud Zone

        '
      operationId: deleteAppInstance
      parameters:
      - $ref: '#/components/parameters/x-correlator'
      - name: appInstanceId
        in: path
        description: 'Identificator of the specific application instance

          that will be terminated

          '
        required: true
        schema:
          $ref: '#/components/schemas/AppInstanceId'
      responses:
        '202':
          description: 'Request accepted to be processed. It applies for async

            deletion process

            '
          headers:
            x-correlator:
              $ref: '#/components/headers/x-correlator'
        '204':
          description: Application Instance Deleted
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
        '503':
          $ref: '#/components/responses/503'
components:
  schemas:
    K8sNetworking:
      description: 'Kubernetes networking definition

        '
      type: object
      properties:
        primaryNetwork:
          description: Definition of Kubernetes primary Network
          type: object
          properties:
            provider:
              description: CNI provider name
              type: string
              example: cilium
            version:
              description: CNI provider version
              type: string
              example: '1.13'
        additionalNetworks:
          description: Additional Networks for the Kubernetes cluster.
          type: array
          items:
            type: object
            description: Additional network interface definition
            properties:
              name:
                description: Additional Network Name
                type: string
                example: net1
              interfaceType:
                description: "Type of additional Interface:\nnetdevice: (SR-IOV) A regular kernel network device in the\n           Network Namespace (netns) of the container\nvfio-pci: (SR-IOV) A PCI network interface directly mounted\n          in the container\ninterface: Additional interface to be used by cni plugins\n           such as macvlan, ipvlan\nNote: The use of SR-IOV interfaces automatically\nconfigure the required kernel parameters for the nodes.\n"
                type: string
                example: vfio-pci
                enum:
                - netdevice
                - vfio-pci
                - interface
    AppInstanceInfo:
      description: Information about the application instance.
      type: object
      properties:
        appInstanceId:
          $ref: '#/components/schemas/AppInstanceId'
        status:
          description: Status of the application instance (default is 'unknown')
          type: string
          enum:
          - ready
          - instantiating
          - failed
          - terminating
          - unknown
          default: unknown
        componentEndpointInfo:
          description: 'Information about the IP and Port exposed by the

            Edge Cloud Platform.

            Application Client shall use these access points to reach this

            application instance

            '
          type: array
          items:
            type: object
            required:
            - interfaceId
            - accessPoints
            properties:
              interfaceId:
                type: string
                pattern: ^[A-Za-z0-9][A-Za-z0-9_]{6,30}[A-Za-z0-9]$
                description: 'This is the interface Identifier that Application Provider

                  defines when application is being submitted.

                  '
              accessPoints:
                $ref: '#/components/schemas/AccessEndpoint'
          minItems: 1
        kubernetesClusterRef:
          $ref: '#/components/schemas/KubernetesClusterRef'
        edgeCloudZone:
          $ref: '#/components/schemas/EdgeCloudZone'
    KubernetesResources:
      description: Definition of Kubernetes Cluster Infrastructure.
      required:
      - infraKind
      - applicationResources
      - isStandalone
      properties:
        infraKind:
          description: Type of infrastructure for the application.
          type: string
          example: kubernetes
          enum:
          - kubernetes
        applicationResources:
          description: 'Application resources define the resources pool required

            by the application to be executed in a Kubernetes clusters.

            '
          type: object
          properties:
            cpuPool:
              required:
              - numCPU
              - memory
              - topology
              type: object
              description: 'CPU Pool refers to the amount of application'' resources

                that is executed in nodes with CPU only. That means the part

                of application that doesn''t require GPU or other kind of

                acceleration.

                CPU pool is not mandatory when the application is executed

                exclusively in a GPU pool.

                A CPU pool is composed by CPU and memory.

                '
              properties:
                numCPU:
                  description: 'Total number of vcpus in whole (i.e 1) of CPU pool.

                    '
                  type: integer
                  example: 1
                memory:
                  description: Total memory in mega bytes of CPU pool.
                  type: integer
                  example: 1024
                topology:
                  type: object
                  description: 'CPU pool topology defines an application''s CPU-based

                    architecture.

                    When deploying for high availability or redundancy, it

                    allows for clustering with a configurable number of nodes

                    and minimum CPU/memory resource per Kubernetes node

                    requirements.

                    '
                  required:
                  - minNumberOfNodes
                  - minNodeCpu
                  - minNodeMemory
                  properties:
                    minNumberOfNodes:
                      description: 'Minimum number of worker nodes required by the

                        application.

                        '
                      type: integer
                      example: 5
                    minNodeCpu:
                      description: 'Minimum number of vcpus in whole (i.e 1) per cluster

                        node in CPU pool.

                        '
                      type: integer
                      example: 2
                    minNodeMemory:
                      description: 'Minimum memory in mega bytes per cluster node in

                        CPU pool.

                        '
                      type: integer
                      example: 1024
            gpuPool:
              required:
              - numCPU
              - memory
              - gpuMemory
              - topology
              type: object
              description: 'GPU Pool refers to the amount of resources of the application

                that is executed in nodes with GPU.

                GPU Pool is not mandatory when the application is executed

                exclusively in a CPU pool.

                A GPU pool is composed by memory, CPU and GPU memory

                '
              properties:
                numCPU:
                  description: 'Total Number of vcpus in whole (i.e 1) of GPU pool.

                    '
                  type: integer
                  example: 1
                memory:
                  description: Total memory in mega bytes of GPU pool.
                  type: integer
                  example: 1024
                gpuMemory:
                  description: Total GPU memory in giga bytes of GPU pool.
                  type: integer
                  example: 16
                topology:
                  type: object
                  description: 'GPU pool topology defines an application''s GPU-based

                    architecture.

                    When deploying for high availability or redundancy, it

                    allows for clustering with a configurable number of nodes

                    and minimum CPU/memory/GPU memory resource per Kubernetes

                    node requirements.

                    '
                  required:
                  - minNumberOfNodes
                  - minNodeCpu
                  - minNodeMemory
                  - minNodeGpuMemory
                  properties:
                    minNumberOfNodes:
                      description: 'Minimum number of worker nodes with GPU required by

                        the application.

                        '
                      type: integer
                      example: 2
                    minNodeCpu:
                      description: 'Minimum number of vcpus in whole (i.e 1) per cluster

                        node in GPU pool.

                        '
                      type: integer
                      example: 2
                    minNodeMemory:
                      description: 'Minimum memory in mega bytes per cluster node in

                        GPU pool.

                        '
                      type: integer
                      example: 1024
                    minNodeGpuMemory:
                      description: Minimum memory in giga bytes per cluster node in GPU pool.
                      type: integer
                      example: 8
        isStandalone:
          description: 'Define if the Kubernetes clusters can be reused by other

            applications.

            '
          type: boolean
          example: false
        version:
          type: string
          description: Minimum Kubernetes Version.
          example: '1.29'
        additionalStorage:
          type: string
          description: 'Amount of persistent storage allocated to the Kubernetes PVC.

            '
          example: 80GB
          pattern: ^\d+(GB|MB)$
        networking:
          $ref: '#/components/schemas/K8sNetworking'
        addons:
          $ref: '#/components/schemas/K8sAddons'
    Uri:
      type: string
      example: https://charts.bitnami.com/bitnami/helm/example-chart:0.1.0
      description: 'A Uniform Resource Identifier (URI) as per RFC 3986,

        identifies the endpoint within an Edge Cloud Zone where the user

        equipment may connect to the selected application instance

        '
    ErrorInfo:
      type: object
      description: Information about the error
      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
      required:
      - status
      - code
      - message
    AppZones:
      description: 'Collection of Edge Cloud Zones and/or Kubernetes cluster reference

        where the Application Provider wants to instantiate the application.

        '
      type: array
      items:
        type: object
        properties:
          kubernetesClusterRef:
            $ref: '#/components/schemas/KubernetesClusterRef'
          EdgeCloudZone:
            $ref: '#/components/schemas/EdgeCloudZone'
      required:
      - EdgeCloudZone
      minItems: 1
      additionalProperties: false
    VmResources:
      description: Definition of Virtual Machine Infrastructure
      type: object
      required:
      - infraKind
      - numCPU
      - memory
      properties:
        infraKind:
          description: Type of infrastructure for the application.
          type: string
          example: virtualMachine
          enum:
          - virtualMachine
        numCPU:
          type: integer
          description: 'Number of vcpus in whole (i.e 1)

            '
          example: 1
        memory:
          type: integer
          example: 1024
          description: Memory in mega bytes
        additionalStorages:
          $ref: '#/components/schemas/AdditionalStorage'
        gpu:
          $ref: '#/components/schemas/GpuInfo'
    EdgeCloudRegion:
      type: string
      description: 'Human readable name of the geographical Edge Cloud Region of

        the Edge Cloud. Defined by the Edge Cloud Provider.

        '
    DockerComposeResources:
      description: Definition of Docker Compose Infrastructure
      type: object
      required:
      - infraKind
      - numCPU
      - memory
      properties:
        infraKind:
          description: Type of infrastructure for the application.
          type: string
          example: dockerCompose
          enum:
          - dockerCompose
        numCPU:
          type: integer
          description: 'Number of vcpus in whole (i.e 1)

            '
          example: 1
        memory:
          type: integer
          example: 1024
          description: Memory in mega bytes
        storage:
          $ref: '#/components/schemas/AdditionalStorage'
        gpu:
          $ref: '#/components/schemas/GpuInfo'
    Fqdn:
      type: string
      description: 'Full qualified domain name of an application instance

        '
    OperatingSystem:
      description: 'Information about the Operating System of the application image

        '
      type: object
      required:
      - architecture
      - family
      - version
      - license
      properties:
        architecture:
          description: Type of the OS Architecture
          type: string
          enum:
          - x86_64
          - x86
          example: x86_64
        family:
          description: Family to which OS belongs
          type: string
          enum:
          - RHEL
          - UBUNTU
          - COREOS
          - WINDOWS
          - OTHER
        version:
          description: Version of the OS
          type: string
          enum:
          - OS_VERSION_UBUNTU_2204_LTS
          - OS_VERSION_RHEL_8
          - OS_MS_WINDOWS_2022
          - OTHER
        license:
          description: License needed to activate the OS
          type: string
          enum:
          - OS_LICENSE_TYPE_FREE
          - OS_LICENSE_TYPE_ON_DEMAND
          - OTHER
    ContainerResources:
      description: Container Infrastructure Definition
      type: object
      required:
      - infraKind
      - numCPU
      - memory
      properties:
        infraKind:
          description: Type of infrastructure for the application.
          type: string
          example: container
          enum:
          - container
        numCPU:
          $ref: '#/components/schemas/Vcpu'
        memory:
          type: integer
          example: 1024
          description: Memory in mega bytes
        storage:
          $ref: '#/components/schemas/AdditionalStorage'
        gpu:
          $ref: '#/components/schemas/GpuInfo'
    AppProvider:
      type: string
      pattern: ^[A-Za-z][A-Za-z0-9_]{7,63}$
      description: Human readable name of the Application Provider.
    EdgeCloudZoneName:
      type: string
      description: 'Human readable name of the geographical zone of

        the Edge Cloud. Defined by the Edge Cloud Provider.

        '
    GpuInfo:
      type: object
      description: Information about the supported GPUs
      required:
      - gpuMemory
      - numGPU
      properties:
        gpuMemory:
          type: integer
          description: GPU memory in mega bytes
        numGPU:
          type: integer
          description: Number of GPUs
    Vcpu:
      type: string
      pattern: ^\d+((\.\d{1,3})|(m))?$
      description: 'Number of vcpus in whole (i.e 1), decimal (i.e 0.500) up to

        millivcpu, or millivcpu (i.e 500m) format.

        '
      example: 500m
    EdgeCloudZone:
      type: object
      description: 'An Edge Cloud Zone, uniquely identified by a

        combination of the value of the Edge Cloud Zone Id object

        and the value of the Edge Cloud Provider

        object. This value is used to identify an Edge Cloud zone

        between Edge Clouds from different Edge Cloud Providers.

        '
      required:
      - edgeCloudZoneId
      - edgeCloudZoneName
      - edgeCloudProvider
      properties:
        edgeCloudZoneId:
          $ref: '#/components/schemas/EdgeCloudZoneId'
        edgeCloudZoneName:
          $ref: '#/components/schemas/EdgeCloudZoneName'
        edgeCloudZoneStatus:
          $ref: '#/components/schemas/EdgeCloudZoneStatus'
        edgeCloudProvider:
          $ref: '#/components/schemas/EdgeCloudProvider'
        edgeCloudRegion:
          $ref: '#/components/schemas/EdgeCloudRegion'
      minItems: 1
    Ipv6Addr:
      type: string
      format: ipv6
      example: 2001:db8:85a3:8d3:1319:8a2e:370:7344
      description: 'IP of the device. A single IPv6 address, following IETF 5952

        format, may be specified like 2001:db8:85a3:8d3:1319:8a2e:370:7344

        '
    Ipv4Addr:
      type: string
      format: ipv4
      example: 192.168.0.1
      description: 'IP of the device. A single IPv4 address may be specified in

        dotted-quad form 1.2.3.4. Only this exact IP number will match the flow

        control rule.

        '
    AdditionalStorage:
      description: Additional storage for the application.
      type: array
      items:
        type: object
        required:
        - storageSize
        - mountPoint
        properties:
          name:
            type: string
            description: Name of additional storage resource.
            example: logs
          storageSize:
            type: string
            description: Additional persistent volume for the application.
            example: 80GB
            pattern: ^\d+(GB|MB)$
          mountPoint:
            type: string
            description: Location of additional storage resource.
            example: /logs
    Port:
      type: integer
      description: Port to stablish the connection
      minimum: 0
    EdgeCloudZoneId:
      type: string
      format: uuid
      description: 'Unique identifier created by the Edge Cloud Platform to identify an

        Edge Cloud Zone within an Edge Cloud.

        '
    AccessEndpoint:
      type: object
      description: 'Application Endpoint for an especific instance that is

        running in an specific Edge Cloud Zone.

        '
      required:
      - port
      anyOf:
      - required:
        - fqdn
      - required:
        - ipv4Addresses
      - required:
        - ipv6Addresses
      properties:
        port:
          $ref: '#/components/schemas/Port'
        fqdn:
          $ref: '#/components/schemas/Fqdn'
        ipv4Addresses:
          description: IP version 4 of an application instance
          type: array
          items:
            $ref: '#/components/schemas/Ipv4Addr'
          minItems: 1
        ipv6Addresses:
          description: IP version 6 of an application instance.
          type: array
          items:
            $ref: '#/components/schemas/Ipv6Addr'
          minItems: 1
    K8sAddons:
      description: 'Addons for the Kubernetes cluster.

        Additional addons should be defined in application the helm chart

        (Service Mesh, Serverless, AI).

        '
      type: object
      properties:
        monitoring:
          type: boolean
          example: true
          default: false
          description: Enable monitoring for Kubernetes cluster.
        ingress:
          type: boolean
          example: true
          default: false
          description: Enable ingress for Kubernetes cluster.
    EdgeCloudZoneStatus:
      description: Status of the Edge Cloud Zone (default is 'unknown')
      type: string
      enum:
      - active
      - inactive
      - unknown
      default: unknown
    AppId:
      type: string
      format: uuid
      description: 'A globally unique identifier associated with the application.

        Edge Cloud Platform generates this identifier when the

        Application is submitted.

        '
    RequiredResources:
      description: 'Fundamental hardware requirements to be provisioned by the

        Application Provider.

        '
      oneOf:
      - $ref: '#/components/schemas/KubernetesResources'
      - $ref: '#/components/schemas/VmResources'
      - $ref: '#/components/sche

# --- truncated at 32 KB (43 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/global-system-for-mobile-communications/refs/heads/main/openapi/global-system-for-mobile-communications-application-api-openapi.yml