A.2 Nudsf_DataRepository API
29.5983GPPRelease 18TSUnstructured data storage services
openapi: 3.0.0
info:
title: Nudsf_DataRepository
version: 1.2.0-alpha.1
description: |
Nudsf Data Repository Service.
© 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
All rights reserved.
externalDocs:
description: 3GPP TS 29.598 UDSF Services, V18.0.0.
url: ‘https://www.3gpp.org/ftp/Specs/archive/29_series/29.598/’
servers:
– url: ‘{apiRoot}/nudsf-dr/v1’
variables:
apiRoot:
default: https://example.com
description: apiRoot as defined in clause 4.4 of 3GPP TS 29.501
security:
– {}
– oAuth2ClientCredentials:
– nudsf-dr
paths:
/{realmId}/{storageId}/records:
summary: Access to all Records of a Storage
description: >-
root of all Records of a Storage
get:
summary: Records search with get
description: Retrieve one or multiple Records based on filter
operationId: SearchRecord
tags:
– Record CRUD
parameters:
– name: realmId
in: path
description: Identifier of the Realm
required: true
schema:
type: string
example: Realm01
– name: storageId
in: path
description: Identifier of the Storage
required: true
schema:
type: string
example: Storage01
– name: limit-range
in: query
description: The most number of record references to fetch
schema:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/Uinteger’
– name: filter
in: query
description: Query filter using conditions on tags
content:
application/json:
schema:
$ref: ‘#/components/schemas/SearchExpression’
– name: count-indicator
in: query
description: Indicates whether the number of records that matched the criteria shall be returned.
schema:
type: boolean
default: false
– name: supported-features
in: query
description: Features required to be supported by the target NF
schema:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’
– name: retrieve-records
in: query
description: Indicates whether the UDSF is requested to include matching records within the response.
schema:
$ref: ‘#/components/schemas/RetrieveRecords’
– name: max-payload-size
in: query
description: Indicates the number of kilo octets the consumer is prepared to receive
schema:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/Uinteger’
responses:
‘200’:
description: Successful case. Response contains result of the search.
content:
application/json:
schema:
$ref: ‘#/components/schemas/RecordSearchResult’
‘204’:
description: >-
The search condition does not match any Record.
‘400’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/400’
‘401’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/401’
‘403’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/403’
‘404’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/404’
‘406’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/406’
‘429’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/429’
‘500’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/500’
‘502’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/502’
‘503’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/503’
default:
$ref: ‘TS29571_CommonData.yaml#/components/responses/default’
delete:
summary: Bulk Deletion of Records
description: Delete multiple Records based on filter
operationId: BulkDeleteRecords
tags:
– Record CRUD
parameters:
– name: realmId
in: path
description: Identifier of the Realm
required: true
schema:
type: string
example: Realm01
– name: storageId
in: path
description: Identifier of the Storage
required: true
schema:
type: string
example: Storage01
– name: filter
in: query
required: true
content:
application/json:
schema:
$ref: ‘#/components/schemas/SearchExpression’
– name: supported-features
in: query
description: Features required to be supported by the target NF
schema:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’
responses:
‘200’:
description: Successful case. Response contains RecordIdList.
content:
application/json:
schema:
$ref: ‘#/components/schemas/RecordIdList’
‘204’:
description: Successful case.
‘400’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/400’
‘401’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/401’
‘403’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/403’
‘404’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/404’
‘406’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/406’
‘429’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/429’
‘500’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/500’
‘502’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/502’
‘503’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/503’
default:
$ref: ‘TS29571_CommonData.yaml#/components/responses/default’
/{realmId}/{storageId}/records/{recordId}:
summary: Access to a specific Record, identified by its RecordId
description: >-
Access to a specific Record
get:
summary: Record access
description: retrieve one specific Record
operationId: GetRecord
tags:
– Record CRUD
parameters:
– name: realmId
in: path
description: Identifier of the Realm
required: true
schema:
type: string
example: Realm01
– name: storageId
in: path
description: Identifier of the Storage
required: true
schema:
type: string
example: Storage01
– name: recordId
in: path
description: Identifier of the Record
required: true
schema:
type: string
example: ‘UserRecordValue000000001’
– name: If-None-Match
in: header
description: Validator for conditional requests, as described in RFC 7232, 3.2
schema:
type: string
– name: If-Modified-Since
in: header
description: Validator for conditional requests, as described in RFC 7232, 3.3
schema:
type: string
– name: supported-features
in: query
description: Features required to be supported by the target NF
schema:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’
responses:
‘200’ : #result ok
$ref: ‘#/components/responses/RecordBody’
‘304’:
$ref: ‘#/components/responses/304’
‘400’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/400’
‘401’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/401’
‘403’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/403’
‘404’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/404’
‘406’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/406’
‘429’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/429’
‘500’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/500’
‘502’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/502’
‘503’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/503’
default:
$ref: ‘TS29571_CommonData.yaml#/components/responses/default’
put:
summary: Create/Modify Record
description: Create or Modify a Record with a user provided RecordId
operationId: CreateOrModifyRecord
tags:
– Record CRUD
parameters:
– name: realmId
in: path
description: Identifier(name) of the Realm
required: true
schema:
type: string
example: Realm01
– name: storageId
in: path
description: Identifier of the Storage
required: true
schema:
type: string
example: Storage01
– name: recordId
in: path
description: Identifier of the Record
required: true
schema:
type: string
example: UserRecordValue000000001
– name: If-None-Match
in: header
description: Validator for conditional requests, as described in RFC 7232, 3.2
schema:
type: string
– name: If-Match
in: header
description: Record validator for conditional requests, as described in RFC 7232, 3.2
schema:
type: string
– name: get-previous
in: query
description: Retrieve the Record before update
required: false
schema:
type: boolean
default: false
– name: supported-features
in: query
description: Features required to be supported by the target NF
schema:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’
requestBody:
$ref: ‘#/components/requestBodies/RecordBody’
callbacks:
recordExpired:
‘{$request.body#/callbackReference}’:
post:
parameters:
– name: Content-Location
in: header
description: The expired record URI
schema:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/Uri’
requestBody:
$ref: ‘#/components/requestBodies/RecordBody’
responses:
‘204’:
description: Callback executed successfully
‘400’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/400’
‘401’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/401’
‘403’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/403’
‘404’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/404’
‘411’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/411’
‘413’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/413’
‘415’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/415’
‘429’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/429’
‘500’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/500’
‘502’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/502’
‘503’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/503’
default:
$ref: ‘TS29571_CommonData.yaml#/components/responses/default’
responses:
‘200’ : # Update with return
$ref: ‘#/components/responses/RecordBody’
‘201’:
description: >-
Create case. The resource has been successfully created, location header indicates
the URI of the created Record.
$ref: ‘#/components/responses/RecordBody’
headers:
Location:
$ref: ‘#/components/headers/Location’
Cache-Control:
$ref: ‘#/components/headers/Cache-Control’
ETag:
$ref: ‘#/components/headers/ETag’
Last-Modified:
$ref: ‘#/components/headers/Last-Modified’
‘204’: # Update without return
description: >-
Update case. The resource has been successfully updated and no
additional content is included in the response message.
headers:
Cache-Control:
$ref: ‘#/components/headers/Cache-Control’
ETag:
$ref: ‘#/components/headers/ETag’
Last-Modified:
$ref: ‘#/components/headers/Last-Modified’
‘304’:
$ref: ‘#/components/responses/304’
‘400’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/400’
‘401’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/401’
‘403’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/403’
‘404’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/404’
‘408’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/408’
‘411’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/411’
‘412’: # Return Record value if get-previous=true
$ref: ‘#/components/responses/RecordBody’
‘413’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/413’
‘415’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/415’
‘429’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/429’
‘500’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/500’
‘502’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/502’
‘503’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/503’
default:
$ref: ‘TS29571_CommonData.yaml#/components/responses/default’
delete:
summary: Delete a Record with an user provided RecordId
operationId: DeleteRecord
tags:
– Record CRUD
parameters:
– name: realmId
in: path
description: Identifier(name) of the Realm
required: true
schema:
type: string
example: Realm01
– name: storageId
in: path
description: Identifier of the Storage
required: true
schema:
type: string
example: Storage01
– name: recordId
in: path
description: Identifier of the Record
required: true
schema:
type: string
example: UserRecordValue000000001
– name: If-Match
in: header
description: Record validator for conditional requests, as described in RFC 7232, 3.2
schema:
type: string
– name: get-previous
in: query
description: Retrieve the Record before delete
required: false
schema:
type: boolean
default: false
– name: supported-features
in: query
description: Features required to be supported by the target NF
schema:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’
responses:
‘200’:
$ref: ‘#/components/responses/RecordBodyDelete’
‘204’:
description: Successful case.
headers:
ETag:
$ref: ‘#/components/headers/ETag’
Last-Modified:
$ref: ‘#/components/headers/Last-Modified’
‘304’:
$ref: ‘#/components/responses/304’
‘400’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/400’
‘401’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/401’
‘403’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/403’
‘404’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/404’
‘408’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/408’
‘412’: # Return return value if get-previous=true
$ref: ‘#/components/responses/RecordBody’
‘429’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/429’
‘500’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/500’
‘502’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/502’
‘503’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/503’
default:
$ref: ‘TS29571_CommonData.yaml#/components/responses/default’
/{realmId}/{storageId}/records/{recordId}/meta:
summary: Access to the meta of a specific Record, identified by its RecordId
description: >-
Access to the meta of a specific Record
get:
summary: Record’s meta access
description: retrieve meta of a specific Record
operationId: GetMeta
tags:
– Record CRUD
parameters:
– name: realmId
in: path
description: Identifier of the Realm
required: true
schema:
type: string
example: Realm01
– name: storageId
in: path
description: Identifier of the Storage
required: true
schema:
type: string
example: Storage01
– name: recordId
in: path
description: Identifier of the Record
required: true
schema:
type: string
example: ‘UserRecordValue000000001’
– name: If-None-Match
in: header
description: Validator for conditional requests, as described in RFC 7232, 3.2
schema:
type: string
– name: If-Modified-Since
in: header
description: Validator for conditional requests, as described in RFC 7232, 3.3
schema:
type: string
– name: supported-features
in: query
description: Features required to be supported by the target NF
schema:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’
responses:
‘200’:
description: Expected response to a valid request
headers:
Cache-Control:
$ref: ‘#/components/headers/Cache-Control’
ETag:
$ref: ‘#/components/headers/ETag’
Last-Modified:
$ref: ‘#/components/headers/Last-Modified’
content:
application/json:
schema:
$ref: ‘#/components/schemas/RecordMeta’
‘304’:
$ref: ‘#/components/responses/304’
‘400’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/400’
‘401’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/401’
‘403’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/403’
‘404’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/404’
‘406’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/406’
‘429’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/429’
‘500’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/500’
‘502’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/502’
‘503’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/503’
default:
$ref: ‘TS29571_CommonData.yaml#/components/responses/default’
patch: # patch meta data
summary: Record’s meta update
description: update meta of a specific Record
operationId: UpdateMeta
tags:
– Record CRUD
parameters:
– name: realmId
in: path
description: Identifier of the Realm
required: true
schema:
type: string
example: Realm01
– name: storageId
in: path
description: Identifier of the Storage
required: true
schema:
type: string
example: Storage01
– name: recordId
in: path
description: Identifier of the Record
required: true
schema:
type: string
example: ‘UserRecordValue000000001’
– name: If-Match
in: header
description: Record validator for conditional requests, as described in RFC 7232, 3.2
schema:
type: string
– name: supported-features
in: query
description: Features required to be supported by the target NF
schema:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’
requestBody:
description: Meta data to patch
content:
application/json-patch+json:
example: ‘[{ "op": "replace", "path": "/tags/ueId", "value": "450005" }, { "op": "remove", "path": "/tags/recordId" }]’
schema:
type: array
items:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/PatchItem’
minItems: 1
required: true
responses:
‘200’:
description: >-
One or more modification instructions have been discarded, the execution report is returned in response PatchResult.
content:
application/json:
example:
schema:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/PatchResult’
headers:
Cache-Control:
$ref: ‘#/components/headers/Cache-Control’
ETag:
$ref: ‘#/components/headers/ETag’
Last-Modified:
$ref: ‘#/components/headers/Last-Modified’
‘204’:
description: >-
Successful case. The meta has been successfully updated and no return is expected.
headers:
Cache-Control:
$ref: ‘#/components/headers/Cache-Control’
ETag:
$ref: ‘#/components/headers/ETag’
Last-Modified:
$ref: ‘#/components/headers/Last-Modified’
‘304’:
$ref: ‘#/components/responses/304’
‘400’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/400’
‘401’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/401’
‘403’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/403’
‘404’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/404’
‘408’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/408’
‘411’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/411’
‘413’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/413’
‘415’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/415’
‘429’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/429’
‘500’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/500’
‘502’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/502’
‘503’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/503’
default:
$ref: ‘TS29571_CommonData.yaml#/components/responses/default’
/{realmId}/{storageId}/records/{recordId}/blocks:
summary: Access to the Blocks of a specific Record, identified by its RecordId
description: >-
Access to the Blocks of a specific Record
get:
summary: Record’s Blocks access
description: retrieve all Blocks of a specific Record
operationId: GetBlockList
tags:
– Block CRUD
parameters:
– name: realmId
in: path
description: Identifier of the Realm
required: true
schema:
type: string
example: Realm01
– name: storageId
in: path
description: Identifier of the Storage
required: true
schema:
type: string
example: Storage01
– name: recordId
in: path
description: Identifier of the Record
required: true
schema:
type: string
example: ‘UserRecordValue000000001’
– name: supported-features
in: query
description: Features required to be supported by the target NF
schema:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’
responses:
‘200’:
description: Expected response to a successful request
headers:
Cache-Control:
$ref: ‘#/components/headers/Cache-Control’
ETag:
$ref: ‘#/components/headers/ETag’
Last-Modified:
$ref: ‘#/components/headers/Last-Modified’
content:
multipart/parallel:
schema:
type: object
properties:
blocks:
type: array
description: >-
an array of Block parts, can be empty
items:
$ref: ‘#/components/schemas/Block’
encoding:
blocks:
contentType: ‘*/*’ # Block content type can be of any type.
headers:
Content-Id: # Block identifier is defined by the Content-Id header.
schema:
type: string
required: true
Content-Transfer-Encoding:
schema:
type: string
required: true
‘204’:
description: Successful response, the record contains no blocks
‘400’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/400’
‘401’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/401’
‘403’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/403’
‘404’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/404’
‘406’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/406’
‘429’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/429’
‘500’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/500’
‘502’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/502’
‘503’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/503’
default:
$ref: ‘TS29571_CommonData.yaml#/components/responses/default’
/{realmId}/{storageId}/records/{recordId}/blocks/{blockId}:
summary: Access to a Block of a specific Record, identified by its BlockId
description: >-
Access to a specific Block of a specific Record
get:
summary: Retrieve a specific Block
description: retrieve a specific Block
operationId: GetBlock
tags:
– Block CRUD
parameters:
– name: realmId
in: path
description: Identifier of the Realm
required: true
schema:
type: string
example: Realm01
– name: storageId
in: path
description: Identifier of the Storage
required: true
schema:
type: string
example: Storage01
– name: recordId
in: path
description: Identifier of the Record
required: true
schema:
type: string
example: ‘UserRecordValue000000001’
– name: blockId
in: path
description: Id of the Block
required: true
schema:
type: string
example: ‘userDefjson01’
– name: If-None-Match
in: header
description: Validator for conditional requests, as described in RFC 7232, 3.2
schema:
type: string
– name: If-Modified-Since
in: header
description: Validator for conditional requests, as described in RFC 7232, 3.3
schema:
type: string
– name: supported-features
in: query
description: Features required to be supported by the target NF
schema:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’
responses:
‘200’:
$ref: ‘#/components/responses/BlockBody’
‘304’:
$ref: ‘#/components/responses/304’
‘400’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/400’
‘401’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/401’
‘403’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/403’
‘404’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/404’
‘406’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/406’
‘429’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/429’
‘500’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/500’
‘502’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/502’
‘503’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/503’
default:
$ref: ‘TS29571_CommonData.yaml#/components/responses/default’
put:
summary: Create or Update a specific Block in a Record.
description: Create or update a specific Block, related to a Record
operationId: CreateOrModifyBlock
tags:
– Block CRUD
parameters:
– name: realmId
in: path
description: Identifier of the Realm
required: true
schema:
type: string
example: Realm01
– name: storageId
in: path
description: Identifier of the Storage
required: true
schema:
type: string
example: Storage01
– name: recordId
in: path
description: Identifier of the Record
required: true
schema:
type: string
example: ‘UserRecordValue000000001’
– name: blockId
in: path
description: Id of the Block
required: true
schema:
type: string
example: ‘userDefjson01’
– name: get-previous
in: query
description: Retrieve the Block before update
required: false
schema:
type: boolean
default: false
– name: If-None-Match
in: header
description: Validator for conditional requests, as described in RFC 7232, 3.2
schema:
type: string
– name: If-Match
in: header
description: Record validator for conditional requests, as described in RFC 7232, 3.2
schema:
type: string
– name: supported-features
in: query
description: Features required to be supported by the target NF
schema:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’
requestBody:
description: information on the Block to create
required: true
content:
‘*/*’:
schema:
$ref: ‘#/components/schemas/Block’
responses:
‘200’:
$ref: ‘#/components/responses/BlockBody’
‘201’:
description: >-
Creation case. The Block has been successfully created. Location header indicates the URI of the created Block.
headers:
Location:
$ref: ‘#/components/headers/Location’
Cache-Control:
$ref: ‘#/components/headers/Cache-Control’
ETag:
$ref: ‘#/components/headers/ETag’
Last-Modified:
$ref: ‘#/components/headers/Last-Modified’
‘204’:
description: >-
Successful case. The resource has been successfully updated.
headers:
Cache-Control:
$ref: ‘#/components/headers/Cache-Control’
ETag:
$ref: ‘#/components/headers/ETag’
Last-Modified:
$ref: ‘#/components/headers/Last-Modified’
‘400’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/400’
‘401’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/401’
‘403’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/403’
‘404’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/404’
‘408’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/408’
‘411’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/411’
‘412’: # Return previous Block value if get-previous=true
$ref: ‘#/components/responses/BlockBody’
‘413’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/413’
‘415’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/415’
‘429’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/429’
‘500’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/500’
‘502’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/502’
‘503’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/503’
default:
$ref: ‘TS29571_CommonData.yaml#/components/responses/default’
delete:
summary: Delete a specific Block. Then update the Record
description: delete a specific Block, related to a Record
operationId: DeleteBlock
tags:
– Block CRUD
parameters:
– name: realmId
in: path
description: Identifier of the Realm
required: true
schema:
type: string
example: Realm01
– name: storageId
in: path
description: Identifier of the Storage
required: true
schema:
type: string
example: Storage01
– name: recordId
in: path
description: Identifier of the Record
required: true
schema:
type: string
example: ‘UserRecordValue000000001’
– name: blockId
in: path
description: Id of the Block
required: true
schema:
type: string
example: ‘userDefjson01’
– name: get-previous
in: query
description: Retrieve the Block before delete
required: false
schema:
type: boolean
default: false
– name: If-Match
in: header
description: Record validator for conditional requests, as described in RFC 7232, 3.2
schema:
type: string
– name: supported-features
in: query
description: Features required to be supported by the target NF
schema:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’
responses:
‘200’:
$ref: ‘#/components/responses/BlockBodyDelete’
‘204’:
description: >-
Successful case. The Block has been successfully deleted.
headers:
ETag:
$ref: ‘#/components/headers/ETag’
Last-Modified:
$ref: ‘#/components/headers/Last-Modified’
‘400’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/400’
‘401’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/401’
‘403’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/403’
‘404’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/404’
‘408’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/408’
‘412’: # Return previous Block value if get-previous=true
$ref: ‘#/components/responses/BlockBody’
‘429’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/429’
‘500’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/500’
‘502’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/502’
‘503’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/503’
default:
$ref: ‘TS29571_CommonData.yaml#/components/responses/default’
/{realmId}/{storageId}/subs-to-notify:
summary: The notification subscription collection resource
description: >-
Access to the subscription resource
get:
summary: Notification subscription retrieval
description: retrieve all notification subscriptions of the storage
operationId: GetNotificationSubscriptions
tags:
– NotificationSubscriptions CRUD
parameters:
– name: realmId
in: path
description: Identifier of the Realm
required: true
schema:
type: string
example: Realm01
– name: storageId
in: path
description: Identifier of the Storage
required: true
schema:
type: string
example: Storage01
– name: limit-range
in: query
description: The maximum number of NotificationSubscriptions to fetch
schema:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/Uinteger’
– name: supported-features
in: query
description: Features required to be supported by the target NF
schema:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’
responses:
‘200’:
description: Expected response to a valid request
content:
application/json:
schema:
type: array
items:
$ref: ‘#/components/schemas/NotificationSubscription’
‘304’:
$ref: ‘#/components/responses/304’
‘400’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/400’
‘401’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/401’
‘403’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/403’
‘404’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/404’
‘406’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/406’
‘429’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/429’
‘500’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/500’
‘502’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/502’
‘503’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/503’
default:
$ref: ‘TS29571_CommonData.yaml#/components/responses/default’
/{realmId}/{storageId}/subs-to-notify/{subscriptionId}:
summary: The notification subscription resource
description: >-
Access to the subscription resource
get:
summary: Notification subscription retrieval
description: retrieve a single notification subscription of the storage
operationId: GetNotificationSubscription
tags:
– NotificationSubscription CRUD
parameters:
– name: realmId
in: path
description: Identifier of the Realm
required: true
schema:
type: string
example: Realm01
– name: storageId
in: path
description: Identifier of the Storage
required: true
schema:
type: string
example: Storage01
– name: subscriptionId
in: path
description: Identifier of the NotificationSubscription
required: true
schema:
type: string
example: Subscription01
– name: supported-features
in: query
description: Features required to be supported by the target NF
schema:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’
– name: If-None-Match
in: header
description: Validator for conditional requests, as described in RFC 7232, 3.2
schema:
type: string
– name: If-Modified-Since
in: header
description: Validator for conditional requests, as described in RFC 7232, 3.3
schema:
type: string
responses:
‘200’:
description: Expected response to a valid request
headers:
Cache-Control:
$ref: ‘#/components/headers/Cache-Control’
ETag:
$ref: ‘#/components/headers/ETag’
Last-Modified:
$ref: ‘#/components/headers/Last-Modified’
content:
application/json:
schema:
$ref: ‘#/components/schemas/NotificationSubscription’
‘304’:
$ref: ‘#/components/responses/304’
‘400’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/400’
‘401’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/401’
‘403’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/403’
‘404’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/404’
‘406’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/406’
‘429’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/429’
‘500’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/500’
‘502’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/502’
‘503’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/503’
default:
$ref: ‘TS29571_CommonData.yaml#/components/responses/default’
delete:
summary: Delete a Notification Subscription of the storage
description: delete a single subscriptions of the storage
operationId: DeleteNotificationSubscription
tags:
– NotificationSubscription CRUD
parameters:
– name: realmId
in: path
description: Identifier of the Realm
required: true
schema:
type: string
example: Realm01
– name: storageId
in: path
description: Identifier of the Storage
required: true
schema:
type: string
example: Storage01
– name: subscriptionId
in: path
description: Identifier of the NotificationSubscription
required: true
schema:
type: string
example: Subscription01
– name: client-id
in: query
description: Identifies the NF or NFSet
required: true
schema:
$ref: ‘#/components/schemas/ClientId’
– name: get-previous
in: query
description: Retrieve the NotificationSubscription before delete
required: false
schema:
type: boolean
default: false
– name: If-Match
in: header
description: Record validator for conditional requests, as described in RFC 7232, 3.2
schema:
type: string
– name: supported-features
in: query
description: Features required to be supported by the target NF
schema:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’
responses:
‘200’:
description: Deleted NotificationSubscription if requested with get-previous
content:
application/json:
schema:
type: array
items:
$ref: ‘#/components/schemas/NotificationSubscription’
‘204’:
description: >-
Successful case. The SubscriptionNotification has been successfully deleted.
‘400’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/400’
‘401’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/401’
‘403’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/403’
‘404’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/404’
‘408’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/408’
‘412’:
description: Return previous NotificationSubscription value if get-previous=true
content:
application/json:
schema:
$ref: ‘#/components/schemas/NotificationSubscription’
‘429’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/429’
‘500’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/500’
‘502’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/502’
‘503’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/503’
default:
$ref: ‘TS29571_CommonData.yaml#/components/responses/default’
patch: # patch NotificationSubscription data
summary: NotificationSubscription update
description: update a specific NotificationSubscription
operationId: UpdateNotificationSubscription
tags:
– NotificationSubscription CRUD
parameters:
– name: realmId
in: path
description: Identifier of the Realm
required: true
schema:
type: string
example: Realm01
– name: storageId
in: path
description: Identifier of the Storage
required: true
schema:
type: string
example: Storage01
– name: subscriptionId
in: path
description: Identifier of the NotificationSubscription
required: true
schema:
type: string
example: Subscription01
– name: If-Match
in: header
description: Validator for conditional requests, as described in RFC 7232, 3.2
schema:
type: string
– name: supported-features
in: query
description: Features required to be supported by the target NF
schema:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’
requestBody:
description: data to patch
content:
application/json-patch+json:
example: ‘TBD’
schema:
type: array
items:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/PatchItem’
minItems: 1
required: true
responses:
‘200’:
description: >-
One or more modification instructions have been discarded, the execution report is returned in response PatchResult.
content:
application/json:
example:
schema:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/PatchResult’
headers:
Cache-Control:
$ref: ‘#/components/headers/Cache-Control’
ETag:
$ref: ‘#/components/headers/ETag’
Last-Modified:
$ref: ‘#/components/headers/Last-Modified’
‘204’:
description: >-
Successful case. The meta has been successfully updated and no return is expected.
headers:
Cache-Control:
$ref: ‘#/components/headers/Cache-Control’
ETag:
$ref: ‘#/components/headers/ETag’
Last-Modified:
$ref: ‘#/components/headers/Last-Modified’
‘304’:
$ref: ‘#/components/responses/304’
‘400’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/400’
‘401’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/401’
‘403’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/403’
‘404’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/404’
‘408’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/408’
‘411’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/411’
‘413’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/413’
‘415’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/415’
‘429’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/429’
‘500’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/500’
‘502’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/502’
‘503’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/503’
default:
$ref: ‘TS29571_CommonData.yaml#/components/responses/default’
put:
summary: NotificationSubscription Create/Update
operationId: CreateAndUpdateNotificationSubscription
tags:
– NotificationSubscription CRUD
parameters:
– name: realmId
in: path
description: Identifier of the Realm
required: true
schema:
type: string
example: Realm01
– name: storageId
in: path
description: Identifier of the Storage
required: true
schema:
type: string
example: Storage01
– name: subscriptionId
in: path
description: Identifier of the NotificationSubscription
required: true
schema:
type: string
example: Subscription01
– name: supported-features
in: query
description: Features required to be supported by the target NF
schema:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’
– name: If-None-Match
in: header
description: Validator for conditional requests, as described in RFC 7232, 3.2
schema:
type: string
– name: If-Match
in: header
description: Record validator for conditional requests, as described in RFC 7232, 3.2
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: ‘#/components/schemas/NotificationSubscription’
required: true
responses:
‘200’ : # Update
description: Expected response to a valid update request
content:
application/json:
schema:
$ref: ‘#/components/schemas/NotificationSubscription’
‘201’:
description: Expected response to a valid create request
content:
application/json:
schema:
$ref: ‘#/components/schemas/NotificationSubscription’
headers:
Location:
description: ‘Contains the URI of the newly created resource according to the structure: {apiRoot}/nudsf-dr/<apiVersion>/{realmId}/{storageId}/subs-to-notify/{subscriptionId}’
required: true
schema:
type: string
Cache-Control:
$ref: ‘#/components/headers/Cache-Control’
ETag:
$ref: ‘#/components/headers/ETag’
Last-Modified:
$ref: ‘#/components/headers/Last-Modified’
‘304’:
$ref: ‘#/components/responses/304’
‘400’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/400’
‘401’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/401’
‘403’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/403’
‘404’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/404’
‘408’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/408’
‘409’:
description: Conflict
content:
application/json:
schema:
type: array
items:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/Uri’
‘411’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/411’
‘412’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/412’
‘413’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/413’
‘415’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/415’
‘429’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/429’
‘500’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/500’
‘502’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/502’
‘503’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/503’
default:
description: Unexpected error
content:
application/problem+json:
schema:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/ProblemDetails’
callbacks:
onDataChange:
‘{request.body#/callbackReference}’:
post:
requestBody:
$ref: ‘#/components/requestBodies/RecordNotificationBody’
responses:
‘204’:
description: Callback executed successfully
‘400’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/400’
‘401’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/401’
‘403’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/403’
‘404’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/404’
‘411’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/411’
‘413’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/413’
‘415’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/415’
‘429’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/429’
‘500’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/500’
‘502’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/502’
‘503’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/503’
default:
$ref: ‘TS29571_CommonData.yaml#/components/responses/default’
subscriptionExpiryNotification:
‘{request.body#/expiryCallbackReference}’:
post:
requestBody:
required: true
content:
application/json:
schema:
$ref: ‘#/components/schemas/NotificationInfo’
responses:
‘204’:
description: Successful Notification response
‘400’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/400’
‘401’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/401’
‘403’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/403’
‘404’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/404’
‘411’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/411’
‘413’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/413’
‘415’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/415’
‘429’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/429’
‘500’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/500’
‘502’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/502’
‘503’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/503’
default:
$ref: ‘TS29571_CommonData.yaml#/components/responses/default’
/{realmId}/{storageId}/meta-schemas/{schemaId}:
summary: Access to a specific Meta Schema, identified by its SchemaId
description: >-
Access to a specific Meta Schema
get:
summary: Meta Schema access
description: retrieve one specific Meta Schema
operationId: GetMetaSchema
tags:
– MetaSchema CRUD
parameters:
– name: realmId
in: path
description: Identifier of the Realm
required: true
schema:
type: string
example: Realm01
– name: storageId
in: path
description: Identifier of the Storage
required: true
schema:
type: string
example: Storage01
– name: schemaId
in: path
description: Identifier of the Meta Schema
required: true
schema:
$ref: ‘#/components/schemas/SchemaId’
– name: If-None-Match
in: header
description: Validator for conditional requests, as described in RFC 7232, 3.2
schema:
type: string
– name: If-Modified-Since
in: header
description: Validator for conditional requests, as described in RFC 7232, 3.3
schema:
type: string
– name: supported-features
in: query
description: Features required to be supported by the target NF
schema:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’
responses:
‘200’ : #result ok
$ref: ‘#/components/responses/RecordBody’
‘304’:
$ref: ‘#/components/responses/304’
‘400’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/400’
‘401’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/401’
‘403’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/403’
‘404’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/404’
‘406’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/406’
‘429’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/429’
‘500’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/500’
‘502’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/502’
‘503’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/503’
default:
$ref: ‘TS29571_CommonData.yaml#/components/responses/default’
put:
summary: Create/Modify Meta Schema
description: Create or Modify a Meta Schema with a user provided SchemaId
operationId: CreateOrModifyMetaSchema
tags:
– MetaSchema CRUD
parameters:
– name: realmId
in: path
description: Identifier(name) of the Realm
required: true
schema:
type: string
example: Realm01
– name: storageId
in: path
description: Identifier of the Storage
required: true
schema:
type: string
example: Storage01
– name: schemaId
in: path
description: Identifier of the Meta Schema
required: true
schema:
$ref: ‘#/components/schemas/SchemaId’
– name: If-None-Match
in: header
description: Validator for conditional requests, as described in RFC 7232, 3.2
schema:
type: string
– name: If-Match
in: header
description: Validator for conditional requests, as described in RFC 7232, 3.2
schema:
type: string
– name: get-previous
in: query
description: Retrieve the Meta Schema before update
required: false
schema:
type: boolean
default: false
– name: supported-features
in: query
description: Features required to be supported by the target NF
schema:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’
requestBody:
content:
application/json:
schema:
$ref: ‘#/components/schemas/MetaSchema’
required: true
responses:
‘200’:
description: Update with return
content:
application/json:
schema:
$ref: ‘#/components/schemas/MetaSchema’
‘201’:
description: >-
Create case. The resource has been successfully created, location header indicates
the URI of the created Record.
$ref: ‘#/components/responses/RecordBody’
headers:
Location:
$ref: ‘#/components/headers/Location’
Cache-Control:
$ref: ‘#/components/headers/Cache-Control’
ETag:
$ref: ‘#/components/headers/ETag’
Last-Modified:
$ref: ‘#/components/headers/Last-Modified’
‘204’: # Update without return
description: >-
Update case. The resource has been successfully updated and no
additional content is included in the response message.
headers:
Cache-Control:
$ref: ‘#/components/headers/Cache-Control’
ETag:
$ref: ‘#/components/headers/ETag’
Last-Modified:
$ref: ‘#/components/headers/Last-Modified’
‘304’:
$ref: ‘#/components/responses/304’
‘400’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/400’
‘401’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/401’
‘403’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/403’
‘404’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/404’
‘408’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/408’
‘411’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/411’
‘412’:
description: Return Meta Schema value if get-previous=true
content:
application/json:
schema:
$ref: ‘#/components/schemas/MetaSchema’
‘413’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/413’
‘415’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/415’
‘429’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/429’
‘500’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/500’
‘501’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/501’
‘502’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/502’
‘503’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/503’
default:
$ref: ‘TS29571_CommonData.yaml#/components/responses/default’
delete:
summary: Delete a Meta Schema with an user provided SchemaId
operationId: DeleteMetaSchema
tags:
– MetaSchema CRUD
parameters:
– name: realmId
in: path
description: Identifier(name) of the Realm
required: true
schema:
type: string
example: Realm01
– name: storageId
in: path
description: Identifier of the Storage
required: true
schema:
type: string
example: Storage01
– name: schemaId
in: path
description: Identifier of the Meta Schema
required: true
schema:
$ref: ‘#/components/schemas/SchemaId’
– name: If-Match
in: header
description: Record validator for conditional requests, as described in RFC 7232, 3.2
schema:
type: string
– name: get-previous
in: query
description: Retrieve the Meta Schema before delete
required: false
schema:
type: boolean
default: false
– name: supported-features
in: query
description: Features required to be supported by the target NF
schema:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’
responses:
‘200’:
description: OK
content:
application/json:
schema:
$ref: ‘#/components/schemas/MetaSchema’
‘204’:
description: Successful case.
headers:
ETag:
$ref: ‘#/components/headers/ETag’
Last-Modified:
$ref: ‘#/components/headers/Last-Modified’
‘304’:
$ref: ‘#/components/responses/304’
‘400’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/400’
‘401’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/401’
‘403’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/403’
‘404’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/404’
‘408’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/408’
‘412’:
description: Return value if get-previous=true
content:
application/json:
schema:
$ref: ‘#/components/schemas/MetaSchema’
‘429’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/429’
‘500’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/500’
‘502’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/502’
‘503’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/503’
default:
$ref: ‘TS29571_CommonData.yaml#/components/responses/default’
components:
securitySchemes:
oAuth2ClientCredentials:
type: oauth2
flows:
clientCredentials:
tokenUrl: ‘{nrfApiRoot}/oauth2/token’
scopes:
nudsf-dr: Access to the nudsf-dr API
schemas:
RecordSearchResult:
description: Count and collection of Record references matching the providing filter.
type: object
properties:
count: # The total number of elements found.
$ref: ‘TS29571_CommonData.yaml#/components/schemas/Uinteger’
references: # The Record references found. If count-indicator is true, no references are sent back.
type: array
items:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/Uri’
minItems: 1
supportedFeatures:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’
matchingRecords:
description: A map (list of key-value pairs where recordId serves as key) of Records
type: object
additionalProperties:
$ref: ‘#/components/schemas/Record’
minProperties: 1
required:
– count
RecordMeta:
description: Meta data of a Record
type: object
properties:
ttl:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/DateTime’
callbackReference:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/Uri’
tags:
type: object # dictionary type
description: >-
A dictionary of {"tagName": [ "tagValue", …] }. A tag name can be used to retrieve a Record. The tagValue are unique.
additionalProperties:
type: array
items:
type: string
uniqueItems: true
minItems: 1
minProperties: 1
example: ‘{"ueId" : [ "455345", "455346" ], "recordId" : [ "1000106" ] }’
example: >-
{ "tags" : {"ueId" : [ "455345", "455346" ], "recordId" : [ "1000106" ] }}
schemaId:
$ref: ‘#/components/schemas/SchemaId’
Record:
description: Definition of a Record
type: object
properties:
meta:
# json representation of the Meta Data
$ref: ‘#/components/schemas/RecordMeta’
blocks:
# List of multipart data
type: array
description: list of opaque Block’s in this Record
items:
$ref: ‘#/components/schemas/Block’
minItems: 1
required:
– meta
example: >-
{"meta": { "tags" : {"tag1" : ["value1"], "tag2" :["value2"] } }, "blocks": [{"Content-Id": "userDefBinaryBlob", "Content-Type": "text/plain", "content": "QmxvY2sgY29udGVudA=="}, {"Content-Id": "userDefJsonBlob", "Content-Type": "application/json", "content": "{"key": "ftsimpletype-999550000000002", "value": "A3E71A78377179B5B91A;imsi-999550000000123"}]}
RecordIdList:
description: List of Record IDs
type: object
properties:
recordIdList:
type: array
items:
type: string
minItems: 1
required:
– recordIdList
Block:
description: A Block can be of any type
example: >-
"QmxvY2sgY29udGVudA=="
NotificationSubscription:
description: Definition of a notification subscription
type: object
properties:
clientId:
$ref: ‘#/components/schemas/ClientId’
callbackReference:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/Uri’
expiryCallbackReference:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/Uri’
expiry:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/DateTime’
expiryNotification:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/Uinteger’
subFilter:
$ref: ‘#/components/schemas/SubscriptionFilter’
supportedFeatures:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’
required:
– clientId
– callbackReference
RecordNotification:
description: Definition of a notification on a record
type: object
properties:
descriptor:
# json representation of the notification description
$ref: ‘#/components/schemas/NotificationDescription’
meta:
# json representation of the Meta Data
$ref: ‘#/components/schemas/RecordMeta’
blocks:
# List of multipart data
type: array
description: list of opaque Block’s in this Record
items:
$ref: ‘#/components/schemas/Block’
required:
– descriptor
– meta
example: >-
{"descriptor": { "recordRef" : "…", "operationType" : "DELETED"}, "meta": { "tags" : {"tag1" : ["value1"], "tag2" :["value2"] } }, "blocks": [{"Content-Id": "userDefBinaryBlob", "Content-Type": "text/plain", "content": "QmxvY2sgY29udGVudA=="}, {"Content-Id": "userDefJsonBlob", "Content-Type": "application/json", "content": "{"key": "ftsimpletype-999550000000002", "value": "A3E71A78377179B5B91A;imsi-999550000000123"}]}
NotificationDescription:
description: Description of a record notification
type: object
properties:
recordRef:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/Uri’
operationType:
$ref: ‘#/components/schemas/RecordOperation’
subscriptionId:
# unique identifier of the NotificationSubscription
type: string
required:
– recordRef
– operationType
example: >-
{ "record" : "…", "operationType" : "DELETED"}
SubscriptionFilter:
description: A subscription filter
type: object
properties:
monitoredResourceUris:
type: array
description: list of resources applicable to the subscription
items:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/Uri’
minItems: 1
operations:
type: array
description: list of resources applicable to the subscription
items:
$ref: ‘#/components/schemas/RecordOperation’
maxItems: 3
ClientId:
description: Defines the identity of the NF Consumer
type: object
properties:
nfId:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/NfInstanceId’
nfSetId:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/NfSetId’
RecordOperation:
description: Indicate operation made on a record
anyOf:
– type: string
enum:
– CREATED
– UPDATED
– DELETED
– type: string
ConditionOperator:
description: TBD
anyOf:
– type: string
enum:
– AND
– OR
– NOT
– type: string
ComparisonOperator:
description: TBD
anyOf:
– type: string
enum:
# Equals
– EQ
# Not Equal
– NEQ
# Greater Than
– GT
# Greater Than or Equal
– GTE
# Less Than
– LT
# Less Than or Equal
– LTE
– type: string
SearchExpression:
description: A logical expression element
type: object
oneOf:
– $ref: ‘#/components/schemas/SearchCondition’
– $ref: ‘#/components/schemas/SearchComparison’
– $ref: ‘#/components/schemas/RecordIdList’
example:
{ "cond": "OR", "units": [ { "op": "EQ", "tag" : "ueId", "value" : "455345" }, { "op": "EQ", "tag" : "supi", "value" : "imsi-999559807001001" } ] }
SearchCondition:
description: A logical condition
type: object
properties:
cond:
$ref: ‘#/components/schemas/ConditionOperator’
units:
type: array
items:
$ref: ‘#/components/schemas/SearchExpression’
minItems: 1
schemaId:
$ref: ‘#/components/schemas/SchemaId’
required:
– cond
– units
example:
{ "cond": "OR", "units": [ { "op": "EQ", "tag" : "ueId", "value" : "455345" }, { "op": "EQ", "tag" : "supi", "value" : "imsi-999559807001001" } ] }
SearchComparison:
description: A comparison to apply on tag/values pairs.
type: object
properties:
op:
$ref: ‘#/components/schemas/ComparisonOperator’
tag:
type: string
value:
type: string
required:
– op
– tag
– value
example:
{ "op": "EQ", "tag" : "supi", "value" : "imsi-999559807001001" }
MetaSchema:
description: Defines the Meta Schema
type: object
required:
– schemaId
– metaTags
properties:
schemaId:
$ref: ‘#/components/schemas/SchemaId’
metaTags:
type: array
items:
$ref: ‘#/components/schemas/TagType’
TagType:
description: Defines the Tag Type
type: object
required:
– tagName
– keyType
properties:
tagName:
type: string
keyType:
$ref: ‘#/components/schemas/KeyType’
sort:
type: boolean
default: false
presence:
type: boolean
SchemaId:
description: Represents the Identifier of a Meta schema.
type: string
KeyType:
description: Represents the type of a key.
anyOf:
– type: string
enum:
– UNIQUE_KEY
– SEARCH_KEY
– COUNT_KEY
– SEARCH_AND_COUNT_KEY
– OTHER_TAG
– type: string
RetrieveRecords:
description: Indicates the data to be retrieved.
anyOf:
– type: string
enum:
– ONLY_META
– META_AND_BLOCKS
– type: string
NotificationInfo:
type: object
required:
– expiredSubscriptions
properties:
expiredSubscriptions:
type: array
items:
$ref: ‘#/components/schemas/NotificationSubscription’
minItems: 1
headers:
Cache-Control:
description: Cache-Control containing max-age, as described in RFC 7234, 5.2
schema:
type: string
ETag:
description: Entity Tag, containing a strong validator, as described in RFC 7232, 2.3
schema:
type: string
Last-Modified:
description: Timestamp for last modification of the resource, as described in RFC 7232, 2.2
schema:
type: string
Location:
description: Contains the URI of the newly created resource
required: true
schema:
type: string
Retry-After:
description: ‘Indicates the time the NF Consumer has to wait before making a new request. It can be a non-negative integer (decimal number) indicating the number of seconds the NF Consumer has to wait before making a new request or an HTTP-date after which the AF can retry a new request.’
schema:
anyOf:
– type: integer
– type: string
requestBodies:
RecordBody:
description: The record multipart request body. The meta part shall be the first part and is mandatory but can be empty and zero or more block parts may follow the meta part.
required: true
content:
multipart/mixed:
schema:
$ref: ‘#/components/schemas/Record’
encoding:
meta: # The meta part shall be the first part and is mandatory but can be empty
contentType: application/json
headers:
Content-Id:
schema:
type: string
required: true
blocks: # 0 or more block parts may follow the meta part
contentType: ‘*/*’ # Block part can be of any type
headers:
Content-Id: # Block identifier is defined by the Content-Id header.
schema:
type: string
required: true
Content-Transfer-Encoding:
schema:
type: string
required: true
RecordNotificationBody:
description: The record notification multipart request body. The descriptor part shall be the first one, followed by record meta part and by zero or more block parts.
required: true
content:
multipart/mixed:
schema:
$ref: ‘#/components/schemas/RecordNotification’
encoding:
descriptor: # The descriptor part shall be the first part and is mandatory
contentType: application/json
headers:
Content-Id:
schema:
type: string
required: true
meta: # The meta part shall be the second part and is mandatory but can be empty
contentType: application/json
headers:
Content-Id:
schema:
type: string
required: true
blocks: # 0 or more block parts may follow the meta part
contentType: ‘*/*’ # Block part can be of any type
headers:
Content-Id: # Block identifier is defined by the Content-Id header.
schema:
type: string
required: true
Content-Transfer-Encoding:
schema:
type: string
required: true
responses:
‘304’: # Etag response if the value might differ from that sent
description: Not Modified
content:
application/problem+json:
schema:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/ProblemDetails’
headers:
Cache-Control:
$ref: ‘#/components/headers/Cache-Control’
ETag:
$ref: ‘#/components/headers/ETag’
Retry-After:
$ref: ‘#/components/headers/Retry-After’
‘RecordBody’: # Record value with associated headers
description: >-
– 200 Update. The resource has been successfully updated and previous value must be sent in the response message if requested.
– 200 Get. The resource exists, its value must be sent in the response message
– 412 Precondition Failed, the previous value must be sent in response message if requested.
content:
multipart/mixed:
schema:
$ref: ‘#/components/schemas/Record’
encoding:
meta: # The meta part shall be the first part and is mandatory but can be empty.
contentType: application/json
headers:
Content-Id: # The meta part is identified by the ‘meta’ Content-Id header.
schema:
type: string
required: true
blocks: # Zero or more block parts may follow the meta part
contentType: ‘*/*’ # Block parts can be of any type.
headers:
Content-Id: # Block identifier is defined by the Content-Id header.
schema:
type: string
required: true
Content-Transfer-Encoding:
schema:
type: string
required: true
headers:
Cache-Control:
$ref: ‘#/components/headers/Cache-Control’
ETag:
$ref: ‘#/components/headers/ETag’
Last-Modified:
$ref: ‘#/components/headers/Last-Modified’
‘RecordBodyDelete’: # Record value with associated headers
description: >-
– 200 Delete. The resource has been successfully delete and previous value must be sent in the response message if requested.
content:
multipart/mixed:
schema:
$ref: ‘#/components/schemas/Record’
encoding:
meta: # The meta part shall be the first par and is mandatory but can be empty.
contentType: application/json
headers:
Content-Id: # The meta part is identified by the Content-Id header.
schema:
type: string
required: true
blocks: # Zero or more block parts may follow the meta part.
contentType: ‘*/*’ # Block parts can be of any type.
headers:
Content-Id: # Block identifier is defined by the Content-Id header.
schema:
type: string
required: true
Content-Transfer-Encoding:
schema:
type: string
required: true
headers:
ETag:
$ref: ‘#/components/headers/ETag’
Last-Modified:
$ref: ‘#/components/headers/Last-Modified’
‘BlockBody’: # Block value with associated headers
description: >-
– 200 Update: The resource has been successfully updated and previous value must be sent in the response message if requested.
– 200 Get: The resource exists, its value must be sent in the response message
– 412 Precondition Failed: the previous value must be sent in response message if requested.
content:
‘*/*’:
schema:
$ref: ‘#/components/schemas/Block’
headers:
Cache-Control:
$ref: ‘#/components/headers/Cache-Control’
ETag:
$ref: ‘#/components/headers/ETag’
Last-Modified:
$ref: ‘#/components/headers/Last-Modified’
‘BlockBodyDelete’: # Block value with associated headers
description: >-
– 200 Delete: The resource has been successfully delete and previous value must be sent in the response message if requested.
content:
‘*/*’:
schema:
$ref: ‘#/components/schemas/Block’
headers:
ETag:
$ref: ‘#/components/headers/ETag’
Last-Modified:
$ref: ‘#/components/headers/Last-Modified’