Skip to content

Commit

Permalink
feat(client-chime-sdk-media-pipelines): The Amazon Chime SDK now supp…
Browse files Browse the repository at this point in the history
…orts live streaming of real-time video from the Amazon Chime SDK sessions to streaming platforms such as Amazon IVS and Amazon Elemental MediaLive. We have also added support for concatenation to create a single media capture file.
  • Loading branch information
awstools committed Aug 18, 2022
1 parent 58a3e7a commit 002e420
Show file tree
Hide file tree
Showing 21 changed files with 4,318 additions and 281 deletions.
6 changes: 2 additions & 4 deletions clients/client-chime-sdk-media-pipelines/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,8 @@

AWS SDK for JavaScript ChimeSDKMediaPipelines Client for Node.js, Browser and React Native.

<p>The Amazon Chime SDK media pipeline APIs in this section allow software developers to create Amazon Chime SDK media pipelines
and capture audio, video, events, and data messages from Amazon Chime SDK meetings. For more information about media pipleines, see
<a href="https://docs.aws.amazon.com/chime/latest/APIReference/API_Operations_Amazon_Chime_SDK_Media_Pipelines.html">Amzon Chime SDK media pipelines</a>.
</p>
<p>The Amazon Chime SDK media pipeline APIs in this section allow software developers to
create Amazon Chime SDK media pipelines that capture, concatenate, or stream your Amazon Chime SDK meetings. For more information about media pipleines, see <a href="http://amazonaws.com/chime/latest/APIReference/API_Operations_Amazon_Chime_SDK_Media_Pipelines.html">Amazon Chime SDK media pipelines</a>. </p>

## Installing

Expand Down
205 changes: 194 additions & 11 deletions clients/client-chime-sdk-media-pipelines/src/ChimeSDKMediaPipelines.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,46 @@ import {
CreateMediaCapturePipelineCommandInput,
CreateMediaCapturePipelineCommandOutput,
} from "./commands/CreateMediaCapturePipelineCommand";
import {
CreateMediaConcatenationPipelineCommand,
CreateMediaConcatenationPipelineCommandInput,
CreateMediaConcatenationPipelineCommandOutput,
} from "./commands/CreateMediaConcatenationPipelineCommand";
import {
CreateMediaLiveConnectorPipelineCommand,
CreateMediaLiveConnectorPipelineCommandInput,
CreateMediaLiveConnectorPipelineCommandOutput,
} from "./commands/CreateMediaLiveConnectorPipelineCommand";
import {
DeleteMediaCapturePipelineCommand,
DeleteMediaCapturePipelineCommandInput,
DeleteMediaCapturePipelineCommandOutput,
} from "./commands/DeleteMediaCapturePipelineCommand";
import {
DeleteMediaPipelineCommand,
DeleteMediaPipelineCommandInput,
DeleteMediaPipelineCommandOutput,
} from "./commands/DeleteMediaPipelineCommand";
import {
GetMediaCapturePipelineCommand,
GetMediaCapturePipelineCommandInput,
GetMediaCapturePipelineCommandOutput,
} from "./commands/GetMediaCapturePipelineCommand";
import {
GetMediaPipelineCommand,
GetMediaPipelineCommandInput,
GetMediaPipelineCommandOutput,
} from "./commands/GetMediaPipelineCommand";
import {
ListMediaCapturePipelinesCommand,
ListMediaCapturePipelinesCommandInput,
ListMediaCapturePipelinesCommandOutput,
} from "./commands/ListMediaCapturePipelinesCommand";
import {
ListMediaPipelinesCommand,
ListMediaPipelinesCommandInput,
ListMediaPipelinesCommandOutput,
} from "./commands/ListMediaPipelinesCommand";
import {
ListTagsForResourceCommand,
ListTagsForResourceCommandInput,
Expand All @@ -35,14 +60,12 @@ import {
} from "./commands/UntagResourceCommand";

/**
* <p>The Amazon Chime SDK media pipeline APIs in this section allow software developers to create Amazon Chime SDK media pipelines
* and capture audio, video, events, and data messages from Amazon Chime SDK meetings. For more information about media pipleines, see
* <a href="https://docs.aws.amazon.com/chime/latest/APIReference/API_Operations_Amazon_Chime_SDK_Media_Pipelines.html">Amzon Chime SDK media pipelines</a>.
* </p>
* <p>The Amazon Chime SDK media pipeline APIs in this section allow software developers to
* create Amazon Chime SDK media pipelines that capture, concatenate, or stream your Amazon Chime SDK meetings. For more information about media pipleines, see <a href="http://amazonaws.com/chime/latest/APIReference/API_Operations_Amazon_Chime_SDK_Media_Pipelines.html">Amazon Chime SDK media pipelines</a>. </p>
*/
export class ChimeSDKMediaPipelines extends ChimeSDKMediaPipelinesClient {
/**
* <p>Creates a media capture pipeline.</p>
* <p>Creates a media pipeline.</p>
*/
public createMediaCapturePipeline(
args: CreateMediaCapturePipelineCommandInput,
Expand Down Expand Up @@ -74,7 +97,71 @@ export class ChimeSDKMediaPipelines extends ChimeSDKMediaPipelinesClient {
}

/**
* <p>Deletes the media capture pipeline.</p>
* <p>Creates a media concatenation pipeline.</p>
*/
public createMediaConcatenationPipeline(
args: CreateMediaConcatenationPipelineCommandInput,
options?: __HttpHandlerOptions
): Promise<CreateMediaConcatenationPipelineCommandOutput>;
public createMediaConcatenationPipeline(
args: CreateMediaConcatenationPipelineCommandInput,
cb: (err: any, data?: CreateMediaConcatenationPipelineCommandOutput) => void
): void;
public createMediaConcatenationPipeline(
args: CreateMediaConcatenationPipelineCommandInput,
options: __HttpHandlerOptions,
cb: (err: any, data?: CreateMediaConcatenationPipelineCommandOutput) => void
): void;
public createMediaConcatenationPipeline(
args: CreateMediaConcatenationPipelineCommandInput,
optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateMediaConcatenationPipelineCommandOutput) => void),
cb?: (err: any, data?: CreateMediaConcatenationPipelineCommandOutput) => void
): Promise<CreateMediaConcatenationPipelineCommandOutput> | void {
const command = new CreateMediaConcatenationPipelineCommand(args);
if (typeof optionsOrCb === "function") {
this.send(command, optionsOrCb);
} else if (typeof cb === "function") {
if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`);
this.send(command, optionsOrCb || {}, cb);
} else {
return this.send(command, optionsOrCb);
}
}

/**
* <p>Creates a streaming media pipeline in an Amazon Chime SDK meeting.</p>
*/
public createMediaLiveConnectorPipeline(
args: CreateMediaLiveConnectorPipelineCommandInput,
options?: __HttpHandlerOptions
): Promise<CreateMediaLiveConnectorPipelineCommandOutput>;
public createMediaLiveConnectorPipeline(
args: CreateMediaLiveConnectorPipelineCommandInput,
cb: (err: any, data?: CreateMediaLiveConnectorPipelineCommandOutput) => void
): void;
public createMediaLiveConnectorPipeline(
args: CreateMediaLiveConnectorPipelineCommandInput,
options: __HttpHandlerOptions,
cb: (err: any, data?: CreateMediaLiveConnectorPipelineCommandOutput) => void
): void;
public createMediaLiveConnectorPipeline(
args: CreateMediaLiveConnectorPipelineCommandInput,
optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateMediaLiveConnectorPipelineCommandOutput) => void),
cb?: (err: any, data?: CreateMediaLiveConnectorPipelineCommandOutput) => void
): Promise<CreateMediaLiveConnectorPipelineCommandOutput> | void {
const command = new CreateMediaLiveConnectorPipelineCommand(args);
if (typeof optionsOrCb === "function") {
this.send(command, optionsOrCb);
} else if (typeof cb === "function") {
if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`);
this.send(command, optionsOrCb || {}, cb);
} else {
return this.send(command, optionsOrCb);
}
}

/**
* <p>Deletes the media pipeline.</p>
*/
public deleteMediaCapturePipeline(
args: DeleteMediaCapturePipelineCommandInput,
Expand Down Expand Up @@ -106,7 +193,39 @@ export class ChimeSDKMediaPipelines extends ChimeSDKMediaPipelinesClient {
}

/**
* <p>Gets an existing media capture pipeline.</p>
* <p>Deletes the media pipeline.</p>
*/
public deleteMediaPipeline(
args: DeleteMediaPipelineCommandInput,
options?: __HttpHandlerOptions
): Promise<DeleteMediaPipelineCommandOutput>;
public deleteMediaPipeline(
args: DeleteMediaPipelineCommandInput,
cb: (err: any, data?: DeleteMediaPipelineCommandOutput) => void
): void;
public deleteMediaPipeline(
args: DeleteMediaPipelineCommandInput,
options: __HttpHandlerOptions,
cb: (err: any, data?: DeleteMediaPipelineCommandOutput) => void
): void;
public deleteMediaPipeline(
args: DeleteMediaPipelineCommandInput,
optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteMediaPipelineCommandOutput) => void),
cb?: (err: any, data?: DeleteMediaPipelineCommandOutput) => void
): Promise<DeleteMediaPipelineCommandOutput> | void {
const command = new DeleteMediaPipelineCommand(args);
if (typeof optionsOrCb === "function") {
this.send(command, optionsOrCb);
} else if (typeof cb === "function") {
if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`);
this.send(command, optionsOrCb || {}, cb);
} else {
return this.send(command, optionsOrCb);
}
}

/**
* <p>Gets an existing media pipeline.</p>
*/
public getMediaCapturePipeline(
args: GetMediaCapturePipelineCommandInput,
Expand Down Expand Up @@ -138,7 +257,39 @@ export class ChimeSDKMediaPipelines extends ChimeSDKMediaPipelinesClient {
}

/**
* <p>Returns a list of media capture pipelines.</p>
* <p>Gets an existing media pipeline.</p>
*/
public getMediaPipeline(
args: GetMediaPipelineCommandInput,
options?: __HttpHandlerOptions
): Promise<GetMediaPipelineCommandOutput>;
public getMediaPipeline(
args: GetMediaPipelineCommandInput,
cb: (err: any, data?: GetMediaPipelineCommandOutput) => void
): void;
public getMediaPipeline(
args: GetMediaPipelineCommandInput,
options: __HttpHandlerOptions,
cb: (err: any, data?: GetMediaPipelineCommandOutput) => void
): void;
public getMediaPipeline(
args: GetMediaPipelineCommandInput,
optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetMediaPipelineCommandOutput) => void),
cb?: (err: any, data?: GetMediaPipelineCommandOutput) => void
): Promise<GetMediaPipelineCommandOutput> | void {
const command = new GetMediaPipelineCommand(args);
if (typeof optionsOrCb === "function") {
this.send(command, optionsOrCb);
} else if (typeof cb === "function") {
if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`);
this.send(command, optionsOrCb || {}, cb);
} else {
return this.send(command, optionsOrCb);
}
}

