@aws-cdk/aws-medialive-alpha 2.268.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/.jsii +60888 -0
  2. package/.jsii.tabl.json.gz +0 -0
  3. package/.warnings.jsii.js +524 -0
  4. package/LICENSE +201 -0
  5. package/NOTICE +2 -0
  6. package/README.md +1297 -0
  7. package/grants.json +27 -0
  8. package/lib/audio-codec-settings.d.ts +901 -0
  9. package/lib/audio-codec-settings.js +1098 -0
  10. package/lib/audio-selector.d.ts +170 -0
  11. package/lib/audio-selector.js +306 -0
  12. package/lib/avail-settings.d.ts +231 -0
  13. package/lib/avail-settings.js +226 -0
  14. package/lib/caption-selector.d.ts +234 -0
  15. package/lib/caption-selector.js +413 -0
  16. package/lib/caption-settings.d.ts +349 -0
  17. package/lib/caption-settings.js +482 -0
  18. package/lib/channel-features.d.ts +106 -0
  19. package/lib/channel-features.js +85 -0
  20. package/lib/channel-placement-group.d.ts +73 -0
  21. package/lib/channel-placement-group.js +132 -0
  22. package/lib/channel.d.ts +687 -0
  23. package/lib/channel.js +1096 -0
  24. package/lib/cluster.d.ts +129 -0
  25. package/lib/cluster.js +158 -0
  26. package/lib/color-correction.d.ts +39 -0
  27. package/lib/color-correction.js +29 -0
  28. package/lib/destinations.d.ts +242 -0
  29. package/lib/destinations.js +455 -0
  30. package/lib/encode-configuration.d.ts +615 -0
  31. package/lib/encode-configuration.js +629 -0
  32. package/lib/enums.d.ts +698 -0
  33. package/lib/enums.js +1045 -0
  34. package/lib/file-location.d.ts +65 -0
  35. package/lib/file-location.js +150 -0
  36. package/lib/framerate.d.ts +31 -0
  37. package/lib/framerate.js +71 -0
  38. package/lib/index.d.ts +26 -0
  39. package/lib/index.js +43 -0
  40. package/lib/input-attachment.d.ts +319 -0
  41. package/lib/input-attachment.js +228 -0
  42. package/lib/input-security-group.d.ts +51 -0
  43. package/lib/input-security-group.js +123 -0
  44. package/lib/input-specification.d.ts +111 -0
  45. package/lib/input-specification.js +181 -0
  46. package/lib/input.d.ts +505 -0
  47. package/lib/input.js +803 -0
  48. package/lib/m2ts-settings.d.ts +421 -0
  49. package/lib/m2ts-settings.js +469 -0
  50. package/lib/m3u8-settings.d.ts +272 -0
  51. package/lib/m3u8-settings.js +304 -0
  52. package/lib/medialive-grants.generated.d.ts +30 -0
  53. package/lib/medialive-grants.generated.js +92 -0
  54. package/lib/network.d.ts +83 -0
  55. package/lib/network.js +132 -0
  56. package/lib/output-group.d.ts +924 -0
  57. package/lib/output-group.js +941 -0
  58. package/lib/outputs.d.ts +304 -0
  59. package/lib/outputs.js +598 -0
  60. package/lib/sdi-source.d.ts +124 -0
  61. package/lib/sdi-source.js +180 -0
  62. package/lib/shared.d.ts +44 -0
  63. package/lib/shared.js +146 -0
  64. package/lib/video-codec-settings.d.ts +1500 -0
  65. package/lib/video-codec-settings.js +1722 -0
  66. package/lib/video-selection.d.ts +92 -0
  67. package/lib/video-selection.js +95 -0
  68. package/package.json +135 -0
  69. package/rosetta/_generated.ts-fixture +6 -0
  70. package/rosetta/default.ts-fixture +21 -0
@@ -0,0 +1,129 @@
1
+ import type { IResource } from 'aws-cdk-lib';
2
+ import { Resource } from 'aws-cdk-lib';
3
+ import type { IRole } from 'aws-cdk-lib/aws-iam';
4
+ import type { ClusterReference, IClusterRef } from 'aws-cdk-lib/aws-medialive';
5
+ import type { Construct } from 'constructs';
6
+ /**
7
+ * The hardware type for the cluster.
8
+ */
9
+ export declare class ClusterType {
10
+ /** On-premises cluster */
11
+ static readonly ON_PREMISES: ClusterType;
12
+ /** AWS Outposts rack */
13
+ static readonly OUTPOSTS_RACK: ClusterType;
14
+ /** AWS Outposts server */
15
+ static readonly OUTPOSTS_SERVER: ClusterType;
16
+ /** Amazon EC2 */
17
+ static readonly EC2: ClusterType;
18
+ /** A value not yet modelled by AWS CDK. */
19
+ static of(value: string): ClusterType;
20
+ /** The underlying string value passed to CloudFormation. */
21
+ readonly value: string;
22
+ private constructor();
23
+ }
24
+ /**
25
+ * A mapping between a logical interface name and a network ID.
26
+ */
27
+ export interface InterfaceMapping {
28
+ /**
29
+ * The logical interface name.
30
+ */
31
+ readonly logicalInterfaceName: string;
32
+ /**
33
+ * The network ID to map to.
34
+ */
35
+ readonly networkId: string;
36
+ }
37
+ /**
38
+ * Network settings for a MediaLive Cluster.
39
+ */
40
+ export interface ClusterNetworkSettings {
41
+ /**
42
+ * The default route for the cluster.
43
+ * @default - no default route
44
+ */
45
+ readonly defaultRoute?: string;
46
+ /**
47
+ * The interface mappings for the cluster.
48
+ * @default - no interface mappings
49
+ */
50
+ readonly interfaceMappings?: InterfaceMapping[];
51
+ }
52
+ /**
53
+ * Represents a MediaLive Cluster.
54
+ */
55
+ export interface ICluster extends IResource, IClusterRef {
56
+ /**
57
+ * The ARN of the cluster.
58
+ * @attribute
59
+ */
60
+ readonly clusterArn: string;
61
+ /**
62
+ * The ID of the cluster.
63
+ * @attribute
64
+ */
65
+ readonly clusterId: string;
66
+ /**
67
+ * The IDs of channels running on this cluster.
68
+ * @attribute
69
+ */
70
+ readonly clusterChannelIds?: string[];
71
+ /**
72
+ * The current state of the cluster.
73
+ * @attribute
74
+ */
75
+ readonly clusterState?: string;
76
+ }
77
+ /**
78
+ * Properties for creating a MediaLive Cluster.
79
+ */
80
+ export interface ClusterProps {
81
+ /**
82
+ * The name of the cluster.
83
+ * @default - auto-generated name
84
+ */
85
+ readonly clusterName?: string;
86
+ /**
87
+ * The hardware type for the cluster.
88
+ * @default ClusterType.ON_PREMISES
89
+ */
90
+ readonly clusterType?: ClusterType;
91
+ /**
92
+ * The IAM role for nodes in the cluster.
93
+ *
94
+ * [disable-awslint:prefer-ref-interface]
95
+ */
96
+ readonly instanceRole: IRole;
97
+ /**
98
+ * Network settings for the cluster - only required if your networking setup requires it.
99
+ * @see https://docs.aws.amazon.com/medialive/latest/ug/emla-deploy-identify-network-requirements.html
100
+ *
101
+ * @default - no network settings
102
+ */
103
+ readonly networkSettings?: ClusterNetworkSettings;
104
+ /**
105
+ * Tags to add to the cluster.
106
+ * @default - no tags
107
+ */
108
+ readonly tags?: {
109
+ [key: string]: string;
110
+ };
111
+ }
112
+ /**
113
+ * Defines an AWS Elemental MediaLive Cluster.
114
+ *
115
+ * A cluster represents a group of on-premises hardware nodes used by MediaLive Anywhere.
116
+ */
117
+ export declare class Cluster extends Resource implements ICluster {
118
+ /** Uniquely identifies this class. */
119
+ static readonly PROPERTY_INJECTION_ID: string;
120
+ /** Import an existing cluster by its ARN. The id is parsed out of the ARN. */
121
+ static fromClusterArn(scope: Construct, id: string, clusterArn: string): ICluster;
122
+ readonly clusterArn: string;
123
+ readonly clusterId: string;
124
+ readonly clusterChannelIds?: string[];
125
+ readonly clusterState?: string;
126
+ /** A reference to this Cluster resource. */
127
+ get clusterRef(): ClusterReference;
128
+ constructor(scope: Construct, id: string, props: ClusterProps);
129
+ }
package/lib/cluster.js ADDED
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
3
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
4
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
5
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
6
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
7
+ var _, done = false;
8
+ for (var i = decorators.length - 1; i >= 0; i--) {
9
+ var context = {};
10
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
11
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
12
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
13
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
14
+ if (kind === "accessor") {
15
+ if (result === void 0) continue;
16
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
17
+ if (_ = accept(result.get)) descriptor.get = _;
18
+ if (_ = accept(result.set)) descriptor.set = _;
19
+ if (_ = accept(result.init)) initializers.unshift(_);
20
+ }
21
+ else if (_ = accept(result)) {
22
+ if (kind === "field") initializers.unshift(_);
23
+ else descriptor[key] = _;
24
+ }
25
+ }
26
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
27
+ done = true;
28
+ };
29
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
30
+ var useValue = arguments.length > 2;
31
+ for (var i = 0; i < initializers.length; i++) {
32
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
33
+ }
34
+ return useValue ? value : void 0;
35
+ };
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.Cluster = exports.ClusterType = void 0;
38
+ const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
39
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
40
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
41
+ const aws_medialive_1 = require("aws-cdk-lib/aws-medialive");
42
+ const metadata_resource_1 = require("aws-cdk-lib/core/lib/metadata-resource");
43
+ const prop_injectable_1 = require("aws-cdk-lib/core/lib/prop-injectable");
44
+ const shared_1 = require("./shared");
45
+ /**
46
+ * The hardware type for the cluster.
47
+ */
48
+ class ClusterType {
49
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.ClusterType", version: "2.268.0-alpha.0" };
50
+ /** On-premises cluster */
51
+ static ON_PREMISES = new ClusterType('ON_PREMISES');
52
+ /** AWS Outposts rack */
53
+ static OUTPOSTS_RACK = new ClusterType('OUTPOSTS_RACK');
54
+ /** AWS Outposts server */
55
+ static OUTPOSTS_SERVER = new ClusterType('OUTPOSTS_SERVER');
56
+ /** Amazon EC2 */
57
+ static EC2 = new ClusterType('EC2');
58
+ /** A value not yet modelled by AWS CDK. */
59
+ static of(value) {
60
+ return new ClusterType(value);
61
+ }
62
+ /** The underlying string value passed to CloudFormation. */
63
+ value;
64
+ constructor(value) {
65
+ this.value = value;
66
+ }
67
+ }
68
+ exports.ClusterType = ClusterType;
69
+ /**
70
+ * Defines an AWS Elemental MediaLive Cluster.
71
+ *
72
+ * A cluster represents a group of on-premises hardware nodes used by MediaLive Anywhere.
73
+ */
74
+ let Cluster = (() => {
75
+ let _classDecorators = [prop_injectable_1.propertyInjectable];
76
+ let _classDescriptor;
77
+ let _classExtraInitializers = [];
78
+ let _classThis;
79
+ let _classSuper = aws_cdk_lib_1.Resource;
80
+ var Cluster = class extends _classSuper {
81
+ static { _classThis = this; }
82
+ static {
83
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
84
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
85
+ Cluster = _classThis = _classDescriptor.value;
86
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
87
+ }
88
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.Cluster", version: "2.268.0-alpha.0" };
89
+ /** Uniquely identifies this class. */
90
+ static PROPERTY_INJECTION_ID = '@aws-cdk.aws-medialive-alpha.Cluster';
91
+ /** Import an existing cluster by its ARN. The id is parsed out of the ARN. */
92
+ static fromClusterArn(scope, id, clusterArn) {
93
+ const clusterId = (0, shared_1.extractResourceId)(clusterArn, 'Cluster');
94
+ class Import extends aws_cdk_lib_1.Resource {
95
+ clusterArn = clusterArn;
96
+ clusterId = clusterId;
97
+ clusterChannelIds = undefined;
98
+ clusterState = undefined;
99
+ get clusterRef() {
100
+ return {
101
+ clusterId: this.clusterId,
102
+ clusterArn: this.clusterArn,
103
+ };
104
+ }
105
+ }
106
+ return new Import(scope, id);
107
+ }
108
+ clusterArn;
109
+ clusterId;
110
+ clusterChannelIds;
111
+ clusterState;
112
+ /** A reference to this Cluster resource. */
113
+ get clusterRef() {
114
+ return {
115
+ clusterId: this.clusterId,
116
+ clusterArn: this.clusterArn,
117
+ };
118
+ }
119
+ constructor(scope, id, props) {
120
+ super(scope, id, {
121
+ physicalName: props.clusterName ?? aws_cdk_lib_1.Lazy.string({ produce: () => aws_cdk_lib_1.Names.uniqueResourceName(this, { maxLength: 256 }) }),
122
+ });
123
+ try {
124
+ jsiiDeprecationWarnings._aws_cdk_aws_medialive_alpha_ClusterProps(props);
125
+ }
126
+ catch (error) {
127
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
128
+ Error.captureStackTrace(error, Cluster);
129
+ }
130
+ throw error;
131
+ }
132
+ (0, metadata_resource_1.addConstructMetadata)(this, props);
133
+ const resource = new aws_medialive_1.CfnCluster(this, 'Resource', {
134
+ name: this.physicalName,
135
+ clusterType: (props.clusterType ?? ClusterType.ON_PREMISES).value,
136
+ instanceRoleArn: props.instanceRole.roleArn,
137
+ networkSettings: props.networkSettings ? {
138
+ defaultRoute: props.networkSettings.defaultRoute,
139
+ interfaceMappings: props.networkSettings.interfaceMappings?.map(mapping => ({
140
+ logicalInterfaceName: mapping.logicalInterfaceName,
141
+ networkId: mapping.networkId,
142
+ })),
143
+ } : undefined,
144
+ tags: props.tags ? Object.entries(props.tags).map(([key, value]) => ({ key, value })) : undefined,
145
+ });
146
+ this.clusterArn = resource.attrArn;
147
+ this.clusterId = resource.ref;
148
+ this.clusterChannelIds = resource.attrChannelIds;
149
+ this.clusterState = resource.attrState;
150
+ }
151
+ static {
152
+ __runInitializers(_classThis, _classExtraInitializers);
153
+ }
154
+ };
155
+ return Cluster = _classThis;
156
+ })();
157
+ exports.Cluster = Cluster;
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2x1c3Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNsdXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsNkNBQW9EO0FBR3BELDZEQUF1RDtBQUN2RCw4RUFBOEU7QUFDOUUsMEVBQTBFO0FBRTFFLHFDQUE2QztBQUU3Qzs7R0FFRztBQUNILE1BQWEsV0FBVzs7SUFDdEIsMEJBQTBCO0lBQ25CLE1BQU0sQ0FBVSxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEUsd0JBQXdCO0lBQ2pCLE1BQU0sQ0FBVSxhQUFhLEdBQUcsSUFBSSxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDeEUsMEJBQTBCO0lBQ25CLE1BQU0sQ0FBVSxlQUFlLEdBQUcsSUFBSSxXQUFXLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUM1RSxpQkFBaUI7SUFDVixNQUFNLENBQVUsR0FBRyxHQUFHLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXBELDJDQUEyQztJQUNwQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQWE7UUFDNUIsT0FBTyxJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUMvQjtJQUVELDREQUE0RDtJQUM1QyxLQUFLLENBQVM7SUFFOUIsWUFBb0IsS0FBYTtRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztLQUNwQjs7QUFwQkgsa0NBcUJDO0FBNEZEOzs7O0dBSUc7SUFFVSxPQUFPOzRCQURuQixvQ0FBa0I7Ozs7c0JBQ1Usc0JBQVE7dUJBQWhCLFNBQVEsV0FBUTs7OztZQUFyQyw2S0E4REM7Ozs7O1FBN0RDLHNDQUFzQztRQUMvQixNQUFNLENBQVUscUJBQXFCLEdBQVcsc0NBQXNDLENBQUM7UUFFOUYsOEVBQThFO1FBQ3ZFLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUs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OztBQUFQLDBCQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJUmVzb3VyY2UgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBMYXp5LCBOYW1lcywgUmVzb3VyY2UgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgdHlwZSB7IElSb2xlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgdHlwZSB7IENsdXN0ZXJSZWZlcmVuY2UsIElDbHVzdGVyUmVmIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLW1lZGlhbGl2ZSc7XG5pbXBvcnQgeyBDZm5DbHVzdGVyIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLW1lZGlhbGl2ZSc7XG5pbXBvcnQgeyBhZGRDb25zdHJ1Y3RNZXRhZGF0YSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL21ldGFkYXRhLXJlc291cmNlJztcbmltcG9ydCB7IHByb3BlcnR5SW5qZWN0YWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL3Byb3AtaW5qZWN0YWJsZSc7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgZXh0cmFjdFJlc291cmNlSWQgfSBmcm9tICcuL3NoYXJlZCc7XG5cbi8qKlxuICogVGhlIGhhcmR3YXJlIHR5cGUgZm9yIHRoZSBjbHVzdGVyLlxuICovXG5leHBvcnQgY2xhc3MgQ2x1c3RlclR5cGUge1xuICAvKiogT24tcHJlbWlzZXMgY2x1c3RlciAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE9OX1BSRU1JU0VTID0gbmV3IENsdXN0ZXJUeXBlKCdPTl9QUkVNSVNFUycpO1xuICAvKiogQVdTIE91dHBvc3RzIHJhY2sgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBPVVRQT1NUU19SQUNLID0gbmV3IENsdXN0ZXJUeXBlKCdPVVRQT1NUU19SQUNLJyk7XG4gIC8qKiBBV1MgT3V0cG9zdHMgc2VydmVyICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgT1VUUE9TVFNfU0VSVkVSID0gbmV3IENsdXN0ZXJUeXBlKCdPVVRQT1NUU19TRVJWRVInKTtcbiAgLyoqIEFtYXpvbiBFQzIgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBFQzIgPSBuZXcgQ2x1c3RlclR5cGUoJ0VDMicpO1xuXG4gIC8qKiBBIHZhbHVlIG5vdCB5ZXQgbW9kZWxsZWQgYnkgQVdTIENESy4gKi9cbiAgcHVibGljIHN0YXRpYyBvZih2YWx1ZTogc3RyaW5nKTogQ2x1c3RlclR5cGUge1xuICAgIHJldHVybiBuZXcgQ2x1c3RlclR5cGUodmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKipcbiAqIEEgbWFwcGluZyBiZXR3ZWVuIGEgbG9naWNhbCBpbnRlcmZhY2UgbmFtZSBhbmQgYSBuZXR3b3JrIElELlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEludGVyZmFjZU1hcHBpbmcge1xuICAvKipcbiAgICogVGhlIGxvZ2ljYWwgaW50ZXJmYWNlIG5hbWUuXG4gICAqL1xuICByZWFkb25seSBsb2dpY2FsSW50ZXJmYWNlTmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5ldHdvcmsgSUQgdG8gbWFwIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgbmV0d29ya0lkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogTmV0d29yayBzZXR0aW5ncyBmb3IgYSBNZWRpYUxpdmUgQ2x1c3Rlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbHVzdGVyTmV0d29ya1NldHRpbmdzIHtcbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IHJvdXRlIGZvciB0aGUgY2x1c3Rlci5cbiAgICogQGRlZmF1bHQgLSBubyBkZWZhdWx0IHJvdXRlXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0Um91dGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgaW50ZXJmYWNlIG1hcHBpbmdzIGZvciB0aGUgY2x1c3Rlci5cbiAgICogQGRlZmF1bHQgLSBubyBpbnRlcmZhY2UgbWFwcGluZ3NcbiAgICovXG4gIHJlYWRvbmx5IGludGVyZmFjZU1hcHBpbmdzPzogSW50ZXJmYWNlTWFwcGluZ1tdO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBNZWRpYUxpdmUgQ2x1c3Rlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ2x1c3RlciBleHRlbmRzIElSZXNvdXJjZSwgSUNsdXN0ZXJSZWYge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgY2x1c3Rlci5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2x1c3RlckFybjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBjbHVzdGVyLlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBjbHVzdGVySWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBJRHMgb2YgY2hhbm5lbHMgcnVubmluZyBvbiB0aGlzIGNsdXN0ZXIuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGNsdXN0ZXJDaGFubmVsSWRzPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBUaGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgY2x1c3Rlci5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2x1c3RlclN0YXRlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGEgTWVkaWFMaXZlIENsdXN0ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlclByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBjbHVzdGVyLlxuICAgKiBAZGVmYXVsdCAtIGF1dG8tZ2VuZXJhdGVkIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGNsdXN0ZXJOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGhhcmR3YXJlIHR5cGUgZm9yIHRoZSBjbHVzdGVyLlxuICAgKiBAZGVmYXVsdCBDbHVzdGVyVHlwZS5PTl9QUkVNSVNFU1xuICAgKi9cbiAgcmVhZG9ubHkgY2x1c3RlclR5cGU/OiBDbHVzdGVyVHlwZTtcbiAgLyoqXG4gICAqIFRoZSBJQU0gcm9sZSBmb3Igbm9kZXMgaW4gdGhlIGNsdXN0ZXIuXG4gICAqXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6cHJlZmVyLXJlZi1pbnRlcmZhY2VdXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZVJvbGU6IElSb2xlO1xuICAvKipcbiAgICogTmV0d29yayBzZXR0aW5ncyBmb3IgdGhlIGNsdXN0ZXIgLSBvbmx5IHJlcXVpcmVkIGlmIHlvdXIgbmV0d29ya2luZyBzZXR1cCByZXF1aXJlcyBpdC5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbWVkaWFsaXZlL2xhdGVzdC91Zy9lbWxhLWRlcGxveS1pZGVudGlmeS1uZXR3b3JrLXJlcXVpcmVtZW50cy5odG1sXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbmV0d29yayBzZXR0aW5nc1xuICAgKi9cbiAgcmVhZG9ubHkgbmV0d29ya1NldHRpbmdzPzogQ2x1c3Rlck5ldHdvcmtTZXR0aW5ncztcbiAgLyoqXG4gICAqIFRhZ3MgdG8gYWRkIHRvIHRoZSBjbHVzdGVyLlxuICAgKiBAZGVmYXVsdCAtIG5vIHRhZ3NcbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG4vKipcbiAqIERlZmluZXMgYW4gQVdTIEVsZW1lbnRhbCBNZWRpYUxpdmUgQ2x1c3Rlci5cbiAqXG4gKiBBIGNsdXN0ZXIgcmVwcmVzZW50cyBhIGdyb3VwIG9mIG9uLXByZW1pc2VzIGhhcmR3YXJlIG5vZGVzIHVzZWQgYnkgTWVkaWFMaXZlIEFueXdoZXJlLlxuICovXG5AcHJvcGVydHlJbmplY3RhYmxlXG5leHBvcnQgY2xhc3MgQ2x1c3RlciBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSUNsdXN0ZXIge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1tZWRpYWxpdmUtYWxwaGEuQ2x1c3Rlcic7XG5cbiAgLyoqIEltcG9ydCBhbiBleGlzdGluZyBjbHVzdGVyIGJ5IGl0cyBBUk4uIFRoZSBpZCBpcyBwYXJzZWQgb3V0IG9mIHRoZSBBUk4uICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUNsdXN0ZXJBcm4oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgY2x1c3RlckFybjogc3RyaW5nKTogSUNsdXN0ZXIge1xuICAgIGNvbnN0IGNsdXN0ZXJJZCA9IGV4dHJhY3RSZXNvdXJjZUlkKGNsdXN0ZXJBcm4sICdDbHVzdGVyJyk7XG5cbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElDbHVzdGVyIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBjbHVzdGVyQXJuID0gY2x1c3RlckFybjtcbiAgICAgIHB1YmxpYyByZWFkb25seSBjbHVzdGVySWQgPSBjbHVzdGVySWQ7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgY2x1c3RlckNoYW5uZWxJZHMgPSB1bmRlZmluZWQ7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgY2x1c3RlclN0YXRlID0gdW5kZWZpbmVkO1xuICAgICAgcHVibGljIGdldCBjbHVzdGVyUmVmKCk6IENsdXN0ZXJSZWZlcmVuY2Uge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNsdXN0ZXJJZDogdGhpcy5jbHVzdGVySWQsXG4gICAgICAgICAgY2x1c3RlckFybjogdGhpcy5jbHVzdGVyQXJuLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IGNsdXN0ZXJBcm46IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGNsdXN0ZXJJZDogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgY2x1c3RlckNoYW5uZWxJZHM/OiBzdHJpbmdbXTtcbiAgcHVibGljIHJlYWRvbmx5IGNsdXN0ZXJTdGF0ZT86IHN0cmluZztcblxuICAvKiogQSByZWZlcmVuY2UgdG8gdGhpcyBDbHVzdGVyIHJlc291cmNlLiAqL1xuICBwdWJsaWMgZ2V0IGNsdXN0ZXJSZWYoKTogQ2x1c3RlclJlZmVyZW5jZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNsdXN0ZXJJZDogdGhpcy5jbHVzdGVySWQsXG4gICAgICBjbHVzdGVyQXJuOiB0aGlzLmNsdXN0ZXJBcm4sXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDbHVzdGVyUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHBoeXNpY2FsTmFtZTogcHJvcHMuY2x1c3Rlck5hbWUgPz8gTGF6eS5zdHJpbmcoeyBwcm9kdWNlOiAoKSA9PiBOYW1lcy51bmlxdWVSZXNvdXJjZU5hbWUodGhpcywgeyBtYXhMZW5ndGg6IDI1NiB9KSB9KSxcbiAgICB9KTtcblxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIGNvbnN0IHJlc291cmNlID0gbmV3IENmbkNsdXN0ZXIodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgbmFtZTogdGhpcy5waHlzaWNhbE5hbWUsXG4gICAgICBjbHVzdGVyVHlwZTogKHByb3BzLmNsdXN0ZXJUeXBlID8/IENsdXN0ZXJUeXBlLk9OX1BSRU1JU0VTKS52YWx1ZSxcbiAgICAgIGluc3RhbmNlUm9sZUFybjogcHJvcHMuaW5zdGFuY2VSb2xlLnJvbGVBcm4sXG4gICAgICBuZXR3b3JrU2V0dGluZ3M6IHByb3BzLm5ldHdvcmtTZXR0aW5ncyA/IHtcbiAgICAgICAgZGVmYXVsdFJvdXRlOiBwcm9wcy5uZXR3b3JrU2V0dGluZ3MuZGVmYXVsdFJvdXRlLFxuICAgICAgICBpbnRlcmZhY2VNYXBwaW5nczogcHJvcHMubmV0d29ya1NldHRpbmdzLmludGVyZmFjZU1hcHBpbmdzPy5tYXAobWFwcGluZyA9PiAoe1xuICAgICAgICAgIGxvZ2ljYWxJbnRlcmZhY2VOYW1lOiBtYXBwaW5nLmxvZ2ljYWxJbnRlcmZhY2VOYW1lLFxuICAgICAgICAgIG5ldHdvcmtJZDogbWFwcGluZy5uZXR3b3JrSWQsXG4gICAgICAgIH0pKSxcbiAgICAgIH0gOiB1bmRlZmluZWQsXG4gICAgICB0YWdzOiBwcm9wcy50YWdzID8gT2JqZWN0LmVudHJpZXMocHJvcHMudGFncykubWFwKChba2V5LCB2YWx1ZV0pID0+ICh7IGtleSwgdmFsdWUgfSkpIDogdW5kZWZpbmVkLFxuICAgIH0pO1xuXG4gICAgdGhpcy5jbHVzdGVyQXJuID0gcmVzb3VyY2UuYXR0ckFybjtcbiAgICB0aGlzLmNsdXN0ZXJJZCA9IHJlc291cmNlLnJlZjtcbiAgICB0aGlzLmNsdXN0ZXJDaGFubmVsSWRzID0gcmVzb3VyY2UuYXR0ckNoYW5uZWxJZHM7XG4gICAgdGhpcy5jbHVzdGVyU3RhdGUgPSByZXNvdXJjZS5hdHRyU3RhdGU7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,39 @@
1
+ import type { Lut } from './file-location';
2
+ /**
3
+ * A color space supported for 3D-LUT color conversion in a color-correction rule.
4
+ */
5
+ export declare class ColorSpace {
6
+ /** HDR10. */
7
+ static readonly HDR10: ColorSpace;
8
+ /** HLG (Rec. 2020). */
9
+ static readonly HLG_2020: ColorSpace;
10
+ /** Rec. 601 (SD). */
11
+ static readonly REC_601: ColorSpace;
12
+ /** Rec. 709 (HD). */
13
+ static readonly REC_709: ColorSpace;
14
+ /** A value not yet modelled by AWS CDK. */
15
+ static of(value: string): ColorSpace;
16
+ /** The underlying string value passed to CloudFormation. */
17
+ readonly value: string;
18
+ private constructor();
19
+ }
20
+ /**
21
+ * A color space correction rule.
22
+ */
23
+ export interface ColorCorrection {
24
+ /**
25
+ * The input color space to match.
26
+ */
27
+ readonly inputColorSpace: ColorSpace;
28
+ /**
29
+ * The output color space to convert to.
30
+ */
31
+ readonly outputColorSpace: ColorSpace;
32
+ /**
33
+ * The 3D LUT file for the color correction. MediaLive reads the LUT from S3 at runtime, so it
34
+ * must be an S3 location — provide it via `Lut.fromBucket()` (which uses the secure `s3ssl://`
35
+ * form and auto-grants the channel role read access) or `Lut.url()` with an `s3://`/`s3ssl://` URL.
36
+ * @default - no LUT file
37
+ */
38
+ readonly lut?: Lut;
39
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ColorSpace = void 0;
4
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
5
+ /**
6
+ * A color space supported for 3D-LUT color conversion in a color-correction rule.
7
+ */
8
+ class ColorSpace {
9
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.ColorSpace", version: "2.268.0-alpha.0" };
10
+ /** HDR10. */
11
+ static HDR10 = new ColorSpace('HDR10');
12
+ /** HLG (Rec. 2020). */
13
+ static HLG_2020 = new ColorSpace('HLG_2020');
14
+ /** Rec. 601 (SD). */
15
+ static REC_601 = new ColorSpace('REC_601');
16
+ /** Rec. 709 (HD). */
17
+ static REC_709 = new ColorSpace('REC_709');
18
+ /** A value not yet modelled by AWS CDK. */
19
+ static of(value) {
20
+ return new ColorSpace(value);
21
+ }
22
+ /** The underlying string value passed to CloudFormation. */
23
+ value;
24
+ constructor(value) {
25
+ this.value = value;
26
+ }
27
+ }
28
+ exports.ColorSpace = ColorSpace;
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItY29ycmVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbG9yLWNvcnJlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUVBOztHQUVHO0FBQ0gsTUFBYSxVQUFVOztJQUNyQixhQUFhO0lBQ04sTUFBTSxDQUFVLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2RCx1QkFBdUI7SUFDaEIsTUFBTSxDQUFVLFFBQVEsR0FBRyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3RCxxQkFBcUI7SUFDZCxNQUFNLENBQVUsT0FBTyxHQUFHLElBQUksVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNELHFCQUFxQjtJQUNkLE1BQU0sQ0FBVSxPQUFPLEdBQUcsSUFBSSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFM0QsMkNBQTJDO0lBQ3BDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBYTtRQUM1QixPQUFPLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzlCO0lBRUQsNERBQTREO0lBQzVDLEtBQUssQ0FBUztJQUU5QixZQUFvQixLQUFhO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0tBQ3BCOztBQXBCSCxnQ0FxQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEx1dCB9IGZyb20gJy4vZmlsZS1sb2NhdGlvbic7XG5cbi8qKlxuICogQSBjb2xvciBzcGFjZSBzdXBwb3J0ZWQgZm9yIDNELUxVVCBjb2xvciBjb252ZXJzaW9uIGluIGEgY29sb3ItY29ycmVjdGlvbiBydWxlLlxuICovXG5leHBvcnQgY2xhc3MgQ29sb3JTcGFjZSB7XG4gIC8qKiBIRFIxMC4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBIRFIxMCA9IG5ldyBDb2xvclNwYWNlKCdIRFIxMCcpO1xuICAvKiogSExHIChSZWMuIDIwMjApLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEhMR18yMDIwID0gbmV3IENvbG9yU3BhY2UoJ0hMR18yMDIwJyk7XG4gIC8qKiBSZWMuIDYwMSAoU0QpLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFJFQ182MDEgPSBuZXcgQ29sb3JTcGFjZSgnUkVDXzYwMScpO1xuICAvKiogUmVjLiA3MDkgKEhEKS4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBSRUNfNzA5ID0gbmV3IENvbG9yU3BhY2UoJ1JFQ183MDknKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IENvbG9yU3BhY2Uge1xuICAgIHJldHVybiBuZXcgQ29sb3JTcGFjZSh2YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIHVuZGVybHlpbmcgc3RyaW5nIHZhbHVlIHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKlxuICogQSBjb2xvciBzcGFjZSBjb3JyZWN0aW9uIHJ1bGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29sb3JDb3JyZWN0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSBpbnB1dCBjb2xvciBzcGFjZSB0byBtYXRjaC5cbiAgICovXG4gIHJlYWRvbmx5IGlucHV0Q29sb3JTcGFjZTogQ29sb3JTcGFjZTtcbiAgLyoqXG4gICAqIFRoZSBvdXRwdXQgY29sb3Igc3BhY2UgdG8gY29udmVydCB0by5cbiAgICovXG4gIHJlYWRvbmx5IG91dHB1dENvbG9yU3BhY2U6IENvbG9yU3BhY2U7XG4gIC8qKlxuICAgKiBUaGUgM0QgTFVUIGZpbGUgZm9yIHRoZSBjb2xvciBjb3JyZWN0aW9uLiBNZWRpYUxpdmUgcmVhZHMgdGhlIExVVCBmcm9tIFMzIGF0IHJ1bnRpbWUsIHNvIGl0XG4gICAqIG11c3QgYmUgYW4gUzMgbG9jYXRpb24g4oCUIHByb3ZpZGUgaXQgdmlhIGBMdXQuZnJvbUJ1Y2tldCgpYCAod2hpY2ggdXNlcyB0aGUgc2VjdXJlIGBzM3NzbDovL2BcbiAgICogZm9ybSBhbmQgYXV0by1ncmFudHMgdGhlIGNoYW5uZWwgcm9sZSByZWFkIGFjY2Vzcykgb3IgYEx1dC51cmwoKWAgd2l0aCBhbiBgczM6Ly9gL2BzM3NzbDovL2AgVVJMLlxuICAgKiBAZGVmYXVsdCAtIG5vIExVVCBmaWxlXG4gICAqL1xuICByZWFkb25seSBsdXQ/OiBMdXQ7XG59XG4iXX0=
@@ -0,0 +1,242 @@
1
+ import type { IChannel as IMediaPackageV2Channel } from '@aws-cdk/aws-mediapackagev2-alpha';
2
+ import type { IBucket } from 'aws-cdk-lib/aws-s3';
3
+ import type { ISecret } from 'aws-cdk-lib/aws-secretsmanager';
4
+ import type { IStringParameter } from 'aws-cdk-lib/aws-ssm';
5
+ /**
6
+ * A destination address (IP or host) and port for a transport-stream output.
7
+ */
8
+ export interface TransportOutputDestinationProps {
9
+ /** The destination address — a unicast or multicast IP, or a hostname. */
10
+ readonly address: string;
11
+ /** The destination port. */
12
+ readonly port: number;
13
+ }
14
+ /**
15
+ * Options for a URL-based output destination.
16
+ */
17
+ export interface OutputDestinationOptions {
18
+ /**
19
+ * The username for accessing the downstream system.
20
+ * @default - no credentials
21
+ */
22
+ readonly username?: string;
23
+ /**
24
+ * An SSM String Parameter holding the password for accessing the downstream system. MediaLive
25
+ * reads it from Parameter Store at channel runtime, so the channel role is granted read access.
26
+ * @default - no credentials
27
+ */
28
+ readonly password?: IStringParameter;
29
+ }
30
+ /**
31
+ * A general URL-based output destination — an S3 bucket or an HTTP(S) endpoint.
32
+ *
33
+ * Used by HLS, MS Smooth, and CMAF Ingest output groups. Each output group's `destinations`
34
+ * prop is typed to the destination valid for its protocol, so an invalid pairing (e.g. a UDP
35
+ * destination on an HLS group) is a compile-time error rather than a deploy-time failure.
36
+ */
37
+ export declare class OutputDestination {
38
+ private readonly destUrl;
39
+ private readonly bucket?;
40
+ private readonly options?;
41
+ /** Deliver to an S3 bucket (auto-grants write to the channel role). */
42
+ static toBucket(bucket: IBucket, prefix?: string): OutputDestination;
43
+ /** Deliver to a raw URL — typically an `https://` origin (or an `s3ssl://` path). */
44
+ static url(url: string, options?: OutputDestinationOptions): OutputDestination;
45
+ private constructor();
46
+ }
47
+ /**
48
+ * A destination for an Archive or Frame Capture output group — always an S3 bucket.
49
+ */
50
+ export declare class S3OutputDestination {
51
+ private readonly destUrl;
52
+ private readonly bucket?;
53
+ /** Deliver to an S3 bucket (auto-grants write to the channel role). */
54
+ static toBucket(bucket: IBucket, prefix?: string): S3OutputDestination;
55
+ /** Deliver to a raw `s3ssl://` path (escape hatch when you don't have a bucket construct). */
56
+ static url(url: string): S3OutputDestination;
57
+ private constructor();
58
+ }
59
+ /**
60
+ * A destination for a UDP output group — a UDP or RTP transport endpoint.
61
+ */
62
+ export declare class UdpOutputDestination {
63
+ private readonly destUrl;
64
+ /** Deliver over UDP — builds `udp://address:port`. */
65
+ static udp(props: TransportOutputDestinationProps): UdpOutputDestination;
66
+ /** Deliver over RTP — builds `rtp://address:port`. */
67
+ static rtp(props: TransportOutputDestinationProps): UdpOutputDestination;
68
+ /** Deliver to a raw transport URL (escape hatch). */
69
+ static url(url: string): UdpOutputDestination;
70
+ private constructor();
71
+ }
72
+ /**
73
+ * A destination for an RTMP output group. Use the static factory methods to create.
74
+ */
75
+ export declare abstract class RtmpDestination {
76
+ /**
77
+ * Create an RTMP destination.
78
+ * @param url The RTMP endpoint URL (e.g. rtmp://host/appname).
79
+ * @param streamName The stream name (stream key).
80
+ * @param options Optional credentials.
81
+ */
82
+ static url(url: string, streamName: string, options?: OutputDestinationOptions): RtmpDestination;
83
+ }
84
+ /**
85
+ * SRT caller destination properties.
86
+ */
87
+ export interface SrtCallerDestinationProps {
88
+ /** The address (IP or host) of the SRT listener to connect to. */
89
+ readonly address: string;
90
+ /** The port of the SRT listener to connect to. */
91
+ readonly port: number;
92
+ /**
93
+ * The stream ID for the SRT connection.
94
+ * @default - no stream ID
95
+ */
96
+ readonly streamId?: string;
97
+ /**
98
+ * The Secrets Manager secret containing the encryption passphrase.
99
+ *
100
+ * [disable-awslint:prefer-ref-interface]
101
+ */
102
+ readonly encryptionPassphraseSecret: ISecret;
103
+ }
104
+ /**
105
+ * Options for a URL-based SRT caller destination (`SrtDestination.callerUrl`).
106
+ */
107
+ export interface SrtCallerUrlOptions {
108
+ /**
109
+ * The stream ID for the SRT connection.
110
+ * @default - no stream ID
111
+ */
112
+ readonly streamId?: string;
113
+ /**
114
+ * The Secrets Manager secret containing the encryption passphrase.
115
+ *
116
+ * [disable-awslint:prefer-ref-interface]
117
+ */
118
+ readonly encryptionPassphraseSecret: ISecret;
119
+ }
120
+ /**
121
+ * SRT listener destination properties.
122
+ *
123
+ * In listener mode, MediaLive opens a socket on `listenerPort` and waits for the downstream
124
+ * system to connect. The downstream system needs the channel's outbound IP and this port —
125
+ * AWS does not require (or use) a destination URL in listener mode.
126
+ */
127
+ export interface SrtListenerDestinationProps {
128
+ /** The port that MediaLive will listen on. AWS reserves the range 5000–5200 for SRT listener output. */
129
+ readonly listenerPort: number;
130
+ /**
131
+ * The stream ID for the SRT connection.
132
+ * @default - no stream ID
133
+ */
134
+ readonly streamId?: string;
135
+ /**
136
+ * The Secrets Manager secret containing the encryption passphrase.
137
+ *
138
+ * [disable-awslint:prefer-ref-interface]
139
+ */
140
+ readonly encryptionPassphraseSecret: ISecret;
141
+ }
142
+ /**
143
+ * A destination for an SRT output group. Use the static factory methods to create.
144
+ */
145
+ export declare abstract class SrtDestination {
146
+ /** Create a caller-mode SRT destination. MediaLive connects to the remote listener. */
147
+ static caller(props: SrtCallerDestinationProps): SrtDestination;
148
+ /**
149
+ * Create a caller-mode SRT destination from a full SRT URL.
150
+ *
151
+ * Use this when you already have a URL rather than a separate host and port — for example a
152
+ * MediaConnect Router Input's ingest endpoint (`routerInput.endpoints[0].url`).
153
+ */
154
+ static callerUrl(url: string, options: SrtCallerUrlOptions): SrtDestination;
155
+ /** Create a listener-mode SRT destination. MediaLive listens for incoming connections. */
156
+ static listener(props: SrtListenerDestinationProps): SrtDestination;
157
+ }
158
+ /**
159
+ * The pipeline endpoint for a MediaPackage V2 destination.
160
+ */
161
+ export declare class MediaPackageV2EndpointId {
162
+ /** Pipeline 0 endpoint */
163
+ static readonly ENDPOINT_1: MediaPackageV2EndpointId;
164
+ /** Pipeline 1 endpoint */
165
+ static readonly ENDPOINT_2: MediaPackageV2EndpointId;
166
+ /** A value not yet modelled by AWS CDK. */
167
+ static of(value: string): MediaPackageV2EndpointId;
168
+ /** The underlying string value passed to CloudFormation. */
169
+ readonly value: string;
170
+ private constructor();
171
+ }
172
+ /**
173
+ * A MediaPackage V2 destination for a MediaLive output group.
174
+ * Use the static factory method to create.
175
+ */
176
+ export declare abstract class MediaPackageV2Destination {
177
+ /**
178
+ * Create a MediaPackage V2 destination.
179
+ *
180
+ * The region is resolved from the channel's `region` property. Import the MediaPackage V2
181
+ * channel with its region (e.g. via `fromChannelAttributes`) for cross-region delivery.
182
+ *
183
+ * @param channel The MediaPackage V2 channel to send output to.
184
+ * @param endpointId The pipeline endpoint to send to. When omitted, `channelEndpointId` and the
185
+ * region are left unset and MediaLive maps the pipeline automatically (same-region only).
186
+ */
187
+ static channel(channel: IMediaPackageV2Channel, endpointId?: MediaPackageV2EndpointId): MediaPackageV2Destination;
188
+ }
189
+ /**
190
+ * Per-pipeline settings for a MediaConnect Router output destination.
191
+ *
192
+ * Today this carries only transit encryption, but it is a struct so that future per-pipeline
193
+ * MediaConnect Router settings can be added without an API break.
194
+ */
195
+ export interface MediaConnectRouterPipelineConfig {
196
+ /**
197
+ * A Secrets Manager secret holding the transit-encryption passphrase. When set, the pipeline
198
+ * uses `SECRETS_MANAGER` encryption; the channel role is granted read access to the secret.
199
+ *
200
+ * @default - AUTOMATIC (service-managed) transit encryption
201
+ */
202
+ readonly encryptionSecret?: ISecret;
203
+ }
204
+ /**
205
+ * Per-pipeline settings for `MediaConnectRouterSettings.perPipeline()`.
206
+ *
207
+ * MediaLive maps a channel's pipelines to MediaConnect Router output destinations positionally;
208
+ * the console labels them "Destination A" (pipeline 0) and "Destination B" (pipeline 1). An
209
+ * omitted pipeline uses AUTOMATIC transit encryption.
210
+ */
211
+ export interface MediaConnectRouterPerPipelineSettings {
212
+ /**
213
+ * Settings for pipeline 0 ("Destination A" in the MediaLive console).
214
+ * @default - AUTOMATIC transit encryption
215
+ */
216
+ readonly pipeline0?: MediaConnectRouterPipelineConfig;
217
+ /**
218
+ * Settings for pipeline 1 ("Destination B" in the console). STANDARD channels only —
219
+ * SINGLE_PIPELINE channels have no second pipeline.
220
+ * @default - AUTOMATIC transit encryption
221
+ */
222
+ readonly pipeline1?: MediaConnectRouterPipelineConfig;
223
+ }
224
+ /**
225
+ * Transit-encryption settings for a MediaConnect Router output group, applied per channel pipeline.
226
+ *
227
+ * Omit the output group's `routerSettings` entirely for AUTOMATIC (service-managed) encryption on
228
+ * every pipeline. Use `shared()` to apply one secret across all pipelines, or `perPipeline()` to
229
+ * control each pipeline independently.
230
+ */
231
+ export declare abstract class MediaConnectRouterSettings {
232
+ /**
233
+ * Apply the same settings to every pipeline.
234
+ *
235
+ * @param settings the settings to apply to all pipelines. Omit `encryptionSecret` for AUTOMATIC.
236
+ */
237
+ static shared(settings?: MediaConnectRouterPipelineConfig): MediaConnectRouterSettings;
238
+ /**
239
+ * Configure each pipeline independently. An omitted pipeline uses AUTOMATIC encryption.
240
+ */
241
+ static perPipeline(settings: MediaConnectRouterPerPipelineSettings): MediaConnectRouterSettings;
242
+ }