openapi: 3.0.0
info:
  title: Nucmf_Provisioning
  version: 1.0.0.alpha-3
  description: |
    UCMF_Provisioning Service.
    © 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
    All rights reserved.
externalDocs:
  description: 3GPP TS 29.675 V16.0.0; User Equipment (UE) radio capability provisioning service; Stage 3.
  url: http://www.3gpp.org/ftp/Specs/archive/29_series/29.675/
servers:
  - url: '{apiRoot}/nucmf-provisioning/v1'
    variables:
      apiRoot:
        default: https://example.com
        description: apiRoot as defined in clause 4.4 of 3GPP TS 29.501
security:
  - {}
  - oAuth2ClientCredentials:
    - nucmf-provisioning
paths:
  /provisionings:
    post:
      summary: Create an Individual UE radio capability provisioning
      operationId: CreateProvisioning
      tags:
        - UE radio capability provisionings (Collection)
      requestBody:
        description: create new provisionings for a given SCS/AS.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RacsData'
      responses:
        '201':
          description: Created. The creation of an Individual UE radio capability provisioning resource is confirmed and a representation of that resource is returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RacsData'
          headers:
            Location:
              description: 'Contains the URI of the newly created resource'
              required: true
              schema:
                type: string
        '400':
          $ref: 'TS29122_CommonData.yaml#/components/responses/400'
        '401':
          $ref: 'TS29122_CommonData.yaml#/components/responses/401'
        '403':
          $ref: 'TS29122_CommonData.yaml#/components/responses/403'
        '404':
          $ref: 'TS29122_CommonData.yaml#/components/responses/404'
        '411':
          $ref: 'TS29122_CommonData.yaml#/components/responses/411'
        '413':
          $ref: 'TS29122_CommonData.yaml#/components/responses/413'
        '415':
          $ref: 'TS29122_CommonData.yaml#/components/responses/415'
        '429':
          $ref: 'TS29122_CommonData.yaml#/components/responses/429'
        '500':
          description: The RACS data for all RACS IDs were not provisioned successfully.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: 'TS29122_RacsParameterProvisioning.yaml#/components/schemas/RacsFailureReport'
                minItems: 1
            application/problem+json:
              schema:
                $ref: 'TS29122_CommonData.yaml#/components/schemas/ProblemDetails'
        '503':
          $ref: 'TS29122_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29122_CommonData.yaml#/components/responses/default'
  /provisionings/{provisioningId}:
    parameters:
      - name: provisioningId
        in: path
        description: Provisioning ID
        required: true
        schema:
          type: string
    get:
      summary: Get an Individual UE radio capability provisioning
      operationId: GetProvisioning
      tags:
        - Individual UE radio capability provisioning (Document)
      responses:
        '200':
          description: OK. The provisioning information related to the request URI is returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RacsData'
        '400':
          $ref: 'TS29122_CommonData.yaml#/components/responses/400'
        '401':
          $ref: 'TS29122_CommonData.yaml#/components/responses/401'
        '403':
          $ref: 'TS29122_CommonData.yaml#/components/responses/403'
        '404':
          $ref: 'TS29122_CommonData.yaml#/components/responses/404'
        '406':
          $ref: 'TS29122_CommonData.yaml#/components/responses/406'
        '429':
          $ref: 'TS29122_CommonData.yaml#/components/responses/429'
        '500':
          $ref: 'TS29122_CommonData.yaml#/components/responses/500'
        '503':
          $ref: 'TS29122_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29122_CommonData.yaml#/components/responses/default'
    patch:
      summary: Update (PATCH) an Individual UE radio capability provisioning
      operationId: UpdateProvisioning
      tags:
        - Individual UE radio capability provisioning (Document)
      requestBody:
        description: update an existing parameter provisioning.
        required: true
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/RacsDataPatch'
      responses:
        '200':
          description: OK. The Individual UE radio capability provisioning resource is modified and a representation of that resource is returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RacsData'
        '400':
          $ref: 'TS29122_CommonData.yaml#/components/responses/400'
        '401':
          $ref: 'TS29122_CommonData.yaml#/components/responses/401'
        '403':
          $ref: 'TS29122_CommonData.yaml#/components/responses/403'
        '404':
          $ref: 'TS29122_CommonData.yaml#/components/responses/404'
        '411':
          $ref: 'TS29122_CommonData.yaml#/components/responses/411'
        '413':
          $ref: 'TS29122_CommonData.yaml#/components/responses/413'
        '415':
          $ref: 'TS29122_CommonData.yaml#/components/responses/415'
        '429':
          $ref: 'TS29122_CommonData.yaml#/components/responses/429'
        '500':
          description: The RACS data for all RACS IDs were not provisioned successfully.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: 'TS29122_RacsParameterProvisioning.yaml#/components/schemas/RacsFailureReport'
                minItems: 1
            application/problem+json:
              schema:
                $ref: 'TS29122_CommonData.yaml#/components/schemas/ProblemDetails'
        '503':
          $ref: 'TS29122_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29122_CommonData.yaml#/components/responses/default'
    put:
      summary: Replace (PUT) an Individual UE radio capability provisioning
      operationId: ReplaceProvisioning
      tags:
        - Individual UE radio capability provisioning (Document)
      requestBody:
        description: update an existing parameter provisioning.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RacsData'
      responses:
        '200':
          description: OK. The Individual UE radio capability provisioning resource is modified and a representation of that resource is returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RacsData'
        '400':
          $ref: 'TS29122_CommonData.yaml#/components/responses/400'
        '401':
          $ref: 'TS29122_CommonData.yaml#/components/responses/401'
        '403':
          $ref: 'TS29122_CommonData.yaml#/components/responses/403'
        '404':
          $ref: 'TS29122_CommonData.yaml#/components/responses/404'
        '411':
          $ref: 'TS29122_CommonData.yaml#/components/responses/411'
        '413':
          $ref: 'TS29122_CommonData.yaml#/components/responses/413'
        '415':
          $ref: 'TS29122_CommonData.yaml#/components/responses/415'
        '429':
          $ref: 'TS29122_CommonData.yaml#/components/responses/429'
        '500':
          description: The RACS data for all RACS IDs were not provisioned successfully.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: 'TS29122_RacsParameterProvisioning.yaml#/components/schemas/RacsFailureReport'
                minItems: 1
            application/problem+json:
              schema:
                $ref: 'TS29122_CommonData.yaml#/components/schemas/ProblemDetails'
        '503':
          $ref: 'TS29122_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29122_CommonData.yaml#/components/responses/default'
    delete:
      summary: Remove an Individual UE radio capability provisioning
      operationId: RemoveProvisioning
      tags:
        - Individual UE radio capability provisioning (Document)
      responses:
        '204':
          description: No Content. The Individual UE radio capability resource was successfully removed. The payload body shall be empty.
        '400':
          $ref: 'TS29122_CommonData.yaml#/components/responses/400'
        '401':
          $ref: 'TS29122_CommonData.yaml#/components/responses/401'
        '403':
          $ref: 'TS29122_CommonData.yaml#/components/responses/403'
        '404':
          $ref: 'TS29122_CommonData.yaml#/components/responses/404'
        '429':
          $ref: 'TS29122_CommonData.yaml#/components/responses/429'
        '500':
          $ref: 'TS29122_CommonData.yaml#/components/responses/500'
        '503':
          $ref: 'TS29122_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29122_CommonData.yaml#/components/responses/default'
