Commit d00a72e2 authored by Mirko Cano Soveri's avatar Mirko Cano Soveri
Browse files

Merge branch 'Anatoly_YAMLs_from_specs_approved_at_SA87' into 'master'

Add the YAML baseline (from TSs approved at the March 2020 SA plenary)

See merge request 3GPP/SA5/data-models!31
parents 7866ec3e 2e0868e5
Loading
Loading
Loading
Loading

OpenAPI/5gcNrm.yaml

0 → 100644
+1599 −0

File added.

Preview size limit exceeded, changes collapsed.

+307 −0
Original line number Diff line number Diff line
openapi: 3.0.1
info:
  title: TS 28.532 Performance data file reporting Service
  version: 16.1.0
  description: OAS 3.0.1 specification of the Performance Data File Reporting Service
servers:
  - url: >-
      http://{DN_prefix_authority_part}/{DN_prefix_remainder}/PerfDataFileReportMnS/v1610
    variables:
      DN_prefix_authority_part:
        description: See subclause 4.4 of TS 32.158
        default: example.com
      DN_prefix_remainder:
        description: See subclause 4.4 of TS 32.158
        default: ''
paths:
  /Files:
    get:
      summary: Read resources of information of available files
      description: >-
        With HTTP GET, resources of information of available files are read. The
        resources to be read are identified with the path component (base
        resource) and the query component (managementDataType, beginTime and
        endTime) of the URI. The fields query component allows to select the
        resource properties to be returned.
      parameters:
        - name: managementDataType
          in: query
          description: >-
            This parameter identifies the type of management data that the file
            contains to select the resources from the collection resources
            identified with the path component of the URI.
          required: true
          $ref: '#/components/schemas/managementDataType-Type'
        - name: beginTime
          in: query
          description: >-
            This parameter identifies the time stamp no later than which the
            file became available to select the resources from the collection
            resources identified with the path component of the URI.
          required: true
          $ref: '#/components/schemas/dateTime-Type'
        - name: endTime
          in: query
          description: >-
            This parameter identifies the time stamp no earlier than which the
            file became available to select the resources from the collection
            resources identified with the path component of the URI.
          required: true
          $ref: '#/components/schemas/dateTime-Type'
      responses:
        '200':
          description: >-
            Success case ("200 OK"). The resources identified in the request for
            retrieval are returned in the response message body. In case the
            fields query parameter is used, the selected resources are returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/fileInfoRetrieval-ResponseType'
        default:
          description: Error case.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error-ResponseType'
  /subscriptions:
    post:
      summary: Create a subscription
      description: >-
        To create a subscription the representation of the subscription is
        POSTed on the /subscriptions collection resource.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/subscription-RequestType'
      responses:
        '201':
          description: >-
            Success case ("201 Created"). The representation of the newly
            created subscription resource shall be returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/subscription-ResponseType'
        default:
          description: Error case.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error-ResponseType'
      callbacks:
        notifyFileReady:
          '{request.body#/consumerReference}':
            post:
              requestBody:
                required: true
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/notifyFileReady-NotifType'
              responses:
                '204':
                  description: >-
                    Success case ("204 No Content"). The notification is
                    successfully delivered. The response message body is absent.
                default:
                  description: Error case.
                  content:
                    application/json:
                      schema:
                        $ref: '#/components/schemas/error-ResponseType'
        notifyFilePreparationError:
          '{request.body#/consumerReference}':
            post:
              requestBody:
                required: true
                content:
                  application/json:
                    schema:
                      $ref: >-
                        #/components/schemas/notifyFilePreparationError-NotifType
              responses:
                '204':
                  description: >-
                    Success case ("204 No Content"). The notification is
                    successfully delivered. The response message body is absent.
                default:
                  description: Error case.
                  content:
                    application/json:
                      schema:
                        $ref: '#/components/schemas/error-ResponseType'
    delete:
      summary: Delete all subscriptions made with a specific consumerReferenceId
      description: >-
        The subscriptions are deleted by deleting the corresponding subscription
        resources. The resources to be deleted are identified with the path
        component of the URI pointing to the /subscription collection resource
        and filtering on the consumerReferenceId provided in the query part.
      parameters:
        - name: consumerReferenceId
          in: query
          description: Identifies the subscriptions to be deleted.
          required: true
          schema:
            $ref: '#/components/schemas/consumerReferenceId-QueryType'
      responses:
        '204':
          description: >-
            Success case ("204 No Content"). The subscription resources have
            been deleted. The response message body is absent.
        default:
          description: Error case.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error-ResponseType'
  '/subscriptions/{subscriptionId}':
    delete:
      summary: Delete a single subscription
      description: >-
        The subscription is deleted by deleting the corresponding subscription
        resource. The resource to be deleted is identified with the path
        component of the URI.
      parameters:
        - name: subscriptionId
          in: path
          description: Identifies the subscription to be deleted.
          required: true
          schema:
            $ref: '#/components/schemas/subscriptionId-PathType'
      responses:
        '204':
          description: >-
            Success case ("204 No Content"). The subscription resource has been
            deleted. The response message body is absent.
        default:
          description: Error case.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error-ResponseType'
components:
  schemas:
    dateTime-Type:
      type: string
      format: date-Time
    uri-Type:
      type: string
    long-Type:
      type: string
      format: long
    additionalText-Type:
      type: string
    reason-Type:
      type: string
    fileInfoRetrieval-ResponseType:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/fileInfo-Type'
    fileInfo-Type:
      type: object
      properties:
        fileLocation:
          $ref: '#/components/schemas/uri-Type'
        fileSize:
          $ref: '#/components/schemas/long-Type'
        fileReadyTime:
          $ref: '#/components/schemas/dateTime-Type'
        fileExpirationTime:
          $ref: '#/components/schemas/dateTime-Type'
        fileCompression:
          type: string
        fileFormat:
          type: string
    error-ResponseType:
      type: object
      properties:
        error:
          type: object
          properties:
            errorInfo:
              type: string
    managementDataType-Type:
      type: string
      enum:
        - PM
    header-Type:
      description: Header used in notifications as notification header
      type: object
      properties:
        uri:
          $ref: '#/components/schemas/uri-Type'
        notificationId:
          $ref: '#/components/schemas/notificationId-Type'
        notificationType:
          $ref: '#/components/schemas/notificationType-Type'
        eventTime:
          $ref: '#/components/schemas/dateTime-Type'
    subscriptionId-PathType:
      type: string
    filter-Type:
      type: string
    notificationId-Type:
      $ref: '#/components/schemas/long-Type'
    notificationType-Type:
      type: string
      enum:
        - notifyFileReady
        - notifyFilePreparationError
    subscription-ResourceType:
      type: object
      properties:
        consumerReference:
          $ref: '#/components/schemas/uri-Type'
        timeTick:
          $ref: '#/components/schemas/long-Type'
        filter:
          $ref: '#/components/schemas/filter-Type'
    subscription-RequestType:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/subscription-ResourceType'
    subscription-ResponseType:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/subscription-ResourceType'
    consumerReferenceId-QueryType:
      $ref: '#/components/schemas/uri-Type'
    notifyFileReady-NotifType:
      type: object
      properties:
        header:
          $ref: '#/components/schemas/header-Type'
        body:
          type: object
          properties:
            fileInfoList:
              type: array
              items:
                $ref: '#/components/schemas/fileInfo-Type'
            additionalText:
              $ref: '#/components/schemas/additionalText-Type'
    notifyFilePreparationError-NotifType:
      type: object
      properties:
        header:
          $ref: '#/components/schemas/header-Type'
        body:
          type: object
          properties:
            fileInfoList:
              type: array
              items:
                $ref: '#/components/schemas/fileInfo-Type'
            reason:
              $ref: '#/components/schemas/reason-Type'
            additionalText:
              $ref: '#/components/schemas/additionalText-Type'
+102 −0
Original line number Diff line number Diff line
openapi: 3.0.1
info:
  title: TS 28.532 Performance Threshold Monitoring Service
  version: 16.1.0
  description: OAS 3.0.1 specification of the Performance Threshold Monitoring Service
servers:
  - url: 'http://{monitoringNotifTarget}'
    variables:
      monitoringNotifTarget:
        description: >-
          The open API server of the performance threshold monitoring service is
          located in the consumer side, see monitoringNotifTarget attribute of
          the IOC ThresholdMonitor defined in 3GPP TS 28.622 [11]. 
        default: example.com
