": "STRING_VALUE",
* // },
* // AvailabilityZone: "STRING_VALUE",
+ * // MedialiveInputArns: [
+ * // "STRING_VALUE",
+ * // ],
+ * // OutputType: "NONE" || "MEDIALIVE_INPUT" || "MEDIACONNECT_FLOW",
* // },
* // ],
* // NextToken: "STRING_VALUE",
diff --git a/clients/client-medialive/src/commands/ListMultiplexProgramsCommand.ts b/clients/client-medialive/src/commands/ListMultiplexProgramsCommand.ts
index 8d5fd64a35ba5..7924a2486442f 100644
--- a/clients/client-medialive/src/commands/ListMultiplexProgramsCommand.ts
+++ b/clients/client-medialive/src/commands/ListMultiplexProgramsCommand.ts
@@ -14,7 +14,7 @@ import {
} from "@smithy/types";
import { MediaLiveClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../MediaLiveClient";
-import { ListMultiplexProgramsRequest, ListMultiplexProgramsResponse } from "../models/models_1";
+import { ListMultiplexProgramsRequest, ListMultiplexProgramsResponse } from "../models/models_2";
import { de_ListMultiplexProgramsCommand, se_ListMultiplexProgramsCommand } from "../protocols/Aws_restJson1";
/**
diff --git a/clients/client-medialive/src/commands/ListMultiplexesCommand.ts b/clients/client-medialive/src/commands/ListMultiplexesCommand.ts
index 31137bd44119e..48736b2a69db7 100644
--- a/clients/client-medialive/src/commands/ListMultiplexesCommand.ts
+++ b/clients/client-medialive/src/commands/ListMultiplexesCommand.ts
@@ -14,7 +14,8 @@ import {
} from "@smithy/types";
import { MediaLiveClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../MediaLiveClient";
-import { ListMultiplexesRequest, ListMultiplexesResponse } from "../models/models_1";
+import { ListMultiplexesRequest } from "../models/models_1";
+import { ListMultiplexesResponse } from "../models/models_2";
import { de_ListMultiplexesCommand, se_ListMultiplexesCommand } from "../protocols/Aws_restJson1";
/**
diff --git a/clients/client-medialive/src/commands/ListOfferingsCommand.ts b/clients/client-medialive/src/commands/ListOfferingsCommand.ts
index cfd00c8512e34..00f846adf766a 100644
--- a/clients/client-medialive/src/commands/ListOfferingsCommand.ts
+++ b/clients/client-medialive/src/commands/ListOfferingsCommand.ts
@@ -14,8 +14,7 @@ import {
} from "@smithy/types";
import { MediaLiveClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../MediaLiveClient";
-import { ListOfferingsRequest } from "../models/models_1";
-import { ListOfferingsResponse } from "../models/models_2";
+import { ListOfferingsRequest, ListOfferingsResponse } from "../models/models_2";
import { de_ListOfferingsCommand, se_ListOfferingsCommand } from "../protocols/Aws_restJson1";
/**
diff --git a/clients/client-medialive/src/commands/StartInputDeviceCommand.ts b/clients/client-medialive/src/commands/StartInputDeviceCommand.ts
new file mode 100644
index 0000000000000..7d0d75e842f9e
--- /dev/null
+++ b/clients/client-medialive/src/commands/StartInputDeviceCommand.ts
@@ -0,0 +1,164 @@
+// smithy-typescript generated code
+import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint";
+import { getSerdePlugin } from "@smithy/middleware-serde";
+import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http";
+import { Command as $Command } from "@smithy/smithy-client";
+import {
+ FinalizeHandlerArguments,
+ Handler,
+ HandlerExecutionContext,
+ HttpHandlerOptions as __HttpHandlerOptions,
+ MetadataBearer as __MetadataBearer,
+ MiddlewareStack,
+ SerdeContext as __SerdeContext,
+} from "@smithy/types";
+
+import { MediaLiveClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../MediaLiveClient";
+import { StartInputDeviceRequest, StartInputDeviceResponse } from "../models/models_2";
+import { de_StartInputDeviceCommand, se_StartInputDeviceCommand } from "../protocols/Aws_restJson1";
+
+/**
+ * @public
+ */
+export { __MetadataBearer, $Command };
+/**
+ * @public
+ *
+ * The input for {@link StartInputDeviceCommand}.
+ */
+export interface StartInputDeviceCommandInput extends StartInputDeviceRequest {}
+/**
+ * @public
+ *
+ * The output of {@link StartInputDeviceCommand}.
+ */
+export interface StartInputDeviceCommandOutput extends StartInputDeviceResponse, __MetadataBearer {}
+
+/**
+ * @public
+ * Start an input device that is attached to a MediaConnect flow. (There is no need to start a device that is attached to a MediaLive input; MediaLive starts the device when the channel starts.)
+ * @example
+ * Use a bare-bones client and the command you need to make an API call.
+ * ```javascript
+ * import { MediaLiveClient, StartInputDeviceCommand } from "@aws-sdk/client-medialive"; // ES Modules import
+ * // const { MediaLiveClient, StartInputDeviceCommand } = require("@aws-sdk/client-medialive"); // CommonJS import
+ * const client = new MediaLiveClient(config);
+ * const input = { // StartInputDeviceRequest
+ * InputDeviceId: "STRING_VALUE", // required
+ * };
+ * const command = new StartInputDeviceCommand(input);
+ * const response = await client.send(command);
+ * // {};
+ *
+ * ```
+ *
+ * @param StartInputDeviceCommandInput - {@link StartInputDeviceCommandInput}
+ * @returns {@link StartInputDeviceCommandOutput}
+ * @see {@link StartInputDeviceCommandInput} for command's `input` shape.
+ * @see {@link StartInputDeviceCommandOutput} for command's `response` shape.
+ * @see {@link MediaLiveClientResolvedConfig | config} for MediaLiveClient's `config` shape.
+ *
+ * @throws {@link BadGatewayException} (server fault)
+ * Placeholder documentation for BadGatewayException
+ *
+ * @throws {@link BadRequestException} (client fault)
+ * Placeholder documentation for BadRequestException
+ *
+ * @throws {@link ForbiddenException} (client fault)
+ * Placeholder documentation for ForbiddenException
+ *
+ * @throws {@link GatewayTimeoutException} (server fault)
+ * Placeholder documentation for GatewayTimeoutException
+ *
+ * @throws {@link InternalServerErrorException} (server fault)
+ * Placeholder documentation for InternalServerErrorException
+ *
+ * @throws {@link NotFoundException} (client fault)
+ * Placeholder documentation for NotFoundException
+ *
+ * @throws {@link TooManyRequestsException} (client fault)
+ * Placeholder documentation for TooManyRequestsException
+ *
+ * @throws {@link UnprocessableEntityException} (client fault)
+ * Placeholder documentation for UnprocessableEntityException
+ *
+ * @throws {@link MediaLiveServiceException}
+ * Base exception class for all service exceptions from MediaLive service.
+ *
+ */
+export class StartInputDeviceCommand extends $Command<
+ StartInputDeviceCommandInput,
+ StartInputDeviceCommandOutput,
+ MediaLiveClientResolvedConfig
+> {
+ // Start section: command_properties
+ // End section: command_properties
+
+ public static getEndpointParameterInstructions(): EndpointParameterInstructions {
+ return {
+ UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" },
+ Endpoint: { type: "builtInParams", name: "endpoint" },
+ Region: { type: "builtInParams", name: "region" },
+ UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" },
+ };
+ }
+
+ /**
+ * @public
+ */
+ constructor(readonly input: StartInputDeviceCommandInput) {
+ // Start section: command_constructor
+ super();
+ // End section: command_constructor
+ }
+
+ /**
+ * @internal
+ */
+ resolveMiddleware(
+ clientStack: MiddlewareStack,
+ configuration: MediaLiveClientResolvedConfig,
+ options?: __HttpHandlerOptions
+ ): Handler {
+ this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));
+ this.middlewareStack.use(
+ getEndpointPlugin(configuration, StartInputDeviceCommand.getEndpointParameterInstructions())
+ );
+
+ const stack = clientStack.concat(this.middlewareStack);
+
+ const { logger } = configuration;
+ const clientName = "MediaLiveClient";
+ const commandName = "StartInputDeviceCommand";
+ const handlerExecutionContext: HandlerExecutionContext = {
+ logger,
+ clientName,
+ commandName,
+ inputFilterSensitiveLog: (_: any) => _,
+ outputFilterSensitiveLog: (_: any) => _,
+ };
+ const { requestHandler } = configuration;
+ return stack.resolve(
+ (request: FinalizeHandlerArguments) =>
+ requestHandler.handle(request.request as __HttpRequest, options || {}),
+ handlerExecutionContext
+ );
+ }
+
+ /**
+ * @internal
+ */
+ private serialize(input: StartInputDeviceCommandInput, context: __SerdeContext): Promise<__HttpRequest> {
+ return se_StartInputDeviceCommand(input, context);
+ }
+
+ /**
+ * @internal
+ */
+ private deserialize(output: __HttpResponse, context: __SerdeContext): Promise {
+ return de_StartInputDeviceCommand(output, context);
+ }
+
+ // Start section: command_body_extra
+ // End section: command_body_extra
+}
diff --git a/clients/client-medialive/src/commands/StopInputDeviceCommand.ts b/clients/client-medialive/src/commands/StopInputDeviceCommand.ts
new file mode 100644
index 0000000000000..fd07ba16d7071
--- /dev/null
+++ b/clients/client-medialive/src/commands/StopInputDeviceCommand.ts
@@ -0,0 +1,164 @@
+// smithy-typescript generated code
+import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint";
+import { getSerdePlugin } from "@smithy/middleware-serde";
+import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http";
+import { Command as $Command } from "@smithy/smithy-client";
+import {
+ FinalizeHandlerArguments,
+ Handler,
+ HandlerExecutionContext,
+ HttpHandlerOptions as __HttpHandlerOptions,
+ MetadataBearer as __MetadataBearer,
+ MiddlewareStack,
+ SerdeContext as __SerdeContext,
+} from "@smithy/types";
+
+import { MediaLiveClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../MediaLiveClient";
+import { StopInputDeviceRequest, StopInputDeviceResponse } from "../models/models_2";
+import { de_StopInputDeviceCommand, se_StopInputDeviceCommand } from "../protocols/Aws_restJson1";
+
+/**
+ * @public
+ */
+export { __MetadataBearer, $Command };
+/**
+ * @public
+ *
+ * The input for {@link StopInputDeviceCommand}.
+ */
+export interface StopInputDeviceCommandInput extends StopInputDeviceRequest {}
+/**
+ * @public
+ *
+ * The output of {@link StopInputDeviceCommand}.
+ */
+export interface StopInputDeviceCommandOutput extends StopInputDeviceResponse, __MetadataBearer {}
+
+/**
+ * @public
+ * Stop an input device that is attached to a MediaConnect flow. (There is no need to stop a device that is attached to a MediaLive input; MediaLive automatically stops the device when the channel stops.)
+ * @example
+ * Use a bare-bones client and the command you need to make an API call.
+ * ```javascript
+ * import { MediaLiveClient, StopInputDeviceCommand } from "@aws-sdk/client-medialive"; // ES Modules import
+ * // const { MediaLiveClient, StopInputDeviceCommand } = require("@aws-sdk/client-medialive"); // CommonJS import
+ * const client = new MediaLiveClient(config);
+ * const input = { // StopInputDeviceRequest
+ * InputDeviceId: "STRING_VALUE", // required
+ * };
+ * const command = new StopInputDeviceCommand(input);
+ * const response = await client.send(command);
+ * // {};
+ *
+ * ```
+ *
+ * @param StopInputDeviceCommandInput - {@link StopInputDeviceCommandInput}
+ * @returns {@link StopInputDeviceCommandOutput}
+ * @see {@link StopInputDeviceCommandInput} for command's `input` shape.
+ * @see {@link StopInputDeviceCommandOutput} for command's `response` shape.
+ * @see {@link MediaLiveClientResolvedConfig | config} for MediaLiveClient's `config` shape.
+ *
+ * @throws {@link BadGatewayException} (server fault)
+ * Placeholder documentation for BadGatewayException
+ *
+ * @throws {@link BadRequestException} (client fault)
+ * Placeholder documentation for BadRequestException
+ *
+ * @throws {@link ForbiddenException} (client fault)
+ * Placeholder documentation for ForbiddenException
+ *
+ * @throws {@link GatewayTimeoutException} (server fault)
+ * Placeholder documentation for GatewayTimeoutException
+ *
+ * @throws {@link InternalServerErrorException} (server fault)
+ * Placeholder documentation for InternalServerErrorException
+ *
+ * @throws {@link NotFoundException} (client fault)
+ * Placeholder documentation for NotFoundException
+ *
+ * @throws {@link TooManyRequestsException} (client fault)
+ * Placeholder documentation for TooManyRequestsException
+ *
+ * @throws {@link UnprocessableEntityException} (client fault)
+ * Placeholder documentation for UnprocessableEntityException
+ *
+ * @throws {@link MediaLiveServiceException}
+ * Base exception class for all service exceptions from MediaLive service.
+ *
+ */
+export class StopInputDeviceCommand extends $Command<
+ StopInputDeviceCommandInput,
+ StopInputDeviceCommandOutput,
+ MediaLiveClientResolvedConfig
+> {
+ // Start section: command_properties
+ // End section: command_properties
+
+ public static getEndpointParameterInstructions(): EndpointParameterInstructions {
+ return {
+ UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" },
+ Endpoint: { type: "builtInParams", name: "endpoint" },
+ Region: { type: "builtInParams", name: "region" },
+ UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" },
+ };
+ }
+
+ /**
+ * @public
+ */
+ constructor(readonly input: StopInputDeviceCommandInput) {
+ // Start section: command_constructor
+ super();
+ // End section: command_constructor
+ }
+
+ /**
+ * @internal
+ */
+ resolveMiddleware(
+ clientStack: MiddlewareStack,
+ configuration: MediaLiveClientResolvedConfig,
+ options?: __HttpHandlerOptions
+ ): Handler {
+ this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));
+ this.middlewareStack.use(
+ getEndpointPlugin(configuration, StopInputDeviceCommand.getEndpointParameterInstructions())
+ );
+
+ const stack = clientStack.concat(this.middlewareStack);
+
+ const { logger } = configuration;
+ const clientName = "MediaLiveClient";
+ const commandName = "StopInputDeviceCommand";
+ const handlerExecutionContext: HandlerExecutionContext = {
+ logger,
+ clientName,
+ commandName,
+ inputFilterSensitiveLog: (_: any) => _,
+ outputFilterSensitiveLog: (_: any) => _,
+ };
+ const { requestHandler } = configuration;
+ return stack.resolve(
+ (request: FinalizeHandlerArguments) =>
+ requestHandler.handle(request.request as __HttpRequest, options || {}),
+ handlerExecutionContext
+ );
+ }
+
+ /**
+ * @internal
+ */
+ private serialize(input: StopInputDeviceCommandInput, context: __SerdeContext): Promise<__HttpRequest> {
+ return se_StopInputDeviceCommand(input, context);
+ }
+
+ /**
+ * @internal
+ */
+ private deserialize(output: __HttpResponse, context: __SerdeContext): Promise {
+ return de_StopInputDeviceCommand(output, context);
+ }
+
+ // Start section: command_body_extra
+ // End section: command_body_extra
+}
diff --git a/clients/client-medialive/src/commands/UpdateInputDeviceCommand.ts b/clients/client-medialive/src/commands/UpdateInputDeviceCommand.ts
index 2979a1586f44e..773751b830ea2 100644
--- a/clients/client-medialive/src/commands/UpdateInputDeviceCommand.ts
+++ b/clients/client-medialive/src/commands/UpdateInputDeviceCommand.ts
@@ -48,6 +48,13 @@ export interface UpdateInputDeviceCommandOutput extends UpdateInputDeviceRespons
* ConfiguredInput: "AUTO" || "HDMI" || "SDI",
* MaxBitrate: Number("int"),
* LatencyMs: Number("int"),
+ * Codec: "HEVC" || "AVC",
+ * MediaconnectSettings: { // InputDeviceMediaConnectConfigurableSettings
+ * FlowArn: "STRING_VALUE",
+ * RoleArn: "STRING_VALUE",
+ * SecretArn: "STRING_VALUE",
+ * SourceName: "STRING_VALUE",
+ * },
* },
* InputDeviceId: "STRING_VALUE", // required
* Name: "STRING_VALUE",
@@ -55,6 +62,13 @@ export interface UpdateInputDeviceCommandOutput extends UpdateInputDeviceRespons
* ConfiguredInput: "AUTO" || "HDMI" || "SDI",
* MaxBitrate: Number("int"),
* LatencyMs: Number("int"),
+ * Codec: "HEVC" || "AVC",
+ * MediaconnectSettings: {
+ * FlowArn: "STRING_VALUE",
+ * RoleArn: "STRING_VALUE",
+ * SecretArn: "STRING_VALUE",
+ * SourceName: "STRING_VALUE",
+ * },
* },
* AvailabilityZone: "STRING_VALUE",
* };
@@ -100,11 +114,22 @@ export interface UpdateInputDeviceCommandOutput extends UpdateInputDeviceRespons
* // ScanType: "INTERLACED" || "PROGRESSIVE",
* // Width: Number("int"),
* // LatencyMs: Number("int"),
+ * // Codec: "HEVC" || "AVC",
+ * // MediaconnectSettings: { // InputDeviceMediaConnectSettings
+ * // FlowArn: "STRING_VALUE",
+ * // RoleArn: "STRING_VALUE",
+ * // SecretArn: "STRING_VALUE",
+ * // SourceName: "STRING_VALUE",
+ * // },
* // },
* // Tags: { // Tags
* // "": "STRING_VALUE",
* // },
* // AvailabilityZone: "STRING_VALUE",
+ * // MedialiveInputArns: [
+ * // "STRING_VALUE",
+ * // ],
+ * // OutputType: "NONE" || "MEDIALIVE_INPUT" || "MEDIACONNECT_FLOW",
* // };
*
* ```
diff --git a/clients/client-medialive/src/commands/index.ts b/clients/client-medialive/src/commands/index.ts
index cf41f64c58eae..b2c159c89531b 100644
--- a/clients/client-medialive/src/commands/index.ts
+++ b/clients/client-medialive/src/commands/index.ts
@@ -47,9 +47,11 @@ export * from "./PurchaseOfferingCommand";
export * from "./RebootInputDeviceCommand";
export * from "./RejectInputDeviceTransferCommand";
export * from "./StartChannelCommand";
+export * from "./StartInputDeviceCommand";
export * from "./StartInputDeviceMaintenanceWindowCommand";
export * from "./StartMultiplexCommand";
export * from "./StopChannelCommand";
+export * from "./StopInputDeviceCommand";
export * from "./StopMultiplexCommand";
export * from "./TransferInputDeviceCommand";
export * from "./UpdateAccountConfigurationCommand";
diff --git a/clients/client-medialive/src/models/models_0.ts b/clients/client-medialive/src/models/models_0.ts
index ae6b1cd51dcea..febdd22626fee 100644
--- a/clients/client-medialive/src/models/models_0.ts
+++ b/clients/client-medialive/src/models/models_0.ts
@@ -4055,6 +4055,21 @@ export interface InputDeviceNetworkSettings {
SubnetMask?: string;
}
+/**
+ * @public
+ * @enum
+ */
+export const InputDeviceOutputType = {
+ MEDIACONNECT_FLOW: "MEDIACONNECT_FLOW",
+ MEDIALIVE_INPUT: "MEDIALIVE_INPUT",
+ NONE: "NONE",
+} as const;
+
+/**
+ * @public
+ */
+export type InputDeviceOutputType = (typeof InputDeviceOutputType)[keyof typeof InputDeviceOutputType];
+
/**
* @public
* @enum
@@ -4069,6 +4084,50 @@ export const InputDeviceType = {
*/
export type InputDeviceType = (typeof InputDeviceType)[keyof typeof InputDeviceType];
+/**
+ * @public
+ * @enum
+ */
+export const InputDeviceCodec = {
+ AVC: "AVC",
+ HEVC: "HEVC",
+} as const;
+
+/**
+ * @public
+ */
+export type InputDeviceCodec = (typeof InputDeviceCodec)[keyof typeof InputDeviceCodec];
+
+/**
+ * @public
+ * Information about the MediaConnect flow attached to the device.
+ */
+export interface InputDeviceMediaConnectSettings {
+ /**
+ * @public
+ * The ARN of the MediaConnect flow.
+ */
+ FlowArn?: string;
+
+ /**
+ * @public
+ * The ARN for the role that MediaLive assumes to access the attached flow and secret.
+ */
+ RoleArn?: string;
+
+ /**
+ * @public
+ * The ARN of the secret used to encrypt the stream.
+ */
+ SecretArn?: string;
+
+ /**
+ * @public
+ * The name of the MediaConnect flow source.
+ */
+ SourceName?: string;
+}
+
/**
* @public
* Settings that describe the active source from the input device, and the video characteristics of that source.
@@ -4127,6 +4186,18 @@ export interface InputDeviceUhdSettings {
* The Link device's buffer size (latency) in milliseconds (ms). You can specify this value.
*/
LatencyMs?: number;
+
+ /**
+ * @public
+ * The codec for the video that the device produces.
+ */
+ Codec?: InputDeviceCodec | string;
+
+ /**
+ * @public
+ * Information about the MediaConnect flow attached to the device. Returned only if the outputType is MEDIACONNECT_FLOW.
+ */
+ MediaconnectSettings?: InputDeviceMediaConnectSettings;
}
/**
@@ -4217,6 +4288,18 @@ export interface InputDeviceSummary {
* The Availability Zone associated with this input device.
*/
AvailabilityZone?: string;
+
+ /**
+ * @public
+ * An array of the ARNs for the MediaLive inputs attached to the device. Returned only if the outputType is MEDIALIVE_INPUT.
+ */
+ MedialiveInputArns?: string[];
+
+ /**
+ * @public
+ * The output attachment type of the input device. Specifies MEDIACONNECT_FLOW if this device is the source for a MediaConnect flow. Specifies MEDIALIVE_INPUT if this device is the source for a MediaLive input.
+ */
+ OutputType?: InputDeviceOutputType | string;
}
/**
@@ -6656,47 +6739,3 @@ export const HlsIvInManifest = {
* @public
*/
export type HlsIvInManifest = (typeof HlsIvInManifest)[keyof typeof HlsIvInManifest];
-
-/**
- * @public
- * @enum
- */
-export const HlsIvSource = {
- EXPLICIT: "EXPLICIT",
- FOLLOWS_SEGMENT_NUMBER: "FOLLOWS_SEGMENT_NUMBER",
-} as const;
-
-/**
- * @public
- */
-export type HlsIvSource = (typeof HlsIvSource)[keyof typeof HlsIvSource];
-
-/**
- * @public
- * Static Key Settings
- */
-export interface StaticKeySettings {
- /**
- * @public
- * The URL of the license server used for protecting content.
- */
- KeyProviderServer?: InputLocation;
-
- /**
- * @public
- * Static key value as a 32 character hexadecimal string.
- */
- StaticKeyValue: string | undefined;
-}
-
-/**
- * @public
- * Key Provider Settings
- */
-export interface KeyProviderSettings {
- /**
- * @public
- * Static Key Settings
- */
- StaticKeySettings?: StaticKeySettings;
-}
diff --git a/clients/client-medialive/src/models/models_1.ts b/clients/client-medialive/src/models/models_1.ts
index 665651a81d237..7fa9dc6f27b5a 100644
--- a/clients/client-medialive/src/models/models_1.ts
+++ b/clients/client-medialive/src/models/models_1.ts
@@ -30,17 +30,18 @@ import {
HlsId3SegmentTaggingState,
HlsIncompleteSegmentBehavior,
HlsIvInManifest,
- HlsIvSource,
IFrameOnlyPlaylistType,
Input,
InputAttachment,
InputClass,
InputDestination,
InputDestinationRequest,
+ InputDeviceCodec,
InputDeviceConfiguredInput,
InputDeviceConnectionState,
InputDeviceHdSettings,
InputDeviceNetworkSettings,
+ InputDeviceOutputType,
InputDeviceSettings,
InputDeviceSummary,
InputDeviceType,
@@ -57,7 +58,6 @@ import {
InputType,
InputWhitelistRule,
InputWhitelistRuleCidr,
- KeyProviderSettings,
LogLevel,
MaintenanceDay,
MaintenanceStatus,
@@ -65,9 +65,7 @@ import {
MediaConnectFlowRequest,
MultiplexOutputDestination,
MultiplexProgramPipelineDetail,
- MultiplexProgramSummary,
MultiplexState,
- MultiplexSummary,
OfferingDurationUnits,
OfferingType,
Output,
@@ -77,6 +75,50 @@ import {
VpcOutputSettingsDescription,
} from "./models_0";
+/**
+ * @public
+ * @enum
+ */
+export const HlsIvSource = {
+ EXPLICIT: "EXPLICIT",
+ FOLLOWS_SEGMENT_NUMBER: "FOLLOWS_SEGMENT_NUMBER",
+} as const;
+
+/**
+ * @public
+ */
+export type HlsIvSource = (typeof HlsIvSource)[keyof typeof HlsIvSource];
+
+/**
+ * @public
+ * Static Key Settings
+ */
+export interface StaticKeySettings {
+ /**
+ * @public
+ * The URL of the license server used for protecting content.
+ */
+ KeyProviderServer?: InputLocation;
+
+ /**
+ * @public
+ * Static key value as a 32 character hexadecimal string.
+ */
+ StaticKeyValue: string | undefined;
+}
+
+/**
+ * @public
+ * Key Provider Settings
+ */
+export interface KeyProviderSettings {
+ /**
+ * @public
+ * Static Key Settings
+ */
+ StaticKeySettings?: StaticKeySettings;
+}
+
/**
* @public
* @enum
@@ -6878,6 +6920,18 @@ export interface DescribeInputDeviceResponse {
* The Availability Zone associated with this input device.
*/
AvailabilityZone?: string;
+
+ /**
+ * @public
+ * An array of the ARNs for the MediaLive inputs attached to the device. Returned only if the outputType is MEDIALIVE_INPUT.
+ */
+ MedialiveInputArns?: string[];
+
+ /**
+ * @public
+ * The output attachment type of the input device. Specifies MEDIACONNECT_FLOW if this device is the source for a MediaConnect flow. Specifies MEDIALIVE_INPUT if this device is the source for a MediaLive input.
+ */
+ OutputType?: InputDeviceOutputType | string;
}
/**
@@ -7414,6 +7468,36 @@ export interface DescribeThumbnailsResponse {
ThumbnailDetails?: ThumbnailDetail[];
}
+/**
+ * @public
+ * Parameters required to attach a MediaConnect flow to the device.
+ */
+export interface InputDeviceMediaConnectConfigurableSettings {
+ /**
+ * @public
+ * The ARN of the MediaConnect flow to attach this device to.
+ */
+ FlowArn?: string;
+
+ /**
+ * @public
+ * The ARN for the role that MediaLive assumes to access the attached flow and secret. For more information about how to create this role, see the MediaLive user guide.
+ */
+ RoleArn?: string;
+
+ /**
+ * @public
+ * The ARN for the secret that holds the encryption key to encrypt the content output by the device.
+ */
+ SecretArn?: string;
+
+ /**
+ * @public
+ * The name of the MediaConnect Flow source to stream to.
+ */
+ SourceName?: string;
+}
+
/**
* @public
* Configurable settings for the input device.
@@ -7436,6 +7520,18 @@ export interface InputDeviceConfigurableSettings {
* The Link device's buffer size (latency) in milliseconds (ms).
*/
LatencyMs?: number;
+
+ /**
+ * @public
+ * Choose the codec for the video that the device produces. Only UHD devices can specify this parameter.
+ */
+ Codec?: InputDeviceCodec | string;
+
+ /**
+ * @public
+ * To attach this device to a MediaConnect flow, specify these parameters. To detach an existing flow, enter \{\} for the value of mediaconnectSettings. Only UHD devices can specify this parameter.
+ */
+ MediaconnectSettings?: InputDeviceMediaConnectConfigurableSettings;
}
/**
@@ -7642,144 +7738,6 @@ export interface ListMultiplexesRequest {
NextToken?: string;
}
-/**
- * @public
- * Placeholder documentation for ListMultiplexesResponse
- */
-export interface ListMultiplexesResponse {
- /**
- * @public
- * List of multiplexes.
- */
- Multiplexes?: MultiplexSummary[];
-
- /**
- * @public
- * Token for the next ListMultiplexes request.
- */
- NextToken?: string;
-}
-
-/**
- * @public
- * Placeholder documentation for ListMultiplexProgramsRequest
- */
-export interface ListMultiplexProgramsRequest {
- /**
- * @public
- * The maximum number of items to return.
- */
- MaxResults?: number;
-
- /**
- * @public
- * The ID of the multiplex that the programs belong to.
- */
- MultiplexId: string | undefined;
-
- /**
- * @public
- * The token to retrieve the next page of results.
- */
- NextToken?: string;
-}
-
-/**
- * @public
- * Placeholder documentation for ListMultiplexProgramsResponse
- */
-export interface ListMultiplexProgramsResponse {
- /**
- * @public
- * List of multiplex programs.
- */
- MultiplexPrograms?: MultiplexProgramSummary[];
-
- /**
- * @public
- * Token for the next ListMultiplexProgram request.
- */
- NextToken?: string;
-}
-
-/**
- * @public
- * Placeholder documentation for ListOfferingsRequest
- */
-export interface ListOfferingsRequest {
- /**
- * @public
- * Filter by channel class, 'STANDARD' or 'SINGLE_PIPELINE'
- */
- ChannelClass?: string;
-
- /**
- * @public
- * Filter to offerings that match the configuration of an existing channel, e.g. '2345678' (a channel ID)
- */
- ChannelConfiguration?: string;
-
- /**
- * @public
- * Filter by codec, 'AVC', 'HEVC', 'MPEG2', 'AUDIO', or 'LINK'
- */
- Codec?: string;
-
- /**
- * @public
- * Filter by offering duration, e.g. '12'
- */
- Duration?: string;
-
- /**
- * @public
- * Placeholder documentation for MaxResults
- */
- MaxResults?: number;
-
- /**
- * @public
- * Filter by bitrate, 'MAX_10_MBPS', 'MAX_20_MBPS', or 'MAX_50_MBPS'
- */
- MaximumBitrate?: string;
-
- /**
- * @public
- * Filter by framerate, 'MAX_30_FPS' or 'MAX_60_FPS'
- */
- MaximumFramerate?: string;
-
- /**
- * @public
- * Placeholder documentation for __string
- */
- NextToken?: string;
-
- /**
- * @public
- * Filter by resolution, 'SD', 'HD', 'FHD', or 'UHD'
- */
- Resolution?: string;
-
- /**
- * @public
- * Filter by resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'
- */
- ResourceType?: string;
-
- /**
- * @public
- * Filter by special feature, 'ADVANCED_AUDIO' or 'AUDIO_NORMALIZATION'
- */
- SpecialFeature?: string;
-
- /**
- * @public
- * Filter by video quality, 'STANDARD', 'ENHANCED', or 'PREMIUM'
- */
- VideoQuality?: string;
-}
-
/**
* @internal
*/
diff --git a/clients/client-medialive/src/models/models_2.ts b/clients/client-medialive/src/models/models_2.ts
index c5e10b25b6111..a2d64c1b0860b 100644
--- a/clients/client-medialive/src/models/models_2.ts
+++ b/clients/client-medialive/src/models/models_2.ts
@@ -12,6 +12,7 @@ import {
InputDeviceConnectionState,
InputDeviceHdSettings,
InputDeviceNetworkSettings,
+ InputDeviceOutputType,
InputDeviceRequest,
InputDeviceType,
InputDeviceUhdSettings,
@@ -24,7 +25,9 @@ import {
MaintenanceStatus,
MediaConnectFlowRequest,
MultiplexOutputDestination,
+ MultiplexProgramSummary,
MultiplexState,
+ MultiplexSummary,
Offering,
OutputDestination,
VpcOutputSettingsDescription,
@@ -43,6 +46,144 @@ import {
Reservation,
} from "./models_1";
+/**
+ * @public
+ * Placeholder documentation for ListMultiplexesResponse
+ */
+export interface ListMultiplexesResponse {
+ /**
+ * @public
+ * List of multiplexes.
+ */
+ Multiplexes?: MultiplexSummary[];
+
+ /**
+ * @public
+ * Token for the next ListMultiplexes request.
+ */
+ NextToken?: string;
+}
+
+/**
+ * @public
+ * Placeholder documentation for ListMultiplexProgramsRequest
+ */
+export interface ListMultiplexProgramsRequest {
+ /**
+ * @public
+ * The maximum number of items to return.
+ */
+ MaxResults?: number;
+
+ /**
+ * @public
+ * The ID of the multiplex that the programs belong to.
+ */
+ MultiplexId: string | undefined;
+
+ /**
+ * @public
+ * The token to retrieve the next page of results.
+ */
+ NextToken?: string;
+}
+
+/**
+ * @public
+ * Placeholder documentation for ListMultiplexProgramsResponse
+ */
+export interface ListMultiplexProgramsResponse {
+ /**
+ * @public
+ * List of multiplex programs.
+ */
+ MultiplexPrograms?: MultiplexProgramSummary[];
+
+ /**
+ * @public
+ * Token for the next ListMultiplexProgram request.
+ */
+ NextToken?: string;
+}
+
+/**
+ * @public
+ * Placeholder documentation for ListOfferingsRequest
+ */
+export interface ListOfferingsRequest {
+ /**
+ * @public
+ * Filter by channel class, 'STANDARD' or 'SINGLE_PIPELINE'
+ */
+ ChannelClass?: string;
+
+ /**
+ * @public
+ * Filter to offerings that match the configuration of an existing channel, e.g. '2345678' (a channel ID)
+ */
+ ChannelConfiguration?: string;
+
+ /**
+ * @public
+ * Filter by codec, 'AVC', 'HEVC', 'MPEG2', 'AUDIO', or 'LINK'
+ */
+ Codec?: string;
+
+ /**
+ * @public
+ * Filter by offering duration, e.g. '12'
+ */
+ Duration?: string;
+
+ /**
+ * @public
+ * Placeholder documentation for MaxResults
+ */
+ MaxResults?: number;
+
+ /**
+ * @public
+ * Filter by bitrate, 'MAX_10_MBPS', 'MAX_20_MBPS', or 'MAX_50_MBPS'
+ */
+ MaximumBitrate?: string;
+
+ /**
+ * @public
+ * Filter by framerate, 'MAX_30_FPS' or 'MAX_60_FPS'
+ */
+ MaximumFramerate?: string;
+
+ /**
+ * @public
+ * Placeholder documentation for __string
+ */
+ NextToken?: string;
+
+ /**
+ * @public
+ * Filter by resolution, 'SD', 'HD', 'FHD', or 'UHD'
+ */
+ Resolution?: string;
+
+ /**
+ * @public
+ * Filter by resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'
+ */
+ ResourceType?: string;
+
+ /**
+ * @public
+ * Filter by special feature, 'ADVANCED_AUDIO' or 'AUDIO_NORMALIZATION'
+ */
+ SpecialFeature?: string;
+
+ /**
+ * @public
+ * Filter by video quality, 'STANDARD', 'ENHANCED', or 'PREMIUM'
+ */
+ VideoQuality?: string;
+}
+
/**
* @public
* Placeholder documentation for ListOfferingsResponse
@@ -437,6 +578,24 @@ export interface StartChannelResponse {
Vpc?: VpcOutputSettingsDescription;
}
+/**
+ * @public
+ * Placeholder documentation for StartInputDeviceRequest
+ */
+export interface StartInputDeviceRequest {
+ /**
+ * @public
+ * The unique ID of the input device to reboot. For example, hd-123456789abcdef.
+ */
+ InputDeviceId: string | undefined;
+}
+
+/**
+ * @public
+ * Placeholder documentation for StartInputDeviceResponse
+ */
+export interface StartInputDeviceResponse {}
+
/**
* @public
* Placeholder documentation for StartInputDeviceMaintenanceWindowRequest
@@ -661,6 +820,24 @@ export interface StopChannelResponse {
Vpc?: VpcOutputSettingsDescription;
}
+/**
+ * @public
+ * Placeholder documentation for StopInputDeviceRequest
+ */
+export interface StopInputDeviceRequest {
+ /**
+ * @public
+ * The unique ID of the input device to reboot. For example, hd-123456789abcdef.
+ */
+ InputDeviceId: string | undefined;
+}
+
+/**
+ * @public
+ * Placeholder documentation for StopInputDeviceResponse
+ */
+export interface StopInputDeviceResponse {}
+
/**
* @public
* Placeholder documentation for StopMultiplexRequest
@@ -1107,6 +1284,18 @@ export interface UpdateInputDeviceResponse {
* The Availability Zone associated with this input device.
*/
AvailabilityZone?: string;
+
+ /**
+ * @public
+ * An array of the ARNs for the MediaLive inputs attached to the device. Returned only if the outputType is MEDIALIVE_INPUT.
+ */
+ MedialiveInputArns?: string[];
+
+ /**
+ * @public
+ * The output attachment type of the input device. Specifies MEDIACONNECT_FLOW if this device is the source for a MediaConnect flow. Specifies MEDIALIVE_INPUT if this device is the source for a MediaLive input.
+ */
+ OutputType?: InputDeviceOutputType | string;
}
/**
diff --git a/clients/client-medialive/src/protocols/Aws_restJson1.ts b/clients/client-medialive/src/protocols/Aws_restJson1.ts
index 2fedb87133e4f..9e5850f3bb2ca 100644
--- a/clients/client-medialive/src/protocols/Aws_restJson1.ts
+++ b/clients/client-medialive/src/protocols/Aws_restJson1.ts
@@ -130,12 +130,14 @@ import {
RejectInputDeviceTransferCommandOutput,
} from "../commands/RejectInputDeviceTransferCommand";
import { StartChannelCommandInput, StartChannelCommandOutput } from "../commands/StartChannelCommand";
+import { StartInputDeviceCommandInput, StartInputDeviceCommandOutput } from "../commands/StartInputDeviceCommand";
import {
StartInputDeviceMaintenanceWindowCommandInput,
StartInputDeviceMaintenanceWindowCommandOutput,
} from "../commands/StartInputDeviceMaintenanceWindowCommand";
import { StartMultiplexCommandInput, StartMultiplexCommandOutput } from "../commands/StartMultiplexCommand";
import { StopChannelCommandInput, StopChannelCommandOutput } from "../commands/StopChannelCommand";
+import { StopInputDeviceCommandInput, StopInputDeviceCommandOutput } from "../commands/StopInputDeviceCommand";
import { StopMultiplexCommandInput, StopMultiplexCommandOutput } from "../commands/StopMultiplexCommand";
import {
TransferInputDeviceCommandInput,
@@ -237,6 +239,7 @@ import {
InputDestinationRequest,
InputDestinationVpc,
InputDeviceHdSettings,
+ InputDeviceMediaConnectSettings,
InputDeviceNetworkSettings,
InputDeviceRequest,
InputDeviceSettings,
@@ -251,7 +254,6 @@ import {
InputSpecification,
InputWhitelistRule,
InputWhitelistRuleCidr,
- KeyProviderSettings,
M2tsSettings,
M3u8Settings,
MaintenanceStatus,
@@ -291,7 +293,6 @@ import {
Scte27SourceSettings,
SmpteTtDestinationSettings,
StandardHlsSettings,
- StaticKeySettings,
TeletextDestinationSettings,
TeletextSourceSettings,
TtmlDestinationSettings,
@@ -346,11 +347,13 @@ import {
ImmediateModeScheduleActionStartSettings,
InputClippingSettings,
InputDeviceConfigurableSettings,
+ InputDeviceMediaConnectConfigurableSettings,
InputLossBehavior,
InputPrepareScheduleActionSettings,
InputSwitchScheduleActionSettings,
InputVpcRequest,
InternalServerErrorException,
+ KeyProviderSettings,
MaintenanceCreateSettings,
MediaPackageGroupSettings,
MotionGraphicsActivateScheduleActionSettings,
@@ -400,6 +403,7 @@ import {
StartTimecode,
StaticImageActivateScheduleActionSettings,
StaticImageDeactivateScheduleActionSettings,
+ StaticKeySettings,
StopTimecode,
TemporalFilterSettings,
Thumbnail,
@@ -1838,6 +1842,37 @@ export const se_StartChannelCommand = async (
});
};
+/**
+ * serializeAws_restJson1StartInputDeviceCommand
+ */
+export const se_StartInputDeviceCommand = async (
+ input: StartInputDeviceCommandInput,
+ context: __SerdeContext
+): Promise<__HttpRequest> => {
+ const { hostname, protocol = "https", port, path: basePath } = await context.endpoint();
+ const headers: any = {};
+ let resolvedPath =
+ `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/prod/inputDevices/{InputDeviceId}/start";
+ resolvedPath = __resolvedPath(
+ resolvedPath,
+ input,
+ "InputDeviceId",
+ () => input.InputDeviceId!,
+ "{InputDeviceId}",
+ false
+ );
+ let body: any;
+ return new __HttpRequest({
+ protocol,
+ hostname,
+ port,
+ method: "POST",
+ headers,
+ path: resolvedPath,
+ body,
+ });
+};
+
/**
* serializeAws_restJson1StartInputDeviceMaintenanceWindowCommand
*/
@@ -1918,6 +1953,37 @@ export const se_StopChannelCommand = async (
});
};
+/**
+ * serializeAws_restJson1StopInputDeviceCommand
+ */
+export const se_StopInputDeviceCommand = async (
+ input: StopInputDeviceCommandInput,
+ context: __SerdeContext
+): Promise<__HttpRequest> => {
+ const { hostname, protocol = "https", port, path: basePath } = await context.endpoint();
+ const headers: any = {};
+ let resolvedPath =
+ `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/prod/inputDevices/{InputDeviceId}/stop";
+ resolvedPath = __resolvedPath(
+ resolvedPath,
+ input,
+ "InputDeviceId",
+ () => input.InputDeviceId!,
+ "{InputDeviceId}",
+ false
+ );
+ let body: any;
+ return new __HttpRequest({
+ protocol,
+ hostname,
+ port,
+ method: "POST",
+ headers,
+ path: resolvedPath,
+ body,
+ });
+};
+
/**
* serializeAws_restJson1StopMultiplexCommand
*/
@@ -4026,8 +4092,10 @@ export const de_DescribeInputDeviceCommand = async (
HdDeviceSettings: [, (_) => de_InputDeviceHdSettings(_, context), `hdDeviceSettings`],
Id: [, __expectString, `id`],
MacAddress: [, __expectString, `macAddress`],
+ MedialiveInputArns: [, _json, `medialiveInputArns`],
Name: [, __expectString, `name`],
NetworkSettings: [, (_) => de_InputDeviceNetworkSettings(_, context), `networkSettings`],
+ OutputType: [, __expectString, `outputType`],
SerialNumber: [, __expectString, `serialNumber`],
Tags: [, _json, `tags`],
Type: [, __expectString, `type`],
@@ -5572,6 +5640,70 @@ const de_StartChannelCommandError = async (
}
};
+/**
+ * deserializeAws_restJson1StartInputDeviceCommand
+ */
+export const de_StartInputDeviceCommand = async (
+ output: __HttpResponse,
+ context: __SerdeContext
+): Promise => {
+ if (output.statusCode !== 200 && output.statusCode >= 300) {
+ return de_StartInputDeviceCommandError(output, context);
+ }
+ const contents: any = map({
+ $metadata: deserializeMetadata(output),
+ });
+ await collectBody(output.body, context);
+ return contents;
+};
+
+/**
+ * deserializeAws_restJson1StartInputDeviceCommandError
+ */
+const de_StartInputDeviceCommandError = async (
+ output: __HttpResponse,
+ context: __SerdeContext
+): Promise => {
+ const parsedOutput: any = {
+ ...output,
+ body: await parseErrorBody(output.body, context),
+ };
+ const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);
+ switch (errorCode) {
+ case "BadGatewayException":
+ case "com.amazonaws.medialive#BadGatewayException":
+ throw await de_BadGatewayExceptionRes(parsedOutput, context);
+ case "BadRequestException":
+ case "com.amazonaws.medialive#BadRequestException":
+ throw await de_BadRequestExceptionRes(parsedOutput, context);
+ case "ForbiddenException":
+ case "com.amazonaws.medialive#ForbiddenException":
+ throw await de_ForbiddenExceptionRes(parsedOutput, context);
+ case "GatewayTimeoutException":
+ case "com.amazonaws.medialive#GatewayTimeoutException":
+ throw await de_GatewayTimeoutExceptionRes(parsedOutput, context);
+ case "InternalServerErrorException":
+ case "com.amazonaws.medialive#InternalServerErrorException":
+ throw await de_InternalServerErrorExceptionRes(parsedOutput, context);
+ case "NotFoundException":
+ case "com.amazonaws.medialive#NotFoundException":
+ throw await de_NotFoundExceptionRes(parsedOutput, context);
+ case "TooManyRequestsException":
+ case "com.amazonaws.medialive#TooManyRequestsException":
+ throw await de_TooManyRequestsExceptionRes(parsedOutput, context);
+ case "UnprocessableEntityException":
+ case "com.amazonaws.medialive#UnprocessableEntityException":
+ throw await de_UnprocessableEntityExceptionRes(parsedOutput, context);
+ default:
+ const parsedBody = parsedOutput.body;
+ return throwDefaultError({
+ output,
+ parsedBody,
+ errorCode,
+ });
+ }
+};
+
/**
* deserializeAws_restJson1StartInputDeviceMaintenanceWindowCommand
*/
@@ -5798,6 +5930,70 @@ const de_StopChannelCommandError = async (
}
};
+/**
+ * deserializeAws_restJson1StopInputDeviceCommand
+ */
+export const de_StopInputDeviceCommand = async (
+ output: __HttpResponse,
+ context: __SerdeContext
+): Promise => {
+ if (output.statusCode !== 200 && output.statusCode >= 300) {
+ return de_StopInputDeviceCommandError(output, context);
+ }
+ const contents: any = map({
+ $metadata: deserializeMetadata(output),
+ });
+ await collectBody(output.body, context);
+ return contents;
+};
+
+/**
+ * deserializeAws_restJson1StopInputDeviceCommandError
+ */
+const de_StopInputDeviceCommandError = async (
+ output: __HttpResponse,
+ context: __SerdeContext
+): Promise => {
+ const parsedOutput: any = {
+ ...output,
+ body: await parseErrorBody(output.body, context),
+ };
+ const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);
+ switch (errorCode) {
+ case "BadGatewayException":
+ case "com.amazonaws.medialive#BadGatewayException":
+ throw await de_BadGatewayExceptionRes(parsedOutput, context);
+ case "BadRequestException":
+ case "com.amazonaws.medialive#BadRequestException":
+ throw await de_BadRequestExceptionRes(parsedOutput, context);
+ case "ForbiddenException":
+ case "com.amazonaws.medialive#ForbiddenException":
+ throw await de_ForbiddenExceptionRes(parsedOutput, context);
+ case "GatewayTimeoutException":
+ case "com.amazonaws.medialive#GatewayTimeoutException":
+ throw await de_GatewayTimeoutExceptionRes(parsedOutput, context);
+ case "InternalServerErrorException":
+ case "com.amazonaws.medialive#InternalServerErrorException":
+ throw await de_InternalServerErrorExceptionRes(parsedOutput, context);
+ case "NotFoundException":
+ case "com.amazonaws.medialive#NotFoundException":
+ throw await de_NotFoundExceptionRes(parsedOutput, context);
+ case "TooManyRequestsException":
+ case "com.amazonaws.medialive#TooManyRequestsException":
+ throw await de_TooManyRequestsExceptionRes(parsedOutput, context);
+ case "UnprocessableEntityException":
+ case "com.amazonaws.medialive#UnprocessableEntityException":
+ throw await de_UnprocessableEntityExceptionRes(parsedOutput, context);
+ default:
+ const parsedBody = parsedOutput.body;
+ return throwDefaultError({
+ output,
+ parsedBody,
+ errorCode,
+ });
+ }
+};
+
/**
* deserializeAws_restJson1StopMultiplexCommand
*/
@@ -6231,8 +6427,10 @@ export const de_UpdateInputDeviceCommand = async (
HdDeviceSettings: [, (_) => de_InputDeviceHdSettings(_, context), `hdDeviceSettings`],
Id: [, __expectString, `id`],
MacAddress: [, __expectString, `macAddress`],
+ MedialiveInputArns: [, _json, `medialiveInputArns`],
Name: [, __expectString, `name`],
NetworkSettings: [, (_) => de_InputDeviceNetworkSettings(_, context), `networkSettings`],
+ OutputType: [, __expectString, `outputType`],
SerialNumber: [, __expectString, `serialNumber`],
Tags: [, _json, `tags`],
Type: [, __expectString, `type`],
@@ -8181,9 +8379,26 @@ const se_InputDestinationRequest = (input: InputDestinationRequest, context: __S
*/
const se_InputDeviceConfigurableSettings = (input: InputDeviceConfigurableSettings, context: __SerdeContext): any => {
return take(input, {
+ codec: [, , `Codec`],
configuredInput: [, , `ConfiguredInput`],
latencyMs: [, , `LatencyMs`],
maxBitrate: [, , `MaxBitrate`],
+ mediaconnectSettings: [, (_) => se_InputDeviceMediaConnectConfigurableSettings(_, context), `MediaconnectSettings`],
+ });
+};
+
+/**
+ * serializeAws_restJson1InputDeviceMediaConnectConfigurableSettings
+ */
+const se_InputDeviceMediaConnectConfigurableSettings = (
+ input: InputDeviceMediaConnectConfigurableSettings,
+ context: __SerdeContext
+): any => {
+ return take(input, {
+ flowArn: [, , `FlowArn`],
+ roleArn: [, , `RoleArn`],
+ secretArn: [, , `SecretArn`],
+ sourceName: [, , `SourceName`],
});
};
@@ -11253,6 +11468,18 @@ const de_InputDeviceHdSettings = (output: any, context: __SerdeContext): InputDe
}) as any;
};
+/**
+ * deserializeAws_restJson1InputDeviceMediaConnectSettings
+ */
+const de_InputDeviceMediaConnectSettings = (output: any, context: __SerdeContext): InputDeviceMediaConnectSettings => {
+ return take(output, {
+ FlowArn: [, __expectString, `flowArn`],
+ RoleArn: [, __expectString, `roleArn`],
+ SecretArn: [, __expectString, `secretArn`],
+ SourceName: [, __expectString, `sourceName`],
+ }) as any;
+};
+
/**
* deserializeAws_restJson1InputDeviceNetworkSettings
*/
@@ -11288,8 +11515,10 @@ const de_InputDeviceSummary = (output: any, context: __SerdeContext): InputDevic
HdDeviceSettings: [, (_: any) => de_InputDeviceHdSettings(_, context), `hdDeviceSettings`],
Id: [, __expectString, `id`],
MacAddress: [, __expectString, `macAddress`],
+ MedialiveInputArns: [, _json, `medialiveInputArns`],
Name: [, __expectString, `name`],
NetworkSettings: [, (_: any) => de_InputDeviceNetworkSettings(_, context), `networkSettings`],
+ OutputType: [, __expectString, `outputType`],
SerialNumber: [, __expectString, `serialNumber`],
Tags: [, _json, `tags`],
Type: [, __expectString, `type`],
@@ -11303,12 +11532,14 @@ const de_InputDeviceSummary = (output: any, context: __SerdeContext): InputDevic
const de_InputDeviceUhdSettings = (output: any, context: __SerdeContext): InputDeviceUhdSettings => {
return take(output, {
ActiveInput: [, __expectString, `activeInput`],
+ Codec: [, __expectString, `codec`],
ConfiguredInput: [, __expectString, `configuredInput`],
DeviceState: [, __expectString, `deviceState`],
Framerate: [, __limitedParseDouble, `framerate`],
Height: [, __expectInt32, `height`],
LatencyMs: [, __expectInt32, `latencyMs`],
MaxBitrate: [, __expectInt32, `maxBitrate`],
+ MediaconnectSettings: [, (_: any) => de_InputDeviceMediaConnectSettings(_, context), `mediaconnectSettings`],
ScanType: [, __expectString, `scanType`],
Width: [, __expectInt32, `width`],
}) as any;
diff --git a/codegen/sdk-codegen/aws-models/medialive.json b/codegen/sdk-codegen/aws-models/medialive.json
index 661be0feacaef..b126df42f2b33 100644
--- a/codegen/sdk-codegen/aws-models/medialive.json
+++ b/codegen/sdk-codegen/aws-models/medialive.json
@@ -5671,6 +5671,20 @@
"smithy.api#documentation": "The Availability Zone associated with this input device.",
"smithy.api#jsonName": "availabilityZone"
}
+ },
+ "MedialiveInputArns": {
+ "target": "com.amazonaws.medialive#__listOf__string",
+ "traits": {
+ "smithy.api#documentation": "An array of the ARNs for the MediaLive inputs attached to the device. Returned only if the outputType is MEDIALIVE_INPUT.",
+ "smithy.api#jsonName": "medialiveInputArns"
+ }
+ },
+ "OutputType": {
+ "target": "com.amazonaws.medialive#InputDeviceOutputType",
+ "traits": {
+ "smithy.api#documentation": "The output attachment type of the input device. Specifies MEDIACONNECT_FLOW if this device is the source for a MediaConnect flow. Specifies MEDIALIVE_INPUT if this device is the source for a MediaLive input.",
+ "smithy.api#jsonName": "outputType"
+ }
}
},
"traits": {
@@ -12505,6 +12519,26 @@
"smithy.api#documentation": "The source at the input device that is currently active."
}
},
+ "com.amazonaws.medialive#InputDeviceCodec": {
+ "type": "enum",
+ "members": {
+ "HEVC": {
+ "target": "smithy.api#Unit",
+ "traits": {
+ "smithy.api#enumValue": "HEVC"
+ }
+ },
+ "AVC": {
+ "target": "smithy.api#Unit",
+ "traits": {
+ "smithy.api#enumValue": "AVC"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#documentation": "The codec to use on the video that the device produces."
+ }
+ },
"com.amazonaws.medialive#InputDeviceConfigurableSettings": {
"type": "structure",
"members": {
@@ -12528,6 +12562,20 @@
"smithy.api#documentation": "The Link device's buffer size (latency) in milliseconds (ms).",
"smithy.api#jsonName": "latencyMs"
}
+ },
+ "Codec": {
+ "target": "com.amazonaws.medialive#InputDeviceCodec",
+ "traits": {
+ "smithy.api#documentation": "Choose the codec for the video that the device produces. Only UHD devices can specify this parameter.",
+ "smithy.api#jsonName": "codec"
+ }
+ },
+ "MediaconnectSettings": {
+ "target": "com.amazonaws.medialive#InputDeviceMediaConnectConfigurableSettings",
+ "traits": {
+ "smithy.api#documentation": "To attach this device to a MediaConnect flow, specify these parameters. To detach an existing flow, enter {} for the value of mediaconnectSettings. Only UHD devices can specify this parameter.",
+ "smithy.api#jsonName": "mediaconnectSettings"
+ }
}
},
"traits": {
@@ -12671,6 +12719,78 @@
"smithy.api#documentation": "Specifies whether the input device has been configured (outside of MediaLive) to use a dynamic IP address assignment (DHCP) or a static IP address."
}
},
+ "com.amazonaws.medialive#InputDeviceMediaConnectConfigurableSettings": {
+ "type": "structure",
+ "members": {
+ "FlowArn": {
+ "target": "com.amazonaws.medialive#__string",
+ "traits": {
+ "smithy.api#documentation": "The ARN of the MediaConnect flow to attach this device to.",
+ "smithy.api#jsonName": "flowArn"
+ }
+ },
+ "RoleArn": {
+ "target": "com.amazonaws.medialive#__string",
+ "traits": {
+ "smithy.api#documentation": "The ARN for the role that MediaLive assumes to access the attached flow and secret. For more information about how to create this role, see the MediaLive user guide.",
+ "smithy.api#jsonName": "roleArn"
+ }
+ },
+ "SecretArn": {
+ "target": "com.amazonaws.medialive#__string",
+ "traits": {
+ "smithy.api#documentation": "The ARN for the secret that holds the encryption key to encrypt the content output by the device.",
+ "smithy.api#jsonName": "secretArn"
+ }
+ },
+ "SourceName": {
+ "target": "com.amazonaws.medialive#__string",
+ "traits": {
+ "smithy.api#documentation": "The name of the MediaConnect Flow source to stream to.",
+ "smithy.api#jsonName": "sourceName"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#documentation": "Parameters required to attach a MediaConnect flow to the device."
+ }
+ },
+ "com.amazonaws.medialive#InputDeviceMediaConnectSettings": {
+ "type": "structure",
+ "members": {
+ "FlowArn": {
+ "target": "com.amazonaws.medialive#__string",
+ "traits": {
+ "smithy.api#documentation": "The ARN of the MediaConnect flow.",
+ "smithy.api#jsonName": "flowArn"
+ }
+ },
+ "RoleArn": {
+ "target": "com.amazonaws.medialive#__string",
+ "traits": {
+ "smithy.api#documentation": "The ARN for the role that MediaLive assumes to access the attached flow and secret.",
+ "smithy.api#jsonName": "roleArn"
+ }
+ },
+ "SecretArn": {
+ "target": "com.amazonaws.medialive#__string",
+ "traits": {
+ "smithy.api#documentation": "The ARN of the secret used to encrypt the stream.",
+ "smithy.api#jsonName": "secretArn"
+ }
+ },
+ "SourceName": {
+ "target": "com.amazonaws.medialive#__string",
+ "traits": {
+ "smithy.api#documentation": "The name of the MediaConnect flow source.",
+ "smithy.api#jsonName": "sourceName"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#documentation": "Information about the MediaConnect flow attached to the device."
+ }
+ },
"com.amazonaws.medialive#InputDeviceNetworkSettings": {
"type": "structure",
"members": {
@@ -12714,6 +12834,32 @@
"smithy.api#documentation": "The network settings for the input device."
}
},
+ "com.amazonaws.medialive#InputDeviceOutputType": {
+ "type": "enum",
+ "members": {
+ "NONE": {
+ "target": "smithy.api#Unit",
+ "traits": {
+ "smithy.api#enumValue": "NONE"
+ }
+ },
+ "MEDIALIVE_INPUT": {
+ "target": "smithy.api#Unit",
+ "traits": {
+ "smithy.api#enumValue": "MEDIALIVE_INPUT"
+ }
+ },
+ "MEDIACONNECT_FLOW": {
+ "target": "smithy.api#Unit",
+ "traits": {
+ "smithy.api#enumValue": "MEDIACONNECT_FLOW"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#documentation": "The output attachment type of the input device."
+ }
+ },
"com.amazonaws.medialive#InputDeviceRequest": {
"type": "structure",
"members": {
@@ -12884,6 +13030,20 @@
"smithy.api#documentation": "The Availability Zone associated with this input device.",
"smithy.api#jsonName": "availabilityZone"
}
+ },
+ "MedialiveInputArns": {
+ "target": "com.amazonaws.medialive#__listOf__string",
+ "traits": {
+ "smithy.api#documentation": "An array of the ARNs for the MediaLive inputs attached to the device. Returned only if the outputType is MEDIALIVE_INPUT.",
+ "smithy.api#jsonName": "medialiveInputArns"
+ }
+ },
+ "OutputType": {
+ "target": "com.amazonaws.medialive#InputDeviceOutputType",
+ "traits": {
+ "smithy.api#documentation": "The output attachment type of the input device. Specifies MEDIACONNECT_FLOW if this device is the source for a MediaConnect flow. Specifies MEDIALIVE_INPUT if this device is the source for a MediaLive input.",
+ "smithy.api#jsonName": "outputType"
+ }
}
},
"traits": {
@@ -13002,6 +13162,20 @@
"smithy.api#documentation": "The Link device's buffer size (latency) in milliseconds (ms). You can specify this value.",
"smithy.api#jsonName": "latencyMs"
}
+ },
+ "Codec": {
+ "target": "com.amazonaws.medialive#InputDeviceCodec",
+ "traits": {
+ "smithy.api#documentation": "The codec for the video that the device produces.",
+ "smithy.api#jsonName": "codec"
+ }
+ },
+ "MediaconnectSettings": {
+ "target": "com.amazonaws.medialive#InputDeviceMediaConnectSettings",
+ "traits": {
+ "smithy.api#documentation": "Information about the MediaConnect flow attached to the device. Returned only if the outputType is MEDIACONNECT_FLOW.",
+ "smithy.api#jsonName": "mediaconnectSettings"
+ }
}
},
"traits": {
@@ -16225,6 +16399,9 @@
{
"target": "com.amazonaws.medialive#StartChannel"
},
+ {
+ "target": "com.amazonaws.medialive#StartInputDevice"
+ },
{
"target": "com.amazonaws.medialive#StartInputDeviceMaintenanceWindow"
},
@@ -16234,6 +16411,9 @@
{
"target": "com.amazonaws.medialive#StopChannel"
},
+ {
+ "target": "com.amazonaws.medialive#StopInputDevice"
+ },
{
"target": "com.amazonaws.medialive#StopMultiplex"
},
@@ -21510,6 +21690,49 @@
"smithy.api#output": {}
}
},
+ "com.amazonaws.medialive#StartInputDevice": {
+ "type": "operation",
+ "input": {
+ "target": "com.amazonaws.medialive#StartInputDeviceRequest"
+ },
+ "output": {
+ "target": "com.amazonaws.medialive#StartInputDeviceResponse"
+ },
+ "errors": [
+ {
+ "target": "com.amazonaws.medialive#BadGatewayException"
+ },
+ {
+ "target": "com.amazonaws.medialive#BadRequestException"
+ },
+ {
+ "target": "com.amazonaws.medialive#ForbiddenException"
+ },
+ {
+ "target": "com.amazonaws.medialive#GatewayTimeoutException"
+ },
+ {
+ "target": "com.amazonaws.medialive#InternalServerErrorException"
+ },
+ {
+ "target": "com.amazonaws.medialive#NotFoundException"
+ },
+ {
+ "target": "com.amazonaws.medialive#TooManyRequestsException"
+ },
+ {
+ "target": "com.amazonaws.medialive#UnprocessableEntityException"
+ }
+ ],
+ "traits": {
+ "smithy.api#documentation": "Start an input device that is attached to a MediaConnect flow. (There is no need to start a device that is attached to a MediaLive input; MediaLive starts the device when the channel starts.)",
+ "smithy.api#http": {
+ "method": "POST",
+ "uri": "/prod/inputDevices/{InputDeviceId}/start",
+ "code": 200
+ }
+ }
+ },
"com.amazonaws.medialive#StartInputDeviceMaintenanceWindow": {
"type": "operation",
"input": {
@@ -21578,6 +21801,31 @@
"smithy.api#output": {}
}
},
+ "com.amazonaws.medialive#StartInputDeviceRequest": {
+ "type": "structure",
+ "members": {
+ "InputDeviceId": {
+ "target": "com.amazonaws.medialive#__string",
+ "traits": {
+ "smithy.api#documentation": "The unique ID of the input device to reboot. For example, hd-123456789abcdef.",
+ "smithy.api#httpLabel": {},
+ "smithy.api#required": {}
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#documentation": "Placeholder documentation for StartInputDeviceRequest",
+ "smithy.api#input": {}
+ }
+ },
+ "com.amazonaws.medialive#StartInputDeviceResponse": {
+ "type": "structure",
+ "members": {},
+ "traits": {
+ "smithy.api#documentation": "Placeholder documentation for StartInputDeviceResponse",
+ "smithy.api#output": {}
+ }
+ },
"com.amazonaws.medialive#StartMultiplex": {
"type": "operation",
"input": {
@@ -22049,6 +22297,74 @@
"smithy.api#output": {}
}
},
+ "com.amazonaws.medialive#StopInputDevice": {
+ "type": "operation",
+ "input": {
+ "target": "com.amazonaws.medialive#StopInputDeviceRequest"
+ },
+ "output": {
+ "target": "com.amazonaws.medialive#StopInputDeviceResponse"
+ },
+ "errors": [
+ {
+ "target": "com.amazonaws.medialive#BadGatewayException"
+ },
+ {
+ "target": "com.amazonaws.medialive#BadRequestException"
+ },
+ {
+ "target": "com.amazonaws.medialive#ForbiddenException"
+ },
+ {
+ "target": "com.amazonaws.medialive#GatewayTimeoutException"
+ },
+ {
+ "target": "com.amazonaws.medialive#InternalServerErrorException"
+ },
+ {
+ "target": "com.amazonaws.medialive#NotFoundException"
+ },
+ {
+ "target": "com.amazonaws.medialive#TooManyRequestsException"
+ },
+ {
+ "target": "com.amazonaws.medialive#UnprocessableEntityException"
+ }
+ ],
+ "traits": {
+ "smithy.api#documentation": "Stop an input device that is attached to a MediaConnect flow. (There is no need to stop a device that is attached to a MediaLive input; MediaLive automatically stops the device when the channel stops.)",
+ "smithy.api#http": {
+ "method": "POST",
+ "uri": "/prod/inputDevices/{InputDeviceId}/stop",
+ "code": 200
+ }
+ }
+ },
+ "com.amazonaws.medialive#StopInputDeviceRequest": {
+ "type": "structure",
+ "members": {
+ "InputDeviceId": {
+ "target": "com.amazonaws.medialive#__string",
+ "traits": {
+ "smithy.api#documentation": "The unique ID of the input device to reboot. For example, hd-123456789abcdef.",
+ "smithy.api#httpLabel": {},
+ "smithy.api#required": {}
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#documentation": "Placeholder documentation for StopInputDeviceRequest",
+ "smithy.api#input": {}
+ }
+ },
+ "com.amazonaws.medialive#StopInputDeviceResponse": {
+ "type": "structure",
+ "members": {},
+ "traits": {
+ "smithy.api#documentation": "Placeholder documentation for StopInputDeviceResponse",
+ "smithy.api#output": {}
+ }
+ },
"com.amazonaws.medialive#StopMultiplex": {
"type": "operation",
"input": {
@@ -23531,6 +23847,20 @@
"smithy.api#documentation": "The Availability Zone associated with this input device.",
"smithy.api#jsonName": "availabilityZone"
}
+ },
+ "MedialiveInputArns": {
+ "target": "com.amazonaws.medialive#__listOf__string",
+ "traits": {
+ "smithy.api#documentation": "An array of the ARNs for the MediaLive inputs attached to the device. Returned only if the outputType is MEDIALIVE_INPUT.",
+ "smithy.api#jsonName": "medialiveInputArns"
+ }
+ },
+ "OutputType": {
+ "target": "com.amazonaws.medialive#InputDeviceOutputType",
+ "traits": {
+ "smithy.api#documentation": "The output attachment type of the input device. Specifies MEDIACONNECT_FLOW if this device is the source for a MediaConnect flow. Specifies MEDIALIVE_INPUT if this device is the source for a MediaLive input.",
+ "smithy.api#jsonName": "outputType"
+ }
}
},
"traits": {
@@ -25714,4 +26044,4 @@
}
}
}
-}
\ No newline at end of file
+}