openapi: 3.0.0 info: version: '1.1.0.alpha-1' title: 'NRF NFDiscovery Service' description: | NRF NFDiscovery Service. © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. servers: - url: '{apiRoot}/nnrf-disc/v1' variables: apiRoot: default: https://example.com description: apiRoot as defined in subclause 4.4 of 3GPP TS 29.501 security: - {} - oAuth2ClientCredentials: - nnrf-disc paths: /nf-instances: get: summary: Search a collection of NF Instances operationId: SearchNFInstances tags: - NF Instances (Store) parameters: - name: target-nf-type in: query description: Type of the target NF required: true schema: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/NFType' - name: requester-nf-type in: query description: Type of the requester NF required: true schema: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/NFType' - name: requester-nf-instance-id in: query description: NfInstanceId of the requester NF schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId' - name: service-names in: query description: Names of the services offered by the NF schema: type: array items: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/ServiceName' minItems: 1 uniqueItems: true style: form explode: false - name: requester-nf-instance-fqdn in: query description: FQDN of the requester NF schema: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/Fqdn' - name: target-plmn-list in: query description: Id of the PLMN of the target NF content: application/json: schema: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/PlmnId' minItems: 1 - name: requester-plmn-list in: query description: Id of the PLMN where the NF issuing the Discovery request is located content: application/json: schema: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/PlmnId' minItems: 1 - name: target-nf-instance-id in: query description: Identity of the NF instance being discovered schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId' - name: target-nf-fqdn in: query description: FQDN of the NF instance being discovered schema: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/Fqdn' - name: hnrf-uri in: query description: Uri of the home NRF schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri' - name: snssais in: query description: Slice info of the target NF content: application/json: schema: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai' minItems: 1 - name: requester-snssais in: query description: Slice info of the requester NF content: application/json: schema: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai' minItems: 1 - name: plmn-specific-snssai-list in: query description: PLMN specific Slice info of the target NF content: application/json: schema: type: array items: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/PlmnSnssai' minItems: 1 - name: dnn in: query description: Dnn supported by the BSF, SMF or UPF schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/Dnn' - name: nsi-list in: query description: NSI IDs that are served by the services being discovered schema: type: array items: type: string minItems: 1 style: form explode: false - name: smf-serving-area in: query schema: type: string - name: tai in: query description: Tracking Area Identity content: application/json: schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/Tai' - name: amf-region-id in: query description: AMF Region Identity schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/AmfRegionId' - name: amf-set-id in: query description: AMF Set Identity schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/AmfSetId' - name: guami in: query description: Guami used to search for an appropriate AMF content: application/json: schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/Guami' - name: supi in: query description: SUPI of the user schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/Supi' - name: ue-ipv4-address in: query description: IPv4 address of the UE schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv4Addr' - name: ip-domain in: query description: IP domain of the UE, which supported by BSF schema: type: string - name: ue-ipv6-prefix in: query description: IPv6 prefix of the UE schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv6Prefix' - name: pgw-ind in: query description: Combined PGW-C and SMF or a standalone SMF schema: type: boolean - name: pgw in: query description: PGW FQDN of a combined PGW-C and SMF schema: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/Fqdn' - name: gpsi in: query description: GPSI of the user schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/Gpsi' - name: external-group-identity in: query description: external group identifier of the user schema: type: string - name: data-set in: query description: data set supported by the NF schema: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/DataSetId' - name: routing-indicator in: query description: routing indicator in SUCI schema: type: string pattern: '^[0-9]{1,4}$' - name: group-id-list in: query description: Group IDs of the NFs being discovered schema: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/NfGroupId' minItems: 1 style: form explode: false - name: dnai-list in: query description: Data network access identifiers of the NFs being discovered schema: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/Dnai' minItems: 1 style: form explode: false - name: pdu-session-types in: query description: list of PDU Session Type required to be supported by the target NF schema: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/PduSessionType' minItems: 1 style: form explode: false - name: event-id-list in: query description: Analytics event(s) requested to be supported by the Nnwdaf_AnalyticsInfo service schema: type: array items: $ref: 'TS29520_Nnwdaf_AnalyticsInfo.yaml#/components/schemas/EventId' minItems: 1 style: form explode: false - name: nwdaf-event-list in: query description: Analytics event(s) requested to be supported by the Nnwdaf_EventsSubscription service. schema: type: array items: $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/NwdafEvent' minItems: 1 style: form explode: 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: upf-iwk-eps-ind in: query description: UPF supporting interworking with EPS or not schema: type: boolean - name: chf-supported-plmn in: query description: PLMN ID supported by a CHF content: application/json: schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/PlmnId' - name: preferred-locality in: query description: preferred target NF location schema: type: string - name: access-type in: query description: AccessType supported by the target NF schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/AccessType' - name: limit in: query description: Maximum number of NFProfiles to return in the response required: false schema: type: integer minimum: 1 - name: required-features in: query description: Features required to be supported by the target NF schema: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures' minItems: 1 style: form explode: false - name: complex-query in: query description: the complex query condition expression content: application/json: schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/ComplexQuery' - name: max-payload-size in: query description: Maximum payload size of the response expressed in kilo octets required: false schema: type: integer maximum: 2000 default: 124 - name: atsss-capability in: query description: ATSSS Capability content: application/json: schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/AtsssCapability' - name: upf-ue-ip-addr-ind in: query description: UPF supporting allocating UE IP addresses/prefixes schema: type: boolean - name: If-None-Match in: header description: Validator for conditional requests, as described in IETF RFC 7232, 3.2 schema: type: string responses: '200': description: Expected response to a valid request content: application/json: schema: $ref: '#/components/schemas/SearchResult' links: search: operationId: RetrieveStoredSearch parameters: searchId: $response.body#/searchId description: > The 'searchId' parameter returned in the response can be used as the 'searchId' parameter in the GET request to '/searches/{searchId}' completeSearch: operationId: RetrieveCompleteSearch parameters: searchId: $response.body#/searchId description: > The 'searchId' parameter returned in the response can be used as the 'searchId' parameter in the GET request to '/searches/{searchId}/complete' headers: Cache-Control: description: Cache-Control containing max-age, described in IETF RFC 7234, 5.2 schema: type: string ETag: description: Entity Tag containing a strong validator, described in IETF RFC 7232, 2.3 schema: type: string '307': description: Temporary Redirect headers: Location: description: 'The URI pointing to the resource located on the redirect target NRF' required: true schema: type: string '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' '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' '501': $ref: 'TS29571_CommonData.yaml#/components/responses/501' '503': $ref: 'TS29571_CommonData.yaml#/components/responses/503' default: $ref: 'TS29571_CommonData.yaml#/components/responses/default' /searches/{searchId}: get: operationId: RetrieveStoredSearch tags: - Stored Search (Document) parameters: - $ref: '#/components/parameters/searchId' responses: '200': $ref: '#/components/responses/200' /searches/{searchId}/complete: get: operationId: RetrieveCompleteSearch tags: - Complete Stored Search (Document) parameters: - $ref: '#/components/parameters/searchId' responses: '200': $ref: '#/components/responses/200' components: securitySchemes: oAuth2ClientCredentials: type: oauth2 flows: clientCredentials: tokenUrl: '/oauth2/token' scopes: nnrf-disc: Access to the Nnrf_NFDiscovery API parameters: searchId: name: searchId in: path description: Id of a stored search required: true schema: type: string responses: '200': description: Expected response to a valid request content: application/json: schema: $ref: '#/components/schemas/StoredSearchResult' headers: Cache-Control: description: Cache-Control containing max-age, described in IETF RFC 7234, 5.2 schema: type: string ETag: description: Entity Tag containing a strong validator, described in IETF RFC 7232, 2.3 schema: type: string schemas: SearchResult: type: object required: - nfInstances properties: validityPeriod: type: integer nfInstances: type: array items: $ref: '#/components/schemas/NFProfile' searchId: type: string numNfInstComplete: $ref: 'TS29571_CommonData.yaml#/components/schemas/Uint32' nrfSupportedFeatures: $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures' StoredSearchResult: type: object required: - nfInstances properties: nfInstances: type: array items: $ref: '#/components/schemas/NFProfile' NFProfile: type: object required: - nfInstanceId - nfType - nfStatus properties: nfInstanceId: $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId' nfInstanceName: type: string nfType: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/NFType' nfStatus: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/NFStatus' plmnList: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/PlmnId' minItems: 1 sNssais: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai' minItems: 1 perPlmnSnssaiList: type: array items: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/PlmnSnssai' minItems: 1 nsiList: type: array items: type: string minItems: 1 fqdn: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/Fqdn' ipv4Addresses: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv4Addr' minItems: 1 ipv6Addresses: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv6Addr' minItems: 1 capacity: type: integer minimum: 0 maximum: 65535 load: type: integer minimum: 0 maximum: 100 locality: type: string priority: type: integer minimum: 0 maximum: 65535 udrInfo: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/UdrInfo' udrInfoExt: type: array items: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/UdrInfo' minItems: 1 udmInfo: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/UdmInfo' udmInfoExt: type: array items: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/UdmInfo' minItems: 1 ausfInfo: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/AusfInfo' ausfInfoExt: type: array items: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/AusfInfo' minItems: 1 amfInfo: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/AmfInfo' amfInfoExt: type: array items: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/AmfInfo' minItems: 1 smfInfo: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/SmfInfo' smfInfoExt: type: array items: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/SmfInfo' minItems: 1 upfInfo: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/UpfInfo' upfInfoExt: type: array items: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/UpfInfo' minItems: 1 pcfInfo: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/PcfInfo' pcfInfoExt: type: array items: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/PcfInfo' minItems: 1 bsfInfo: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/BsfInfo' bsfInfoExt: type: array items: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/BsfInfo' minItems: 1 chfInfo: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/ChfInfo' chfInfoExt: type: array items: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/ChfInfo' minItems: 1 nwdafInfo: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/NwdafInfo' customInfo: type: object recoveryTime: $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime' nfServicePersistence: type: boolean default: false nfServices: type: array items: $ref: '#/components/schemas/NFService' minItems: 1 defaultNotificationSubscriptions: type: array items: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/DefaultNotificationSubscription' NFService: type: object required: - serviceInstanceId - serviceName - versions - scheme - nfServiceStatus properties: serviceInstanceId: type: string serviceName: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/ServiceName' versions: type: array items: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/NFServiceVersion' minItems: 1 scheme: $ref: 'TS29571_CommonData.yaml#/components/schemas/UriScheme' nfServiceStatus: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/NFServiceStatus' fqdn: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/Fqdn' ipEndPoints: type: array items: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/IpEndPoint' minItems: 1 apiPrefix: type: string defaultNotificationSubscriptions: type: array items: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/DefaultNotificationSubscription' minItems: 1 capacity: type: integer minimum: 0 maximum: 65535 load: type: integer minimum: 0 maximum: 100 priority: type: integer minimum: 0 maximum: 65535 recoveryTime: $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime' chfServiceInfo: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/ChfServiceInfo' supportedFeatures: $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures' externalDocs: description: 3GPP TS 29.510 V15.3.0; 5G System; Network Function Repository Services; Stage 3 url: 'http://www.3gpp.org/ftp/Specs/archive/29_series/29.510/'