-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Expose the OpenAPI description of the implemented APIs #45
Comments
(Moved from #38) |
(Moved from #38) {
"openapi": "3.0.2",
"info": {
"title": "5G-MAG M3",
"description": "5GMS AS M3 API Copyright © 2022 British Broadcasting Corporation All rights reserved.",
"version": "0.0.0"
},
"paths": {
"/3gpp-m3/v1/content-hosting-configurations/{provisioningSessionId}": {
"put": {
"tags": [
"default"
],
"summary": "Update (by replacement) an existing Content Hosting Configuration for the specified Provisioning Session",
"operationId": "update_content_hosting_configuration_3gpp_m3_v1_content_hosting_configurations__provisioningSessionId__put",
"parameters": [
{
"description": "The resource identifier of an existing Provisioning Session.",
"required": true,
"schema": {
"title": "Provisioningsessionid",
"type": "string",
"description": "The resource identifier of an existing Provisioning Session."
},
"name": "provisioningSessionId",
"in": "path"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"title": "Content Hosting Configuration",
"allOf": [
{
"$ref": "#/components/schemas/ContentHostingConfiguration"
}
],
"description": "A JSON representation of a Content Hosting Configuration"
}
}
}
},
"responses": {
"200": {
"description": "Generic Error",
"content": {
"application/json": {
"schema": {
}
}
}
},
"204": {
"description": "Content Hosting Configuration Unchanged"
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"413": {
"description": "Payload Too Large",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"414": {
"description": "URI Too Long",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"415": {
"description": "Unsupported Media Type",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"500": {
"description": "Internal Server Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"503": {
"description": "Service Unavailable",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
},
"post": {
"tags": [
"default"
],
"summary": "Create and upload the Content Hosting Configuration for the specified Provisioning Session",
"operationId": "create_content_hosting_configuration_3gpp_m3_v1_content_hosting_configurations__provisioningSessionId__post",
"parameters": [
{
"description": "The resource identifier of an existing Provisioning Session.",
"required": true,
"schema": {
"title": "Provisioningsessionid",
"type": "string",
"description": "The resource identifier of an existing Provisioning Session."
},
"name": "provisioningSessionId",
"in": "path"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"title": "Content Hosting Configuration",
"allOf": [
{
"$ref": "#/components/schemas/ContentHostingConfiguration"
}
],
"description": "A JSON representation of a Content Hosting Configuration"
}
}
}
},
"responses": {
"200": {
"description": "Generic Error",
"content": {
"application/json": {
"schema": {
}
}
}
},
"201": {
"description": "Content Hosting Configuration Created"
},
"405": {
"description": "Method Not Allowed"
},
"413": {
"description": "Payload Too Large",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"414": {
"description": "URI Too Long",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"415": {
"description": "Unsupported Media Type",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"500": {
"description": "Internal Server Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"503": {
"description": "Service Unavailable",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
},
"delete": {
"tags": [
"default"
],
"summary": "Destroy the specified Content Hosting Configuration",
"operationId": "destroy_content_hosting_configuration_3gpp_m3_v1_content_hosting_configurations__provisioningSessionId__delete",
"parameters": [
{
"description": "The resource identifier of an existing Provisioning Session.",
"required": true,
"schema": {
"title": "Provisioningsessionid",
"type": "string",
"description": "The resource identifier of an existing Provisioning Session."
},
"name": "provisioningSessionId",
"in": "path"
}
],
"responses": {
"200": {
"description": "Generic Error",
"content": {
"application/json": {
"schema": {
}
}
}
},
"204": {
"description": "Content Hosting Configuration Destroyed"
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"413": {
"description": "Payload Too Large",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"414": {
"description": "URI Too Long",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"500": {
"description": "Internal Server Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"503": {
"description": "Service Unavailable",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
},
"/3gpp-m3/v1/certificates/{afUniqueCertificateId}": {
"put": {
"tags": [
"default"
],
"summary": "Update (by replacement) an existing Server Certificate resource with a new X.509 certificate bundle",
"operationId": "update_server_certificate_3gpp_m3_v1_certificates__afUniqueCertificateId__put",
"parameters": [
{
"description": "The unique identifier, assigned by the 5GMS AF, for a certificate. This is unique across all certificates for all provisioning sessions.",
"required": true,
"schema": {
"title": "Afuniquecertificateid",
"type": "string",
"description": "The unique identifier, assigned by the 5GMS AF, for a certificate. This is unique across all certificates for all provisioning sessions."
},
"name": "afUniqueCertificateId",
"in": "path"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"title": "Body",
"type": "string",
"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."
}
}
}
},
"responses": {
"200": {
"description": "Generic Error",
"content": {
"application/json": {
"schema": {
}
}
}
},
"204": {
"description": "Server Certificate Unchanged"
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"413": {
"description": "Payload Too Large",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"414": {
"description": "URI Too Long",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"415": {
"description": "Unsupported Media Type",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"500": {
"description": "Internal Server Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"503": {
"description": "Service Unavailable",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
},
"post": {
"tags": [
"default"
],
"summary": "Create a new Server Certificate resource and upload an X.509 certificate bundle to be associated with it",
"operationId": "create_server_certificate_3gpp_m3_v1_certificates__afUniqueCertificateId__post",
"parameters": [
{
"description": "The unique identifier, assigned by the 5GMS AF, for a certificate. This is unique across all certificates for all provisioning sessions.",
"required": true,
"schema": {
"title": "Afuniquecertificateid",
"type": "string",
"description": "The unique identifier, assigned by the 5GMS AF, for a certificate. This is unique across all certificates for all provisioning sessions."
},
"name": "afUniqueCertificateId",
"in": "path"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"title": "Body",
"type": "string",
"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."
}
}
}
},
"responses": {
"200": {
"description": "Generic Error",
"content": {
"application/json": {
"schema": {
}
}
}
},
"201": {
"description": "Server Certificate Created"
},
"405": {
"description": "Method Not Allowed"
},
"413": {
"description": "Payload Too Large",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"414": {
"description": "URI Too Long",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"415": {
"description": "Unsupported Media Type",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"500": {
"description": "Internal Server Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"503": {
"description": "Service Unavailable",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
},
"delete": {
"tags": [
"default"
],
"summary": "Destroy an existing Server Certificate resource",
"operationId": "destroy_server_certificate_3gpp_m3_v1_certificates__afUniqueCertificateId__delete",
"parameters": [
{
"description": "The unique identifier, assigned by the 5GMS AF, for a certificate. This is unique across all certificates for all provisioning sessions.",
"required": true,
"schema": {
"title": "Afuniquecertificateid",
"type": "string",
"description": "The unique identifier, assigned by the 5GMS AF, for a certificate. This is unique across all certificates for all provisioning sessions."
},
"name": "afUniqueCertificateId",
"in": "path"
}
],
"responses": {
"200": {
"description": "Generic Error",
"content": {
"application/json": {
"schema": {
}
}
}
},
"204": {
"description": "Server Certificate Destroyed"
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"413": {
"description": "Payload Too Large",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"414": {
"description": "URI Too Long",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"500": {
"description": "Internal Server Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"503": {
"description": "Service Unavailable",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
},
"/3gpp-m3/v1/content-hosting-configurations/{provisioningSessionId}/purge": {
"post": {
"tags": [
"default"
],
"summary": "Purge the content of the cache for the specified Content Hosting Configuration",
"operationId": "purge_content_hosting_cache_3gpp_m3_v1_content_hosting_configurations__provisioningSessionId__purge_post",
"parameters": [
{
"description": "The Provisioning Session identifier of an existing Content Hosting Configuration.",
"required": true,
"schema": {
"title": "Provisioningsessionid",
"type": "string",
"description": "The Provisioning Session identifier of an existing Content Hosting Configuration."
},
"name": "provisioningSessionId",
"in": "path"
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/Body_purge_content_hosting_cache_3gpp_m3_v1_content_hosting_configurations__provisioningSessionId__purge_post"
}
}
}
},
"responses": {
"200": {
"description": "Generic Error",
"content": {
"application/json": {
"schema": {
}
}
}
},
"204": {
"description": "No Content Purged"
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"413": {
"description": "Payload Too Large",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"415": {
"description": "Unsupported Media Type",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"414": {
"description": "URI Too Long",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails1"
}
}
}
},
"500": {
"description": "Internal Server Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"503": {
"description": "Service Unavailable",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/3gpp-m3/v1/content-hosting-configurations": {
"get": {
"tags": [
"default"
],
"summary": "Retrieve a list of Content Hosting Configuration resource identifiers currently registered with the 5GMS AS",
"operationId": "retrieve_content_hosting_configurations_3gpp_m3_v1_content_hosting_configurations_get",
"responses": {
"200": {
"description": "Generic Error",
"content": {
"application/json": {
"schema": {
}
}
}
},
"500": {
"description": "Internal Server Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"503": {
"description": "Service Unavailable",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/3gpp-m3/v1/certificates": {
"get": {
"tags": [
"default"
],
"summary": "Retrieve a list of Server Certificate composite resource identifiers currently registered with the 5GMS AS",
"operationId": "retrieve_server_certificates_3gpp_m3_v1_certificates_get",
"responses": {
"200": {
"description": "Generic Error",
"content": {
"application/json": {
"schema": {
}
}
}
},
"500": {
"description": "Internal Server Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"503": {
"description": "Service Unavailable",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"AccessTokenErr": {
"title": "AccessTokenErr",
"required": [
"error"
],
"type": "object",
"properties": {
"error": {
"title": "Error",
"type": "string"
},
"error_description": {
"title": "Error Description",
"type": "string"
},
"error_uri": {
"title": "Error Uri",
"type": "string"
}
},
"description": "NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n\nDo not edit the class manually.\n\nAccessTokenErr - a model defined in OpenAPI\n\n error: The error of this AccessTokenErr.\n error_description: The error_description of this AccessTokenErr [Optional].\n error_uri: The error_uri of this AccessTokenErr [Optional]."
},
"AccessTokenReq": {
"title": "AccessTokenReq",
"required": [
"grant_type",
"nfInstanceId",
"scope"
],
"type": "object",
"properties": {
"grant_type": {
"title": "Grant Type",
"type": "string"
},
"nfInstanceId": {
"title": "Nfinstanceid",
"type": "string"
},
"nfType": {
"$ref": "#/components/schemas/NFType"
},
"targetNfType": {
"$ref": "#/components/schemas/NFType"
},
"scope": {
"title": "Scope",
"type": "string"
},
"targetNfInstanceId": {
"title": "Targetnfinstanceid",
"type": "string"
},
"requesterPlmn": {
"$ref": "#/components/schemas/PlmnId"
},
"requesterPlmnList": {
"title": "Requesterplmnlist",
"type": "array",
"items": {
"$ref": "#/components/schemas/PlmnId"
}
},
"requesterSnssaiList": {
"title": "Requestersnssailist",
"type": "array",
"items": {
"$ref": "#/components/schemas/Snssai"
}
},
"requesterFqdn": {
"title": "Requesterfqdn",
"type": "string"
},
"requesterSnpnList": {
"title": "Requestersnpnlist",
"type": "array",
"items": {
"$ref": "#/components/schemas/PlmnIdNid"
}
},
"targetPlmn": {
"$ref": "#/components/schemas/PlmnId"
},
"targetSnpn": {
"$ref": "#/components/schemas/PlmnIdNid"
},
"targetSnssaiList": {
"title": "Targetsnssailist",
"type": "array",
"items": {
"$ref": "#/components/schemas/Snssai"
}
},
"targetNsiList": {
"title": "Targetnsilist",
"type": "array",
"items": {
"type": "string"
}
},
"targetNfSetId": {
"title": "Targetnfsetid",
"type": "string"
},
"targetNfServiceSetId": {
"title": "Targetnfservicesetid",
"type": "string"
},
"hnrfAccessTokenUri": {
"title": "Hnrfaccesstokenuri",
"type": "string"
},
"sourceNfInstanceId": {
"title": "Sourcenfinstanceid",
"type": "string"
}
},
"description": "NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n\nDo not edit the class manually.\n\nAccessTokenReq - a model defined in OpenAPI\n\n grant_type: The grant_type of this AccessTokenReq.\n nf_instance_id: The nf_instance_id of this AccessTokenReq.\n nf_type: The nf_type of this AccessTokenReq [Optional].\n target_nf_type: The target_nf_type of this AccessTokenReq [Optional].\n scope: The scope of this AccessTokenReq.\n target_nf_instance_id: The target_nf_instance_id of this AccessTokenReq [Optional].\n requester_plmn: The requester_plmn of this AccessTokenReq [Optional].\n requester_plmn_list: The requester_plmn_list of this AccessTokenReq [Optional].\n requester_snssai_list: The requester_snssai_list of this AccessTokenReq [Optional].\n requester_fqdn: The requester_fqdn of this AccessTokenReq [Optional].\n requester_snpn_list: The requester_snpn_list of this AccessTokenReq [Optional].\n target_plmn: The target_plmn of this AccessTokenReq [Optional].\n target_snpn: The target_snpn of this AccessTokenReq [Optional].\n target_snssai_list: The target_snssai_list of this AccessTokenReq [Optional].\n target_nsi_list: The target_nsi_list of this AccessTokenReq [Optional].\n target_nf_set_id: The target_nf_set_id of this AccessTokenReq [Optional].\n target_nf_service_set_id: The target_nf_service_set_id of this AccessTokenReq [Optional].\n hnrf_access_token_uri: The hnrf_access_token_uri of this AccessTokenReq [Optional].\n source_nf_instance_id: The source_nf_instance_id of this AccessTokenReq [Optional]."
},
"AccessTokenReq1": {
"title": "AccessTokenReq1",
"required": [
"grant_type",
"nfInstanceId",
"scope"
],
"type": "object",
"properties": {
"grant_type": {
"title": "Grant Type",
"type": "string"
},
"nfInstanceId": {
"title": "Nfinstanceid",
"type": "string"
},
"nfType": {
"$ref": "#/components/schemas/NFType"
},
"targetNfType": {
"$ref": "#/components/schemas/NFType"
},
"scope": {
"title": "Scope",
"type": "string"
},
"targetNfInstanceId": {
"title": "Targetnfinstanceid",
"type": "string"
},
"requesterPlmn": {
"$ref": "#/components/schemas/PlmnId1"
},
"requesterPlmnList": {
"title": "Requesterplmnlist",
"type": "array",
"items": {
"$ref": "#/components/schemas/PlmnId1"
}
},
"requesterSnssaiList": {
"title": "Requestersnssailist",
"type": "array",
"items": {
"$ref": "#/components/schemas/Snssai"
}
},
"requesterFqdn": {
"title": "Requesterfqdn",
"type": "string"
},
"requesterSnpnList": {
"title": "Requestersnpnlist",
"type": "array",
"items": {
"$ref": "#/components/schemas/PlmnIdNid1"
}
},
"targetPlmn": {
"$ref": "#/components/schemas/PlmnId1"
},
"targetSnpn": {
"$ref": "#/components/schemas/PlmnIdNid1"
},
"targetSnssaiList": {
"title": "Targetsnssailist",
"type": "array",
"items": {
"$ref": "#/components/schemas/Snssai"
}
},
"targetNsiList": {
"title": "Targetnsilist",
"type": "array",
"items": {
"type": "string"
}
},
"targetNfSetId": {
"title": "Targetnfsetid",
"type": "string"
},
"targetNfServiceSetId": {
"title": "Targetnfservicesetid",
"type": "string"
},
"hnrfAccessTokenUri": {
"title": "Hnrfaccesstokenuri",
"type": "string"
},
"sourceNfInstanceId": {
"title": "Sourcenfinstanceid",
"type": "string"
}
},
"description": "NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n\nDo not edit the class manually.\n\nAccessTokenReq1 - a model defined in OpenAPI\n\n grant_type: The grant_type of this AccessTokenReq1.\n nf_instance_id: The nf_instance_id of this AccessTokenReq1.\n nf_type: The nf_type of this AccessTokenReq1 [Optional].\n target_nf_type: The target_nf_type of this AccessTokenReq1 [Optional].\n scope: The scope of this AccessTokenReq1.\n target_nf_instance_id: The target_nf_instance_id of this AccessTokenReq1 [Optional].\n requester_plmn: The requester_plmn of this AccessTokenReq1 [Optional].\n requester_plmn_list: The requester_plmn_list of this AccessTokenReq1 [Optional].\n requester_snssai_list: The requester_snssai_list of this AccessTokenReq1 [Optional].\n requester_fqdn: The requester_fqdn of this AccessTokenReq1 [Optional].\n requester_snpn_list: The requester_snpn_list of this AccessTokenReq1 [Optional].\n target_plmn: The target_plmn of this AccessTokenReq1 [Optional].\n target_snpn: The target_snpn of this AccessTokenReq1 [Optional].\n target_snssai_list: The target_snssai_list of this AccessTokenReq1 [Optional].\n target_nsi_list: The target_nsi_list of this AccessTokenReq1 [Optional].\n target_nf_set_id: The target_nf_set_id of this AccessTokenReq1 [Optional].\n target_nf_service_set_id: The target_nf_service_set_id of this AccessTokenReq1 [Optional].\n hnrf_access_token_uri: The hnrf_access_token_uri of this AccessTokenReq1 [Optional].\n source_nf_instance_id: The source_nf_instance_id of this AccessTokenReq1 [Optional]."
},
"Body_purge_content_hosting_cache_3gpp_m3_v1_content_hosting_configurations__provisioningSessionId__purge_post": {
"title": "Body_purge_content_hosting_cache_3gpp_m3_v1_content_hosting_configurations__provisioningSessionId__purge_post",
"type": "object",
"properties": {
"pattern": {
"title": "Pattern",
"type": "string",
"description": "Regular expression to match URL in cache entry"
}
}
},
"CachingConfiguration": {
"title": "CachingConfiguration",
"required": [
"urlPatternFilter"
],
"type": "object",
"properties": {
"urlPatternFilter": {
"title": "Urlpatternfilter",
"type": "string"
},
"cachingDirectives": {
"$ref": "#/components/schemas/CachingConfigurationCachingDirectives"
}
},
"description": "NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n\nDo not edit the class manually.\n\nCachingConfiguration - a model defined in OpenAPI\n\n url_pattern_filter: The url_pattern_filter of this CachingConfiguration.\n caching_directives: The caching_directives of this CachingConfiguration [Optional]."
},
"CachingConfigurationCachingDirectives": {
"title": "CachingConfigurationCachingDirectives",
"required": [
"noCache"
],
"type": "object",
"properties": {
"statusCodeFilters": {
"title": "Statuscodefilters",
"type": "array",
"items": {
"type": "integer"
}
},
"noCache": {
"title": "Nocache",
"type": "boolean"
},
"maxAge": {
"title": "Maxage",
"type": "integer"
}
},
"description": "NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n\nDo not edit the class manually.\n\nCachingConfigurationCachingDirectives - a model defined in OpenAPI\n\n status_code_filters: The status_code_filters of this CachingConfigurationCachingDirectives [Optional].\n no_cache: The no_cache of this CachingConfigurationCachingDirectives.\n max_age: The max_age of this CachingConfigurationCachingDirectives [Optional]."
},
"ContentHostingConfiguration": {
"title": "ContentHostingConfiguration",
"required": [
"name",
"ingestConfiguration",
"distributionConfigurations"
],
"type": "object",
"properties": {
"name": {
"title": "Name",
"type": "string"
},
"entryPointPath": {
"title": "Entrypointpath",
"type": "string"
},
"ingestConfiguration": {
"$ref": "#/components/schemas/IngestConfiguration"
},
"distributionConfigurations": {
"title": "Distributionconfigurations",
"type": "array",
"items": {
"$ref": "#/components/schemas/DistributionConfiguration"
}
}
},
"description": "NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n\nDo not edit the class manually.\n\nContentHostingConfiguration - a model defined in OpenAPI\n\n name: The name of this ContentHostingConfiguration.\n entry_point_path: The entry_point_path of this ContentHostingConfiguration [Optional].\n ingest_configuration: The ingest_configuration of this ContentHostingConfiguration.\n distribution_configurations: The distribution_configurations of this ContentHostingConfiguration."
},
"DistributionConfiguration": {
"title": "DistributionConfiguration",
"type": "object",
"properties": {
"contentPreparationTemplateId": {
"title": "Contentpreparationtemplateid",
"type": "string"
},
"canonicalDomainName": {
"title": "Canonicaldomainname",
"type": "string"
},
"domainNameAlias": {
"title": "Domainnamealias",
"type": "string"
},
"baseURL": {
"title": "Baseurl",
"maxLength": 65536,
"minLength": 1,
"type": "string",
"format": "uri"
},
"pathRewriteRules": {
"title": "Pathrewriterules",
"type": "array",
"items": {
"$ref": "#/components/schemas/PathRewriteRule"
}
},
"cachingConfigurations": {
"title": "Cachingconfigurations",
"type": "array",
"items": {
"$ref": "#/components/schemas/CachingConfiguration"
}
},
"geoFencing": {
"$ref": "#/components/schemas/DistributionConfigurationGeoFencing"
},
"urlSignature": {
"$ref": "#/components/schemas/DistributionConfigurationUrlSignature"
},
"certificateId": {
"title": "Certificateid",
"type": "string"
},
"supplementaryDistributionNetworks": {
"title": "Supplementarydistributionnetworks",
"type": "array",
"items": {
"$ref": "#/components/schemas/DistributionConfigurationSupplementaryDistributionNetworksInner"
}
}
},
"description": "NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n\nDo not edit the class manually.\n\nDistributionConfiguration - a model defined in OpenAPI\n\n content_preparation_template_id: The content_preparation_template_id of this DistributionConfiguration [Optional].\n canonical_domain_name: The canonical_domain_name of this DistributionConfiguration [Optional].\n domain_name_alias: The domain_name_alias of this DistributionConfiguration [Optional].\n base_url: The base_url of this DistributionConfiguration [Optional].\n path_rewrite_rules: The path_rewrite_rules of this DistributionConfiguration [Optional].\n caching_configurations: The caching_configurations of this DistributionConfiguration [Optional].\n geo_fencing: The geo_fencing of this DistributionConfiguration [Optional].\n url_signature: The url_signature of this DistributionConfiguration [Optional].\n certificate_id: The certificate_id of this DistributionConfiguration [Optional].\n supplementary_distribution_networks: The supplementary_distribution_networks of this DistributionConfiguration [Optional]."
},
"DistributionConfigurationGeoFencing": {
"title": "DistributionConfigurationGeoFencing",
"required": [
"locatorType",
"locators"
],
"type": "object",
"properties": {
"locatorType": {
"title": "Locatortype",
"type": "string"
},
"locators": {
"title": "Locators",
"type": "array",
"items": {
"type": "string"
}
}
},
"description": "NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n\nDo not edit the class manually.\n\nDistributionConfigurationGeoFencing - a model defined in OpenAPI\n\n locator_type: The locator_type of this DistributionConfigurationGeoFencing.\n locators: The locators of this DistributionConfigurationGeoFencing."
},
"DistributionConfigurationSupplementaryDistributionNetworksInner": {
"title": "DistributionConfigurationSupplementaryDistributionNetworksInner",
"required": [
"distributionNetworkType",
"distributionMode"
],
"type": "object",
"properties": {
"distributionNetworkType": {
"$ref": "#/components/schemas/DistributionNetworkType"
},
"distributionMode": {
"$ref": "#/components/schemas/DistributionMode"
}
},
"description": "NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n\nDo not edit the class manually.\n\nDistributionConfigurationSupplementaryDistributionNetworksInner - a model defined in OpenAPI\n\n distribution_network_type: The distribution_network_type of this DistributionConfigurationSupplementaryDistributionNetworksInner.\n distribution_mode: The distribution_mode of this DistributionConfigurationSupplementaryDistributionNetworksInner."
},
"DistributionConfigurationUrlSignature": {
"title": "DistributionConfigurationUrlSignature",
"required": [
"urlPattern",
"tokenName",
"passphraseName",
"passphrase",
"tokenExpiryName",
"useIPAddress"
],
"type": "object",
"properties": {
"urlPattern": {
"title": "Urlpattern",
"type": "string"
},
"tokenName": {
"title": "Tokenname",
"type": "string"
},
"passphraseName": {
"title": "Passphrasename",
"type": "string"
},
"passphrase": {
"title": "Passphrase",
"type": "string"
},
"tokenExpiryName": {
"title": "Tokenexpiryname",
"type": "string"
},
"useIPAddress": {
"title": "Useipaddress",
"type": "boolean"
},
"ipAddressName": {
"title": "Ipaddressname",
"type": "string"
}
},
"description": "NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n\nDo not edit the class manually.\n\nDistributionConfigurationUrlSignature - a model defined in OpenAPI\n\n url_pattern: The url_pattern of this DistributionConfigurationUrlSignature.\n token_name: The token_name of this DistributionConfigurationUrlSignature.\n passphrase_name: The passphrase_name of this DistributionConfigurationUrlSignature.\n passphrase: The passphrase of this DistributionConfigurationUrlSignature.\n token_expiry_name: The token_expiry_name of this DistributionConfigurationUrlSignature.\n use_ip_address: The use_ip_address of this DistributionConfigurationUrlSignature.\n ip_address_name: The ip_address_name of this DistributionConfigurationUrlSignature [Optional]."
},
"DistributionMode": {
"title": "DistributionMode",
"type": "object",
"properties": {
},
"description": "NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n\nDo not edit the class manually.\n\nDistributionMode - a model defined in OpenAPI"
},
"DistributionNetworkType": {
"title": "DistributionNetworkType",
"type": "object",
"properties": {
},
"description": "NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n\nDo not edit the class manually.\n\nDistributionNetworkType - a model defined in OpenAPI"
},
"HTTPValidationError": {
"title": "HTTPValidationError",
"type": "object",
"properties": {
"detail": {
"title": "Detail",
"type": "array",
"items": {
"$ref": "#/components/schemas/ValidationError"
}
}
}
},
"IngestConfiguration": {
"title": "IngestConfiguration",
"type": "object",
"properties": {
"pull": {
"title": "Pull",
"type": "boolean"
},
"protocol": {
"title": "Protocol",
"type": "string"
},
"baseURL": {
"title": "Baseurl",
"maxLength": 65536,
"minLength": 1,
"type": "string",
"format": "uri"
}
},
"description": "NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n\nDo not edit the class manually.\n\nIngestConfiguration - a model defined in OpenAPI\n\n pull: The pull of this IngestConfiguration [Optional].\n protocol: The protocol of this IngestConfiguration [Optional].\n base_url: The base_url of this IngestConfiguration [Optional]."
},
"InvalidParam": {
"title": "InvalidParam",
"required": [
"param"
],
"type": "object",
"properties": {
"param": {
"title": "Param",
"type": "string"
},
"reason": {
"title": "Reason",
"type": "string"
}
},
"description": "NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n\nDo not edit the class manually.\n\nInvalidParam - a model defined in OpenAPI\n\n param: The param of this InvalidParam.\n reason: The reason of this InvalidParam [Optional]."
},
"NFType": {
"title": "NFType",
"type": "object",
"properties": {
},
"description": "NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n\nDo not edit the class manually.\n\nNFType - a model defined in OpenAPI"
},
"PathRewriteRule": {
"title": "PathRewriteRule",
"required": [
"requestPathPattern",
"mappedPath"
],
"type": "object",
"properties": {
"requestPathPattern": {
"title": "Requestpathpattern",
"type": "string"
},
"mappedPath": {
"title": "Mappedpath",
"type": "string"
}
},
"description": "NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n\nDo not edit the class manually.\n\nPathRewriteRule - a model defined in OpenAPI\n\n request_path_pattern: The request_path_pattern of this PathRewriteRule.\n mapped_path: The mapped_path of this PathRewriteRule."
},
"PlmnId": {
"title": "PlmnId",
"required": [
"mcc",
"mnc"
],
"type": "object",
"properties": {
"mcc": {
"title": "Mcc",
"type": "string"
},
"mnc": {
"title": "Mnc",
"type": "string"
}
},
"description": "NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n\nDo not edit the class manually.\n\nPlmnId - a model defined in OpenAPI\n\n mcc: The mcc of this PlmnId.\n mnc: The mnc of this PlmnId."
},
"PlmnId1": {
"title": "PlmnId1",
"required": [
"mcc",
"mnc"
],
"type": "object",
"properties": {
"mcc": {
"title": "Mcc",
"type": "string"
},
"mnc": {
"title": "Mnc",
"type": "string"
}
},
"description": "NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n\nDo not edit the class manually.\n\nPlmnId1 - a model defined in OpenAPI\n\n mcc: The mcc of this PlmnId1.\n mnc: The mnc of this PlmnId1."
},
"PlmnIdNid": {
"title": "PlmnIdNid",
"required": [
"mcc",
"mnc"
],
"type": "object",
"properties": {
"mcc": {
"title": "Mcc",
"type": "string"
},
"mnc": {
"title": "Mnc",
"type": "string"
},
"nid": {
"title": "Nid",
"type": "string"
}
},
"description": "NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n\nDo not edit the class manually.\n\nPlmnIdNid - a model defined in OpenAPI\n\n mcc: The mcc of this PlmnIdNid.\n mnc: The mnc of this PlmnIdNid.\n nid: The nid of this PlmnIdNid [Optional]."
},
"PlmnIdNid1": {
"title": "PlmnIdNid1",
"required": [
"mcc",
"mnc"
],
"type": "object",
"properties": {
"mcc": {
"title": "Mcc",
"type": "string"
},
"mnc": {
"title": "Mnc",
"type": "string"
},
"nid": {
"title": "Nid",
"type": "string"
}
},
"description": "NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n\nDo not edit the class manually.\n\nPlmnIdNid1 - a model defined in OpenAPI\n\n mcc: The mcc of this PlmnIdNid1.\n mnc: The mnc of this PlmnIdNid1.\n nid: The nid of this PlmnIdNid1 [Optional]."
},
"ProblemDetails": {
"title": "ProblemDetails",
"type": "object",
"properties": {
"type": {
"title": "Type",
"type": "string"
},
"title": {
"title": "Title",
"type": "string"
},
"status": {
"title": "Status",
"type": "integer"
},
"detail": {
"title": "Detail",
"type": "string"
},
"instance": {
"title": "Instance",
"type": "string"
},
"cause": {
"title": "Cause",
"type": "string"
},
"invalidParams": {
"title": "Invalidparams",
"type": "array",
"items": {
"$ref": "#/components/schemas/InvalidParam"
}
},
"supportedFeatures": {
"title": "Supportedfeatures",
"type": "string"
},
"accessTokenError": {
"$ref": "#/components/schemas/AccessTokenErr"
},
"accessTokenRequest": {
"$ref": "#/components/schemas/AccessTokenReq"
},
"nrfId": {
"title": "Nrfid",
"type": "string"
}
},
"description": "NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n\nDo not edit the class manually.\n\nProblemDetails - a model defined in OpenAPI\n\n type: The type of this ProblemDetails [Optional].\n title: The title of this ProblemDetails [Optional].\n status: The status of this ProblemDetails [Optional].\n detail: The detail of this ProblemDetails [Optional].\n instance: The instance of this ProblemDetails [Optional].\n cause: The cause of this ProblemDetails [Optional].\n invalid_params: The invalid_params of this ProblemDetails [Optional].\n supported_features: The supported_features of this ProblemDetails [Optional].\n access_token_error: The access_token_error of this ProblemDetails [Optional].\n access_token_request: The access_token_request of this ProblemDetails [Optional].\n nrf_id: The nrf_id of this ProblemDetails [Optional]."
},
"ProblemDetails1": {
"title": "ProblemDetails1",
"type": "object",
"properties": {
"type": {
"title": "Type",
"type": "string"
},
"title": {
"title": "Title",
"type": "string"
},
"status": {
"title": "Status",
"type": "integer"
},
"detail": {
"title": "Detail",
"type": "string"
},
"instance": {
"title": "Instance",
"type": "string"
},
"cause": {
"title": "Cause",
"type": "string"
},
"invalidParams": {
"title": "Invalidparams",
"type": "array",
"items": {
"$ref": "#/components/schemas/InvalidParam"
}
},
"supportedFeatures": {
"title": "Supportedfeatures",
"type": "string"
},
"accessTokenError": {
"$ref": "#/components/schemas/AccessTokenErr"
},
"accessTokenRequest": {
"$ref": "#/components/schemas/AccessTokenReq1"
},
"nrfId": {
"title": "Nrfid",
"type": "string"
}
},
"description": "NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n\nDo not edit the class manually.\n\nProblemDetails1 - a model defined in OpenAPI\n\n type: The type of this ProblemDetails1 [Optional].\n title: The title of this ProblemDetails1 [Optional].\n status: The status of this ProblemDetails1 [Optional].\n detail: The detail of this ProblemDetails1 [Optional].\n instance: The instance of this ProblemDetails1 [Optional].\n cause: The cause of this ProblemDetails1 [Optional].\n invalid_params: The invalid_params of this ProblemDetails1 [Optional].\n supported_features: The supported_features of this ProblemDetails1 [Optional].\n access_token_error: The access_token_error of this ProblemDetails1 [Optional].\n access_token_request: The access_token_request of this ProblemDetails1 [Optional].\n nrf_id: The nrf_id of this ProblemDetails1 [Optional]."
},
"Snssai": {
"title": "Snssai",
"required": [
"sst"
],
"type": "object",
"properties": {
"sst": {
"title": "Sst",
"type": "integer"
},
"sd": {
"title": "Sd",
"type": "string"
}
},
"description": "NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n\nDo not edit the class manually.\n\nSnssai - a model defined in OpenAPI\n\n sst: The sst of this Snssai.\n sd: The sd of this Snssai [Optional]."
},
"ValidationError": {
"title": "ValidationError",
"required": [
"loc",
"msg",
"type"
],
"type": "object",
"properties": {
"loc": {
"title": "Location",
"type": "array",
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
}
},
"msg": {
"title": "Message",
"type": "string"
},
"type": {
"title": "Error Type",
"type": "string"
}
}
}
}
}
} |
Description
It is often useful for an HTTP based API to publish the API for which it responds at a known endpoint. The FastAPI Python module does this by providing a
/openapi.json
path which returns a JSON OpenAPI object that describes the full API provided by the server. It would be useful to have a similar API description endpoint on the Application Function. This would compliment theOPTIONS
method described in #38 by providing a more detailed description of the API.Design(s)
Since the C language has no built in introspection the Application Function cannot simply examine the data model in order to build the OpenAPI description. This means that we need to either:
The first option would allow us to generate a combined API at run time from the relevant model objects and implemented API paths and methods. This could be served as a single API description JSON at the root, i.e.
/openapi.json
.The second option would generate a separate fixed API document for each input API (i.e. at present this would be a separate description for each of M1_ProvisioningSessions, M1_ServerCertificateProvisioning, M1_ContentHostingProvisioning, M1_ContentProtocolsDiscovery and M5_ServiceAccessInformation). These would only make sense to provide at a
.../openapi.json
endpoint for each API part, e.g./3gpp-m1/v2/provisioning-session/openapi.json
for the M1_ProvisioningSessions API. These would also reflect the input OpenAPI documents and not the implemented paths and methods.The second option should be easier to implement than the first once the mustache template is in place.
The text was updated successfully, but these errors were encountered: