@aws-cdk/aws-ivs-alpha
Version:
The CDK Construct Library for AWS::IVS
92 lines • 10.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ThumbnailConfiguration = exports.Storage = exports.RecordingMode = void 0;
const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const aws_cdk_lib_1 = require("aws-cdk-lib");
/**
* Thumbnail recording mode.
*/
var RecordingMode;
(function (RecordingMode) {
/**
* Use INTERVAL to enable the generation of thumbnails for recorded video at a time interval controlled by the TargetIntervalSeconds property.
*/
RecordingMode["INTERVAL"] = "INTERVAL";
/**
* Use DISABLED to disable the generation of thumbnails for recorded video.
*/
RecordingMode["DISABLED"] = "DISABLED";
})(RecordingMode || (exports.RecordingMode = RecordingMode = {}));
/**
* The format in which thumbnails are recorded for a stream.
*/
var Storage;
(function (Storage) {
/**
* SEQUENTIAL records all generated thumbnails in a serial manner, to the media/thumbnails directory.
*/
Storage["SEQUENTIAL"] = "SEQUENTIAL";
/**
* LATEST saves the latest thumbnail in media/thumbnails/latest/thumb.jpg and overwrites it at the interval specified by thumbnailTargetInterval.
*/
Storage["LATEST"] = "LATEST";
})(Storage || (exports.Storage = Storage = {}));
/**
* Thumbnail configuration for IVS Recording configuration
*/
class ThumbnailConfiguration {
recordingMode;
resolution;
storage;
targetInterval;
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ivs-alpha.ThumbnailConfiguration", version: "2.257.0-alpha.0" };
/**
* Disable the generation of thumbnails for recorded video
*/
static disable() {
return new ThumbnailConfiguration(RecordingMode.DISABLED);
}
/**
* Enable the generation of thumbnails for recorded video at a time interval.
*
* @param resolution The desired resolution of recorded thumbnails for a stream. If you do not specify this property, same resolution as Input stream is used.
* @param storage The format in which thumbnails are recorded for a stream. If you do not specify this property, `ThumbnailStorage.SEQUENTIAL` is set.
* @param targetInterval The targeted thumbnail-generation interval. If you do not specify this property, `Duration.seconds(60)` is set.
*/
static interval(resolution, storage, targetInterval) {
try {
jsiiDeprecationWarnings._aws_cdk_aws_ivs_alpha_Resolution(resolution);
}
catch (error) {
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
Error.captureStackTrace(error, this.interval);
}
throw error;
}
return new ThumbnailConfiguration(RecordingMode.INTERVAL, resolution, storage, targetInterval);
}
/**
* @param recordingMode Thumbnail recording mode. If you do not specify this property, `ThumbnailRecordingMode.INTERVAL` is set.
* @param resolution The desired resolution of recorded thumbnails for a stream. If you do not specify this property, same resolution as Input stream is used.
* @param storage The format in which thumbnails are recorded for a stream. If you do not specify this property, `ThumbnailStorage.SEQUENTIAL` is set.
* @param targetInterval The targeted thumbnail-generation interval. Must be between 1 and 60 seconds. If you do not specify this property, `Duration.seconds(60)` is set.
*/
constructor(recordingMode, resolution, storage, targetInterval) {
this.recordingMode = recordingMode;
this.resolution = resolution;
this.storage = storage;
this.targetInterval = targetInterval;
if (targetInterval === undefined || aws_cdk_lib_1.Token.isUnresolved(targetInterval)) {
return;
}
if (targetInterval.toMilliseconds() < aws_cdk_lib_1.Duration.seconds(1).toMilliseconds()) {
throw new Error(`\`targetInterval\` must be between 1 and 60 seconds, got ${targetInterval.toMilliseconds()} milliseconds.`);
}
if (targetInterval.toSeconds() > 60) {
throw new Error(`\`targetInterval\` must be between 1 and 60 seconds, got ${targetInterval.toSeconds()} seconds.`);
}
}
}
exports.ThumbnailConfiguration = ThumbnailConfiguration;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh1bWJuYWlsLWNvbmZpZ3VyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0aHVtYm5haWwtY29uZmlndXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUE4QztBQUc5Qzs7R0FFRztBQUNILElBQVksYUFVWDtBQVZELFdBQVksYUFBYTtJQUN2Qjs7T0FFRztJQUNILHNDQUFxQixDQUFBO0lBRXJCOztPQUVHO0lBQ0gsc0NBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQVZXLGFBQWEsNkJBQWIsYUFBYSxRQVV4QjtBQUVEOztHQUVHO0FBQ0gsSUFBWSxPQVVYO0FBVkQsV0FBWSxPQUFPO0lBQ2pCOztPQUVHO0lBQ0gsb0NBQXlCLENBQUE7SUFFekI7O09BRUc7SUFDSCw0QkFBaUIsQ0FBQTtBQUNuQixDQUFDLEVBVlcsT0FBTyx1QkFBUCxPQUFPLFFBVWxCO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLHNCQUFzQjtJQTBCZjtJQUNBO0lBQ0E7SUFDQTs7SUE1QmxCOztPQUVHO0lBQ0ksTUFBTSxDQUFDLE9BQU87UUFDbkIsT0FBTyxJQUFJLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUMzRDtJQUVEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBdUIsRUFBRSxPQUFtQixFQUFFLGNBQXlCOzs7Ozs7Ozs7O1FBQzVGLE9BQU8sSUFBSSxzQkFBc0IsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7S0FDaEc7SUFFRDs7Ozs7T0FLRztJQUNILFlBQ2tCLGFBQTZCLEVBQzdCLFVBQXVCLEVBQ3ZCLE9BQW1CLEVBQ25CLGNBQXlCO1FBSHpCLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUM3QixlQUFVLEdBQVYsVUFBVSxDQUFhO1FBQ3ZCLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsbUJBQWMsR0FBZCxjQUFjLENBQVc7UUFFekMsSUFBSSxjQUFjLEtBQUssU0FBUyxJQUFJLG1CQUFLLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDdkUsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLGNBQWMsQ0FBQyxjQUFjLEVBQUUsR0FBRyxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDO1lBQzNFLE1BQU0sSUFBSSxLQUFLLENBQUMsNERBQTRELGNBQWMsQ0FBQyxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUMvSCxDQUFDO1FBRUQsSUFBSSxjQUFjLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQyw0REFBNEQsY0FBYyxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNySCxDQUFDO0tBQ0Y7O0FBMUNILHdEQTJDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER1cmF0aW9uLCBUb2tlbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB0eXBlIHsgUmVzb2x1dGlvbiB9IGZyb20gJy4vdXRpbCc7XG5cbi8qKlxuICogVGh1bWJuYWlsIHJlY29yZGluZyBtb2RlLlxuICovXG5leHBvcnQgZW51bSBSZWNvcmRpbmdNb2RlIHtcbiAgLyoqXG4gICAqIFVzZSBJTlRFUlZBTCB0byBlbmFibGUgdGhlIGdlbmVyYXRpb24gb2YgdGh1bWJuYWlscyBmb3IgcmVjb3JkZWQgdmlkZW8gYXQgYSB0aW1lIGludGVydmFsIGNvbnRyb2xsZWQgYnkgdGhlIFRhcmdldEludGVydmFsU2Vjb25kcyBwcm9wZXJ0eS5cbiAgICovXG4gIElOVEVSVkFMID0gJ0lOVEVSVkFMJyxcblxuICAvKipcbiAgICogVXNlIERJU0FCTEVEIHRvIGRpc2FibGUgdGhlIGdlbmVyYXRpb24gb2YgdGh1bWJuYWlscyBmb3IgcmVjb3JkZWQgdmlkZW8uXG4gICAqL1xuICBESVNBQkxFRCA9ICdESVNBQkxFRCcsXG59XG5cbi8qKlxuICogVGhlIGZvcm1hdCBpbiB3aGljaCB0aHVtYm5haWxzIGFyZSByZWNvcmRlZCBmb3IgYSBzdHJlYW0uXG4gKi9cbmV4cG9ydCBlbnVtIFN0b3JhZ2Uge1xuICAvKipcbiAgICogU0VRVUVOVElBTCByZWNvcmRzIGFsbCBnZW5lcmF0ZWQgdGh1bWJuYWlscyBpbiBhIHNlcmlhbCBtYW5uZXIsIHRvIHRoZSBtZWRpYS90aHVtYm5haWxzIGRpcmVjdG9yeS5cbiAgICovXG4gIFNFUVVFTlRJQUwgPSAnU0VRVUVOVElBTCcsXG5cbiAgLyoqXG4gICAqIExBVEVTVCBzYXZlcyB0aGUgbGF0ZXN0IHRodW1ibmFpbCBpbiBtZWRpYS90aHVtYm5haWxzL2xhdGVzdC90aHVtYi5qcGcgYW5kIG92ZXJ3cml0ZXMgaXQgYXQgdGhlIGludGVydmFsIHNwZWNpZmllZCBieSB0aHVtYm5haWxUYXJnZXRJbnRlcnZhbC5cbiAgICovXG4gIExBVEVTVCA9ICdMQVRFU1QnLFxufVxuXG4vKipcbiAqIFRodW1ibmFpbCBjb25maWd1cmF0aW9uIGZvciBJVlMgUmVjb3JkaW5nIGNvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGNsYXNzIFRodW1ibmFpbENvbmZpZ3VyYXRpb24ge1xuICAvKipcbiAgICogRGlzYWJsZSB0aGUgZ2VuZXJhdGlvbiBvZiB0aHVtYm5haWxzIGZvciByZWNvcmRlZCB2aWRlb1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBkaXNhYmxlKCk6IFRodW1ibmFpbENvbmZpZ3VyYXRpb24ge1xuICAgIHJldHVybiBuZXcgVGh1bWJuYWlsQ29uZmlndXJhdGlvbihSZWNvcmRpbmdNb2RlLkRJU0FCTEVEKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmFibGUgdGhlIGdlbmVyYXRpb24gb2YgdGh1bWJuYWlscyBmb3IgcmVjb3JkZWQgdmlkZW8gYXQgYSB0aW1lIGludGVydmFsLlxuICAgKlxuICAgKiBAcGFyYW0gcmVzb2x1dGlvbiBUaGUgZGVzaXJlZCByZXNvbHV0aW9uIG9mIHJlY29yZGVkIHRodW1ibmFpbHMgZm9yIGEgc3RyZWFtLiBJZiB5b3UgZG8gbm90IHNwZWNpZnkgdGhpcyBwcm9wZXJ0eSwgc2FtZSByZXNvbHV0aW9uIGFzIElucHV0IHN0cmVhbSBpcyB1c2VkLlxuICAgKiBAcGFyYW0gc3RvcmFnZSBUaGUgZm9ybWF0IGluIHdoaWNoIHRodW1ibmFpbHMgYXJlIHJlY29yZGVkIGZvciBhIHN0cmVhbS4gSWYgeW91IGRvIG5vdCBzcGVjaWZ5IHRoaXMgcHJvcGVydHksIGBUaHVtYm5haWxTdG9yYWdlLlNFUVVFTlRJQUxgIGlzIHNldC5cbiAgICogQHBhcmFtIHRhcmdldEludGVydmFsIFRoZSB0YXJnZXRlZCB0aHVtYm5haWwtZ2VuZXJhdGlvbiBpbnRlcnZhbC4gSWYgeW91IGRvIG5vdCBzcGVjaWZ5IHRoaXMgcHJvcGVydHksIGBEdXJhdGlvbi5zZWNvbmRzKDYwKWAgaXMgc2V0LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpbnRlcnZhbChyZXNvbHV0aW9uPzogUmVzb2x1dGlvbiwgc3RvcmFnZT86IFN0b3JhZ2VbXSwgdGFyZ2V0SW50ZXJ2YWw/OiBEdXJhdGlvbik6IFRodW1ibmFpbENvbmZpZ3VyYXRpb24ge1xuICAgIHJldHVybiBuZXcgVGh1bWJuYWlsQ29uZmlndXJhdGlvbihSZWNvcmRpbmdNb2RlLklOVEVSVkFMLCByZXNvbHV0aW9uLCBzdG9yYWdlLCB0YXJnZXRJbnRlcnZhbCk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHJlY29yZGluZ01vZGUgVGh1bWJuYWlsIHJlY29yZGluZyBtb2RlLiBJZiB5b3UgZG8gbm90IHNwZWNpZnkgdGhpcyBwcm9wZXJ0eSwgYFRodW1ibmFpbFJlY29yZGluZ01vZGUuSU5URVJWQUxgIGlzIHNldC5cbiAgICogQHBhcmFtIHJlc29sdXRpb24gVGhlIGRlc2lyZWQgcmVzb2x1dGlvbiBvZiByZWNvcmRlZCB0aHVtYm5haWxzIGZvciBhIHN0cmVhbS4gSWYgeW91IGRvIG5vdCBzcGVjaWZ5IHRoaXMgcHJvcGVydHksIHNhbWUgcmVzb2x1dGlvbiBhcyBJbnB1dCBzdHJlYW0gaXMgdXNlZC5cbiAgICogQHBhcmFtIHN0b3JhZ2UgVGhlIGZvcm1hdCBpbiB3aGljaCB0aHVtYm5haWxzIGFyZSByZWNvcmRlZCBmb3IgYSBzdHJlYW0uIElmIHlvdSBkbyBub3Qgc3BlY2lmeSB0aGlzIHByb3BlcnR5LCBgVGh1bWJuYWlsU3RvcmFnZS5TRVFVRU5USUFMYCBpcyBzZXQuXG4gICAqIEBwYXJhbSB0YXJnZXRJbnRlcnZhbCBUaGUgdGFyZ2V0ZWQgdGh1bWJuYWlsLWdlbmVyYXRpb24gaW50ZXJ2YWwuIE11c3QgYmUgYmV0d2VlbiAxIGFuZCA2MCBzZWNvbmRzLiBJZiB5b3UgZG8gbm90IHNwZWNpZnkgdGhpcyBwcm9wZXJ0eSwgYER1cmF0aW9uLnNlY29uZHMoNjApYCBpcyBzZXQuXG4gICAqL1xuICBwcml2YXRlIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSByZWNvcmRpbmdNb2RlPzogUmVjb3JkaW5nTW9kZSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgcmVzb2x1dGlvbj86IFJlc29sdXRpb24sXG4gICAgcHVibGljIHJlYWRvbmx5IHN0b3JhZ2U/OiBTdG9yYWdlW10sXG4gICAgcHVibGljIHJlYWRvbmx5IHRhcmdldEludGVydmFsPzogRHVyYXRpb24sXG4gICkge1xuICAgIGlmICh0YXJnZXRJbnRlcnZhbCA9PT0gdW5kZWZpbmVkIHx8IFRva2VuLmlzVW5yZXNvbHZlZCh0YXJnZXRJbnRlcnZhbCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGFyZ2V0SW50ZXJ2YWwudG9NaWxsaXNlY29uZHMoKSA8IER1cmF0aW9uLnNlY29uZHMoMSkudG9NaWxsaXNlY29uZHMoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBcXGB0YXJnZXRJbnRlcnZhbFxcYCBtdXN0IGJlIGJldHdlZW4gMSBhbmQgNjAgc2Vjb25kcywgZ290ICR7dGFyZ2V0SW50ZXJ2YWwudG9NaWxsaXNlY29uZHMoKX0gbWlsbGlzZWNvbmRzLmApO1xuICAgIH1cblxuICAgIGlmICh0YXJnZXRJbnRlcnZhbC50b1NlY29uZHMoKSA+IDYwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFxcYHRhcmdldEludGVydmFsXFxgIG11c3QgYmUgYmV0d2VlbiAxIGFuZCA2MCBzZWNvbmRzLCBnb3QgJHt0YXJnZXRJbnRlcnZhbC50b1NlY29uZHMoKX0gc2Vjb25kcy5gKTtcbiAgICB9XG4gIH1cbn1cblxuIl19