paths:
  /notificationSink:
    post:
      summary: Send notifications about performance threshold crossing
      description: To send a notifyThresholdCrossing notification
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/notifyThresholdCrossing-NotifType'
      responses:
        '204':
          description: >-
            Success case ("204 No Content"). The notification is successfully
            delivered. The response message body is absent.
        default:
          description: Error case.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error-ResponseType'
components:
  schemas:
    dateTime-Type:
      type: string
      format: date-Time
    uri-Type:
      type: string
    long-Type:
      type: string
      format: long
    thresholdLevel-Type:
      type: integer
    measurementTypeName-Type:
      type: string
    measurementValue-Type:
      type: string
    additionalText-Type:
      type: string
    error-ResponseType:
      type: object
      properties:
        error:
          type: object
          properties:
            errorInfo:
              type: string
    header-Type:
      description: Header used in notifications as notification header
      type: object
      properties:
        uri:
          $ref: '#/components/schemas/uri-Type'
        notificationId:
          $ref: '#/components/schemas/notificationId-Type'
        notificationType:
          $ref: '#/components/schemas/notificationType-Type'
        eventTime:
          $ref: '#/components/schemas/dateTime-Type'
    notificationId-Type:
      $ref: '#/components/schemas/long-Type'
    notificationType-Type:
      type: string
      enum:
        - notifyThresholdCrossing
    notifyThresholdCrossing-NotifType:
      type: object
      properties:
        header:
          $ref: '#/components/schemas/header-Type'
        body:
          type: object
          properties:
            startOfMonitoringGP:
              $ref: '#/components/schemas/dateTime-Type'
            endOfMonitoringGP:
              $ref: '#/components/schemas/dateTime-Type'
            monitoredObjectInstance:
              $ref: '#/components/schemas/uri-Type'
            thresholdLevel:
              $ref: '#/components/schemas/thresholdLevel-Type'
            measurementTypeName:
              $ref: '#/components/schemas/measurementTypeName-Type'
            measurementValue:
              $ref: '#/components/schemas/measurementValue-Type'
            additionalText:
              $ref: '#/components/schemas/additionalText-Type'

OpenAPI/README.md

0 → 100644
+59 −0
Original line number Diff line number Diff line
## 3GPP SA5 models and MnS OpenAPI definitions

(c) 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.


The links below will open the Swagger Editor/UI and auto-load the OpenAPI YAML file of each API:

<!-- APIs -->
## Network Resource Models (NRM)

