openapi: 3.0.0 info: version: '1.0.0' title: 'NRF NFDiscovery Service' description: 'NRF NFDiscovery Service' servers: - url: '{apiRoot}/nnrf-disc/v1' variables: apiRoot: default: https://example.com description: apiRoot as defined in subclause 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: service-names in: query description: Name of the service offered by the NF schema: type: array items: type: string minItems: 1 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 where the target NF is located 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: 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: type: string - name: amf-set-id in: query description: AMF Set Identity schema: type: string - name: guami in: query description: Guami used to search for an appropriate AMF 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: 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: 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' 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 '400': $ref: 'TS29571_CommonData.yaml#/components/responses/400' '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' '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' components: securitySchemes: oAuth2ClientCredentials: type: oauth2 flows: clientCredentials: tokenUrl: '/oauth2/token' scopes: nnrf-disc: Access to the Nnrf_NFDiscovery API schemas: SearchResult: type: object required: - nfInstances properties: validityPeriod: type: integer nfInstances: type: array items: $ref: '#/components/schemas/NFProfile' NFProfile: type: object required: - nfInstanceId - nfType - nfStatus properties: nfInstanceId: $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId' 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 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' udmInfo: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/UdmInfo' ausfInfo: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/AusfInfo' amfInfo: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/AmfInfo' smfInfo: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/SmfInfo' upfInfo: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/UpfInfo' pcfInfo: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/PcfInfo' bsfInfo: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/BsfInfo' chfInfo: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/ChfInfo' 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 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.2.0; 5G System; Network Function Repository Services; Stage 3 url: 'http://www.3gpp.org/ftp/Specs/archive/29_series/29.510/'