openapi: 3.0.0 info: title: Nslpkmf_Discovery API version: '1.1.0-alpha.2' description: | Nslpkmf_Discovery Service. © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. externalDocs: description: > 3GPP TS 29.586 V19.1.0; 5G System; SideLink Positioning Key Management Services; Stage 3. url: https://www.3gpp.org/ftp/Specs/archive/29_series/29.586/ servers: - url: '{apiRoot}/Nslpkmf-discovery/v1' variables: apiRoot: default: https://example.com description: apiRoot as defined in clause 4.4 of 3GPP TS 29.501 security: - {} - oAuth2ClientCredentials: - Nslpkmf-discovery paths: /{ueId}/announcement-authorization/{userInfoId}: put: summary: Obtain the authorization from the SLPKMF for announcing in the PLMN operationId: ObtainAnnounceAuth tags: - Obtain the authorization from the SLPKMF for announcing in the PLMN security: - {} - oAuth2ClientCredentials: - Nslpkmf-disc - oAuth2ClientCredentials: - Nslpkmf-disc - Nslpkmf-disc:announcement-authorization:modify parameters: - name: ueId in: path description: Identifier of the UE required: true schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/VarUeId' - name: userInfoId in: path description: User Info Id required: true schema: $ref: '#/components/schemas/UserInfoId' requestBody: content: application/json: schema: $ref: '#/components/schemas/AnnounceAuthData' required: true responses: '201': description: Successful creation of the resource content: application/json: schema: $ref: '#/components/schemas/AnnounceAuthData' headers: Location: description: > Contains the URI of the newly created resource, according to the structure: {apiRoot}/Nslpkmf-disc>//{ueId}/announcement-authorization/{userInfoId} required: true schema: type: string '204': description: Successful update of the resource. '307': $ref: 'TS29571_CommonData.yaml#/components/responses/307' '308': $ref: 'TS29571_CommonData.yaml#/components/responses/308' '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: description: Unexpected error /{ueId}/monitor-authorization/{userInfoId}: put: summary: Obtain the discovery key from the SLPKMF for monitoring in the PLMN operationId: ObtainMonitorAuthorize tags: - Obtain the discovery key from the SLPKMF for monitoring in the PLMN security: - {} - oAuth2ClientCredentials: - Nslpkmf-disc - oAuth2ClientCredentials: - Nslpkmf-disc - Nslpkmf-disc:monitor-authorization:modify parameters: - name: ueId in: path description: Identifier of the UE required: true schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/VarUeId' - name: userInfoId in: path description: User Info Id required: true schema: $ref: '#/components/schemas/UserInfoId' requestBody: content: application/json: schema: $ref: '#/components/schemas/MonitorAuthReqData' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/MonitorAuthRespData' headers: Location: description: > Contains the URI of the newly created resource, according to the structure: {apiRoot}/Nslpkmf-disc>//{ueId}/monitor-authorization/{userInfoId} required: true schema: type: string '204': description: Successful update of the resource. '307': $ref: 'TS29571_CommonData.yaml#/components/responses/307' '308': $ref: 'TS29571_CommonData.yaml#/components/responses/308' '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: description: Unexpected error /{ueId}/discovery-authorization/{userInfoId}: put: summary: Obtain the discovery key from the SLPKMF for a discoverer UE operationId: ObtainDiscAuth tags: - Obtain the discovery key for a discoverer UE security: - {} - oAuth2ClientCredentials: - Nslpkmf-disc - oAuth2ClientCredentials: - Nslpkmf-disc - Nslpkmf-disc:discovery-authorization:modify parameters: - name: ueId in: path description: Identifier of the UE required: true schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/VarUeId' - name: userInfoId in: path description: User Info Id required: true schema: $ref: '#/components/schemas/UserInfoId' requestBody: content: application/json: schema: $ref: '#/components/schemas/DiscoveryAuthReqData' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/DiscoveryAuthRespData' headers: Location: description: > Contains the URI of the newly created resource, according to the structure: {apiRoot}/Nslpkmf-disc>//{ueId}/discovery-authorization/{userInfoId} required: true schema: type: string '204': description: Successful update of the resource. '307': $ref: 'TS29571_CommonData.yaml#/components/responses/307' '308': $ref: 'TS29571_CommonData.yaml#/components/responses/308' '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: description: Unexpected error components: securitySchemes: oAuth2ClientCredentials: type: oauth2 flows: clientCredentials: tokenUrl: '{nrfApiRoot}/oauth2/token' scopes: Nslpkmf-disc: Access to the Nslpkmf_Discovery API Nslpkmf-disc:announcement-authorization:modify: > Access to modify the authorization to announce for a UE in the PLMN Nslpkmf-disc:monitor-authorization:modify: > Access to modify the authorization for monitoring for an UE in the PLMN Nslpkmf-disc:discovery-authorization:modify: > Access to modify the authorization from the SLPKMF for a discoverer UE in the PLMN to operate Model B restricted discovery schemas: # COMPLEX TYPES: AnnounceAuthData: type: object description: Represents Data used to request the authorization to announce for a UE required: - rangingSlAppId - ueRole properties: rangingSlAppId: $ref: 'TS29571_CommonData.yaml#/components/schemas/ApplicationId' ueRole: $ref: '#/components/schemas/UeRole' MonitorAuthReqData: type: object description: Data used to request the discovery key to monitor for a UE required: - rangingSlAppId - ueRole - ueSecurityCapability properties: rangingSlAppId: $ref: 'TS29571_CommonData.yaml#/components/schemas/ApplicationId' ueRole: $ref: '#/components/schemas/UeRole' ueSecurityCapability: $ref: '#/components/schemas/UeSecurityCapability' MonitorAuthRespData: type: object description: Represents the obtained Monitor Discovery Key Data for a UE required: - chosenPc5CipheringAlgorithm - discSecMaterials properties: chosenPc5CipheringAlgorithm: $ref: '#/components/schemas/ChosenPc5CipheringAlgorithm' discSecMaterials: $ref: '#/components/schemas/DiscSecMaterials' DiscoveryAuthReqData: type: object description: Data used to request the discovery key to monitor for a discoverer UE required: - rangingSlAppId - ueRole - ueSecurityCapability properties: rangingSlAppId: $ref: 'TS29571_CommonData.yaml#/components/schemas/ApplicationId' ueRole: $ref: '#/components/schemas/UeRole' ueSecurityCapability: $ref: '#/components/schemas/UeSecurityCapability' DiscoveryAuthRespData: type: object description: Represents the obtained Monitor Discovery Key Data for a discoverer UE required: - chosenPc5CipheringAlgorithm - discSecMaterials properties: chosenPc5CipheringAlgorithm: $ref: '#/components/schemas/ChosenPc5CipheringAlgorithm' discSecMaterials: $ref: '#/components/schemas/DiscSecMaterials' DiscSecMaterials: type: object description: Represents the discovery security materials properties: duik: $ref: '#/components/schemas/Duik' dusk: $ref: '#/components/schemas/Dusk' duck: $ref: '#/components/schemas/Duck' # SIMPLE TYPES: UserInfoId: description: Contains the identifier of User Info type: string UeSecurityCapability: $ref: 'TS29571_CommonData.yaml#/components/schemas/Bytes' ChosenPc5CipheringAlgorithm: description: Contains the chosen PC5 ciphering algorithm. type: integer Duik: $ref: 'TS29571_CommonData.yaml#/components/schemas/Bytes' Duck: $ref: 'TS29571_CommonData.yaml#/components/schemas/Bytes' Dusk: $ref: 'TS29571_CommonData.yaml#/components/schemas/Bytes' UeRole: description: Specifies the different roles of UE for ranging and sidelink positioning service. anyOf: - type: string enum: - TARGET_UE - REFERENCE_UE - LOCATED_UE - CLIENT_UE - SERVER_UE - type: string # ENUMS: