Commit 64133361 authored by sodagari's avatar sodagari
Browse files

Replace TS26510_Maf_Provisioning_ContentPublishing.yaml

parent c9c3c566
Loading
Loading
Loading
Loading
+347 −0
Original line number Diff line number Diff line
@@ -27,6 +27,251 @@ security:
  - OAuth2ClientCredentials: [] 

paths:
 /provisioning-sessions/{provisioningSessionId}/content-publishing-configuration:
    parameters:
      - name: provisioningSessionId
        in: path
        required: true
        schema:
          $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId'
        description: 'The resource identifier of an existing Provisioning Session.'
    post:
      operationId: createContentPyblishingConfiguration
      summary: 'Create and upload the Content Publishing Configuration for the specified Provisioning Session'
      requestBody:
        description: 'A JSON representation of a Content Publishing Configuration'
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContentPublishingConfiguration'
      responses:
        '201': # Created
          description: 'Content Publishing Configuration Created'
          headers:
            Location:
              description: 'URL of the newly created Content Publishing Configuration (same as request URL).'
              required: true
              schema:
                $ref: 'TS26510_CommonData.yaml#/components/schemas/AbsoluteUrl'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentPublishingConfiguration'
        '400': # Bad Request: The syntax of the HTTP request is malformed in a way not covered by one of the following more specific client errors
          $ref: 'TS29571_CommonData.yaml#/components/responses/400'
        '401': # Unauthorized
          $ref: 'TS29571_CommonData.yaml#/components/responses/401'
        '403': # Forbidden
          $ref: 'TS29571_CommonData.yaml#/components/responses/403'
        '411': # Length Required
          $ref: 'TS29571_CommonData.yaml#/components/responses/411'
        '413': # Payload Too Large
          $ref: 'TS29571_CommonData.yaml#/components/responses/413'
        '414': # URI Too Long
          $ref: 'TS29571_CommonData.yaml#/components/responses/414'
        '415': # Unsupported Media Type
          $ref: 'TS29571_CommonData.yaml#/components/responses/415'
        '500': # Internal Server Error
          $ref: 'TS29571_CommonData.yaml#/components/responses/500'
        '503': # Service Unavailable
          $ref: 'TS29571_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29571_CommonData.yaml#/components/responses/default'
    get:
      operationId: retrieveContentPublishingConfiguration
      summary: 'Retrieve the Content Publishing Configuration of the specified Provisioning Session'
      responses:
        '200': # OK
          description: 'Success'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentPublishingConfiguration'
        '400': # Bad Request: The syntax of the HTTP request is malformed in a way not covered by one of the following more specific client errors
          $ref: 'TS29571_CommonData.yaml#/components/responses/400'
        '401': # Unauthorized
          $ref: 'TS29571_CommonData.yaml#/components/responses/401'
        '404': # Not Found
          $ref: 'TS29571_CommonData.yaml#/components/responses/404'
        '410': # Gone: Resource no longer exists
          $ref: 'TS29571_CommonData.yaml#/components/responses/410'
        '413': # Payload Too Large: No request body allowed for this operation
          $ref: 'TS29571_CommonData.yaml#/components/responses/413'
        '414': # URI Too Long
          $ref: 'TS29571_CommonData.yaml#/components/responses/414'
        '500': # Internal Server Error
          $ref: 'TS29571_CommonData.yaml#/components/responses/500'
        '503': # Service Unavailable
          $ref: 'TS29571_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29571_CommonData.yaml#/components/responses/default'
    put:
      operationId: updateContentPublishingConfiguration
      summary: 'Update (by replacement) the Content Publishing Configuration for the specified Provisioning Session'
      requestBody:
        description: 'A JSON representation of a Content Publishing Configuration'
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContentPublishingConfiguration'
      responses:
        '200': # OK
          description: 'Updated Content Publishing Configuration'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentPublishingConfiguration'
        '204': # No Content
          description: 'Content Publishing Configuration Unchanged'
        '400': # Bad Request: The syntax of the HTTP request is malformed in a way not covered by one of the following more specific client errors
          $ref: 'TS29571_CommonData.yaml#/components/responses/400'
        '401': # Unauthorized
          $ref: 'TS29571_CommonData.yaml#/components/responses/401'
        '403': # Forbidden
          $ref: 'TS29571_CommonData.yaml#/components/responses/403'
        '404': # Not Found
          $ref: 'TS29571_CommonData.yaml#/components/responses/404'
        '410': # Gone: Resource no longer exists
          $ref: 'TS29571_CommonData.yaml#/components/responses/410'
        '411': # Length Required
          $ref: 'TS29571_CommonData.yaml#/components/responses/411'
        '413': # Payload Too Large
          $ref: 'TS29571_CommonData.yaml#/components/responses/413'
        '414': # URI Too Long
          $ref: 'TS29571_CommonData.yaml#/components/responses/414'
        '415': # Unsupported Media Type
          $ref: 'TS29571_CommonData.yaml#/components/responses/415'
        '500': # Internal Server Error
          $ref: 'TS29571_CommonData.yaml#/components/responses/500'
        '503': # Service Unavailable
          $ref: 'TS29571_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29571_CommonData.yaml#/components/responses/default'
    patch:
      operationId: patchContentPublishingConfiguration
      summary: 'Patch the Content Publishing Configuration for the specified Provisioning Session'
      requestBody:
        description: 'A JSON representation of a Content Publishing Configuration'
        required: true
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/ContentPublishingConfiguration'
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/ContentPublishingConfiguration'
      responses:
        '200': # OK
          description: 'Patched Content Publishing Configuration'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentPublishingConfiguration'
        '204': # No Content
          description: 'Content Publishing Configuration Unchanged'
        '400': # Bad Request: The syntax of the HTTP request is malformed in a way not covered by one of the following more specific client errors
          $ref: 'TS29571_CommonData.yaml#/components/responses/400'
        '401': # Unauthorized
          $ref: 'TS29571_CommonData.yaml#/components/responses/401'
        '403': # Forbidden
          $ref: 'TS29571_CommonData.yaml#/components/responses/403'
        '404': # Not Found
          $ref: 'TS29571_CommonData.yaml#/components/responses/404'
        '410': # Gone: Resource no longer exists
          $ref: 'TS29571_CommonData.yaml#/components/responses/410'
        '411': # Length Required
          $ref: 'TS29571_CommonData.yaml#/components/responses/411'
        '413': # Payload Too Large
          $ref: 'TS29571_CommonData.yaml#/components/responses/413'
        '414': # URI Too Long
          $ref: 'TS29571_CommonData.yaml#/components/responses/414'
        '415': # Unsupported Media Type
          $ref: 'TS29571_CommonData.yaml#/components/responses/415'
        '500': # Internal Server Error
          $ref: 'TS29571_CommonData.yaml#/components/responses/500'
        '503': # Service Unavailable
          $ref: 'TS29571_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29571_CommonData.yaml#/components/responses/default'
    delete:
      operationId: destroyContentPublishingConfiguration
      summary: 'Destroy the current Content Publishing Configuration of the specified Provisioning Session'
      responses:
        '204': # No Content
          description: 'Destroyed Content Publishing Configuration'
        '400': # Bad Request: The syntax of the HTTP request is malformed in a way not covered by one of the following more specific client errors
          $ref: 'TS29571_CommonData.yaml#/components/responses/400'
        '401': # Unauthorized
          $ref: 'TS29571_CommonData.yaml#/components/responses/401'
        '404': # Not Found
          $ref: 'TS29571_CommonData.yaml#/components/responses/404'
        '410': # Gone: Resource no longer exists
          $ref: 'TS29571_CommonData.yaml#/components/responses/410'
        '413': # Payload Too Large: No request body allowed for this operation
          $ref: 'TS29571_CommonData.yaml#/components/responses/413'
        '414': # URI too long
          $ref: 'TS29571_CommonData.yaml#/components/responses/414'
        '500': # Internal Server Error
          $ref: 'TS29571_CommonData.yaml#/components/responses/500'
        '503': # Service Unavailable
          $ref: 'TS29571_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29571_CommonData.yaml#/components/responses/default'
          
  /provisioning-sessions/{provisioningSessionId}/content-Publishing-configuration/purge:
    parameters:
        - name: provisioningSessionId
          in: path
          required: true
          schema:
            $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId'
          description: A unique identifier of the Provisioning
    post:
      operationId: purgeContentPublishingCache
      summary: 'Purge the content of the cache for the Content Publishing Configuration of the specified Provisioning Session'
      requestBody:
        description: 'The regular expression pattern for resources to purge from the cache'
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              properties:
                pattern: 
                  description: 'The regular expression'
                  type: string
      responses:
        '200': # OK
          description: 'Content Purged'
          content:
            application/json:
              schema:
                description: 'The aggregate number of cache entries purged in all 5GMSd AS instances distributing content for the requested Provisioning Session.'
                type: integer
                minimum: 1
        '204': # No Content
          description: 'No Content Purged'
        '400': # Bad Request (e.g. syntactically invalid regular expression in request body)
          $ref: 'TS29571_CommonData.yaml#/components/responses/400'
        '401': # Unauthorized
          $ref: 'TS29571_CommonData.yaml#/components/responses/401'
        '404': # Not Found
          $ref: 'TS29571_CommonData.yaml#/components/responses/404'
        '411': # Length Required
          $ref: 'TS29571_CommonData.yaml#/components/responses/411'
        '413': # Payload Too Large
          $ref: 'TS29571_CommonData.yaml#/components/responses/413'
        '414': # URI Too Long
          $ref: 'TS29571_CommonData.yaml#/components/responses/414'
        '415': # Unsupported Media Type
          $ref: 'TS29571_CommonData.yaml#/components/responses/415'
        '500': # Internal Server Error
          $ref: 'TS29571_CommonData.yaml#/components/responses/500'
        '503': # Service Unavailable
          $ref: 'TS29571_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29571_CommonData.yaml#/components/responses/default'

