diff --git a/.gitignore b/.gitignore index 1320f90e5ba859dec9b8b7a0ea08b509eabb3ee1..b3daeb9ed5b9d79815148b964666f69143c84222 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,5 @@ site +doc/testing/postman/Responses +doc/testing/postman/node_modules +doc/testing/postman/package-lock.json +.DS_Store \ No newline at end of file diff --git a/doc/gettingstarted/howtorun.md b/doc/gettingstarted/howtorun.md index 8858bfd94b6540e51b141a66934cdfb1e7ef3995..d300ccaba4304ba665ec95315c2b84c5f8461cad 100644 --- a/doc/gettingstarted/howtorun.md +++ b/doc/gettingstarted/howtorun.md @@ -6,6 +6,7 @@ - [Run All CAPIF Services locally with Docker images and deploy monitoring stack](#run-all-capif-services-locally-with-docker-images-and-deploy-monitoring-stack) - [Run each service using Docker](#run-each-service-using-docker) - [Run each service using Python](#run-each-service-using-python) +- [Start Your Testing with OpenCAPIF](#start-your-testing-with-opencapif) Capif services are developed under [services folder](https://labs.etsi.org/rep/ocf/capif/-/tree/main/services). @@ -158,4 +159,17 @@ Run using python cd pip3 install -r requirements.txt python3 -m -``` \ No newline at end of file +``` + +#### Start Your Testing with OpenCAPIF + +Related with OpenCAPIF Testing, the following sections help you to understand testing implemented and how to run it by yourself: + +- [Test Plan Directory]: Here you can find the complete test plan definition that are accomplish by all versions released of OpenCAPIF. +- [Testing with Robot Framework]: At this section you can find all information about how to run the test suite implemented using Robot Framework. +- [Testing with Postman]: Easy way to understand the complete basic OpenCAPIF flow, acting as invoker and provider. + + +[Test Plan Directory]: .././testing/testplan/README.md "Test Plan" +[Testing with Robot Framework]: .././testing/robotframework/README.md "Robot Framework" +[Testing with Postman]: .././testing/postman/README.md "Postman" diff --git a/doc/swagger/helper_swagger.yaml b/doc/swagger/helper_swagger.yaml new file mode 100644 index 0000000000000000000000000000000000000000..54b369aec743d7556e132bedc598609f5e908243 --- /dev/null +++ b/doc/swagger/helper_swagger.yaml @@ -0,0 +1,1465 @@ +--- +openapi: 3.0.0 +info: + description: New microservice inside CCF, it will simplify integration with third parties like external management portals + version: "1.0.0" + title: Helper Service + contact: + email: SDGsupport@etsi.org + license: + name: License + url: 'https://creativecommons.org/licenses/by/4.0/' +tags: +- name: Helper +paths: + /deleteEntities/{uuid}: + delete: + tags: + - Helper + summary: Delete all entities created by a user + operationId: DeleteEntitiesList + parameters: + - name: uuid + in: path + description: The user uuid + required: true + style: simple + explode: false + schema: + minimum: 1 + type: string + format: uuid + responses: + "200": + description: User entities removed successfully. + "204": + description: No entities found for that uuid. + /getInvokers: + get: + tags: + - Helper + summary: Get the list of invokers + operationId: GetInvokersList + parameters: + - name: uuid + in: query + description: uuid of the User you want the invokers for. + required: false + style: form + explode: true + schema: + type: string + format: uuid + - name: api_invoker_id + in: query + description: Id of the invoker from which the information is wanted. + required: false + style: form + explode: true + schema: + type: string + - name: page_size + in: query + description: Size of the list (page) of invokers that is returned. + required: false + style: form + explode: true + schema: + type: integer + - name: page + in: query + description: list number (page) that is returned. + required: false + style: form + explode: true + schema: + type: integer + - name: sort_order + in: query + description: Sorting by onboarding date of the invokers (ascending or descending). + required: false + style: form + explode: true + schema: + type: string + enum: + - asc + - dsc + example: asc + responses: + "200": + description: Response with the requested invokers list. + content: + application/json: + schema: + $ref: '#/components/schemas/InvokersResponse' + "400": + description: Invalid page or page_size supplied. + /getProviders: + get: + tags: + - Helper + summary: Get the list of providers + operationId: GetProvidersList + parameters: + - name: uuid + in: query + description: uuid of the User you want the providerss for. + required: false + style: form + explode: true + schema: + type: string + format: uuid + - name: api_prov_dom_id + in: query + description: Id of the provider from which the information is wanted. + required: false + style: form + explode: true + schema: + type: string + - name: page_size + in: query + description: Size of the list (page) of providers that is returned. + required: false + style: form + explode: true + schema: + type: integer + - name: page + in: query + description: list number (page) that is returned. + required: false + style: form + explode: true + schema: + type: integer + - name: sort_order + in: query + description: Sorting by onboarding date of the providers (ascending or descending). + required: false + style: form + explode: true + schema: + type: string + enum: + - asc + - dsc + example: asc + responses: + "200": + description: Response with the requested providers list. + content: + application/json: + schema: + $ref: '#/components/schemas/ProvidersResponse' + "400": + description: Invalid page or page_size supplied. + /getServices: + get: + tags: + - Helper + summary: Get the list of services + operationId: GetServicesList + parameters: + - name: service_id + in: query + description: Id of the service from which the information is wanted. + required: false + style: form + explode: true + schema: + type: string + - name: api_name + in: query + description: Name of the service from which the information is wanted. + required: false + style: form + explode: true + schema: + type: string + - name: apf_id + in: query + description: Id of the APF that published the services. + required: false + style: form + explode: true + schema: + type: string + - name: page_size + in: query + description: Size of the list (page) of services that is returned. + required: false + style: form + explode: true + schema: + type: integer + - name: page + in: query + description: list number (page) that is returned. + required: false + style: form + explode: true + schema: + type: integer + - name: sort_order + in: query + description: Sorting by onboarding date of the Services (ascending or descending). + required: false + style: form + explode: true + schema: + type: string + enum: + - asc + - dsc + example: asc + responses: + "200": + description: Response with the requested services list. + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceResponse' + "400": + description: Invalid page or page_size supplied. + /getSecurity: + get: + tags: + - Helper + summary: Get the list of security context + operationId: GetSecurityContextList + parameters: + - name: invoker_id + in: query + description: Id of the invoker for which the security context is wanted. + required: false + style: form + explode: true + schema: + type: string + - name: page_size + in: query + description: Size of the list (page) of security contexts that is returned. + required: false + style: form + explode: true + schema: + type: integer + - name: page + in: query + description: list number (page) that is returned. + required: false + style: form + explode: true + schema: + type: integer + responses: + "200": + description: Response with the requested security context list. + content: + application/json: + schema: + $ref: '#/components/schemas/SecurityResponse' + "400": + description: Invalid page or page_size supplied. + /getEvents: + get: + tags: + - Helper + summary: Get the list of events + operationId: GetEventsList + parameters: + - name: subscriber_id + in: query + description: ID of the invoker or APF that subscribed to events. + required: false + style: form + explode: true + schema: + type: string + - name: subscription_id + in: query + description: Event subscription id. + required: false + style: form + explode: true + schema: + type: string + - name: page_size + in: query + description: Size of the list (page) of events that is returned. + required: false + style: form + explode: true + schema: + type: integer + - name: page + in: query + description: list number (page) that is returned. + required: false + style: form + explode: true + schema: + type: integer + responses: + "200": + description: Response with the requested events list. + content: + application/json: + schema: + $ref: '#/components/schemas/EventsResponse' + "400": + description: Invalid page or page_size supplied. +components: + schemas: + InvokersResponse: + type: object + properties: + invokers: + type: array + description: CAPIF invokers list. + items: + $ref: '#/components/schemas/APIInvokerEnrolmentDetails' + long: + type: integer + description: Total number of invokers that match the given parameters. + format: int64 + example: 3 + sortOrder: + type: string + description: Sorting by onboarding date of the invokers (ascending or descending). + example: asc + enum: + - desc + - asc + total: + type: integer + description: Total number of invokers in CAPIF. + format: int64 + example: 3 + totalPages: + type: integer + description: Total number of pages given page size. + format: int64 + example: 3 + ProvidersResponse: + type: object + properties: + providers: + type: array + description: CAPIF providers list. + items: + $ref: '#/components/schemas/APIProviderEnrolmentDetails' + long: + type: integer + description: Total number of providers that match the given parameters. + format: int64 + example: 3 + sortOrder: + type: string + description: Sorting by onboarding date of the providers (ascending or descending). + example: asc + enum: + - desc + - asc + total: + type: integer + description: Total number of providers in CAPIF. + format: int64 + example: 3 + totalPages: + type: integer + description: Total number of pages given page size. + format: int64 + example: 3 + ServiceResponse: + type: object + properties: + services: + type: array + description: CAPIF services list. + items: + $ref: '#/components/schemas/ServiceAPIDescription' + long: + type: integer + description: Total number of services that match the given parameters. + format: int64 + example: 3 + sortOrder: + type: string + description: Sorting by onboarding date of the services (ascending or descending). + example: asc + enum: + - desc + - asc + total: + type: integer + description: Total number of services in CAPIF. + format: int64 + example: 3 + totalPages: + type: integer + description: Total number of pages given page size. + format: int64 + example: 3 + SecurityResponse: + type: object + properties: + security: + type: array + description: CAPIF security context list. + items: + $ref: '#/components/schemas/ServiceSecurity' + long: + type: integer + description: Total number of security contexts that match the given parameters. + format: int64 + example: 3 + total: + type: integer + description: Total number of security contexts in CAPIF. + format: int64 + example: 3 + totalPages: + type: integer + description: Total number of pages given page size. + format: int64 + example: 3 + EventsResponse: + type: object + properties: + events: + type: array + description: CAPIF events list. + items: + $ref: '#/components/schemas/EventSubscription' + long: + type: integer + description: Total number of events that match the given parameters. + format: int64 + example: 3 + total: + type: integer + description: Total number of events in CAPIF. + format: int64 + example: 3 + totalPages: + type: integer + description: Total number of pages given page size. + format: int64 + example: 3 + APIInvokerEnrolmentDetails: + required: + - notificationDestination + - onboardingInformation + type: object + properties: + onboarding_date: + type: string + description: Invoker onboarding date + format: date-time + username: + type: string + description: User who registered the invoker + uuid: + type: string + description: uuid of the user who registered the invoker + format: uuid + apiInvokerId: + type: string + description: | + API invoker ID assigned by the CAPIF core function to the API invoker while on-boarding the API invoker. Shall not be present in the HTTP POST request from the API invoker to the CAPIF core function, to on-board itself. Shall be present in all other HTTP requests and responses. + readOnly: true + onboardingInformation: + $ref: '#/components/schemas/OnboardingInformation' + notificationDestination: + $ref: '#/components/schemas/Uri' + requestTestNotification: + type: boolean + description: | + Set to true by Subscriber to request the CAPIF core function to send a test notification as defined in in clause 7.6. Set to false or omitted otherwise. + websockNotifConfig: + $ref: '#/components/schemas/WebsockNotifConfig' + apiList: + $ref: '#/components/schemas/APIList' + apiInvokerInformation: + type: string + description: | + Generic information related to the API invoker such as details of the device or the application. + supportedFeatures: + $ref: '#/components/schemas/SupportedFeatures' + description: Information about the API Invoker that requested to onboard + APIProviderEnrolmentDetails: + required: + - regSec + type: object + properties: + onboarding_date: + type: string + description: Provider onboarding date + format: date-time + username: + type: string + description: User who registered the provider + uuid: + type: string + description: uuid of the user who registered the provider + format: uuid + apiProvDomId: + type: string + description: | + API provider domain ID assigned by the CAPIF core function to the API management function while registering the API provider domain. Shall not be present in the HTTP POST request from the API Management function to the CAPIF core function, to on-board itself. Shall be present in all other HTTP requests and responses. + readOnly: true + regSec: + type: string + description: | + Security information necessary for the CAPIF core function to validate the registration of the API provider domain. Shall be present in HTTP POST request from API management function to CAPIF core function for API provider domain registration. + apiProvFuncs: + minItems: 1 + type: array + description: | + A list of individual API provider domain functions details. When included by the API management function in the HTTP request message, it lists the API provider domain functions that the API management function intends to register/update in registration or update registration procedure. When included by the CAPIF core function in the HTTP response message, it lists the API domain functions details that are registered or updated successfully. + items: + $ref: '#/components/schemas/APIProviderFunctionDetails' + apiProvDomInfo: + type: string + description: | + Generic information related to the API provider domain such as details of the API provider applications. + suppFeat: + $ref: '#/components/schemas/SupportedFeatures' + failReason: + type: string + description: | + Registration or update specific failure information of failed API provider domain function registrations.Shall be present in the HTTP response body if atleast one of the API provider domain function registration or update registration fails. + description: Represents an API provider domain's enrolment details. + ServiceSecurity: + required: + - notificationDestination + - securityInfo + type: object + properties: + api_invoker_id: + type: string + description: Id of the invoker of this security context. + securityInfo: + minimum: 1 + type: array + items: + $ref: '#/components/schemas/SecurityInformation' + notificationDestination: + $ref: '#/components/schemas/Uri' + requestTestNotification: + type: boolean + description: | + Set to true by API invoker to request the CAPIF core function to send a test notification as defined in in clause 7.6. Set to false or omitted otherwise. + websockNotifConfig: + $ref: '#/components/schemas/WebsockNotifConfig' + supportedFeatures: + $ref: '#/components/schemas/SupportedFeatures' + description: | + Represents the details of the security method for each service API interface. When included by the API invoker, it indicates the preferred method of security. When included by the CAPIF core function, it indicates the security method to be used for the service API interface. + SecurityInformation: + required: + - prefSecurityMethods + type: object + properties: + interfaceDetails: + $ref: '#/components/schemas/InterfaceDescription' + aefId: + type: string + description: Identifier of the API exposing function + apiId: + type: string + description: API identifier + prefSecurityMethods: + minItems: 1 + type: array + description: Security methods preferred by the API invoker for the API interface. + items: + $ref: '#/components/schemas/SecurityMethod' + selSecurityMethod: + $ref: '#/components/schemas/SecurityMethod' + authenticationInfo: + type: string + description: Authentication related information + authorizationInfo: + type: string + description: Authorization related information + description: Represents the interface details and the security method. + oneOf: + - required: + - interfaceDetails + - required: + - aefId + EventSubscription: + required: + - events + - notificationDestination + type: object + properties: + events: + minItems: 1 + type: array + description: Subscribed events + items: + $ref: '#/components/schemas/CAPIFEvent' + eventFilters: + minItems: 1 + type: array + description: Subscribed event filters + items: + $ref: '#/components/schemas/CAPIFEventFilter' + eventReq: + $ref: '#/components/schemas/ReportingInformation' + notificationDestination: + $ref: '#/components/schemas/Uri' + requestTestNotification: + type: boolean + description: | + Set to true by Subscriber to request the CAPIF core function to send a test notification as defined in in clause 7.6. Set to false or omitted otherwise. + websockNotifConfig: + $ref: '#/components/schemas/WebsockNotifConfig' + supportedFeatures: + $ref: '#/components/schemas/SupportedFeatures' + description: Represents an individual CAPIF Event Subscription resource. + OnboardingInformation: + required: + - apiInvokerPublicKey + type: object + properties: + apiInvokerPublicKey: + type: string + description: The API Invoker's public key + apiInvokerCertificate: + type: string + description: | + The API Invoker's generic client certificate, provided by the CAPIF core function. + onboardingSecret: + type: string + description: | + The API Invoker's onboarding secret, provided by the CAPIF core function. + description: Represents on-boarding information of the API invoker. + APIProviderFunctionDetails: + required: + - apiProvFuncRole + - regInfo + type: object + properties: + apiProvFuncId: + type: string + description: | + API provider domain functionID assigned by the CAPIF core function to the API provider domain function while registering/updating the API provider domain. Shall not be present in the HTTP POST request from the API management function to the CAPIF core function, to register itself. Shall be present in all other HTTP requests and responses. + regInfo: + $ref: '#/components/schemas/RegistrationInformation' + apiProvFuncRole: + $ref: '#/components/schemas/ApiProviderFuncRole' + apiProvFuncInfo: + type: string + description: | + Generic information related to the API provider domain function such as details of the API provider applications. + description: Represents API provider domain function's details. + ApiProviderFuncRole: + description: | + Possible values are: + - AEF: API provider function is API Exposing Function. + - APF: API provider function is API Publishing Function. + - AMF: API Provider function is API Management Function. + anyOf: + - type: string + enum: + - AEF + - APF + - AMF + - type: string + description: | + This string provides forward-compatiblity with future extensions to the enumeration but is not used to encode content defined in the present version of this API. + RegistrationInformation: + required: + - apiProvPubKey + type: object + properties: + apiProvPubKey: + type: string + description: Public Key of API Provider domain function. + apiProvCert: + type: string + description: API provider domain function's client certificate + description: | + Represents registration information of an individual API provider domain function. + APIList: + type: object + properties: + serviceAPIDescriptions: + minItems: 1 + type: array + description: The list of service APIs that the API Invoker is allowed to invoke. + items: + $ref: '#/components/schemas/ServiceAPIDescription' + description: Represents a list of APIs. + Uri: + type: string + description: string providing an URI formatted according to IETF RFC 3986. + WebsockNotifConfig: + type: object + properties: + websocketUri: + $ref: '#/components/schemas/Link' + requestWebsocketUri: + type: boolean + description: Set by the SCS/AS to indicate that the Websocket delivery is requested. + description: Represents the configuration information for the delivery of notifications over Websockets. + Link: + type: string + description: string formatted according to IETF RFC 3986 identifying a referenced resource. + SupportedFeatures: + pattern: "^[A-Fa-f0-9]*$" + type: string + description: | + A string used to indicate the features supported by an API that is used as defined in clause 6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in hexadecimal representation Each character in the string shall take a value of "0" to "9", "a" to "f" or "A" to "F" and shall represent the support of 4 features as described in tableĀ 5.2.2-3. The most significant character representing the highest-numbered features shall appear first in the string, and the character representing features 1 to 4 shall appear last in the string. The list of features and their numbering (starting with 1) are defined separately for each API. If the string contains a lower number of characters than there are defined features for an API, all features that would be represented by characters that are not present in the string are not supported. + ServiceAPIDescription: + required: + - apiName + type: object + properties: + apiName: + type: string + description: "API name, it is set as {apiName} part of the URI structure as defined in clause 5.2.4 of 3GPP TS 29.122." + apiId: + type: string + description: | + API identifier assigned by the CAPIF core function to the published service API. Shall not be present in the HTTP POST request from the API publishing function to the CAPIF core function. Shall be present in the HTTP POST response from the CAPIF core function to the API publishing function and in the HTTP GET response from the CAPIF core function to the API invoker (discovery API). + aefProfiles: + minItems: 1 + type: array + description: | + AEF profile information, which includes the exposed API details (e.g. protocol). + items: + $ref: '#/components/schemas/AefProfile' + description: + type: string + description: Text description of the API + supportedFeatures: + $ref: '#/components/schemas/SupportedFeatures' + shareableInfo: + $ref: '#/components/schemas/ShareableInformation' + serviceAPICategory: + type: string + apiSuppFeats: + $ref: '#/components/schemas/SupportedFeatures' + pubApiPath: + $ref: '#/components/schemas/PublishedApiPath' + ccfId: + type: string + description: CAPIF core function identifier. + description: Represents the description of a service API as published by the APF. + AefProfile: + required: + - aefId + - versions + type: object + properties: + aefId: + type: string + description: Identifier of the API exposing function + versions: + minItems: 1 + type: array + description: API version + items: + $ref: '#/components/schemas/Version' + protocol: + $ref: '#/components/schemas/Protocol' + dataFormat: + $ref: '#/components/schemas/DataFormat' + securityMethods: + minItems: 1 + type: array + description: Security methods supported by the AEF + items: + $ref: '#/components/schemas/SecurityMethod' + domainName: + type: string + description: Domain to which API belongs to + interfaceDescriptions: + minItems: 1 + type: array + description: Interface details + items: + $ref: '#/components/schemas/InterfaceDescription' + aefLocation: + $ref: '#/components/schemas/AefLocation' + description: Represents the AEF profile data. + oneOf: + - required: + - domainName + - required: + - interfaceDescriptions + ShareableInformation: + required: + - isShareable + type: object + properties: + isShareable: + type: boolean + description: | + Set to "true" indicates that the service API and/or the service API category can be shared to the list of CAPIF provider domain information. Otherwise set to "false". + capifProvDoms: + minItems: 1 + type: array + description: | + List of CAPIF provider domains to which the service API information to be shared. + items: + type: string + description: | + Indicates whether the service API and/or the service API category can be shared to the list of CAPIF provider domains. + PublishedApiPath: + type: object + properties: + ccfIds: + minItems: 1 + type: array + description: A list of CCF identifiers where the service API is already published. + items: + type: string + description: Represents the published API path within the same CAPIF provider domain. + Version: + required: + - apiVersion + type: object + properties: + apiVersion: + type: string + description: API major version in URI (e.g. v1) + expiry: + $ref: '#/components/schemas/DateTime' + resources: + minItems: 1 + type: array + description: Resources supported by the API. + items: + $ref: '#/components/schemas/Resource' + custOperations: + minItems: 1 + type: array + description: Custom operations without resource association. + items: + $ref: '#/components/schemas/CustomOperation' + description: Represents the API version information. + Protocol: + description: | + Possible values are: + - HTTP_1_1: HTTP version 1.1 + - HTTP_2: HTTP version 2 + anyOf: + - type: string + enum: + - HTTP_1_1 + - HTTP_2 + - type: string + description: | + This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. + DataFormat: + description: | + Possible values are: + - JSON: JavaScript Object Notation + anyOf: + - type: string + enum: + - JSON + - type: string + description: | + This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. + SecurityMethod: + description: | + Possible values are: + - PSK: Security method 1 (Using TLS-PSK) as described in 3GPP TS 33.122 + - PKI: Security method 2 (Using PKI) as described in 3GPP TS 33.122 + - OAUTH: Security method 3 (TLS with OAuth token) as described in 3GPP TS 33.122 + anyOf: + - type: string + enum: + - PSK + - PKI + - OAUTH + - type: string + description: | + This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. + Resource: + required: + - commType + - resourceName + - uri + type: object + properties: + resourceName: + type: string + description: Resource name + commType: + $ref: '#/components/schemas/CommunicationType' + uri: + type: string + description: | + Relative URI of the API resource, it is set as {apiSpecificSuffixes} part of the URI structure as defined in clause 5.2.4 of 3GPP TS 29.122. + custOpName: + type: string + description: | + it is set as {custOpName} part of the URI structure for a custom operation associated with a resource as defined in clause 5.2.4 of 3GPP TS 29.122. + operations: + minItems: 1 + type: array + description: | + Supported HTTP methods for the API resource. Only applicable when the protocol in AefProfile indicates HTTP. + items: + $ref: '#/components/schemas/Operation' + description: + type: string + description: Text description of the API resource + description: Represents the API resource data. + CustomOperation: + required: + - commType + - custOpName + type: object + properties: + commType: + $ref: '#/components/schemas/CommunicationType' + custOpName: + type: string + description: | + it is set as {custOpName} part of the URI structure for a custom operation without resource association as defined in clause 5.2.4 of 3GPP TS 29.122. + operations: + minItems: 1 + type: array + description: | + Supported HTTP methods for the API resource. Only applicable when the protocol in AefProfile indicates HTTP. + items: + $ref: '#/components/schemas/Operation' + description: + type: string + description: Text description of the custom operation + description: Represents the description of a custom operation. + CommunicationType: + description: | + Possible values are: + - REQUEST_RESPONSE: The communication is of the type request-response + - SUBSCRIBE_NOTIFY: The communication is of the type subscribe-notify + anyOf: + - type: string + enum: + - REQUEST_RESPONSE + - SUBSCRIBE_NOTIFY + - type: string + description: | + This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. + Operation: + description: | + Possible values are: + - GET: HTTP GET method + - POST: HTTP POST method + - PUT: HTTP PUT method + - PATCH: HTTP PATCH method + - DELETE: HTTP DELETE method + anyOf: + - type: string + enum: + - GET + - POST + - PUT + - PATCH + - DELETE + - type: string + description: | + This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. + InterfaceDescription: + type: object + properties: + ipv4Addr: + $ref: '#/components/schemas/Ipv4Addr' + ipv6Addr: + $ref: '#/components/schemas/Ipv6Addr' + port: + $ref: '#/components/schemas/Port' + securityMethods: + minItems: 1 + type: array + description: | + Security methods supported by the interface, it take precedence over the security methods provided in AefProfile, for this specific interface. + items: + $ref: '#/components/schemas/SecurityMethod' + description: Represents the description of an API's interface. + oneOf: + - required: + - ipv4Addr + - required: + - ipv6Addr + Ipv4Addr: + type: string + description: string identifying a Ipv4 address formatted in the "dotted decimal" notation as defined in IETF RFC 1166. + Ipv6Addr: + type: string + description: string identifying a Ipv6 address formatted according to clause 4 in IETF RFC 5952. The mixed Ipv4 Ipv6 notation according to clause 5 of IETF RFC 5952 shall not be used. + Port: + maximum: 65535 + minimum: 0 + type: integer + description: Unsigned integer with valid values between 0 and 65535. + AefLocation: + type: object + properties: + civicAddr: + $ref: '#/components/schemas/CivicAddress' + geoArea: + $ref: '#/components/schemas/GeographicArea' + dcId: + type: string + description: | + Identifies the data center where the AEF providing the service API is located. + description: | + The location information (e.g. civic address, GPS coordinates, data center ID) where the AEF providing the service API is located. + DateTime: + type: string + description: string with format "date-time" as defined in OpenAPI. + format: date-time + CivicAddress: + type: object + properties: + country: + type: string + A1: + type: string + A2: + type: string + A3: + type: string + A4: + type: string + A5: + type: string + A6: + type: string + PRD: + type: string + POD: + type: string + STS: + type: string + HNO: + type: string + HNS: + type: string + LMK: + type: string + LOC: + type: string + NAM: + type: string + PC: + type: string + BLD: + type: string + UNIT: + type: string + FLR: + type: string + ROOM: + type: string + PLC: + type: string + PCN: + type: string + POBOX: + type: string + ADDCODE: + type: string + SEAT: + type: string + RD: + type: string + RDSEC: + type: string + RDBR: + type: string + RDSUBBR: + type: string + PRM: + type: string + POM: + type: string + usageRules: + type: string + method: + type: string + providedBy: + type: string + description: Indicates a Civic address. + GeographicArea: + description: Geographic area specified by different shape. + anyOf: + - $ref: '#/components/schemas/Point' + - $ref: '#/components/schemas/PointUncertaintyCircle' + - $ref: '#/components/schemas/PointUncertaintyEllipse' + - $ref: '#/components/schemas/Polygon' + - $ref: '#/components/schemas/PointAltitude' + - $ref: '#/components/schemas/PointAltitudeUncertainty' + - $ref: '#/components/schemas/EllipsoidArc' + Point: + description: Ellipsoid Point. + allOf: + - $ref: '#/components/schemas/GADShape' + - required: + - point + type: object + properties: + point: + $ref: '#/components/schemas/GeographicalCoordinates' + GADShape: + required: + - shape + type: object + properties: + shape: + $ref: '#/components/schemas/SupportedGADShapes' + description: Common base type for GAD shapes. + discriminator: + propertyName: shape + mapping: + POINT: '#/components/schemas/Point' + POINT_UNCERTAINTY_CIRCLE: '#/components/schemas/PointUncertaintyCircle' + POINT_UNCERTAINTY_ELLIPSE: '#/components/schemas/PointUncertaintyEllipse' + POLYGON: '#/components/schemas/Polygon' + POINT_ALTITUDE: '#/components/schemas/PointAltitude' + POINT_ALTITUDE_UNCERTAINTY: '#/components/schemas/PointAltitudeUncertainty' + ELLIPSOID_ARC: '#/components/schemas/EllipsoidArc' + LOCAL_2D_POINT_UNCERTAINTY_ELLIPSE: '#/components/schemas/Local2dPointUncertaintyEllipse' + LOCAL_3D_POINT_UNCERTAINTY_ELLIPSOID: '#/components/schemas/Local3dPointUncertaintyEllipsoid' + GeographicalCoordinates: + required: + - lat + - lon + type: object + properties: + lon: + maximum: 180 + minimum: -180 + type: number + format: double + lat: + maximum: 90 + minimum: -90 + type: number + format: double + description: Geographical coordinates. + SupportedGADShapes: + description: Indicates supported GAD shapes. + anyOf: + - type: string + enum: + - POINT + - POINT_UNCERTAINTY_CIRCLE + - POINT_UNCERTAINTY_ELLIPSE + - POLYGON + - POINT_ALTITUDE + - POINT_ALTITUDE_UNCERTAINTY + - ELLIPSOID_ARC + - LOCAL_2D_POINT_UNCERTAINTY_ELLIPSE + - LOCAL_3D_POINT_UNCERTAINTY_ELLIPSOID + - type: string + PointUncertaintyCircle: + description: Ellipsoid point with uncertainty circle. + allOf: + - $ref: '#/components/schemas/GADShape' + - required: + - point + - uncertainty + type: object + properties: + point: + $ref: '#/components/schemas/GeographicalCoordinates' + uncertainty: + $ref: '#/components/schemas/Uncertainty' + Uncertainty: + minimum: 0 + type: number + description: Indicates value of uncertainty. + format: float + PointUncertaintyEllipse: + description: Ellipsoid point with uncertainty ellipse. + allOf: + - $ref: '#/components/schemas/GADShape' + - required: + - confidence + - point + - uncertaintyEllipse + type: object + properties: + point: + $ref: '#/components/schemas/GeographicalCoordinates' + uncertaintyEllipse: + $ref: '#/components/schemas/UncertaintyEllipse' + confidence: + $ref: '#/components/schemas/Confidence' + UncertaintyEllipse: + required: + - orientationMajor + - semiMajor + - semiMinor + type: object + properties: + semiMajor: + $ref: '#/components/schemas/Uncertainty' + semiMinor: + $ref: '#/components/schemas/Uncertainty' + orientationMajor: + $ref: '#/components/schemas/Orientation' + description: Ellipse with uncertainty. + Confidence: + maximum: 100 + minimum: 0 + type: integer + description: Indicates value of confidence. + Orientation: + maximum: 180 + minimum: 0 + type: integer + description: Indicates value of orientation angle. + Polygon: + description: Polygon. + allOf: + - $ref: '#/components/schemas/GADShape' + - required: + - pointList + type: object + properties: + pointList: + $ref: '#/components/schemas/PointList' + PointList: + maxItems: 15 + minItems: 3 + type: array + description: List of points. + items: + $ref: '#/components/schemas/GeographicalCoordinates' + PointAltitude: + description: Ellipsoid point with altitude. + allOf: + - $ref: '#/components/schemas/GADShape' + - required: + - altitude + - point + type: object + properties: + point: + $ref: '#/components/schemas/GeographicalCoordinates' + altitude: + $ref: '#/components/schemas/Altitude' + Altitude: + maximum: 32767 + minimum: -32767 + type: number + description: Indicates value of altitude. + format: double + PointAltitudeUncertainty: + description: Ellipsoid point with altitude and uncertainty ellipsoid. + allOf: + - $ref: '#/components/schemas/GADShape' + - required: + - altitude + - confidence + - point + - uncertaintyAltitude + - uncertaintyEllipse + type: object + properties: + point: + $ref: '#/components/schemas/GeographicalCoordinates' + altitude: + $ref: '#/components/schemas/Altitude' + uncertaintyEllipse: + $ref: '#/components/schemas/UncertaintyEllipse' + uncertaintyAltitude: + $ref: '#/components/schemas/Uncertainty' + confidence: + $ref: '#/components/schemas/Confidence' + EllipsoidArc: + description: Ellipsoid Arc. + allOf: + - $ref: '#/components/schemas/GADShape' + - required: + - confidence + - includedAngle + - innerRadius + - offsetAngle + - point + - uncertaintyRadius + type: object + properties: + point: + $ref: '#/components/schemas/GeographicalCoordinates' + innerRadius: + $ref: '#/components/schemas/InnerRadius' + uncertaintyRadius: + $ref: '#/components/schemas/Uncertainty' + offsetAngle: + $ref: '#/components/schemas/Angle' + includedAngle: + $ref: '#/components/schemas/Angle' + confidence: + $ref: '#/components/schemas/Confidence' + InnerRadius: + maximum: 327675 + minimum: 0 + type: integer + description: Indicates value of the inner radius. + format: int32 + Angle: + maximum: 360 + minimum: 0 + type: integer + description: Indicates value of angle. + CAPIFEvent: + description: | + Possible values are: + - SERVICE_API_AVAILABLE: Events related to the availability of service APIs after the service APIs are published. + - SERVICE_API_UNAVAILABLE: Events related to the unavailability of service APIs after the service APIs are unpublished. + - SERVICE_API_UPDATE: Events related to change in service API information. + - API_INVOKER_ONBOARDED: Events related to API invoker onboarded to CAPIF. + - API_INVOKER_OFFBOARDED: Events related to API invoker offboarded from CAPIF. + - SERVICE_API_INVOCATION_SUCCESS: Events related to the successful invocation of service APIs. + - SERVICE_API_INVOCATION_FAILURE: Events related to the failed invocation of service APIs. + - ACCESS_CONTROL_POLICY_UPDATE: Events related to the update for the access control policy related to the service APIs. + - ACCESS_CONTROL_POLICY_UNAVAILABLE: Events related to the unavailability of the access control policy related to the service APIs. + - API_INVOKER_AUTHORIZATION_REVOKED: Events related to the revocation of the authorization of API invokers to access the service APIs. + - API_INVOKER_UPDATED: Events related to API invoker profile updated to CAPIF. + - API_TOPOLOGY_HIDING_CREATED: Events related to the creation or update of the API topology hiding information of the service APIs after the service APIs are published. + - API_TOPOLOGY_HIDING_REVOKED: Events related to the revocation of the API topology hiding information of the service APIs after the service APIs are unpublished. + anyOf: + - type: string + enum: + - SERVICE_API_AVAILABLE + - SERVICE_API_UNAVAILABLE + - SERVICE_API_UPDATE + - API_INVOKER_ONBOARDED + - API_INVOKER_OFFBOARDED + - SERVICE_API_INVOCATION_SUCCESS + - SERVICE_API_INVOCATION_FAILURE + - ACCESS_CONTROL_POLICY_UPDATE + - ACCESS_CONTROL_POLICY_UNAVAILABLE + - API_INVOKER_AUTHORIZATION_REVOKED + - API_INVOKER_UPDATED + - API_TOPOLOGY_HIDING_CREATED + - API_TOPOLOGY_HIDING_REVOKED + - type: string + description: | + This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. + CAPIFEventFilter: + type: object + properties: + apiIds: + minItems: 1 + type: array + description: Identifier of the service API + items: + type: string + apiInvokerIds: + minItems: 1 + type: array + description: Identity of the API invoker + items: + type: string + aefIds: + minItems: 1 + type: array + description: Identifier of the API exposing function + items: + type: string + description: Represents a CAPIF event filter. + ReportingInformation: + type: object + properties: + immRep: + type: boolean + notifMethod: + $ref: '#/components/schemas/NotificationMethod' + maxReportNbr: + $ref: '#/components/schemas/Uinteger' + monDur: + $ref: '#/components/schemas/DateTime' + repPeriod: + $ref: '#/components/schemas/DurationSec' + sampRatio: + $ref: '#/components/schemas/SamplingRatio' + partitionCriteria: + minItems: 1 + type: array + description: Criteria for partitioning the UEs before applying the sampling ratio. + items: + $ref: '#/components/schemas/PartitioningCriteria' + grpRepTime: + $ref: '#/components/schemas/DurationSec' + notifFlag: + $ref: '#/components/schemas/NotificationFlag' + description: Represents the type of reporting that the subscription requires. + NotificationMethod: + description: | + Possible values are: + - PERIODIC + - ONE_TIME + - ON_EVENT_DETECTION + anyOf: + - type: string + enum: + - PERIODIC + - ONE_TIME + - ON_EVENT_DETECTION + - type: string + description: | + This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. + Uinteger: + minimum: 0 + type: integer + description: "Unsigned Integer, i.e. only value 0 and integers above 0 are permissible." + DurationSec: + type: integer + description: indicating a time in seconds. + SamplingRatio: + maximum: 100 + minimum: 1 + type: integer + description: "Unsigned integer indicating Sampling Ratio (see clauses 4.15.1 of 3GPP TS 23.502), expressed in percent. \n" + PartitioningCriteria: + description: | + Possible values are: + - "TAC": Type Allocation Code + - "SUBPLMN": Subscriber PLMN ID + - "GEOAREA": Geographical area, i.e. list(s) of TAI(s) + - "SNSSAI": S-NSSAI + - "DNN": DNN + anyOf: + - type: string + enum: + - TAC + - SUBPLMN + - GEOAREA + - SNSSAI + - DNN + - type: string + description: | + This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. + NotificationFlag: + description: |- + Possible values are: + - ACTIVATE: The event notification is activated. + - DEACTIVATE: The event notification is deactivated and shall be muted. The available + event(s) shall be stored. + - RETRIEVAL: The event notification shall be sent to the NF service consumer(s), + after that, is muted again. + anyOf: + - type: string + enum: + - ACTIVATE + - DEACTIVATE + - RETRIEVAL + - type: string + description: "This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. \n" diff --git a/doc/testing/postman/CAPIF.postman_collection.json b/doc/testing/postman/CAPIF.postman_collection.json index 4f4ba37f91eee28896bbf4974c51b9a0d8b84f73..423ec30226ddb328968f9e0bd0c16c41ee9009ec 100644 --- a/doc/testing/postman/CAPIF.postman_collection.json +++ b/doc/testing/postman/CAPIF.postman_collection.json @@ -1,10 +1,10 @@ { "info": { - "_postman_id": "b512e528-4b13-4be2-aed2-a61a8381360e", + "_postman_id": "03e5f144-6a4f-4899-a917-14787d59fbef", "name": "CAPIF", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", "_exporter_id": "31608242", - "_collection_link": "https://red-comet-993867.postman.co/workspace/Team-Workspace~bfc7c442-a60c-4bb1-8730-fdabc2df89b9/collection/31608242-b512e528-4b13-4be2-aed2-a61a8381360e?action=share&source=collection_link&creator=31608242" + "_collection_link": "https://red-comet-993867.postman.co/workspace/Team-Workspace~bfc7c442-a60c-4bb1-8730-fdabc2df89b9/collection/31608242-03e5f144-6a4f-4899-a917-14787d59fbef?action=share&source=collection_link&creator=31608242" }, "item": [ { @@ -264,7 +264,6 @@ { "key": "", "value": "", - "type": "text", "disabled": true } ], @@ -340,7 +339,6 @@ { "key": "", "value": "", - "type": "text", "disabled": true } ], @@ -439,7 +437,6 @@ { "key": "", "value": "", - "type": "text", "disabled": true } ], @@ -527,7 +524,6 @@ { "key": "", "value": "", - "type": "text", "disabled": true } ], @@ -603,7 +599,6 @@ { "key": "", "value": "", - "type": "text", "disabled": true } ], @@ -686,7 +681,6 @@ { "key": "", "value": "", - "type": "text", "disabled": true } ], @@ -741,7 +735,8 @@ "exec": [ "" ], - "type": "text/javascript" + "type": "text/javascript", + "packages": {} } }, { @@ -750,7 +745,8 @@ "exec": [ "" ], - "type": "text/javascript" + "type": "text/javascript", + "packages": {} } } ], @@ -773,13 +769,12 @@ { "key": "", "value": "", - "type": "text", "disabled": true } ], "body": { "mode": "raw", - "raw": "{\n\"name\": {{USERNAME_INVOKER}}\n}", + "raw": "{\n\"name\": \"{{USER_NAME}}\"\n}", "options": { "raw": { "language": "json" @@ -961,7 +956,7 @@ } ] }, - "method": "GET", + "method": "POST", "header": [], "url": { "raw": "https://{{REGISTER_HOSTNAME}}:{{REGISTER_PORT}}/refresh",