-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
These are some proposed APIs for the M3 interface between the 5GMS application function and 5GMS application server. These are a work in progress and may be changed.
- Loading branch information
David Waring
committed
Oct 18, 2022
1 parent
b3cfda1
commit f96e1e4
Showing
2 changed files
with
369 additions
and
0 deletions.
There are no files selected for viewing
206 changes: 206 additions & 0 deletions
206
5gms/5G_APIs-overrides/M3_ContentHostingProvisioning.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,206 @@ | ||
openapi: 3.0.0 | ||
info: | ||
title: M3_ContentHostingProvisioning | ||
version: 0.0.0 | ||
description: | | ||
5GMS AS M3 Content Hosting Provisioning API | ||
Copyright © 2022 British Broadcasting Corporation | ||
All rights reserved. | ||
tags: | ||
- name: M3_ContentHostingProvisioning | ||
description: '5G Media Streaming: Application Server Provisioning (M3) APIs: Content Hosting Provisioning' | ||
externalDocs: | ||
description: 'TS 26.512 V16.x.x; 5G Media Streaming (5GMS); Protocols' | ||
url: 'https://www.3gpp.org/ftp/Specs/archive/26_series/26.512/' | ||
servers: | ||
- url: '{apiRoot}/3gpp-m3/v1' | ||
variables: | ||
apiRoot: | ||
default: https://example.com | ||
description: See 3GPP TS 29.512 clause 6.1. | ||
paths: | ||
/content-hosting-configurations: | ||
summary: "Content Hosting Configuration collection" | ||
get: | ||
operationId: retrieveContentHostingConfigurations | ||
summary: "Retrieve a list of Content Hosting Configuration resource identifiers currently registered with the 5GMS AS" | ||
responses: | ||
'200': | ||
# OK | ||
description: "Success" | ||
content: | ||
application/json: | ||
schema: | ||
type: array | ||
items: | ||
$ref: 'TS26512_CommonData.yaml#/components/schemas/ResourceId' | ||
'500': | ||
# Internal Server Error | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/500' | ||
'503': | ||
# Service Unavailable | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/503' | ||
default: | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/default' | ||
|
||
/content-hosting-configurations/{provisioningSessionId}: | ||
summary: "Operations to manipulate a single Content Hosting Configuration resource" | ||
description: "Individual Content Hosting Configuration resources in the collection are addressed by the provisioningSessionId of their parent Provisioning Session." | ||
parameters: | ||
- name: provisioningSessionId | ||
in: path | ||
required: true | ||
schema: | ||
$ref: 'TS26512_CommonData.yaml#/components/schemas/ResourceId' | ||
description: 'The resource identifier of an existing Provisioning Session.' | ||
post: | ||
operationId: createContentHostingConfiguration | ||
summary: 'Create and upload the Content Hosting Configuration for the specified Provisioning Session' | ||
requestBody: | ||
description: 'A JSON representation of a Content Hosting Configuration' | ||
required: true | ||
content: | ||
application/json: | ||
schema: | ||
$ref: 'TS26512_M1_ContentHostingProvisioning.yaml#/components/schemas/ContentHostingConfiguration' | ||
responses: | ||
'201': | ||
# Created | ||
description: 'Content Hosting Configuration Created' | ||
headers: | ||
Location: | ||
description: 'URL of the newly created Content Hosting Configuration (which may be redirected from the request URL).' | ||
required: true | ||
schema: | ||
$ref: 'TS26512_CommonData.yaml#/components/schemas/Url' | ||
'405': | ||
# Method Not Allowed: Content Hosting Configuration resource already exists at the specified path | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/405' | ||
'413': | ||
# Payload too large | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/413' | ||
'414': | ||
# URI too long | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/414' | ||
'415': | ||
# Unsupported Media Type | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/415' | ||
'500': | ||
# Internal Server Error | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/500' | ||
'503': | ||
# Service Unavailable | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/503' | ||
default: | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/default' | ||
# (Retrieval of individual Content Hosting Configuration resources is not permitted at reference point M3.) | ||
put: | ||
operationId: updateContentHostingConfiguration | ||
summary: 'Update (by replacement) an existing Content Hosting Configuration for the specified Provisioning Session' | ||
requestBody: | ||
description: 'A JSON representation of a Content Hosting Configuration' | ||
required: true | ||
content: | ||
application/json: | ||
schema: | ||
$ref: 'TS26512_M1_ContentHostingProvisioning.yaml#/components/schemas/ContentHostingConfiguration' | ||
responses: | ||
'200': | ||
# OK | ||
description: 'Content Hosting Configuration Updated' | ||
'204': | ||
# No Content | ||
description: 'Content Hosting Configuration Unchanged' | ||
'404': | ||
# Not Found | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/404' | ||
'413': | ||
# Payload too large | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/413' | ||
'414': | ||
# URI too long | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/414' | ||
'415': | ||
# Unsupported Media Type | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/415' | ||
'500': | ||
# Internal Server Error | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/500' | ||
'503': | ||
# Service Unavailable | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/503' | ||
default: | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/default' | ||
delete: | ||
operationId: destroyContentHostingConfiguration | ||
summary: 'Destroy the specified Content Hosting Configuration' | ||
responses: | ||
'204': | ||
# No Content | ||
description: 'Content Hosting Configuration Destroyed' | ||
'404': | ||
# Not Found | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/404' | ||
'413': | ||
# Payload too large | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/413' | ||
'414': | ||
# URI too long | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/414' | ||
'500': | ||
# Internal Server Error | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/500' | ||
'503': | ||
# Service Unavailable | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/503' | ||
default: | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/default' | ||
|
||
/content-hosting-configurations/{provisioningSessionId}/purge: | ||
parameters: | ||
- name: provisioningSessionId | ||
in: path | ||
required: true | ||
schema: | ||
$ref: 'TS26512_CommonData.yaml#/components/schemas/ResourceId' | ||
description: 'The Provisioning Session identifier of an existing Content Hosting Configuration.' | ||
post: | ||
operationId: purgeContentHostingCache | ||
summary: 'Purge the content of the cache for the specified Content Hosting Configuration' | ||
requestBody: | ||
description: 'The regular expression pattern for resources to purge from the cache' | ||
required: true | ||
content: | ||
application/x-www-form-urlencoded: | ||
schema: | ||
properties: | ||
pattern: | ||
description: 'Keyword' | ||
type: string | ||
value: | ||
description: 'The regular expression' | ||
type: string | ||
responses: | ||
'204': | ||
# No Content | ||
description: 'Content Purged' | ||
'404': | ||
# Not Found | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/404' | ||
'413': | ||
# Payload too large | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/413' | ||
'415': | ||
# Unsupported Media Type | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/415' | ||
'414': | ||
# URI too long | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/414' | ||
'500': | ||
# Internal Server Error | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/500' | ||
'503': | ||
# Service Unavailable | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/503' | ||
default: | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/default' |
163 changes: 163 additions & 0 deletions
163
5gms/5G_APIs-overrides/M3_ServerCertificatesProvisioning.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,163 @@ | ||
openapi: 3.0.0 | ||
info: | ||
title: M3_ServerCertificatesProvisioning | ||
version: 0.0.0 | ||
description: | | ||
5GMS AS M3 Server Certificates Provisioning API | ||
Copyright © 2022 British Broadcasting Corporation | ||
All rights reserved. | ||
tags: | ||
- name: M3_ServerCertificatesProvisioning | ||
description: '5G Media Streaming: Application Server Provisioning (M3) APIs: Server Certificates Provisioning' | ||
externalDocs: | ||
description: 'TS 26.512 V16.x.x; 5G Media Streaming (5GMS); Protocols' | ||
url: 'https://www.3gpp.org/ftp/Specs/archive/26_series/26.512/' | ||
servers: | ||
- url: '{apiRoot}/3gpp-m3/v1' | ||
variables: | ||
apiRoot: | ||
default: https://example.com | ||
description: See 3GPP TS 29.512 clause 6.1. | ||
paths: | ||
/certificates: | ||
summary: "Server Certificates collection" | ||
get: | ||
operationId: retrieveServerCertificates | ||
summary: "Retrieve a list of Server Certificate composite resource identifiers currently registered with the 5GMS AS" | ||
responses: | ||
'200': | ||
# OK | ||
description: "Success" | ||
content: | ||
application/json: | ||
schema: | ||
type: array | ||
items: | ||
$ref: 'TS26512_CommonData.yaml#/components/schemas/ResourceId' | ||
'500': | ||
# Internal Server Error | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/500' | ||
'503': | ||
# Service Unavailable | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/503' | ||
default: | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/default' | ||
|
||
/certificates/{provisioningSessionId}+{certificateId}: | ||
summary: "Operations to manipulate a single Server Certificate resource" | ||
description: "Individual Server Certificate resources in the collection are addressed using a composite key since certificateId is only unique within the scope of a provisioningSessionId." | ||
parameters: | ||
- name: provisioningSessionId | ||
in: path | ||
required: true | ||
schema: | ||
$ref: 'TS26512_CommonData.yaml#/components/schemas/ResourceId' | ||
description: 'The resource identifier of a Provisioning Session in the 5GMS AF.' | ||
- name: certificateId | ||
in: path | ||
required: true | ||
schema: | ||
$ref: 'TS26512_CommonData.yaml#/components/schemas/ResourceId' | ||
description: 'The resource identifier of a Server Certificate, unique within the scope of a Provisioning Session.' | ||
post: | ||
operationId: createServerCertificate | ||
summary: "Create a new Server Certificate resource and upload an X.509 certificate bundle to be associated with it" | ||
requestBody: | ||
description: "As well as the public certificate itself, the PEM bundle is required to include the private key of the certificate and any intermediate CA certificates." | ||
required: true | ||
content: | ||
application/x-pem-file: | ||
schema: | ||
type: string | ||
responses: | ||
'201': | ||
# Created | ||
description: "Server Certificate Created" | ||
headers: | ||
Location: | ||
description: 'URL of the newly created Content Hosting Configuration (which may be redirected from the request URL).' | ||
required: true | ||
schema: | ||
$ref: 'TS26512_CommonData.yaml#/components/schemas/Url' | ||
'405': | ||
# Method Not Allowed: Server Certificate resource already exists at the specified path | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/405' | ||
'413': | ||
# Payload too large | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/413' | ||
'414': | ||
# URI too long | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/414' | ||
'415': | ||
# Unsupported Media Type | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/415' | ||
'500': | ||
# Internal Server Error | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/500' | ||
'503': | ||
# Service Unavailable | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/503' | ||
default: | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/default' | ||
# (Retrieval of individual Server Certificate resources is not permitted at reference point M3.) | ||
put: | ||
operationId: updateServerCertificate | ||
summary: "Update (by replacement) an existing Server Certificate resource with a new X.509 certificate bundle" | ||
requestBody: | ||
description: "As well as the public certificate itself, the PEM bundle is required to include the private key of the certificate and any intermediate CA certificates." | ||
required: true | ||
content: | ||
application/x-pem-file: | ||
schema: | ||
type: string | ||
responses: | ||
'200': | ||
# OK | ||
description: "Server Certificate Updated" | ||
'204': | ||
# No Content | ||
description: 'Server Certificate Unchanged' | ||
'404': | ||
# Not Found | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/404' | ||
'413': | ||
# Payload too large | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/413' | ||
'414': | ||
# URI too long | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/414' | ||
'415': | ||
# Unsupported Media Type | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/415' | ||
'500': | ||
# Internal Server Error | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/500' | ||
'503': | ||
# Service Unavailable | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/503' | ||
default: | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/default' | ||
delete: | ||
operationId: destroyServerCertificate | ||
summary: 'Destroy an existing Server Certificate resource' | ||
responses: | ||
'204': | ||
# No Content | ||
description: 'Server Certificate Destroyed' | ||
'404': | ||
# Not Found | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/404' | ||
'413': | ||
# Payload too large | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/413' | ||
'414': | ||
# URI too long | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/414' | ||
'500': | ||
# Internal Server Error | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/500' | ||
'503': | ||
# Service Unavailable | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/503' | ||
default: | ||
$ref: 'TS29571_CommonData.yaml#/components/responses/default' |