* Generic NRM (TS 28.623)
([Editor](https://forge.etsi.org/swagger/tools/loader.html?repo=3GPP/SA5/data-models&branch=Anatoly_YAMLs_from_specs_approved_at_SA87&yaml=OpenAPI/genericNrm.yaml))
([UI](https://forge.etsi.org/swagger/tools/loader.html?repo=3GPP/SA5/data-models&branch=Anatoly_YAMLs_from_specs_approved_at_SA87&action=ui&yaml=OpenAPI/genericNrm.yaml))

* NR NRM (TS 28.541)
([Editor](https://forge.etsi.org/swagger/tools/loader.html?repo=3GPP/SA5/data-models&branch=Anatoly_YAMLs_from_specs_approved_at_SA87&yaml=OpenAPI/nrNrm.yaml))
([UI](https://forge.etsi.org/swagger/tools/loader.html?repo=3GPP/SA5/data-models&branch=Anatoly_YAMLs_from_specs_approved_at_SA87&action=ui&yaml=OpenAPI/nrNrm.yaml))

* 5GC NRM (TS 28.541)
([Editor](https://forge.etsi.org/swagger/tools/loader.html?repo=3GPP/SA5/data-models&branch=Anatoly_YAMLs_from_specs_approved_at_SA87&yaml=OpenAPI/5gcNrm.yaml))
([UI](https://forge.etsi.org/swagger/tools/loader.html?repo=3GPP/SA5/data-models&branch=Anatoly_YAMLs_from_specs_approved_at_SA87&action=ui&yaml=OpenAPI/5gcNrm.yaml))

* Slice NRM (TS 28.541)
([Editor](https://forge.etsi.org/swagger/tools/loader.html?repo=3GPP/SA5/data-models&branch=Anatoly_YAMLs_from_specs_approved_at_SA87&yaml=OpenAPI/sliceNrm.yaml))
([UI](https://forge.etsi.org/swagger/tools/loader.html?repo=3GPP/SA5/data-models&branch=Anatoly_YAMLs_from_specs_approved_at_SA87&action=ui&yaml=OpenAPI/sliceNrm.yaml))

## Management Services (MnS)

* Provisioning MnS (TS 28.532)
([Editor](https://forge.etsi.org/swagger/tools/loader.html?repo=3GPP/SA5/data-models&branch=Anatoly_YAMLs_from_specs_approved_at_SA87&yaml=OpenAPI/provMnS.yaml))
([UI](https://forge.etsi.org/swagger/tools/loader.html?repo=3GPP/SA5/data-models&branch=Anatoly_YAMLs_from_specs_approved_at_SA87&action=ui&yaml=OpenAPI/provMnS.yaml))

* Fault Supervision MnS (TS 28.532)
([Editor](https://forge.etsi.org/swagger/tools/loader.html?repo=3GPP/SA5/data-models&branch=Anatoly_YAMLs_from_specs_approved_at_SA87&yaml=OpenAPI/faultMnS.yaml))
([UI](https://forge.etsi.org/swagger/tools/loader.html?repo=3GPP/SA5/data-models&branch=Anatoly_YAMLs_from_specs_approved_at_SA87&action=ui&yaml=OpenAPI/faultMnS.yaml))

* Performance Data File Reporting MnS (TS 28.532)
([Editor](https://forge.etsi.org/swagger/tools/loader.html?repo=3GPP/SA5/data-models&branch=Anatoly_YAMLs_from_specs_approved_at_SA87&yaml=OpenAPI/PerDataFileReportMnS.yaml))
([UI](https://forge.etsi.org/swagger/tools/loader.html?repo=3GPP/SA5/data-models&branch=Anatoly_YAMLs_from_specs_approved_at_SA87&action=ui&yaml=OpenAPI/PerDataFileReportMnS.yaml))

* Performance Threshold Monitoring MnS (TS 28.532)
([Editor](https://forge.etsi.org/swagger/tools/loader.html?repo=3GPP/SA5/data-models&branch=Anatoly_YAMLs_from_specs_approved_at_SA87&yaml=OpenAPI/PerThresMonMnS.yaml))
([UI](https://forge.etsi.org/swagger/tools/loader.html?repo=3GPP/SA5/data-models&branch=Anatoly_YAMLs_from_specs_approved_at_SA87&action=ui&yaml=OpenAPI/PerThresMonMnS.yaml))

* Heartbeat Notifications(TS 28.532)
([Editor](https://forge.etsi.org/swagger/tools/loader.html?repo=3GPP/SA5/data-models&branch=Anatoly_YAMLs_from_specs_approved_at_SA87&yaml=OpenAPI/heartbeatNtf.yaml))
([UI](https://forge.etsi.org/swagger/tools/loader.html?repo=3GPP/SA5/data-models&branch=Anatoly_YAMLs_from_specs_approved_at_SA87&action=ui&yaml=OpenAPI/heartbeatNtf.yaml))



#### Tools
* <a href="https://forge.etsi.org/swagger/tools/GitlabOpenAPIFrontend.htm" target="_blank">Frontend</a> to invoke the Swagger Editor, Swagger UI, or to parse OpenAPI files with APIDevTools Swagger Parser/Validator, or to search for APIs referencing a data structure
* <a href="https://forge.etsi.org/swagger/tools/parser.html" target="_blank">API Parser/Linter</a> to parse OpenAPI files with APIDevTools Swagger Parser/Validator and run a number of <a href="https://en.wikipedia.org/wiki/Lint_(software)" target="_blank">lint</a> rules to improve API quality
* <a href="https://forge.etsi.org/swagger/tools/types.html" target="_blank">Data Type Finder</a> to find the impacted APIs due to a change on a given data type
* <a href="https://forge.etsi.org/swagger/tools/versions.html" target="_blank">API Versions Overview</a> to show a comprehensive report of the versions of all APIs in the repository

#### Other 3GPP API definitions
* <a href="https://forge.etsi.org/rep/3GPP/5G_APIs">CT4</a> specifications (29.xxx series).

OpenAPI/faultMnS.yaml

0 → 100644
+1150 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading