Commit ae0f2c30 authored by bouaziziim's avatar bouaziziim
Browse files

Update 3gpp-m1.yaml

parent a2e2a9d4
Loading
Loading
Loading
Loading
+349 −132
Original line number Diff line number Diff line
openapi: 3.0.0
servers:
  - description: 3GPP M1 Interface
    url: https://forge.etsi.org/rep/3GPP/sa4/ts-26512/3gpp-m1/1.0.0
  - url: 'https://www.3gpp.org/3gpp-m1/v1'
# Added by API Auto Mocking Plugin
  - description: 3GPP SA4 5G Media Streaming Interfaces
    url: https://virtserver.swaggerhub.com/ibouazizi/3gpp-m1d/1.0.0
  - url: 'https://www.3gpp.org/3gpp-m1d/v1'
    description: 5G Media Provisioning Interface
    variables: {}
info:
  description: Documentation of the 3GPP M1 Provisioning interface.
  description: Documentation of the 3GPP M1d Provisioning interface.
  version: 1.0.0
  title: 3GPP M1d interface
  termsOfService: 'http://swagger.io/terms/'
  contact:
    email: bouazizi@qti.qualcomm.com
  license:
@@ -22,12 +22,12 @@ tags:
      description: Find out more
      url: 'http://www.3gpp.org'
paths:
  /provisionings:
  /provisioning-sessions:
    get:
      summary: 'List of all Provisionings'
      description: ''
      parameters:
        - name: provisioningId
        - name: provisioningSessionId
          in: query
          required: false
          schema:
@@ -36,42 +36,49 @@ paths:
      operationId: 'listProvisionings'
      responses:
        '200':
          description: list of Provisionings
          description: list of Provisioning Sessions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Provisioning'
                $ref: '#/components/schemas/ProvisioningSession'
    post:
      summary: 'Create a new Provisioning'
      summary: 'Create a new Provisioning Session'
      description: ''
      requestBody: 
        description: initial configuration of new Provisioning Session
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProvisioningSession'
      parameters: []
      operationId: 'Create a new Provisioning'
      operationId: 'Create a new Provisioning Session'
      responses:
        '201':
          description: Created
  
  /provisionings/{provisioningId}:
  /provisioning-sessions/{provisioningSessionId}:
    parameters:
        - name: provisioningId
        - name: provisioningSessionId
          in: path
          required: true
          schema:
            type: string
          description: A unique identifier of the Provisioning
          description: A unique identifier of the Provisioning Session
    get:
      summary: 'Get Provisioning'
      summary: 'Get Provisioning Session'
      description: ''
      parameters: []
      operationId: 'getProvisioningById'
      responses:
        '200':
          description: list of Provisionings
          description: list of Provisioning sessions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Provisioning'
                $ref: '#/components/schemas/ProvisioningSession'
    put:
      summary: 'Update a Provisioning'
      summary: 'Update a Provisioning Session'
      description: ''
      parameters: []
      operationId: ''
@@ -87,97 +94,100 @@ paths:
        default:
          description: Default response
          
  /provisionings/{provisioningId}/ingests:
  /provisioning-sessions/{provisioningSessionId}/content-hosting-configurations:
    parameters:
        - name: provisioningId
        - name: provisioningSessionId
          in: path
          required: true
          schema:
            type: string
          description: A unique identifier of the Provisioning
          description: 'A unique identifier of the Provisioning'
    get:
      summary: ''
      description: ''
      summary: 'retrieve an existing Content Hosting Configuration'
      description: 'retrieve an existing Content Hosting Configuration'
      parameters: 
        - name: ingestId
        - name: contentHostingConfigurationId
          in: query
          required: false
          schema:
            type: string
          description: A unique identifier of the Ingest
      operationId: listIngests
          description: A unique identifier of the Content Hosting Configuration
      responses:
        '200':
          description: The identified Provisioning
          description: The Content Hosting Configuration
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ingest'
                $ref: '#/components/schemas/ContentHostingConfiguration'
    post:
      summary: ''
      description: ''
      parameters: []
      operationId: createIngest
      summary: 'create a Content Hosting Configuration'
      description: 'Used to retrieve an existing Content Hosting Configuration'
      responses:
        '201':
          description: Created
          headers:
            Location:
              description: 'Location of the newly created Content Hosting Configuration'
              schema:
                type: string
        
  /provisionings/{provisioningId}/ingests/{ingestId}:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentHostingConfiguration'
  
  /provisioning-sessions/{provisioningSessionId}/content-hosting-configuration/{contentHostingConfigurationId}:
    parameters:
        - name: provisioningId
        - name: provisioningSessionId
          in: path
          required: true
          schema:
            type: string
          description: A unique identifier of the Provisioning
        - name: ingestId
          description: A unique identifier of the Provisioning Session
        - name: contentHostingConfigurationId
          in: path
          required: true
          schema:
            type: string
          description: A unique identifier of the Ingest
          description: A unique identifier of the Content Hosting Configuration
    get:
      summary: 'retrieve an existing Content Hosting Configuration'
      description: 'retrieve an existing Content Hosting Configuration'
      responses:
        '200':
          description: The identified Provisioning
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentHostingConfiguration'
    put:
      summary: ''
      description: ''
      parameters:
        - name: ingestId
          in: path
          required: true
          schema:
            type: string
      operationId: updateIngest
      responses:
        default:
          description: ''
    delete:
      summary: ''
      description: ''
      parameters:
        - name: ingestId
          in: query
          required: false
          schema:
            type: string
      operationId: deleteIngest
      responses:
        default:
          description: Default response
          
          
  /provisionings/{provisioningId}/ingests/{ingestId}/purge:
  /provisioning-sessions/{provisioningSessionId}/content-hosting-configuration/{contentHostingConfigurationId}/purge:
    parameters:
        - name: provisioningId
        - name: provisioningSessionId
          in: path
          required: true
          schema:
            type: string
          description: A unique identifier of the Provisioning
        - name: ingestId
        - name: contentHostingConfigurationId
          in: path
          required: true
          schema:
            type: string
          description: A unique identifier of the Ingest
          description: A unique identifier of the Content Hosting Configuration

    post:
      summary: 'Purge the content of the cache'
@@ -193,22 +203,138 @@ paths:
      responses:
        '200':
          description: 'Content was purged successfully'
  /provisioning-sessions/{provisioningSessionId}/certificates:
    parameters:
      - name: provisioningSessionId
        in: path
        required: true
        schema:
          type: string
        description: 'A unique identifier of the the Provisioning'
    post:
      summary: 'Create a new security certificate'
      description: ''
      responses:
        '200':
          description: 'The generated certificate'
          headers:
            Location: 
              description: 'Location of the newly created server certificate'
              schema:
                type: string
          content:
            'application/x-pem-file':
              schema:
                type: string
    get:
      summary: 'retrieve previously uploaded server certificate'
      parameters: 
        - name: certificateId
          in: path
          required: true
          schema:
            type: string
          description: 'A unisque identifier of the server certificate'
      responses:
        '200':
          description: 'the server certificate'
          content:
            'application/x-pem-file':
              schema:
                type: string
  /provisioning-sessions/{provisioningSessionId}/consumption-reporting-configuration:
    parameters:
      - name: provisioningSessionId
        in: path
        required: true
        schema: 
          type: string
        description: 'A unique identifier of the Provisioning'
    post:
      summary: 'Activate the consumption reporting procedure'
      description: 'Activate the consumption reporting procedure'
      responses:
        '200':
          description: 'the consumption reporting is successfully activate'
    get:
      summary: 'Retrieve the consumption reporting configuration'
      description: 'retrieve the consumption reporting configuration'
      responses:
        '200':
          description: 'a description of the consumption reporting configuration'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsumptionReportingConfiguration'
  /provisioning-sessions/{provisioningSessionId}/policy-templates:
    parameters:
      - name: provisioningSessionId
        in: path
        required: true
        schema:
          type: string
        description: 'A unique identifier of the Provisioning Session'
    post:
      summary: 'Create a new Policy Template'
      description: 'create a new Policy Template'
      responses:
        '201':
          description: 'the newly created Policy Template'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyTemplate'
  /provisioning-sessions/{provisioningSessionId}/policy-templates/{policyTemplateId}:
    parameters:
      - name: provisioningSessionId
        in: path
        required: true
        schema:
          type: string
        description: 'A unique identifier of the Provisioning Session'
      - name: policyTemplateId
        in: path
        required: true
        schema:
          type: string
        description: 'A unique identifier of the Policy Template'
    get:
      summary: 'retrieve a description of the Policy Template'
      description: 'retrieve a description of the Policy Template'
      responses:
        '200':
          description: 'a description of the Policy Template'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyTemplate'
    put:
      summary: 'modify the configuration of a Policy Template'
      description: ''
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PolicyTemplate'
      responses:
        '200':
          description: 'update a policy template'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyTemplate'
    delete: 
      summary: 'delete a Policy Template'
      description: 'delete a Policy Template'
      responses:
        '200':
          description: 'a Policy Template is deleted'
externalDocs:
  description: TS 26.512
  url: 'http://www.3gpp.org/DynaReport/26346.htm'
components:
  schemas:
    ApiResponse:
      type: object
      properties:
        code:
          type: integer
          format: int32
        type:
          type: string
        message:
          type: string
    Provisioning:
    ProvisioningSession:
      type: object
      required:
        - id
@@ -216,7 +342,7 @@ components:
        id:
          type: integer
          format: int64
    Ingest:
    ContentHostingConfiguration:
      type: object
      required:
        - id
@@ -225,7 +351,13 @@ components:
        id:
          type: integer
          format: int64
        origin:
        ingestConfiguration:
          $ref: '#/components/schemas/IngestConfiguration'
        distributionConfiguration:
          type: array
          items:
            $ref: '#/components/schemas/DistributionConfiguration'
    IngestConfiguration:
      type: object
      properties:
        name:
