Skip to content

Commit

Permalink
feat(client-medialive): AWS Elemental MediaLive now supports the SRT …
Browse files Browse the repository at this point in the history
…protocol via the new SRT Caller input type.
  • Loading branch information
awstools committed Jul 18, 2024
1 parent 7927892 commit 91134df
Show file tree
Hide file tree
Showing 14 changed files with 956 additions and 343 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ function createAwsAuthSigv4HttpAuthOption(authParameters: MediaLiveHttpAuthSchem
name: "medialive",
region: authParameters.region,
},
propertiesExtractor: (config: MediaLiveClientConfig, context) => ({
propertiesExtractor: (config: Partial<MediaLiveClientConfig>, context) => ({
/**
* @internal
*/
Expand Down
32 changes: 30 additions & 2 deletions clients/client-medialive/src/commands/CreateInputCommand.ts
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ export interface CreateInputCommandOutput extends CreateInputResponse, __Metadat
* Tags: { // Tags
* "<keys>": "STRING_VALUE",
* },
* Type: "UDP_PUSH" || "RTP_PUSH" || "RTMP_PUSH" || "RTMP_PULL" || "URL_PULL" || "MP4_FILE" || "MEDIACONNECT" || "INPUT_DEVICE" || "AWS_CDI" || "TS_FILE",
* Type: "UDP_PUSH" || "RTP_PUSH" || "RTMP_PUSH" || "RTMP_PULL" || "URL_PULL" || "MP4_FILE" || "MEDIACONNECT" || "INPUT_DEVICE" || "AWS_CDI" || "TS_FILE" || "SRT_CALLER",
* Vpc: { // InputVpcRequest
* SecurityGroupIds: [
* "STRING_VALUE",
Expand All @@ -76,6 +76,20 @@ export interface CreateInputCommandOutput extends CreateInputResponse, __Metadat
* "STRING_VALUE",
* ],
* },
* SrtSettings: { // SrtSettingsRequest
* SrtCallerSources: [ // __listOfSrtCallerSourceRequest
* { // SrtCallerSourceRequest
* Decryption: { // SrtCallerDecryptionRequest
* Algorithm: "AES128" || "AES192" || "AES256",
* PassphraseSecretArn: "STRING_VALUE",
* },
* MinimumLatency: Number("int"),
* SrtListenerAddress: "STRING_VALUE",
* SrtListenerPort: "STRING_VALUE",
* StreamId: "STRING_VALUE",
* },
* ],
* },
* };
* const command = new CreateInputCommand(input);
* const response = await client.send(command);
Expand Down Expand Up @@ -128,7 +142,21 @@ export interface CreateInputCommandOutput extends CreateInputResponse, __Metadat
* // Tags: { // Tags
* // "<keys>": "STRING_VALUE",
* // },
* // Type: "UDP_PUSH" || "RTP_PUSH" || "RTMP_PUSH" || "RTMP_PULL" || "URL_PULL" || "MP4_FILE" || "MEDIACONNECT" || "INPUT_DEVICE" || "AWS_CDI" || "TS_FILE",
* // Type: "UDP_PUSH" || "RTP_PUSH" || "RTMP_PUSH" || "RTMP_PULL" || "URL_PULL" || "MP4_FILE" || "MEDIACONNECT" || "INPUT_DEVICE" || "AWS_CDI" || "TS_FILE" || "SRT_CALLER",
* // SrtSettings: { // SrtSettings
* // SrtCallerSources: [ // __listOfSrtCallerSource
* // { // SrtCallerSource
* // Decryption: { // SrtCallerDecryption
* // Algorithm: "AES128" || "AES192" || "AES256",
* // PassphraseSecretArn: "STRING_VALUE",
* // },
* // MinimumLatency: Number("int"),
* // SrtListenerAddress: "STRING_VALUE",
* // SrtListenerPort: "STRING_VALUE",
* // StreamId: "STRING_VALUE",
* // },
* // ],
* // },
* // },
* // };
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,21 @@ export interface CreatePartnerInputCommandOutput extends CreatePartnerInputRespo
* // Tags: { // Tags
* // "<keys>": "STRING_VALUE",
* // },
* // Type: "UDP_PUSH" || "RTP_PUSH" || "RTMP_PUSH" || "RTMP_PULL" || "URL_PULL" || "MP4_FILE" || "MEDIACONNECT" || "INPUT_DEVICE" || "AWS_CDI" || "TS_FILE",
* // Type: "UDP_PUSH" || "RTP_PUSH" || "RTMP_PUSH" || "RTMP_PULL" || "URL_PULL" || "MP4_FILE" || "MEDIACONNECT" || "INPUT_DEVICE" || "AWS_CDI" || "TS_FILE" || "SRT_CALLER",
* // SrtSettings: { // SrtSettings
* // SrtCallerSources: [ // __listOfSrtCallerSource
* // { // SrtCallerSource
* // Decryption: { // SrtCallerDecryption
* // Algorithm: "AES128" || "AES192" || "AES256",
* // PassphraseSecretArn: "STRING_VALUE",
* // },
* // MinimumLatency: Number("int"),
* // SrtListenerAddress: "STRING_VALUE",
* // SrtListenerPort: "STRING_VALUE",
* // StreamId: "STRING_VALUE",
* // },
* // ],
* // },
* // },
* // };
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types";

import { commonParams } from "../endpoint/EndpointParameters";
import { MediaLiveClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../MediaLiveClient";
import { CreateSignalMapRequest, CreateSignalMapResponse } from "../models/models_1";
import { CreateSignalMapRequest, CreateSignalMapResponse } from "../models/models_2";
import { de_CreateSignalMapCommand, se_CreateSignalMapCommand } from "../protocols/Aws_restJson1";

/**
Expand Down
2 changes: 1 addition & 1 deletion clients/client-medialive/src/commands/CreateTagsCommand.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types";

import { commonParams } from "../endpoint/EndpointParameters";
import { MediaLiveClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../MediaLiveClient";
import { CreateTagsRequest } from "../models/models_1";
import { CreateTagsRequest } from "../models/models_2";
import { de_CreateTagsCommand, se_CreateTagsCommand } from "../protocols/Aws_restJson1";

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types";

import { commonParams } from "../endpoint/EndpointParameters";
import { MediaLiveClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../MediaLiveClient";
import { DeleteChannelRequest } from "../models/models_1";
import { DeleteChannelResponse } from "../models/models_2";
import { DeleteChannelRequest, DeleteChannelResponse } from "../models/models_2";
import { de_DeleteChannelCommand, se_DeleteChannelCommand } from "../protocols/Aws_restJson1";

/**
Expand Down
16 changes: 15 additions & 1 deletion clients/client-medialive/src/commands/DescribeInputCommand.ts
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,21 @@ export interface DescribeInputCommandOutput extends DescribeInputResponse, __Met
* // Tags: { // Tags
* // "<keys>": "STRING_VALUE",
* // },
* // Type: "UDP_PUSH" || "RTP_PUSH" || "RTMP_PUSH" || "RTMP_PULL" || "URL_PULL" || "MP4_FILE" || "MEDIACONNECT" || "INPUT_DEVICE" || "AWS_CDI" || "TS_FILE",
* // Type: "UDP_PUSH" || "RTP_PUSH" || "RTMP_PUSH" || "RTMP_PULL" || "URL_PULL" || "MP4_FILE" || "MEDIACONNECT" || "INPUT_DEVICE" || "AWS_CDI" || "TS_FILE" || "SRT_CALLER",
* // SrtSettings: { // SrtSettings
* // SrtCallerSources: [ // __listOfSrtCallerSource
* // { // SrtCallerSource
* // Decryption: { // SrtCallerDecryption
* // Algorithm: "AES128" || "AES192" || "AES256",
* // PassphraseSecretArn: "STRING_VALUE",
* // },
* // MinimumLatency: Number("int"),
* // SrtListenerAddress: "STRING_VALUE",
* // SrtListenerPort: "STRING_VALUE",
* // StreamId: "STRING_VALUE",
* // },
* // ],
* // },
* // };
*
* ```
Expand Down
16 changes: 15 additions & 1 deletion clients/client-medialive/src/commands/ListInputsCommand.ts
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,21 @@ export interface ListInputsCommandOutput extends ListInputsResponse, __MetadataB
* // Tags: { // Tags
* // "<keys>": "STRING_VALUE",
* // },
* // Type: "UDP_PUSH" || "RTP_PUSH" || "RTMP_PUSH" || "RTMP_PULL" || "URL_PULL" || "MP4_FILE" || "MEDIACONNECT" || "INPUT_DEVICE" || "AWS_CDI" || "TS_FILE",
* // Type: "UDP_PUSH" || "RTP_PUSH" || "RTMP_PUSH" || "RTMP_PULL" || "URL_PULL" || "MP4_FILE" || "MEDIACONNECT" || "INPUT_DEVICE" || "AWS_CDI" || "TS_FILE" || "SRT_CALLER",
* // SrtSettings: { // SrtSettings
* // SrtCallerSources: [ // __listOfSrtCallerSource
* // { // SrtCallerSource
* // Decryption: { // SrtCallerDecryption
* // Algorithm: "AES128" || "AES192" || "AES256",
* // PassphraseSecretArn: "STRING_VALUE",
* // },
* // MinimumLatency: Number("int"),
* // SrtListenerAddress: "STRING_VALUE",
* // SrtListenerPort: "STRING_VALUE",
* // StreamId: "STRING_VALUE",
* // },
* // ],
* // },
* // },
* // ],
* // NextToken: "STRING_VALUE",
Expand Down
30 changes: 29 additions & 1 deletion clients/client-medialive/src/commands/UpdateInputCommand.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,20 @@ export interface UpdateInputCommandOutput extends UpdateInputResponse, __Metadat
* Username: "STRING_VALUE",
* },
* ],
* SrtSettings: { // SrtSettingsRequest
* SrtCallerSources: [ // __listOfSrtCallerSourceRequest
* { // SrtCallerSourceRequest
* Decryption: { // SrtCallerDecryptionRequest
* Algorithm: "AES128" || "AES192" || "AES256",
* PassphraseSecretArn: "STRING_VALUE",
* },
* MinimumLatency: Number("int"),
* SrtListenerAddress: "STRING_VALUE",
* SrtListenerPort: "STRING_VALUE",
* StreamId: "STRING_VALUE",
* },
* ],
* },
* };
* const command = new UpdateInputCommand(input);
* const response = await client.send(command);
Expand Down Expand Up @@ -116,7 +130,21 @@ export interface UpdateInputCommandOutput extends UpdateInputResponse, __Metadat
* // Tags: { // Tags
* // "<keys>": "STRING_VALUE",
* // },
* // Type: "UDP_PUSH" || "RTP_PUSH" || "RTMP_PUSH" || "RTMP_PULL" || "URL_PULL" || "MP4_FILE" || "MEDIACONNECT" || "INPUT_DEVICE" || "AWS_CDI" || "TS_FILE",
* // Type: "UDP_PUSH" || "RTP_PUSH" || "RTMP_PUSH" || "RTMP_PULL" || "URL_PULL" || "MP4_FILE" || "MEDIACONNECT" || "INPUT_DEVICE" || "AWS_CDI" || "TS_FILE" || "SRT_CALLER",
* // SrtSettings: { // SrtSettings
* // SrtCallerSources: [ // __listOfSrtCallerSource
* // { // SrtCallerSource
* // Decryption: { // SrtCallerDecryption
* // Algorithm: "AES128" || "AES192" || "AES256",
* // PassphraseSecretArn: "STRING_VALUE",
* // },
* // MinimumLatency: Number("int"),
* // SrtListenerAddress: "STRING_VALUE",
* // SrtListenerPort: "STRING_VALUE",
* // StreamId: "STRING_VALUE",
* // },
* // ],
* // },
* // },
* // };
*
Expand Down
151 changes: 88 additions & 63 deletions clients/client-medialive/src/models/models_0.ts
Original file line number Diff line number Diff line change
Expand Up @@ -649,7 +649,6 @@ export type Eac3AtmosDrcRf = (typeof Eac3AtmosDrcRf)[keyof typeof Eac3AtmosDrcRf
export interface Eac3AtmosSettings {
/**
* Average bitrate in bits/second. Valid bitrates depend on the coding mode.
* // * @affectsRightSizing true
* @public
*/
Bitrate?: number;
Expand Down Expand Up @@ -4213,6 +4212,87 @@ export interface InputSource {
Username?: string;
}

/**
* @public
* @enum
*/
export const Algorithm = {
AES128: "AES128",
AES192: "AES192",
AES256: "AES256",
} as const;

/**
* @public
*/
export type Algorithm = (typeof Algorithm)[keyof typeof Algorithm];

/**
* The decryption settings for the SRT caller source. Present only if the source has decryption enabled.
* @public
*/
export interface SrtCallerDecryption {
/**
* The algorithm used to encrypt content.
* @public
*/
Algorithm?: Algorithm;

/**
* The ARN for the secret in Secrets Manager. Someone in your organization must create a secret and provide you with its ARN. The secret holds the passphrase that MediaLive uses to decrypt the source content.
* @public
*/
PassphraseSecretArn?: string;
}

/**
* The configuration for a source that uses SRT as the connection protocol. In terms of establishing the connection, MediaLive is always caller and the upstream system is always the listener. In terms of transmission of the source content, MediaLive is always the receiver and the upstream system is always the sender.
* @public
*/
export interface SrtCallerSource {
/**
* The decryption settings for the SRT caller source. Present only if the source has decryption enabled.
* @public
*/
Decryption?: SrtCallerDecryption;

/**
* The preferred latency (in milliseconds) for implementing packet loss and recovery. Packet recovery is a key feature of SRT.
* @public
*/
MinimumLatency?: number;

/**
* The IP address at the upstream system (the listener) that MediaLive (the caller) connects to.
* @public
*/
SrtListenerAddress?: string;

/**
* The port at the upstream system (the listener) that MediaLive (the caller) connects to.
* @public
*/
SrtListenerPort?: string;

/**
* The stream ID, if the upstream system uses this identifier.
* @public
*/
StreamId?: string;
}

/**
* The configured sources for this SRT input.
* @public
*/
export interface SrtSettings {
/**
* Placeholder documentation for __listOfSrtCallerSource
* @public
*/
SrtCallerSources?: SrtCallerSource[];
}

/**
* @public
* @enum
Expand Down Expand Up @@ -4242,6 +4322,7 @@ export const InputType = {
RTMP_PULL: "RTMP_PULL",
RTMP_PUSH: "RTMP_PUSH",
RTP_PUSH: "RTP_PUSH",
SRT_CALLER: "SRT_CALLER",
TS_FILE: "TS_FILE",
UDP_PUSH: "UDP_PUSH",
URL_PULL: "URL_PULL",
Expand Down Expand Up @@ -4354,6 +4435,12 @@ export interface Input {
* @public
*/
Type?: InputType;

/**
* The settings associated with an SRT input.
* @public
*/
SrtSettings?: SrtSettings;
}

/**
Expand Down Expand Up @@ -6910,65 +6997,3 @@ export const S3CannedAcl = {
* @public
*/
export type S3CannedAcl = (typeof S3CannedAcl)[keyof typeof S3CannedAcl];

/**
* Archive S3 Settings
* @public
*/
export interface ArchiveS3Settings {
/**
* Specify the canned ACL to apply to each S3 request. Defaults to none.
* @public
*/
CannedAcl?: S3CannedAcl;
}

/**
* Archive Cdn Settings
* @public
*/
export interface ArchiveCdnSettings {
/**
* Archive S3 Settings
* @public
*/
ArchiveS3Settings?: ArchiveS3Settings;
}

/**
* Archive Group Settings
* @public
*/
export interface ArchiveGroupSettings {
/**
* Parameters that control interactions with the CDN.
* @public
*/
ArchiveCdnSettings?: ArchiveCdnSettings;

/**
* A directory and base filename where archive files should be written.
* @public
*/
Destination: OutputLocationRef | undefined;

/**
* Number of seconds to write to archive file before closing and starting a new one.
* @public
*/
RolloverInterval?: number;
}

/**
* @public
* @enum
*/
export const CmafNielsenId3Behavior = {
NO_PASSTHROUGH: "NO_PASSTHROUGH",
PASSTHROUGH: "PASSTHROUGH",
} as const;

/**
* @public
*/
export type CmafNielsenId3Behavior = (typeof CmafNielsenId3Behavior)[keyof typeof CmafNielsenId3Behavior];
Loading

0 comments on commit 91134df

Please sign in to comment.