@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.223.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh1bWJuYWlsLWNvbmZpZ3VyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0aHVtYm5haWwtY29uZmlndXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUE4QztBQUc5Qzs7R0FFRztBQUNILElBQVksYUFVWDtBQVZELFdBQVksYUFBYTtJQUN2Qjs7T0FFRztJQUNILHNDQUFxQixDQUFBO0lBRXJCOztPQUVHO0lBQ0gsc0NBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQVZXLGFBQWEsNkJBQWIsYUFBYSxRQVV4QjtBQUVEOztHQUVHO0FBQ0gsSUFBWSxPQVVYO0FBVkQsV0FBWSxPQUFPO0lBQ2pCOztPQUVHO0lBQ0gsb0NBQXlCLENBQUE7SUFFekI7O09BRUc7SUFDSCw0QkFBaUIsQ0FBQTtBQUNuQixDQUFDLEVBVlcsT0FBTyx1QkFBUCxPQUFPLFFBVWxCO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLHNCQUFzQjtJQTBCZjtJQUNBO0lBQ0E7SUFDQTs7SUE1QmxCOztPQUVHO0lBQ0ksTUFBTSxDQUFDLE9BQU87UUFDbkIsT0FBTyxJQUFJLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUMzRDtJQUVEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBdUIsRUFBRSxPQUFtQixFQUFFLGNBQXlCOzs7Ozs7Ozs7O1FBQzVGLE9BQU8sSUFBSSxzQkFBc0IsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7S0FDaEc7SUFFRDs7Ozs7T0FLRztJQUNILFlBQ2tCLGFBQTZCLEVBQzdCLFVBQXVCLEVBQ3ZCLE9BQW1CLEVBQ25CLGNBQXlCO1FBSHpCLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUM3QixlQUFVLEdBQVYsVUFBVSxDQUFhO1FBQ3ZCLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsbUJBQWMsR0FBZCxjQUFjLENBQVc7UUFFekMsSUFBSSxjQUFjLEtBQUssU0FBUyxJQUFJLG1CQUFLLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDdkUsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLGNBQWMsQ0FBQyxjQUFjLEVBQUUsR0FBRyxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDO1lBQzNFLE1BQU0sSUFBSSxLQUFLLENBQUMsNERBQTRELGNBQWMsQ0FBQyxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUMvSCxDQUFDO1FBRUQsSUFBSSxjQUFjLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQyw0REFBNEQsY0FBYyxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNySCxDQUFDO0tBQ0Y7O0FBMUNILHdEQTJDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER1cmF0aW9uLCBUb2tlbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IFJlc29sdXRpb24gfSBmcm9tICcuL3V0aWwnO1xuXG4vKipcbiAqIFRodW1ibmFpbCByZWNvcmRpbmcgbW9kZS5cbiAqL1xuZXhwb3J0IGVudW0gUmVjb3JkaW5nTW9kZSB7XG4gIC8qKlxuICAgKiBVc2UgSU5URVJWQUwgdG8gZW5hYmxlIHRoZSBnZW5lcmF0aW9uIG9mIHRodW1ibmFpbHMgZm9yIHJlY29yZGVkIHZpZGVvIGF0IGEgdGltZSBpbnRlcnZhbCBjb250cm9sbGVkIGJ5IHRoZSBUYXJnZXRJbnRlcnZhbFNlY29uZHMgcHJvcGVydHkuXG4gICAqL1xuICBJTlRFUlZBTCA9ICdJTlRFUlZBTCcsXG5cbiAgLyoqXG4gICAqIFVzZSBESVNBQkxFRCB0byBkaXNhYmxlIHRoZSBnZW5lcmF0aW9uIG9mIHRodW1ibmFpbHMgZm9yIHJlY29yZGVkIHZpZGVvLlxuICAgKi9cbiAgRElTQUJMRUQgPSAnRElTQUJMRUQnLFxufVxuXG4vKipcbiAqIFRoZSBmb3JtYXQgaW4gd2hpY2ggdGh1bWJuYWlscyBhcmUgcmVjb3JkZWQgZm9yIGEgc3RyZWFtLlxuICovXG5leHBvcnQgZW51bSBTdG9yYWdlIHtcbiAgLyoqXG4gICAqIFNFUVVFTlRJQUwgcmVjb3JkcyBhbGwgZ2VuZXJhdGVkIHRodW1ibmFpbHMgaW4gYSBzZXJpYWwgbWFubmVyLCB0byB0aGUgbWVkaWEvdGh1bWJuYWlscyBkaXJlY3RvcnkuXG4gICAqL1xuICBTRVFVRU5USUFMID0gJ1NFUVVFTlRJQUwnLFxuXG4gIC8qKlxuICAgKiBMQVRFU1Qgc2F2ZXMgdGhlIGxhdGVzdCB0aHVtYm5haWwgaW4gbWVkaWEvdGh1bWJuYWlscy9sYXRlc3QvdGh1bWIuanBnIGFuZCBvdmVyd3JpdGVzIGl0IGF0IHRoZSBpbnRlcnZhbCBzcGVjaWZpZWQgYnkgdGh1bWJuYWlsVGFyZ2V0SW50ZXJ2YWwuXG4gICAqL1xuICBMQVRFU1QgPSAnTEFURVNUJyxcbn1cblxuLyoqXG4gKiBUaHVtYm5haWwgY29uZmlndXJhdGlvbiBmb3IgSVZTIFJlY29yZGluZyBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBUaHVtYm5haWxDb25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIERpc2FibGUgdGhlIGdlbmVyYXRpb24gb2YgdGh1bWJuYWlscyBmb3IgcmVjb3JkZWQgdmlkZW9cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZGlzYWJsZSgpOiBUaHVtYm5haWxDb25maWd1cmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRodW1ibmFpbENvbmZpZ3VyYXRpb24oUmVjb3JkaW5nTW9kZS5ESVNBQkxFRCk7XG4gIH1cblxuICAvKipcbiAgICogRW5hYmxlIHRoZSBnZW5lcmF0aW9uIG9mIHRodW1ibmFpbHMgZm9yIHJlY29yZGVkIHZpZGVvIGF0IGEgdGltZSBpbnRlcnZhbC5cbiAgICpcbiAgICogQHBhcmFtIHJlc29sdXRpb24gVGhlIGRlc2lyZWQgcmVzb2x1dGlvbiBvZiByZWNvcmRlZCB0aHVtYm5haWxzIGZvciBhIHN0cmVhbS4gSWYgeW91IGRvIG5vdCBzcGVjaWZ5IHRoaXMgcHJvcGVydHksIHNhbWUgcmVzb2x1dGlvbiBhcyBJbnB1dCBzdHJlYW0gaXMgdXNlZC5cbiAgICogQHBhcmFtIHN0b3JhZ2UgVGhlIGZvcm1hdCBpbiB3aGljaCB0aHVtYm5haWxzIGFyZSByZWNvcmRlZCBmb3IgYSBzdHJlYW0uIElmIHlvdSBkbyBub3Qgc3BlY2lmeSB0aGlzIHByb3BlcnR5LCBgVGh1bWJuYWlsU3RvcmFnZS5TRVFVRU5USUFMYCBpcyBzZXQuXG4gICAqIEBwYXJhbSB0YXJnZXRJbnRlcnZhbCBUaGUgdGFyZ2V0ZWQgdGh1bWJuYWlsLWdlbmVyYXRpb24gaW50ZXJ2YWwuIElmIHlvdSBkbyBub3Qgc3BlY2lmeSB0aGlzIHByb3BlcnR5LCBgRHVyYXRpb24uc2Vjb25kcyg2MClgIGlzIHNldC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaW50ZXJ2YWwocmVzb2x1dGlvbj86IFJlc29sdXRpb24sIHN0b3JhZ2U/OiBTdG9yYWdlW10sIHRhcmdldEludGVydmFsPzogRHVyYXRpb24pOiBUaHVtYm5haWxDb25maWd1cmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRodW1ibmFpbENvbmZpZ3VyYXRpb24oUmVjb3JkaW5nTW9kZS5JTlRFUlZBTCwgcmVzb2x1dGlvbiwgc3RvcmFnZSwgdGFyZ2V0SW50ZXJ2YWwpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSByZWNvcmRpbmdNb2RlIFRodW1ibmFpbCByZWNvcmRpbmcgbW9kZS4gSWYgeW91IGRvIG5vdCBzcGVjaWZ5IHRoaXMgcHJvcGVydHksIGBUaHVtYm5haWxSZWNvcmRpbmdNb2RlLklOVEVSVkFMYCBpcyBzZXQuXG4gICAqIEBwYXJhbSByZXNvbHV0aW9uIFRoZSBkZXNpcmVkIHJlc29sdXRpb24gb2YgcmVjb3JkZWQgdGh1bWJuYWlscyBmb3IgYSBzdHJlYW0uIElmIHlvdSBkbyBub3Qgc3BlY2lmeSB0aGlzIHByb3BlcnR5LCBzYW1lIHJlc29sdXRpb24gYXMgSW5wdXQgc3RyZWFtIGlzIHVzZWQuXG4gICAqIEBwYXJhbSBzdG9yYWdlIFRoZSBmb3JtYXQgaW4gd2hpY2ggdGh1bWJuYWlscyBhcmUgcmVjb3JkZWQgZm9yIGEgc3RyZWFtLiBJZiB5b3UgZG8gbm90IHNwZWNpZnkgdGhpcyBwcm9wZXJ0eSwgYFRodW1ibmFpbFN0b3JhZ2UuU0VRVUVOVElBTGAgaXMgc2V0LlxuICAgKiBAcGFyYW0gdGFyZ2V0SW50ZXJ2YWwgVGhlIHRhcmdldGVkIHRodW1ibmFpbC1nZW5lcmF0aW9uIGludGVydmFsLiBNdXN0IGJlIGJldHdlZW4gMSBhbmQgNjAgc2Vjb25kcy4gSWYgeW91IGRvIG5vdCBzcGVjaWZ5IHRoaXMgcHJvcGVydHksIGBEdXJhdGlvbi5zZWNvbmRzKDYwKWAgaXMgc2V0LlxuICAgKi9cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgcmVjb3JkaW5nTW9kZT86IFJlY29yZGluZ01vZGUsXG4gICAgcHVibGljIHJlYWRvbmx5IHJlc29sdXRpb24/OiBSZXNvbHV0aW9uLFxuICAgIHB1YmxpYyByZWFkb25seSBzdG9yYWdlPzogU3RvcmFnZVtdLFxuICAgIHB1YmxpYyByZWFkb25seSB0YXJnZXRJbnRlcnZhbD86IER1cmF0aW9uLFxuICApIHtcbiAgICBpZiAodGFyZ2V0SW50ZXJ2YWwgPT09IHVuZGVmaW5lZCB8fCBUb2tlbi5pc1VucmVzb2x2ZWQodGFyZ2V0SW50ZXJ2YWwpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRhcmdldEludGVydmFsLnRvTWlsbGlzZWNvbmRzKCkgPCBEdXJhdGlvbi5zZWNvbmRzKDEpLnRvTWlsbGlzZWNvbmRzKCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgXFxgdGFyZ2V0SW50ZXJ2YWxcXGAgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDYwIHNlY29uZHMsIGdvdCAke3RhcmdldEludGVydmFsLnRvTWlsbGlzZWNvbmRzKCl9IG1pbGxpc2Vjb25kcy5gKTtcbiAgICB9XG5cbiAgICBpZiAodGFyZ2V0SW50ZXJ2YWwudG9TZWNvbmRzKCkgPiA2MCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBcXGB0YXJnZXRJbnRlcnZhbFxcYCBtdXN0IGJlIGJldHdlZW4gMSBhbmQgNjAgc2Vjb25kcywgZ290ICR7dGFyZ2V0SW50ZXJ2YWwudG9TZWNvbmRzKCl9IHNlY29uZHMuYCk7XG4gICAgfVxuICB9XG59XG5cbiJdfQ==