Skip to content

Commit 91134df

Browse files
author
awstools
committed
feat(client-medialive): AWS Elemental MediaLive now supports the SRT protocol via the new SRT Caller input type.
1 parent 7927892 commit 91134df

14 files changed

+956
-343
lines changed

clients/client-medialive/src/auth/httpAuthSchemeProvider.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ function createAwsAuthSigv4HttpAuthOption(authParameters: MediaLiveHttpAuthSchem
6060
name: "medialive",
6161
region: authParameters.region,
6262
},
63-
propertiesExtractor: (config: MediaLiveClientConfig, context) => ({
63+
propertiesExtractor: (config: Partial<MediaLiveClientConfig>, context) => ({
6464
/**
6565
* @internal
6666
*/

clients/client-medialive/src/commands/CreateInputCommand.ts

+30-2
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ export interface CreateInputCommandOutput extends CreateInputResponse, __Metadat
6767
* Tags: { // Tags
6868
* "<keys>": "STRING_VALUE",
6969
* },
70-
* Type: "UDP_PUSH" || "RTP_PUSH" || "RTMP_PUSH" || "RTMP_PULL" || "URL_PULL" || "MP4_FILE" || "MEDIACONNECT" || "INPUT_DEVICE" || "AWS_CDI" || "TS_FILE",
70+
* Type: "UDP_PUSH" || "RTP_PUSH" || "RTMP_PUSH" || "RTMP_PULL" || "URL_PULL" || "MP4_FILE" || "MEDIACONNECT" || "INPUT_DEVICE" || "AWS_CDI" || "TS_FILE" || "SRT_CALLER",
7171
* Vpc: { // InputVpcRequest
7272
* SecurityGroupIds: [
7373
* "STRING_VALUE",
@@ -76,6 +76,20 @@ export interface CreateInputCommandOutput extends CreateInputResponse, __Metadat
7676
* "STRING_VALUE",
7777
* ],
7878
* },
79+
* SrtSettings: { // SrtSettingsRequest
80+
* SrtCallerSources: [ // __listOfSrtCallerSourceRequest
81+
* { // SrtCallerSourceRequest
82+
* Decryption: { // SrtCallerDecryptionRequest
83+
* Algorithm: "AES128" || "AES192" || "AES256",
84+
* PassphraseSecretArn: "STRING_VALUE",
85+
* },
86+
* MinimumLatency: Number("int"),
87+
* SrtListenerAddress: "STRING_VALUE",
88+
* SrtListenerPort: "STRING_VALUE",
89+
* StreamId: "STRING_VALUE",
90+
* },
91+
* ],
92+
* },
7993
* };
8094
* const command = new CreateInputCommand(input);
8195
* const response = await client.send(command);
@@ -128,7 +142,21 @@ export interface CreateInputCommandOutput extends CreateInputResponse, __Metadat
128142
* // Tags: { // Tags
129143
* // "<keys>": "STRING_VALUE",
130144
* // },
131-
* // Type: "UDP_PUSH" || "RTP_PUSH" || "RTMP_PUSH" || "RTMP_PULL" || "URL_PULL" || "MP4_FILE" || "MEDIACONNECT" || "INPUT_DEVICE" || "AWS_CDI" || "TS_FILE",
145+
* // Type: "UDP_PUSH" || "RTP_PUSH" || "RTMP_PUSH" || "RTMP_PULL" || "URL_PULL" || "MP4_FILE" || "MEDIACONNECT" || "INPUT_DEVICE" || "AWS_CDI" || "TS_FILE" || "SRT_CALLER",
146+
* // SrtSettings: { // SrtSettings
147+
* // SrtCallerSources: [ // __listOfSrtCallerSource
148+
* // { // SrtCallerSource
149+
* // Decryption: { // SrtCallerDecryption
150+
* // Algorithm: "AES128" || "AES192" || "AES256",
151+
* // PassphraseSecretArn: "STRING_VALUE",
152+
* // },
153+
* // MinimumLatency: Number("int"),
154+
* // SrtListenerAddress: "STRING_VALUE",
155+
* // SrtListenerPort: "STRING_VALUE",
156+
* // StreamId: "STRING_VALUE",
157+
* // },
158+
* // ],
159+
* // },
132160
* // },
133161
* // };
134162
*

clients/client-medialive/src/commands/CreatePartnerInputCommand.ts

+15-1
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,21 @@ export interface CreatePartnerInputCommandOutput extends CreatePartnerInputRespo
9393
* // Tags: { // Tags
9494
* // "<keys>": "STRING_VALUE",
9595
* // },
96-
* // Type: "UDP_PUSH" || "RTP_PUSH" || "RTMP_PUSH" || "RTMP_PULL" || "URL_PULL" || "MP4_FILE" || "MEDIACONNECT" || "INPUT_DEVICE" || "AWS_CDI" || "TS_FILE",
96+
* // Type: "UDP_PUSH" || "RTP_PUSH" || "RTMP_PUSH" || "RTMP_PULL" || "URL_PULL" || "MP4_FILE" || "MEDIACONNECT" || "INPUT_DEVICE" || "AWS_CDI" || "TS_FILE" || "SRT_CALLER",
97+
* // SrtSettings: { // SrtSettings
98+
* // SrtCallerSources: [ // __listOfSrtCallerSource
99+
* // { // SrtCallerSource
100+
* // Decryption: { // SrtCallerDecryption
101+
* // Algorithm: "AES128" || "AES192" || "AES256",
102+
* // PassphraseSecretArn: "STRING_VALUE",
103+
* // },
104+
* // MinimumLatency: Number("int"),
105+
* // SrtListenerAddress: "STRING_VALUE",
106+
* // SrtListenerPort: "STRING_VALUE",
107+
* // StreamId: "STRING_VALUE",
108+
* // },
109+
* // ],
110+
* // },
97111
* // },
98112
* // };
99113
*

clients/client-medialive/src/commands/CreateSignalMapCommand.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types";
66

77
import { commonParams } from "../endpoint/EndpointParameters";
88
import { MediaLiveClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../MediaLiveClient";
9-
import { CreateSignalMapRequest, CreateSignalMapResponse } from "../models/models_1";
9+
import { CreateSignalMapRequest, CreateSignalMapResponse } from "../models/models_2";
1010
import { de_CreateSignalMapCommand, se_CreateSignalMapCommand } from "../protocols/Aws_restJson1";
1111

1212
/**

clients/client-medialive/src/commands/CreateTagsCommand.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types";
66

77
import { commonParams } from "../endpoint/EndpointParameters";
88
import { MediaLiveClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../MediaLiveClient";
9-
import { CreateTagsRequest } from "../models/models_1";
9+
import { CreateTagsRequest } from "../models/models_2";
1010
import { de_CreateTagsCommand, se_CreateTagsCommand } from "../protocols/Aws_restJson1";
1111

1212
/**

clients/client-medialive/src/commands/DeleteChannelCommand.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types";
66

77
import { commonParams } from "../endpoint/EndpointParameters";
88
import { MediaLiveClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../MediaLiveClient";
9-
import { DeleteChannelRequest } from "../models/models_1";
10-
import { DeleteChannelResponse } from "../models/models_2";
9+
import { DeleteChannelRequest, DeleteChannelResponse } from "../models/models_2";
1110
import { de_DeleteChannelCommand, se_DeleteChannelCommand } from "../protocols/Aws_restJson1";
1211

1312
/**

clients/client-medialive/src/commands/DescribeInputCommand.ts

+15-1
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,21 @@ export interface DescribeInputCommandOutput extends DescribeInputResponse, __Met
8888
* // Tags: { // Tags
8989
* // "<keys>": "STRING_VALUE",
9090
* // },
91-
* // Type: "UDP_PUSH" || "RTP_PUSH" || "RTMP_PUSH" || "RTMP_PULL" || "URL_PULL" || "MP4_FILE" || "MEDIACONNECT" || "INPUT_DEVICE" || "AWS_CDI" || "TS_FILE",
91+
* // Type: "UDP_PUSH" || "RTP_PUSH" || "RTMP_PUSH" || "RTMP_PULL" || "URL_PULL" || "MP4_FILE" || "MEDIACONNECT" || "INPUT_DEVICE" || "AWS_CDI" || "TS_FILE" || "SRT_CALLER",
92+
* // SrtSettings: { // SrtSettings
93+
* // SrtCallerSources: [ // __listOfSrtCallerSource
94+
* // { // SrtCallerSource
95+
* // Decryption: { // SrtCallerDecryption
96+
* // Algorithm: "AES128" || "AES192" || "AES256",
97+
* // PassphraseSecretArn: "STRING_VALUE",
98+
* // },
99+
* // MinimumLatency: Number("int"),
100+
* // SrtListenerAddress: "STRING_VALUE",
101+
* // SrtListenerPort: "STRING_VALUE",
102+
* // StreamId: "STRING_VALUE",
103+
* // },
104+
* // ],
105+
* // },
92106
* // };
93107
*
94108
* ```

clients/client-medialive/src/commands/ListInputsCommand.ts

+15-1
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,21 @@ export interface ListInputsCommandOutput extends ListInputsResponse, __MetadataB
9191
* // Tags: { // Tags
9292
* // "<keys>": "STRING_VALUE",
9393
* // },
94-
* // Type: "UDP_PUSH" || "RTP_PUSH" || "RTMP_PUSH" || "RTMP_PULL" || "URL_PULL" || "MP4_FILE" || "MEDIACONNECT" || "INPUT_DEVICE" || "AWS_CDI" || "TS_FILE",
94+
* // Type: "UDP_PUSH" || "RTP_PUSH" || "RTMP_PUSH" || "RTMP_PULL" || "URL_PULL" || "MP4_FILE" || "MEDIACONNECT" || "INPUT_DEVICE" || "AWS_CDI" || "TS_FILE" || "SRT_CALLER",
95+
* // SrtSettings: { // SrtSettings
96+
* // SrtCallerSources: [ // __listOfSrtCallerSource
97+
* // { // SrtCallerSource
98+
* // Decryption: { // SrtCallerDecryption
99+
* // Algorithm: "AES128" || "AES192" || "AES256",
100+
* // PassphraseSecretArn: "STRING_VALUE",
101+
* // },
102+
* // MinimumLatency: Number("int"),
103+
* // SrtListenerAddress: "STRING_VALUE",
104+
* // SrtListenerPort: "STRING_VALUE",
105+
* // StreamId: "STRING_VALUE",
106+
* // },
107+
* // ],
108+
* // },
95109
* // },
96110
* // ],
97111
* // NextToken: "STRING_VALUE",

clients/client-medialive/src/commands/UpdateInputCommand.ts

+29-1
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,20 @@ export interface UpdateInputCommandOutput extends UpdateInputResponse, __Metadat
6464
* Username: "STRING_VALUE",
6565
* },
6666
* ],
67+
* SrtSettings: { // SrtSettingsRequest
68+
* SrtCallerSources: [ // __listOfSrtCallerSourceRequest
69+
* { // SrtCallerSourceRequest
70+
* Decryption: { // SrtCallerDecryptionRequest
71+
* Algorithm: "AES128" || "AES192" || "AES256",
72+
* PassphraseSecretArn: "STRING_VALUE",
73+
* },
74+
* MinimumLatency: Number("int"),
75+
* SrtListenerAddress: "STRING_VALUE",
76+
* SrtListenerPort: "STRING_VALUE",
77+
* StreamId: "STRING_VALUE",
78+
* },
79+
* ],
80+
* },
6781
* };
6882
* const command = new UpdateInputCommand(input);
6983
* const response = await client.send(command);
@@ -116,7 +130,21 @@ export interface UpdateInputCommandOutput extends UpdateInputResponse, __Metadat
116130
* // Tags: { // Tags
117131
* // "<keys>": "STRING_VALUE",
118132
* // },
119-
* // Type: "UDP_PUSH" || "RTP_PUSH" || "RTMP_PUSH" || "RTMP_PULL" || "URL_PULL" || "MP4_FILE" || "MEDIACONNECT" || "INPUT_DEVICE" || "AWS_CDI" || "TS_FILE",
133+
* // Type: "UDP_PUSH" || "RTP_PUSH" || "RTMP_PUSH" || "RTMP_PULL" || "URL_PULL" || "MP4_FILE" || "MEDIACONNECT" || "INPUT_DEVICE" || "AWS_CDI" || "TS_FILE" || "SRT_CALLER",
134+
* // SrtSettings: { // SrtSettings
135+
* // SrtCallerSources: [ // __listOfSrtCallerSource
136+
* // { // SrtCallerSource
137+
* // Decryption: { // SrtCallerDecryption
138+
* // Algorithm: "AES128" || "AES192" || "AES256",
139+
* // PassphraseSecretArn: "STRING_VALUE",
140+
* // },
141+
* // MinimumLatency: Number("int"),
142+
* // SrtListenerAddress: "STRING_VALUE",
143+
* // SrtListenerPort: "STRING_VALUE",
144+
* // StreamId: "STRING_VALUE",
145+
* // },
146+
* // ],
147+
* // },
120148
* // },
121149
* // };
122150
*

clients/client-medialive/src/models/models_0.ts

+88-63
Original file line numberDiff line numberDiff line change
@@ -649,7 +649,6 @@ export type Eac3AtmosDrcRf = (typeof Eac3AtmosDrcRf)[keyof typeof Eac3AtmosDrcRf
649649
export interface Eac3AtmosSettings {
650650
/**
651651
* Average bitrate in bits/second. Valid bitrates depend on the coding mode.
652-
* // * @affectsRightSizing true
653652
* @public
654653
*/
655654
Bitrate?: number;
@@ -4213,6 +4212,87 @@ export interface InputSource {
42134212
Username?: string;
42144213
}
42154214

4215+
/**
4216+
* @public
4217+
* @enum
4218+
*/
4219+
export const Algorithm = {
4220+
AES128: "AES128",
4221+
AES192: "AES192",
4222+
AES256: "AES256",
4223+
} as const;
4224+
4225+
/**
4226+
* @public
4227+
*/
4228+
export type Algorithm = (typeof Algorithm)[keyof typeof Algorithm];
4229+
4230+
/**
4231+
* The decryption settings for the SRT caller source. Present only if the source has decryption enabled.
4232+
* @public
4233+
*/
4234+
export interface SrtCallerDecryption {
4235+
/**
4236+
* The algorithm used to encrypt content.
4237+
* @public
4238+
*/
4239+
Algorithm?: Algorithm;
4240+
4241+
/**
4242+
* 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.
4243+
* @public
4244+
*/
4245+
PassphraseSecretArn?: string;
4246+
}
4247+
4248+
/**
4249+
* 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.
4250+
* @public
4251+
*/
4252+
export interface SrtCallerSource {
4253+
/**
4254+
* The decryption settings for the SRT caller source. Present only if the source has decryption enabled.
4255+
* @public
4256+
*/
4257+
Decryption?: SrtCallerDecryption;
4258+
4259+
/**
4260+
* The preferred latency (in milliseconds) for implementing packet loss and recovery. Packet recovery is a key feature of SRT.
4261+
* @public
4262+
*/
4263+
MinimumLatency?: number;
4264+
4265+
/**
4266+
* The IP address at the upstream system (the listener) that MediaLive (the caller) connects to.
4267+
* @public
4268+
*/
4269+
SrtListenerAddress?: string;
4270+
4271+
/**
4272+
* The port at the upstream system (the listener) that MediaLive (the caller) connects to.
4273+
* @public
4274+
*/
4275+
SrtListenerPort?: string;
4276+
4277+
/**
4278+
* The stream ID, if the upstream system uses this identifier.
4279+
* @public
4280+
*/
4281+
StreamId?: string;
4282+
}
4283+
4284+
/**
4285+
* The configured sources for this SRT input.
4286+
* @public
4287+
*/
4288+
export interface SrtSettings {
4289+
/**
4290+
* Placeholder documentation for __listOfSrtCallerSource
4291+
* @public
4292+
*/
4293+
SrtCallerSources?: SrtCallerSource[];
4294+
}
4295+
42164296
/**
42174297
* @public
42184298
* @enum
@@ -4242,6 +4322,7 @@ export const InputType = {
42424322
RTMP_PULL: "RTMP_PULL",
42434323
RTMP_PUSH: "RTMP_PUSH",
42444324
RTP_PUSH: "RTP_PUSH",
4325+
SRT_CALLER: "SRT_CALLER",
42454326
TS_FILE: "TS_FILE",
42464327
UDP_PUSH: "UDP_PUSH",
42474328
URL_PULL: "URL_PULL",
@@ -4354,6 +4435,12 @@ export interface Input {
43544435
* @public
43554436
*/
43564437
Type?: InputType;
4438+
4439+
/**
4440+
* The settings associated with an SRT input.
4441+
* @public
4442+
*/
4443+
SrtSettings?: SrtSettings;
43574444
}
43584445

43594446
/**
@@ -6910,65 +6997,3 @@ export const S3CannedAcl = {
69106997
* @public
69116998
*/
69126999
export type S3CannedAcl = (typeof S3CannedAcl)[keyof typeof S3CannedAcl];
6913-
6914-
/**
6915-
* Archive S3 Settings
6916-
* @public
6917-
*/
6918-
export interface ArchiveS3Settings {
6919-
/**
6920-
* Specify the canned ACL to apply to each S3 request. Defaults to none.
6921-
* @public
6922-
*/
6923-
CannedAcl?: S3CannedAcl;
6924-
}
6925-
6926-
/**
6927-
* Archive Cdn Settings
6928-
* @public
6929-
*/
6930-
export interface ArchiveCdnSettings {
6931-
/**
6932-
* Archive S3 Settings
6933-
* @public
6934-
*/
6935-
ArchiveS3Settings?: ArchiveS3Settings;
6936-
}
6937-
6938-
/**
6939-
* Archive Group Settings
6940-
* @public
6941-
*/
6942-
export interface ArchiveGroupSettings {
6943-
/**
6944-
* Parameters that control interactions with the CDN.
6945-
* @public
6946-
*/
6947-
ArchiveCdnSettings?: ArchiveCdnSettings;
6948-
6949-
/**
6950-
* A directory and base filename where archive files should be written.
6951-
* @public
6952-
*/
6953-
Destination: OutputLocationRef | undefined;
6954-
6955-
/**
6956-
* Number of seconds to write to archive file before closing and starting a new one.
6957-
* @public
6958-
*/
6959-
RolloverInterval?: number;
6960-
}
6961-
6962-
/**
6963-
* @public
6964-
* @enum
6965-
*/
6966-
export const CmafNielsenId3Behavior = {
6967-
NO_PASSTHROUGH: "NO_PASSTHROUGH",
6968-
PASSTHROUGH: "PASSTHROUGH",
6969-
} as const;
6970-
6971-
/**
6972-
* @public
6973-
*/
6974-
export type CmafNielsenId3Behavior = (typeof CmafNielsenId3Behavior)[keyof typeof CmafNielsenId3Behavior];

0 commit comments

Comments
 (0)