@aws-cdk/aws-mediapackagev2-alpha 2.248.0-alpha.0 → 2.250.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.
package/.jsii CHANGED
@@ -8,7 +8,7 @@
8
8
  "url": "https://aws.amazon.com"
9
9
  },
10
10
  "dependencies": {
11
- "aws-cdk-lib": "^2.248.0",
11
+ "aws-cdk-lib": "^2.250.0",
12
12
  "constructs": "^10.5.0"
13
13
  },
14
14
  "dependencyClosure": {
@@ -590,6 +590,19 @@
590
590
  }
591
591
  }
592
592
  },
593
+ "aws-cdk-lib.aws_bcmpricingcalculator": {
594
+ "targets": {
595
+ "dotnet": {
596
+ "namespace": "Amazon.CDK.AWS.BcmPricingCalculator"
597
+ },
598
+ "java": {
599
+ "package": "software.amazon.awscdk.services.bcmpricingcalculator"
600
+ },
601
+ "python": {
602
+ "module": "aws_cdk.aws_bcmpricingcalculator"
603
+ }
604
+ }
605
+ },
593
606
  "aws-cdk-lib.aws_bedrock": {
594
607
  "targets": {
595
608
  "dotnet": {
@@ -642,6 +655,19 @@
642
655
  }
643
656
  }
644
657
  },
658
+ "aws-cdk-lib.aws_braket": {
659
+ "targets": {
660
+ "dotnet": {
661
+ "namespace": "Amazon.CDK.AWS.Braket"
662
+ },
663
+ "java": {
664
+ "package": "software.amazon.awscdk.services.braket"
665
+ },
666
+ "python": {
667
+ "module": "aws_cdk.aws_braket"
668
+ }
669
+ }
670
+ },
645
671
  "aws-cdk-lib.aws_budgets": {
646
672
  "targets": {
647
673
  "dotnet": {
@@ -2820,6 +2846,19 @@
2820
2846
  }
2821
2847
  }
2822
2848
  },
2849
+ "aws-cdk-lib.aws_novaact": {
2850
+ "targets": {
2851
+ "dotnet": {
2852
+ "namespace": "Amazon.CDK.AWS.NovaAct"
2853
+ },
2854
+ "java": {
2855
+ "package": "software.amazon.awscdk.services.novaact"
2856
+ },
2857
+ "python": {
2858
+ "module": "aws_cdk.aws_novaact"
2859
+ }
2860
+ }
2861
+ },
2823
2862
  "aws-cdk-lib.aws_oam": {
2824
2863
  "targets": {
2825
2864
  "dotnet": {
@@ -3486,6 +3525,19 @@
3486
3525
  }
3487
3526
  }
3488
3527
  },
3528
+ "aws-cdk-lib.aws_s3files": {
3529
+ "targets": {
3530
+ "dotnet": {
3531
+ "namespace": "Amazon.CDK.AWS.S3Files"
3532
+ },
3533
+ "java": {
3534
+ "package": "software.amazon.awscdk.services.s3files"
3535
+ },
3536
+ "python": {
3537
+ "module": "aws_cdk.aws_s3files"
3538
+ }
3539
+ }
3540
+ },
3489
3541
  "aws-cdk-lib.aws_s3objectlambda": {
3490
3542
  "targets": {
3491
3543
  "dotnet": {
@@ -3616,6 +3668,19 @@
3616
3668
  }
3617
3669
  }
3618
3670
  },
3671
+ "aws-cdk-lib.aws_securityagent": {
3672
+ "targets": {
3673
+ "dotnet": {
3674
+ "namespace": "Amazon.CDK.AWS.SecurityAgent"
3675
+ },
3676
+ "java": {
3677
+ "package": "software.amazon.awscdk.services.securityagent"
3678
+ },
3679
+ "python": {
3680
+ "module": "aws_cdk.aws_securityagent"
3681
+ }
3682
+ }
3683
+ },
3619
3684
  "aws-cdk-lib.aws_securityhub": {
3620
3685
  "targets": {
3621
3686
  "dotnet": {
@@ -4704,6 +4769,22 @@
4704
4769
  }
4705
4770
  }
4706
4771
  },
4772
+ "aws-cdk-lib.interfaces.aws_bcmpricingcalculator": {
4773
+ "targets": {
4774
+ "dotnet": {
4775
+ "namespace": "Amazon.CDK.Interfaces.BcmPricingCalculator"
4776
+ },
4777
+ "go": {
4778
+ "packageName": "interfacesawsbcmpricingcalculator"
4779
+ },
4780
+ "java": {
4781
+ "package": "software.amazon.awscdk.interfaces.bcmpricingcalculator"
4782
+ },
4783
+ "python": {
4784
+ "module": "aws_cdk.interfaces.aws_bcmpricingcalculator"
4785
+ }
4786
+ }
4787
+ },
4707
4788
  "aws-cdk-lib.interfaces.aws_bedrock": {
4708
4789
  "targets": {
4709
4790
  "dotnet": {
@@ -4784,6 +4865,22 @@
4784
4865
  }
4785
4866
  }
4786
4867
  },
4868
+ "aws-cdk-lib.interfaces.aws_braket": {
4869
+ "targets": {
4870
+ "dotnet": {
4871
+ "namespace": "Amazon.CDK.Interfaces.Braket"
4872
+ },
4873
+ "go": {
4874
+ "packageName": "interfacesawsbraket"
4875
+ },
4876
+ "java": {
4877
+ "package": "software.amazon.awscdk.interfaces.braket"
4878
+ },
4879
+ "python": {
4880
+ "module": "aws_cdk.interfaces.aws_braket"
4881
+ }
4882
+ }
4883
+ },
4787
4884
  "aws-cdk-lib.interfaces.aws_budgets": {
4788
4885
  "targets": {
4789
4886
  "dotnet": {
@@ -7184,6 +7281,22 @@
7184
7281
  }
7185
7282
  }
7186
7283
  },
7284
+ "aws-cdk-lib.interfaces.aws_novaact": {
7285
+ "targets": {
7286
+ "dotnet": {
7287
+ "namespace": "Amazon.CDK.Interfaces.NovaAct"
7288
+ },
7289
+ "go": {
7290
+ "packageName": "interfacesawsnovaact"
7291
+ },
7292
+ "java": {
7293
+ "package": "software.amazon.awscdk.interfaces.novaact"
7294
+ },
7295
+ "python": {
7296
+ "module": "aws_cdk.interfaces.aws_novaact"
7297
+ }
7298
+ }
7299
+ },
7187
7300
  "aws-cdk-lib.interfaces.aws_oam": {
7188
7301
  "targets": {
7189
7302
  "dotnet": {
@@ -7904,6 +8017,22 @@
7904
8017
  }
7905
8018
  }
7906
8019
  },
8020
+ "aws-cdk-lib.interfaces.aws_s3files": {
8021
+ "targets": {
8022
+ "dotnet": {
8023
+ "namespace": "Amazon.CDK.Interfaces.S3Files"
8024
+ },
8025
+ "go": {
8026
+ "packageName": "interfacesawss3files"
8027
+ },
8028
+ "java": {
8029
+ "package": "software.amazon.awscdk.interfaces.s3files"
8030
+ },
8031
+ "python": {
8032
+ "module": "aws_cdk.interfaces.aws_s3files"
8033
+ }
8034
+ }
8035
+ },
7907
8036
  "aws-cdk-lib.interfaces.aws_s3objectlambda": {
7908
8037
  "targets": {
7909
8038
  "dotnet": {
@@ -8048,6 +8177,22 @@
8048
8177
  }
8049
8178
  }
8050
8179
  },
8180
+ "aws-cdk-lib.interfaces.aws_securityagent": {
8181
+ "targets": {
8182
+ "dotnet": {
8183
+ "namespace": "Amazon.CDK.Interfaces.SecurityAgent"
8184
+ },
8185
+ "go": {
8186
+ "packageName": "interfacesawssecurityagent"
8187
+ },
8188
+ "java": {
8189
+ "package": "software.amazon.awscdk.interfaces.securityagent"
8190
+ },
8191
+ "python": {
8192
+ "module": "aws_cdk.interfaces.aws_securityagent"
8193
+ }
8194
+ }
8195
+ },
8051
8196
  "aws-cdk-lib.interfaces.aws_securityhub": {
8052
8197
  "targets": {
8053
8198
  "dotnet": {
@@ -8763,7 +8908,7 @@
8763
8908
  "stability": "experimental"
8764
8909
  },
8765
8910
  "homepage": "https://github.com/aws/aws-cdk",
8766
- "jsiiVersion": "5.9.31 (build 550e607)",
8911
+ "jsiiVersion": "5.9.37 (build 5176c0d)",
8767
8912
  "keywords": [
8768
8913
  "aws",
8769
8914
  "cdk",
@@ -8785,7 +8930,7 @@
8785
8930
  },
8786
8931
  "name": "@aws-cdk/aws-mediapackagev2-alpha",
8787
8932
  "readme": {
8788
- "markdown": "# AWS::MediaPackageV2 Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge)\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\n## AWS Elemental MediaPackage V2\n\nMediaPackage delivers high-quality video without concern for capacity and makes it easier to implement popular DVR features such as start over, pause, and rewind. Your content will be protected with comprehensive support for DRM. The service seamlessly integrates with other AWS media services as a complete set of tools for cloud-based video processing and delivery.\n\nThis package contains constructs for working with AWS Elemental MediaPackage V2. Allowing you to define AWS Elemental MediaPackage V2 Channel Groups, Channels, Origin Endpoints, Channel Policies and Origin Endpoint Policies.\n\nFor further information on AWS Elemental MediaPackage V2, see [the documentation](https://aws.amazon.com/mediapackage/).\n\nThe following example creates an AWS Elemental MediaPackage V2 Channel Group, Channel and Origin Endpoint:\n\n```ts\ndeclare const stack: Stack;\nconst group = new ChannelGroup(stack, 'MyChannelGroup', {\n channelGroupName: 'my-test-channel-group',\n});\n\nconst channel = new Channel(stack, 'MyChannel', {\n channelGroup: group,\n channelName: 'my-testchannel',\n input: InputConfiguration.cmaf(),\n});\n\nconst endpoint = new OriginEndpoint(stack, 'MyOriginEndpoint', {\n channel,\n originEndpointName: 'my-test-endpoint',\n segment: Segment.cmaf(),\n manifests: [Manifest.hls({\n manifestName: 'index',\n })],\n});\n```\n\n## Using Factory Methods\n\n```ts\ndeclare const stack: Stack;\n\n// Create a channel group\nconst group = new ChannelGroup(stack, 'MyChannelGroup', {\n channelGroupName: 'my-channel-group',\n});\n\n// Add a channel using the factory method\nconst channel = group.addChannel('MyChannel', {\n channelName: 'my-channel',\n input: InputConfiguration.cmaf(),\n});\n\n// Add an origin endpoint using the factory method\nconst endpoint = channel.addOriginEndpoint('MyEndpoint', {\n originEndpointName: 'my-endpoint',\n segment: Segment.cmaf(),\n manifests: [Manifest.hls({ manifestName: 'index' })],\n});\n```\n\n## Channel Group\n\nA channel group is the top-level resource that consists of channels and origin endpoints associated with it.\n\nThe following code creates a Channel Group:\n\n```ts\ndeclare const stack: Stack;\nconst group = new ChannelGroup(stack, 'MyChannelGroup', {\n channelGroupName: 'my-test-channel-group',\n});\n```\n\nThe following code imports an existing channel group using the name attribute:\n\n```ts\ndeclare const stack: Stack;\nconst channelGroup = ChannelGroup.fromChannelGroupAttributes(stack, 'ImportedChannelGroup', {\n channelGroupName: 'MyChannelGroup',\n});\n```\n\n## Channel\n\nA channel is part of a channel group and represents the entry point for a content stream into MediaPackage.\n\n### Input Configuration\n\nChannels support two input types: HLS and CMAF.\n\n```ts\ndeclare const stack: Stack;\ndeclare const group: ChannelGroup;\n\nconst hlsChannel = new Channel(stack, 'HlsChannel', {\n channelGroup: group,\n input: InputConfiguration.hls(),\n});\n\nconst cmafChannel = new Channel(stack, 'CmafChannel', {\n channelGroup: group,\n input: InputConfiguration.cmaf({\n inputSwitchConfiguration: {\n mqcsInputSwitching: true,\n },\n outputHeaders: [HeadersCMSD.MQCS],\n }),\n});\n\nconst simpleCmafChannel = new Channel(stack, 'SimpleCmafChannel', {\n channelGroup: group,\n input: InputConfiguration.cmaf({\n outputHeaders: [HeadersCMSD.MQCS],\n }),\n});\n```\n\n### Importing an Existing Channel\n\nThe following code imports an existing channel using the name attributes:\n\n```ts\ndeclare const stack: Stack;\nconst channel = Channel.fromChannelAttributes(stack, 'ImportedChannel', {\n channelName: 'MyChannel',\n channelGroupName: 'MyChannelGroup',\n});\n```\n\n### Channel Resource Policy\n\nThe following code creates a resource policy directly on the channel. This\nwill automatically create a policy on the first call:\n\n```ts\ndeclare const channel: Channel;\nchannel.addToResourcePolicy(new PolicyStatement({\n sid: 'AllowMediaLiveRoleToAccessEmpChannel',\n principals: [new ArnPrincipal('arn:aws:iam::AccountID:role/MediaLiveAccessRole')],\n effect: Effect.ALLOW,\n actions: ['mediapackagev2:PutObject'],\n resources: [channel.channelArn],\n}));\n```\n\n## Origin Endpoint\n\n```ts\ndeclare const stack: Stack;\ndeclare const channel: Channel;\nnew OriginEndpoint(stack, 'myendpoint', {\n channel,\n originEndpointName: 'my-test-endpoint',\n segment: Segment.cmaf(),\n manifests: [\n Manifest.hls({\n manifestName: 'index',\n }),\n ],\n});\n```\n\nThe following code imports an existing origin endpoint using the name attributes:\n\n```ts\ndeclare const stack: Stack;\nconst originEndpoint = OriginEndpoint.fromOriginEndpointAttributes(stack, 'ImportedOriginEndpoint', {\n channelGroupName: 'MyChannelGroup',\n channelName: 'MyChannel',\n originEndpointName: 'MyExampleOriginEndpoint',\n});\n```\n\nThe following code creates a resource policy on the origin endpoint. This\nwill automatically create a policy on the first call:\n\n```ts\ndeclare const origin: OriginEndpoint;\n\norigin.addToResourcePolicy(new PolicyStatement({\n sid: 'AllowRequestsFromCloudFront',\n principals: [new ServicePrincipal('cloudfront.amazonaws.com')],\n effect: Effect.ALLOW,\n actions: ['mediapackagev2:GetHeadObject', 'mediapackagev2:GetObject'],\n resources: [origin.originEndpointArn],\n conditions: {\n StringEquals: {\n 'aws:SourceArn': 'arn:aws:cloudfront::123456789012:distribution/AAAAAAAAA',\n },\n },\n}));\n```\n\n## Granting Permissions\n\n### Granting Ingest Access to MediaLive\n\nTo allow AWS Elemental MediaLive to ingest content into a MediaPackage channel, use the `grants.ingest()` method:\n\n```ts\ndeclare const channel: Channel;\ndeclare const mediaLiveRole: iam.IRole;\n\n// Grant MediaLive permission to ingest content\nchannel.grants.ingest(mediaLiveRole);\n```\n\n### CloudFront Integration\n\nMediaPackage origin endpoints are designed to be used with Content Delivery Network (CDN) like Amazon CloudFront distributions. CloudFront provides caching, DDoS protection, and global content delivery for your streaming content.\n\nTo allow a CloudFront distribution to access a MediaPackage origin endpoint, add a resource policy with the CloudFront service principal:\n\n```ts\ndeclare const originEndpoint: OriginEndpoint;\ndeclare const distribution: cloudfront.Distribution;\n\noriginEndpoint.addToResourcePolicy(new iam.PolicyStatement({\n sid: 'AllowCloudFrontServicePrincipal',\n principals: [new iam.ServicePrincipal('cloudfront.amazonaws.com')],\n effect: iam.Effect.ALLOW,\n actions: ['mediapackagev2:GetObject', 'mediapackagev2:GetHeadObject'],\n resources: [originEndpoint.originEndpointArn],\n conditions: {\n StringEquals: {\n 'aws:SourceArn': distribution.distributionArn,\n },\n },\n}));\n```\n\nYou can complete the confirmation with an OAC (Origin Access Control) Policy on the CloudFront Distribution.\n\n## Manifest Configuration\n\nMediaPackage V2 supports multiple manifest formats: HLS, Low-Latency HLS (LL-HLS), DASH, and Microsoft Smooth Streaming (MSS).\n\n### HLS Manifests\n\n```ts\ndeclare const channel: Channel;\n\nnew OriginEndpoint(this, 'Endpoint', {\n channel,\n segment: Segment.cmaf(),\n manifests: [\n Manifest.hls({\n manifestName: 'index',\n manifestWindow: Duration.seconds(60),\n programDateTimeInterval: Duration.seconds(60),\n scteAdMarkerHls: AdMarkerHls.DATERANGE,\n }),\n ],\n});\n```\n\n### Low-Latency HLS Manifests\n\n```ts\ndeclare const channel: Channel;\n\nnew OriginEndpoint(this, 'Endpoint', {\n channel,\n segment: Segment.cmaf(),\n manifests: [\n Manifest.lowLatencyHLS({\n manifestName: 'index',\n manifestWindow: Duration.seconds(30),\n programDateTimeInterval: Duration.seconds(5),\n childManifestName: 'child',\n }),\n ],\n});\n```\n\n### DASH Manifests\n\n```ts\ndeclare const channel: Channel;\n\nnew OriginEndpoint(this, 'Endpoint', {\n channel,\n segment: Segment.cmaf(),\n manifests: [\n Manifest.dash({\n manifestName: 'index',\n manifestWindow: Duration.seconds(60),\n minBufferTime: Duration.seconds(30),\n minUpdatePeriod: Duration.seconds(10),\n segmentTemplateFormat: SegmentTemplateFormat.NUMBER_WITH_TIMELINE,\n periodTriggers: [\n DashPeriodTriggers.AVAILS,\n DashPeriodTriggers.DRM_KEY_ROTATION,\n ],\n }),\n ],\n});\n```\n\n### MSS Manifests\n\n```ts\ndeclare const channel: Channel;\n\nnew OriginEndpoint(this, 'Endpoint', {\n channel,\n segment: Segment.ism(),\n manifests: [\n Manifest.mss({\n manifestName: 'index',\n manifestWindow: Duration.seconds(60),\n manifestLayout: MssManifestLayout.COMPACT,\n }),\n ],\n});\n```\n\n### Multiple Manifests\n\nYou can configure multiple manifest formats for a single origin endpoint:\n\n```ts\ndeclare const channel: Channel;\n\nnew OriginEndpoint(this, 'Endpoint', {\n channel,\n segment: Segment.cmaf(),\n manifests: [\n Manifest.hls({ manifestName: 'hls' }),\n Manifest.dash({ manifestName: 'dash' }),\n ],\n});\n```\n\n| Segment type | Supported manifests |\n|--------|--------|\n| Segment.cmaf() | HLS, LL-HLS, DASH |\n| Segment.ts() | HLS, LL-HLS |\n| Segment.ism() | MSS |\n\nEach origin endpoint has a single segment configuration. If you need segments with different configurations, use multiple origin endpoints on the same channel.\n\n@see https://docs.aws.amazon.com/mediapackage/latest/userguide/endpoints-create.html\n\n## Manifest Filtering\n\nManifest filters control which variants are included in the manifest. Filters are type-safe and validated against the [MediaPackage manifest filtering rules](https://docs.aws.amazon.com/mediapackage/latest/userguide/manifest-filter-query-parameters.html).\n\n| Filter | Method |\n|--------|--------|\n| Audio / video bitrate | `bitrate()`, `bitrateRange()`, `bitrateCombo()` |\n| Audio channels, sample rate, video height, framerate, trickplay height | `numeric()`, `numericList()`, `numericRange()`, `numericCombo()` |\n| Audio codec | `audioCodec()`, `audioCodecList()` |\n| Video codec | `videoCodec()`, `videoCodecList()` |\n| Video dynamic range | `videoDynamicRange()`, `videoDynamicRangeList()` |\n| Trickplay type | `trickplayType()`, `trickplayTypeList()` |\n| Audio / subtitle language | `text()`, `textList()` |\n| Advanced patterns | `custom()` |\n\nThe following example creates an HD streaming endpoint that serves only H.264/H.265 content between 1–5 Mbps with stereo audio in English or French:\n\n```ts\ndeclare const channel: Channel;\n\nnew OriginEndpoint(this, 'Endpoint', {\n channel,\n segment: Segment.cmaf(),\n manifests: [\n Manifest.hls({\n manifestName: 'index',\n filterConfiguration: {\n manifestFilter: [\n ManifestFilter.bitrateRange(BitrateFilterKey.VIDEO_BITRATE, Bitrate.mbps(1), Bitrate.mbps(5)),\n ManifestFilter.numericRange(NumericFilterKey.VIDEO_HEIGHT, 720, 1080),\n ManifestFilter.videoCodecList([VideoCodec.H264, VideoCodec.H265]),\n ManifestFilter.numeric(NumericFilterKey.AUDIO_CHANNELS, 2),\n ManifestFilter.textList(TextFilterKey.AUDIO_LANGUAGE, ['en-US', 'fr']),\n ],\n timeDelay: Duration.seconds(30),\n },\n }),\n ],\n});\n```\n\nFor advanced patterns that combine ranges and single values, use `numericCombo()` or `bitrateCombo()`:\n\n```ts\ndeclare const channel: Channel;\n\nnew OriginEndpoint(this, 'Endpoint', {\n channel,\n segment: Segment.cmaf(),\n manifests: [\n Manifest.hls({\n manifestName: 'index',\n filterConfiguration: {\n manifestFilter: [\n // video_height:240-360,720-1080,1440\n ManifestFilter.numericCombo(NumericFilterKey.VIDEO_HEIGHT, [\n NumericExpression.range(240, 360),\n NumericExpression.range(720, 1080),\n NumericExpression.value(1440),\n ]),\n ],\n },\n }),\n ],\n});\n```\n\n### DRM Settings\n\nYou can exclude session keys from HLS and LL-HLS multivariant playlists using the `drmSettings` filter configuration. This improves compatibility with legacy HLS clients and provides more granular access control:\n\n```ts\ndeclare const channel: Channel;\n\nnew OriginEndpoint(this, 'Endpoint', {\n channel,\n segment: Segment.cmaf(),\n manifests: [\n Manifest.hls({\n manifestName: 'index',\n filterConfiguration: {\n drmSettings: [DrmSettingsKey.EXCLUDE_SESSION_KEYS],\n },\n }),\n ],\n});\n```\n\n## Start Tag Configuration\n\nConfigure where playback should start in HLS and LL-HLS manifests using the EXT-X-START tag:\n\n```ts\ndeclare const channel: Channel;\n\nnew OriginEndpoint(this, 'Endpoint', {\n channel,\n segment: Segment.cmaf(),\n manifests: [\n Manifest.hls({\n manifestName: 'index',\n startTag: StartTag.of(10),\n }),\n ],\n});\n```\n\n## Segment Configuration\n\nConfigure segment settings for your origin endpoint.\n\n```ts\ndeclare const channel: Channel;\n\nnew OriginEndpoint(this, 'TsEndpoint', {\n channel,\n segment: Segment.ts({\n duration: Duration.seconds(6),\n name: 'segment',\n includeDvbSubtitles: true,\n useAudioRenditionGroup: true,\n includeIframeOnlyStreams: false,\n scteFilter: [\n ScteMessageType.BREAK,\n ScteMessageType.DISTRIBUTOR_ADVERTISEMENT,\n ],\n }),\n manifests: [Manifest.hls({ manifestName: 'index' })],\n});\n\nnew OriginEndpoint(this, 'CmafEndpoint', {\n channel,\n segment: Segment.cmaf({\n duration: Duration.seconds(6),\n name: 'segment',\n includeIframeOnlyStreams: true,\n scteFilter: [ScteMessageType.DISTRIBUTOR_ADVERTISEMENT],\n }),\n manifests: [Manifest.hls({ manifestName: 'index' })],\n});\n\nnew OriginEndpoint(this, 'Endpoint', {\n channel,\n segment: Segment.cmaf(),\n manifests: [Manifest.hls({ manifestName: 'index' })],\n});\n```\n\n## Encryption and DRM\n\nProtect your content with encryption using SPEKE (Secure Packager and Encoder Key Exchange). Each container type has its own encryption class with type-safe options:\n\n### CMAF Encryption\n\n```ts\ndeclare const channel: Channel;\ndeclare const spekeRole: iam.IRole;\n\nnew OriginEndpoint(this, 'Endpoint', {\n channel,\n segment: Segment.cmaf({\n encryption: CmafEncryption.speke({\n method: CmafEncryptionMethod.CBCS,\n drmSystems: [CmafDrmSystem.FAIRPLAY, CmafDrmSystem.WIDEVINE],\n resourceId: 'my-content-id',\n url: 'https://example.com/speke',\n role: spekeRole,\n keyRotationInterval: Duration.seconds(300),\n audioPreset: PresetSpeke20Audio.PRESET_AUDIO_2,\n videoPreset: PresetSpeke20Video.PRESET_VIDEO_2,\n }),\n }),\n manifests: [Manifest.hls({ manifestName: 'index' })],\n});\n```\n\n### TS Encryption\n\n```ts\ndeclare const channel: Channel;\ndeclare const spekeRole: iam.IRole;\n\nnew OriginEndpoint(this, 'TsEndpoint', {\n channel,\n segment: Segment.ts({\n encryption: TsEncryption.speke({\n method: TsEncryptionMethod.SAMPLE_AES,\n resourceId: 'my-content-id',\n url: 'https://example.com/speke',\n role: spekeRole,\n }),\n }),\n manifests: [Manifest.hls({ manifestName: 'index' })],\n});\n```\n\nTS encryption defaults the DRM system based on the method: FairPlay for `SAMPLE_AES`, Clear Key AES 128 for `AES_128`. You can override this with the `drmSystems` property using `TsDrmSystem`.\n\n### Content Key Encryption\n\nYou can add content key encryption by providing a certificate imported into AWS Certificate Manager. Your DRM key provider must support content key encryption for this to work:\n\n```ts\ndeclare const channel: Channel;\ndeclare const spekeRole: iam.IRole;\ndeclare const certificate: certificatemanager.ICertificate;\n\nnew OriginEndpoint(this, 'Endpoint', {\n channel,\n segment: Segment.cmaf({\n encryption: CmafEncryption.speke({\n method: CmafEncryptionMethod.CBCS,\n drmSystems: [CmafDrmSystem.FAIRPLAY],\n resourceId: 'my-content-id',\n url: 'https://example.com/speke',\n role: spekeRole,\n certificate,\n }),\n }),\n manifests: [Manifest.hls({ manifestName: 'index' })],\n});\n```\n\n### Excluding Segment DRM Metadata\n\nFor CMAF content, you can exclude DRM metadata from segments:\n\n```ts\ndeclare const channel: Channel;\ndeclare const spekeRole: iam.IRole;\n\nnew OriginEndpoint(this, 'Endpoint', {\n channel,\n segment: Segment.cmaf({\n encryption: CmafEncryption.speke({\n method: CmafEncryptionMethod.CBCS,\n drmSystems: [CmafDrmSystem.FAIRPLAY],\n resourceId: 'my-content-id',\n url: 'https://example.com/speke',\n role: spekeRole,\n excludeSegmentDrmMetadata: true,\n }),\n }),\n manifests: [Manifest.hls({ manifestName: 'index' })],\n});\n```\n\n### ISM (Smooth Streaming) Encryption\n\nISM endpoints use CENC encryption with PlayReady. Audio and video presets are always `SHARED`, and key rotation is not supported. The DRM system defaults to PlayReady:\n\n```ts\ndeclare const channel: Channel;\ndeclare const spekeRole: iam.IRole;\n\nnew OriginEndpoint(this, 'IsmEndpoint', {\n channel,\n segment: Segment.ism({\n encryption: IsmEncryption.speke({\n resourceId: 'my-content-id',\n url: 'https://example.com/speke',\n role: spekeRole,\n }),\n }),\n manifests: [Manifest.mss({ manifestName: 'index' })],\n});\n```\n\n## CloudWatch Metrics\n\nMediaPackage V2 resources expose CloudWatch metrics for monitoring. You can create alarms and dashboards using these metrics:\n\n```ts\ndeclare const channelGroup: ChannelGroup;\ndeclare const channel: Channel;\ndeclare const endpoint: OriginEndpoint;\n\n// Create a CloudWatch alarm on channel group egress bytes\nconst alarm = channelGroup.metricEgressBytes().createAlarm(this, 'HighEgress', {\n threshold: 1000,\n evaluationPeriods: 1,\n});\n\n// Monitor channel ingress response time\nchannel.metricIngressResponseTime().createAlarm(this, 'SlowIngress', {\n threshold: 1000,\n evaluationPeriods: 2,\n});\n\n// Track origin endpoint request count\nconst requestMetric = endpoint.metricEgressRequestCount({\n statistic: 'sum',\n period: Duration.minutes(5),\n});\n```\n\nAvailable metrics include:\n\n- `metricIngressBytes()` - Bytes ingested\n- `metricEgressBytes()` - Bytes delivered\n- `metricIngressResponseTime()` - Ingress response time (average)\n- `metricEgressResponseTime()` - Egress response time (average)\n- `metricIngressRequestCount()` - Number of ingress requests\n- `metricEgressRequestCount()` - Number of egress requests\n\nAll metrics support standard CloudWatch metric options for customizing period, statistic, and dimensions.\n"
8933
+ "markdown": "# AWS::MediaPackageV2 Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge)\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\n## AWS Elemental MediaPackage V2\n\nMediaPackage delivers high-quality video without concern for capacity and makes it easier to implement popular DVR features such as start over, pause, and rewind. Your content will be protected with comprehensive support for DRM. The service seamlessly integrates with other AWS media services as a complete set of tools for cloud-based video processing and delivery.\n\nThis package contains constructs for working with AWS Elemental MediaPackage V2. Allowing you to define AWS Elemental MediaPackage V2 Channel Groups, Channels, Origin Endpoints, Channel Policies and Origin Endpoint Policies.\n\nFor further information on AWS Elemental MediaPackage V2, see [the documentation](https://aws.amazon.com/mediapackage/).\n\nThe following example creates an AWS Elemental MediaPackage V2 Channel Group, Channel and Origin Endpoint:\n\n```ts\ndeclare const stack: Stack;\nconst group = new ChannelGroup(stack, 'MyChannelGroup', {\n channelGroupName: 'my-test-channel-group',\n});\n\nconst channel = new Channel(stack, 'MyChannel', {\n channelGroup: group,\n channelName: 'my-testchannel',\n input: InputConfiguration.cmaf(),\n});\n\nconst endpoint = new OriginEndpoint(stack, 'MyOriginEndpoint', {\n channel,\n originEndpointName: 'my-test-endpoint',\n segment: Segment.cmaf(),\n manifests: [Manifest.hls({\n manifestName: 'index',\n })],\n});\n```\n\n## Using Factory Methods\n\n```ts\ndeclare const stack: Stack;\n\n// Create a channel group\nconst group = new ChannelGroup(stack, 'MyChannelGroup', {\n channelGroupName: 'my-channel-group',\n});\n\n// Add a channel using the factory method\nconst channel = group.addChannel('MyChannel', {\n channelName: 'my-channel',\n input: InputConfiguration.cmaf(),\n});\n\n// Add an origin endpoint using the factory method\nconst endpoint = channel.addOriginEndpoint('MyEndpoint', {\n originEndpointName: 'my-endpoint',\n segment: Segment.cmaf(),\n manifests: [Manifest.hls({ manifestName: 'index' })],\n});\n```\n\n## Channel Group\n\nA channel group is the top-level resource that consists of channels and origin endpoints associated with it.\n\nThe following code creates a Channel Group:\n\n```ts\ndeclare const stack: Stack;\nconst group = new ChannelGroup(stack, 'MyChannelGroup', {\n channelGroupName: 'my-test-channel-group',\n});\n```\n\nThe following code imports an existing channel group using the name attribute:\n\n```ts\ndeclare const stack: Stack;\nconst channelGroup = ChannelGroup.fromChannelGroupAttributes(stack, 'ImportedChannelGroup', {\n channelGroupName: 'MyChannelGroup',\n});\n```\n\nYou can also import from an ARN, which automatically extracts the name and region:\n\n```ts\ndeclare const stack: Stack;\nconst channelGroup = ChannelGroup.fromChannelGroupArn(stack, 'ImportedChannelGroup',\n 'arn:aws:mediapackagev2:us-west-2:123456789012:channelGroup/MyChannelGroup',\n);\n```\n\nFor cross-region imports, pass the `region` parameter to ensure the correct ARN is constructed:\n\n```ts\ndeclare const stack: Stack;\nconst channelGroup = ChannelGroup.fromChannelGroupAttributes(stack, 'ImportedChannelGroup', {\n channelGroupName: 'MyChannelGroup',\n region: 'us-west-2',\n});\n```\n\n## Channel\n\nA channel is part of a channel group and represents the entry point for a content stream into MediaPackage.\n\n### Input Configuration\n\nChannels support two input types: HLS and CMAF.\n\n```ts\ndeclare const stack: Stack;\ndeclare const group: ChannelGroup;\n\nconst hlsChannel = new Channel(stack, 'HlsChannel', {\n channelGroup: group,\n input: InputConfiguration.hls(),\n});\n\nconst cmafChannel = new Channel(stack, 'CmafChannel', {\n channelGroup: group,\n input: InputConfiguration.cmaf({\n inputSwitchConfiguration: {\n mqcsInputSwitching: true,\n },\n outputHeaders: [HeadersCMSD.MQCS],\n }),\n});\n\nconst simpleCmafChannel = new Channel(stack, 'SimpleCmafChannel', {\n channelGroup: group,\n input: InputConfiguration.cmaf({\n outputHeaders: [HeadersCMSD.MQCS],\n }),\n});\n```\n\n### Importing an Existing Channel\n\nThe following code imports an existing channel using the name attributes:\n\n```ts\ndeclare const stack: Stack;\nconst channel = Channel.fromChannelAttributes(stack, 'ImportedChannel', {\n channelName: 'MyChannel',\n channelGroupName: 'MyChannelGroup',\n});\n```\n\nYou can also import from an ARN:\n\n```ts\ndeclare const stack: Stack;\nconst channel = Channel.fromChannelArn(stack, 'ImportedChannel',\n 'arn:aws:mediapackagev2:us-west-2:123456789012:channelGroup/MyGroup/channel/MyChannel',\n);\n```\n\nImported channels expose a `region` property, which is parsed from the ARN or falls back to the importing stack's region.\n\n### Channel Resource Policy\n\nThe following code creates a resource policy directly on the channel. This\nwill automatically create a policy on the first call:\n\n```ts\ndeclare const channel: Channel;\nchannel.addToResourcePolicy(new PolicyStatement({\n sid: 'AllowMediaLiveRoleToAccessEmpChannel',\n principals: [new ArnPrincipal('arn:aws:iam::AccountID:role/MediaLiveAccessRole')],\n effect: Effect.ALLOW,\n actions: ['mediapackagev2:PutObject'],\n resources: [channel.channelArn],\n}));\n```\n\n## Origin Endpoint\n\n```ts\ndeclare const stack: Stack;\ndeclare const channel: Channel;\nnew OriginEndpoint(stack, 'myendpoint', {\n channel,\n originEndpointName: 'my-test-endpoint',\n segment: Segment.cmaf(),\n manifests: [\n Manifest.hls({\n manifestName: 'index',\n }),\n ],\n});\n```\n\nThe following code imports an existing origin endpoint using the name attributes:\n\n```ts\ndeclare const stack: Stack;\nconst originEndpoint = OriginEndpoint.fromOriginEndpointAttributes(stack, 'ImportedOriginEndpoint', {\n channelGroupName: 'MyChannelGroup',\n channelName: 'MyChannel',\n originEndpointName: 'MyExampleOriginEndpoint',\n});\n```\n\nYou can also import from an ARN:\n\n```ts\ndeclare const stack: Stack;\nconst originEndpoint = OriginEndpoint.fromOriginEndpointArn(stack, 'ImportedOriginEndpoint',\n 'arn:aws:mediapackagev2:us-west-2:123456789012:channelGroup/MyGroup/channel/MyChannel/originEndpoint/MyEndpoint',\n);\n```\n\nThe following code creates a resource policy on the origin endpoint. This\nwill automatically create a policy on the first call:\n\n```ts\ndeclare const origin: OriginEndpoint;\n\norigin.addToResourcePolicy(new PolicyStatement({\n sid: 'AllowRequestsFromCloudFront',\n principals: [new ServicePrincipal('cloudfront.amazonaws.com')],\n effect: Effect.ALLOW,\n actions: ['mediapackagev2:GetHeadObject', 'mediapackagev2:GetObject'],\n resources: [origin.originEndpointArn],\n conditions: {\n StringEquals: {\n 'aws:SourceArn': 'arn:aws:cloudfront::123456789012:distribution/AAAAAAAAA',\n },\n },\n}));\n```\n\n## Granting Permissions\n\n### Granting Ingest Access to MediaLive\n\nTo allow AWS Elemental MediaLive to ingest content into a MediaPackage channel, use the `grants.ingest()` method:\n\n```ts\ndeclare const channel: Channel;\ndeclare const mediaLiveRole: iam.IRole;\n\n// Grant MediaLive permission to ingest content\nchannel.grants.ingest(mediaLiveRole);\n```\n\n### CloudFront Integration\n\nMediaPackage origin endpoints are designed to be used with Content Delivery Network (CDN) like Amazon CloudFront distributions. CloudFront provides caching, DDoS protection, and global content delivery for your streaming content.\n\nTo allow a CloudFront distribution to access a MediaPackage origin endpoint, add a resource policy with the CloudFront service principal:\n\n```ts\ndeclare const originEndpoint: OriginEndpoint;\ndeclare const distribution: cloudfront.Distribution;\n\noriginEndpoint.addToResourcePolicy(new iam.PolicyStatement({\n sid: 'AllowCloudFrontServicePrincipal',\n principals: [new iam.ServicePrincipal('cloudfront.amazonaws.com')],\n effect: iam.Effect.ALLOW,\n actions: ['mediapackagev2:GetObject', 'mediapackagev2:GetHeadObject'],\n resources: [originEndpoint.originEndpointArn],\n conditions: {\n StringEquals: {\n 'aws:SourceArn': distribution.distributionArn,\n },\n },\n}));\n```\n\nYou can complete the confirmation with an OAC (Origin Access Control) Policy on the CloudFront Distribution.\n\n## Manifest Configuration\n\nMediaPackage V2 supports multiple manifest formats: HLS, Low-Latency HLS (LL-HLS), DASH, and Microsoft Smooth Streaming (MSS).\n\n### HLS Manifests\n\n```ts\ndeclare const channel: Channel;\n\nnew OriginEndpoint(this, 'Endpoint', {\n channel,\n segment: Segment.cmaf(),\n manifests: [\n Manifest.hls({\n manifestName: 'index',\n manifestWindow: Duration.seconds(60),\n programDateTimeInterval: Duration.seconds(60),\n scteAdMarkerHls: AdMarkerHls.DATERANGE,\n }),\n ],\n});\n```\n\n### Low-Latency HLS Manifests\n\n```ts\ndeclare const channel: Channel;\n\nnew OriginEndpoint(this, 'Endpoint', {\n channel,\n segment: Segment.cmaf(),\n manifests: [\n Manifest.lowLatencyHLS({\n manifestName: 'index',\n manifestWindow: Duration.seconds(30),\n programDateTimeInterval: Duration.seconds(5),\n childManifestName: 'child',\n }),\n ],\n});\n```\n\n### DASH Manifests\n\n```ts\ndeclare const channel: Channel;\n\nnew OriginEndpoint(this, 'Endpoint', {\n channel,\n segment: Segment.cmaf(),\n manifests: [\n Manifest.dash({\n manifestName: 'index',\n manifestWindow: Duration.seconds(60),\n minBufferTime: Duration.seconds(30),\n minUpdatePeriod: Duration.seconds(10),\n segmentTemplateFormat: SegmentTemplateFormat.NUMBER_WITH_TIMELINE,\n periodTriggers: [\n DashPeriodTriggers.AVAILS,\n DashPeriodTriggers.DRM_KEY_ROTATION,\n ],\n }),\n ],\n});\n```\n\n### MSS Manifests\n\n```ts\ndeclare const channel: Channel;\n\nnew OriginEndpoint(this, 'Endpoint', {\n channel,\n segment: Segment.ism(),\n manifests: [\n Manifest.mss({\n manifestName: 'index',\n manifestWindow: Duration.seconds(60),\n manifestLayout: MssManifestLayout.COMPACT,\n }),\n ],\n});\n```\n\n### Multiple Manifests\n\nYou can configure multiple manifest formats for a single origin endpoint:\n\n```ts\ndeclare const channel: Channel;\n\nnew OriginEndpoint(this, 'Endpoint', {\n channel,\n segment: Segment.cmaf(),\n manifests: [\n Manifest.hls({ manifestName: 'hls' }),\n Manifest.dash({ manifestName: 'dash' }),\n ],\n});\n```\n\n| Segment type | Supported manifests |\n|--------|--------|\n| Segment.cmaf() | HLS, LL-HLS, DASH |\n| Segment.ts() | HLS, LL-HLS |\n| Segment.ism() | MSS |\n\nEach origin endpoint has a single segment configuration. If you need segments with different configurations, use multiple origin endpoints on the same channel.\n\n@see https://docs.aws.amazon.com/mediapackage/latest/userguide/endpoints-create.html\n\n## Manifest Filtering\n\nManifest filters control which variants are included in the manifest. Filters are type-safe and validated against the [MediaPackage manifest filtering rules](https://docs.aws.amazon.com/mediapackage/latest/userguide/manifest-filter-query-parameters.html).\n\n| Filter | Method |\n|--------|--------|\n| Audio / video bitrate | `bitrate()`, `bitrateRange()`, `bitrateCombo()` |\n| Audio channels, sample rate, video height, framerate, trickplay height | `numeric()`, `numericList()`, `numericRange()`, `numericCombo()` |\n| Audio codec | `audioCodec()`, `audioCodecList()` |\n| Video codec | `videoCodec()`, `videoCodecList()` |\n| Video dynamic range | `videoDynamicRange()`, `videoDynamicRangeList()` |\n| Trickplay type | `trickplayType()`, `trickplayTypeList()` |\n| Audio / subtitle language | `text()`, `textList()` |\n| Advanced patterns | `custom()` |\n\nThe following example creates an HD streaming endpoint that serves only H.264/H.265 content between 1–5 Mbps with stereo audio in English or French:\n\n```ts\ndeclare const channel: Channel;\n\nnew OriginEndpoint(this, 'Endpoint', {\n channel,\n segment: Segment.cmaf(),\n manifests: [\n Manifest.hls({\n manifestName: 'index',\n filterConfiguration: {\n manifestFilter: [\n ManifestFilter.bitrateRange(BitrateFilterKey.VIDEO_BITRATE, Bitrate.mbps(1), Bitrate.mbps(5)),\n ManifestFilter.numericRange(NumericFilterKey.VIDEO_HEIGHT, 720, 1080),\n ManifestFilter.videoCodecList([VideoCodec.H264, VideoCodec.H265]),\n ManifestFilter.numeric(NumericFilterKey.AUDIO_CHANNELS, 2),\n ManifestFilter.textList(TextFilterKey.AUDIO_LANGUAGE, ['en-US', 'fr']),\n ],\n timeDelay: Duration.seconds(30),\n },\n }),\n ],\n});\n```\n\nFor advanced patterns that combine ranges and single values, use `numericCombo()` or `bitrateCombo()`:\n\n```ts\ndeclare const channel: Channel;\n\nnew OriginEndpoint(this, 'Endpoint', {\n channel,\n segment: Segment.cmaf(),\n manifests: [\n Manifest.hls({\n manifestName: 'index',\n filterConfiguration: {\n manifestFilter: [\n // video_height:240-360,720-1080,1440\n ManifestFilter.numericCombo(NumericFilterKey.VIDEO_HEIGHT, [\n NumericExpression.range(240, 360),\n NumericExpression.range(720, 1080),\n NumericExpression.value(1440),\n ]),\n ],\n },\n }),\n ],\n});\n```\n\n### DRM Settings\n\nYou can exclude session keys from HLS and LL-HLS multivariant playlists using the `drmSettings` filter configuration. This improves compatibility with legacy HLS clients and provides more granular access control:\n\n```ts\ndeclare const channel: Channel;\n\nnew OriginEndpoint(this, 'Endpoint', {\n channel,\n segment: Segment.cmaf(),\n manifests: [\n Manifest.hls({\n manifestName: 'index',\n filterConfiguration: {\n drmSettings: [DrmSettingsKey.EXCLUDE_SESSION_KEYS],\n },\n }),\n ],\n});\n```\n\n## Start Tag Configuration\n\nConfigure where playback should start in HLS and LL-HLS manifests using the EXT-X-START tag:\n\n```ts\ndeclare const channel: Channel;\n\nnew OriginEndpoint(this, 'Endpoint', {\n channel,\n segment: Segment.cmaf(),\n manifests: [\n Manifest.hls({\n manifestName: 'index',\n startTag: StartTag.of(10),\n }),\n ],\n});\n```\n\n## Segment Configuration\n\nConfigure segment settings for your origin endpoint.\n\n```ts\ndeclare const channel: Channel;\n\nnew OriginEndpoint(this, 'TsEndpoint', {\n channel,\n segment: Segment.ts({\n duration: Duration.seconds(6),\n name: 'segment',\n includeDvbSubtitles: true,\n useAudioRenditionGroup: true,\n includeIframeOnlyStreams: false,\n scteFilter: [\n ScteMessageType.BREAK,\n ScteMessageType.DISTRIBUTOR_ADVERTISEMENT,\n ],\n }),\n manifests: [Manifest.hls({ manifestName: 'index' })],\n});\n\nnew OriginEndpoint(this, 'CmafEndpoint', {\n channel,\n segment: Segment.cmaf({\n duration: Duration.seconds(6),\n name: 'segment',\n includeIframeOnlyStreams: true,\n scteFilter: [ScteMessageType.DISTRIBUTOR_ADVERTISEMENT],\n }),\n manifests: [Manifest.hls({ manifestName: 'index' })],\n});\n\nnew OriginEndpoint(this, 'Endpoint', {\n channel,\n segment: Segment.cmaf(),\n manifests: [Manifest.hls({ manifestName: 'index' })],\n});\n```\n\n## Encryption and DRM\n\nProtect your content with encryption using SPEKE (Secure Packager and Encoder Key Exchange). Each container type has its own encryption class with type-safe options:\n\n### CMAF Encryption\n\n```ts\ndeclare const channel: Channel;\ndeclare const spekeRole: iam.IRole;\n\nnew OriginEndpoint(this, 'Endpoint', {\n channel,\n segment: Segment.cmaf({\n encryption: CmafEncryption.speke({\n method: CmafEncryptionMethod.CBCS,\n drmSystems: [CmafDrmSystem.FAIRPLAY, CmafDrmSystem.WIDEVINE],\n resourceId: 'my-content-id',\n url: 'https://example.com/speke',\n role: spekeRole,\n keyRotationInterval: Duration.seconds(300),\n audioPreset: PresetSpeke20Audio.PRESET_AUDIO_2,\n videoPreset: PresetSpeke20Video.PRESET_VIDEO_2,\n }),\n }),\n manifests: [Manifest.hls({ manifestName: 'index' })],\n});\n```\n\n### TS Encryption\n\n```ts\ndeclare const channel: Channel;\ndeclare const spekeRole: iam.IRole;\n\nnew OriginEndpoint(this, 'TsEndpoint', {\n channel,\n segment: Segment.ts({\n encryption: TsEncryption.speke({\n method: TsEncryptionMethod.SAMPLE_AES,\n resourceId: 'my-content-id',\n url: 'https://example.com/speke',\n role: spekeRole,\n }),\n }),\n manifests: [Manifest.hls({ manifestName: 'index' })],\n});\n```\n\nTS encryption defaults the DRM system based on the method: FairPlay for `SAMPLE_AES`, Clear Key AES 128 for `AES_128`. You can override this with the `drmSystems` property using `TsDrmSystem`.\n\n### Content Key Encryption\n\nYou can add content key encryption by providing a certificate imported into AWS Certificate Manager. Your DRM key provider must support content key encryption for this to work:\n\n```ts\ndeclare const channel: Channel;\ndeclare const spekeRole: iam.IRole;\ndeclare const certificate: certificatemanager.ICertificate;\n\nnew OriginEndpoint(this, 'Endpoint', {\n channel,\n segment: Segment.cmaf({\n encryption: CmafEncryption.speke({\n method: CmafEncryptionMethod.CBCS,\n drmSystems: [CmafDrmSystem.FAIRPLAY],\n resourceId: 'my-content-id',\n url: 'https://example.com/speke',\n role: spekeRole,\n certificate,\n }),\n }),\n manifests: [Manifest.hls({ manifestName: 'index' })],\n});\n```\n\n### Excluding Segment DRM Metadata\n\nFor CMAF content, you can exclude DRM metadata from segments:\n\n```ts\ndeclare const channel: Channel;\ndeclare const spekeRole: iam.IRole;\n\nnew OriginEndpoint(this, 'Endpoint', {\n channel,\n segment: Segment.cmaf({\n encryption: CmafEncryption.speke({\n method: CmafEncryptionMethod.CBCS,\n drmSystems: [CmafDrmSystem.FAIRPLAY],\n resourceId: 'my-content-id',\n url: 'https://example.com/speke',\n role: spekeRole,\n excludeSegmentDrmMetadata: true,\n }),\n }),\n manifests: [Manifest.hls({ manifestName: 'index' })],\n});\n```\n\n### ISM (Smooth Streaming) Encryption\n\nISM endpoints use CENC encryption with PlayReady. Audio and video presets are always `SHARED`, and key rotation is not supported. The DRM system defaults to PlayReady:\n\n```ts\ndeclare const channel: Channel;\ndeclare const spekeRole: iam.IRole;\n\nnew OriginEndpoint(this, 'IsmEndpoint', {\n channel,\n segment: Segment.ism({\n encryption: IsmEncryption.speke({\n resourceId: 'my-content-id',\n url: 'https://example.com/speke',\n role: spekeRole,\n }),\n }),\n manifests: [Manifest.mss({ manifestName: 'index' })],\n});\n```\n\n## CloudWatch Metrics\n\nMediaPackage V2 resources expose CloudWatch metrics for monitoring. You can create alarms and dashboards using these metrics:\n\n```ts\ndeclare const channelGroup: ChannelGroup;\ndeclare const channel: Channel;\ndeclare const endpoint: OriginEndpoint;\n\n// Create a CloudWatch alarm on channel group egress bytes\nconst alarm = channelGroup.metricEgressBytes().createAlarm(this, 'HighEgress', {\n threshold: 1000,\n evaluationPeriods: 1,\n});\n\n// Monitor channel ingress response time\nchannel.metricIngressResponseTime().createAlarm(this, 'SlowIngress', {\n threshold: 1000,\n evaluationPeriods: 2,\n});\n\n// Track origin endpoint request count\nconst requestMetric = endpoint.metricEgressRequestCount({\n statistic: 'sum',\n period: Duration.minutes(5),\n});\n```\n\nAvailable metrics include:\n\n- `metricIngressBytes()` - Bytes ingested\n- `metricEgressBytes()` - Bytes delivered\n- `metricIngressResponseTime()` - Ingress response time (average)\n- `metricEgressResponseTime()` - Egress response time (average)\n- `metricIngressRequestCount()` - Number of ingress requests\n- `metricEgressRequestCount()` - Number of egress requests\n\nAll metrics support standard CloudWatch metric options for customizing period, statistic, and dimensions.\n"
8789
8934
  },
8790
8935
  "repository": {
8791
8936
  "directory": "packages/@aws-cdk/aws-mediapackagev2-alpha",
@@ -9172,7 +9317,7 @@
9172
9317
  },
9173
9318
  "locationInModule": {
9174
9319
  "filename": "lib/channel.ts",
9175
- "line": 590
9320
+ "line": 639
9176
9321
  },
9177
9322
  "parameters": [
9178
9323
  {
@@ -9201,9 +9346,47 @@
9201
9346
  "kind": "class",
9202
9347
  "locationInModule": {
9203
9348
  "filename": "lib/channel.ts",
9204
- "line": 562
9349
+ "line": 610
9205
9350
  },
9206
9351
  "methods": [
9352
+ {
9353
+ "docs": {
9354
+ "remarks": "The ARN is expected to be in the format:\n`arn:<partition>:mediapackagev2:<region>:<account>:channelGroup/<groupName>/channel/<channelName>`",
9355
+ "stability": "experimental",
9356
+ "summary": "Creates a Channel construct that represents an external (imported) Channel from its ARN."
9357
+ },
9358
+ "locationInModule": {
9359
+ "filename": "lib/channel.ts",
9360
+ "line": 380
9361
+ },
9362
+ "name": "fromChannelArn",
9363
+ "parameters": [
9364
+ {
9365
+ "name": "scope",
9366
+ "type": {
9367
+ "fqn": "constructs.Construct"
9368
+ }
9369
+ },
9370
+ {
9371
+ "name": "id",
9372
+ "type": {
9373
+ "primitive": "string"
9374
+ }
9375
+ },
9376
+ {
9377
+ "name": "channelArn",
9378
+ "type": {
9379
+ "primitive": "string"
9380
+ }
9381
+ }
9382
+ ],
9383
+ "returns": {
9384
+ "type": {
9385
+ "fqn": "@aws-cdk/aws-mediapackagev2-alpha.IChannel"
9386
+ }
9387
+ },
9388
+ "static": true
9389
+ },
9207
9390
  {
9208
9391
  "docs": {
9209
9392
  "stability": "experimental",
@@ -9211,7 +9394,7 @@
9211
9394
  },
9212
9395
  "locationInModule": {
9213
9396
  "filename": "lib/channel.ts",
9214
- "line": 363
9397
+ "line": 408
9215
9398
  },
9216
9399
  "name": "fromChannelAttributes",
9217
9400
  "parameters": [
@@ -9248,7 +9431,7 @@
9248
9431
  },
9249
9432
  "locationInModule": {
9250
9433
  "filename": "lib/channel.ts",
9251
- "line": 428
9434
+ "line": 476
9252
9435
  },
9253
9436
  "name": "addOriginEndpoint",
9254
9437
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IChannel",
@@ -9280,7 +9463,7 @@
9280
9463
  },
9281
9464
  "locationInModule": {
9282
9465
  "filename": "lib/channel.ts",
9283
- "line": 441
9466
+ "line": 489
9284
9467
  },
9285
9468
  "name": "addToResourcePolicy",
9286
9469
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IChannel",
@@ -9305,7 +9488,7 @@
9305
9488
  },
9306
9489
  "locationInModule": {
9307
9490
  "filename": "lib/channel.ts",
9308
- "line": 462
9491
+ "line": 510
9309
9492
  },
9310
9493
  "name": "metric",
9311
9494
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IChannel",
@@ -9344,7 +9527,7 @@
9344
9527
  },
9345
9528
  "locationInModule": {
9346
9529
  "filename": "lib/channel.ts",
9347
- "line": 493
9530
+ "line": 541
9348
9531
  },
9349
9532
  "name": "metricEgressBytes",
9350
9533
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IChannel",
@@ -9371,7 +9554,7 @@
9371
9554
  },
9372
9555
  "locationInModule": {
9373
9556
  "filename": "lib/channel.ts",
9374
- "line": 549
9557
+ "line": 597
9375
9558
  },
9376
9559
  "name": "metricEgressRequestCount",
9377
9560
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IChannel",
@@ -9398,7 +9581,7 @@
9398
9581
  },
9399
9582
  "locationInModule": {
9400
9583
  "filename": "lib/channel.ts",
9401
- "line": 521
9584
+ "line": 569
9402
9585
  },
9403
9586
  "name": "metricEgressResponseTime",
9404
9587
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IChannel",
@@ -9425,7 +9608,7 @@
9425
9608
  },
9426
9609
  "locationInModule": {
9427
9610
  "filename": "lib/channel.ts",
9428
- "line": 479
9611
+ "line": 527
9429
9612
  },
9430
9613
  "name": "metricIngressBytes",
9431
9614
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IChannel",
@@ -9452,7 +9635,7 @@
9452
9635
  },
9453
9636
  "locationInModule": {
9454
9637
  "filename": "lib/channel.ts",
9455
- "line": 535
9638
+ "line": 583
9456
9639
  },
9457
9640
  "name": "metricIngressRequestCount",
9458
9641
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IChannel",
@@ -9479,7 +9662,7 @@
9479
9662
  },
9480
9663
  "locationInModule": {
9481
9664
  "filename": "lib/channel.ts",
9482
- "line": 507
9665
+ "line": 555
9483
9666
  },
9484
9667
  "name": "metricIngressResponseTime",
9485
9668
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IChannel",
@@ -9510,7 +9693,7 @@
9510
9693
  "immutable": true,
9511
9694
  "locationInModule": {
9512
9695
  "filename": "lib/channel.ts",
9513
- "line": 565
9696
+ "line": 613
9514
9697
  },
9515
9698
  "name": "PROPERTY_INJECTION_ID",
9516
9699
  "static": true,
@@ -9526,7 +9709,7 @@
9526
9709
  "immutable": true,
9527
9710
  "locationInModule": {
9528
9711
  "filename": "lib/channel.ts",
9529
- "line": 569
9712
+ "line": 617
9530
9713
  },
9531
9714
  "name": "channelArn",
9532
9715
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IChannel",
@@ -9543,7 +9726,7 @@
9543
9726
  "immutable": true,
9544
9727
  "locationInModule": {
9545
9728
  "filename": "lib/channel.ts",
9546
- "line": 567
9729
+ "line": 615
9547
9730
  },
9548
9731
  "name": "channelGroupName",
9549
9732
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IChannel",
@@ -9560,7 +9743,7 @@
9560
9743
  "immutable": true,
9561
9744
  "locationInModule": {
9562
9745
  "filename": "lib/channel.ts",
9563
- "line": 568
9746
+ "line": 616
9564
9747
  },
9565
9748
  "name": "channelName",
9566
9749
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IChannel",
@@ -9576,7 +9759,7 @@
9576
9759
  "immutable": true,
9577
9760
  "locationInModule": {
9578
9761
  "filename": "lib/channel.ts",
9579
- "line": 400
9762
+ "line": 448
9580
9763
  },
9581
9764
  "name": "channelRef",
9582
9765
  "overrides": "aws-cdk-lib.interfaces.aws_mediapackagev2.IChannelRef",
@@ -9592,7 +9775,7 @@
9592
9775
  "immutable": true,
9593
9776
  "locationInModule": {
9594
9777
  "filename": "lib/channel.ts",
9595
- "line": 423
9778
+ "line": 471
9596
9779
  },
9597
9780
  "name": "grants",