components:
  securitySchemes:
@@ -38,3 +283,105 @@ components:
          scopes: {}

  schemas:
   
    EdgestConfiguration:
      type: object
      description: 'Parameters for egesting media content from the Media AS at reference point M2.'
          required:
            - mode
            - protocol
          properties:
        mode:
          $ref: 'TS26510_CommonData.yaml#/components/schemas/ContentTransferMode'
        protocol:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
        baseURL:
          $ref: 'TS26510_CommonData.yaml#/components/schemas/AbsoluteUrl'
        entryPoint:
          $ref: '#/components/schemas/M1MediaEntryPoint'

    M1MediaEntryPoint:
      description: "A typed entry point for downlink or uplink media streaming."
      type: object
      required:
        - relativePath
        - contentType
      properties:
        relativePath:
          $ref: 'TS26510_CommonData.yaml#/components/schemas/RelativeUrl'
        contentType:
          type: string
        profiles:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
          minItems: 1
 
    CachingConfiguration:
      type: object
      description: 'A Media AS content caching configuration.'
      required:
        - urlPatternFilter
      properties:
        urlPatternFilter:
          type: string
        cachingDirectives:
          type: object
          required:
            - noCache
          properties:
            statusCodeFilters:
              type: array
              items:
                type: integer
                minimum: 100
                maximum: 599
              minItems: 1
            noCache:
              type: boolean
            maxAge:
              $ref: 'TS29571_CommonData.yaml#/components/schemas/Uint32'

 ContributionConfigurations:
       type: array
        items:
          type: object
          description: 'A configuration for content contribution.'
          required:
            - certificateId
            - entryPoint
          properties:
            edgeResourcesConfigurationId:
              $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId' 
            contentPreparationTemplateId:
              $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId'
            certificateId: 
              type: string
              description: 'A reference to a Server Certificate resource.'
            canonicalDomainName:
              type: string
              description: 'Default Fully-Qualified Domain Name assigned by the Media AF.'
            domainNameAlias: 
              type: string
              description: 'domain name is used by the Media AS to set appropriate CORS HTTP response headers at reference point M4.'
            baseURL:
              $ref: 'TS26510_CommonData.yaml#/components/schemas/AbsoluteUrl'
            entryPoint:
               $ref: '#/components/schemas/M1MediaEntryPoint'

    # Schema for the resource itself
    ContentPublishingConfiguration:
      type: object
      description: "A representation of a Content Publishing Configuration resource."
      required:
        - name
        - contributionConfiguration
        - egestConfiguration
      properties:
        name:
          type: string
        contributionConfiguration:
          $ref: '#/components/schemas/ContributionConfiguration'
        egestConfiguration:
          $ref: '#/components/schemas/EgestConfiguration'