From 7850f23315cadd2a77e060a4b6742b202d58505f Mon Sep 17 00:00:00 2001
From: awstools
Date: Mon, 17 Jul 2023 18:26:25 +0000
Subject: [PATCH] feat(client-ivs): This release provides the flexibility to
configure what renditions or thumbnail qualities to record when creating
recording configuration.
---
...atchStartViewerSessionRevocationCommand.ts | 9 +
.../CreateRecordingConfigurationCommand.ts | 20 ++
.../GetRecordingConfigurationCommand.ts | 10 +
.../src/commands/GetStreamSessionCommand.ts | 10 +
.../StartViewerSessionRevocationCommand.ts | 6 +
clients/client-ivs/src/models/models_0.ts | 230 +++++++++++++-----
.../client-ivs/src/protocols/Aws_restJson1.ts | 31 +++
codegen/sdk-codegen/aws-models/ivs.json | 153 +++++++++++-
8 files changed, 411 insertions(+), 58 deletions(-)
diff --git a/clients/client-ivs/src/commands/BatchStartViewerSessionRevocationCommand.ts b/clients/client-ivs/src/commands/BatchStartViewerSessionRevocationCommand.ts
index adfc9457561f..57b164b257b6 100644
--- a/clients/client-ivs/src/commands/BatchStartViewerSessionRevocationCommand.ts
+++ b/clients/client-ivs/src/commands/BatchStartViewerSessionRevocationCommand.ts
@@ -82,6 +82,15 @@ export interface BatchStartViewerSessionRevocationCommandOutput
* @see {@link BatchStartViewerSessionRevocationCommandOutput} for command's `response` shape.
* @see {@link IvsClientResolvedConfig | config} for IvsClient's `config` shape.
*
+ * @throws {@link AccessDeniedException} (client fault)
+ *
+ *
+ * @throws {@link PendingVerification} (client fault)
+ *
+ *
+ * @throws {@link ThrottlingException} (client fault)
+ *
+ *
* @throws {@link ValidationException} (client fault)
*
*
diff --git a/clients/client-ivs/src/commands/CreateRecordingConfigurationCommand.ts b/clients/client-ivs/src/commands/CreateRecordingConfigurationCommand.ts
index f52bafb42ac5..a2f0a7385fa9 100644
--- a/clients/client-ivs/src/commands/CreateRecordingConfigurationCommand.ts
+++ b/clients/client-ivs/src/commands/CreateRecordingConfigurationCommand.ts
@@ -72,8 +72,18 @@ export interface CreateRecordingConfigurationCommandOutput
* thumbnailConfiguration: { // ThumbnailConfiguration
* recordingMode: "STRING_VALUE",
* targetIntervalSeconds: Number("long"),
+ * resolution: "STRING_VALUE",
+ * storage: [ // ThumbnailConfigurationStorageList
+ * "STRING_VALUE",
+ * ],
* },
* recordingReconnectWindowSeconds: Number("int"),
+ * renditionConfiguration: { // RenditionConfiguration
+ * renditionSelection: "STRING_VALUE",
+ * renditions: [ // RenditionConfigurationRenditionList
+ * "STRING_VALUE",
+ * ],
+ * },
* };
* const command = new CreateRecordingConfigurationCommand(input);
* const response = await client.send(command);
@@ -93,8 +103,18 @@ export interface CreateRecordingConfigurationCommandOutput
* // thumbnailConfiguration: { // ThumbnailConfiguration
* // recordingMode: "STRING_VALUE",
* // targetIntervalSeconds: Number("long"),
+ * // resolution: "STRING_VALUE",
+ * // storage: [ // ThumbnailConfigurationStorageList
+ * // "STRING_VALUE",
+ * // ],
* // },
* // recordingReconnectWindowSeconds: Number("int"),
+ * // renditionConfiguration: { // RenditionConfiguration
+ * // renditionSelection: "STRING_VALUE",
+ * // renditions: [ // RenditionConfigurationRenditionList
+ * // "STRING_VALUE",
+ * // ],
+ * // },
* // },
* // };
*
diff --git a/clients/client-ivs/src/commands/GetRecordingConfigurationCommand.ts b/clients/client-ivs/src/commands/GetRecordingConfigurationCommand.ts
index aa6a8402bb6b..c141b2b72057 100644
--- a/clients/client-ivs/src/commands/GetRecordingConfigurationCommand.ts
+++ b/clients/client-ivs/src/commands/GetRecordingConfigurationCommand.ts
@@ -64,8 +64,18 @@ export interface GetRecordingConfigurationCommandOutput extends GetRecordingConf
* // thumbnailConfiguration: { // ThumbnailConfiguration
* // recordingMode: "STRING_VALUE",
* // targetIntervalSeconds: Number("long"),
+ * // resolution: "STRING_VALUE",
+ * // storage: [ // ThumbnailConfigurationStorageList
+ * // "STRING_VALUE",
+ * // ],
* // },
* // recordingReconnectWindowSeconds: Number("int"),
+ * // renditionConfiguration: { // RenditionConfiguration
+ * // renditionSelection: "STRING_VALUE",
+ * // renditions: [ // RenditionConfigurationRenditionList
+ * // "STRING_VALUE",
+ * // ],
+ * // },
* // },
* // };
*
diff --git a/clients/client-ivs/src/commands/GetStreamSessionCommand.ts b/clients/client-ivs/src/commands/GetStreamSessionCommand.ts
index c87d12660d05..fb068bc1dc41 100644
--- a/clients/client-ivs/src/commands/GetStreamSessionCommand.ts
+++ b/clients/client-ivs/src/commands/GetStreamSessionCommand.ts
@@ -102,8 +102,18 @@ export interface GetStreamSessionCommandOutput extends GetStreamSessionResponse,
* // thumbnailConfiguration: { // ThumbnailConfiguration
* // recordingMode: "STRING_VALUE",
* // targetIntervalSeconds: Number("long"),
+ * // resolution: "STRING_VALUE",
+ * // storage: [ // ThumbnailConfigurationStorageList
+ * // "STRING_VALUE",
+ * // ],
* // },
* // recordingReconnectWindowSeconds: Number("int"),
+ * // renditionConfiguration: { // RenditionConfiguration
+ * // renditionSelection: "STRING_VALUE",
+ * // renditions: [ // RenditionConfigurationRenditionList
+ * // "STRING_VALUE",
+ * // ],
+ * // },
* // },
* // truncatedEvents: [ // StreamEvents
* // { // StreamEvent
diff --git a/clients/client-ivs/src/commands/StartViewerSessionRevocationCommand.ts b/clients/client-ivs/src/commands/StartViewerSessionRevocationCommand.ts
index 3af88efec4d8..7cfb1433b5d6 100644
--- a/clients/client-ivs/src/commands/StartViewerSessionRevocationCommand.ts
+++ b/clients/client-ivs/src/commands/StartViewerSessionRevocationCommand.ts
@@ -75,6 +75,12 @@ export interface StartViewerSessionRevocationCommandOutput
* @throws {@link InternalServerException} (server fault)
*
*
+ * @throws {@link PendingVerification} (client fault)
+ *
+ *
+ * @throws {@link ResourceNotFoundException} (client fault)
+ *
+ *
* @throws {@link ThrottlingException} (client fault)
*
*
diff --git a/clients/client-ivs/src/models/models_0.ts b/clients/client-ivs/src/models/models_0.ts
index f7e588287fe8..f33e65a8a81e 100644
--- a/clients/client-ivs/src/models/models_0.ts
+++ b/clients/client-ivs/src/models/models_0.ts
@@ -376,6 +376,56 @@ export interface BatchStartViewerSessionRevocationResponse {
errors?: BatchStartViewerSessionRevocationError[];
}
+/**
+ * @public
+ *
+ */
+export class PendingVerification extends __BaseException {
+ readonly name: "PendingVerification" = "PendingVerification";
+ readonly $fault: "client" = "client";
+ /**
+ * Your account is pending verification.
+ */
+ exceptionMessage?: string;
+ /**
+ * @internal
+ */
+ constructor(opts: __ExceptionOptionType) {
+ super({
+ name: "PendingVerification",
+ $fault: "client",
+ ...opts,
+ });
+ Object.setPrototypeOf(this, PendingVerification.prototype);
+ this.exceptionMessage = opts.exceptionMessage;
+ }
+}
+
+/**
+ * @public
+ *
+ */
+export class ThrottlingException extends __BaseException {
+ readonly name: "ThrottlingException" = "ThrottlingException";
+ readonly $fault: "client" = "client";
+ /**
+ * Request was denied due to request throttling.
+ */
+ exceptionMessage?: string;
+ /**
+ * @internal
+ */
+ constructor(opts: __ExceptionOptionType) {
+ super({
+ name: "ThrottlingException",
+ $fault: "client",
+ ...opts,
+ });
+ Object.setPrototypeOf(this, ThrottlingException.prototype);
+ this.exceptionMessage = opts.exceptionMessage;
+ }
+}
+
/**
* @public
*
@@ -531,31 +581,6 @@ export interface CreateChannelResponse {
streamKey?: StreamKey;
}
-/**
- * @public
- *
- */
-export class PendingVerification extends __BaseException {
- readonly name: "PendingVerification" = "PendingVerification";
- readonly $fault: "client" = "client";
- /**
- * Your account is pending verification.
- */
- exceptionMessage?: string;
- /**
- * @internal
- */
- constructor(opts: __ExceptionOptionType) {
- super({
- name: "PendingVerification",
- $fault: "client",
- ...opts,
- });
- Object.setPrototypeOf(this, PendingVerification.prototype);
- this.exceptionMessage = opts.exceptionMessage;
- }
-}
-
/**
* @public
*
@@ -655,6 +680,62 @@ export interface DestinationConfiguration {
s3?: S3DestinationConfiguration;
}
+/**
+ * @public
+ * @enum
+ */
+export const RenditionConfigurationRendition = {
+ FULL_HD: "FULL_HD",
+ HD: "HD",
+ LOWEST_RESOLUTION: "LOWEST_RESOLUTION",
+ SD: "SD",
+} as const;
+
+/**
+ * @public
+ */
+export type RenditionConfigurationRendition =
+ (typeof RenditionConfigurationRendition)[keyof typeof RenditionConfigurationRendition];
+
+/**
+ * @public
+ * @enum
+ */
+export const RenditionConfigurationRenditionSelection = {
+ ALL: "ALL",
+ CUSTOM: "CUSTOM",
+ NONE: "NONE",
+} as const;
+
+/**
+ * @public
+ */
+export type RenditionConfigurationRenditionSelection =
+ (typeof RenditionConfigurationRenditionSelection)[keyof typeof RenditionConfigurationRenditionSelection];
+
+/**
+ * @public
+ * Object that describes which renditions should be recorded for a stream.
+ */
+export interface RenditionConfiguration {
+ /**
+ * Indicates which set of renditions are recorded for a stream. For BASIC
+ * channels, the CUSTOM
value has no effect. If CUSTOM
is specified, a
+ * set of renditions must be specified in the renditions
field. Default:
+ * ALL
.
+ */
+ renditionSelection?: RenditionConfigurationRenditionSelection | string;
+
+ /**
+ * Indicates which renditions are recorded for a stream, if renditionSelection
+ * is CUSTOM
; otherwise, this field is irrelevant. The selected renditions are
+ * recorded if they are available during the stream. If a selected rendition is unavailable, the
+ * best available rendition is recorded. For details on the resolution dimensions of each
+ * rendition, see Auto-Record to Amazon S3.
+ */
+ renditions?: (RenditionConfigurationRendition | string)[];
+}
+
/**
* @public
* @enum
@@ -669,6 +750,38 @@ export const RecordingMode = {
*/
export type RecordingMode = (typeof RecordingMode)[keyof typeof RecordingMode];
+/**
+ * @public
+ * @enum
+ */
+export const ThumbnailConfigurationResolution = {
+ FULL_HD: "FULL_HD",
+ HD: "HD",
+ LOWEST_RESOLUTION: "LOWEST_RESOLUTION",
+ SD: "SD",
+} as const;
+
+/**
+ * @public
+ */
+export type ThumbnailConfigurationResolution =
+ (typeof ThumbnailConfigurationResolution)[keyof typeof ThumbnailConfigurationResolution];
+
+/**
+ * @public
+ * @enum
+ */
+export const ThumbnailConfigurationStorage = {
+ LATEST: "LATEST",
+ SEQUENTIAL: "SEQUENTIAL",
+} as const;
+
+/**
+ * @public
+ */
+export type ThumbnailConfigurationStorage =
+ (typeof ThumbnailConfigurationStorage)[keyof typeof ThumbnailConfigurationStorage];
+
/**
* @public
* An object representing a configuration of thumbnails for recorded video.
@@ -683,15 +796,33 @@ export interface ThumbnailConfiguration {
* The targeted thumbnail-generation interval in seconds. This is configurable (and required)
* only if recordingMode
is INTERVAL
. Default: 60.
*
- * Important: Setting a value for
- * targetIntervalSeconds
does not guarantee that thumbnails are generated at the
- * specified interval. For thumbnails to be generated at the targetIntervalSeconds
- * interval, the IDR/Keyframe
value for the input video must be less than the
- * targetIntervalSeconds
value. See Amazon IVS Streaming Configuration
- * for information on setting IDR/Keyframe
to the recommended value in video-encoder
- * settings.
+ * Important: For the BASIC
channel type,
+ * setting a value for targetIntervalSeconds
does not guarantee that thumbnails are
+ * generated at the specified interval. For thumbnails to be generated at the
+ * targetIntervalSeconds
interval, the IDR/Keyframe
value for the
+ * input video must be less than the targetIntervalSeconds
value. See Amazon IVS Streaming
+ * Configuration for information on setting IDR/Keyframe
to the
+ * recommended value in video-encoder settings.
*/
targetIntervalSeconds?: number;
+
+ /**
+ * Indicates the desired resolution of recorded thumbnails. Thumbnails are recorded at the
+ * selected resolution if the corresponding rendition is available during the stream; otherwise,
+ * they are recorded at source resolution. For more information about resolution values and their
+ * corresponding height and width dimensions, see Auto-Record to Amazon S3. Default:
+ * Null (source resolution is returned).
+ */
+ resolution?: ThumbnailConfigurationResolution | string;
+
+ /**
+ * Indicates the format in which thumbnails are recorded. SEQUENTIAL
records all
+ * generated thumbnails in a serial manner, to the media/thumbnails directory.
+ * LATEST
saves the latest thumbnail in media/latest_thumbnail/thumb.jpg and
+ * overwrites it at the interval specified by targetIntervalSeconds
. You can enable
+ * both SEQUENTIAL
and LATEST
. Default: SEQUENTIAL
.
+ */
+ storage?: (ThumbnailConfigurationStorage | string)[];
}
/**
@@ -728,6 +859,11 @@ export interface CreateRecordingConfigurationRequest {
* streams will be considered a single broadcast and merged together. Default: 0.
*/
recordingReconnectWindowSeconds?: number;
+
+ /**
+ * Object that describes which renditions should be recorded for a stream.
+ */
+ renditionConfiguration?: RenditionConfiguration;
}
/**
@@ -791,6 +927,11 @@ export interface RecordingConfiguration {
* streams will be considered a single broadcast and merged together. Default: 0.
*/
recordingReconnectWindowSeconds?: number;
+
+ /**
+ * Object that describes which renditions should be recorded for a stream.
+ */
+ renditionConfiguration?: RenditionConfiguration;
}
/**
@@ -1898,31 +2039,6 @@ export interface PutMetadataRequest {
metadata: string | undefined;
}
-/**
- * @public
- *
- */
-export class ThrottlingException extends __BaseException {
- readonly name: "ThrottlingException" = "ThrottlingException";
- readonly $fault: "client" = "client";
- /**
- * Request was denied due to request throttling.
- */
- exceptionMessage?: string;
- /**
- * @internal
- */
- constructor(opts: __ExceptionOptionType) {
- super({
- name: "ThrottlingException",
- $fault: "client",
- ...opts,
- });
- Object.setPrototypeOf(this, ThrottlingException.prototype);
- this.exceptionMessage = opts.exceptionMessage;
- }
-}
-
/**
* @public
*/
diff --git a/clients/client-ivs/src/protocols/Aws_restJson1.ts b/clients/client-ivs/src/protocols/Aws_restJson1.ts
index e97ae95b80c1..4031b963cb73 100644
--- a/clients/client-ivs/src/protocols/Aws_restJson1.ts
+++ b/clients/client-ivs/src/protocols/Aws_restJson1.ts
@@ -92,6 +92,8 @@ import {
DestinationConfiguration,
InternalServerException,
PendingVerification,
+ RenditionConfiguration,
+ RenditionConfigurationRendition,
ResourceNotFoundException,
S3DestinationConfiguration,
ServiceQuotaExceededException,
@@ -103,6 +105,7 @@ import {
StreamUnavailable,
ThrottlingException,
ThumbnailConfiguration,
+ ThumbnailConfigurationStorage,
ValidationException,
} from "../models/models_0";
@@ -249,6 +252,7 @@ export const se_CreateRecordingConfigurationCommand = async (
destinationConfiguration: (_) => _json(_),
name: [],
recordingReconnectWindowSeconds: [],
+ renditionConfiguration: (_) => _json(_),
tags: (_) => _json(_),
thumbnailConfiguration: (_) => _json(_),
})
@@ -1132,6 +1136,15 @@ const de_BatchStartViewerSessionRevocationCommandError = async (
};
const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);
switch (errorCode) {
+ case "AccessDeniedException":
+ case "com.amazonaws.ivs#AccessDeniedException":
+ throw await de_AccessDeniedExceptionRes(parsedOutput, context);
+ case "PendingVerification":
+ case "com.amazonaws.ivs#PendingVerification":
+ throw await de_PendingVerificationRes(parsedOutput, context);
+ case "ThrottlingException":
+ case "com.amazonaws.ivs#ThrottlingException":
+ throw await de_ThrottlingExceptionRes(parsedOutput, context);
case "ValidationException":
case "com.amazonaws.ivs#ValidationException":
throw await de_ValidationExceptionRes(parsedOutput, context);
@@ -2385,6 +2398,12 @@ const de_StartViewerSessionRevocationCommandError = async (
case "InternalServerException":
case "com.amazonaws.ivs#InternalServerException":
throw await de_InternalServerExceptionRes(parsedOutput, context);
+ case "PendingVerification":
+ case "com.amazonaws.ivs#PendingVerification":
+ throw await de_PendingVerificationRes(parsedOutput, context);
+ case "ResourceNotFoundException":
+ case "com.amazonaws.ivs#ResourceNotFoundException":
+ throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);
case "ThrottlingException":
case "com.amazonaws.ivs#ThrottlingException":
throw await de_ThrottlingExceptionRes(parsedOutput, context);
@@ -2807,6 +2826,10 @@ const de_ValidationExceptionRes = async (parsedOutput: any, context: __SerdeCont
// se_DestinationConfiguration omitted.
+// se_RenditionConfiguration omitted.
+
+// se_RenditionConfigurationRenditionList omitted.
+
// se_S3DestinationConfiguration omitted.
// se_StreamFilters omitted.
@@ -2817,6 +2840,8 @@ const de_ValidationExceptionRes = async (parsedOutput: any, context: __SerdeCont
// se_ThumbnailConfiguration omitted.
+// se_ThumbnailConfigurationStorageList omitted.
+
// de_AudioConfiguration omitted.
// de_BatchError omitted.
@@ -2851,6 +2876,10 @@ const de_ValidationExceptionRes = async (parsedOutput: any, context: __SerdeCont
// de_RecordingConfigurationSummary omitted.
+// de_RenditionConfiguration omitted.
+
+// de_RenditionConfigurationRenditionList omitted.
+
// de_S3DestinationConfiguration omitted.
/**
@@ -2968,6 +2997,8 @@ const de_StreamSummary = (output: any, context: __SerdeContext): StreamSummary =
// de_ThumbnailConfiguration omitted.
+// de_ThumbnailConfigurationStorageList omitted.
+
// de_VideoConfiguration omitted.
const deserializeMetadata = (output: __HttpResponse): __ResponseMetadata => ({
diff --git a/codegen/sdk-codegen/aws-models/ivs.json b/codegen/sdk-codegen/aws-models/ivs.json
index db5be732075f..525ef1aa3d17 100644
--- a/codegen/sdk-codegen/aws-models/ivs.json
+++ b/codegen/sdk-codegen/aws-models/ivs.json
@@ -1056,6 +1056,15 @@
"target": "com.amazonaws.ivs#BatchStartViewerSessionRevocationResponse"
},
"errors": [
+ {
+ "target": "com.amazonaws.ivs#AccessDeniedException"
+ },
+ {
+ "target": "com.amazonaws.ivs#PendingVerification"
+ },
+ {
+ "target": "com.amazonaws.ivs#ThrottlingException"
+ },
{
"target": "com.amazonaws.ivs#ValidationException"
}
@@ -1624,6 +1633,12 @@
"smithy.api#default": 0,
"smithy.api#documentation": "If a broadcast disconnects and then reconnects within the specified interval, the multiple\n streams will be considered a single broadcast and merged together. Default: 0.
"
}
+ },
+ "renditionConfiguration": {
+ "target": "com.amazonaws.ivs#RenditionConfiguration",
+ "traits": {
+ "smithy.api#documentation": "Object that describes which renditions should be recorded for a stream.
"
+ }
}
}
},
@@ -3101,6 +3116,12 @@
"smithy.api#default": 0,
"smithy.api#documentation": "If a broadcast disconnects and then reconnects within the specified interval, the multiple\n streams will be considered a single broadcast and merged together. Default: 0.
"
}
+ },
+ "renditionConfiguration": {
+ "target": "com.amazonaws.ivs#RenditionConfiguration",
+ "traits": {
+ "smithy.api#documentation": "Object that describes which renditions should be recorded for a stream.
"
+ }
}
},
"traits": {
@@ -3218,6 +3239,74 @@
}
}
},
+ "com.amazonaws.ivs#RenditionConfiguration": {
+ "type": "structure",
+ "members": {
+ "renditionSelection": {
+ "target": "com.amazonaws.ivs#RenditionConfigurationRenditionSelection",
+ "traits": {
+ "smithy.api#documentation": "Indicates which set of renditions are recorded for a stream. For BASIC
\n channels, the CUSTOM
value has no effect. If CUSTOM
is specified, a\n set of renditions must be specified in the renditions
field. Default:\n ALL
.
"
+ }
+ },
+ "renditions": {
+ "target": "com.amazonaws.ivs#RenditionConfigurationRenditionList",
+ "traits": {
+ "smithy.api#documentation": "Indicates which renditions are recorded for a stream, if renditionSelection
\n is CUSTOM
; otherwise, this field is irrelevant. The selected renditions are\n recorded if they are available during the stream. If a selected rendition is unavailable, the\n best available rendition is recorded. For details on the resolution dimensions of each\n rendition, see Auto-Record to Amazon S3.
"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#documentation": "Object that describes which renditions should be recorded for a stream.
"
+ }
+ },
+ "com.amazonaws.ivs#RenditionConfigurationRendition": {
+ "type": "string",
+ "traits": {
+ "smithy.api#enum": [
+ {
+ "value": "FULL_HD",
+ "name": "FULL_HD"
+ },
+ {
+ "value": "HD",
+ "name": "HD"
+ },
+ {
+ "value": "SD",
+ "name": "SD"
+ },
+ {
+ "value": "LOWEST_RESOLUTION",
+ "name": "LOWEST_RESOLUTION"
+ }
+ ]
+ }
+ },
+ "com.amazonaws.ivs#RenditionConfigurationRenditionList": {
+ "type": "list",
+ "member": {
+ "target": "com.amazonaws.ivs#RenditionConfigurationRendition"
+ }
+ },
+ "com.amazonaws.ivs#RenditionConfigurationRenditionSelection": {
+ "type": "string",
+ "traits": {
+ "smithy.api#enum": [
+ {
+ "value": "ALL",
+ "name": "ALL"
+ },
+ {
+ "value": "NONE",
+ "name": "NONE"
+ },
+ {
+ "value": "CUSTOM",
+ "name": "CUSTOM"
+ }
+ ]
+ }
+ },
"com.amazonaws.ivs#ResourceArn": {
"type": "string",
"traits": {
@@ -3300,6 +3389,12 @@
{
"target": "com.amazonaws.ivs#InternalServerException"
},
+ {
+ "target": "com.amazonaws.ivs#PendingVerification"
+ },
+ {
+ "target": "com.amazonaws.ivs#ResourceNotFoundException"
+ },
{
"target": "com.amazonaws.ivs#ThrottlingException"
},
@@ -3953,7 +4048,19 @@
"target": "com.amazonaws.ivs#TargetIntervalSeconds",
"traits": {
"smithy.api#default": 0,
- "smithy.api#documentation": "The targeted thumbnail-generation interval in seconds. This is configurable (and required)\n only if recordingMode
is INTERVAL
. Default: 60.
\n \n Important: Setting a value for\n targetIntervalSeconds
does not guarantee that thumbnails are generated at the\n specified interval. For thumbnails to be generated at the targetIntervalSeconds
\n interval, the IDR/Keyframe
value for the input video must be less than the\n targetIntervalSeconds
value. See Amazon IVS Streaming Configuration\n for information on setting IDR/Keyframe
to the recommended value in video-encoder\n settings.
"
+ "smithy.api#documentation": "The targeted thumbnail-generation interval in seconds. This is configurable (and required)\n only if recordingMode
is INTERVAL
. Default: 60.
\n \n Important: For the BASIC
channel type,\n setting a value for targetIntervalSeconds
does not guarantee that thumbnails are\n generated at the specified interval. For thumbnails to be generated at the\n targetIntervalSeconds
interval, the IDR/Keyframe
value for the\n input video must be less than the targetIntervalSeconds
value. See Amazon IVS Streaming\n Configuration for information on setting IDR/Keyframe
to the\n recommended value in video-encoder settings.
"
+ }
+ },
+ "resolution": {
+ "target": "com.amazonaws.ivs#ThumbnailConfigurationResolution",
+ "traits": {
+ "smithy.api#documentation": "Indicates the desired resolution of recorded thumbnails. Thumbnails are recorded at the\n selected resolution if the corresponding rendition is available during the stream; otherwise,\n they are recorded at source resolution. For more information about resolution values and their\n corresponding height and width dimensions, see Auto-Record to Amazon S3. Default:\n Null (source resolution is returned).
"
+ }
+ },
+ "storage": {
+ "target": "com.amazonaws.ivs#ThumbnailConfigurationStorageList",
+ "traits": {
+ "smithy.api#documentation": "Indicates the format in which thumbnails are recorded. SEQUENTIAL
records all\n generated thumbnails in a serial manner, to the media/thumbnails directory.\n LATEST
saves the latest thumbnail in media/latest_thumbnail/thumb.jpg and\n overwrites it at the interval specified by targetIntervalSeconds
. You can enable\n both SEQUENTIAL
and LATEST
. Default: SEQUENTIAL
.
"
}
}
},
@@ -3961,6 +4068,50 @@
"smithy.api#documentation": "An object representing a configuration of thumbnails for recorded video.
"
}
},
+ "com.amazonaws.ivs#ThumbnailConfigurationResolution": {
+ "type": "string",
+ "traits": {
+ "smithy.api#enum": [
+ {
+ "value": "FULL_HD",
+ "name": "FULL_HD"
+ },
+ {
+ "value": "HD",
+ "name": "HD"
+ },
+ {
+ "value": "SD",
+ "name": "SD"
+ },
+ {
+ "value": "LOWEST_RESOLUTION",
+ "name": "LOWEST_RESOLUTION"
+ }
+ ]
+ }
+ },
+ "com.amazonaws.ivs#ThumbnailConfigurationStorage": {
+ "type": "string",
+ "traits": {
+ "smithy.api#enum": [
+ {
+ "value": "SEQUENTIAL",
+ "name": "SEQUENTIAL"
+ },
+ {
+ "value": "LATEST",
+ "name": "LATEST"
+ }
+ ]
+ }
+ },
+ "com.amazonaws.ivs#ThumbnailConfigurationStorageList": {
+ "type": "list",
+ "member": {
+ "target": "com.amazonaws.ivs#ThumbnailConfigurationStorage"
+ }
+ },
"com.amazonaws.ivs#Time": {
"type": "timestamp",
"traits": {