9598
9781
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IChannel",
@@ -9608,7 +9791,7 @@
9608
9791
  "immutable": true,
9609
9792
  "locationInModule": {
9610
9793
  "filename": "lib/channel.ts",
9611
- "line": 585
9794
+ "line": 634
9612
9795
  },
9613
9796
  "name": "ingestEndpointUrls",
9614
9797
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IChannel",
@@ -9621,6 +9804,22 @@
9621
9804
  }
9622
9805
  }
9623
9806
  },
9807
+ {
9808
+ "docs": {
9809
+ "stability": "experimental",
9810
+ "summary": "The AWS region where this channel lives."
9811
+ },
9812
+ "immutable": true,
9813
+ "locationInModule": {
9814
+ "filename": "lib/channel.ts",
9815
+ "line": 619
9816
+ },
9817
+ "name": "region",
9818
+ "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IChannel",
9819
+ "type": {
9820
+ "primitive": "string"
9821
+ }
9822
+ },
9624
9823
  {
9625
9824
  "docs": {
9626
9825
  "remarks": "Only available when the channel was created in the same stack.\nUndefined for imported channels.",
@@ -9630,7 +9829,7 @@
9630
9829
  "immutable": true,
9631
9830
  "locationInModule": {
9632
9831
  "filename": "lib/channel.ts",
9633
- "line": 570
9832
+ "line": 618
9634
9833
  },
9635
9834
  "name": "channelGroup",
9636
9835
  "optional": true,
@@ -9647,7 +9846,7 @@
9647
9846
  "immutable": true,
9648
9847
  "locationInModule": {
9649
9848
  "filename": "lib/channel.ts",
9650
- "line": 575
9849
+ "line": 624
9651
9850
  },
9652
9851
  "name": "createdAt",
9653
9852
  "optional": true,
@@ -9664,7 +9863,7 @@
9664
9863
  "immutable": true,
9665
9864
  "locationInModule": {
9666
9865
  "filename": "lib/channel.ts",
9667
- "line": 580
9866
+ "line": 629
9668
9867
  },
9669
9868
  "name": "modifiedAt",
9670
9869
  "optional": true,
@@ -9680,7 +9879,7 @@
9680
9879
  },
9681
9880
  "locationInModule": {
9682
9881
  "filename": "lib/channel.ts",
9683
- "line": 588
9882
+ "line": 637
9684
9883
  },
9685
9884
  "name": "autoCreatePolicy",
9686
9885
  "protected": true,
@@ -9696,7 +9895,7 @@
9696
9895
  },
9697
9896
  "locationInModule": {
9698
9897
  "filename": "lib/channel.ts",
9699
- "line": 587
9898
+ "line": 636
9700
9899
  },
9701
9900
  "name": "policy",
9702
9901
  "optional": true,
@@ -9722,7 +9921,7 @@
9722
9921
  "kind": "interface",
9723
9922
  "locationInModule": {
9724
9923
  "filename": "lib/channel.ts",
9725
- "line": 340
9924
+ "line": 345
9726
9925
  },
9727
9926
  "name": "ChannelAttributes",
9728
9927
  "properties": [
@@ -9738,7 +9937,7 @@
9738
9937
  "immutable": true,
9739
9938
  "locationInModule": {
9740
9939
  "filename": "lib/channel.ts",
9741
- "line": 353
9940
+ "line": 358
9742
9941
  },
9743
9942
  "name": "channelGroupName",
9744
9943
  "type": {
@@ -9757,12 +9956,31 @@
9757
9956
  "immutable": true,
9758
9957
  "locationInModule": {
9759
9958
  "filename": "lib/channel.ts",
9760
- "line": 346
9959
+ "line": 351
9761
9960
  },
9762
9961
  "name": "channelName",
9763
9962
  "type": {
9764
9963
  "primitive": "string"
9765
9964
  }
9965
+ },
9966
+ {
9967
+ "abstract": true,
9968
+ "docs": {
9969
+ "default": "- the importing stack's region",
9970
+ "remarks": "Required for cross-region imports to construct the correct ARN.",
9971
+ "stability": "experimental",
9972
+ "summary": "The AWS region where the channel lives."
9973
+ },
9974
+ "immutable": true,
9975
+ "locationInModule": {
9976
+ "filename": "lib/channel.ts",
9977
+ "line": 367
9978
+ },
9979
+ "name": "region",
9980
+ "optional": true,
9981
+ "type": {
9982
+ "primitive": "string"
9983
+ }
9766
9984
  }
9767
9985
  ],
9768
9986
  "symbolId": "lib/channel:ChannelAttributes"
@@ -9930,7 +10148,7 @@
9930
10148
  },
9931
10149
  "locationInModule": {
9932
10150
  "filename": "lib/group.ts",
9933
- "line": 387
10151
+ "line": 423
9934
10152
  },
9935
10153
  "parameters": [
9936
10154
  {
@@ -9960,9 +10178,46 @@
9960
10178
  "kind": "class",
9961
10179
  "locationInModule": {
9962
10180
  "filename": "lib/group.ts",
9963
- "line": 357
10181
+ "line": 393
9964
10182
  },
9965
10183
  "methods": [
10184
+ {
10185
+ "docs": {
10186
+ "stability": "experimental",
10187
+ "summary": "Creates a Channel Group construct that represents an external (imported) Channel Group from its ARN."
10188
+ },
10189
+ "locationInModule": {
10190
+ "filename": "lib/group.ts",
10191
+ "line": 183
10192
+ },
10193
+ "name": "fromChannelGroupArn",
10194
+ "parameters": [
10195
+ {
10196
+ "name": "scope",
10197
+ "type": {
10198
+ "fqn": "constructs.Construct"
10199
+ }
10200
+ },
10201
+ {
10202
+ "name": "id",
10203
+ "type": {
10204
+ "primitive": "string"
10205
+ }
10206
+ },
10207
+ {
10208
+ "name": "channelGroupArn",
10209
+ "type": {
10210
+ "primitive": "string"
10211
+ }
10212
+ }
10213
+ ],
10214
+ "returns": {
10215
+ "type": {
10216
+ "fqn": "@aws-cdk/aws-mediapackagev2-alpha.IChannelGroup"
10217
+ }
10218
+ },
10219
+ "static": true
10220
+ },
9966
10221
  {
9967
10222
  "docs": {
9968
10223
  "stability": "experimental",
@@ -9970,7 +10225,7 @@
9970
10225
  },
9971
10226
  "locationInModule": {
9972
10227
  "filename": "lib/group.ts",
9973
- "line": 174
10228
+ "line": 209
9974
10229
  },
9975
10230
  "name": "fromChannelGroupAttributes",
9976
10231
  "parameters": [
@@ -10007,7 +10262,7 @@
10007
10262
  },
10008
10263
  "locationInModule": {
10009
10264
  "filename": "lib/group.ts",
10010
- "line": 346
10265
+ "line": 382
10011
10266
  },
10012
10267
  "name": "addChannel",
10013
10268
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IChannelGroup",
@@ -10039,7 +10294,7 @@
10039
10294
  },
10040
10295
  "locationInModule": {
10041
10296
  "filename": "lib/group.ts",
10042
- "line": 248
10297
+ "line": 284
10043
10298
  },
10044
10299
  "name": "metric",
10045
10300
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IChannelGroup",
@@ -10078,7 +10333,7 @@
10078
10333
  },
10079
10334
  "locationInModule": {
10080
10335
  "filename": "lib/group.ts",
10081
- "line": 278
10336
+ "line": 314
10082
10337
  },
10083
10338
  "name": "metricEgressBytes",
10084
10339
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IChannelGroup",
@@ -10105,7 +10360,7 @@
10105
10360
  },
10106
10361
  "locationInModule": {
10107
10362
  "filename": "lib/group.ts",
10108
- "line": 334
10363
+ "line": 370
10109
10364
  },
10110
10365
  "name": "metricEgressRequestCount",
10111
10366
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IChannelGroup",
@@ -10132,7 +10387,7 @@
10132
10387
  },
10133
10388
  "locationInModule": {
10134
10389
  "filename": "lib/group.ts",
10135
- "line": 306
10390
+ "line": 342
10136
10391
  },
10137
10392
  "name": "metricEgressResponseTime",
10138
10393
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IChannelGroup",
@@ -10159,7 +10414,7 @@
10159
10414
  },
10160
10415
  "locationInModule": {
10161
10416
  "filename": "lib/group.ts",
10162
- "line": 264
10417
+ "line": 300
10163
10418
  },
10164
10419
  "name": "metricIngressBytes",
10165
10420
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IChannelGroup",
@@ -10186,7 +10441,7 @@
10186
10441
  },
10187
10442
  "locationInModule": {
10188
10443
  "filename": "lib/group.ts",
10189
- "line": 320
10444
+ "line": 356
10190
10445
  },
10191
10446
  "name": "metricIngressRequestCount",
10192
10447
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IChannelGroup",
@@ -10213,7 +10468,7 @@
10213
10468
  },
10214
10469
  "locationInModule": {
10215
10470
  "filename": "lib/group.ts",
10216
- "line": 292
10471
+ "line": 328
10217
10472
  },
10218
10473
  "name": "metricIngressResponseTime",
10219
10474
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IChannelGroup",
@@ -10244,7 +10499,7 @@
10244
10499
  "immutable": true,
10245
10500
  "locationInModule": {
10246
10501
  "filename": "lib/group.ts",
10247
- "line": 360
10502
+ "line": 396
10248
10503
  },
10249
10504
  "name": "PROPERTY_INJECTION_ID",
10250
10505
  "static": true,
@@ -10260,7 +10515,7 @@
10260
10515
  "immutable": true,
10261
10516
  "locationInModule": {
10262
10517
  "filename": "lib/group.ts",
10263
- "line": 385
10518
+ "line": 421
10264
10519
  },
10265
10520
  "name": "channelGroupArn",
10266
10521
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IChannelGroup",
@@ -10277,7 +10532,7 @@
10277
10532
  "immutable": true,
10278
10533
  "locationInModule": {
10279
10534
  "filename": "lib/group.ts",
10280
- "line": 380
10535
+ "line": 416
10281
10536
  },
10282
10537
  "name": "channelGroupName",
10283
10538
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IChannelGroup",
@@ -10294,7 +10549,7 @@
10294
10549
  "immutable": true,
10295
10550
  "locationInModule": {
10296
10551
  "filename": "lib/group.ts",
10297
- "line": 236
10552
+ "line": 272
10298
10553
  },
10299
10554
  "name": "channelGroupRef",
10300
10555
  "overrides": "aws-cdk-lib.interfaces.aws_mediapackagev2.IChannelGroupRef",
@@ -10311,7 +10566,7 @@
10311
10566
  "immutable": true,
10312
10567
  "locationInModule": {
10313
10568
  "filename": "lib/group.ts",
10314
- "line": 375
10569
+ "line": 411
10315
10570
  },
10316
10571
  "name": "egressDomain",
10317
10572
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IChannelGroup",
@@ -10327,7 +10582,7 @@
10327
10582
  "immutable": true,
10328
10583
  "locationInModule": {
10329
10584
  "filename": "lib/group.ts",
10330
- "line": 365
10585
+ "line": 401
10331
10586
  },
10332
10587
  "name": "createdAt",
10333
10588
  "optional": true,
@@ -10344,7 +10599,7 @@
10344
10599
  "immutable": true,
10345
10600
  "locationInModule": {
10346
10601
  "filename": "lib/group.ts",
10347
- "line": 370
10602
+ "line": 406
10348
10603
  },
10349
10604
  "name": "modifiedAt",
10350
10605
  "optional": true,
@@ -10409,6 +10664,25 @@
10409
10664
  "type": {
10410
10665
  "primitive": "string"
10411
10666
  }
10667
+ },
10668
+ {
10669
+ "abstract": true,
10670
+ "docs": {
10671
+ "default": "- the importing stack's region",
10672
+ "remarks": "Required for cross-region imports to construct the correct ARN.",
10673
+ "stability": "experimental",
10674
+ "summary": "The AWS region where the channel group lives."
10675
+ },
10676
+ "immutable": true,
10677
+ "locationInModule": {
10678
+ "filename": "lib/group.ts",
10679
+ "line": 173
10680
+ },
10681
+ "name": "region",
10682
+ "optional": true,
10683
+ "type": {
10684
+ "primitive": "string"
10685
+ }
10412
10686
  }
10413
10687
  ],
10414
10688
  "symbolId": "lib/group:ChannelGroupAttributes"
@@ -10530,7 +10804,7 @@
10530
10804
  "kind": "interface",
10531
10805
  "locationInModule": {
10532
10806
  "filename": "lib/channel.ts",
10533
- "line": 284
10807
+ "line": 289
10534
10808
  },
10535
10809
  "name": "ChannelOptions",
