Publish New API

Publish New API

Publishes a new API based on the provided Service API description.

Request
URI
POST
https://{api_host}/dms/published-apis/v1/{apfId}/service-apis
COPY
Path Parameters
string
apfId
Required

ID of the API Publishing Function.

Header Parameters
string
Version
Optional

If provided in a request, the value of the header is a string signalling the desired version of the API to be used in handling the request. If the provided version is not available, a 406 Not Acceptable response will be sent. If no Version header is provided, the latest available version will be used. This mechanism allows a user-agent to request a specfic version of the API when multiple versions are available.


Request Body

Service API description that needs to be added.

ServiceAPIDescription of type(s) application/json
Required
{
    "apiName": "string",
    "apiId": "string",
    "aefProfiles": [
        {
            "aefId": "string",
            "versions": [
                {
                    "apiVersion": "string",
                    "expiry": "string",
                    "resources": [
                        {
                            "resourceName": "string",
                            "uri": "string",
                            "custOpName": "string",
                            "operations": [
                                {}
                            ],
                            "description": "string"
                        }
                    ],
                    "custOperations": [
                        {
                            "custOpName": "string",
                            "operations": [
                                {}
                            ],
                            "description": "string"
                        }
                    ]
                }
            ],
            "securityMethods": [
                {}
            ],
            "domainName": "string",
            "interfaceDescriptions": [
                {
                    "ipv4Addr": "string",
                    "ipv6Addr": "string",
                    "fqdn": "string",
                    "port": 0,
                    "apiPrefix": "string",
                    "securityMethods": [
                        {}
                    ]
                }
            ]
        }
    ],
    "description": "string",
    "supportedFeatures": "string",
    "shareableInfo": {
        "isShareable": false,
        "capifProvDoms": [
            "string"
        ]
    },
    "serviceAPICategory": "string",
    "apiSuppFeats": "string",
    "pubApiPath": {
        "ccfIds": [
            "string"
        ]
    },
    "ccfId": "string"
}
string
apiName
Required

API name, it is set as {apiName} part of the URI structure as defined in clause 5.2.4 of 3GPP TS 29.122.

string
apiId
Optional

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).

array of AefProfile
aefProfiles
Optional

AEF profile information, which includes the exposed API details (e.g. protocol).

string
description
Optional

Text description of the API

supportedFeatures
Optional

supportedFeatures

shareableInfo
Optional

shareableInfo

string
serviceAPICategory
Optional

The service API category to which the service API belongs to.

apiSuppFeats
Optional

apiSuppFeats

pubApiPath
Optional

pubApiPath

string
ccfId
Optional

CAPIF core function identifier.

Responses
201

Service API published successfully. The URI of the created resource shall be returned in the "Location" HTTP header.

Returns ServiceAPIDescription of type(s) application/json
{
    "apiName": "string",
    "apiId": "string",
    "aefProfiles": [
        {
            "aefId": "string",
            "versions": [
                {
                    "apiVersion": "string",
                    "expiry": "string",
                    "resources": [
                        {
                            "resourceName": "string",
                            "uri": "string",
                            "custOpName": "string",
                            "operations": [
                                {}
                            ],
                            "description": "string"
                        }
                    ],
                    "custOperations": [
                        {
                            "custOpName": "string",
                            "operations": [
                                {}
                            ],
                            "description": "string"
                        }
                    ]
                }
            ],
            "securityMethods": [
                {}
            ],
            "domainName": "string",
            "interfaceDescriptions": [
                {
                    "ipv4Addr": "string",
                    "ipv6Addr": "string",
                    "fqdn": "string",
                    "port": 0,
                    "apiPrefix": "string",
                    "securityMethods": [
                        {}
                    ]
                }
            ]
        }
    ],
    "description": "string",
    "supportedFeatures": "string",
    "shareableInfo": {
        "isShareable": false,
        "capifProvDoms": [
            "string"
        ]
    },
    "serviceAPICategory": "string",
    "apiSuppFeats": "string",
    "pubApiPath": {
        "ccfIds": [
            "string"
        ]
    },
    "ccfId": "string"
}
string
apiName
Required

API name, it is set as {apiName} part of the URI structure as defined in clause 5.2.4 of 3GPP TS 29.122.

string
apiId
Optional

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).

array of AefProfile
aefProfiles
Optional

AEF profile information, which includes the exposed API details (e.g. protocol).

string
description
Optional

Text description of the API

supportedFeatures
Optional

supportedFeatures

shareableInfo
Optional

shareableInfo

string
serviceAPICategory
Optional

The service API category to which the service API belongs to.

