---
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"