10536
10810
  "properties": [
@@ -10545,7 +10819,7 @@
10545
10819
  "immutable": true,
10546
10820
  "locationInModule": {
10547
10821
  "filename": "lib/channel.ts",
10548
- "line": 290
10822
+ "line": 295
10549
10823
  },
10550
10824
  "name": "channelName",
10551
10825
  "optional": true,
@@ -10563,7 +10837,7 @@
10563
10837
  "immutable": true,
10564
10838
  "locationInModule": {
10565
10839
  "filename": "lib/channel.ts",
10566
- "line": 305
10840
+ "line": 310
10567
10841
  },
10568
10842
  "name": "description",
10569
10843
  "optional": true,
@@ -10582,7 +10856,7 @@
10582
10856
  "immutable": true,
10583
10857
  "locationInModule": {
10584
10858
  "filename": "lib/channel.ts",
10585
- "line": 298
10859
+ "line": 303
10586
10860
  },
10587
10861
  "name": "input",
10588
10862
  "optional": true,
@@ -10601,7 +10875,7 @@
10601
10875
  "immutable": true,
10602
10876
  "locationInModule": {
10603
10877
  "filename": "lib/channel.ts",
10604
- "line": 324
10878
+ "line": 329
10605
10879
  },
10606
10880
  "name": "removalPolicy",
10607
10881
  "optional": true,
@@ -10619,7 +10893,7 @@
10619
10893
  "immutable": true,
10620
10894
  "locationInModule": {
10621
10895
  "filename": "lib/channel.ts",
10622
- "line": 312
10896
+ "line": 317
10623
10897
  },
10624
10898
  "name": "tags",
10625
10899
  "optional": true,
@@ -10793,7 +11067,7 @@
10793
11067
  "kind": "interface",
10794
11068
  "locationInModule": {
10795
11069
  "filename": "lib/channel.ts",
10796
- "line": 330
11070
+ "line": 335
10797
11071
  },
10798
11072
  "name": "ChannelProps",
10799
11073
  "properties": [
@@ -10806,7 +11080,7 @@
10806
11080
  "immutable": true,
10807
11081
  "locationInModule": {
10808
11082
  "filename": "lib/channel.ts",
10809
- "line": 334
11083
+ "line": 339
10810
11084
  },
10811
11085
  "name": "channelGroup",
10812
11086
  "type": {
@@ -10827,7 +11101,7 @@
10827
11101
  "kind": "enum",
10828
11102
  "locationInModule": {
10829
11103
  "filename": "lib/endpoint.ts",
10830
- "line": 1891
11104
+ "line": 1900
10831
11105
  },
10832
11106
  "members": [
10833
11107
  {
@@ -10878,7 +11152,7 @@
10878
11152
  "kind": "class",
10879
11153
  "locationInModule": {
10880
11154
  "filename": "lib/endpoint.ts",
10881
- "line": 2146
11155
+ "line": 2155
10882
11156
  },
10883
11157
  "methods": [
10884
11158
  {
@@ -10888,7 +11162,7 @@
10888
11162
  },
10889
11163
  "locationInModule": {
10890
11164
  "filename": "lib/endpoint.ts",
10891
- "line": 2150
11165
+ "line": 2159
10892
11166
  },
10893
11167
  "name": "speke",
10894
11168
  "parameters": [
@@ -10960,7 +11234,7 @@
10960
11234
  "kind": "interface",
10961
11235
  "locationInModule": {
10962
11236
  "filename": "lib/channel.ts",
10963
- "line": 219
11237
+ "line": 224
10964
11238
  },
10965
11239
  "name": "CmafInputProps",
10966
11240
  "properties": [
@@ -10974,7 +11248,7 @@
10974
11248
  "immutable": true,
10975
11249
  "locationInModule": {
10976
11250
  "filename": "lib/channel.ts",
10977
- "line": 225
11251
+ "line": 230
10978
11252
  },
10979
11253
  "name": "inputSwitchConfiguration",
10980
11254
  "optional": true,
@@ -10992,7 +11266,7 @@
10992
11266
  "immutable": true,
10993
11267
  "locationInModule": {
10994
11268
  "filename": "lib/channel.ts",
10995
- "line": 232
11269
+ "line": 237
10996
11270
  },
10997
11271
  "name": "outputHeaders",
10998
11272
  "optional": true,
@@ -11026,7 +11300,7 @@
11026
11300
  "kind": "interface",
11027
11301
  "locationInModule": {
11028
11302
  "filename": "lib/endpoint.ts",
11029
- "line": 2444
11303
+ "line": 2453
11030
11304
  },
11031
11305
  "name": "CmafSegmentProps",
11032
11306
  "properties": [
@@ -11041,7 +11315,7 @@
11041
11315
  "immutable": true,
11042
11316
  "locationInModule": {
11043
11317
  "filename": "lib/endpoint.ts",
11044
- "line": 2466
11318
+ "line": 2475
11045
11319
  },
11046
11320
  "name": "encryption",
11047
11321
  "optional": true,
@@ -11059,7 +11333,7 @@
11059
11333
  "immutable": true,
11060
11334
  "locationInModule": {
11061
11335
  "filename": "lib/endpoint.ts",
11062
- "line": 2450
11336
+ "line": 2459
11063
11337
  },
11064
11338
  "name": "scteFilter",
11065
11339
  "optional": true,
@@ -11082,7 +11356,7 @@
11082
11356
  "immutable": true,
11083
11357
  "locationInModule": {
11084
11358
  "filename": "lib/endpoint.ts",
11085
- "line": 2457
11359
+ "line": 2466
11086
11360
  },
11087
11361
  "name": "scteInSegments",
11088
11362
  "optional": true,
@@ -11108,7 +11382,7 @@
11108
11382
  "kind": "interface",
11109
11383
  "locationInModule": {
11110
11384
  "filename": "lib/endpoint.ts",
11111
- "line": 1992
11385
+ "line": 2001
11112
11386
  },
11113
11387
  "name": "CmafSpekeEncryptionProps",
11114
11388
  "properties": [
@@ -11122,7 +11396,7 @@
11122
11396
  "immutable": true,
11123
11397
  "locationInModule": {
11124
11398
  "filename": "lib/endpoint.ts",
11125
- "line": 2004
11399
+ "line": 2013
11126
11400
  },
11127
11401
  "name": "drmSystems",
11128
11402
  "type": {
@@ -11143,7 +11417,7 @@
11143
11417
  "immutable": true,
11144
11418
  "locationInModule": {
11145
11419
  "filename": "lib/endpoint.ts",
11146
- "line": 1996
11420
+ "line": 2005
11147
11421
  },
11148
11422
  "name": "method",
11149
11423
  "type": {
@@ -11160,7 +11434,7 @@
11160
11434
  "immutable": true,
11161
11435
  "locationInModule": {
11162
11436
  "filename": "lib/endpoint.ts",
11163
- "line": 1949
11437
+ "line": 1958
11164
11438
  },
11165
11439
  "name": "resourceId",
11166
11440
  "type": {
@@ -11177,7 +11451,7 @@
11177
11451
  "immutable": true,
11178
11452
  "locationInModule": {
11179
11453
  "filename": "lib/endpoint.ts",
11180
- "line": 1957
11454
+ "line": 1966
11181
11455
  },
11182
11456
  "name": "role",
11183
11457
  "type": {
@@ -11193,7 +11467,7 @@
11193
11467
  "immutable": true,
11194
11468
  "locationInModule": {
11195
11469
  "filename": "lib/endpoint.ts",
11196
- "line": 1962
11470
+ "line": 1971
11197
11471
  },
11198
11472
  "name": "url",
11199
11473
  "type": {
@@ -11210,7 +11484,7 @@
11210
11484
  "immutable": true,
11211
11485
  "locationInModule": {
11212
11486
  "filename": "lib/endpoint.ts",
11213
- "line": 1979
11487
+ "line": 1988
11214
11488
  },
11215
11489
  "name": "audioPreset",
11216
11490
  "optional": true,
@@ -11229,7 +11503,7 @@
11229
11503
  "immutable": true,
11230
11504
  "locationInModule": {
11231
11505
  "filename": "lib/endpoint.ts",
11232
- "line": 1972
11506
+ "line": 1981
11233
11507
  },
11234
11508
  "name": "certificate",
11235
11509
  "optional": true,
@@ -11248,7 +11522,7 @@
11248
11522
  "immutable": true,
11249
11523
  "locationInModule": {
11250
11524
  "filename": "lib/endpoint.ts",
11251
- "line": 2014
11525
+ "line": 2023
11252
11526
  },
11253
11527
  "name": "constantInitializationVector",
11254
11528
  "optional": true,
@@ -11266,7 +11540,7 @@
11266
11540
  "immutable": true,
11267
11541
  "locationInModule": {
11268
11542
  "filename": "lib/endpoint.ts",
11269
- "line": 2028
11543
+ "line": 2037
11270
11544
  },
11271
11545
  "name": "excludeSegmentDrmMetadata",
11272
11546
  "optional": true,
@@ -11284,7 +11558,7 @@
11284
11558
  "immutable": true,
11285
11559
  "locationInModule": {
11286
11560
  "filename": "lib/endpoint.ts",
11287
- "line": 2021
11561
+ "line": 2030
11288
11562
  },
11289
11563
  "name": "keyRotationInterval",
11290
11564
  "optional": true,
@@ -11302,7 +11576,7 @@
11302
11576
  "immutable": true,
11303
11577
  "locationInModule": {
11304
11578
  "filename": "lib/endpoint.ts",
11305
- "line": 1986
11579
+ "line": 1995
11306
11580
  },
11307
11581
  "name": "videoPreset",
11308
11582
  "optional": true,
@@ -12409,7 +12683,7 @@
12409
12683
  "kind": "class",
12410
12684
  "locationInModule": {
12411
12685
  "filename": "lib/endpoint.ts",
12412
- "line": 2109
12686
+ "line": 2118
12413
12687
  },
12414
12688
  "name": "EncryptionConfiguration",
12415
12689
  "symbolId": "lib/endpoint:EncryptionConfiguration"
@@ -12619,7 +12893,7 @@
12619
12893
  "kind": "class",
12620
12894
  "locationInModule": {
12621
12895
  "filename": "lib/channel.ts",
12622
- "line": 196
12896
+ "line": 201
12623
12897
  },
12624
12898
  "methods": [
12625
12899
  {
@@ -12629,7 +12903,7 @@
12629
12903
  },
12630
12904
  "locationInModule": {
12631
12905
  "filename": "lib/channel.ts",
12632
- "line": 205
12906
+ "line": 210
12633
12907
  },
12634
12908
  "name": "of",
12635
12909
  "parameters": [
@@ -12659,7 +12933,7 @@
12659
12933
  "immutable": true,
12660
12934
  "locationInModule": {
12661
12935
  "filename": "lib/channel.ts",
12662
- "line": 200
12936
+ "line": 205
12663
12937
  },
12664
12938
  "name": "MQCS",
12665
12939
  "static": true,
@@ -12675,7 +12949,7 @@
12675
12949
  "immutable": true,
12676
12950
  "locationInModule": {
12677
12951
  "filename": "lib/channel.ts",
12678
- "line": 213
12952
+ "line": 218
12679
12953
  },
12680
12954
  "name": "value",
12681
12955
  "type": {
@@ -12880,7 +13154,7 @@
12880
13154
  },
12881
13155
  "locationInModule": {
12882
13156
  "filename": "lib/channel.ts",
12883
- "line": 96
13157
+ "line": 101
12884
13158
  },
12885
13159
  "name": "addOriginEndpoint",
12886
13160
  "parameters": [
@@ -12912,7 +13186,7 @@
12912
13186
  },
12913
13187
  "locationInModule": {
12914
13188
  "filename": "lib/channel.ts",
12915
- "line": 104
13189
+ "line": 109
12916
13190
  },
12917
13191
  "name": "addToResourcePolicy",
12918
13192
  "parameters": [
@@ -12937,7 +13211,7 @@
12937
13211
  },
12938
13212
  "locationInModule": {
12939
13213
  "filename": "lib/channel.ts",
12940
- "line": 112
13214
+ "line": 117
12941
13215
  },
12942
13216
  "name": "metric",
12943
13217
  "parameters": [
@@ -12976,7 +13250,7 @@
12976
13250
  },
12977
13251
  "locationInModule": {
12978
13252
  "filename": "lib/channel.ts",
12979
- "line": 126
13253
+ "line": 131
12980
13254
  },
12981
13255
  "name": "metricEgressBytes",
12982
13256
  "parameters": [
@@ -13003,7 +13277,7 @@
13003
13277
  },
13004
13278
  "locationInModule": {
13005
13279
  "filename": "lib/channel.ts",
13006
- "line": 154
13280
+ "line": 159
13007
13281
  },
13008
13282
  "name": "metricEgressRequestCount",
13009
13283
  "parameters": [
@@ -13030,7 +13304,7 @@
13030
13304
  },
13031
13305
  "locationInModule": {
13032
13306
  "filename": "lib/channel.ts",
13033
- "line": 140
13307
+ "line": 145
13034
13308
  },
13035
13309
  "name": "metricEgressResponseTime",
13036
13310
  "parameters": [
@@ -13057,7 +13331,7 @@
13057
13331
  },
13058
13332
  "locationInModule": {
13059
13333
  "filename": "lib/channel.ts",
13060
- "line": 119
13334
+ "line": 124
13061
13335
  },
13062
13336
  "name": "metricIngressBytes",
13063
13337
  "parameters": [
@@ -13084,7 +13358,7 @@
13084
13358
  },
13085
13359
  "locationInModule": {
13086
13360
  "filename": "lib/channel.ts",
13087
- "line": 147
13361
+ "line": 152
13088
13362
  },
13089
13363
  "name": "metricIngressRequestCount",
13090
13364
  "parameters": [
@@ -13111,7 +13385,7 @@
13111
13385
  },
13112
13386
  "locationInModule": {
13113
13387
  "filename": "lib/channel.ts",
13114
- "line": 133
13388
+ "line": 138
13115
13389
  },
13116
13390
  "name": "metricIngressResponseTime",
13117
13391
  "parameters": [
@@ -13200,7 +13474,7 @@
13200
13474
  "immutable": true,
13201
13475
  "locationInModule": {
13202
13476
  "filename": "lib/channel.ts",
13203
- "line": 91
13477
+ "line": 96
13204
13478
  },
13205
13479
  "name": "grants",
13206
13480
  "type": {
@@ -13231,6 +13505,22 @@
13231
13505
  }
13232
13506
  }
13233
13507
  },
13508
+ {
13509
+ "abstract": true,
13510
+ "docs": {
13511
+ "stability": "experimental",
13512
+ "summary": "The AWS region where this channel lives."
13513
+ },
13514
+ "immutable": true,
13515
+ "locationInModule": {
13516
+ "filename": "lib/channel.ts",
13517
+ "line": 91
13518
+ },
13519
+ "name": "region",
13520
+ "type": {
13521
+ "primitive": "string"
13522
+ }
13523
+ },
13234
13524
  {
13235
13525
  "abstract": true,
13236
13526
  "docs": {
@@ -14138,7 +14428,7 @@
14138
14428
  "kind": "enum",
14139
14429
  "locationInModule": {
14140
14430
  "filename": "lib/channel.ts",
14141
- "line": 160
14431
+ "line": 165
14142
14432
  },
14143
14433
  "members": [
14144
14434
  {
@@ -14174,7 +14464,7 @@
14174
14464
  "kind": "class",
14175
14465
  "locationInModule": {
14176
14466
  "filename": "lib/channel.ts",
14177
- "line": 242
14467
+ "line": 247
14178
14468
  },
14179
14469
  "methods": [
14180
14470
  {
@@ -14184,7 +14474,7 @@
14184
14474
  },
14185
14475
  "locationInModule": {
14186
14476
  "filename": "lib/channel.ts",
14187
- "line": 255
14477
+ "line": 260
14188
14478
  },
14189
14479
  "name": "cmaf",
14190
14480
  "parameters": [
@@ -14213,7 +14503,7 @@
14213
14503
  },
14214
14504
  "locationInModule": {
14215
14505
  "filename": "lib/channel.ts",
14216
- "line": 246
14506
+ "line": 251
14217
14507
  },
14218
14508
  "name": "hls",
14219
14509
  "returns": {
@@ -14234,7 +14524,7 @@
14234
14524
  "immutable": true,
14235
14525
  "locationInModule": {
14236
14526
  "filename": "lib/channel.ts",
14237
- "line": 267
14527
+ "line": 272
14238
14528
  },
14239
14529
  "name": "inputType",
14240
14530
  "type": {
@@ -14249,7 +14539,7 @@
14249
14539
  "immutable": true,
14250
14540
  "locationInModule": {
14251
14541
  "filename": "lib/channel.ts",
14252
- "line": 271
14542
+ "line": 276
14253
14543
  },
14254
14544
  "name": "inputSwitchConfiguration",
14255
14545
  "optional": true,
@@ -14265,7 +14555,7 @@
14265
14555
  "immutable": true,
14266
14556
  "locationInModule": {
14267
14557
  "filename": "lib/channel.ts",
14268
- "line": 275
14558
+ "line": 280
14269
14559
  },
14270
14560
  "name": "outputHeaders",
14271
14561
  "optional": true,
@@ -14296,7 +14586,7 @@
14296
14586
  "kind": "interface",
14297
14587
  "locationInModule": {
14298
14588
  "filename": "lib/channel.ts",
14299
- "line": 174
14589
+ "line": 179
14300
14590
  },
14301
14591
  "name": "InputSwitchConfiguration",
14302
14592
  "properties": [
@@ -14311,7 +14601,7 @@
14311
14601
  "immutable": true,
14312
14602
  "locationInModule": {
14313
14603
  "filename": "lib/channel.ts",
14314
- "line": 182
14604
+ "line": 187
14315
14605
  },
14316
14606
  "name": "mqcsInputSwitching",
14317
14607
  "optional": true,
@@ -14330,7 +14620,7 @@
14330
14620
  "immutable": true,
14331
14621
  "locationInModule": {
14332
14622
  "filename": "lib/channel.ts",
14333
- "line": 190
14623
+ "line": 195
14334
14624
  },
14335
14625
  "name": "preferredInput",
14336
14626
  "optional": true,
@@ -14383,7 +14673,7 @@
14383
14673
  "kind": "enum",
14384
14674
  "locationInModule": {
14385
14675
  "filename": "lib/endpoint.ts",
14386
- "line": 1931
14676
+ "line": 1940
14387
14677
  },
14388
14678
  "members": [
14389
14679
  {
@@ -14413,7 +14703,7 @@
14413
14703
  "kind": "class",
14414
14704
  "locationInModule": {
14415
14705
  "filename": "lib/endpoint.ts",
14416
- "line": 2270
14706
+ "line": 2279
14417
14707
  },
14418
14708
  "methods": [
14419
14709
  {
@@ -14423,7 +14713,7 @@
14423
14713
  },
14424
14714
  "locationInModule": {
14425
14715
  "filename": "lib/endpoint.ts",
14426
- "line": 2274
14716
+ "line": 2283
14427
14717
  },
14428
14718
  "name": "speke",
14429
14719
  "parameters": [
@@ -14463,7 +14753,7 @@
14463
14753
  "kind": "interface",
14464
14754
  "locationInModule": {
14465
14755
  "filename": "lib/endpoint.ts",
14466
- "line": 2472
14756
+ "line": 2481
14467
14757
  },
14468
14758
  "name": "IsmSegmentProps",
14469
14759
  "properties": [
@@ -14478,7 +14768,7 @@
14478
14768
  "immutable": true,
14479
14769
  "locationInModule": {
14480
14770
  "filename": "lib/endpoint.ts",
14481
- "line": 2480
14771
+ "line": 2489
14482
14772
  },
14483
14773
  "name": "encryption",
14484
14774
  "optional": true,
@@ -14505,7 +14795,7 @@
14505
14795
  "kind": "interface",
14506
14796
  "locationInModule": {
14507
14797
  "filename": "lib/endpoint.ts",
14508
- "line": 2072
14798
+ "line": 2081
14509
14799
  },
14510
14800
  "name": "IsmSpekeEncryptionProps",
14511
14801
  "properties": [
@@ -14518,7 +14808,7 @@
14518
14808
  "immutable": true,
14519
14809
  "locationInModule": {
14520
14810
  "filename": "lib/endpoint.ts",
14521
- "line": 2083
14811
+ "line": 2092
14522
14812
  },
14523
14813
  "name": "resourceId",
14524
14814
  "type": {
@@ -14534,7 +14824,7 @@
14534
14824
  "immutable": true,
14535
14825
  "locationInModule": {
14536
14826
  "filename": "lib/endpoint.ts",
14537
- "line": 2088
14827
+ "line": 2097
14538
14828
  },
14539
14829
  "name": "role",
14540
14830
  "type": {
@@ -14550,7 +14840,7 @@
14550
14840
  "immutable": true,
14551
14841
  "locationInModule": {
14552
14842
  "filename": "lib/endpoint.ts",
14553
- "line": 2093
14843
+ "line": 2102
14554
14844
  },
14555
14845
  "name": "url",
14556
14846
  "type": {
@@ -14567,7 +14857,7 @@
14567
14857
  "immutable": true,
14568
14858
  "locationInModule": {
14569
14859
  "filename": "lib/endpoint.ts",
14570
- "line": 2101
14860
+ "line": 2110
14571
14861
  },
14572
14862
  "name": "certificate",
14573
14863
  "optional": true,
@@ -14585,7 +14875,7 @@
14585
14875
  "immutable": true,
14586
14876
  "locationInModule": {
14587
14877
  "filename": "lib/endpoint.ts",
14588
- "line": 2078
14878
+ "line": 2087
14589
14879
  },
14590
14880
  "name": "drmSystems",
14591
14881
  "optional": true,
@@ -15848,7 +16138,7 @@
15848
16138
  },
15849
16139
  "locationInModule": {
15850
16140
  "filename": "lib/endpoint.ts",
15851
- "line": 2844
16141
+ "line": 2886
15852
16142
  },
15853
16143
  "parameters": [
15854
16144
  {
@@ -15877,9 +16167,47 @@
15877
16167
  "kind": "class",
15878
16168
  "locationInModule": {
15879
16169
  "filename": "lib/endpoint.ts",
15880
- "line": 2792
16170
+ "line": 2834
15881
16171
  },
15882
16172
  "methods": [
16173
+ {
16174
+ "docs": {
16175
+ "remarks": "The ARN is expected to be in the format:\n`arn:<partition>:mediapackagev2:<region>:<account>:channelGroup/<groupName>/channel/<channelName>/originEndpoint/<endpointName>`",
16176
+ "stability": "experimental",
16177
+ "summary": "Creates an OriginEndpoint construct that represents an external (imported) Origin Endpoint from its ARN."
16178
+ },
16179
+ "locationInModule": {
16180
+ "filename": "lib/endpoint.ts",
16181
+ "line": 2555
16182
+ },
16183
+ "name": "fromOriginEndpointArn",
16184
+ "parameters": [
16185
+ {
16186
+ "name": "scope",
16187
+ "type": {
16188
+ "fqn": "constructs.Construct"
16189
+ }
16190
+ },
16191
+ {
16192
+ "name": "id",
16193
+ "type": {
16194
+ "primitive": "string"
16195
+ }
16196
+ },
16197
+ {
16198
+ "name": "originEndpointArn",
16199
+ "type": {
16200
+ "primitive": "string"
16201
+ }
16202
+ }
16203
+ ],
16204
+ "returns": {
16205
+ "type": {
16206
+ "fqn": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint"
16207
+ }
16208
+ },
16209
+ "static": true
16210
+ },
15883
16211
  {
15884
16212
  "docs": {
15885
16213
  "stability": "experimental",
@@ -15887,7 +16215,7 @@
15887
16215
  },
15888
16216
  "locationInModule": {
15889
16217
  "filename": "lib/endpoint.ts",
15890
- "line": 2543
16218
+ "line": 2584
15891
16219
  },
15892
16220
  "name": "fromOriginEndpointAttributes",
15893
16221
  "parameters": [
@@ -15925,7 +16253,7 @@
15925
16253
  },
15926
16254
  "locationInModule": {
15927
16255
  "filename": "lib/endpoint.ts",
15928
- "line": 2638
16256
+ "line": 2680
15929
16257
  },
15930
16258
  "name": "addToResourcePolicy",
15931
16259
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -15964,7 +16292,7 @@
15964
16292
  },
15965
16293
  "locationInModule": {
15966
16294
  "filename": "lib/endpoint.ts",
15967
- "line": 2691
16295
+ "line": 2733
15968
16296
  },
15969
16297
  "name": "metric",
15970
16298
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16003,7 +16331,7 @@
16003
16331
  },
16004
16332
  "locationInModule": {
16005
16333
  "filename": "lib/endpoint.ts",
16006
- "line": 2723
16334
+ "line": 2765
16007
16335
  },
16008
16336
  "name": "metricEgressBytes",
16009
16337
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16030,7 +16358,7 @@
16030
16358
  },
16031
16359
  "locationInModule": {
16032
16360
  "filename": "lib/endpoint.ts",
16033
- "line": 2765
16361
+ "line": 2807
16034
16362
  },
16035
16363
  "name": "metricEgressRequestCount",
16036
16364
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16057,7 +16385,7 @@
16057
16385
  },
16058
16386
  "locationInModule": {
16059
16387
  "filename": "lib/endpoint.ts",
16060
- "line": 2751
16388
+ "line": 2793
16061
16389
  },
16062
16390
  "name": "metricEgressResponseTime",
16063
16391
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16084,7 +16412,7 @@
16084
16412
  },
16085
16413
  "locationInModule": {
16086
16414
  "filename": "lib/endpoint.ts",
16087
- "line": 2709
16415
+ "line": 2751
16088
16416
  },
16089
16417
  "name": "metricIngressBytes",
16090
16418
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16111,7 +16439,7 @@
16111
16439
  },
16112
16440
  "locationInModule": {
16113
16441
  "filename": "lib/endpoint.ts",
16114
- "line": 2779
16442
+ "line": 2821
16115
16443
  },
16116
16444
  "name": "metricIngressRequestCount",
16117
16445
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16138,7 +16466,7 @@
16138
16466
  },
16139
16467
  "locationInModule": {
16140
16468
  "filename": "lib/endpoint.ts",
16141
- "line": 2737
16469
+ "line": 2779
16142
16470
  },
16143
16471
  "name": "metricIngressResponseTime",
16144
16472
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16164,7 +16492,7 @@
16164
16492
  },
16165
16493
  "locationInModule": {
16166
16494
  "filename": "lib/endpoint.ts",
16167
- "line": 2662
16495
+ "line": 2704
16168
16496
  },
16169
16497
  "name": "segmentValidation",
16170
16498
  "parameters": [
@@ -16202,7 +16530,7 @@
16202
16530
  "immutable": true,
16203
16531
  "locationInModule": {
16204
16532
  "filename": "lib/endpoint.ts",
16205
- "line": 2795
16533
+ "line": 2837
16206
16534
  },
16207
16535
  "name": "PROPERTY_INJECTION_ID",
16208
16536
  "static": true,
@@ -16218,7 +16546,7 @@
16218
16546
  "immutable": true,
16219
16547
  "locationInModule": {
16220
16548
  "filename": "lib/endpoint.ts",
16221
- "line": 2797
16549
+ "line": 2839
16222
16550
  },
16223
16551
  "name": "channelGroupName",
16224
16552
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16234,7 +16562,7 @@
16234
16562
  "immutable": true,
16235
16563
  "locationInModule": {
16236
16564
  "filename": "lib/endpoint.ts",
16237
- "line": 2798
16565
+ "line": 2840
16238
16566
  },
16239
16567
  "name": "channelName",
16240
16568
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16250,7 +16578,7 @@
16250
16578
  "immutable": true,
16251
16579
  "locationInModule": {
16252
16580
  "filename": "lib/endpoint.ts",
16253
- "line": 2800
16581
+ "line": 2842
16254
16582
  },
16255
16583
  "name": "originEndpointArn",
16256
16584
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16266,7 +16594,7 @@
16266
16594
  "immutable": true,
16267
16595
  "locationInModule": {
16268
16596
  "filename": "lib/endpoint.ts",
16269
- "line": 2799
16597
+ "line": 2841
16270
16598
  },
16271
16599
  "name": "originEndpointName",
16272
16600
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16283,7 +16611,7 @@
16283
16611
  "immutable": true,
16284
16612
  "locationInModule": {
16285
16613
  "filename": "lib/endpoint.ts",
16286
- "line": 2587
16614
+ "line": 2629
16287
16615
  },
16288
16616
  "name": "originEndpointRef",
16289
16617
  "overrides": "aws-cdk-lib.interfaces.aws_mediapackagev2.IOriginEndpointRef",
@@ -16299,7 +16627,7 @@
16299
16627
  "immutable": true,
16300
16628
  "locationInModule": {
16301
16629
  "filename": "lib/endpoint.ts",
16302
- "line": 2805
16630
+ "line": 2847
16303
16631
  },
16304
16632
  "name": "createdAt",
16305
16633
  "optional": true,
@@ -16316,7 +16644,7 @@
16316
16644
  "immutable": true,
16317
16645
  "locationInModule": {
16318
16646
  "filename": "lib/endpoint.ts",
16319
- "line": 2825
16647
+ "line": 2867
16320
16648
  },
16321
16649
  "name": "dashManifestUrls",
16322
16650
  "optional": true,
@@ -16338,7 +16666,7 @@
16338
16666
  "immutable": true,
16339
16667
  "locationInModule": {
16340
16668
  "filename": "lib/endpoint.ts",
16341
- "line": 2820
16669
+ "line": 2862
16342
16670
  },
16343
16671
  "name": "hlsManifestUrls",
16344
16672
  "optional": true,
@@ -16360,7 +16688,7 @@
16360
16688
  "immutable": true,
16361
16689
  "locationInModule": {
16362
16690
  "filename": "lib/endpoint.ts",
16363
- "line": 2815
16691
+ "line": 2857
16364
16692
  },
16365
16693
  "name": "lowLatencyHlsManifestUrls",
16366
16694
  "optional": true,
@@ -16382,7 +16710,7 @@
16382
16710
  "immutable": true,
16383
16711
  "locationInModule": {
16384
16712
  "filename": "lib/endpoint.ts",
16385
- "line": 2810
16713
+ "line": 2852
16386
16714
  },
16387
16715
  "name": "modifiedAt",
16388
16716
  "optional": true,
@@ -16399,7 +16727,7 @@
16399
16727
  "immutable": true,
16400
16728
  "locationInModule": {
16401
16729
  "filename": "lib/endpoint.ts",
16402
- "line": 2829
16730
+ "line": 2871
16403
16731
  },
16404
16732
  "name": "mssManifestUrls",
16405
16733
  "optional": true,
@@ -16420,7 +16748,7 @@
16420
16748
  },
16421
16749
  "locationInModule": {
16422
16750
  "filename": "lib/endpoint.ts",
16423
- "line": 2837
16751
+ "line": 2879
16424
16752
  },
16425
16753
  "name": "autoCreatePolicy",
16426
16754
  "protected": true,
@@ -16434,7 +16762,7 @@
16434
16762
  },
16435
16763
  "locationInModule": {
16436
16764
  "filename": "lib/endpoint.ts",
16437
- "line": 2840
16765
+ "line": 2882
16438
16766
  },
16439
16767
  "name": "dashManifests",
16440
16768
  "protected": true,
@@ -16453,7 +16781,7 @@
16453
16781
  },
16454
16782
  "locationInModule": {
16455
16783
  "filename": "lib/endpoint.ts",
16456
- "line": 2838
16784
+ "line": 2880
16457
16785
  },
16458
16786
  "name": "hlsManifests",
16459
16787
  "protected": true,
@@ -16472,7 +16800,7 @@
16472
16800
  },
16473
16801
  "locationInModule": {
16474
16802
  "filename": "lib/endpoint.ts",
16475
- "line": 2839
16803
+ "line": 2881
16476
16804
  },
16477
16805
  "name": "llHlsManifests",
16478
16806
  "protected": true,
@@ -16491,7 +16819,7 @@
16491
16819
  },
16492
16820
  "locationInModule": {
16493
16821
  "filename": "lib/endpoint.ts",
16494
- "line": 2841
16822
+ "line": 2883
16495
16823
  },
16496
16824
  "name": "mssManifests",
16497
16825
  "protected": true,
@@ -16512,7 +16840,7 @@
16512
16840
  },
16513
16841
  "locationInModule": {
16514
16842
  "filename": "lib/endpoint.ts",
16515
- "line": 2836
16843
+ "line": 2878
16516
16844
  },
16517
16845
  "name": "policy",
16518
16846
  "optional": true,
@@ -16526,7 +16854,7 @@
16526
16854
  },
16527
16855
  "locationInModule": {
16528
16856
  "filename": "lib/endpoint.ts",
16529
- "line": 2842
16857
+ "line": 2884
16530
16858
  },
16531
16859
  "name": "segment",
16532
16860
  "optional": true,
@@ -16615,6 +16943,25 @@
16615
16943
  "type": {
16616
16944
  "primitive": "string"
16617
16945
  }
16946
+ },
16947
+ {
16948
+ "abstract": true,
16949
+ "docs": {
16950
+ "default": "- the importing stack's region",
16951
+ "remarks": "Required for cross-region imports to construct the correct ARN.",
16952
+ "stability": "experimental",
16953
+ "summary": "The AWS region where the origin endpoint lives."
16954
+ },
16955
+ "immutable": true,
16956
+ "locationInModule": {
16957
+ "filename": "lib/endpoint.ts",
16958
+ "line": 1891
16959
+ },
16960
+ "name": "region",
16961
+ "optional": true,
16962
+ "type": {
16963
+ "primitive": "string"
16964
+ }
16618
16965
  }
16619
16966
  ],
16620
16967
  "symbolId": "lib/endpoint:OriginEndpointAttributes"
@@ -17295,7 +17642,7 @@
17295
17642
  "kind": "class",
17296
17643
  "locationInModule": {
17297
17644
  "filename": "lib/endpoint.ts",
17298
- "line": 2486
17645
+ "line": 2495
17299
17646
  },
17300
17647
  "methods": [
17301
17648
  {
@@ -17306,7 +17653,7 @@
17306
17653
  },
17307
17654
  "locationInModule": {
17308
17655
  "filename": "lib/endpoint.ts",
17309
- "line": 2511
17656
+ "line": 2520
17310
17657
  },
17311
17658
  "name": "cmaf",
17312
17659
  "parameters": [
@@ -17333,7 +17680,7 @@
17333
17680
  },
17334
17681
  "locationInModule": {
17335
17682
  "filename": "lib/endpoint.ts",
17336
- "line": 2528
17683
+ "line": 2537
17337
17684
  },
17338
17685
  "name": "ism",
17339
17686
  "parameters": [
@@ -17360,7 +17707,7 @@
17360
17707
  },
17361
17708
  "locationInModule": {
17362
17709
  "filename": "lib/endpoint.ts",
17363
- "line": 2492
17710
+ "line": 2501
17364
17711
  },
17365
17712
  "name": "ts",
17366
17713
  "parameters": [
@@ -17398,7 +17745,7 @@
17398
17745
  "kind": "interface",
17399
17746
  "locationInModule": {
17400
17747
  "filename": "lib/endpoint.ts",
17401
- "line": 2316
17748
+ "line": 2325
17402
17749
  },
17403
17750
  "name": "SegmentConfiguration",
17404
17751
  "properties": [
@@ -17411,7 +17758,7 @@
17411
17758
  "immutable": true,
17412
17759
  "locationInModule": {
17413
17760
  "filename": "lib/endpoint.ts",
17414
- "line": 2320
17761
+ "line": 2329
17415
17762
  },
17416
17763
  "name": "containerType",
17417
17764
  "type": {
@@ -17428,7 +17775,7 @@
17428
17775
  "immutable": true,
17429
17776
  "locationInModule": {
17430
17777
  "filename": "lib/endpoint.ts",
17431
- "line": 2370
17778
+ "line": 2379
17432
17779
  },
17433
17780
  "name": "encryption",
17434
17781
  "optional": true,
@@ -17446,7 +17793,7 @@
17446
17793
  "immutable": true,
17447
17794
  "locationInModule": {
17448
17795
  "filename": "lib/endpoint.ts",
17449
- "line": 2326
17796
+ "line": 2335
17450
17797
  },
17451
17798
  "name": "includeIframeOnlyStreams",
17452
17799
  "optional": true,
@@ -17465,7 +17812,7 @@
17465
17812
  "immutable": true,
17466
17813
  "locationInModule": {
17467
17814
  "filename": "lib/endpoint.ts",
17468
- "line": 2334
17815
+ "line": 2343
17469
17816
  },
17470
17817
  "name": "scteFilter",
17471
17818
  "optional": true,
@@ -17488,7 +17835,7 @@
17488
17835
  "immutable": true,
17489
17836
  "locationInModule": {
17490
17837
  "filename": "lib/endpoint.ts",
17491
- "line": 2340
17838
+ "line": 2349
17492
17839
  },
17493
17840
  "name": "scteInSegments",
17494
17841
  "optional": true,
@@ -17506,7 +17853,7 @@
17506
17853
  "immutable": true,
17507
17854
  "locationInModule": {
17508
17855
  "filename": "lib/endpoint.ts",
17509
- "line": 2346
17856
+ "line": 2355
17510
17857
  },
17511
17858
  "name": "segmentDuration",
17512
17859
  "optional": true,
@@ -17524,7 +17871,7 @@
17524
17871
  "immutable": true,
17525
17872
  "locationInModule": {
17526
17873
  "filename": "lib/endpoint.ts",
17527
- "line": 2352
17874
+ "line": 2361
17528
17875
  },
17529
17876
  "name": "segmentName",
17530
17877
  "optional": true,
@@ -17542,7 +17889,7 @@
17542
17889
  "immutable": true,
17543
17890
  "locationInModule": {
17544
17891
  "filename": "lib/endpoint.ts",
17545
- "line": 2358
17892
+ "line": 2367
17546
17893
  },
17547
17894
  "name": "tsIncludeDvbSubtitles",
17548
17895
  "optional": true,
@@ -17560,7 +17907,7 @@
17560
17907
  "immutable": true,
17561
17908
  "locationInModule": {
17562
17909
  "filename": "lib/endpoint.ts",
17563
- "line": 2364
17910
+ "line": 2373
17564
17911
  },
17565
17912
  "name": "tsUseAudioRenditionGroup",
17566
17913
  "optional": true,
@@ -17586,7 +17933,7 @@
17586
17933
  "kind": "interface",
17587
17934
  "locationInModule": {
17588
17935
  "filename": "lib/endpoint.ts",
17589
- "line": 2376
17936
+ "line": 2385
17590
17937
  },
17591
17938
  "name": "SegmentPropsBase",
17592
17939
  "properties": [
@@ -17600,7 +17947,7 @@
17600
17947
  "immutable": true,
17601
17948
  "locationInModule": {
17602
17949
  "filename": "lib/endpoint.ts",
17603
- "line": 2389
17950
+ "line": 2398
17604
17951
  },
17605
17952
  "name": "duration",
17606
17953
  "optional": true,
@@ -17618,7 +17965,7 @@
17618
17965
  "immutable": true,
17619
17966
  "locationInModule": {
17620
17967
  "filename": "lib/endpoint.ts",
17621
- "line": 2382
17968
+ "line": 2391
17622
17969
  },
17623
17970
  "name": "includeIframeOnlyStreams",
17624
17971
  "optional": true,
@@ -17636,7 +17983,7 @@
17636
17983
  "immutable": true,
17637
17984
  "locationInModule": {
17638
17985
  "filename": "lib/endpoint.ts",
17639
- "line": 2396
17986
+ "line": 2405
17640
17987
  },
17641
17988
  "name": "name",
17642
17989
  "optional": true,
@@ -17930,7 +18277,7 @@
17930
18277
  "kind": "enum",
17931
18278
  "locationInModule": {
17932
18279
  "filename": "lib/endpoint.ts",
17933
- "line": 1915
18280
+ "line": 1924
17934
18281
  },
17935
18282
  "members": [
17936
18283
  {
@@ -17967,7 +18314,7 @@
17967
18314
  "kind": "class",
17968
18315
  "locationInModule": {
17969
18316
  "filename": "lib/endpoint.ts",
17970
- "line": 2209
18317
+ "line": 2218
17971
18318
  },
17972
18319
  "methods": [
17973
18320
  {
@@ -17977,7 +18324,7 @@
17977
18324
  },
17978
18325
  "locationInModule": {
17979
18326
  "filename": "lib/endpoint.ts",
17980
- "line": 2213
18327
+ "line": 2222
17981
18328
  },
17982
18329
  "name": "speke",
17983
18330
  "parameters": [
@@ -18052,7 +18399,7 @@
18052
18399
  "kind": "interface",
18053
18400
  "locationInModule": {
18054
18401
  "filename": "lib/endpoint.ts",
18055
- "line": 2402
18402
+ "line": 2411
18056
18403
  },
18057
18404
  "name": "TsSegmentProps",
18058
18405
  "properties": [
@@ -18067,7 +18414,7 @@
18067
18414
  "immutable": true,
18068
18415
  "locationInModule": {
18069
18416
  "filename": "lib/endpoint.ts",
18070
- "line": 2438
18417
+ "line": 2447
18071
18418
  },
18072
18419
  "name": "encryption",
18073
18420
  "optional": true,
@@ -18085,7 +18432,7 @@
18085
18432
  "immutable": true,
18086
18433
  "locationInModule": {
18087
18434
  "filename": "lib/endpoint.ts",
18088
- "line": 2422
18435
+ "line": 2431
18089
18436
  },
18090
18437
  "name": "includeDvbSubtitles",
18091
18438
  "optional": true,
@@ -18103,7 +18450,7 @@
18103
18450
  "immutable": true,
18104
18451
  "locationInModule": {
18105
18452
  "filename": "lib/endpoint.ts",
18106
- "line": 2408
18453
+ "line": 2417
18107
18454
  },
18108
18455
  "name": "scteFilter",
18109
18456
  "optional": true,
@@ -18126,7 +18473,7 @@
18126
18473
  "immutable": true,
18127
18474
  "locationInModule": {
18128
18475
  "filename": "lib/endpoint.ts",
18129
- "line": 2415
18476
+ "line": 2424
18130
18477
  },
18131
18478
  "name": "scteInSegments",
18132
18479
  "optional": true,
@@ -18144,7 +18491,7 @@
18144
18491
  "immutable": true,
18145
18492
  "locationInModule": {
18146
18493
  "filename": "lib/endpoint.ts",
18147
- "line": 2429
18494
+ "line": 2438
18148
18495
  },
18149
18496
  "name": "useAudioRenditionGroup",
18150
18497
  "optional": true,
@@ -18170,7 +18517,7 @@
18170
18517
  "kind": "interface",
18171
18518
  "locationInModule": {
18172
18519
  "filename": "lib/endpoint.ts",
18173
- "line": 2034
18520
+ "line": 2043
18174
18521
  },
18175
18522
  "name": "TsSpekeEncryptionProps",
18176
18523
  "properties": [
@@ -18183,7 +18530,7 @@
18183
18530
  "immutable": true,
18184
18531
  "locationInModule": {
18185
18532
  "filename": "lib/endpoint.ts",
18186
- "line": 2038
18533
+ "line": 2047
18187
18534
  },
18188
18535
  "name": "method",
18189
18536
  "type": {
@@ -18200,7 +18547,7 @@
18200
18547
  "immutable": true,
18201
18548
  "locationInModule": {
18202
18549
  "filename": "lib/endpoint.ts",
18203
- "line": 1949
18550
+ "line": 1958
18204
18551
  },
18205
18552
  "name": "resourceId",
18206
18553
  "type": {
@@ -18217,7 +18564,7 @@
18217
18564
  "immutable": true,
18218
18565
  "locationInModule": {
18219
18566
  "filename": "lib/endpoint.ts",
18220
- "line": 1957
18567
+ "line": 1966
18221
18568
  },
18222
18569
  "name": "role",
18223
18570
  "type": {
@@ -18233,7 +18580,7 @@
18233
18580
  "immutable": true,
18234
18581
  "locationInModule": {
18235
18582
  "filename": "lib/endpoint.ts",
18236
- "line": 1962
18583
+ "line": 1971
18237
18584
  },
18238
18585
  "name": "url",
18239
18586
  "type": {
@@ -18250,7 +18597,7 @@
18250
18597
  "immutable": true,
18251
18598
  "locationInModule": {
18252
18599
  "filename": "lib/endpoint.ts",
18253
- "line": 1979
18600
+ "line": 1988
18254
18601
  },
18255
18602
  "name": "audioPreset",
18256
18603
  "optional": true,
@@ -18269,7 +18616,7 @@
18269
18616
  "immutable": true,
18270
18617
  "locationInModule": {
18271
18618
  "filename": "lib/endpoint.ts",
18272
- "line": 1972
18619
+ "line": 1981
18273
18620
  },
18274
18621
  "name": "certificate",
18275
18622
  "optional": true,
@@ -18288,7 +18635,7 @@
18288
18635
  "immutable": true,
18289
18636
  "locationInModule": {
18290
18637
  "filename": "lib/endpoint.ts",
18291
- "line": 2055
18638
+ "line": 2064
18292
18639
  },
18293
18640
  "name": "constantInitializationVector",
18294
18641
  "optional": true,
@@ -18306,7 +18653,7 @@
18306
18653
  "immutable": true,
18307
18654
  "locationInModule": {
18308
18655
  "filename": "lib/endpoint.ts",
18309
- "line": 2045
18656
+ "line": 2054
18310
18657
  },
18311
18658
  "name": "drmSystems",
18312
18659
  "optional": true,
@@ -18329,7 +18676,7 @@
18329
18676
  "immutable": true,
18330
18677
  "locationInModule": {
18331
18678
  "filename": "lib/endpoint.ts",
18332
- "line": 2062
18679
+ "line": 2071
18333
18680
  },
18334
18681
  "name": "keyRotationInterval",
18335
18682
  "optional": true,
@@ -18347,7 +18694,7 @@
18347
18694
  "immutable": true,
18348
18695
  "locationInModule": {
18349
18696
  "filename": "lib/endpoint.ts",
18350
- "line": 1986
18697
+ "line": 1995
18351
18698
  },
18352
18699
  "name": "videoPreset",
18353
18700
  "optional": true,
@@ -18475,6 +18822,6 @@
18475
18822
  "symbolId": "lib/endpoint:VideoDynamicRange"
18476
18823
  }
18477
18824
  },
18478
- "version": "2.248.0-alpha.0",
18825
+ "version": "2.250.0-alpha.0",
18479
18826
  "fingerprint": "**********"
18480
18827
  }