Skip to content

Commit ae07662

Browse files
author
awstools
committed
feat(client-ivs-realtime): IVS Real-Time now offers customers the participant replication that allow customers to copy a participant from one stage to another.
1 parent 2e6785c commit ae07662

19 files changed

+1708
-8
lines changed

clients/client-ivs-realtime/README.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,29 @@ Composition operations support this process.</p>
4545
including how participants are positioned in the video.</p>
4646
</li>
4747
</ul>
48+
<p>For participant replication:</p>
49+
<ul>
50+
<li>
51+
<p>
52+
<b>Source stage</b> — The stage where the participant originally joined, which is used as the source for
53+
replication.</p>
54+
</li>
55+
<li>
56+
<p>
57+
<b>Destination stage</b> — The stage to which the participant is replicated.
58+
</p>
59+
</li>
60+
<li>
61+
<p>
62+
<b>Replicated participant</b> — A participant in a stage that is replicated to one or more destination stages.
63+
</p>
64+
</li>
65+
<li>
66+
<p>
67+
<b>Replica participant</b> — A participant in a destination stage that is replicated from another stage
68+
(the source stage).</p>
69+
</li>
70+
</ul>
4871
<p>For more information about your IVS live stream, also see <a href="https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/getting-started.html">Getting Started with Amazon IVS Real-Time Streaming</a>.</p>
4972
<p>
5073
<b>Tagging</b>
@@ -448,6 +471,14 @@ ListParticipantEvents
448471

449472
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/ivs-realtime/command/ListParticipantEventsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ivs-realtime/Interface/ListParticipantEventsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ivs-realtime/Interface/ListParticipantEventsCommandOutput/)
450473

474+
</details>
475+
<details>
476+
<summary>
477+
ListParticipantReplicas
478+
</summary>
479+
480+
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/ivs-realtime/command/ListParticipantReplicasCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ivs-realtime/Interface/ListParticipantReplicasCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ivs-realtime/Interface/ListParticipantReplicasCommandOutput/)
481+
451482
</details>
452483
<details>
453484
<summary>
@@ -504,6 +535,14 @@ StartComposition
504535

505536
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/ivs-realtime/command/StartCompositionCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ivs-realtime/Interface/StartCompositionCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ivs-realtime/Interface/StartCompositionCommandOutput/)
506537

538+
</details>
539+
<details>
540+
<summary>
541+
StartParticipantReplication
542+
</summary>
543+
544+
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/ivs-realtime/command/StartParticipantReplicationCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ivs-realtime/Interface/StartParticipantReplicationCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ivs-realtime/Interface/StartParticipantReplicationCommandOutput/)
545+
507546
</details>
508547
<details>
509548
<summary>
@@ -512,6 +551,14 @@ StopComposition
512551

513552
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/ivs-realtime/command/StopCompositionCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ivs-realtime/Interface/StopCompositionCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ivs-realtime/Interface/StopCompositionCommandOutput/)
514553

554+
</details>
555+
<details>
556+
<summary>
557+
StopParticipantReplication
558+
</summary>
559+
560+
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/ivs-realtime/command/StopParticipantReplicationCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ivs-realtime/Interface/StopParticipantReplicationCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ivs-realtime/Interface/StopParticipantReplicationCommandOutput/)
561+
515562
</details>
516563
<details>
517564
<summary>