/**
* <p>Returns a list of media pipelines.</p>
*/
public listMediaCapturePipelines(
args: ListMediaCapturePipelinesCommandInput,
Expand Down Expand Up @@ -170,7 +321,39 @@ export class ChimeSDKMediaPipelines extends ChimeSDKMediaPipelinesClient {
}

/**
* <p>Lists the tags applied to an Amazon Chime SDK media capture pipeline.</p>
* <p>Returns a list of media pipelines.</p>
*/
public listMediaPipelines(
args: ListMediaPipelinesCommandInput,
options?: __HttpHandlerOptions
): Promise<ListMediaPipelinesCommandOutput>;
public listMediaPipelines(
args: ListMediaPipelinesCommandInput,
cb: (err: any, data?: ListMediaPipelinesCommandOutput) => void
): void;
public listMediaPipelines(
args: ListMediaPipelinesCommandInput,
options: __HttpHandlerOptions,
cb: (err: any, data?: ListMediaPipelinesCommandOutput) => void
): void;
public listMediaPipelines(
args: ListMediaPipelinesCommandInput,
optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListMediaPipelinesCommandOutput) => void),
cb?: (err: any, data?: ListMediaPipelinesCommandOutput) => void
): Promise<ListMediaPipelinesCommandOutput> | void {
const command = new ListMediaPipelinesCommand(args);
if (typeof optionsOrCb === "function") {
this.send(command, optionsOrCb);
} else if (typeof cb === "function") {
if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`);
this.send(command, optionsOrCb || {}, cb);
} else {
return this.send(command, optionsOrCb);
}
}

/**
* <p>Lists the tags available for a media pipeline.</p>
*/
public listTagsForResource(
args: ListTagsForResourceCommandInput,
Expand Down Expand Up @@ -202,7 +385,7 @@ export class ChimeSDKMediaPipelines extends ChimeSDKMediaPipelinesClient {
}

/**
* <p>Applies the specified tags to the specified Amazon Chime SDK media capture pipeline.</p>
* <p>The ARN of the media pipeline that you want to tag. Consists of he pipeline's endpoint region, resource ID, and pipeline ID.</p>
*/
public tagResource(args: TagResourceCommandInput, options?: __HttpHandlerOptions): Promise<TagResourceCommandOutput>;
public tagResource(args: TagResourceCommandInput, cb: (err: any, data?: TagResourceCommandOutput) => void): void;
Expand All @@ -228,7 +411,7 @@ export class ChimeSDKMediaPipelines extends ChimeSDKMediaPipelinesClient {
}

/**
* <p>Removes the specified tags from the specified Amazon Chime SDK media capture pipeline.</p>
* <p>Removes any tags from a media pipeline.</p>
*/
public untagResource(
args: UntagResourceCommandInput,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,18 +57,32 @@ import {
CreateMediaCapturePipelineCommandInput,
CreateMediaCapturePipelineCommandOutput,
} from "./commands/CreateMediaCapturePipelineCommand";
import {
CreateMediaConcatenationPipelineCommandInput,
CreateMediaConcatenationPipelineCommandOutput,
} from "./commands/CreateMediaConcatenationPipelineCommand";
import {
CreateMediaLiveConnectorPipelineCommandInput,
CreateMediaLiveConnectorPipelineCommandOutput,
} from "./commands/CreateMediaLiveConnectorPipelineCommand";
import {
DeleteMediaCapturePipelineCommandInput,
DeleteMediaCapturePipelineCommandOutput,
} from "./commands/DeleteMediaCapturePipelineCommand";
import {
DeleteMediaPipelineCommandInput,
DeleteMediaPipelineCommandOutput,
} from "./commands/DeleteMediaPipelineCommand";
import {
GetMediaCapturePipelineCommandInput,
GetMediaCapturePipelineCommandOutput,
} from "./commands/GetMediaCapturePipelineCommand";
import { GetMediaPipelineCommandInput, GetMediaPipelineCommandOutput } from "./commands/GetMediaPipelineCommand";
import {
ListMediaCapturePipelinesCommandInput,
ListMediaCapturePipelinesCommandOutput,
} from "./commands/ListMediaCapturePipelinesCommand";
import { ListMediaPipelinesCommandInput, ListMediaPipelinesCommandOutput } from "./commands/ListMediaPipelinesCommand";
import {
ListTagsForResourceCommandInput,
ListTagsForResourceCommandOutput,
Expand All @@ -79,18 +93,28 @@ import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig";

export type ServiceInputTypes =
| CreateMediaCapturePipelineCommandInput
| CreateMediaConcatenationPipelineCommandInput
| CreateMediaLiveConnectorPipelineCommandInput
| DeleteMediaCapturePipelineCommandInput
| DeleteMediaPipelineCommandInput
| GetMediaCapturePipelineCommandInput
| GetMediaPipelineCommandInput
| ListMediaCapturePipelinesCommandInput
| ListMediaPipelinesCommandInput
| ListTagsForResourceCommandInput
| TagResourceCommandInput
| UntagResourceCommandInput;

export type ServiceOutputTypes =
| CreateMediaCapturePipelineCommandOutput
| CreateMediaConcatenationPipelineCommandOutput
| CreateMediaLiveConnectorPipelineCommandOutput
| DeleteMediaCapturePipelineCommandOutput
| DeleteMediaPipelineCommandOutput
| GetMediaCapturePipelineCommandOutput
| GetMediaPipelineCommandOutput
| ListMediaCapturePipelinesCommandOutput
| ListMediaPipelinesCommandOutput
| ListTagsForResourceCommandOutput
| TagResourceCommandOutput
| UntagResourceCommandOutput;
Expand Down Expand Up @@ -249,10 +273,8 @@ type ChimeSDKMediaPipelinesClientResolvedConfigType = __SmithyResolvedConfigurat
export interface ChimeSDKMediaPipelinesClientResolvedConfig extends ChimeSDKMediaPipelinesClientResolvedConfigType {}

/**
* <p>The Amazon Chime SDK media pipeline APIs in this section allow software developers to create Amazon Chime SDK media pipelines
* and capture audio, video, events, and data messages from Amazon Chime SDK meetings. For more information about media pipleines, see
* <a href="https://docs.aws.amazon.com/chime/latest/APIReference/API_Operations_Amazon_Chime_SDK_Media_Pipelines.html">Amzon Chime SDK media pipelines</a>.
* </p>
* <p>The Amazon Chime SDK media pipeline APIs in this section allow software developers to
* create Amazon Chime SDK media pipelines that capture, concatenate, or stream your Amazon Chime SDK meetings. For more information about media pipleines, see <a href="http://amazonaws.com/chime/latest/APIReference/API_Operations_Amazon_Chime_SDK_Media_Pipelines.html">Amazon Chime SDK media pipelines</a>. </p>
*/
export class ChimeSDKMediaPipelinesClient extends __Client<
__HttpHandlerOptions,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ export interface CreateMediaCapturePipelineCommandInput extends CreateMediaCaptu
export interface CreateMediaCapturePipelineCommandOutput extends CreateMediaCapturePipelineResponse, __MetadataBearer {}

/**
* <p>Creates a media capture pipeline.</p>
* <p>Creates a media pipeline.</p>
* @example
* Use a bare-bones client and the command you need to make an API call.
* ```javascript
Expand Down
Loading

0 comments on commit 002e420

Please sign in to comment.