From efe97754cce3bb9a2e6082c74cec19aea692be0d Mon Sep 17 00:00:00 2001 From: awstools Date: Thu, 3 Oct 2024 19:14:15 +0000 Subject: [PATCH] feat(client-mediapackagev2): Added support for ClipStartTime on the FilterConfiguration object on OriginEndpoint manifest settings objects. Added support for EXT-X-START tags on produced HLS child playlists. --- .../commands/CreateOriginEndpointCommand.ts | 22 +++++++ .../src/commands/GetOriginEndpointCommand.ts | 11 ++++ .../commands/UpdateOriginEndpointCommand.ts | 22 +++++++ .../src/models/models_0.ts | 50 +++++++++++++++ .../src/protocols/Aws_restJson1.ts | 30 +++++++++ .../aws-models/mediapackagev2.json | 63 +++++++++++++++++-- 6 files changed, 192 insertions(+), 6 deletions(-) diff --git a/clients/client-mediapackagev2/src/commands/CreateOriginEndpointCommand.ts b/clients/client-mediapackagev2/src/commands/CreateOriginEndpointCommand.ts index a65bc44ab4d7..fd2a26042d96 100644 --- a/clients/client-mediapackagev2/src/commands/CreateOriginEndpointCommand.ts +++ b/clients/client-mediapackagev2/src/commands/CreateOriginEndpointCommand.ts @@ -82,6 +82,10 @@ export interface CreateOriginEndpointCommandOutput extends CreateOriginEndpointR * ScteHls: { // ScteHls * AdMarkerHls: "DATERANGE", * }, + * StartTag: { // StartTag + * TimeOffset: Number("float"), // required + * Precise: true || false, + * }, * ManifestWindowSeconds: Number("int"), * ProgramDateTimeIntervalSeconds: Number("int"), * FilterConfiguration: { // FilterConfiguration @@ -89,6 +93,7 @@ export interface CreateOriginEndpointCommandOutput extends CreateOriginEndpointR * Start: new Date("TIMESTAMP"), * End: new Date("TIMESTAMP"), * TimeDelaySeconds: Number("int"), + * ClipStartTime: new Date("TIMESTAMP"), * }, * }, * ], @@ -99,6 +104,10 @@ export interface CreateOriginEndpointCommandOutput extends CreateOriginEndpointR * ScteHls: { * AdMarkerHls: "DATERANGE", * }, + * StartTag: { + * TimeOffset: Number("float"), // required + * Precise: true || false, + * }, * ManifestWindowSeconds: Number("int"), * ProgramDateTimeIntervalSeconds: Number("int"), * FilterConfiguration: { @@ -106,6 +115,7 @@ export interface CreateOriginEndpointCommandOutput extends CreateOriginEndpointR * Start: new Date("TIMESTAMP"), * End: new Date("TIMESTAMP"), * TimeDelaySeconds: Number("int"), + * ClipStartTime: new Date("TIMESTAMP"), * }, * }, * ], @@ -118,6 +128,7 @@ export interface CreateOriginEndpointCommandOutput extends CreateOriginEndpointR * Start: new Date("TIMESTAMP"), * End: new Date("TIMESTAMP"), * TimeDelaySeconds: Number("int"), + * ClipStartTime: new Date("TIMESTAMP"), * }, * MinUpdatePeriodSeconds: Number("int"), * MinBufferTimeSeconds: Number("int"), @@ -204,6 +215,11 @@ export interface CreateOriginEndpointCommandOutput extends CreateOriginEndpointR * // Start: new Date("TIMESTAMP"), * // End: new Date("TIMESTAMP"), * // TimeDelaySeconds: Number("int"), + * // ClipStartTime: new Date("TIMESTAMP"), + * // }, + * // StartTag: { // StartTag + * // TimeOffset: Number("float"), // required + * // Precise: true || false, * // }, * // }, * // ], @@ -222,6 +238,11 @@ export interface CreateOriginEndpointCommandOutput extends CreateOriginEndpointR * // Start: new Date("TIMESTAMP"), * // End: new Date("TIMESTAMP"), * // TimeDelaySeconds: Number("int"), + * // ClipStartTime: new Date("TIMESTAMP"), + * // }, + * // StartTag: { + * // TimeOffset: Number("float"), // required + * // Precise: true || false, * // }, * // }, * // ], @@ -235,6 +256,7 @@ export interface CreateOriginEndpointCommandOutput extends CreateOriginEndpointR * // Start: new Date("TIMESTAMP"), * // End: new Date("TIMESTAMP"), * // TimeDelaySeconds: Number("int"), + * // ClipStartTime: new Date("TIMESTAMP"), * // }, * // MinUpdatePeriodSeconds: Number("int"), * // MinBufferTimeSeconds: Number("int"), diff --git a/clients/client-mediapackagev2/src/commands/GetOriginEndpointCommand.ts b/clients/client-mediapackagev2/src/commands/GetOriginEndpointCommand.ts index be6bf492bf0a..b0c7893058d3 100644 --- a/clients/client-mediapackagev2/src/commands/GetOriginEndpointCommand.ts +++ b/clients/client-mediapackagev2/src/commands/GetOriginEndpointCommand.ts @@ -99,6 +99,11 @@ export interface GetOriginEndpointCommandOutput extends GetOriginEndpointRespons * // Start: new Date("TIMESTAMP"), * // End: new Date("TIMESTAMP"), * // TimeDelaySeconds: Number("int"), + * // ClipStartTime: new Date("TIMESTAMP"), + * // }, + * // StartTag: { // StartTag + * // TimeOffset: Number("float"), // required + * // Precise: true || false, * // }, * // }, * // ], @@ -117,6 +122,11 @@ export interface GetOriginEndpointCommandOutput extends GetOriginEndpointRespons * // Start: new Date("TIMESTAMP"), * // End: new Date("TIMESTAMP"), * // TimeDelaySeconds: Number("int"), + * // ClipStartTime: new Date("TIMESTAMP"), + * // }, + * // StartTag: { + * // TimeOffset: Number("float"), // required + * // Precise: true || false, * // }, * // }, * // ], @@ -130,6 +140,7 @@ export interface GetOriginEndpointCommandOutput extends GetOriginEndpointRespons * // Start: new Date("TIMESTAMP"), * // End: new Date("TIMESTAMP"), * // TimeDelaySeconds: Number("int"), + * // ClipStartTime: new Date("TIMESTAMP"), * // }, * // MinUpdatePeriodSeconds: Number("int"), * // MinBufferTimeSeconds: Number("int"), diff --git a/clients/client-mediapackagev2/src/commands/UpdateOriginEndpointCommand.ts b/clients/client-mediapackagev2/src/commands/UpdateOriginEndpointCommand.ts index d67348ef2644..48ebcff54160 100644 --- a/clients/client-mediapackagev2/src/commands/UpdateOriginEndpointCommand.ts +++ b/clients/client-mediapackagev2/src/commands/UpdateOriginEndpointCommand.ts @@ -82,6 +82,10 @@ export interface UpdateOriginEndpointCommandOutput extends UpdateOriginEndpointR * ScteHls: { // ScteHls * AdMarkerHls: "DATERANGE", * }, + * StartTag: { // StartTag + * TimeOffset: Number("float"), // required + * Precise: true || false, + * }, * ManifestWindowSeconds: Number("int"), * ProgramDateTimeIntervalSeconds: Number("int"), * FilterConfiguration: { // FilterConfiguration @@ -89,6 +93,7 @@ export interface UpdateOriginEndpointCommandOutput extends UpdateOriginEndpointR * Start: new Date("TIMESTAMP"), * End: new Date("TIMESTAMP"), * TimeDelaySeconds: Number("int"), + * ClipStartTime: new Date("TIMESTAMP"), * }, * }, * ], @@ -99,6 +104,10 @@ export interface UpdateOriginEndpointCommandOutput extends UpdateOriginEndpointR * ScteHls: { * AdMarkerHls: "DATERANGE", * }, + * StartTag: { + * TimeOffset: Number("float"), // required + * Precise: true || false, + * }, * ManifestWindowSeconds: Number("int"), * ProgramDateTimeIntervalSeconds: Number("int"), * FilterConfiguration: { @@ -106,6 +115,7 @@ export interface UpdateOriginEndpointCommandOutput extends UpdateOriginEndpointR * Start: new Date("TIMESTAMP"), * End: new Date("TIMESTAMP"), * TimeDelaySeconds: Number("int"), + * ClipStartTime: new Date("TIMESTAMP"), * }, * }, * ], @@ -118,6 +128,7 @@ export interface UpdateOriginEndpointCommandOutput extends UpdateOriginEndpointR * Start: new Date("TIMESTAMP"), * End: new Date("TIMESTAMP"), * TimeDelaySeconds: Number("int"), + * ClipStartTime: new Date("TIMESTAMP"), * }, * MinUpdatePeriodSeconds: Number("int"), * MinBufferTimeSeconds: Number("int"), @@ -202,6 +213,11 @@ export interface UpdateOriginEndpointCommandOutput extends UpdateOriginEndpointR * // Start: new Date("TIMESTAMP"), * // End: new Date("TIMESTAMP"), * // TimeDelaySeconds: Number("int"), + * // ClipStartTime: new Date("TIMESTAMP"), + * // }, + * // StartTag: { // StartTag + * // TimeOffset: Number("float"), // required + * // Precise: true || false, * // }, * // }, * // ], @@ -220,6 +236,11 @@ export interface UpdateOriginEndpointCommandOutput extends UpdateOriginEndpointR * // Start: new Date("TIMESTAMP"), * // End: new Date("TIMESTAMP"), * // TimeDelaySeconds: Number("int"), + * // ClipStartTime: new Date("TIMESTAMP"), + * // }, + * // StartTag: { + * // TimeOffset: Number("float"), // required + * // Precise: true || false, * // }, * // }, * // ], @@ -242,6 +263,7 @@ export interface UpdateOriginEndpointCommandOutput extends UpdateOriginEndpointR * // Start: new Date("TIMESTAMP"), * // End: new Date("TIMESTAMP"), * // TimeDelaySeconds: Number("int"), + * // ClipStartTime: new Date("TIMESTAMP"), * // }, * // MinUpdatePeriodSeconds: Number("int"), * // MinBufferTimeSeconds: Number("int"), diff --git a/clients/client-mediapackagev2/src/models/models_0.ts b/clients/client-mediapackagev2/src/models/models_0.ts index 3be202c3003f..a71409c76c7f 100644 --- a/clients/client-mediapackagev2/src/models/models_0.ts +++ b/clients/client-mediapackagev2/src/models/models_0.ts @@ -204,6 +204,7 @@ export class ThrottlingException extends __BaseException { */ export const ValidationExceptionType = { CENC_IV_INCOMPATIBLE: "CENC_IV_INCOMPATIBLE", + CLIP_START_TIME_WITH_START_OR_END: "CLIP_START_TIME_WITH_START_OR_END", CONTAINER_TYPE_IMMUTABLE: "CONTAINER_TYPE_IMMUTABLE", DIRECT_MODE_WITH_TIMING_SOURCE: "DIRECT_MODE_WITH_TIMING_SOURCE", DRM_SIGNALING_MISMATCH_SEGMENT_ENCRYPTION_STATUS: "DRM_SIGNALING_MISMATCH_SEGMENT_ENCRYPTION_STATUS", @@ -239,6 +240,7 @@ export const ValidationExceptionType = { ROLE_ARN_LENGTH_OUT_OF_RANGE: "ROLE_ARN_LENGTH_OUT_OF_RANGE", ROLE_ARN_NOT_ASSUMABLE: "ROLE_ARN_NOT_ASSUMABLE", SOURCE_DISRUPTIONS_ENABLED_INCORRECTLY: "SOURCE_DISRUPTIONS_ENABLED_INCORRECTLY", + START_TAG_TIME_OFFSET_INVALID: "START_TAG_TIME_OFFSET_INVALID", TIMING_SOURCE_MISSING: "TIMING_SOURCE_MISSING", TS_CONTAINER_TYPE_WITH_DASH_MANIFEST: "TS_CONTAINER_TYPE_WITH_DASH_MANIFEST", UPDATE_PERIOD_SMALLER_THAN_SEGMENT_DURATION: "UPDATE_PERIOD_SMALLER_THAN_SEGMENT_DURATION", @@ -855,6 +857,12 @@ export interface FilterConfiguration { * @public */ TimeDelaySeconds?: number; + + /** + *

Optionally specify the clip start time for all of your manifest egress requests. When you include clip start time, note that you cannot use clip start time query parameters for this manifest's endpoint URL.

+ * @public + */ + ClipStartTime?: Date; } /** @@ -1088,6 +1096,24 @@ export interface ScteHls { AdMarkerHls?: AdMarkerHls; } +/** + *

To insert an EXT-X-START tag in your HLS playlist, specify a StartTag configuration object with a valid TimeOffset. When you do, you can also optionally specify whether to include a PRECISE value in the EXT-X-START tag.

+ * @public + */ +export interface StartTag { + /** + *

Specify the value for TIME-OFFSET within your EXT-X-START tag. Enter a signed floating point value which, if positive, must be less than the configured manifest duration minus three times the configured segment target duration. If negative, the absolute value must be larger than three times the configured segment target duration, and the absolute value must be smaller than the configured manifest duration.

+ * @public + */ + TimeOffset: number | undefined; + + /** + *

Specify the value for PRECISE within your EXT-X-START tag. Leave blank, or choose false, to use the default value NO. Choose yes to use the value YES.

+ * @public + */ + Precise?: boolean; +} + /** *

Create an HTTP live streaming (HLS) manifest configuration.

* @public @@ -1111,6 +1137,12 @@ export interface CreateHlsManifestConfiguration { */ ScteHls?: ScteHls; + /** + *

To insert an EXT-X-START tag in your HLS playlist, specify a StartTag configuration object with a valid TimeOffset. When you do, you can also optionally specify whether to include a PRECISE value in the EXT-X-START tag.

+ * @public + */ + StartTag?: StartTag; + /** *

The total duration (in seconds) of the manifest's content.

* @public @@ -1157,6 +1189,12 @@ export interface CreateLowLatencyHlsManifestConfiguration { */ ScteHls?: ScteHls; + /** + *

To insert an EXT-X-START tag in your HLS playlist, specify a StartTag configuration object with a valid TimeOffset. When you do, you can also optionally specify whether to include a PRECISE value in the EXT-X-START tag.

+ * @public + */ + StartTag?: StartTag; + /** *

The total duration (in seconds) of the manifest's content.

* @public @@ -1756,6 +1794,12 @@ export interface GetHlsManifestConfiguration { * @public */ FilterConfiguration?: FilterConfiguration; + + /** + *

To insert an EXT-X-START tag in your HLS playlist, specify a StartTag configuration object with a valid TimeOffset. When you do, you can also optionally specify whether to include a PRECISE value in the EXT-X-START tag.

+ * @public + */ + StartTag?: StartTag; } /** @@ -1808,6 +1852,12 @@ export interface GetLowLatencyHlsManifestConfiguration { * @public */ FilterConfiguration?: FilterConfiguration; + + /** + *

To insert an EXT-X-START tag in your HLS playlist, specify a StartTag configuration object with a valid TimeOffset. When you do, you can also optionally specify whether to include a PRECISE value in the EXT-X-START tag.

+ * @public + */ + StartTag?: StartTag; } /** diff --git a/clients/client-mediapackagev2/src/protocols/Aws_restJson1.ts b/clients/client-mediapackagev2/src/protocols/Aws_restJson1.ts index dd0688dc280a..34a52b77feb7 100644 --- a/clients/client-mediapackagev2/src/protocols/Aws_restJson1.ts +++ b/clients/client-mediapackagev2/src/protocols/Aws_restJson1.ts @@ -6,6 +6,7 @@ import { _json, collectBody, decorateServiceException as __decorateServiceException, + expectBoolean as __expectBoolean, expectInt32 as __expectInt32, expectNonNull as __expectNonNull, expectNumber as __expectNumber, @@ -13,9 +14,11 @@ import { expectString as __expectString, extendedEncodeURIComponent as __extendedEncodeURIComponent, isSerializableHeaderValue, + limitedParseFloat32 as __limitedParseFloat32, map, parseEpochTimestamp as __parseEpochTimestamp, resolvedPath as __resolvedPath, + serializeFloat as __serializeFloat, take, withBaseException, } from "@smithy/smithy-client"; @@ -108,6 +111,7 @@ import { Segment, ServiceQuotaExceededException, SpekeKeyProvider, + StartTag, ThrottlingException, ValidationException, } from "../models/models_0"; @@ -1405,6 +1409,7 @@ const se_CreateHlsManifestConfiguration = (input: CreateHlsManifestConfiguration ManifestWindowSeconds: [], ProgramDateTimeIntervalSeconds: [], ScteHls: _json, + StartTag: (_) => se_StartTag(_, context), }); }; @@ -1433,6 +1438,7 @@ const se_CreateLowLatencyHlsManifestConfiguration = ( ManifestWindowSeconds: [], ProgramDateTimeIntervalSeconds: [], ScteHls: _json, + StartTag: (_) => se_StartTag(_, context), }); }; @@ -1469,6 +1475,7 @@ const se_CreateLowLatencyHlsManifests = ( */ const se_FilterConfiguration = (input: FilterConfiguration, context: __SerdeContext): any => { return take(input, { + ClipStartTime: (_) => _.getTime() / 1_000, End: (_) => _.getTime() / 1_000, ManifestFilter: [], Start: (_) => _.getTime() / 1_000, @@ -1490,6 +1497,16 @@ const se_FilterConfiguration = (input: FilterConfiguration, context: __SerdeCont // se_SpekeKeyProvider omitted. +/** + * serializeAws_restJson1StartTag + */ +const se_StartTag = (input: StartTag, context: __SerdeContext): any => { + return take(input, { + Precise: [], + TimeOffset: __serializeFloat, + }); +}; + // se_TagMap omitted. /** @@ -1563,6 +1580,7 @@ const de_ChannelListConfiguration = (output: any, context: __SerdeContext): Chan */ const de_FilterConfiguration = (output: any, context: __SerdeContext): FilterConfiguration => { return take(output, { + ClipStartTime: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), End: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), ManifestFilter: __expectString, Start: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), @@ -1615,6 +1633,7 @@ const de_GetHlsManifestConfiguration = (output: any, context: __SerdeContext): G ManifestWindowSeconds: __expectInt32, ProgramDateTimeIntervalSeconds: __expectInt32, ScteHls: _json, + StartTag: (_: any) => de_StartTag(_, context), Url: __expectString, }) as any; }; @@ -1645,6 +1664,7 @@ const de_GetLowLatencyHlsManifestConfiguration = ( ManifestWindowSeconds: __expectInt32, ProgramDateTimeIntervalSeconds: __expectInt32, ScteHls: _json, + StartTag: (_: any) => de_StartTag(_, context), Url: __expectString, }) as any; }; @@ -1724,6 +1744,16 @@ const de_OriginEndpointsList = (output: any, context: __SerdeContext): OriginEnd // de_SpekeKeyProvider omitted. +/** + * deserializeAws_restJson1StartTag + */ +const de_StartTag = (output: any, context: __SerdeContext): StartTag => { + return take(output, { + Precise: __expectBoolean, + TimeOffset: __limitedParseFloat32, + }) as any; +}; + // de_TagMap omitted. const deserializeMetadata = (output: __HttpResponse): __ResponseMetadata => ({ diff --git a/codegen/sdk-codegen/aws-models/mediapackagev2.json b/codegen/sdk-codegen/aws-models/mediapackagev2.json index e9b43c5d5f17..9cbc3ed8abde 100644 --- a/codegen/sdk-codegen/aws-models/mediapackagev2.json +++ b/codegen/sdk-codegen/aws-models/mediapackagev2.json @@ -830,6 +830,9 @@ "ScteHls": { "target": "com.amazonaws.mediapackagev2#ScteHls" }, + "StartTag": { + "target": "com.amazonaws.mediapackagev2#StartTag" + }, "ManifestWindowSeconds": { "target": "smithy.api#Integer", "traits": { @@ -842,7 +845,7 @@ "ProgramDateTimeIntervalSeconds": { "target": "smithy.api#Integer", "traits": { - "smithy.api#documentation": "

Inserts EXT-X-PROGRAM-DATE-TIME tags in the output manifest at the interval that you specify. If you don't enter an interval, \n EXT-X-PROGRAM-DATE-TIME tags aren't included in the manifest. \n The tags sync the stream to the wall clock so that viewers can seek to a specific time in the playback timeline on the player. \n ID3Timed metadata messages generate every 5 seconds whenever the content is ingested.

\n

Irrespective of this parameter, if any ID3Timed metadata is in the HLS input, it is passed through to the HLS output.

", + "smithy.api#documentation": "

Inserts EXT-X-PROGRAM-DATE-TIME tags in the output manifest at the interval that you specify. If you don't enter an interval,\n EXT-X-PROGRAM-DATE-TIME tags aren't included in the manifest.\n The tags sync the stream to the wall clock so that viewers can seek to a specific time in the playback timeline on the player.\n ID3Timed metadata messages generate every 5 seconds whenever the content is ingested.

\n

Irrespective of this parameter, if any ID3Timed metadata is in the HLS input, it is passed through to the HLS output.

", "smithy.api#range": { "min": 1, "max": 1209600 @@ -882,6 +885,9 @@ "ScteHls": { "target": "com.amazonaws.mediapackagev2#ScteHls" }, + "StartTag": { + "target": "com.amazonaws.mediapackagev2#StartTag" + }, "ManifestWindowSeconds": { "target": "smithy.api#Integer", "traits": { @@ -894,7 +900,7 @@ "ProgramDateTimeIntervalSeconds": { "target": "smithy.api#Integer", "traits": { - "smithy.api#documentation": "

Inserts EXT-X-PROGRAM-DATE-TIME tags in the output manifest at the interval that you specify. If you don't enter an interval, \n EXT-X-PROGRAM-DATE-TIME tags aren't included in the manifest. \n The tags sync the stream to the wall clock so that viewers can seek to a specific time in the playback timeline on the player. \n ID3Timed metadata messages generate every 5 seconds whenever the content is ingested.

\n

Irrespective of this parameter, if any ID3Timed metadata is in the HLS input, it is passed through to the HLS output.

", + "smithy.api#documentation": "

Inserts EXT-X-PROGRAM-DATE-TIME tags in the output manifest at the interval that you specify. If you don't enter an interval,\n EXT-X-PROGRAM-DATE-TIME tags aren't included in the manifest.\n The tags sync the stream to the wall clock so that viewers can seek to a specific time in the playback timeline on the player.\n ID3Timed metadata messages generate every 5 seconds whenever the content is ingested.

\n

Irrespective of this parameter, if any ID3Timed metadata is in the HLS input, it is passed through to the HLS output.

", "smithy.api#range": { "min": 1, "max": 1209600 @@ -2301,6 +2307,12 @@ "max": 1209600 } } + }, + "ClipStartTime": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

Optionally specify the clip start time for all of your manifest egress requests. When you include clip start time, note that you cannot use clip start time query parameters for this manifest's endpoint URL.

" + } } }, "traits": { @@ -2840,7 +2852,7 @@ "ProgramDateTimeIntervalSeconds": { "target": "smithy.api#Integer", "traits": { - "smithy.api#documentation": "

Inserts EXT-X-PROGRAM-DATE-TIME tags in the output manifest at the interval that you specify. If you don't enter an interval, \n EXT-X-PROGRAM-DATE-TIME tags aren't included in the manifest. \n The tags sync the stream to the wall clock so that viewers can seek to a specific time in the playback timeline on the player. \n ID3Timed metadata messages generate every 5 seconds whenever the content is ingested.

\n

Irrespective of this parameter, if any ID3Timed metadata is in the HLS input, it is passed through to the HLS output.

" + "smithy.api#documentation": "

Inserts EXT-X-PROGRAM-DATE-TIME tags in the output manifest at the interval that you specify. If you don't enter an interval,\n EXT-X-PROGRAM-DATE-TIME tags aren't included in the manifest.\n The tags sync the stream to the wall clock so that viewers can seek to a specific time in the playback timeline on the player.\n ID3Timed metadata messages generate every 5 seconds whenever the content is ingested.

\n

Irrespective of this parameter, if any ID3Timed metadata is in the HLS input, it is passed through to the HLS output.

" } }, "ScteHls": { @@ -2848,6 +2860,9 @@ }, "FilterConfiguration": { "target": "com.amazonaws.mediapackagev2#FilterConfiguration" + }, + "StartTag": { + "target": "com.amazonaws.mediapackagev2#StartTag" } }, "traits": { @@ -2892,7 +2907,7 @@ "ProgramDateTimeIntervalSeconds": { "target": "smithy.api#Integer", "traits": { - "smithy.api#documentation": "

Inserts EXT-X-PROGRAM-DATE-TIME tags in the output manifest at the interval that you specify. If you don't enter an interval, \n EXT-X-PROGRAM-DATE-TIME tags aren't included in the manifest. \n The tags sync the stream to the wall clock so that viewers can seek to a specific time in the playback timeline on the player. \n ID3Timed metadata messages generate every 5 seconds whenever the content is ingested.

\n

Irrespective of this parameter, if any ID3Timed metadata is in the HLS input, it is passed through to the HLS output.

" + "smithy.api#documentation": "

Inserts EXT-X-PROGRAM-DATE-TIME tags in the output manifest at the interval that you specify. If you don't enter an interval,\n EXT-X-PROGRAM-DATE-TIME tags aren't included in the manifest.\n The tags sync the stream to the wall clock so that viewers can seek to a specific time in the playback timeline on the player.\n ID3Timed metadata messages generate every 5 seconds whenever the content is ingested.

\n

Irrespective of this parameter, if any ID3Timed metadata is in the HLS input, it is passed through to the HLS output.

" } }, "ScteHls": { @@ -2900,6 +2915,9 @@ }, "FilterConfiguration": { "target": "com.amazonaws.mediapackagev2#FilterConfiguration" + }, + "StartTag": { + "target": "com.amazonaws.mediapackagev2#StartTag" } }, "traits": { @@ -4755,6 +4773,27 @@ "smithy.api#documentation": "

The parameters for the SPEKE key provider.

" } }, + "com.amazonaws.mediapackagev2#StartTag": { + "type": "structure", + "members": { + "TimeOffset": { + "target": "smithy.api#Float", + "traits": { + "smithy.api#documentation": "

Specify the value for TIME-OFFSET within your EXT-X-START tag. Enter a signed floating point value which, if positive, must be less than the configured manifest duration minus three times the configured segment target duration. If negative, the absolute value must be larger than three times the configured segment target duration, and the absolute value must be smaller than the configured manifest duration.

", + "smithy.api#required": {} + } + }, + "Precise": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Specify the value for PRECISE within your EXT-X-START tag. Leave blank, or choose false, to use the default value NO. Choose yes to use the value YES.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

To insert an EXT-X-START tag in your HLS playlist, specify a StartTag configuration object with a valid TimeOffset. When you do, you can also optionally specify whether to include a PRECISE value in the EXT-X-START tag.

" + } + }, "com.amazonaws.mediapackagev2#TagArn": { "type": "string" }, @@ -4792,7 +4831,7 @@ "traits": { "aws.iam#actionPermissionDescription": "Grants permission to add specified tags to the specified resource", "aws.iam#conditionKeys": ["aws:TagKeys", "aws:RequestTag/${TagKey}"], - "smithy.api#documentation": "

Assigns one of more tags (key-value pairs) to the specified MediaPackage resource.

\n

Tags can help you organize and categorize your resources. You can also use them to scope user \n permissions, by granting a user permission to access or change only resources with certain tag values.\n You can use the TagResource operation with a resource that already has tags. If you specify a new tag \n key for the resource, this tag is appended to the list of tags associated with the resource. If you \n specify a tag key that is already associated with the resource, the new tag value that you specify replaces the previous value for that tag.

", + "smithy.api#documentation": "

Assigns one of more tags (key-value pairs) to the specified MediaPackage resource.

\n

Tags can help you organize and categorize your resources. You can also use them to scope user\n permissions, by granting a user permission to access or change only resources with certain tag values.\n You can use the TagResource operation with a resource that already has tags. If you specify a new tag\n key for the resource, this tag is appended to the list of tags associated with the resource. If you\n specify a tag key that is already associated with the resource, the new tag value that you specify replaces the previous value for that tag.

", "smithy.api#examples": [ { "title": "Add tags to a resource", @@ -5996,6 +6035,18 @@ "traits": { "smithy.api#enumValue": "SOURCE_DISRUPTIONS_ENABLED_INCORRECTLY" } + }, + "CLIP_START_TIME_WITH_START_OR_END": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CLIP_START_TIME_WITH_START_OR_END" + } + }, + "START_TAG_TIME_OFFSET_INVALID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "START_TAG_TIME_OFFSET_INVALID" + } } } }, @@ -6072,7 +6123,7 @@ ], "maxAge": 86400 }, - "smithy.api#documentation": "\n

This guide is intended for creating AWS Elemental MediaPackage resources in MediaPackage Version 2 (v2) starting from May 2023. \n To get started with MediaPackage v2, create your MediaPackage resources. There isn't an automated process to\n migrate your resources from MediaPackage v1 to MediaPackage v2.

\n

The names of the entities that you use to access this API, like URLs and ARNs, all have the versioning information \n added, like \"v2\", to distinguish from the prior version. If you used MediaPackage prior to this release, you can't use\n the MediaPackage v2 CLI or the MediaPackage v2 API to access any MediaPackage v1 resources.

\n

If you created resources in MediaPackage v1, use video on demand (VOD) workflows, and aren't looking to migrate to MediaPackage v2 yet, \n see the MediaPackage v1 Live API Reference.

\n
\n

This is the AWS Elemental MediaPackage v2 Live REST API Reference. It describes all the MediaPackage API operations for live content in detail, and provides sample requests, responses, and errors for the supported web services protocols.

\n

We assume that you have the IAM permissions that you need to use MediaPackage via the REST API. We also assume that you are familiar with the features and operations of MediaPackage, as described in the AWS Elemental MediaPackage User Guide.

", + "smithy.api#documentation": "\n

This guide is intended for creating AWS Elemental MediaPackage resources in MediaPackage Version 2 (v2) starting from May 2023.\n To get started with MediaPackage v2, create your MediaPackage resources. There isn't an automated process to\n migrate your resources from MediaPackage v1 to MediaPackage v2.

\n

The names of the entities that you use to access this API, like URLs and ARNs, all have the versioning information\n added, like \"v2\", to distinguish from the prior version. If you used MediaPackage prior to this release, you can't use\n the MediaPackage v2 CLI or the MediaPackage v2 API to access any MediaPackage v1 resources.

\n

If you created resources in MediaPackage v1, use video on demand (VOD) workflows, and aren't looking to migrate to MediaPackage v2 yet,\n see the MediaPackage v1 Live API Reference.

\n
\n

This is the AWS Elemental MediaPackage v2 Live REST API Reference. It describes all the MediaPackage API operations for live content in detail, and provides sample requests, responses, and errors for the supported web services protocols.

\n

We assume that you have the IAM permissions that you need to use MediaPackage via the REST API. We also assume that you are familiar with the features and operations of MediaPackage, as described in the AWS Elemental MediaPackage User Guide.

", "smithy.api#title": "AWS Elemental MediaPackage v2", "smithy.rules#endpointRuleSet": { "version": "1.0",