awscdk-construct-scte-scheduler 0.0.12 → 0.0.13
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.
- package/.jsii +53 -12
- package/API.md +25 -3
- package/README.md +4 -1
- package/lib/EventBridgeSchedule.js +1 -1
- package/lib/Lambda.js +1 -1
- package/lib/ScteScheduler.d.ts +5 -1
- package/lib/ScteScheduler.js +35 -8
- package/lib/code/index.d.ts +3 -1
- package/lib/code/index.js +3 -2
- package/package.json +1 -1
package/.jsii
CHANGED
|
@@ -3826,7 +3826,7 @@
|
|
|
3826
3826
|
},
|
|
3827
3827
|
"name": "awscdk-construct-scte-scheduler",
|
|
3828
3828
|
"readme": {
|
|
3829
|
-
"markdown": "# awscdk-construct-scte-scheduler\n[](https://constructs.dev/packages/awscdk-construct-scte-scheduler)\n\nAWS CDK Construct for scheduling SCTE-35 events using the MediaLive schedule API\n* Input:\n * MediaLive channel id\n * SCTE event duration (seconds)\n * Repeat interval (minutes)\n* Output:\n * Lambda function for calling MediaLive schedule API\n * EventBridge rule for periodically invoking the function\n\n## Install\n[](https://nodei.co/npm/awscdk-construct-scte-scheduler/)\n\n## Usage\n```ts\nimport { Stack, StackProps, CfnOutput } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { LiveChannelFromMp4 } from 'awscdk-construct-live-channel-from-mp4-file';\nimport { ScteScheduler } from 'awscdk-construct-scte-scheduler';\n\nexport class ExampleStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n\n // Create a live channel (MediaLive + MediaPackage)\n const {eml, emp} = new LiveChannelFromMp4(this, 'LiveChannelFromMp4', {\n sourceUrl: 's3ssl://example_bucket/test.mp4',\n timecodeBurninPrefix: 'Ch1',\n autoStart: true,\n });\n\n // Schedule a 30-sec ad break every minute\n new ScteScheduler(this, 'ScteScheduler', {\n channelId: eml.channel.ref,\n scteDurationInSeconds: 30,\n intervalInMinutes: 1,\n });\n\n // Print MediaPackage endpoint URL (HLS)\n new CfnOutput(this, \"MediaPackageEndpointURL\", {\n value: emp.endpoints.hls.attrUrl,\n exportName: \"MediaPackageEndpointURL\",\n description: \"MediaPackage endpoint URL\",\n });\n }\n}\n```\n"
|
|
3829
|
+
"markdown": "# awscdk-construct-scte-scheduler\n[](https://constructs.dev/packages/awscdk-construct-scte-scheduler)\n\nAWS CDK Construct for scheduling SCTE-35 events using the MediaLive schedule API\n* Input:\n * MediaLive channel id\n * SCTE event duration (seconds)\n * Repeat interval (minutes)\n * Repeat count (optional)\n * Lambda function to be called after the repeat (optional)\n* Output:\n * Lambda function for calling MediaLive schedule API\n * EventBridge rule or Stepfunctions state machine for periodically invoking the function\n\n## Install\n[](https://nodei.co/npm/awscdk-construct-scte-scheduler/)\n\n## Usage\n```ts\nimport { Stack, StackProps, CfnOutput } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { LiveChannelFromMp4 } from 'awscdk-construct-live-channel-from-mp4-file';\nimport { ScteScheduler } from 'awscdk-construct-scte-scheduler';\n\nexport class ExampleStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n\n // Create a live channel (MediaLive + MediaPackage)\n const {eml, emp} = new LiveChannelFromMp4(this, 'LiveChannelFromMp4', {\n sourceUrl: 's3ssl://example_bucket/test.mp4',\n timecodeBurninPrefix: 'Ch1',\n autoStart: true,\n });\n\n // Schedule a 30-sec ad break every minute\n new ScteScheduler(this, 'ScteScheduler', {\n channelId: eml.channel.ref,\n scteDurationInSeconds: 30,\n intervalInMinutes: 1,\n repeqtCount: 5,\n });\n\n // Print MediaPackage endpoint URL (HLS)\n new CfnOutput(this, \"MediaPackageEndpointURL\", {\n value: emp.endpoints.hls.attrUrl,\n exportName: \"MediaPackageEndpointURL\",\n description: \"MediaPackage endpoint URL\",\n });\n }\n}\n```\n"
|
|
3830
3830
|
},
|
|
3831
3831
|
"repository": {
|
|
3832
3832
|
"type": "git",
|
|
@@ -4065,7 +4065,7 @@
|
|
|
4065
4065
|
},
|
|
4066
4066
|
"locationInModule": {
|
|
4067
4067
|
"filename": "src/ScteScheduler.ts",
|
|
4068
|
-
"line":
|
|
4068
|
+
"line": 31
|
|
4069
4069
|
},
|
|
4070
4070
|
"parameters": [
|
|
4071
4071
|
{
|
|
@@ -4091,7 +4091,7 @@
|
|
|
4091
4091
|
"kind": "class",
|
|
4092
4092
|
"locationInModule": {
|
|
4093
4093
|
"filename": "src/ScteScheduler.ts",
|
|
4094
|
-
"line":
|
|
4094
|
+
"line": 27
|
|
4095
4095
|
},
|
|
4096
4096
|
"name": "ScteScheduler",
|
|
4097
4097
|
"properties": [
|
|
@@ -4102,7 +4102,7 @@
|
|
|
4102
4102
|
"immutable": true,
|
|
4103
4103
|
"locationInModule": {
|
|
4104
4104
|
"filename": "src/ScteScheduler.ts",
|
|
4105
|
-
"line":
|
|
4105
|
+
"line": 28
|
|
4106
4106
|
},
|
|
4107
4107
|
"name": "lambda",
|
|
4108
4108
|
"type": {
|
|
@@ -4116,11 +4116,20 @@
|
|
|
4116
4116
|
"immutable": true,
|
|
4117
4117
|
"locationInModule": {
|
|
4118
4118
|
"filename": "src/ScteScheduler.ts",
|
|
4119
|
-
"line":
|
|
4119
|
+
"line": 29
|
|
4120
4120
|
},
|
|
4121
4121
|
"name": "schedule",
|
|
4122
4122
|
"type": {
|
|
4123
|
-
"
|
|
4123
|
+
"union": {
|
|
4124
|
+
"types": [
|
|
4125
|
+
{
|
|
4126
|
+
"fqn": "awscdk-construct-scte-scheduler.EventBridgeSchedule"
|
|
4127
|
+
},
|
|
4128
|
+
{
|
|
4129
|
+
"fqn": "aws-cdk-lib.aws_stepfunctions.StateMachine"
|
|
4130
|
+
}
|
|
4131
|
+
]
|
|
4132
|
+
}
|
|
4124
4133
|
}
|
|
4125
4134
|
}
|
|
4126
4135
|
],
|
|
@@ -4136,7 +4145,7 @@
|
|
|
4136
4145
|
"kind": "interface",
|
|
4137
4146
|
"locationInModule": {
|
|
4138
4147
|
"filename": "src/ScteScheduler.ts",
|
|
4139
|
-
"line":
|
|
4148
|
+
"line": 19
|
|
4140
4149
|
},
|
|
4141
4150
|
"name": "ScteSchedulerProps",
|
|
4142
4151
|
"properties": [
|
|
@@ -4148,7 +4157,7 @@
|
|
|
4148
4157
|
"immutable": true,
|
|
4149
4158
|
"locationInModule": {
|
|
4150
4159
|
"filename": "src/ScteScheduler.ts",
|
|
4151
|
-
"line":
|
|
4160
|
+
"line": 20
|
|
4152
4161
|
},
|
|
4153
4162
|
"name": "channelId",
|
|
4154
4163
|
"type": {
|
|
@@ -4163,7 +4172,7 @@
|
|
|
4163
4172
|
"immutable": true,
|
|
4164
4173
|
"locationInModule": {
|
|
4165
4174
|
"filename": "src/ScteScheduler.ts",
|
|
4166
|
-
"line":
|
|
4175
|
+
"line": 22
|
|
4167
4176
|
},
|
|
4168
4177
|
"name": "intervalInMinutes",
|
|
4169
4178
|
"type": {
|
|
@@ -4178,17 +4187,49 @@
|
|
|
4178
4187
|
"immutable": true,
|
|
4179
4188
|
"locationInModule": {
|
|
4180
4189
|
"filename": "src/ScteScheduler.ts",
|
|
4181
|
-
"line":
|
|
4190
|
+
"line": 21
|
|
4182
4191
|
},
|
|
4183
4192
|
"name": "scteDurationInSeconds",
|
|
4184
4193
|
"type": {
|
|
4185
4194
|
"primitive": "number"
|
|
4186
4195
|
}
|
|
4196
|
+
},
|
|
4197
|
+
{
|
|
4198
|
+
"abstract": true,
|
|
4199
|
+
"docs": {
|
|
4200
|
+
"stability": "stable"
|
|
4201
|
+
},
|
|
4202
|
+
"immutable": true,
|
|
4203
|
+
"locationInModule": {
|
|
4204
|
+
"filename": "src/ScteScheduler.ts",
|
|
4205
|
+
"line": 24
|
|
4206
|
+
},
|
|
4207
|
+
"name": "callback",
|
|
4208
|
+
"optional": true,
|
|
4209
|
+
"type": {
|
|
4210
|
+
"fqn": "aws-cdk-lib.aws_lambda.IFunction"
|
|
4211
|
+
}
|
|
4212
|
+
},
|
|
4213
|
+
{
|
|
4214
|
+
"abstract": true,
|
|
4215
|
+
"docs": {
|
|
4216
|
+
"stability": "stable"
|
|
4217
|
+
},
|
|
4218
|
+
"immutable": true,
|
|
4219
|
+
"locationInModule": {
|
|
4220
|
+
"filename": "src/ScteScheduler.ts",
|
|
4221
|
+
"line": 23
|
|
4222
|
+
},
|
|
4223
|
+
"name": "repeatCount",
|
|
4224
|
+
"optional": true,
|
|
4225
|
+
"type": {
|
|
4226
|
+
"primitive": "number"
|
|
4227
|
+
}
|
|
4187
4228
|
}
|
|
4188
4229
|
],
|
|
4189
4230
|
"symbolId": "src/ScteScheduler:ScteSchedulerProps"
|
|
4190
4231
|
}
|
|
4191
4232
|
},
|
|
4192
|
-
"version": "0.0.
|
|
4193
|
-
"fingerprint": "
|
|
4233
|
+
"version": "0.0.13",
|
|
4234
|
+
"fingerprint": "nSk9VPKOgHrCu1GeluFDJoYFjazNijQMKzobPDJjNoY="
|
|
4194
4235
|
}
|
package/API.md
CHANGED
|
@@ -348,7 +348,7 @@ Any object.
|
|
|
348
348
|
| --- | --- | --- |
|
|
349
349
|
| <code><a href="#awscdk-construct-scte-scheduler.ScteScheduler.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
|
|
350
350
|
| <code><a href="#awscdk-construct-scte-scheduler.ScteScheduler.property.lambda">lambda</a></code> | <code><a href="#awscdk-construct-scte-scheduler.Lambda">Lambda</a></code> | *No description.* |
|
|
351
|
-
| <code><a href="#awscdk-construct-scte-scheduler.ScteScheduler.property.schedule">schedule</a></code> | <code><a href="#awscdk-construct-scte-scheduler.EventBridgeSchedule">EventBridgeSchedule</a
|
|
351
|
+
| <code><a href="#awscdk-construct-scte-scheduler.ScteScheduler.property.schedule">schedule</a></code> | <code><a href="#awscdk-construct-scte-scheduler.EventBridgeSchedule">EventBridgeSchedule</a> \| aws-cdk-lib.aws_stepfunctions.StateMachine</code> | *No description.* |
|
|
352
352
|
|
|
353
353
|
---
|
|
354
354
|
|
|
@@ -377,10 +377,10 @@ public readonly lambda: Lambda;
|
|
|
377
377
|
##### `schedule`<sup>Required</sup> <a name="schedule" id="awscdk-construct-scte-scheduler.ScteScheduler.property.schedule"></a>
|
|
378
378
|
|
|
379
379
|
```typescript
|
|
380
|
-
public readonly schedule: EventBridgeSchedule;
|
|
380
|
+
public readonly schedule: EventBridgeSchedule | StateMachine;
|
|
381
381
|
```
|
|
382
382
|
|
|
383
|
-
- *Type:* <a href="#awscdk-construct-scte-scheduler.EventBridgeSchedule">EventBridgeSchedule</a>
|
|
383
|
+
- *Type:* <a href="#awscdk-construct-scte-scheduler.EventBridgeSchedule">EventBridgeSchedule</a> | aws-cdk-lib.aws_stepfunctions.StateMachine
|
|
384
384
|
|
|
385
385
|
---
|
|
386
386
|
|
|
@@ -482,6 +482,8 @@ const scteSchedulerProps: ScteSchedulerProps = { ... }
|
|
|
482
482
|
| <code><a href="#awscdk-construct-scte-scheduler.ScteSchedulerProps.property.channelId">channelId</a></code> | <code>string</code> | *No description.* |
|
|
483
483
|
| <code><a href="#awscdk-construct-scte-scheduler.ScteSchedulerProps.property.intervalInMinutes">intervalInMinutes</a></code> | <code>number</code> | *No description.* |
|
|
484
484
|
| <code><a href="#awscdk-construct-scte-scheduler.ScteSchedulerProps.property.scteDurationInSeconds">scteDurationInSeconds</a></code> | <code>number</code> | *No description.* |
|
|
485
|
+
| <code><a href="#awscdk-construct-scte-scheduler.ScteSchedulerProps.property.callback">callback</a></code> | <code>aws-cdk-lib.aws_lambda.IFunction</code> | *No description.* |
|
|
486
|
+
| <code><a href="#awscdk-construct-scte-scheduler.ScteSchedulerProps.property.repeatCount">repeatCount</a></code> | <code>number</code> | *No description.* |
|
|
485
487
|
|
|
486
488
|
---
|
|
487
489
|
|
|
@@ -515,5 +517,25 @@ public readonly scteDurationInSeconds: number;
|
|
|
515
517
|
|
|
516
518
|
---
|
|
517
519
|
|
|
520
|
+
##### `callback`<sup>Optional</sup> <a name="callback" id="awscdk-construct-scte-scheduler.ScteSchedulerProps.property.callback"></a>
|
|
521
|
+
|
|
522
|
+
```typescript
|
|
523
|
+
public readonly callback: IFunction;
|
|
524
|
+
```
|
|
525
|
+
|
|
526
|
+
- *Type:* aws-cdk-lib.aws_lambda.IFunction
|
|
527
|
+
|
|
528
|
+
---
|
|
529
|
+
|
|
530
|
+
##### `repeatCount`<sup>Optional</sup> <a name="repeatCount" id="awscdk-construct-scte-scheduler.ScteSchedulerProps.property.repeatCount"></a>
|
|
531
|
+
|
|
532
|
+
```typescript
|
|
533
|
+
public readonly repeatCount: number;
|
|
534
|
+
```
|
|
535
|
+
|
|
536
|
+
- *Type:* number
|
|
537
|
+
|
|
538
|
+
---
|
|
539
|
+
|
|
518
540
|
|
|
519
541
|
|
package/README.md
CHANGED
|
@@ -6,9 +6,11 @@ AWS CDK Construct for scheduling SCTE-35 events using the MediaLive schedule API
|
|
|
6
6
|
* MediaLive channel id
|
|
7
7
|
* SCTE event duration (seconds)
|
|
8
8
|
* Repeat interval (minutes)
|
|
9
|
+
* Repeat count (optional)
|
|
10
|
+
* Lambda function to be called after the repeat (optional)
|
|
9
11
|
* Output:
|
|
10
12
|
* Lambda function for calling MediaLive schedule API
|
|
11
|
-
* EventBridge rule for periodically invoking the function
|
|
13
|
+
* EventBridge rule or Stepfunctions state machine for periodically invoking the function
|
|
12
14
|
|
|
13
15
|
## Install
|
|
14
16
|
[](https://nodei.co/npm/awscdk-construct-scte-scheduler/)
|
|
@@ -36,6 +38,7 @@ export class ExampleStack extends Stack {
|
|
|
36
38
|
channelId: eml.channel.ref,
|
|
37
39
|
scteDurationInSeconds: 30,
|
|
38
40
|
intervalInMinutes: 1,
|
|
41
|
+
repeqtCount: 5,
|
|
39
42
|
});
|
|
40
43
|
|
|
41
44
|
// Print MediaPackage endpoint URL (HLS)
|
|
@@ -19,5 +19,5 @@ class EventBridgeSchedule extends constructs_1.Construct {
|
|
|
19
19
|
}
|
|
20
20
|
exports.EventBridgeSchedule = EventBridgeSchedule;
|
|
21
21
|
_a = JSII_RTTI_SYMBOL_1;
|
|
22
|
-
EventBridgeSchedule[_a] = { fqn: "awscdk-construct-scte-scheduler.EventBridgeSchedule", version: "0.0.
|
|
22
|
+
EventBridgeSchedule[_a] = { fqn: "awscdk-construct-scte-scheduler.EventBridgeSchedule", version: "0.0.13" };
|
|
23
23
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRCcmlkZ2VTY2hlZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9FdmVudEJyaWRnZVNjaGVkdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW1DO0FBQ25DLHVEQUF3RDtBQUN4RCx1RUFBZ0U7QUFFaEUsMkNBQXVDO0FBT3ZDLE1BQWEsbUJBQW9CLFNBQVEsc0JBQVM7SUFHaEQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUErQjtRQUN2RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFFMUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLGlCQUFJLENBQUMsSUFBSSxFQUFFLDZCQUE2QixFQUFFO1lBQ3hELFFBQVEsRUFBRSxxQkFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ2pFLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUNqQixJQUFJLG1DQUFjLENBQUMsSUFBSSxDQUFDLENBQ3pCLENBQUM7SUFDSixDQUFDOztBQWZILGtEQWdCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBSdWxlLCBTY2hlZHVsZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMnO1xuaW1wb3J0IHsgTGFtYmRhRnVuY3Rpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzLXRhcmdldHMnO1xuaW1wb3J0IHsgTm9kZWpzRnVuY3Rpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhLW5vZGVqcyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGludGVyZmFjZSBFdmVudEJyaWRnZVNjaGVkdWxlUHJvcHMge1xuICByZWFkb25seSBmdW5jOiBOb2RlanNGdW5jdGlvbjtcbiAgcmVhZG9ubHkgaW50ZXJ2YWxJbk1pbnV0ZXM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIEV2ZW50QnJpZGdlU2NoZWR1bGUgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcnVsZTogUnVsZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRXZlbnRCcmlkZ2VTY2hlZHVsZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHsgZnVuYywgaW50ZXJ2YWxJbk1pbnV0ZXMgfSA9IHByb3BzO1xuXG4gICAgdGhpcy5ydWxlID0gbmV3IFJ1bGUodGhpcywgJ0ludm9rZUZ1bmN0aW9uRXZlcnlYTWludXRlcycsIHtcbiAgICAgIHNjaGVkdWxlOiBTY2hlZHVsZS5yYXRlKGNkay5EdXJhdGlvbi5taW51dGVzKGludGVydmFsSW5NaW51dGVzKSksXG4gICAgfSk7XG5cbiAgICB0aGlzLnJ1bGUuYWRkVGFyZ2V0KFxuICAgICAgbmV3IExhbWJkYUZ1bmN0aW9uKGZ1bmMpLFxuICAgICk7XG4gIH1cbn0iXX0=
|
package/lib/Lambda.js
CHANGED
|
@@ -41,5 +41,5 @@ class Lambda extends constructs_1.Construct {
|
|
|
41
41
|
}
|
|
42
42
|
exports.Lambda = Lambda;
|
|
43
43
|
_a = JSII_RTTI_SYMBOL_1;
|
|
44
|
-
Lambda[_a] = { fqn: "awscdk-construct-scte-scheduler.Lambda", version: "0.0.
|
|
44
|
+
Lambda[_a] = { fqn: "awscdk-construct-scte-scheduler.Lambda", version: "0.0.13" };
|
|
45
45
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0xhbWJkYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFDN0IsNkNBQXlEO0FBQ3pELGlEQUFzRDtBQUN0RCx1REFBaUQ7QUFDakQscUVBQStEO0FBQy9ELDJDQUF1QztBQU92QyxNQUFhLE1BQU8sU0FBUSxzQkFBUztJQUduQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWtCO1FBQzFELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSxHQUFHLEtBQUssQ0FBQztRQUVuRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDN0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRTdELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxrQ0FBYyxDQUFDLEtBQUssRUFBRSxjQUFjLEVBQUU7WUFDcEQsT0FBTyxFQUFFLG9CQUFPLENBQUMsV0FBVztZQUM1QixLQUFLLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRO1lBQ3BELDhDQUE4QztZQUM5Qyx3RUFBd0U7WUFDeEUsT0FBTyxFQUFFLFNBQVM7WUFDbEIsT0FBTyxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM3QixXQUFXLEVBQUU7Z0JBQ1gsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBa0I7Z0JBQ3hDLE1BQU0sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUE0QjtnQkFDaEQsVUFBVSxFQUFFLFNBQVM7Z0JBQ3JCLFlBQVksRUFBRSxHQUFHLHFCQUFxQixFQUFFO2FBQ3pDO1lBQ0QsWUFBWSxFQUFFLHNCQUFJLENBQUMsYUFBYSxDQUFDLFNBQVM7U0FDM0MsQ0FBQyxDQUFDO1FBQ0gsaURBQWlEO1FBQ2pELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUN2Qix5QkFBZSxDQUFDLFFBQVEsQ0FBQztZQUN2QixNQUFNLEVBQUUsT0FBTztZQUNmLE1BQU0sRUFBRSxhQUFhO1lBQ3JCLFFBQVEsRUFBRSxHQUFHO1NBQ2QsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOztBQWxDSCx3QkFtQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgRHVyYXRpb24sIGF3c19sb2dzIGFzIGxvZ3MgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IFJ1bnRpbWUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IE5vZGVqc0Z1bmN0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYS1ub2RlanMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhUHJvcHMge1xuICByZWFkb25seSBjaGFubmVsSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgc2N0ZUR1cmF0aW9uSW5TZWNvbmRzOiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBMYW1iZGEgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgZnVuYzogTm9kZWpzRnVuY3Rpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IExhbWJkYVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHsgY2hhbm5lbElkLCBzY3RlRHVyYXRpb25JblNlY29uZHMgfSA9IHByb3BzO1xuXG4gICAgY29uc3QgVFNfRU5UUlkgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnY29kZScsICdpbmRleC50cycpO1xuICAgIGNvbnN0IEpTX0VOVFJZID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ2NvZGUnLCAnaW5kZXguanMnKTtcblxuICAgIHRoaXMuZnVuYyA9IG5ldyBOb2RlanNGdW5jdGlvbihzY29wZSwgJ1NjaGVkdWxlU0NURScsIHtcbiAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzE4X1gsXG4gICAgICBlbnRyeTogZnMuZXhpc3RzU3luYyhUU19FTlRSWSkgPyBUU19FTlRSWSA6IEpTX0VOVFJZLFxuICAgICAgLy8gcHJvamVjdFJvb3Q6IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLicpLFxuICAgICAgLy8gZGVwc0xvY2tGaWxlUGF0aDogcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4uJywgJ3BhY2thZ2UtbG9jay5qc29uJyksXG4gICAgICBoYW5kbGVyOiAnaGFuZGxlcicsXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDMwKSxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIE5PREVfRU5WOiBwcm9jZXNzLmVudi5OT0RFX0VOViBhcyBzdHJpbmcsXG4gICAgICAgIFJFR0lPTjogcHJvY2Vzcy5lbnYuQ0RLX0RFRkFVTFRfUkVHSU9OIGFzIHN0cmluZyxcbiAgICAgICAgQ0hBTk5FTF9JRDogY2hhbm5lbElkLFxuICAgICAgICBBVkFJTF9MRU5HVEg6IGAke3NjdGVEdXJhdGlvbkluU2Vjb25kc31gLFxuICAgICAgfSxcbiAgICAgIGxvZ1JldGVudGlvbjogbG9ncy5SZXRlbnRpb25EYXlzLlRXT19XRUVLUyxcbiAgICB9KTtcbiAgICAvLyBBZGQgYSBzdGF0ZW1lbnQgdG8gY2FsbCBNZWRpYUxpdmUgc2NoZWR1bGUgQVBJXG4gICAgdGhpcy5mdW5jLmFkZFRvUm9sZVBvbGljeShcbiAgICAgIFBvbGljeVN0YXRlbWVudC5mcm9tSnNvbih7XG4gICAgICAgIEVmZmVjdDogJ0FsbG93JyxcbiAgICAgICAgQWN0aW9uOiAnbWVkaWFsaXZlOionLFxuICAgICAgICBSZXNvdXJjZTogJyonLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxufSJdfQ==
|
package/lib/ScteScheduler.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { IFunction } from 'aws-cdk-lib/aws-lambda';
|
|
2
|
+
import { StateMachine } from 'aws-cdk-lib/aws-stepfunctions';
|
|
1
3
|
import { Construct } from 'constructs';
|
|
2
4
|
import { EventBridgeSchedule } from './EventBridgeSchedule';
|
|
3
5
|
import { Lambda } from './Lambda';
|
|
@@ -5,9 +7,11 @@ export interface ScteSchedulerProps {
|
|
|
5
7
|
readonly channelId: string;
|
|
6
8
|
readonly scteDurationInSeconds: number;
|
|
7
9
|
readonly intervalInMinutes: number;
|
|
10
|
+
readonly repeatCount?: number;
|
|
11
|
+
readonly callback?: IFunction;
|
|
8
12
|
}
|
|
9
13
|
export declare class ScteScheduler extends Construct {
|
|
10
14
|
readonly lambda: Lambda;
|
|
11
|
-
readonly schedule: EventBridgeSchedule;
|
|
15
|
+
readonly schedule: EventBridgeSchedule | StateMachine;
|
|
12
16
|
constructor(scope: Construct, id: string, props: ScteSchedulerProps);
|
|
13
17
|
}
|
package/lib/ScteScheduler.js
CHANGED
|
@@ -3,26 +3,53 @@ var _a;
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.ScteScheduler = void 0;
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
7
|
+
const aws_stepfunctions_1 = require("aws-cdk-lib/aws-stepfunctions");
|
|
8
|
+
const aws_stepfunctions_tasks_1 = require("aws-cdk-lib/aws-stepfunctions-tasks");
|
|
6
9
|
const constructs_1 = require("constructs");
|
|
7
10
|
const EventBridgeSchedule_1 = require("./EventBridgeSchedule");
|
|
8
11
|
const Lambda_1 = require("./Lambda");
|
|
9
12
|
class ScteScheduler extends constructs_1.Construct {
|
|
10
13
|
constructor(scope, id, props) {
|
|
11
14
|
super(scope, id);
|
|
12
|
-
const { channelId, scteDurationInSeconds, intervalInMinutes
|
|
15
|
+
const { channelId, scteDurationInSeconds, intervalInMinutes, repeatCount = 0, // 0 means infinite loop
|
|
16
|
+
callback, } = props;
|
|
13
17
|
// Create Lambda function to insert SCTE message using the MediaLive schedule API
|
|
14
18
|
this.lambda = new Lambda_1.Lambda(this, 'LambdaFunction', {
|
|
15
19
|
channelId,
|
|
16
20
|
scteDurationInSeconds,
|
|
17
21
|
});
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
if (repeatCount <= 0) {
|
|
23
|
+
// Create EventBridge rule to invoke the Lambda function every N minutes
|
|
24
|
+
this.schedule = new EventBridgeSchedule_1.EventBridgeSchedule(this, 'EventBridgeSchedule', {
|
|
25
|
+
func: this.lambda.func,
|
|
26
|
+
intervalInMinutes,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
// Create Step Functions state machine to invoke the Lambda function N times
|
|
31
|
+
const invoke = new aws_stepfunctions_tasks_1.LambdaInvoke(this, 'Invoke with empty object as payload', {
|
|
32
|
+
lambdaFunction: this.lambda.func,
|
|
33
|
+
inputPath: '$.Payload',
|
|
34
|
+
});
|
|
35
|
+
const wait = new aws_stepfunctions_1.Wait(this, 'Wait', {
|
|
36
|
+
time: aws_stepfunctions_1.WaitTime.duration(aws_cdk_lib_1.Duration.minutes(intervalInMinutes)),
|
|
37
|
+
});
|
|
38
|
+
const lastTask = callback ? new aws_stepfunctions_tasks_1.LambdaInvoke(this, 'Callback', {
|
|
39
|
+
lambdaFunction: callback,
|
|
40
|
+
}) : new aws_stepfunctions_1.Succeed(this, 'Done');
|
|
41
|
+
this.schedule = new aws_stepfunctions_1.StateMachine(this, 'StateMachine', {
|
|
42
|
+
definitionBody: aws_stepfunctions_1.DefinitionBody.fromChainable(aws_stepfunctions_1.Chain.start(new aws_stepfunctions_1.Pass(this, 'Start', { parameters: { Payload: { i: 0 } } }))
|
|
43
|
+
.next(wait)
|
|
44
|
+
.next(invoke)
|
|
45
|
+
.next(new aws_stepfunctions_1.Choice(this, 'Choice')
|
|
46
|
+
.when(aws_stepfunctions_1.Condition.numberLessThan('$.Payload.i', repeatCount), wait)
|
|
47
|
+
.otherwise(lastTask))),
|
|
48
|
+
});
|
|
49
|
+
}
|
|
23
50
|
}
|
|
24
51
|
}
|
|
25
52
|
exports.ScteScheduler = ScteScheduler;
|
|
26
53
|
_a = JSII_RTTI_SYMBOL_1;
|
|
27
|
-
ScteScheduler[_a] = { fqn: "awscdk-construct-scte-scheduler.ScteScheduler", version: "0.0.
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
ScteScheduler[_a] = { fqn: "awscdk-construct-scte-scheduler.ScteScheduler", version: "0.0.13" };
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2N0ZVNjaGVkdWxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9TY3RlU2NoZWR1bGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQXVDO0FBRXZDLHFFQVV1QztBQUN2QyxpRkFBbUU7QUFDbkUsMkNBQXVDO0FBQ3ZDLCtEQUE0RDtBQUM1RCxxQ0FBa0M7QUFVbEMsTUFBYSxhQUFjLFNBQVEsc0JBQVM7SUFJMUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF5QjtRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sRUFDSixTQUFTLEVBQ1QscUJBQXFCLEVBQ3JCLGlCQUFpQixFQUNqQixXQUFXLEdBQUcsQ0FBQyxFQUFFLHdCQUF3QjtRQUN6QyxRQUFRLEdBQ1QsR0FBRyxLQUFLLENBQUM7UUFFVixpRkFBaUY7UUFDakYsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGVBQU0sQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7WUFDL0MsU0FBUztZQUNULHFCQUFxQjtTQUN0QixDQUFDLENBQUM7UUFFSCxJQUFJLFdBQVcsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNyQix3RUFBd0U7WUFDeEUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHlDQUFtQixDQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRTtnQkFDbkUsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSTtnQkFDdEIsaUJBQWlCO2FBQ2xCLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sNEVBQTRFO1lBQzVFLE1BQU0sTUFBTSxHQUFHLElBQUksc0NBQVksQ0FBQyxJQUFJLEVBQUUscUNBQXFDLEVBQUU7Z0JBQzNFLGNBQWMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUk7Z0JBQ2hDLFNBQVMsRUFBRSxXQUFXO2FBQ3ZCLENBQUMsQ0FBQztZQUNILE1BQU0sSUFBSSxHQUFHLElBQUksd0JBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFO2dCQUNsQyxJQUFJLEVBQUUsNEJBQVEsQ0FBQyxRQUFRLENBQUMsc0JBQVEsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQzthQUM3RCxDQUFDLENBQUM7WUFDSCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksc0NBQVksQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUM3RCxjQUFjLEVBQUUsUUFBUTthQUN6QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksMkJBQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGdDQUFZLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRTtnQkFDckQsY0FBYyxFQUFFLGtDQUFjLENBQUMsYUFBYSxDQUMxQyx5QkFBSyxDQUFDLEtBQUssQ0FDVCxJQUFJLHdCQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FDL0Q7cUJBQ0UsSUFBSSxDQUFDLElBQUksQ0FBQztxQkFDVixJQUFJLENBQUMsTUFBTSxDQUFDO3FCQUNaLElBQUksQ0FDSCxJQUFJLDBCQUFNLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQztxQkFDdkIsSUFBSSxDQUNILDZCQUFTLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsRUFDcEQsSUFBSSxDQUNMO3FCQUNBLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FDdkIsQ0FDSjthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOztBQXpESCxzQ0EwREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IElGdW5jdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHtcbiAgU3RhdGVNYWNoaW5lLFxuICBEZWZpbml0aW9uQm9keSxcbiAgQ2hhaW4sXG4gIENob2ljZSxcbiAgQ29uZGl0aW9uLFxuICBXYWl0LFxuICBXYWl0VGltZSxcbiAgUGFzcyxcbiAgU3VjY2VlZCxcbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXN0ZXBmdW5jdGlvbnMnO1xuaW1wb3J0IHsgTGFtYmRhSW52b2tlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXN0ZXBmdW5jdGlvbnMtdGFza3MnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBFdmVudEJyaWRnZVNjaGVkdWxlIH0gZnJvbSAnLi9FdmVudEJyaWRnZVNjaGVkdWxlJztcbmltcG9ydCB7IExhbWJkYSB9IGZyb20gJy4vTGFtYmRhJztcblxuZXhwb3J0IGludGVyZmFjZSBTY3RlU2NoZWR1bGVyUHJvcHMge1xuICByZWFkb25seSBjaGFubmVsSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgc2N0ZUR1cmF0aW9uSW5TZWNvbmRzOiBudW1iZXI7XG4gIHJlYWRvbmx5IGludGVydmFsSW5NaW51dGVzOiBudW1iZXI7XG4gIHJlYWRvbmx5IHJlcGVhdENvdW50PzogbnVtYmVyO1xuICByZWFkb25seSBjYWxsYmFjaz86IElGdW5jdGlvbjtcbn1cblxuZXhwb3J0IGNsYXNzIFNjdGVTY2hlZHVsZXIgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgbGFtYmRhOiBMYW1iZGE7XG4gIHB1YmxpYyByZWFkb25seSBzY2hlZHVsZTogRXZlbnRCcmlkZ2VTY2hlZHVsZSB8IFN0YXRlTWFjaGluZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU2N0ZVNjaGVkdWxlclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHtcbiAgICAgIGNoYW5uZWxJZCxcbiAgICAgIHNjdGVEdXJhdGlvbkluU2Vjb25kcyxcbiAgICAgIGludGVydmFsSW5NaW51dGVzLFxuICAgICAgcmVwZWF0Q291bnQgPSAwLCAvLyAwIG1lYW5zIGluZmluaXRlIGxvb3BcbiAgICAgIGNhbGxiYWNrLFxuICAgIH0gPSBwcm9wcztcblxuICAgIC8vIENyZWF0ZSBMYW1iZGEgZnVuY3Rpb24gdG8gaW5zZXJ0IFNDVEUgbWVzc2FnZSB1c2luZyB0aGUgTWVkaWFMaXZlIHNjaGVkdWxlIEFQSVxuICAgIHRoaXMubGFtYmRhID0gbmV3IExhbWJkYSh0aGlzLCAnTGFtYmRhRnVuY3Rpb24nLCB7XG4gICAgICBjaGFubmVsSWQsXG4gICAgICBzY3RlRHVyYXRpb25JblNlY29uZHMsXG4gICAgfSk7XG5cbiAgICBpZiAocmVwZWF0Q291bnQgPD0gMCkge1xuICAgICAgLy8gQ3JlYXRlIEV2ZW50QnJpZGdlIHJ1bGUgdG8gaW52b2tlIHRoZSBMYW1iZGEgZnVuY3Rpb24gZXZlcnkgTiBtaW51dGVzXG4gICAgICB0aGlzLnNjaGVkdWxlID0gbmV3IEV2ZW50QnJpZGdlU2NoZWR1bGUodGhpcywgJ0V2ZW50QnJpZGdlU2NoZWR1bGUnLCB7XG4gICAgICAgIGZ1bmM6IHRoaXMubGFtYmRhLmZ1bmMsXG4gICAgICAgIGludGVydmFsSW5NaW51dGVzLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIENyZWF0ZSBTdGVwIEZ1bmN0aW9ucyBzdGF0ZSBtYWNoaW5lIHRvIGludm9rZSB0aGUgTGFtYmRhIGZ1bmN0aW9uIE4gdGltZXNcbiAgICAgIGNvbnN0IGludm9rZSA9IG5ldyBMYW1iZGFJbnZva2UodGhpcywgJ0ludm9rZSB3aXRoIGVtcHR5IG9iamVjdCBhcyBwYXlsb2FkJywge1xuICAgICAgICBsYW1iZGFGdW5jdGlvbjogdGhpcy5sYW1iZGEuZnVuYyxcbiAgICAgICAgaW5wdXRQYXRoOiAnJC5QYXlsb2FkJyxcbiAgICAgIH0pO1xuICAgICAgY29uc3Qgd2FpdCA9IG5ldyBXYWl0KHRoaXMsICdXYWl0Jywge1xuICAgICAgICB0aW1lOiBXYWl0VGltZS5kdXJhdGlvbihEdXJhdGlvbi5taW51dGVzKGludGVydmFsSW5NaW51dGVzKSksXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGxhc3RUYXNrID0gY2FsbGJhY2sgPyBuZXcgTGFtYmRhSW52b2tlKHRoaXMsICdDYWxsYmFjaycsIHtcbiAgICAgICAgbGFtYmRhRnVuY3Rpb246IGNhbGxiYWNrLFxuICAgICAgfSkgOiBuZXcgU3VjY2VlZCh0aGlzLCAnRG9uZScpO1xuICAgICAgdGhpcy5zY2hlZHVsZSA9IG5ldyBTdGF0ZU1hY2hpbmUodGhpcywgJ1N0YXRlTWFjaGluZScsIHtcbiAgICAgICAgZGVmaW5pdGlvbkJvZHk6IERlZmluaXRpb25Cb2R5LmZyb21DaGFpbmFibGUoXG4gICAgICAgICAgQ2hhaW4uc3RhcnQoXG4gICAgICAgICAgICBuZXcgUGFzcyh0aGlzLCAnU3RhcnQnLCB7IHBhcmFtZXRlcnM6IHsgUGF5bG9hZDogeyBpOiAwIH0gfSB9KSxcbiAgICAgICAgICApXG4gICAgICAgICAgICAubmV4dCh3YWl0KVxuICAgICAgICAgICAgLm5leHQoaW52b2tlKVxuICAgICAgICAgICAgLm5leHQoXG4gICAgICAgICAgICAgIG5ldyBDaG9pY2UodGhpcywgJ0Nob2ljZScpXG4gICAgICAgICAgICAgICAgLndoZW4oXG4gICAgICAgICAgICAgICAgICBDb25kaXRpb24ubnVtYmVyTGVzc1RoYW4oJyQuUGF5bG9hZC5pJywgcmVwZWF0Q291bnQpLFxuICAgICAgICAgICAgICAgICAgd2FpdCxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLm90aGVyd2lzZShsYXN0VGFzayksXG4gICAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59Il19
|
package/lib/code/index.d.ts
CHANGED
package/lib/code/index.js
CHANGED
|
@@ -7,10 +7,11 @@ const CHANNEL_ID = process.env.CHANNEL_ID;
|
|
|
7
7
|
const OFFSET = 30;
|
|
8
8
|
const AVAIL_LENGTH = process.env.AVAIL_LENGTH;
|
|
9
9
|
// Lambda function to insert SCTE-35 splice_insert() message using the MediaLive schedule API
|
|
10
|
-
async function handler() {
|
|
10
|
+
async function handler(event) {
|
|
11
11
|
await deleteSchedules();
|
|
12
12
|
const startTime = new Date(Date.now() + (OFFSET * 1000));
|
|
13
13
|
await scheduleEvent(Math.floor(startTime.getTime() / 1000), startTime);
|
|
14
|
+
return { i: event.i + 1 };
|
|
14
15
|
}
|
|
15
16
|
exports.handler = handler;
|
|
16
17
|
function deleteSchedules() {
|
|
@@ -43,4 +44,4 @@ function createScteCommand(eventId, start, durationInSeconds) {
|
|
|
43
44
|
],
|
|
44
45
|
};
|
|
45
46
|
}
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29kZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxnRUFLbUM7QUFFbkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxrQ0FBZSxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUVuRSxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQW9CLENBQUM7QUFDcEQsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO0FBQ2xCLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBaUMsQ0FBQztBQUVuRSw2RkFBNkY7QUFDdEYsS0FBSyxVQUFVLE9BQU8sQ0FBQyxLQUFVO0lBQ3RDLE1BQU0sZUFBZSxFQUFFLENBQUM7SUFDeEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDekQsTUFBTSxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdkUsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO0FBQzVCLENBQUM7QUFMRCwwQkFLQztBQUVELFNBQVMsZUFBZTtJQUN0QixNQUFNLE9BQU8sR0FBRyxJQUFJLHdDQUFxQixDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDckUsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzlCLENBQUM7QUFFRCxLQUFLLFVBQVUsYUFBYSxDQUFDLE9BQWUsRUFBRSxLQUFXO0lBQ3ZELE1BQU0sSUFBSSxHQUFHLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDN0QsTUFBTSxPQUFPLEdBQUcsSUFBSSw2Q0FBMEIsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDekYsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakQsQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQUMsT0FBZSxFQUFFLEtBQVcsRUFBRSxpQkFBeUI7SUFDaEYsT0FBTztRQUNMLGVBQWUsRUFBRTtZQUNmO2dCQUNFLFVBQVUsRUFBRSx3QkFBd0IsT0FBTyxFQUFFO2dCQUM3QyxzQkFBc0IsRUFBRTtvQkFDdEIsMEJBQTBCLEVBQUU7d0JBQzFCLGFBQWEsRUFBRSxPQUFPO3dCQUN0QixRQUFRLEVBQUUsaUJBQWlCLEdBQUcsS0FBTSxFQUFFLFFBQVE7cUJBQy9DO2lCQUNGO2dCQUNELDJCQUEyQixFQUFFO29CQUMzQixvQ0FBb0MsRUFBRTt3QkFDcEMsSUFBSSxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUU7cUJBQzFCO2lCQUNGO2FBQ0Y7U0FDRjtLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTWVkaWFMaXZlQ2xpZW50LFxuICBCYXRjaFVwZGF0ZVNjaGVkdWxlQ29tbWFuZCxcbiAgQmF0Y2hTY2hlZHVsZUFjdGlvbkNyZWF0ZVJlcXVlc3QsXG4gIERlbGV0ZVNjaGVkdWxlQ29tbWFuZCxcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LW1lZGlhbGl2ZSc7XG5cbmNvbnN0IGNsaWVudCA9IG5ldyBNZWRpYUxpdmVDbGllbnQoeyByZWdpb246IHByb2Nlc3MuZW52LlJFR0lPTiB9KTtcblxuY29uc3QgQ0hBTk5FTF9JRCA9IHByb2Nlc3MuZW52LkNIQU5ORUxfSUQgYXMgc3RyaW5nO1xuY29uc3QgT0ZGU0VUID0gMzA7XG5jb25zdCBBVkFJTF9MRU5HVEggPSBwcm9jZXNzLmVudi5BVkFJTF9MRU5HVEggYXMgdW5rbm93biBhcyBudW1iZXI7XG5cbi8vIExhbWJkYSBmdW5jdGlvbiB0byBpbnNlcnQgU0NURS0zNSBzcGxpY2VfaW5zZXJ0KCkgbWVzc2FnZSB1c2luZyB0aGUgTWVkaWFMaXZlIHNjaGVkdWxlIEFQSVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhbmRsZXIoZXZlbnQ6IGFueSkge1xuICBhd2FpdCBkZWxldGVTY2hlZHVsZXMoKTtcbiAgY29uc3Qgc3RhcnRUaW1lID0gbmV3IERhdGUoRGF0ZS5ub3coKSArIChPRkZTRVQgKiAxMDAwKSk7XG4gIGF3YWl0IHNjaGVkdWxlRXZlbnQoTWF0aC5mbG9vcihzdGFydFRpbWUuZ2V0VGltZSgpIC8gMTAwMCksIHN0YXJ0VGltZSk7XG4gIHJldHVybiB7IGk6IGV2ZW50LmkgKyAxIH07XG59XG5cbmZ1bmN0aW9uIGRlbGV0ZVNjaGVkdWxlcygpIHtcbiAgY29uc3QgY29tbWFuZCA9IG5ldyBEZWxldGVTY2hlZHVsZUNvbW1hbmQoeyBDaGFubmVsSWQ6IENIQU5ORUxfSUQgfSk7XG4gIHJldHVybiBjbGllbnQuc2VuZChjb21tYW5kKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc2NoZWR1bGVFdmVudChldmVudElkOiBudW1iZXIsIHN0YXJ0OiBEYXRlKSB7XG4gIGNvbnN0IHNjdGUgPSBjcmVhdGVTY3RlQ29tbWFuZChldmVudElkLCBzdGFydCwgQVZBSUxfTEVOR1RIKTtcbiAgY29uc3QgY29tbWFuZCA9IG5ldyBCYXRjaFVwZGF0ZVNjaGVkdWxlQ29tbWFuZCh7IENoYW5uZWxJZDogQ0hBTk5FTF9JRCwgQ3JlYXRlczogc2N0ZSB9KTtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuc2VuZChjb21tYW5kKTtcbiAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UsIG51bGwsIDIpKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlU2N0ZUNvbW1hbmQoZXZlbnRJZDogbnVtYmVyLCBzdGFydDogRGF0ZSwgZHVyYXRpb25JblNlY29uZHM6IG51bWJlcik6IEJhdGNoU2NoZWR1bGVBY3Rpb25DcmVhdGVSZXF1ZXN0IHtcbiAgcmV0dXJuIHtcbiAgICBTY2hlZHVsZUFjdGlvbnM6IFtcbiAgICAgIHtcbiAgICAgICAgQWN0aW9uTmFtZTogYFNDVEUzNV9zcGxpY2UtaW5zZXJ0XyR7ZXZlbnRJZH1gLFxuICAgICAgICBTY2hlZHVsZUFjdGlvblNldHRpbmdzOiB7XG4gICAgICAgICAgU2N0ZTM1U3BsaWNlSW5zZXJ0U2V0dGluZ3M6IHtcbiAgICAgICAgICAgIFNwbGljZUV2ZW50SWQ6IGV2ZW50SWQsXG4gICAgICAgICAgICBEdXJhdGlvbjogZHVyYXRpb25JblNlY29uZHMgKiA5MF8wMDAsIC8vIDkwa0h6XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgU2NoZWR1bGVBY3Rpb25TdGFydFNldHRpbmdzOiB7XG4gICAgICAgICAgRml4ZWRNb2RlU2NoZWR1bGVBY3Rpb25TdGFydFNldHRpbmdzOiB7XG4gICAgICAgICAgICBUaW1lOiBzdGFydC50b0lTT1N0cmluZygpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF0sXG4gIH07XG59XG5cblxuIl19
|