components:
  securitySchemes:
    oAuth2ClientCredentials:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: '{tokenUrl}'
          scopes: {}
  schemas: 
    RacsData:
      type: object
      properties:
        suppFeat:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
        racsConfigs:
          type: object
          additionalProperties:
            $ref: 'TS29122_RacsParameterProvisioning.yaml#/components/schemas/RacsConfigurationRm'
          minProperties: 1
          description: Identifies the configuration related to manufacturer specific UE radio capability. Each element uniquely identifies an RACS configuration for an RACS ID and is identified in the map via the RACS ID as key. The response shall include successfully provisioned RACS data.
        racsReports:
          type: object
          additionalProperties:
            $ref: 'TS29122_RacsParameterProvisioning.yaml#/components/schemas/RacsFailureReport'
          minProperties: 1
          description: Contains the RACS IDs for which the RACS data are not provisioned successfully. The failure reason is also included.
          readOnly: true
      required:
        - racsConfigs
    RacsDataPatch:
      type: object
      properties:
        racsConfigs:
          type: object
          additionalProperties:
            $ref: 'TS29122_RacsParameterProvisioning.yaml#/components/schemas/RacsConfigurationRm'
          minProperties: 1
          description: Identifies the configuration related to manufacturer specific UE radio capability. Each element uniquely identifies an RACS configuration for an RACS ID and is identified in the map via the RACS ID as key.