From 6413336134f6605dfe4cb063c652f47fcd98fc5f Mon Sep 17 00:00:00 2001 From: sodagari Date: Sat, 2 Mar 2024 00:05:22 +0000 Subject: [PATCH 01/14] Replace TS26510_Maf_Provisioning_ContentPublishing.yaml --- ...10_Maf_Provisioning_ContentPublishing.yaml | 347 ++++++++++++++++++ 1 file changed, 347 insertions(+) diff --git a/TS26510_Maf_Provisioning_ContentPublishing.yaml b/TS26510_Maf_Provisioning_ContentPublishing.yaml index 4bd001b..bc1e168 100755 --- a/TS26510_Maf_Provisioning_ContentPublishing.yaml +++ b/TS26510_Maf_Provisioning_ContentPublishing.yaml @@ -27,6 +27,251 @@ security: - OAuth2ClientCredentials: [] paths: + /provisioning-sessions/{provisioningSessionId}/content-publishing-configuration: + parameters: + - name: provisioningSessionId + in: path + required: true + schema: + $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId' + description: 'The resource identifier of an existing Provisioning Session.' + post: + operationId: createContentPyblishingConfiguration + summary: 'Create and upload the Content Publishing Configuration for the specified Provisioning Session' + requestBody: + description: 'A JSON representation of a Content Publishing Configuration' + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ContentPublishingConfiguration' + responses: + '201': # Created + description: 'Content Publishing Configuration Created' + headers: + Location: + description: 'URL of the newly created Content Publishing Configuration (same as request URL).' + required: true + schema: + $ref: 'TS26510_CommonData.yaml#/components/schemas/AbsoluteUrl' + content: + application/json: + schema: + $ref: '#/components/schemas/ContentPublishingConfiguration' + '400': # Bad Request: The syntax of the HTTP request is malformed in a way not covered by one of the following more specific client errors + $ref: 'TS29571_CommonData.yaml#/components/responses/400' + '401': # Unauthorized + $ref: 'TS29571_CommonData.yaml#/components/responses/401' + '403': # Forbidden + $ref: 'TS29571_CommonData.yaml#/components/responses/403' + '411': # Length Required + $ref: 'TS29571_CommonData.yaml#/components/responses/411' + '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' + get: + operationId: retrieveContentPublishingConfiguration + summary: 'Retrieve the Content Publishing Configuration of the specified Provisioning Session' + responses: + '200': # OK + description: 'Success' + content: + application/json: + schema: + $ref: '#/components/schemas/ContentPublishingConfiguration' + '400': # Bad Request: The syntax of the HTTP request is malformed in a way not covered by one of the following more specific client errors + $ref: 'TS29571_CommonData.yaml#/components/responses/400' + '401': # Unauthorized + $ref: 'TS29571_CommonData.yaml#/components/responses/401' + '404': # Not Found + $ref: 'TS29571_CommonData.yaml#/components/responses/404' + '410': # Gone: Resource no longer exists + $ref: 'TS29571_CommonData.yaml#/components/responses/410' + '413': # Payload Too Large: No request body allowed for this operation + $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' + put: + operationId: updateContentPublishingConfiguration + summary: 'Update (by replacement) the Content Publishing Configuration for the specified Provisioning Session' + requestBody: + description: 'A JSON representation of a Content Publishing Configuration' + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ContentPublishingConfiguration' + responses: + '200': # OK + description: 'Updated Content Publishing Configuration' + content: + application/json: + schema: + $ref: '#/components/schemas/ContentPublishingConfiguration' + '204': # No Content + description: 'Content Publishing Configuration Unchanged' + '400': # Bad Request: The syntax of the HTTP request is malformed in a way not covered by one of the following more specific client errors + $ref: 'TS29571_CommonData.yaml#/components/responses/400' + '401': # Unauthorized + $ref: 'TS29571_CommonData.yaml#/components/responses/401' + '403': # Forbidden + $ref: 'TS29571_CommonData.yaml#/components/responses/403' + '404': # Not Found + $ref: 'TS29571_CommonData.yaml#/components/responses/404' + '410': # Gone: Resource no longer exists + $ref: 'TS29571_CommonData.yaml#/components/responses/410' + '411': # Length Required + $ref: 'TS29571_CommonData.yaml#/components/responses/411' + '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' + patch: + operationId: patchContentPublishingConfiguration + summary: 'Patch the Content Publishing Configuration for the specified Provisioning Session' + requestBody: + description: 'A JSON representation of a Content Publishing Configuration' + required: true + content: + application/merge-patch+json: + schema: + $ref: '#/components/schemas/ContentPublishingConfiguration' + application/json-patch+json: + schema: + $ref: '#/components/schemas/ContentPublishingConfiguration' + responses: + '200': # OK + description: 'Patched Content Publishing Configuration' + content: + application/json: + schema: + $ref: '#/components/schemas/ContentPublishingConfiguration' + '204': # No Content + description: 'Content Publishing Configuration Unchanged' + '400': # Bad Request: The syntax of the HTTP request is malformed in a way not covered by one of the following more specific client errors + $ref: 'TS29571_CommonData.yaml#/components/responses/400' + '401': # Unauthorized + $ref: 'TS29571_CommonData.yaml#/components/responses/401' + '403': # Forbidden + $ref: 'TS29571_CommonData.yaml#/components/responses/403' + '404': # Not Found + $ref: 'TS29571_CommonData.yaml#/components/responses/404' + '410': # Gone: Resource no longer exists + $ref: 'TS29571_CommonData.yaml#/components/responses/410' + '411': # Length Required + $ref: 'TS29571_CommonData.yaml#/components/responses/411' + '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: destroyContentPublishingConfiguration + summary: 'Destroy the current Content Publishing Configuration of the specified Provisioning Session' + responses: + '204': # No Content + description: 'Destroyed Content Publishing Configuration' + '400': # Bad Request: The syntax of the HTTP request is malformed in a way not covered by one of the following more specific client errors + $ref: 'TS29571_CommonData.yaml#/components/responses/400' + '401': # Unauthorized + $ref: 'TS29571_CommonData.yaml#/components/responses/401' + '404': # Not Found + $ref: 'TS29571_CommonData.yaml#/components/responses/404' + '410': # Gone: Resource no longer exists + $ref: 'TS29571_CommonData.yaml#/components/responses/410' + '413': # Payload Too Large: No request body allowed for this operation + $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' + + /provisioning-sessions/{provisioningSessionId}/content-Publishing-configuration/purge: + parameters: + - name: provisioningSessionId + in: path + required: true + schema: + $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId' + description: A unique identifier of the Provisioning + post: + operationId: purgeContentPublishingCache + summary: 'Purge the content of the cache for the Content Publishing Configuration of the specified Provisioning Session' + 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: 'The regular expression' + type: string + responses: + '200': # OK + description: 'Content Purged' + content: + application/json: + schema: + description: 'The aggregate number of cache entries purged in all 5GMSd AS instances distributing content for the requested Provisioning Session.' + type: integer + minimum: 1 + '204': # No Content + description: 'No Content Purged' + '400': # Bad Request (e.g. syntactically invalid regular expression in request body) + $ref: 'TS29571_CommonData.yaml#/components/responses/400' + '401': # Unauthorized + $ref: 'TS29571_CommonData.yaml#/components/responses/401' + '404': # Not Found + $ref: 'TS29571_CommonData.yaml#/components/responses/404' + '411': # Length Required + $ref: 'TS29571_CommonData.yaml#/components/responses/411' + '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' components: securitySchemes: @@ -38,3 +283,105 @@ components: scopes: {} schemas: + + EdgestConfiguration: + type: object + description: 'Parameters for egesting media content from the Media AS at reference point M2.' + required: + - mode + - protocol + properties: + mode: + $ref: 'TS26510_CommonData.yaml#/components/schemas/ContentTransferMode' + protocol: + $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri' + baseURL: + $ref: 'TS26510_CommonData.yaml#/components/schemas/AbsoluteUrl' + entryPoint: + $ref: '#/components/schemas/M1MediaEntryPoint' + + M1MediaEntryPoint: + description: "A typed entry point for downlink or uplink media streaming." + type: object + required: + - relativePath + - contentType + properties: + relativePath: + $ref: 'TS26510_CommonData.yaml#/components/schemas/RelativeUrl' + contentType: + type: string + profiles: + type: array + items: + $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri' + minItems: 1 + + CachingConfiguration: + type: object + description: 'A Media AS content caching configuration.' + required: + - urlPatternFilter + properties: + urlPatternFilter: + type: string + cachingDirectives: + type: object + required: + - noCache + properties: + statusCodeFilters: + type: array + items: + type: integer + minimum: 100 + maximum: 599 + minItems: 1 + noCache: + type: boolean + maxAge: + $ref: 'TS29571_CommonData.yaml#/components/schemas/Uint32' + + ContributionConfigurations: + type: array + items: + type: object + description: 'A configuration for content contribution.' + required: + - certificateId + - entryPoint + properties: + edgeResourcesConfigurationId: + $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId' + contentPreparationTemplateId: + $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId' + certificateId: + type: string + description: 'A reference to a Server Certificate resource.' + canonicalDomainName: + type: string + description: 'Default Fully-Qualified Domain Name assigned by the Media AF.' + domainNameAlias: + type: string + description: 'domain name is used by the Media AS to set appropriate CORS HTTP response headers at reference point M4.' + baseURL: + $ref: 'TS26510_CommonData.yaml#/components/schemas/AbsoluteUrl' + entryPoint: + $ref: '#/components/schemas/M1MediaEntryPoint' + + # Schema for the resource itself + ContentPublishingConfiguration: + type: object + description: "A representation of a Content Publishing Configuration resource." + required: + - name + - contributionConfiguration + - egestConfiguration + properties: + name: + type: string + contributionConfiguration: + $ref: '#/components/schemas/ContributionConfiguration' + egestConfiguration: + $ref: '#/components/schemas/EgestConfiguration' + -- GitLab From f35d12ce2f6ead7e8133da774179a6030508023d Mon Sep 17 00:00:00 2001 From: Richard Bradbury Date: Sun, 3 Mar 2024 16:52:53 +0000 Subject: [PATCH 02/14] Moved M1MediaEntryPoint from Content Hosting API to common data types. --- TS26510_CommonData.yaml | 17 +++++++++++++ TS26510_Maf_Provisioning_ContentHosting.yaml | 25 ++++---------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/TS26510_CommonData.yaml b/TS26510_CommonData.yaml index 86fa615..b3890db 100755 --- a/TS26510_CommonData.yaml +++ b/TS26510_CommonData.yaml @@ -252,6 +252,23 @@ components: desiredPacketLossRate: $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger' + M1MediaEntryPoint: + description: "A typed entry point for downlink or uplink media streaming." + type: object + required: + - relativePath + - contentType + properties: + relativePath: + $ref: 'TS26510_CommonData.yaml#/components/schemas/RelativeUrl' + contentType: + type: string + profiles: + type: array + items: + $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri' + minItems: 1 + ##################################### # Clause 6.4.4: Enumerated data types ##################################### diff --git a/TS26510_Maf_Provisioning_ContentHosting.yaml b/TS26510_Maf_Provisioning_ContentHosting.yaml index a6e3776..1a3a8c7 100644 --- a/TS26510_Maf_Provisioning_ContentHosting.yaml +++ b/TS26510_Maf_Provisioning_ContentHosting.yaml @@ -294,23 +294,6 @@ components: baseURL: $ref: 'TS26510_CommonData.yaml#/components/schemas/AbsoluteUrl' - M1MediaEntryPoint: - description: "A typed entry point for downlink or uplink media streaming." - type: object - required: - - relativePath - - contentType - properties: - relativePath: - $ref: 'TS26510_CommonData.yaml#/components/schemas/RelativeUrl' - contentType: - type: string - profiles: - type: array - items: - $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri' - minItems: 1 - PathRewriteRule: type: object description: 'A rule to manipulate URL paths.' @@ -323,9 +306,9 @@ components: mappedPath: type: string - CachingConfiguration: + DistributionCachingConfiguration: type: object - description: 'A content caching configuration.' + description: 'A caching configuration for content distribution at reference point M4d.' required: - urlPatternFilter properties: @@ -384,7 +367,7 @@ components: allOf: - $ref: 'TS26510_CommonData.yaml#/components/schemas/AbsoluteUrl' entryPoint: - $ref: '#/components/schemas/M1MediaEntryPoint' + $ref: 'TS26510_CommonData.yaml#/components/schemas/M1MediaEntryPoint' pathRewriteRules: type: array items: @@ -392,7 +375,7 @@ components: cachingConfigurations: type: array items: - $ref: '#/components/schemas/CachingConfiguration' + $ref: '#/components/schemas/DistributionCachingConfiguration' geoFencing: type: object required: -- GitLab From 4ca21549d9bb2b5782404d46beda33c693b5a602 Mon Sep 17 00:00:00 2001 From: Richard Bradbury Date: Mon, 4 Mar 2024 17:37:33 +0000 Subject: [PATCH 03/14] DistributionCachingConfiguration.cachingDirectives should have been mandatory to match paper specification. --- TS26510_Maf_Provisioning_ContentHosting.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/TS26510_Maf_Provisioning_ContentHosting.yaml b/TS26510_Maf_Provisioning_ContentHosting.yaml index 1a3a8c7..a290c42 100644 --- a/TS26510_Maf_Provisioning_ContentHosting.yaml +++ b/TS26510_Maf_Provisioning_ContentHosting.yaml @@ -311,6 +311,7 @@ components: description: 'A caching configuration for content distribution at reference point M4d.' required: - urlPatternFilter + - cachingDirectives properties: urlPatternFilter: type: string -- GitLab From 13ee6e68c830e4c73a63070afa25d844cf9d6ef7 Mon Sep 17 00:00:00 2001 From: Richard Bradbury Date: Mon, 4 Mar 2024 17:51:51 +0000 Subject: [PATCH 04/14] Fixed cardinality of DistributionConfiguration.cachingConfigurations. --- TS26510_Maf_Provisioning_ContentHosting.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/TS26510_Maf_Provisioning_ContentHosting.yaml b/TS26510_Maf_Provisioning_ContentHosting.yaml index a290c42..e9b0816 100644 --- a/TS26510_Maf_Provisioning_ContentHosting.yaml +++ b/TS26510_Maf_Provisioning_ContentHosting.yaml @@ -377,6 +377,7 @@ components: type: array items: $ref: '#/components/schemas/DistributionCachingConfiguration' + minItems: 1 geoFencing: type: object required: -- GitLab From ccf2bc465a78dbca895cf95df55747126540ec88 Mon Sep 17 00:00:00 2001 From: Richard Bradbury Date: Mon, 4 Mar 2024 18:03:21 +0000 Subject: [PATCH 05/14] Fixed indentation errors and syntax errors. Aligned data types with paper specification. Moved M1MediaEntryPoint to TS26510_CommonDataTypes.yaml. --- ...10_Maf_Provisioning_ContentPublishing.yaml | 106 ++++++++---------- 1 file changed, 46 insertions(+), 60 deletions(-) diff --git a/TS26510_Maf_Provisioning_ContentPublishing.yaml b/TS26510_Maf_Provisioning_ContentPublishing.yaml index bc1e168..38e724b 100755 --- a/TS26510_Maf_Provisioning_ContentPublishing.yaml +++ b/TS26510_Maf_Provisioning_ContentPublishing.yaml @@ -27,7 +27,7 @@ security: - OAuth2ClientCredentials: [] paths: - /provisioning-sessions/{provisioningSessionId}/content-publishing-configuration: + /provisioning-sessions/{provisioningSessionId}/content-publishing-configuration: parameters: - name: provisioningSessionId in: path @@ -283,14 +283,13 @@ components: scopes: {} schemas: - - EdgestConfiguration: + EgestConfiguration: type: object description: 'Parameters for egesting media content from the Media AS at reference point M2.' - required: - - mode - - protocol - properties: + required: + - mode + - protocol + properties: mode: $ref: 'TS26510_CommonData.yaml#/components/schemas/ContentTransferMode' protocol: @@ -298,30 +297,19 @@ components: baseURL: $ref: 'TS26510_CommonData.yaml#/components/schemas/AbsoluteUrl' entryPoint: - $ref: '#/components/schemas/M1MediaEntryPoint' - - M1MediaEntryPoint: - description: "A typed entry point for downlink or uplink media streaming." - type: object - required: - - relativePath - - contentType - properties: - relativePath: - $ref: 'TS26510_CommonData.yaml#/components/schemas/RelativeUrl' - contentType: - type: string - profiles: + $ref: 'TS26510_CommonData.yaml#/components/schemas/M1MediaEntryPoint' + cachingConfigurations: type: array items: - $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri' + $ref: 'TS26510_CommonData.yaml#/components/schemas/EgestCachingConfiguration' minItems: 1 - CachingConfiguration: + EgestCachingConfiguration: type: object - description: 'A Media AS content caching configuration.' + description: 'A caching configuration for content egest at reference point M2.' required: - urlPatternFilter + - cachingDirectives properties: urlPatternFilter: type: string @@ -330,44 +318,43 @@ components: required: - noCache properties: - statusCodeFilters: - type: array - items: - type: integer - minimum: 100 - maximum: 599 - minItems: 1 noCache: type: boolean maxAge: $ref: 'TS29571_CommonData.yaml#/components/schemas/Uint32' - ContributionConfigurations: - type: array - items: - type: object - description: 'A configuration for content contribution.' - required: - - certificateId - - entryPoint - properties: - edgeResourcesConfigurationId: - $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId' - contentPreparationTemplateId: - $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId' - certificateId: - type: string - description: 'A reference to a Server Certificate resource.' - canonicalDomainName: - type: string - description: 'Default Fully-Qualified Domain Name assigned by the Media AF.' - domainNameAlias: - type: string - description: 'domain name is used by the Media AS to set appropriate CORS HTTP response headers at reference point M4.' - baseURL: - $ref: 'TS26510_CommonData.yaml#/components/schemas/AbsoluteUrl' - entryPoint: - $ref: '#/components/schemas/M1MediaEntryPoint' + ContributionConfiguration: + type: array + items: + type: object + description: 'A configuration for content contribution.' + required: + - certificateId + - canonicalDomainName + - baseURL + - entryPoint + properties: + edgeResourcesConfigurationId: + $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId' + contentPreparationTemplateId: + $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId' + certificateId: + allOf: + - $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId' + - description: 'A reference to a Server Certificate resource to be presented by the Media AS at reference point M4.' + canonicalDomainName: + readOnly: true + type: string + description: 'Default Fully-Qualified Domain Name assigned by the Media AF for use at reference point M4.' + domainNameAlias: + type: string + description: 'Additional domain name nominated by the Media Application Provider and used by the Media AS to set appropriate CORS HTTP response headers at reference point M4.' + baseURL: + readOnly: true + allOf: + - $ref: 'TS26510_CommonData.yaml#/components/schemas/AbsoluteUrl' + entryPoint: + $ref: 'TS26510_CommonData.yaml#/components/schemas/M1MediaEntryPoint' # Schema for the resource itself ContentPublishingConfiguration: @@ -375,13 +362,12 @@ components: description: "A representation of a Content Publishing Configuration resource." required: - name - - contributionConfiguration + - contributionConfigurations - egestConfiguration properties: name: type: string - contributionConfiguration: + contributionConfigurations: $ref: '#/components/schemas/ContributionConfiguration' egestConfiguration: $ref: '#/components/schemas/EgestConfiguration' - -- GitLab From db00f10a2240f88bb29739eb890d8b827b3337ef Mon Sep 17 00:00:00 2001 From: Richard Bradbury Date: Mon, 4 Mar 2024 18:05:35 +0000 Subject: [PATCH 06/14] Fixed schema cross-reference to EgestCachingConfiguration. --- TS26510_Maf_Provisioning_ContentPublishing.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TS26510_Maf_Provisioning_ContentPublishing.yaml b/TS26510_Maf_Provisioning_ContentPublishing.yaml index 38e724b..8c3aa27 100755 --- a/TS26510_Maf_Provisioning_ContentPublishing.yaml +++ b/TS26510_Maf_Provisioning_ContentPublishing.yaml @@ -301,7 +301,7 @@ components: cachingConfigurations: type: array items: - $ref: 'TS26510_CommonData.yaml#/components/schemas/EgestCachingConfiguration' + $ref: '#/components/schemas/EgestCachingConfiguration' minItems: 1 EgestCachingConfiguration: -- GitLab From 33a8fcae6657d960945cedfde0bb20e15303ef87 Mon Sep 17 00:00:00 2001 From: Richard Bradbury Date: Mon, 4 Mar 2024 18:08:28 +0000 Subject: [PATCH 07/14] Moved array from ContributionConfiguration schema type to its usage in ContentPublishingConfiguration. --- ...10_Maf_Provisioning_ContentPublishing.yaml | 64 +++++++++---------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/TS26510_Maf_Provisioning_ContentPublishing.yaml b/TS26510_Maf_Provisioning_ContentPublishing.yaml index 8c3aa27..4304527 100755 --- a/TS26510_Maf_Provisioning_ContentPublishing.yaml +++ b/TS26510_Maf_Provisioning_ContentPublishing.yaml @@ -324,37 +324,35 @@ components: $ref: 'TS29571_CommonData.yaml#/components/schemas/Uint32' ContributionConfiguration: - type: array - items: - type: object - description: 'A configuration for content contribution.' - required: - - certificateId - - canonicalDomainName - - baseURL - - entryPoint - properties: - edgeResourcesConfigurationId: - $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId' - contentPreparationTemplateId: - $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId' - certificateId: - allOf: - - $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId' - - description: 'A reference to a Server Certificate resource to be presented by the Media AS at reference point M4.' - canonicalDomainName: - readOnly: true - type: string - description: 'Default Fully-Qualified Domain Name assigned by the Media AF for use at reference point M4.' - domainNameAlias: - type: string - description: 'Additional domain name nominated by the Media Application Provider and used by the Media AS to set appropriate CORS HTTP response headers at reference point M4.' - baseURL: - readOnly: true - allOf: - - $ref: 'TS26510_CommonData.yaml#/components/schemas/AbsoluteUrl' - entryPoint: - $ref: 'TS26510_CommonData.yaml#/components/schemas/M1MediaEntryPoint' + type: object + description: 'A configuration for content contribution.' + required: + - certificateId + - canonicalDomainName + - baseURL + - entryPoint + properties: + edgeResourcesConfigurationId: + $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId' + contentPreparationTemplateId: + $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId' + certificateId: + allOf: + - $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId' + - description: 'A reference to a Server Certificate resource to be presented by the Media AS at reference point M4.' + canonicalDomainName: + readOnly: true + type: string + description: 'Default Fully-Qualified Domain Name assigned by the Media AF for use at reference point M4.' + domainNameAlias: + type: string + description: 'Additional domain name nominated by the Media Application Provider and used by the Media AS to set appropriate CORS HTTP response headers at reference point M4.' + baseURL: + readOnly: true + allOf: + - $ref: 'TS26510_CommonData.yaml#/components/schemas/AbsoluteUrl' + entryPoint: + $ref: 'TS26510_CommonData.yaml#/components/schemas/M1MediaEntryPoint' # Schema for the resource itself ContentPublishingConfiguration: @@ -368,6 +366,8 @@ components: name: type: string contributionConfigurations: - $ref: '#/components/schemas/ContributionConfiguration' + type: array + items: + $ref: '#/components/schemas/ContributionConfiguration' egestConfiguration: $ref: '#/components/schemas/EgestConfiguration' -- GitLab From 435e3a0ee38d9206156be463ae0f08274b52c1f7 Mon Sep 17 00:00:00 2001 From: Richard Bradbury Date: Mon, 4 Mar 2024 18:09:59 +0000 Subject: [PATCH 08/14] Fixed path lowercasing for cache purge operation. --- TS26510_Maf_Provisioning_ContentPublishing.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TS26510_Maf_Provisioning_ContentPublishing.yaml b/TS26510_Maf_Provisioning_ContentPublishing.yaml index 4304527..2917ca9 100755 --- a/TS26510_Maf_Provisioning_ContentPublishing.yaml +++ b/TS26510_Maf_Provisioning_ContentPublishing.yaml @@ -220,14 +220,14 @@ paths: default: $ref: 'TS29571_CommonData.yaml#/components/responses/default' - /provisioning-sessions/{provisioningSessionId}/content-Publishing-configuration/purge: + /provisioning-sessions/{provisioningSessionId}/content-publishing-configuration/purge: parameters: - name: provisioningSessionId in: path required: true schema: $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId' - description: A unique identifier of the Provisioning + description: A unique identifier of the Provisioning Session post: operationId: purgeContentPublishingCache summary: 'Purge the content of the cache for the Content Publishing Configuration of the specified Provisioning Session' -- GitLab From 6c07ba16ffcb494ec2edeb6e78cb56af1bb72bc6 Mon Sep 17 00:00:00 2001 From: Richard Bradbury Date: Tue, 5 Mar 2024 11:22:24 +0000 Subject: [PATCH 09/14] Minimum of one DistributionConfiguration. --- TS26510_Maf_Provisioning_ContentHosting.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/TS26510_Maf_Provisioning_ContentHosting.yaml b/TS26510_Maf_Provisioning_ContentHosting.yaml index e9b0816..ff58a44 100644 --- a/TS26510_Maf_Provisioning_ContentHosting.yaml +++ b/TS26510_Maf_Provisioning_ContentHosting.yaml @@ -436,6 +436,7 @@ components: type: array items: $ref: '#/components/schemas/DistributionConfiguration' + minItems: 1 DistributionNetworkType: description: "Type of distribution network." -- GitLab From 1448e58b57ad8e45effe235fcbbe580ecd31a3ae Mon Sep 17 00:00:00 2001 From: Richard Bradbury Date: Tue, 5 Mar 2024 11:23:07 +0000 Subject: [PATCH 10/14] Minimum of one ContributionConfiguration. --- TS26510_Maf_Provisioning_ContentPublishing.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/TS26510_Maf_Provisioning_ContentPublishing.yaml b/TS26510_Maf_Provisioning_ContentPublishing.yaml index 2917ca9..4cd22d7 100755 --- a/TS26510_Maf_Provisioning_ContentPublishing.yaml +++ b/TS26510_Maf_Provisioning_ContentPublishing.yaml @@ -369,5 +369,6 @@ components: type: array items: $ref: '#/components/schemas/ContributionConfiguration' + minItems: 1 egestConfiguration: $ref: '#/components/schemas/EgestConfiguration' -- GitLab From a63e8252efd1674a5a830540e86c2d6a54ea52cd Mon Sep 17 00:00:00 2001 From: Richard Bradbury Date: Tue, 5 Mar 2024 11:29:05 +0000 Subject: [PATCH 11/14] certificateId shouldn't be a required property of ContributionConfiguration. --- TS26510_Maf_Provisioning_ContentPublishing.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/TS26510_Maf_Provisioning_ContentPublishing.yaml b/TS26510_Maf_Provisioning_ContentPublishing.yaml index 4cd22d7..b2282d5 100755 --- a/TS26510_Maf_Provisioning_ContentPublishing.yaml +++ b/TS26510_Maf_Provisioning_ContentPublishing.yaml @@ -327,7 +327,6 @@ components: type: object description: 'A configuration for content contribution.' required: - - certificateId - canonicalDomainName - baseURL - entryPoint -- GitLab From 69fe1079b6dc82a1a228ffce0513f439e736b61a Mon Sep 17 00:00:00 2001 From: Richard Bradbury Date: Tue, 5 Mar 2024 15:44:04 +0000 Subject: [PATCH 12/14] Corrected typo in operation name. --- TS26510_Maf_Provisioning_ContentPublishing.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TS26510_Maf_Provisioning_ContentPublishing.yaml b/TS26510_Maf_Provisioning_ContentPublishing.yaml index b2282d5..3ed39be 100755 --- a/TS26510_Maf_Provisioning_ContentPublishing.yaml +++ b/TS26510_Maf_Provisioning_ContentPublishing.yaml @@ -36,7 +36,7 @@ paths: $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId' description: 'The resource identifier of an existing Provisioning Session.' post: - operationId: createContentPyblishingConfiguration + operationId: createContentPublishingConfiguration summary: 'Create and upload the Content Publishing Configuration for the specified Provisioning Session' requestBody: description: 'A JSON representation of a Content Publishing Configuration' -- GitLab From 884177fce517d1d6841a6dad69f771534034be1d Mon Sep 17 00:00:00 2001 From: Richard Bradbury Date: Wed, 6 Mar 2024 10:31:16 +0000 Subject: [PATCH 13/14] Made CachingConfiguration a shared data type. --- TS26510_CommonData.yaml | 25 +++++++++++++++++ TS26510_Maf_Provisioning_ContentHosting.yaml | 28 +------------------ ...10_Maf_Provisioning_ContentPublishing.yaml | 21 +------------- 3 files changed, 27 insertions(+), 47 deletions(-) diff --git a/TS26510_CommonData.yaml b/TS26510_CommonData.yaml index b3890db..0337f22 100755 --- a/TS26510_CommonData.yaml +++ b/TS26510_CommonData.yaml @@ -269,6 +269,31 @@ components: $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri' minItems: 1 + CachingConfiguration: + type: object + description: 'A configuration that affects the caching of media resources in the Media AS and the signalling of cache control metadata in HTTP responses generated by the Media AS.' + required: + - urlPatternFilter + - cachingDirectives + properties: + urlPatternFilter: + type: string + cachingDirectives: + type: object + properties: + statusCodeFilters: + type: array + items: + type: integer + minimum: 100 + maximum: 599 + minItems: 1 + noCache: + type: boolean + default: false + maxAge: + $ref: 'TS29571_CommonData.yaml#/components/schemas/Uint32' + ##################################### # Clause 6.4.4: Enumerated data types ##################################### diff --git a/TS26510_Maf_Provisioning_ContentHosting.yaml b/TS26510_Maf_Provisioning_ContentHosting.yaml index ff58a44..19eb169 100644 --- a/TS26510_Maf_Provisioning_ContentHosting.yaml +++ b/TS26510_Maf_Provisioning_ContentHosting.yaml @@ -306,32 +306,6 @@ components: mappedPath: type: string - DistributionCachingConfiguration: - type: object - description: 'A caching configuration for content distribution at reference point M4d.' - required: - - urlPatternFilter - - cachingDirectives - properties: - urlPatternFilter: - type: string - cachingDirectives: - type: object - required: - - noCache - properties: - statusCodeFilters: - type: array - items: - type: integer - minimum: 100 - maximum: 599 - minItems: 1 - noCache: - type: boolean - maxAge: - $ref: 'TS29571_CommonData.yaml#/components/schemas/Uint32' - DistributionConfiguration: type: object required: @@ -376,7 +350,7 @@ components: cachingConfigurations: type: array items: - $ref: '#/components/schemas/DistributionCachingConfiguration' + $ref: 'TS26510_CommonData.yaml#/components/schemas/CachingConfiguration' minItems: 1 geoFencing: type: object diff --git a/TS26510_Maf_Provisioning_ContentPublishing.yaml b/TS26510_Maf_Provisioning_ContentPublishing.yaml index 3ed39be..20d8a75 100755 --- a/TS26510_Maf_Provisioning_ContentPublishing.yaml +++ b/TS26510_Maf_Provisioning_ContentPublishing.yaml @@ -301,28 +301,9 @@ components: cachingConfigurations: type: array items: - $ref: '#/components/schemas/EgestCachingConfiguration' + $ref: 'TS26510_CommonData.yaml#/components/schemas/CachingConfiguration' minItems: 1 - EgestCachingConfiguration: - type: object - description: 'A caching configuration for content egest at reference point M2.' - required: - - urlPatternFilter - - cachingDirectives - properties: - urlPatternFilter: - type: string - cachingDirectives: - type: object - required: - - noCache - properties: - noCache: - type: boolean - maxAge: - $ref: 'TS29571_CommonData.yaml#/components/schemas/Uint32' - ContributionConfiguration: type: object description: 'A configuration for content contribution.' -- GitLab From 38af335f0daded05e93765000ad85b0fa14e6e94 Mon Sep 17 00:00:00 2001 From: Richard Bradbury Date: Wed, 6 Mar 2024 11:00:08 +0000 Subject: [PATCH 14/14] Adjusted comment. --- TS26510_Maf_Provisioning_ContentPublishing.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TS26510_Maf_Provisioning_ContentPublishing.yaml b/TS26510_Maf_Provisioning_ContentPublishing.yaml index 20d8a75..7801854 100755 --- a/TS26510_Maf_Provisioning_ContentPublishing.yaml +++ b/TS26510_Maf_Provisioning_ContentPublishing.yaml @@ -285,7 +285,7 @@ components: schemas: EgestConfiguration: type: object - description: 'Parameters for egesting media content from the Media AS at reference point M2.' + description: 'Parameters for egesting content from the Media AS at reference point M2.' required: - mode - protocol -- GitLab