Commit d00b8d60 authored by bouaziziim's avatar bouaziziim
Browse files

Add new file

parent ab006c66
Loading
Loading
Loading
Loading

3gpp-m1

0 → 100644
+339 −0
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'
    description: 5G Media Provisioning Interface
    variables: {}
info:
  description: Documentation of the 3GPP M1 Provisioning interface.
  version: 1.0.0
  title: 3GPP M1d interface
  termsOfService: 'http://swagger.io/terms/'
  contact:
    email: bouazizi@qti.qualcomm.com
  license:
    name: Apache 2.0
    url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
tags:
  - name: 3GPP TS 26.512
    description: 5G Media Provisioning Interface M1d
    externalDocs:
      description: Find out more
      url: 'http://www.3gpp.org'
paths:
  /provisionings:
    get:
      summary: 'List of all Provisionings'
      description: ''
      parameters:
        - name: provisioningId
          in: query
          required: false
          schema:
            type: string
          description: A unique identifier of the Provisioning
      operationId: 'listProvisionings'
      responses:
        '200':
          description: list of Provisionings
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Provisioning'
    post:
      summary: 'Create a new Provisioning'
      description: ''
      parameters: []
      operationId: 'Create a new Provisioning'
      responses:
        '201':
          description: Created
  
  /provisionings/{provisioningId}:
    parameters:
        - name: provisioningId
          in: path
          required: true
          schema:
            type: string
          description: A unique identifier of the Provisioning
    get:
      summary: 'Get Provisioning'
      description: ''
      parameters: []
      operationId: 'getProvisioningById'
      responses:
        '200':
          description: list of Provisionings
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Provisioning'
    put:
      summary: 'Update a Provisioning'
      description: ''
      parameters: []
      operationId: ''
      responses:
        default:
          description: Default response
    delete:
      summary: ''
      description: ''
      parameters: []
      operationId: ''
      responses:
        default:
          description: Default response
          
  /provisionings/{provisioningId}/ingests:
    parameters:
        - name: provisioningId
          in: path
          required: true
          schema:
            type: string
          description: A unique identifier of the Provisioning
    get:
      summary: ''
      description: ''
      parameters: 
        - name: ingestId
          in: query
          required: false
          schema:
            type: string
          description: A unique identifier of the Ingest
      operationId: listIngests
      responses:
        '200':
          description: The identified Provisioning
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ingest'
    post:
      summary: ''
      description: ''
      parameters: []
      operationId: createIngest
      responses:
        '201':
          description: Created
  
  /provisionings/{provisioningId}/ingests/{ingestId}:
    parameters:
        - name: provisioningId
          in: path
          required: true
          schema:
            type: string
          description: A unique identifier of the Provisioning
        - name: ingestId
          in: path
          required: true
          schema:
            type: string
          description: A unique identifier of the Ingest
    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:
    parameters:
        - name: provisioningId
          in: path
          required: true
          schema:
            type: string
          description: A unique identifier of the Provisioning
        - name: ingestId
          in: path
          required: true
          schema:
            type: string
          description: A unique identifier of the Ingest

    post:
      summary: 'Purge the content of the cache'
      description: ''
      requestBody:
        description: 'The RegEx pattern for resources to purge from the cache'
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Pattern'
            
      responses:
        '200':
          description: 'Content was purged successfully'
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:
      type: object
      required:
        - id
      properties:
        id:
          type: integer
          format: int64
    Ingest:
      type: object
      required:
        - id
        - origin
      properties:
        id:
          type: integer
          format: int64
        origin:
          type: object
          properties:
            name:
              type: string
            path:
              type: string
            pull:
              type: boolean
            protocol:
              type: string
              enum:
                - dashifpush
            entryPoint:
              type: string
          xml:
            name: Category
        cache:
          type: array
          items:
            $ref: '#/components/schemas/Cache'
        configuration:
          type: object
          properties:
            contentPreparation:
              type: object
              properties:
                mimeType:
                  type: string
                content:
                  type: string
            targetDomain:
              type: string
            originDomain:
              type: string
            geoFencing:
              type: array
              items:
                $ref: '#/components/schemas/Geo'
            urlSignature:
              type: object
              properties:
                pattern:
                  type: string
                tokenName:
                  type: string
                passphraseName:
                  type: string
                passphrase:
                  type: string
                ttlName:
                  type: string
                useIPAddress:
                  type: boolean
                ipAddressName:
                  type: string
        certificateId:
          type: integer
      xml:
        name: Ingest
    Cache:
      type: object
      properties:
        pattern:
          type: string
        originCacheHeaders: 
          type: boolean
          default: true
        cacheDirectives:
          type: object
          properties:
            no-cache:
              type: boolean
            http-method-filter:
              type: array
              items:
                type: string
            status-cod-filter:
              type: array
              items:
                type: integer
            cdn-ttl:
              type: integer
              format: int32
    Geo:
      type: object
      properties:
        locationType:
          type: string
          enum:
            - cell
            - city
    Pattern: 
      type: object
      properties:
        pattern:
          type: string
        
  securitySchemes:
    m1d_auth:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://www.3gpp.org/3gpp-m1d/v1/authorize
          tokenUrl: https://www.3gpp.org/3gpp-m1d/v1/token
          scopes:
            read: Grants read access
            write: Grants write access
            admin: Grants access to admin operations
  links: {}
  callbacks: {}
security: []
 No newline at end of file