clients/client-ivs-realtime/src/IVSRealTime.ts

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,11 @@ import {
110110
ListParticipantEventsCommandInput,
111111
ListParticipantEventsCommandOutput,
112112
} from "./commands/ListParticipantEventsCommand";
113+
import {
114+
ListParticipantReplicasCommand,
115+
ListParticipantReplicasCommandInput,
116+
ListParticipantReplicasCommandOutput,
117+
} from "./commands/ListParticipantReplicasCommand";
113118
import {
114119
ListParticipantsCommand,
115120
ListParticipantsCommandInput,
@@ -141,11 +146,21 @@ import {
141146
StartCompositionCommandInput,
142147
StartCompositionCommandOutput,
143148
} from "./commands/StartCompositionCommand";
149+
import {
150+
StartParticipantReplicationCommand,
151+
StartParticipantReplicationCommandInput,
152+
StartParticipantReplicationCommandOutput,
153+
} from "./commands/StartParticipantReplicationCommand";
144154
import {
145155
StopCompositionCommand,
146156
StopCompositionCommandInput,
147157
StopCompositionCommandOutput,
148158
} from "./commands/StopCompositionCommand";
159+
import {
160+
StopParticipantReplicationCommand,
161+
StopParticipantReplicationCommandInput,
162+
StopParticipantReplicationCommandOutput,
163+
} from "./commands/StopParticipantReplicationCommand";
149164
import { TagResourceCommand, TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand";
150165
import {
151166
UntagResourceCommand,
@@ -185,14 +200,17 @@ const commands = {
185200
ListEncoderConfigurationsCommand,
186201
ListIngestConfigurationsCommand,
187202
ListParticipantEventsCommand,
203+
ListParticipantReplicasCommand,
188204
ListParticipantsCommand,
189205
ListPublicKeysCommand,
190206
ListStagesCommand,
191207
ListStageSessionsCommand,
192208
ListStorageConfigurationsCommand,
193209
ListTagsForResourceCommand,
194210
StartCompositionCommand,
211+
StartParticipantReplicationCommand,
195212
StopCompositionCommand,
213+
StopParticipantReplicationCommand,
196214
TagResourceCommand,
197215
UntagResourceCommand,
198216
UpdateIngestConfigurationCommand,
@@ -574,6 +592,23 @@ export interface IVSRealTime {
574592
cb: (err: any, data?: ListParticipantEventsCommandOutput) => void
575593
): void;
576594

595+
/**
596+
* @see {@link ListParticipantReplicasCommand}
597+
*/
598+
listParticipantReplicas(
599+
args: ListParticipantReplicasCommandInput,
600+
options?: __HttpHandlerOptions
601+
): Promise<ListParticipantReplicasCommandOutput>;
602+
listParticipantReplicas(
603+
args: ListParticipantReplicasCommandInput,
604+
cb: (err: any, data?: ListParticipantReplicasCommandOutput) => void
605+
): void;
606+
listParticipantReplicas(
607+
args: ListParticipantReplicasCommandInput,
608+
options: __HttpHandlerOptions,
609+
cb: (err: any, data?: ListParticipantReplicasCommandOutput) => void
610+
): void;
611+
577612
/**
578613
* @see {@link ListParticipantsCommand}
579614
*/
@@ -687,6 +722,23 @@ export interface IVSRealTime {
687722
cb: (err: any, data?: StartCompositionCommandOutput) => void
688723
): void;
689724

725+
/**
726+
* @see {@link StartParticipantReplicationCommand}
727+
*/
728+
startParticipantReplication(
729+
args: StartParticipantReplicationCommandInput,
730+
options?: __HttpHandlerOptions
731+
): Promise<StartParticipantReplicationCommandOutput>;
732+
startParticipantReplication(
733+
args: StartParticipantReplicationCommandInput,
734+
cb: (err: any, data?: StartParticipantReplicationCommandOutput) => void
735+
): void;
736+
startParticipantReplication(
737+
args: StartParticipantReplicationCommandInput,
738+
options: __HttpHandlerOptions,
739+
cb: (err: any, data?: StartParticipantReplicationCommandOutput) => void
740+
): void;
741+
690742
/**
691743
* @see {@link StopCompositionCommand}
692744
*/
@@ -701,6 +753,23 @@ export interface IVSRealTime {
701753
cb: (err: any, data?: StopCompositionCommandOutput) => void
702754
): void;
703755

756+
/**
757+
* @see {@link StopParticipantReplicationCommand}
758+
*/
759+
stopParticipantReplication(
760+
args: StopParticipantReplicationCommandInput,
761+
options?: __HttpHandlerOptions
762+
): Promise<StopParticipantReplicationCommandOutput>;
763+
stopParticipantReplication(
764+
args: StopParticipantReplicationCommandInput,
765+
cb: (err: any, data?: StopParticipantReplicationCommandOutput) => void
766+
): void;
767+
stopParticipantReplication(
768+
args: StopParticipantReplicationCommandInput,
769+
options: __HttpHandlerOptions,
770+
cb: (err: any, data?: StopParticipantReplicationCommandOutput) => void
771+
): void;
772+
704773
/**
705774
* @see {@link TagResourceCommand}
706775
*/
@@ -792,6 +861,29 @@ export interface IVSRealTime {
792861
* including how participants are positioned in the video.</p>
793862
* </li>
794863
* </ul>
864+
* <p>For participant replication:</p>
865+
* <ul>
866+
* <li>
867+
* <p>
868+
* <b>Source stage</b> — The stage where the participant originally joined, which is used as the source for
869+
* replication.</p>
870+
* </li>
871+
* <li>
872+
* <p>
873+
* <b>Destination stage</b> — The stage to which the participant is replicated.
874+
* </p>
875+
* </li>
876+
* <li>
877+
* <p>
878+
* <b>Replicated participant</b> — A participant in a stage that is replicated to one or more destination stages.
879+
* </p>
880+
* </li>
881+
* <li>
882+
* <p>
883+
* <b>Replica participant</b> — A participant in a destination stage that is replicated from another stage
884+
* (the source stage).</p>
885+
* </li>
886+
* </ul>
795887
* <p>For more information about your IVS live stream, also see <a href="https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/getting-started.html">Getting Started with Amazon IVS Real-Time Streaming</a>.</p>
796888
* <p>
797889
* <b>Tagging</b>

clients/client-ivs-realtime/src/IVSRealTimeClient.ts

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,10 @@ import {
119119
ListParticipantEventsCommandInput,
120120
ListParticipantEventsCommandOutput,
121121
} from "./commands/ListParticipantEventsCommand";
122+
import {
123+
ListParticipantReplicasCommandInput,
124+
ListParticipantReplicasCommandOutput,
125+
} from "./commands/ListParticipantReplicasCommand";
122126
import { ListParticipantsCommandInput, ListParticipantsCommandOutput } from "./commands/ListParticipantsCommand";
123127
import { ListPublicKeysCommandInput, ListPublicKeysCommandOutput } from "./commands/ListPublicKeysCommand";
124128
import { ListStagesCommandInput, ListStagesCommandOutput } from "./commands/ListStagesCommand";
@@ -132,7 +136,15 @@ import {
132136
ListTagsForResourceCommandOutput,
133137
} from "./commands/ListTagsForResourceCommand";
134138
import { StartCompositionCommandInput, StartCompositionCommandOutput } from "./commands/StartCompositionCommand";
139+
import {
140+
StartParticipantReplicationCommandInput,
141+
StartParticipantReplicationCommandOutput,
142+
} from "./commands/StartParticipantReplicationCommand";
135143
import { StopCompositionCommandInput, StopCompositionCommandOutput } from "./commands/StopCompositionCommand";
144+
import {
145+
StopParticipantReplicationCommandInput,
146+
StopParticipantReplicationCommandOutput,
147+
} from "./commands/StopParticipantReplicationCommand";
136148
import { TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand";
137149
import { UntagResourceCommandInput, UntagResourceCommandOutput } from "./commands/UntagResourceCommand";
138150
import {
@@ -179,14 +191,17 @@ export type ServiceInputTypes =
179191
| ListEncoderConfigurationsCommandInput
180192
| ListIngestConfigurationsCommandInput
181193
| ListParticipantEventsCommandInput
194+
| ListParticipantReplicasCommandInput
182195
| ListParticipantsCommandInput
183196
| ListPublicKeysCommandInput
184197
| ListStageSessionsCommandInput
185198
| ListStagesCommandInput
186199
| ListStorageConfigurationsCommandInput
187200
| ListTagsForResourceCommandInput
188201
| StartCompositionCommandInput
202+
| StartParticipantReplicationCommandInput
189203
| StopCompositionCommandInput
204+
| StopParticipantReplicationCommandInput
190205
| TagResourceCommandInput
191206
| UntagResourceCommandInput
192207
| UpdateIngestConfigurationCommandInput
@@ -220,14 +235,17 @@ export type ServiceOutputTypes =
220235
| ListEncoderConfigurationsCommandOutput
221236
| ListIngestConfigurationsCommandOutput
222237
| ListParticipantEventsCommandOutput
238+
| ListParticipantReplicasCommandOutput
223239
| ListParticipantsCommandOutput
224240
| ListPublicKeysCommandOutput
225241
| ListStageSessionsCommandOutput
226242
| ListStagesCommandOutput
227243
| ListStorageConfigurationsCommandOutput
228244
| ListTagsForResourceCommandOutput
229245
| StartCompositionCommandOutput
246+
| StartParticipantReplicationCommandOutput
230247
| StopCompositionCommandOutput
248+
| StopParticipantReplicationCommandOutput
231249
| TagResourceCommandOutput
232250
| UntagResourceCommandOutput
233251
| UpdateIngestConfigurationCommandOutput
@@ -463,6 +481,29 @@ export interface IVSRealTimeClientResolvedConfig extends IVSRealTimeClientResolv
463481
* including how participants are positioned in the video.</p>
464482
* </li>
465483
* </ul>
484+
* <p>For participant replication:</p>
485+
* <ul>
486+
* <li>
487+
* <p>
488+
* <b>Source stage</b> — The stage where the participant originally joined, which is used as the source for
489+
* replication.</p>
490+
* </li>
491+
* <li>
492+
* <p>
493+
* <b>Destination stage</b> — The stage to which the participant is replicated.
494+
* </p>
495+
* </li>
496+
* <li>
497+
* <p>
498+
* <b>Replicated participant</b> — A participant in a stage that is replicated to one or more destination stages.
499+
* </p>
500+
* </li>
501+
* <li>
502+
* <p>
503+
* <b>Replica participant</b> — A participant in a destination stage that is replicated from another stage
504+
* (the source stage).</p>
505+
* </li>
506+
* </ul>
466507
* <p>For more information about your IVS live stream, also see <a href="https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/getting-started.html">Getting Started with Amazon IVS Real-Time Streaming</a>.</p>
467508
* <p>
468509
* <b>Tagging</b>

clients/client-ivs-realtime/src/commands/CreateStageCommand.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ export interface CreateStageCommandOutput extends CreateStageResponse, __Metadat
6868
* hlsConfiguration: { // ParticipantRecordingHlsConfiguration
6969
* targetSegmentDurationSeconds: Number("int"),
7070
* },
71+
* recordParticipantReplicas: true || false,
7172
* },
7273
* };
7374
* const command = new CreateStageCommand(input);
@@ -96,6 +97,7 @@ export interface CreateStageCommandOutput extends CreateStageResponse, __Metadat
9697
* // hlsConfiguration: { // ParticipantRecordingHlsConfiguration
9798
* // targetSegmentDurationSeconds: Number("int"),
9899
* // },
100+
* // recordParticipantReplicas: true || false,
99101
* // },
100102
* // endpoints: { // StageEndpoints
101103
* // events: "STRING_VALUE",

clients/client-ivs-realtime/src/commands/GetParticipantCommand.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,10 @@ export interface GetParticipantCommandOutput extends GetParticipantResponse, __M
6262
* // recordingS3Prefix: "STRING_VALUE",
6363
* // recordingState: "STRING_VALUE",
6464
* // protocol: "UNKNOWN" || "WHIP" || "RTMP" || "RTMPS",
65+
* // replicationType: "STRING_VALUE",
66+
* // replicationState: "STRING_VALUE",
67+
* // sourceStageArn: "STRING_VALUE",
68+
* // sourceSessionId: "STRING_VALUE",
6569
* // },
6670
* // };
6771
*

clients/client-ivs-realtime/src/commands/GetStageCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ export interface GetStageCommandOutput extends GetStageResponse, __MetadataBeare
6464
* // hlsConfiguration: { // ParticipantRecordingHlsConfiguration
6565
* // targetSegmentDurationSeconds: Number("int"),
6666
* // },
67+
* // recordParticipantReplicas: true || false,
6768
* // },
6869
* // endpoints: { // StageEndpoints
6970
* // events: "STRING_VALUE",

clients/client-ivs-realtime/src/commands/ListParticipantEventsCommand.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,9 @@ export interface ListParticipantEventsCommandOutput extends ListParticipantEvent
5353
* // eventTime: new Date("TIMESTAMP"),
5454
* // remoteParticipantId: "STRING_VALUE",
5555
* // errorCode: "INSUFFICIENT_CAPABILITIES" || "QUOTA_EXCEEDED" || "PUBLISHER_NOT_FOUND" || "BITRATE_EXCEEDED" || "RESOLUTION_EXCEEDED" || "STREAM_DURATION_EXCEEDED" || "INVALID_AUDIO_CODEC" || "INVALID_VIDEO_CODEC" || "INVALID_PROTOCOL" || "INVALID_STREAM_KEY" || "REUSE_OF_STREAM_KEY" || "B_FRAME_PRESENT" || "INVALID_INPUT" || "INTERNAL_SERVER_EXCEPTION",
56+
* // destinationStageArn: "STRING_VALUE",
57+
* // destinationSessionId: "STRING_VALUE",
58+
* // replica: true || false,
5659
* // },
5760
* // ],
5861
* // nextToken: "STRING_VALUE",

0 commit comments

Comments
 (0)