UNPKG

@aws-cdk/aws-ivs-alpha

Version:

The CDK Construct Library for AWS::IVS

92 lines 10.7 kB
"use strict"; 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==