@@ -241,25 +373,24 @@ components:
        entryPoint:
          type: string
      xml:
            name: Category
        cache:
          type: array
          items:
            $ref: '#/components/schemas/Cache'
        configuration:
          type: object
          properties:
            contentPreparation:
        name: IngestConfiguration
    DistributionConfiguration:
      type: object
      properties:
                mimeType:
                  type: string
                content:
        contentPreparationTemplateId:
          type: string
        targetDomain:
          type: string
        originDomain:
          type: string
        pathRewriteRules:
          type: array
          items:
            $ref: '#/components/schemas/PathRewriteRule'
        cacheConfiguration:
          type: array
          items:
            $ref: '#/components/schemas/CachingConfiguration'
        geoFencing:
          type: array
          items:
@@ -267,7 +398,7 @@ components:
        urlSignature:
          type: object
          properties:
                pattern:
            urlPattern:
              type: string
            tokenName:
              type: string
@@ -275,7 +406,7 @@ components:
              type: string
            passphrase:
              type: string
                ttlName:
            tokenExpiryName:
              type: string
            useIPAddress:
              type: boolean
@@ -284,29 +415,29 @@ components:
        certificateId:
          type: integer
      xml:
        name: Ingest
    Cache:
        name: DistributionConfiguration
    PathRewriteRule:
      type: object
      properties:
        pattern:
        originPathPattern:
          type: string
        originCacheHeaders: 
          type: boolean
          default: true
        cacheDirectives:
        distributionPath:
          type: string
    CachingConfiguration:
      type: object
      properties:
            no-cache:
              type: boolean
            http-method-filter:
              type: array
              items:
        urlPatternFilter:
          type: string
            status-cod-filter:
        cachingDirectives:
          type: object
          properties:
            statusCodeFilters:
              type: array
              items:
                type: integer
            cdn-ttl:
            noCache:
              type: boolean
            maxAge:
              type: integer
              format: int32
    Geo:
@@ -317,12 +448,97 @@ components:
          enum:
            - cell
            - city
        locations:
          type: array
          items:
            type: string
    Pattern: 
      type: object
      properties:
        pattern:
          type: string
        
    ConsumptionReportingConfiguration:
      type: object
      properties:
        reportingInterval:
          $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29122_CommonData.yaml#/components/schemas/DurationSec'
        samplePercentage:
          type: number
          format: float
          minimum: 0.0
          maximum: 100.0
        locationType:
          $ref: '#/components/schemas/Geo'
    PolicyTemplate:
      type: object
      required:
        [policyTemplateId]
      properties:
        policyTemplateId:
          type: integer
        state:
          type: string
          default: 'suspended'
          enum: ['pending', 'ready', 'suspended']
        apiEndPoint: 
          type: string
        apiType:
          type: string
          default: 'N5'
          enum: ['N5', 'N33']
        externalReference:
          type: string
        qosSpecification:
          $ref: '#/components/schemas/QoSSpecification'
        applicationSessionContext:
          $ref: '#/components/schemas/ApplicationSessionContext'
        chargingSpecification:
          $ref: '#/components/schemas/ChargingSpecification'
    QoSSpecification:
      type: object
      properties:
        marBwUl:
          $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29571_CommonData.yaml#/components/schemas/BitRate'
        marBwDl:
          $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29571_CommonData.yaml#/components/schemas/BitRate'
        maxPacketLossRateDl:
          $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29571_CommonData.yaml#/components/schemas/PacketLossRateRm'
        maxPacketLossRateUl:
          $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29571_CommonData.yaml#/components/schemas/PacketLossRateRm'
        maxSuppBwDl:
          $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29571_CommonData.yaml#/components/schemas/BitRate'
        maxSuppBwUl:
          $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29571_CommonData.yaml#/components/schemas/BitRate'
        minDesBwDl:
          $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29571_CommonData.yaml#/components/schemas/BitRate'
        minDesBwUl:
          $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29571_CommonData.yaml#/components/schemas/BitRate'
        mirBwUl:
          $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29571_CommonData.yaml#/components/schemas/BitRate'
        mirBwDl:
          $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29571_CommonData.yaml#/components/schemas/BitRate'
    ApplicationSessionContext:
      type: object
      properties:
        afAppId:
          $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/AfAppId'
        sliceInfo:
          $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29571_CommonData.yaml#/components/schemas/Snssai'
        dnn:
          $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29571_CommonData.yaml#/components/schemas/Dnn'
        aspId:
          $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/AspId'
    ChargingSpecification:
      type: object
      properties:
        sponId:
          type: string
        sponStatus:
          $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/SponsoringStatus'
        gpsi:
          type: array
          items:
            $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29571_CommonData.yaml#/components/schemas/Gpsi'
  securitySchemes:
    m1d_auth:
      type: oauth2
@@ -336,4 +552,5 @@ components:
            admin: Grants access to admin operations
  links: {}
  callbacks: {}
security: []
 No newline at end of file
security: 
- m1d_auth: []
 No newline at end of file