apiSuppFeats
Optional

apiSuppFeats

pubApiPath
Optional

pubApiPath

string
ccfId
Optional

CAPIF core function identifier.

Response Headers

string
Location

Contains the URI of the newly created resource, according to the structure {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}

string
Version

The Version header in a response indicates the version of the API used to handle this request-response pair, in an API which has the potential to support multiple versions. Different versions may be requested using a Version header in a request.


400
Returns BadRequest of type(s) application/problem+json
{
    "type": "string",
    "title": "string",
    "status": 400,
    "detail": "Required field 'counter_names' missing.",
    "instance": "string"
}
string
type
Optional

A URI representing the type of the problem.

string
title
Required

A short summary of the error.

number
status
Required

The HTTP Response code associated with this error.

string
detail
Required

A detailed description of the error.

string
instance
Optional

An optional URI of the instance involved in the problem.


401
Returns Unauthorized of type(s) application/problem+json
{
    "type": "string",
    "title": "string",
    "status": 400,
    "detail": "Required field 'counter_names' missing.",
    "instance": "string"
}
string
type
Optional

A URI representing the type of the problem.

string
title
Required

A short summary of the error.

number
status
Required

The HTTP Response code associated with this error.

string
detail
Required

A detailed description of the error.

string
instance
Optional

An optional URI of the instance involved in the problem.


403
Returns Forbidden of type(s) application/problem+json
{
    "type": "string",
    "title": "string",
    "status": 400,
    "detail": "Required field 'counter_names' missing.",
    "instance": "string"
}
string
type
Optional

A URI representing the type of the problem.

string
title
Required

A short summary of the error.

number
status
Required

The HTTP Response code associated with this error.

string
detail
Required

A detailed description of the error.

string
instance
Optional

An optional URI of the instance involved in the problem.


404
Returns NotFound of type(s) application/problem+json
{
    "type": "string",
    "title": "string",
    "status": 400,
    "detail": "Required field 'counter_names' missing.",
    "instance": "string"
}
string
type
Optional

A URI representing the type of the problem.

string
title
Required

A short summary of the error.

number
status
Required

The HTTP Response code associated with this error.

string
detail
Required

A detailed description of the error.

string
instance
Optional

An optional URI of the instance involved in the problem.


406
Returns Unacceptable of type(s) application/problem+json
{
    "type": "string",
    "title": "string",
    "status": 400,
    "detail": "Required field 'counter_names' missing.",
    "instance": "string"
}
string
type
Optional

A URI representing the type of the problem.

string
title
Required

A short summary of the error.

number
status
Required

The HTTP Response code associated with this error.

string
detail
Required

A detailed description of the error.

string
instance
Optional

An optional URI of the instance involved in the problem.


409
Returns Conflict of type(s) application/problem+json
{
    "type": "string",
    "title": "string",
    "status": 400,
    "detail": "Required field 'counter_names' missing.",
    "instance": "string"
}
string
type
Optional

A URI representing the type of the problem.

string
title
Required

A short summary of the error.

number
status
Required

The HTTP Response code associated with this error.

string
detail
Required

A detailed description of the error.

string
instance
Optional

An optional URI of the instance involved in the problem.


415
Returns Unsupported of type(s) application/problem+json
{
    "type": "string",
    "title": "string",
    "status": 400,
    "detail": "Required field 'counter_names' missing.",
    "instance": "string"
}
string
type
Optional

A URI representing the type of the problem.

string
title
Required

A short summary of the error.

number
status
Required

The HTTP Response code associated with this error.

string
detail
Required

A detailed description of the error.

string
instance
Optional

An optional URI of the instance involved in the problem.


500
Returns ServerError of type(s) application/problem+json
{
    "type": "string",
    "title": "string",
    "status": 400,
    "detail": "Required field 'counter_names' missing.",
    "instance": "string"
}
string
type
Optional

A URI representing the type of the problem.

string
title
Required

A short summary of the error.

number
status
Required

The HTTP Response code associated with this error.

string
detail
Required

A detailed description of the error.

string
instance
Optional

An optional URI of the instance involved in the problem.


503
Returns ServiceUnavailable of type(s) application/problem+json
{
    "type": "string",
    "title": "string",
    "status": 400,
    "detail": "Required field 'counter_names' missing.",
    "instance": "string"
}
string
type
Optional

A URI representing the type of the problem.

string
title
Required

A short summary of the error.

number
status
Required

The HTTP Response code associated with this error.

string
detail
Required

A detailed description of the error.

string
instance
Optional

An optional URI of the instance involved in the problem.