open5gs/lib/sbi/support/r17-20230301-openapitools-6.../modified/TS29573_N32_Handshake.yaml

547 lines
17 KiB
YAML

openapi: 3.0.0
info:
version: '1.2.1'
title: 'N32 Handshake API'
description: |
N32-c Handshake Service.
© 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
All rights reserved.
servers:
- url: '{apiRoot}/n32c-handshake/v1'
variables:
apiRoot:
default: https://example.com
description: apiRoot as defined in clause 4.4 of 3GPP TS 29.501.
externalDocs:
description: 3GPP TS 29.573 V17.6.0; 5G System; Public Land Mobile Network (PLMN) Interconnection; Stage 3
url: https://www.3gpp.org/ftp/Specs/archive/29_series/29.573/
paths:
/exchange-capability:
post:
summary: Security Capability Negotiation
tags:
- Security Capability Negotiation
operationId: PostExchangeCapability
requestBody:
description: Custom operation for security capability negotiation
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SecNegotiateReqData'
responses:
'200':
description: OK (Successful negitiation of security capabilities)
content:
application/json:
schema:
$ref: '#/components/schemas/SecNegotiateRspData'
'400':
$ref: 'TS29571_CommonData.yaml#/components/responses/400'
'403':
$ref: 'TS29571_CommonData.yaml#/components/responses/403'
'411':
$ref: 'TS29571_CommonData.yaml#/components/responses/411'
'413':
$ref: 'TS29571_CommonData.yaml#/components/responses/413'
'415':
$ref: 'TS29571_CommonData.yaml#/components/responses/415'
'429':
$ref: 'TS29571_CommonData.yaml#/components/responses/429'
'500':
$ref: 'TS29571_CommonData.yaml#/components/responses/500'
'503':
$ref: 'TS29571_CommonData.yaml#/components/responses/503'
default:
description: Unexpected error
/exchange-params:
post:
summary: Parameter Exchange
tags:
- Parameter Exchange
operationId: PostExchangeParams
requestBody:
description: Custom operation for parameter exchange
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SecParamExchReqData'
responses:
'200':
description: OK (Successful exchange of parameters)
content:
application/json:
schema:
$ref: '#/components/schemas/SecParamExchRspData'
'400':
$ref: 'TS29571_CommonData.yaml#/components/responses/400'
'409':
$ref: 'TS29571_CommonData.yaml#/components/responses/409'
'411':
$ref: 'TS29571_CommonData.yaml#/components/responses/411'
'413':
$ref: 'TS29571_CommonData.yaml#/components/responses/413'
'415':
$ref: 'TS29571_CommonData.yaml#/components/responses/415'
'429':
$ref: 'TS29571_CommonData.yaml#/components/responses/429'
'500':
$ref: 'TS29571_CommonData.yaml#/components/responses/500'
'503':
$ref: 'TS29571_CommonData.yaml#/components/responses/503'
default:
description: Unexpected error
/n32f-terminate:
post:
summary: N32-f Context Terminate
tags:
- N32-f Context Terminate
operationId: PostN32fTerminate
requestBody:
description: Custom operation for n32-f context termination
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/N32fContextInfo'
responses:
'200':
description: OK (Successful exchange of parameters)
content:
application/json:
schema:
$ref: '#/components/schemas/N32fContextInfo'
'400':
$ref: 'TS29571_CommonData.yaml#/components/responses/400'
'411':
$ref: 'TS29571_CommonData.yaml#/components/responses/411'
'413':
$ref: 'TS29571_CommonData.yaml#/components/responses/413'
'415':
$ref: 'TS29571_CommonData.yaml#/components/responses/415'
'429':
$ref: 'TS29571_CommonData.yaml#/components/responses/429'
'500':
$ref: 'TS29571_CommonData.yaml#/components/responses/500'
'503':
$ref: 'TS29571_CommonData.yaml#/components/responses/503'
default:
description: Unexpected error
/n32f-error:
post:
summary: N32-f Error Reporting Procedure
tags:
- N32-f Error Report
operationId: PostN32fError
requestBody:
description: Custom operation for n32-f error reporting procedure
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/N32fErrorInfo'
responses:
'204':
description: successful error reporting
'400':
$ref: 'TS29571_CommonData.yaml#/components/responses/400'
'411':
$ref: 'TS29571_CommonData.yaml#/components/responses/411'
'413':
$ref: 'TS29571_CommonData.yaml#/components/responses/413'
'415':
$ref: 'TS29571_CommonData.yaml#/components/responses/415'
'429':
$ref: 'TS29571_CommonData.yaml#/components/responses/429'
'500':
$ref: 'TS29571_CommonData.yaml#/components/responses/500'
'503':
$ref: 'TS29571_CommonData.yaml#/components/responses/503'
default:
description: Unexpected error
components:
schemas:
SecurityCapability:
# description: Enumeration of security capabilities
# anyOf:
# - type: string
enum:
- TLS
- PRINS
- NONE
# - type: string
ApiSignature:
description: API URI of the service operation
oneOf:
- $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
- $ref: '#/components/schemas/CallbackName'
HttpMethod:
# description: Enumeration of HTTP methods
# anyOf:
# - type: string
enum:
- GET
- PUT
- POST
- DELETE
- PATCH
- HEAD
- OPTIONS
- CONNECT
- TRACE
# - type: string
IeType:
# description: Enumeration of types of IEs (i.e kind of IE) to specify the protection policy
# anyOf:
# - type: string
enum:
- UEID
- LOCATION
- KEY_MATERIAL
- AUTHENTICATION_MATERIAL
- AUTHORIZATION_TOKEN
- OTHER
- NONSENSITIVE
# - type: string
IeLocation:
# description: Location of the IE in a HTTP message
# anyOf:
# - type: string
enum:
- URI_PARAM
- HEADER
- BODY
- MULTIPART_BINARY
# - type: string
IeInfo:
description: Protection and modification policy for the IE
type: object
required:
- ieLoc
- ieType
properties:
ieLoc:
$ref: '#/components/schemas/IeLocation'
ieType:
$ref: '#/components/schemas/IeType'
reqIe:
type: string
rspIe:
type: string
isModifiable:
type: boolean
isModifiableByIpx:
type: object
additionalProperties:
type: boolean
minProperties: 1
ApiIeMapping:
description: API URI to IE mapping on which the protection policy needs to be applied
type: object
required:
- apiSignature
- apiMethod
- IeList
properties:
apiSignature:
$ref: '#/components/schemas/ApiSignature'
apiMethod:
$ref: '#/components/schemas/HttpMethod'
IeList:
type: array
items:
$ref: '#/components/schemas/IeInfo'
minItems: 1
# The attribute name does not follow the naming conventions specified in 3GPP TS 29.501. The attribute name is kept though as defined in the current specification for backward compatibility reason.
ProtectionPolicy:
description: The protection policy to be negotiated between the SEPPs
type: object
required:
- apiIeMappingList
properties:
apiIeMappingList:
type: array
items:
$ref: '#/components/schemas/ApiIeMapping'
minItems: 1
dataTypeEncPolicy:
type: array
items:
$ref: '#/components/schemas/IeType'
minItems: 1
SecNegotiateReqData:
description: Defines the security capabilities of a SEPP sent to a receiving SEPP
type: object
required:
- sender
- supportedSecCapabilityList
properties:
sender:
$ref: 'TS29571_CommonData.yaml#/components/schemas/Fqdn'
supportedSecCapabilityList:
type: array
items:
$ref: '#/components/schemas/SecurityCapability'
minItems: 1
3GppSbiTargetApiRootSupported:
type: boolean
default: false
# The attribute name does not follow the naming conventions specified in 3GPP TS 29.501. The attribute name is kept though as defined in the current specification for backward compatibility reason.
plmnIdList:
type: array
items:
$ref: 'TS29571_CommonData.yaml#/components/schemas/PlmnId'
minItems: 1
snpnIdList:
type: array
items:
$ref: 'TS29571_CommonData.yaml#/components/schemas/PlmnIdNid'
minItems: 1
targetPlmnId:
$ref: 'TS29571_CommonData.yaml#/components/schemas/PlmnId'
targetSnpnId:
$ref: 'TS29571_CommonData.yaml#/components/schemas/PlmnIdNid'
intendedUsagePurpose:
type: array
items:
$ref: '#/components/schemas/IntendedN32Purpose'
minItems: 1
supportedFeatures:
$ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
SecNegotiateRspData:
description: Defines the selected security capabilities by a SEPP
type: object
required:
- sender
- selectedSecCapability
properties:
sender:
$ref: 'TS29571_CommonData.yaml#/components/schemas/Fqdn'
selectedSecCapability:
$ref: '#/components/schemas/SecurityCapability'
3GppSbiTargetApiRootSupported:
type: boolean
default: false
# The attribute name does not follow the naming conventions specified in 3GPP TS 29.501. The attribute name is kept though as defined in the current specification for backward compatibility reason.
plmnIdList:
type: array
items:
$ref: 'TS29571_CommonData.yaml#/components/schemas/PlmnId'
minItems: 1
snpnIdList:
type: array
items:
$ref: 'TS29571_CommonData.yaml#/components/schemas/PlmnIdNid'
minItems: 1
allowedUsagePurpose:
type: array
items:
$ref: '#/components/schemas/IntendedN32Purpose'
minItems: 1
rejectedUsagePurpose:
type: array
items:
$ref: '#/components/schemas/IntendedN32Purpose'
minItems: 1
supportedFeatures:
$ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
SecParamExchReqData:
description: Request data structure for parameter exchange
type: object
required:
- n32fContextId
properties:
n32fContextId:
type: string
pattern: '^[A-Fa-f0-9]{16}$'
jweCipherSuiteList:
type: array
items:
type: string
minItems: 1
jwsCipherSuiteList:
type: array
items:
type: string
minItems: 1
protectionPolicyInfo:
$ref: '#/components/schemas/ProtectionPolicy'
ipxProviderSecInfoList:
type: array
items:
$ref: '#/components/schemas/IpxProviderSecInfo'
minItems: 1
sender:
$ref: 'TS29571_CommonData.yaml#/components/schemas/Fqdn'
SecParamExchRspData:
description: Response data structure for parameter exchange
type: object
required:
- n32fContextId
properties:
n32fContextId:
type: string
pattern: '^[A-Fa-f0-9]{16}$'
selectedJweCipherSuite:
type: string
selectedJwsCipherSuite:
type: string
selProtectionPolicyInfo:
$ref: '#/components/schemas/ProtectionPolicy'
ipxProviderSecInfoList:
type: array
items:
$ref: '#/components/schemas/IpxProviderSecInfo'
minItems: 1
sender:
$ref: 'TS29571_CommonData.yaml#/components/schemas/Fqdn'
N32fContextInfo:
description: N32-f context information
type: object
required:
- n32fContextId
properties:
n32fContextId:
type: string
pattern: '^[A-Fa-f0-9]{16}$'
CallbackName:
description: Callback Name
type: object
required:
- callbackType
properties:
callbackType:
type: string
N32fErrorInfo:
description: N32-f error information
type: object
required:
- n32fMessageId
- n32fErrorType
properties:
n32fMessageId:
type: string
n32fErrorType:
$ref: '#/components/schemas/N32fErrorType'
n32fContextId:
type: string
pattern: '^[A-Fa-f0-9]{16}$'
failedModificationList:
type: array
items:
$ref: '#/components/schemas/FailedModificationInfo'
minItems: 1
errorDetailsList:
type: array
items:
$ref: '#/components/schemas/N32fErrorDetail'
minItems: 1
FailedModificationInfo:
description: Information on N32-f modifications block that failed to process
type: object
required:
- ipxId
- n32fErrorType
properties:
ipxId:
$ref: 'TS29571_CommonData.yaml#/components/schemas/Fqdn'
n32fErrorType:
$ref: '#/components/schemas/N32fErrorType'
N32fErrorDetail:
description: Details about the N32f error
type: object
required:
- attribute
- msgReconstructFailReason
properties:
attribute:
type: string
msgReconstructFailReason:
$ref: '#/components/schemas/FailureReason'
IpxProviderSecInfo:
description: Defines the security information list of an IPX
type: object
required:
- ipxProviderId
properties:
ipxProviderId:
$ref: 'TS29571_CommonData.yaml#/components/schemas/Fqdn'
rawPublicKeyList:
type: array
items:
type: string
minItems: 1
certificateList:
type: array
items:
type: string
minItems: 1
IntendedN32Purpose:
description: Indicates the intended N32 establishment purpose
type: object
required:
- usagePurpose
properties:
usagePurpose:
$ref: '#/components/schemas/N32Purpose'
additionalInfo:
type: string
cause:
type: string
N32fErrorType:
# description: Type of error while processing N32-f message
# anyOf:
# - type: string
enum:
- INTEGRITY_CHECK_FAILED
- INTEGRITY_CHECK_ON_MODIFICATIONS_FAILED
- MODIFICATIONS_INSTRUCTIONS_FAILED
- DECIPHERING_FAILED
- MESSAGE_RECONSTRUCTION_FAILED
- CONTEXT_NOT_FOUND
- INTEGRITY_KEY_EXPIRED
- ENCRYPTION_KEY_EXPIRED
- POLICY_MISMATCH
# - type: string
FailureReason:
# description: Reason for failure to reconstruct a HTTP/2 message from N32-f message
# anyOf:
# - type: string
enum:
- INVALID_JSON_POINTER
- INVALID_INDEX_TO_ENCRYPTED_BLOCK
- INVALID_HTTP_HEADER
# - type: string
N32Purpose:
# description: Usage purpose of establishing N32 connectivity
# anyOf:
# - type: string
enum:
- ROAMING
- INTER_PLMN_MOBILITY
- SMS_INTERCONNECT
- ROAMING_TEST
- INTER_PLMN_MOBILITY_TEST
- SMS_INTERCONNECT_TEST
- SNPN_INTERCONNECT
- SNPN_INTERCONNECT_TEST
- DISASTER_ROAMING
- DISASTER_ROAMING_TEST
# - type: string