@aws-cdk/aws-mediapackagev2-alpha 2.256.1-alpha.0 → 2.258.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.256.1",
11
+ "aws-cdk-lib": "^2.258.0",
12
12
  "constructs": "^10.5.0"
13
13
  },
14
14
  "dependencyClosure": {
@@ -525,6 +525,19 @@
525
525
  }
526
526
  }
527
527
  },
528
+ "aws-cdk-lib.aws_awsexternalanthropic": {
529
+ "targets": {
530
+ "dotnet": {
531
+ "namespace": "Amazon.CDK.AWS.AWSExternalAnthropic"
532
+ },
533
+ "java": {
534
+ "package": "software.amazon.awscdk.services.awsexternalanthropic"
535
+ },
536
+ "python": {
537
+ "module": "aws_cdk.aws_awsexternalanthropic"
538
+ }
539
+ }
540
+ },
528
541
  "aws-cdk-lib.aws_b2bi": {
529
542
  "targets": {
530
543
  "dotnet": {
@@ -4702,6 +4715,22 @@
4702
4715
  }
4703
4716
  }
4704
4717
  },
4718
+ "aws-cdk-lib.interfaces.aws_awsexternalanthropic": {
4719
+ "targets": {
4720
+ "dotnet": {
4721
+ "namespace": "Amazon.CDK.Interfaces.AWSExternalAnthropic"
4722
+ },
4723
+ "go": {
4724
+ "packageName": "interfacesawsawsexternalanthropic"
4725
+ },
4726
+ "java": {
4727
+ "package": "software.amazon.awscdk.interfaces.awsexternalanthropic"
4728
+ },
4729
+ "python": {
4730
+ "module": "aws_cdk.interfaces.aws_awsexternalanthropic"
4731
+ }
4732
+ }
4733
+ },
4705
4734
  "aws-cdk-lib.interfaces.aws_b2bi": {
4706
4735
  "targets": {
4707
4736
  "dotnet": {
@@ -8937,7 +8966,7 @@
8937
8966
  "stability": "experimental"
8938
8967
  },
8939
8968
  "homepage": "https://github.com/aws/aws-cdk",
8940
- "jsiiVersion": "5.9.37 (build 5176c0d)",
8969
+ "jsiiVersion": "5.9.44 (build 150b837)",
8941
8970
  "keywords": [
8942
8971
  "aws",
8943
8972
  "cdk",
@@ -8959,7 +8988,7 @@
8959
8988
  },
8960
8989
  "name": "@aws-cdk/aws-mediapackagev2-alpha",
8961
8990
  "readme": {
8962
- "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\nThe simplest way to connect CloudFront to a MediaPackage V2 endpoint is with `MediaPackageV2Origin`, which automatically creates an Origin Access Control (OAC) and wires the endpoint policy:\n\n```ts\ndeclare const endpoint: OriginEndpoint;\ndeclare const group: ChannelGroup;\n\nnew cloudfront.Distribution(this, 'Distribution', {\n defaultBehavior: {\n origin: new MediaPackageV2Origin(endpoint, {\n channelGroup: group,\n }),\n },\n});\n```\n\nThis handles OAC creation, HTTPS-only origin config, and the IAM policy granting CloudFront access to the endpoint (including `GetHeadObject` for MQAR support).\n\nFor more control, you can manually configure the policy and OAC:\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\n> **Graduation plan:** `MediaPackageV2Origin` currently lives in this alpha module. When MediaPackage V2 graduates to stable, it will move to `aws-cloudfront-origins` alongside `S3BucketOrigin` and other origin helpers.\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"
8991
+ "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### CDN Authorization\n\nMediaPackage V2 supports two ways to lock an origin endpoint to your CDN:\n\n- **AWS Signature Version 4 (SigV4)** — the CDN signs requests with an IAM\n role. For Amazon CloudFront, see [CloudFront Integration](#cloudfront-integration).\n See the [SigV4 authentication guide][sigv4-auth].\n- **Header-based CDN authorization** — the CDN attaches a shared secret in\n a request header that MediaPackage validates. Use this when your CDN\n doesn't support SigV4. See the [CDN authorization guide][cdn-auth].\n\n[sigv4-auth]: https://docs.aws.amazon.com/mediapackage/latest/userguide/sig-v4-authenticating-requests.html\n[cdn-auth]: https://docs.aws.amazon.com/mediapackage/latest/userguide/cdn-auth.html\n\nTo configure header-based authorization, set `cdnAuth` on the `OriginEndpoint`\nprops. The L2 auto-creates the endpoint policy with:\n\n- a `PolicyStatement` requiring the `mediapackagev2:RequestHasMatchingCdnAuthHeader`\n condition on every `GetObject` request\n- the `CdnAuthConfiguration` block that references the secrets and the read role\n\nIf you don't supply a role, one is created with the needed Secrets Manager\nand KMS permissions.\n\n```ts\nimport * as secretsmanager from 'aws-cdk-lib/aws-secretsmanager';\n\ndeclare const channel: Channel;\ndeclare const mySecret: secretsmanager.ISecret;\n\nnew OriginEndpoint(this, 'OriginEndpoint', {\n channel,\n segment: Segment.ts(),\n manifests: [Manifest.hls({ manifestName: 'index' })],\n cdnAuth: {\n secrets: [mySecret],\n },\n});\n```\n\nYou can still call `addToResourcePolicy()` to add extra statements (e.g. a\nharvester allow); they're appended to the auto-created policy alongside the\ngating statement.\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\nThe simplest way to connect CloudFront to a MediaPackage V2 endpoint is with `MediaPackageV2Origin`, which automatically creates an Origin Access Control (OAC) and wires the endpoint policy:\n\n```ts\ndeclare const endpoint: OriginEndpoint;\ndeclare const group: ChannelGroup;\n\nnew cloudfront.Distribution(this, 'Distribution', {\n defaultBehavior: {\n origin: new MediaPackageV2Origin(endpoint, {\n channelGroup: group,\n }),\n },\n});\n```\n\nThis handles OAC creation, HTTPS-only origin config, and the IAM policy granting CloudFront access to the endpoint (including `GetHeadObject` for MQAR support).\n\nFor more control, you can manually configure the policy and OAC:\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\n> **Graduation plan:** `MediaPackageV2Origin` currently lives in this alpha module. When MediaPackage V2 graduates to stable, it will move to `aws-cloudfront-origins` alongside `S3BucketOrigin` and other origin helpers.\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"
8963
8992
  },
8964
8993
  "repository": {
8965
8994
  "directory": "packages/@aws-cdk/aws-mediapackagev2-alpha",
@@ -9074,7 +9103,7 @@
9074
9103
  "kind": "enum",
9075
9104
  "locationInModule": {
9076
9105
  "filename": "lib/endpoint.ts",
9077
- "line": 24
9106
+ "line": 25
9078
9107
  },
9079
9108
  "members": [
9080
9109
  {
@@ -9127,7 +9156,7 @@
9127
9156
  },
9128
9157
  "locationInModule": {
9129
9158
  "filename": "lib/endpoint.ts",
9130
- "line": 239
9159
+ "line": 240
9131
9160
  },
9132
9161
  "parameters": [
9133
9162
  {
@@ -9163,7 +9192,7 @@
9163
9192
  "kind": "class",
9164
9193
  "locationInModule": {
9165
9194
  "filename": "lib/endpoint.ts",
9166
- "line": 224
9195
+ "line": 225
9167
9196
  },
9168
9197
  "methods": [
9169
9198
  {
@@ -9173,7 +9202,7 @@
9173
9202
  },
9174
9203
  "locationInModule": {
9175
9204
  "filename": "lib/endpoint.ts",
9176
- "line": 235
9205
+ "line": 236
9177
9206
  },
9178
9207
  "name": "range",
9179
9208
  "parameters": [
@@ -9204,7 +9233,7 @@
9204
9233
  },
9205
9234
  "locationInModule": {
9206
9235
  "filename": "lib/endpoint.ts",
9207
- "line": 228
9236
+ "line": 229
9208
9237
  },
9209
9238
  "name": "value",
9210
9239
  "parameters": [
@@ -9242,7 +9271,7 @@
9242
9271
  "kind": "enum",
9243
9272
  "locationInModule": {
9244
9273
  "filename": "lib/endpoint.ts",
9245
- "line": 168
9274
+ "line": 169
9246
9275
  },
9247
9276
  "members": [
9248
9277
  {
@@ -9272,9 +9301,9 @@
9272
9301
  "see": "https://docs.aws.amazon.com/mediapackage/latest/userguide/cdn-auth.html",
9273
9302
  "stability": "experimental",
9274
9303
  "summary": "Options for configuring CDN Authorization Configuration.",
9275
- "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as mediapackagev2_alpha from '@aws-cdk/aws-mediapackagev2-alpha';\nimport { aws_iam as iam } from 'aws-cdk-lib';\nimport { aws_secretsmanager as secretsmanager } from 'aws-cdk-lib';\n\ndeclare const role: iam.Role;\ndeclare const secret: secretsmanager.Secret;\nconst cdnAuthConfiguration: mediapackagev2_alpha.CdnAuthConfiguration = {\n secrets: [secret],\n\n // the properties below are optional\n role: role,\n};",
9304
+ "example": "import * as secretsmanager from 'aws-cdk-lib/aws-secretsmanager';\n\ndeclare const channel: Channel;\ndeclare const mySecret: secretsmanager.ISecret;\n\nnew OriginEndpoint(this, 'OriginEndpoint', {\n channel,\n segment: Segment.ts(),\n manifests: [Manifest.hls({ manifestName: 'index' })],\n cdnAuth: {\n secrets: [mySecret],\n },\n});",
9276
9305
  "custom": {
9277
- "exampleMetadata": "fixture=_generated"
9306
+ "exampleMetadata": "infused"
9278
9307
  }
9279
9308
  },
9280
9309
  "fqn": "@aws-cdk/aws-mediapackagev2-alpha.CdnAuthConfiguration",
@@ -9288,13 +9317,14 @@
9288
9317
  {
9289
9318
  "abstract": true,
9290
9319
  "docs": {
9320
+ "remarks": "Each secret must be a JSON object with a `MediaPackageV2CDNIdentifier` key whose\nvalue is the CDN-Identifier header value. See the\n{@link https://docs.aws.amazon.com/mediapackage/latest/userguide/cdn-auth-setup.html MediaPackage CDN authorization docs}.",
9291
9321
  "stability": "experimental",
9292
9322
  "summary": "Secrets to use for CDN authorization."
9293
9323
  },
9294
9324
  "immutable": true,
9295
9325
  "locationInModule": {
9296
9326
  "filename": "lib/origin-endpoint-policy.ts",
9297
- "line": 20
9327
+ "line": 24
9298
9328
  },
9299
9329
  "name": "secrets",
9300
9330
  "type": {
@@ -9317,7 +9347,7 @@
9317
9347
  "immutable": true,
9318
9348
  "locationInModule": {
9319
9349
  "filename": "lib/origin-endpoint-policy.ts",
9320
- "line": 29
9350
+ "line": 33
9321
9351
  },
9322
9352
  "name": "role",
9323
9353
  "optional": true,
@@ -11130,7 +11160,7 @@
11130
11160
  "kind": "enum",
11131
11161
  "locationInModule": {
11132
11162
  "filename": "lib/endpoint.ts",
11133
- "line": 1900
11163
+ "line": 1929
11134
11164
  },
11135
11165
  "members": [
11136
11166
  {
@@ -11181,7 +11211,7 @@
11181
11211
  "kind": "class",
11182
11212
  "locationInModule": {
11183
11213
  "filename": "lib/endpoint.ts",
11184
- "line": 2155
11214
+ "line": 2184
11185
11215
  },
11186
11216
  "methods": [
11187
11217
  {
@@ -11191,7 +11221,7 @@
11191
11221
  },
11192
11222
  "locationInModule": {
11193
11223
  "filename": "lib/endpoint.ts",
11194
- "line": 2159
11224
+ "line": 2188
11195
11225
  },
11196
11226
  "name": "speke",
11197
11227
  "parameters": [
@@ -11227,7 +11257,7 @@
11227
11257
  "kind": "enum",
11228
11258
  "locationInModule": {
11229
11259
  "filename": "lib/endpoint.ts",
11230
- "line": 791
11260
+ "line": 792
11231
11261
  },
11232
11262
  "members": [
11233
11263
  {
@@ -11329,7 +11359,7 @@
11329
11359
  "kind": "interface",
11330
11360
  "locationInModule": {
11331
11361
  "filename": "lib/endpoint.ts",
11332
- "line": 2453
11362
+ "line": 2482
11333
11363
  },
11334
11364
  "name": "CmafSegmentProps",
11335
11365
  "properties": [
@@ -11344,7 +11374,7 @@
11344
11374
  "immutable": true,
11345
11375
  "locationInModule": {
11346
11376
  "filename": "lib/endpoint.ts",
11347
- "line": 2475
11377
+ "line": 2504
11348
11378
  },
11349
11379
  "name": "encryption",
11350
11380
  "optional": true,
@@ -11362,7 +11392,7 @@
11362
11392
  "immutable": true,
11363
11393
  "locationInModule": {
11364
11394
  "filename": "lib/endpoint.ts",
11365
- "line": 2459
11395
+ "line": 2488
11366
11396
  },
11367
11397
  "name": "scteFilter",
11368
11398
  "optional": true,
@@ -11385,7 +11415,7 @@
11385
11415
  "immutable": true,
11386
11416
  "locationInModule": {
11387
11417
  "filename": "lib/endpoint.ts",
11388
- "line": 2466
11418
+ "line": 2495
11389
11419
  },
11390
11420
  "name": "scteInSegments",
11391
11421
  "optional": true,
@@ -11411,7 +11441,7 @@
11411
11441
  "kind": "interface",
11412
11442
  "locationInModule": {
11413
11443
  "filename": "lib/endpoint.ts",
11414
- "line": 2001
11444
+ "line": 2030
11415
11445
  },
11416
11446
  "name": "CmafSpekeEncryptionProps",
11417
11447
  "properties": [
@@ -11425,7 +11455,7 @@
11425
11455
  "immutable": true,
11426
11456
  "locationInModule": {
11427
11457
  "filename": "lib/endpoint.ts",
11428
- "line": 2013
11458
+ "line": 2042
11429
11459
  },
11430
11460
  "name": "drmSystems",
11431
11461
  "type": {
@@ -11446,7 +11476,7 @@
11446
11476
  "immutable": true,
11447
11477
  "locationInModule": {
11448
11478
  "filename": "lib/endpoint.ts",
11449
- "line": 2005
11479
+ "line": 2034
11450
11480
  },
11451
11481
  "name": "method",
11452
11482
  "type": {
@@ -11463,7 +11493,7 @@
11463
11493
  "immutable": true,
11464
11494
  "locationInModule": {
11465
11495
  "filename": "lib/endpoint.ts",
11466
- "line": 1958
11496
+ "line": 1987
11467
11497
  },
11468
11498
  "name": "resourceId",
11469
11499
  "type": {
@@ -11480,7 +11510,7 @@
11480
11510
  "immutable": true,
11481
11511
  "locationInModule": {
11482
11512
  "filename": "lib/endpoint.ts",
11483
- "line": 1966
11513
+ "line": 1995
11484
11514
  },
11485
11515
  "name": "role",
11486
11516
  "type": {
@@ -11496,7 +11526,7 @@
11496
11526
  "immutable": true,
11497
11527
  "locationInModule": {
11498
11528
  "filename": "lib/endpoint.ts",
11499
- "line": 1971
11529
+ "line": 2000
11500
11530
  },
11501
11531
  "name": "url",
11502
11532
  "type": {
@@ -11513,7 +11543,7 @@
11513
11543
  "immutable": true,
11514
11544
  "locationInModule": {
11515
11545
  "filename": "lib/endpoint.ts",
11516
- "line": 1988
11546
+ "line": 2017
11517
11547
  },
11518
11548
  "name": "audioPreset",
11519
11549
  "optional": true,
@@ -11532,7 +11562,7 @@
11532
11562
  "immutable": true,
11533
11563
  "locationInModule": {
11534
11564
  "filename": "lib/endpoint.ts",
11535
- "line": 1981
11565
+ "line": 2010
11536
11566
  },
11537
11567
  "name": "certificate",
11538
11568
  "optional": true,
@@ -11551,7 +11581,7 @@
11551
11581
  "immutable": true,
11552
11582
  "locationInModule": {
11553
11583
  "filename": "lib/endpoint.ts",
11554
- "line": 2023
11584
+ "line": 2052
11555
11585
  },
11556
11586
  "name": "constantInitializationVector",
11557
11587
  "optional": true,
@@ -11569,7 +11599,7 @@
11569
11599
  "immutable": true,
11570
11600
  "locationInModule": {
11571
11601
  "filename": "lib/endpoint.ts",
11572
- "line": 2037
11602
+ "line": 2066
11573
11603
  },
11574
11604
  "name": "excludeSegmentDrmMetadata",
11575
11605
  "optional": true,
@@ -11587,7 +11617,7 @@
11587
11617
  "immutable": true,
11588
11618
  "locationInModule": {
11589
11619
  "filename": "lib/endpoint.ts",
11590
- "line": 2030
11620
+ "line": 2059
11591
11621
  },
11592
11622
  "name": "keyRotationInterval",
11593
11623
  "optional": true,
@@ -11605,7 +11635,7 @@
11605
11635
  "immutable": true,
11606
11636
  "locationInModule": {
11607
11637
  "filename": "lib/endpoint.ts",
11608
- "line": 1995
11638
+ "line": 2024
11609
11639
  },
11610
11640
  "name": "videoPreset",
11611
11641
  "optional": true,
@@ -11627,7 +11657,7 @@
11627
11657
  "kind": "enum",
11628
11658
  "locationInModule": {
11629
11659
  "filename": "lib/endpoint.ts",
11630
- "line": 773
11660
+ "line": 774
11631
11661
  },
11632
11662
  "members": [
11633
11663
  {
@@ -12712,7 +12742,7 @@
12712
12742
  "kind": "class",
12713
12743
  "locationInModule": {
12714
12744
  "filename": "lib/endpoint.ts",
12715
- "line": 2118
12745
+ "line": 2147
12716
12746
  },
12717
12747
  "name": "EncryptionConfiguration",
12718
12748
  "symbolId": "lib/endpoint:EncryptionConfiguration"
@@ -12727,7 +12757,7 @@
12727
12757
  "kind": "enum",
12728
12758
  "locationInModule": {
12729
12759
  "filename": "lib/endpoint.ts",
12730
- "line": 898
12760
+ "line": 899
12731
12761
  },
12732
12762
  "members": [
12733
12763
  {
@@ -13982,7 +14012,7 @@
13982
14012
  "kind": "interface",
13983
14013
  "locationInModule": {
13984
14014
  "filename": "lib/endpoint.ts",
13985
- "line": 979
14015
+ "line": 980
13986
14016
  },
13987
14017
  "methods": [
13988
14018
  {
@@ -14006,17 +14036,6 @@
14006
14036
  "type": {
14007
14037
  "fqn": "aws-cdk-lib.aws_iam.PolicyStatement"
14008
14038
  }
14009
- },
14010
- {
14011
- "docs": {
14012
- "remarks": "Only the first CDN auth configuration is used if provided multiple times.",
14013
- "summary": "- Optional CDN authorization configuration."
14014
- },
14015
- "name": "cdnAuth",
14016
- "optional": true,
14017
- "type": {
14018
- "fqn": "@aws-cdk/aws-mediapackagev2-alpha.CdnAuthConfiguration"
14019
- }
14020
14039
  }
14021
14040
  ],
14022
14041
  "returns": {
@@ -14240,7 +14259,7 @@
14240
14259
  "immutable": true,
14241
14260
  "locationInModule": {
14242
14261
  "filename": "lib/endpoint.ts",
14243
- "line": 985
14262
+ "line": 986
14244
14263
  },
14245
14264
  "name": "channelGroupName",
14246
14265
  "type": {
@@ -14259,7 +14278,7 @@
14259
14278
  "immutable": true,
14260
14279
  "locationInModule": {
14261
14280
  "filename": "lib/endpoint.ts",
14262
- "line": 992
14281
+ "line": 993
14263
14282
  },
14264
14283
  "name": "channelName",
14265
14284
  "type": {
@@ -14278,7 +14297,7 @@
14278
14297
  "immutable": true,
14279
14298
  "locationInModule": {
14280
14299
  "filename": "lib/endpoint.ts",
14281
- "line": 1006
14300
+ "line": 1007
14282
14301
  },
14283
14302
  "name": "originEndpointArn",
14284
14303
  "type": {
@@ -14297,7 +14316,7 @@
14297
14316
  "immutable": true,
14298
14317
  "locationInModule": {
14299
14318
  "filename": "lib/endpoint.ts",
14300
- "line": 999
14319
+ "line": 1000
14301
14320
  },
14302
14321
  "name": "originEndpointName",
14303
14322
  "type": {
@@ -14316,7 +14335,7 @@
14316
14335
  "immutable": true,
14317
14336
  "locationInModule": {
14318
14337
  "filename": "lib/endpoint.ts",
14319
- "line": 1013
14338
+ "line": 1014
14320
14339
  },
14321
14340
  "name": "createdAt",
14322
14341
  "optional": true,
@@ -14336,7 +14355,7 @@
14336
14355
  "immutable": true,
14337
14356
  "locationInModule": {
14338
14357
  "filename": "lib/endpoint.ts",
14339
- "line": 1041
14358
+ "line": 1042
14340
14359
  },
14341
14360
  "name": "dashManifestUrls",
14342
14361
  "optional": true,
@@ -14361,7 +14380,7 @@
14361
14380
  "immutable": true,
14362
14381
  "locationInModule": {
14363
14382
  "filename": "lib/endpoint.ts",
14364
- "line": 1027
14383
+ "line": 1028
14365
14384
  },
14366
14385
  "name": "hlsManifestUrls",
14367
14386
  "optional": true,
@@ -14386,7 +14405,7 @@
14386
14405
  "immutable": true,
14387
14406
  "locationInModule": {
14388
14407
  "filename": "lib/endpoint.ts",
14389
- "line": 1034
14408
+ "line": 1035
14390
14409
  },
14391
14410
  "name": "lowLatencyHlsManifestUrls",
14392
14411
  "optional": true,
@@ -14411,7 +14430,7 @@
14411
14430
  "immutable": true,
14412
14431
  "locationInModule": {
14413
14432
  "filename": "lib/endpoint.ts",
14414
- "line": 1020
14433
+ "line": 1021
14415
14434
  },
14416
14435
  "name": "modifiedAt",
14417
14436
  "optional": true,
@@ -14431,7 +14450,7 @@
14431
14450
  "immutable": true,
14432
14451
  "locationInModule": {
14433
14452
  "filename": "lib/endpoint.ts",
14434
- "line": 1048
14453
+ "line": 1049
14435
14454
  },
14436
14455
  "name": "mssManifestUrls",
14437
14456
  "optional": true,
@@ -14702,7 +14721,7 @@
14702
14721
  "kind": "enum",
14703
14722
  "locationInModule": {
14704
14723
  "filename": "lib/endpoint.ts",
14705
- "line": 1940
14724
+ "line": 1969
14706
14725
  },
14707
14726
  "members": [
14708
14727
  {
@@ -14732,7 +14751,7 @@
14732
14751
  "kind": "class",
14733
14752
  "locationInModule": {
14734
14753
  "filename": "lib/endpoint.ts",
14735
- "line": 2279
14754
+ "line": 2308
14736
14755
  },
14737
14756
  "methods": [
14738
14757
  {
@@ -14742,7 +14761,7 @@
14742
14761
  },
14743
14762
  "locationInModule": {
14744
14763
  "filename": "lib/endpoint.ts",
14745
- "line": 2283
14764
+ "line": 2312
14746
14765
  },
14747
14766
  "name": "speke",
14748
14767
  "parameters": [
@@ -14782,7 +14801,7 @@
14782
14801
  "kind": "interface",
14783
14802
  "locationInModule": {
14784
14803
  "filename": "lib/endpoint.ts",
14785
- "line": 2481
14804
+ "line": 2510
14786
14805
  },
14787
14806
  "name": "IsmSegmentProps",
14788
14807
  "properties": [
@@ -14797,7 +14816,7 @@
14797
14816
  "immutable": true,
14798
14817
  "locationInModule": {
14799
14818
  "filename": "lib/endpoint.ts",
14800
- "line": 2489
14819
+ "line": 2518
14801
14820
  },
14802
14821
  "name": "encryption",
14803
14822
  "optional": true,
@@ -14824,7 +14843,7 @@
14824
14843
  "kind": "interface",
14825
14844
  "locationInModule": {
14826
14845
  "filename": "lib/endpoint.ts",
14827
- "line": 2081
14846
+ "line": 2110
14828
14847
  },
14829
14848
  "name": "IsmSpekeEncryptionProps",
14830
14849
  "properties": [
@@ -14837,7 +14856,7 @@
14837
14856
  "immutable": true,
14838
14857
  "locationInModule": {
14839
14858
  "filename": "lib/endpoint.ts",
14840
- "line": 2092
14859
+ "line": 2121
14841
14860
  },
14842
14861
  "name": "resourceId",
14843
14862
  "type": {
@@ -14853,7 +14872,7 @@
14853
14872
  "immutable": true,
14854
14873
  "locationInModule": {
14855
14874
  "filename": "lib/endpoint.ts",
14856
- "line": 2097
14875
+ "line": 2126
14857
14876
  },
14858
14877
  "name": "role",
14859
14878
  "type": {
@@ -14869,7 +14888,7 @@
14869
14888
  "immutable": true,
14870
14889
  "locationInModule": {
14871
14890
  "filename": "lib/endpoint.ts",
14872
- "line": 2102
14891
+ "line": 2131
14873
14892
  },
14874
14893
  "name": "url",
14875
14894
  "type": {
@@ -14886,7 +14905,7 @@
14886
14905
  "immutable": true,
14887
14906
  "locationInModule": {
14888
14907
  "filename": "lib/endpoint.ts",
14889
- "line": 2110
14908
+ "line": 2139
14890
14909
  },
14891
14910
  "name": "certificate",
14892
14911
  "optional": true,
@@ -14904,7 +14923,7 @@
14904
14923
  "immutable": true,
14905
14924
  "locationInModule": {
14906
14925
  "filename": "lib/endpoint.ts",
14907
- "line": 2087
14926
+ "line": 2116
14908
14927
  },
14909
14928
  "name": "drmSystems",
14910
14929
  "optional": true,
@@ -15111,7 +15130,7 @@
15111
15130
  "kind": "class",
15112
15131
  "locationInModule": {
15113
15132
  "filename": "lib/endpoint.ts",
15114
- "line": 427
15133
+ "line": 428
15115
15134
  },
15116
15135
  "methods": [
15117
15136
  {
@@ -15122,7 +15141,7 @@
15122
15141
  },
15123
15142
  "locationInModule": {
15124
15143
  "filename": "lib/endpoint.ts",
15125
- "line": 454
15144
+ "line": 455
15126
15145
  },
15127
15146
  "name": "dash",
15128
15147
  "parameters": [
@@ -15148,7 +15167,7 @@
15148
15167
  },
15149
15168
  "locationInModule": {
15150
15169
  "filename": "lib/endpoint.ts",
15151
- "line": 444
15170
+ "line": 445
15152
15171
  },
15153
15172
  "name": "hls",
15154
15173
  "parameters": [
@@ -15174,7 +15193,7 @@
15174
15193
  },
15175
15194
  "locationInModule": {
15176
15195
  "filename": "lib/endpoint.ts",
15177
- "line": 434
15196
+ "line": 435
15178
15197
  },
15179
15198
  "name": "lowLatencyHLS",
15180
15199
  "parameters": [
@@ -15200,7 +15219,7 @@
15200
15219
  },
15201
15220
  "locationInModule": {
15202
15221
  "filename": "lib/endpoint.ts",
15203
- "line": 464
15222
+ "line": 465
15204
15223
  },
15205
15224
  "name": "mss",
15206
15225
  "parameters": [
@@ -15240,7 +15259,7 @@
15240
15259
  },
15241
15260
  "locationInModule": {
15242
15261
  "filename": "lib/endpoint.ts",
15243
- "line": 409
15262
+ "line": 410
15244
15263
  },
15245
15264
  "parameters": [
15246
15265
  {
@@ -15258,7 +15277,7 @@
15258
15277
  "kind": "class",
15259
15278
  "locationInModule": {
15260
15279
  "filename": "lib/endpoint.ts",
15261
- "line": 252
15280
+ "line": 253
15262
15281
  },
15263
15282
  "methods": [
15264
15283
  {
@@ -15268,7 +15287,7 @@
15268
15287
  },
15269
15288
  "locationInModule": {
15270
15289
  "filename": "lib/endpoint.ts",
15271
- "line": 315
15290
+ "line": 316
15272
15291
  },
15273
15292
  "name": "audioCodec",
15274
15293
  "parameters": [
@@ -15293,7 +15312,7 @@
15293
15312
  },
15294
15313
  "locationInModule": {
15295
15314
  "filename": "lib/endpoint.ts",
15296
- "line": 322
15315
+ "line": 323
15297
15316
  },
15298
15317
  "name": "audioCodecList",
15299
15318
  "parameters": [
@@ -15323,7 +15342,7 @@
15323
15342
  },
15324
15343
  "locationInModule": {
15325
15344
  "filename": "lib/endpoint.ts",
15326
- "line": 256
15345
+ "line": 257
15327
15346
  },
15328
15347
  "name": "bitrate",
15329
15348
  "parameters": [
@@ -15355,7 +15374,7 @@
15355
15374
  },
15356
15375
  "locationInModule": {
15357
15376
  "filename": "lib/endpoint.ts",
15358
- "line": 394
15377
+ "line": 395
15359
15378
  },
15360
15379
  "name": "bitrateCombo",
15361
15380
  "parameters": [
@@ -15391,7 +15410,7 @@
15391
15410
  },
15392
15411
  "locationInModule": {
15393
15412
  "filename": "lib/endpoint.ts",
15394
- "line": 265
15413
+ "line": 266
15395
15414
  },
15396
15415
  "name": "bitrateRange",
15397
15416
  "parameters": [
@@ -15428,7 +15447,7 @@
15428
15447
  },
15429
15448
  "locationInModule": {
15430
15449
  "filename": "lib/endpoint.ts",
15431
- "line": 402
15450
+ "line": 403
15432
15451
  },
15433
15452
  "name": "custom",
15434
15453
  "parameters": [
@@ -15453,7 +15472,7 @@
15453
15472
  },
15454
15473
  "locationInModule": {
15455
15474
  "filename": "lib/endpoint.ts",
15456
- "line": 276
15475
+ "line": 277
15457
15476
  },
15458
15477
  "name": "numeric",
15459
15478
  "parameters": [
@@ -15486,7 +15505,7 @@
15486
15505
  },
15487
15506
  "locationInModule": {
15488
15507
  "filename": "lib/endpoint.ts",
15489
- "line": 380
15508
+ "line": 381
15490
15509
  },
15491
15510
  "name": "numericCombo",
15492
15511
  "parameters": [
@@ -15522,7 +15541,7 @@
15522
15541
  },
15523
15542
  "locationInModule": {
15524
15543
  "filename": "lib/endpoint.ts",
15525
- "line": 284
15544
+ "line": 285
15526
15545
  },
15527
15546
  "name": "numericList",
15528
15547
  "parameters": [
@@ -15558,7 +15577,7 @@
15558
15577
  },
15559
15578
  "locationInModule": {
15560
15579
  "filename": "lib/endpoint.ts",
15561
- "line": 292
15580
+ "line": 293
15562
15581
  },
15563
15582
  "name": "numericRange",
15564
15583
  "parameters": [
@@ -15595,7 +15614,7 @@
15595
15614
  },
15596
15615
  "locationInModule": {
15597
15616
  "filename": "lib/endpoint.ts",
15598
- "line": 301
15617
+ "line": 302
15599
15618
  },
15600
15619
  "name": "text",
15601
15620
  "parameters": [
@@ -15626,7 +15645,7 @@
15626
15645
  },
15627
15646
  "locationInModule": {
15628
15647
  "filename": "lib/endpoint.ts",
15629
- "line": 308
15648
+ "line": 309
15630
15649
  },
15631
15650
  "name": "textList",
15632
15651
  "parameters": [
@@ -15662,7 +15681,7 @@
15662
15681
  },
15663
15682
  "locationInModule": {
15664
15683
  "filename": "lib/endpoint.ts",
15665
- "line": 357
15684
+ "line": 358
15666
15685
  },
15667
15686
  "name": "trickplayType",
15668
15687
  "parameters": [
@@ -15687,7 +15706,7 @@
15687
15706
  },
15688
15707
  "locationInModule": {
15689
15708
  "filename": "lib/endpoint.ts",
15690
- "line": 364
15709
+ "line": 365
15691
15710
  },
15692
15711
  "name": "trickplayTypeList",
15693
15712
  "parameters": [
@@ -15717,7 +15736,7 @@
15717
15736
  },
15718
15737
  "locationInModule": {
15719
15738
  "filename": "lib/endpoint.ts",
15720
- "line": 329
15739
+ "line": 330
15721
15740
  },
15722
15741
  "name": "videoCodec",
15723
15742
  "parameters": [
@@ -15742,7 +15761,7 @@
15742
15761
  },
15743
15762
  "locationInModule": {
15744
15763
  "filename": "lib/endpoint.ts",
15745
- "line": 336
15764
+ "line": 337
15746
15765
  },
15747
15766
  "name": "videoCodecList",
15748
15767
  "parameters": [
@@ -15772,7 +15791,7 @@
15772
15791
  },
15773
15792
  "locationInModule": {
15774
15793
  "filename": "lib/endpoint.ts",
15775
- "line": 343
15794
+ "line": 344
15776
15795
  },
15777
15796
  "name": "videoDynamicRange",
15778
15797
  "parameters": [
@@ -15797,7 +15816,7 @@
15797
15816
  },
15798
15817
  "locationInModule": {
15799
15818
  "filename": "lib/endpoint.ts",
15800
- "line": 350
15819
+ "line": 351
15801
15820
  },
15802
15821
  "name": "videoDynamicRangeList",
15803
15822
  "parameters": [
@@ -15831,7 +15850,7 @@
15831
15850
  "immutable": true,
15832
15851
  "locationInModule": {
15833
15852
  "filename": "lib/endpoint.ts",
15834
- "line": 409
15853
+ "line": 410
15835
15854
  },
15836
15855
  "name": "filterString",
15837
15856
  "type": {
@@ -15858,7 +15877,7 @@
15858
15877
  },
15859
15878
  "locationInModule": {
15860
15879
  "filename": "lib/cloudfront-origin.ts",
15861
- "line": 71
15880
+ "line": 58
15862
15881
  },
15863
15882
  "parameters": [
15864
15883
  {
@@ -15878,7 +15897,7 @@
15878
15897
  "kind": "class",
15879
15898
  "locationInModule": {
15880
15899
  "filename": "lib/cloudfront-origin.ts",
15881
- "line": 66
15900
+ "line": 54
15882
15901
  },
15883
15902
  "methods": [
15884
15903
  {
@@ -15889,7 +15908,7 @@
15889
15908
  },
15890
15909
  "locationInModule": {
15891
15910
  "filename": "lib/cloudfront-origin.ts",
15892
- "line": 91
15911
+ "line": 77
15893
15912
  },
15894
15913
  "name": "bind",
15895
15914
  "overrides": "aws-cdk-lib.aws_cloudfront.OriginBase",
@@ -15919,7 +15938,7 @@
15919
15938
  },
15920
15939
  "locationInModule": {
15921
15940
  "filename": "lib/cloudfront-origin.ts",
15922
- "line": 84
15941
+ "line": 70
15923
15942
  },
15924
15943
  "name": "renderCustomOriginConfig",
15925
15944
  "overrides": "aws-cdk-lib.aws_cloudfront.OriginBase",
@@ -15953,7 +15972,7 @@
15953
15972
  "kind": "interface",
15954
15973
  "locationInModule": {
15955
15974
  "filename": "lib/cloudfront-origin.ts",
15956
- "line": 14
15975
+ "line": 13
15957
15976
  },
15958
15977
  "name": "MediaPackageV2OriginProps",
15959
15978
  "properties": [
@@ -15967,32 +15986,13 @@
15967
15986
  "immutable": true,
15968
15987
  "locationInModule": {
15969
15988
  "filename": "lib/cloudfront-origin.ts",
15970
- "line": 20
15989
+ "line": 19
15971
15990
  },
15972
15991
  "name": "channelGroup",
15973
15992
  "type": {
15974
15993
  "fqn": "@aws-cdk/aws-mediapackagev2-alpha.IChannelGroup"
15975
15994
  }
15976
15995
  },
15977
- {
15978
- "abstract": true,
15979
- "docs": {
15980
- "default": "- no CDN authorization",
15981
- "remarks": "If you need CDN auth on this endpoint, provide it here so it is configured\non the first `addToResourcePolicy` call. If CDN auth is added separately\nafter this origin is bound, it will be ignored.",
15982
- "stability": "experimental",
15983
- "summary": "Optional CDN authorization configuration."
15984
- },
15985
- "immutable": true,
15986
- "locationInModule": {
15987
- "filename": "lib/cloudfront-origin.ts",
15988
- "line": 38
15989
- },
15990
- "name": "cdnAuth",
15991
- "optional": true,
15992
- "type": {
15993
- "fqn": "@aws-cdk/aws-mediapackagev2-alpha.CdnAuthConfiguration"
15994
- }
15995
- },
15996
15996
  {
15997
15997
  "abstract": true,
15998
15998
  "docs": {
@@ -16003,7 +16003,7 @@
16003
16003
  "immutable": true,
16004
16004
  "locationInModule": {
16005
16005
  "filename": "lib/cloudfront-origin.ts",
16006
- "line": 27
16006
+ "line": 26
16007
16007
  },
16008
16008
  "name": "originAccessControl",
16009
16009
  "optional": true,
@@ -16160,7 +16160,7 @@
16160
16160
  },
16161
16161
  "locationInModule": {
16162
16162
  "filename": "lib/endpoint.ts",
16163
- "line": 210
16163
+ "line": 211
16164
16164
  },
16165
16165
  "parameters": [
16166
16166
  {
@@ -16196,7 +16196,7 @@
16196
16196
  "kind": "class",
16197
16197
  "locationInModule": {
16198
16198
  "filename": "lib/endpoint.ts",
16199
- "line": 195
16199
+ "line": 196
16200
16200
  },
16201
16201
  "methods": [
16202
16202
  {
@@ -16206,7 +16206,7 @@
16206
16206
  },
16207
16207
  "locationInModule": {
16208
16208
  "filename": "lib/endpoint.ts",
16209
- "line": 206
16209
+ "line": 207
16210
16210
  },
16211
16211
  "name": "range",
16212
16212
  "parameters": [
@@ -16237,7 +16237,7 @@
16237
16237
  },
16238
16238
  "locationInModule": {
16239
16239
  "filename": "lib/endpoint.ts",
16240
- "line": 199
16240
+ "line": 200
16241
16241
  },
16242
16242
  "name": "value",
16243
16243
  "parameters": [
@@ -16275,7 +16275,7 @@
16275
16275
  "kind": "enum",
16276
16276
  "locationInModule": {
16277
16277
  "filename": "lib/endpoint.ts",
16278
- "line": 89
16278
+ "line": 90
16279
16279
  },
16280
16280
  "members": [
16281
16281
  {
@@ -16340,7 +16340,7 @@
16340
16340
  },
16341
16341
  "locationInModule": {
16342
16342
  "filename": "lib/endpoint.ts",
16343
- "line": 2886
16343
+ "line": 2900
16344
16344
  },
16345
16345
  "parameters": [
16346
16346
  {
@@ -16369,7 +16369,7 @@
16369
16369
  "kind": "class",
16370
16370
  "locationInModule": {
16371
16371
  "filename": "lib/endpoint.ts",
16372
- "line": 2834
16372
+ "line": 2848
16373
16373
  },
16374
16374
  "methods": [
16375
16375
  {
@@ -16380,7 +16380,7 @@
16380
16380
  },
16381
16381
  "locationInModule": {
16382
16382
  "filename": "lib/endpoint.ts",
16383
- "line": 2555
16383
+ "line": 2584
16384
16384
  },
16385
16385
  "name": "fromOriginEndpointArn",
16386
16386
  "parameters": [
@@ -16417,7 +16417,7 @@
16417
16417
  },
16418
16418
  "locationInModule": {
16419
16419
  "filename": "lib/endpoint.ts",
16420
- "line": 2584
16420
+ "line": 2613
16421
16421
  },
16422
16422
  "name": "fromOriginEndpointAttributes",
16423
16423
  "parameters": [
@@ -16449,13 +16449,13 @@
16449
16449
  },
16450
16450
  {
16451
16451
  "docs": {
16452
- "remarks": "You can only add 1 OriginEndpointPolicy to an OriginEndpoint.\nIf you have already defined one, it will append to the policy already created.",
16452
+ "remarks": "You can only add 1 OriginEndpointPolicy to an OriginEndpoint. If you have already\ndefined one, this will append to the policy already created.\n\nTo configure CDN authentication, set `cdnAuth` on the construct's props instead.",
16453
16453
  "stability": "experimental",
16454
16454
  "summary": "Configure origin endpoint policy."
16455
16455
  },
16456
16456
  "locationInModule": {
16457
16457
  "filename": "lib/endpoint.ts",
16458
- "line": 2680
16458
+ "line": 2699
16459
16459
  },
16460
16460
  "name": "addToResourcePolicy",
16461
16461
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16468,17 +16468,6 @@
16468
16468
  "type": {
16469
16469
  "fqn": "aws-cdk-lib.aws_iam.PolicyStatement"
16470
16470
  }
16471
- },
16472
- {
16473
- "docs": {
16474
- "remarks": "If provided, the policy will be\n created with CDN authentication enabled using secrets from AWS Secrets Manager.\n If cdnAuth is provided multiple times, only the first configuration is used.",
16475
- "summary": "- Optional CDN authorization configuration."
16476
- },
16477
- "name": "cdnAuth",
16478
- "optional": true,
16479
- "type": {
16480
- "fqn": "@aws-cdk/aws-mediapackagev2-alpha.CdnAuthConfiguration"
16481
- }
16482
16471
  }
16483
16472
  ],
16484
16473
  "returns": {
@@ -16494,7 +16483,7 @@
16494
16483
  },
16495
16484
  "locationInModule": {
16496
16485
  "filename": "lib/endpoint.ts",
16497
- "line": 2733
16486
+ "line": 2747
16498
16487
  },
16499
16488
  "name": "metric",
16500
16489
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16533,7 +16522,7 @@
16533
16522
  },
16534
16523
  "locationInModule": {
16535
16524
  "filename": "lib/endpoint.ts",
16536
- "line": 2765
16525
+ "line": 2779
16537
16526
  },
16538
16527
  "name": "metricEgressBytes",
16539
16528
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16560,7 +16549,7 @@
16560
16549
  },
16561
16550
  "locationInModule": {
16562
16551
  "filename": "lib/endpoint.ts",
16563
- "line": 2807
16552
+ "line": 2821
16564
16553
  },
16565
16554
  "name": "metricEgressRequestCount",
16566
16555
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16587,7 +16576,7 @@
16587
16576
  },
16588
16577
  "locationInModule": {
16589
16578
  "filename": "lib/endpoint.ts",
16590
- "line": 2793
16579
+ "line": 2807
16591
16580
  },
16592
16581
  "name": "metricEgressResponseTime",
16593
16582
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16614,7 +16603,7 @@
16614
16603
  },
16615
16604
  "locationInModule": {
16616
16605
  "filename": "lib/endpoint.ts",
16617
- "line": 2751
16606
+ "line": 2765
16618
16607
  },
16619
16608
  "name": "metricIngressBytes",
16620
16609
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16641,7 +16630,7 @@
16641
16630
  },
16642
16631
  "locationInModule": {
16643
16632
  "filename": "lib/endpoint.ts",
16644
- "line": 2821
16633
+ "line": 2835
16645
16634
  },
16646
16635
  "name": "metricIngressRequestCount",
16647
16636
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16668,7 +16657,7 @@
16668
16657
  },
16669
16658
  "locationInModule": {
16670
16659
  "filename": "lib/endpoint.ts",
16671
- "line": 2779
16660
+ "line": 2793
16672
16661
  },
16673
16662
  "name": "metricIngressResponseTime",
16674
16663
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16694,7 +16683,7 @@
16694
16683
  },
16695
16684
  "locationInModule": {
16696
16685
  "filename": "lib/endpoint.ts",
16697
- "line": 2704
16686
+ "line": 2718
16698
16687
  },
16699
16688
  "name": "segmentValidation",
16700
16689
  "parameters": [
@@ -16732,7 +16721,7 @@
16732
16721
  "immutable": true,
16733
16722
  "locationInModule": {
16734
16723
  "filename": "lib/endpoint.ts",
16735
- "line": 2837
16724
+ "line": 2851
16736
16725
  },
16737
16726
  "name": "PROPERTY_INJECTION_ID",
16738
16727
  "static": true,
@@ -16748,7 +16737,7 @@
16748
16737
  "immutable": true,
16749
16738
  "locationInModule": {
16750
16739
  "filename": "lib/endpoint.ts",
16751
- "line": 2839
16740
+ "line": 2853
16752
16741
  },
16753
16742
  "name": "channelGroupName",
16754
16743
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16764,7 +16753,7 @@
16764
16753
  "immutable": true,
16765
16754
  "locationInModule": {
16766
16755
  "filename": "lib/endpoint.ts",
16767
- "line": 2840
16756
+ "line": 2854
16768
16757
  },
16769
16758
  "name": "channelName",
16770
16759
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16780,7 +16769,7 @@
16780
16769
  "immutable": true,
16781
16770
  "locationInModule": {
16782
16771
  "filename": "lib/endpoint.ts",
16783
- "line": 2842
16772
+ "line": 2856
16784
16773
  },
16785
16774
  "name": "originEndpointArn",
16786
16775
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16796,7 +16785,7 @@
16796
16785
  "immutable": true,
16797
16786
  "locationInModule": {
16798
16787
  "filename": "lib/endpoint.ts",
16799
- "line": 2841
16788
+ "line": 2855
16800
16789
  },
16801
16790
  "name": "originEndpointName",
16802
16791
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16813,7 +16802,7 @@
16813
16802
  "immutable": true,
16814
16803
  "locationInModule": {
16815
16804
  "filename": "lib/endpoint.ts",
16816
- "line": 2629
16805
+ "line": 2658
16817
16806
  },
16818
16807
  "name": "originEndpointRef",
16819
16808
  "overrides": "aws-cdk-lib.interfaces.aws_mediapackagev2.IOriginEndpointRef",
@@ -16829,7 +16818,7 @@
16829
16818
  "immutable": true,
16830
16819
  "locationInModule": {
16831
16820
  "filename": "lib/endpoint.ts",
16832
- "line": 2847
16821
+ "line": 2861
16833
16822
  },
16834
16823
  "name": "createdAt",
16835
16824
  "optional": true,
@@ -16846,7 +16835,7 @@
16846
16835
  "immutable": true,
16847
16836
  "locationInModule": {
16848
16837
  "filename": "lib/endpoint.ts",
16849
- "line": 2867
16838
+ "line": 2881
16850
16839
  },
16851
16840
  "name": "dashManifestUrls",
16852
16841
  "optional": true,
@@ -16868,7 +16857,7 @@
16868
16857
  "immutable": true,
16869
16858
  "locationInModule": {
16870
16859
  "filename": "lib/endpoint.ts",
16871
- "line": 2862
16860
+ "line": 2876
16872
16861
  },
16873
16862
  "name": "hlsManifestUrls",
16874
16863
  "optional": true,
@@ -16890,7 +16879,7 @@
16890
16879
  "immutable": true,
16891
16880
  "locationInModule": {
16892
16881
  "filename": "lib/endpoint.ts",
16893
- "line": 2857
16882
+ "line": 2871
16894
16883
  },
16895
16884
  "name": "lowLatencyHlsManifestUrls",
16896
16885
  "optional": true,
@@ -16912,7 +16901,7 @@
16912
16901
  "immutable": true,
16913
16902
  "locationInModule": {
16914
16903
  "filename": "lib/endpoint.ts",
16915
- "line": 2852
16904
+ "line": 2866
16916
16905
  },
16917
16906
  "name": "modifiedAt",
16918
16907
  "optional": true,
@@ -16929,7 +16918,7 @@
16929
16918
  "immutable": true,
16930
16919
  "locationInModule": {
16931
16920
  "filename": "lib/endpoint.ts",
16932
- "line": 2871
16921
+ "line": 2885
16933
16922
  },
16934
16923
  "name": "mssManifestUrls",
16935
16924
  "optional": true,
@@ -16950,7 +16939,7 @@
16950
16939
  },
16951
16940
  "locationInModule": {
16952
16941
  "filename": "lib/endpoint.ts",
16953
- "line": 2879
16942
+ "line": 2893
16954
16943
  },
16955
16944
  "name": "autoCreatePolicy",
16956
16945
  "protected": true,
@@ -16964,7 +16953,7 @@
16964
16953
  },
16965
16954
  "locationInModule": {
16966
16955
  "filename": "lib/endpoint.ts",
16967
- "line": 2882
16956
+ "line": 2896
16968
16957
  },
16969
16958
  "name": "dashManifests",
16970
16959
  "protected": true,
@@ -16983,7 +16972,7 @@
16983
16972
  },
16984
16973
  "locationInModule": {
16985
16974
  "filename": "lib/endpoint.ts",
16986
- "line": 2880
16975
+ "line": 2894
16987
16976
  },
16988
16977
  "name": "hlsManifests",
16989
16978
  "protected": true,
@@ -17002,7 +16991,7 @@
17002
16991
  },
17003
16992
  "locationInModule": {
17004
16993
  "filename": "lib/endpoint.ts",
17005
- "line": 2881
16994
+ "line": 2895
17006
16995
  },
17007
16996
  "name": "llHlsManifests",
17008
16997
  "protected": true,
@@ -17021,7 +17010,7 @@
17021
17010
  },
17022
17011
  "locationInModule": {
17023
17012
  "filename": "lib/endpoint.ts",
17024
- "line": 2883
17013
+ "line": 2897
17025
17014
  },
17026
17015
  "name": "mssManifests",
17027
17016
  "protected": true,
@@ -17034,6 +17023,23 @@
17034
17023
  }
17035
17024
  }
17036
17025
  },
17026
+ {
17027
+ "docs": {
17028
+ "remarks": "Set by subclass constructors when `cdnAuth` is provided in props.",
17029
+ "stability": "experimental",
17030
+ "summary": "CDN authorization configuration to be applied when the policy is created."
17031
+ },
17032
+ "locationInModule": {
17033
+ "filename": "lib/endpoint.ts",
17034
+ "line": 2687
17035
+ },
17036
+ "name": "cdnAuthConfig",
17037
+ "optional": true,
17038
+ "protected": true,
17039
+ "type": {
17040
+ "fqn": "@aws-cdk/aws-mediapackagev2-alpha.CdnAuthConfiguration"
17041
+ }
17042
+ },
17037
17043
  {
17038
17044
  "docs": {
17039
17045
  "remarks": "If `autoCreatePolicy` is true, an `OriginEndpointPolicy` will be created upon the\nfirst call to addToResourcePolicy(s).",
@@ -17042,7 +17048,7 @@
17042
17048
  },
17043
17049
  "locationInModule": {
17044
17050
  "filename": "lib/endpoint.ts",
17045
- "line": 2878
17051
+ "line": 2892
17046
17052
  },
17047
17053
  "name": "policy",
17048
17054
  "optional": true,
@@ -17056,7 +17062,7 @@
17056
17062
  },
17057
17063
  "locationInModule": {
17058
17064
  "filename": "lib/endpoint.ts",
17059
- "line": 2884
17065
+ "line": 2898
17060
17066
  },
17061
17067
  "name": "segment",
17062
17068
  "optional": true,
@@ -17083,7 +17089,7 @@
17083
17089
  "kind": "interface",
17084
17090
  "locationInModule": {
17085
17091
  "filename": "lib/endpoint.ts",
17086
- "line": 1862
17092
+ "line": 1891
17087
17093
  },
17088
17094
  "name": "OriginEndpointAttributes",
17089
17095
  "properties": [
@@ -17100,7 +17106,7 @@
17100
17106
  "immutable": true,
17101
17107
  "locationInModule": {
17102
17108
  "filename": "lib/endpoint.ts",
17103
- "line": 1868
17109
+ "line": 1897
17104
17110
  },
17105
17111
  "name": "channelGroupName",
17106
17112
  "type": {
@@ -17120,7 +17126,7 @@
17120
17126
  "immutable": true,
17121
17127
  "locationInModule": {
17122
17128
  "filename": "lib/endpoint.ts",
17123
- "line": 1875
17129
+ "line": 1904
17124
17130
  },
17125
17131
  "name": "channelName",
17126
17132
  "type": {
@@ -17139,7 +17145,7 @@
17139
17145
  "immutable": true,
17140
17146
  "locationInModule": {
17141
17147
  "filename": "lib/endpoint.ts",
17142
- "line": 1882
17148
+ "line": 1911
17143
17149
  },
17144
17150
  "name": "originEndpointName",
17145
17151
  "type": {
@@ -17157,7 +17163,7 @@
17157
17163
  "immutable": true,
17158
17164
  "locationInModule": {
17159
17165
  "filename": "lib/endpoint.ts",
17160
- "line": 1891
17166
+ "line": 1920
17161
17167
  },
17162
17168
  "name": "region",
17163
17169
  "optional": true,
@@ -17229,13 +17235,15 @@
17229
17235
  "abstract": true,
17230
17236
  "docs": {
17231
17237
  "default": "undefined - Not configured on endpoint",
17238
+ "remarks": "Use this when your CDN doesn't support AWS Signature Version 4 (SigV4)\nauthentication. For SigV4-based access with Amazon CloudFront, see\n`MediaPackageV2Origin`.\n\nSetting `cdnAuth` auto-creates the following policy on the OriginEndpoint:\n\n```json\n{\n \"Version\":\"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"AllowGetObjectAccessForAuthorizedRequest\",\n \"Effect\": \"Allow\",\n \"Principal\": \"*\",\n \"Action\": \"mediapackagev2:GetObject\",\n \"Resource\": \"arn:aws:mediapackagev2:us-east-1:111122223333:channelGroup/channelGroupName/channel/channelName/originEndpoint/originEndpointName\",\n \"Condition\": {\n \"Bool\": {\n \"mediapackagev2:RequestHasMatchingCdnAuthHeader\": \"true\"\n }\n }\n }\n ]\n}\n```",
17239
+ "see": "https://docs.aws.amazon.com/mediapackage/latest/userguide/cdn-auth-setup.html",
17232
17240
  "stability": "experimental",
17233
17241
  "summary": "Provide access to MediaPackage V2 Origin Endpoint via secret header."
17234
17242
  },
17235
17243
  "immutable": true,
17236
17244
  "locationInModule": {
17237
17245
  "filename": "lib/endpoint.ts",
17238
- "line": 1834
17246
+ "line": 1863
17239
17247
  },
17240
17248
  "name": "cdnAuth",
17241
17249
  "optional": true,
@@ -17313,7 +17321,7 @@
17313
17321
  "immutable": true,
17314
17322
  "locationInModule": {
17315
17323
  "filename": "lib/endpoint.ts",
17316
- "line": 1846
17324
+ "line": 1875
17317
17325
  },
17318
17326
  "name": "removalPolicy",
17319
17327
  "optional": true,
@@ -17385,7 +17393,7 @@
17385
17393
  },
17386
17394
  "locationInModule": {
17387
17395
  "filename": "lib/origin-endpoint-policy.ts",
17388
- "line": 87
17396
+ "line": 91
17389
17397
  },
17390
17398
  "parameters": [
17391
17399
  {
@@ -17411,7 +17419,7 @@
17411
17419
  "kind": "class",
17412
17420
  "locationInModule": {
17413
17421
  "filename": "lib/origin-endpoint-policy.ts",
17414
- "line": 77
17422
+ "line": 81
17415
17423
  },
17416
17424
  "name": "OriginEndpointPolicy",
17417
17425
  "properties": [
@@ -17424,7 +17432,7 @@
17424
17432
  "immutable": true,
17425
17433
  "locationInModule": {
17426
17434
  "filename": "lib/origin-endpoint-policy.ts",
17427
- "line": 80
17435
+ "line": 84
17428
17436
  },
17429
17437
  "name": "PROPERTY_INJECTION_ID",
17430
17438
  "static": true,
@@ -17440,7 +17448,7 @@
17440
17448
  "immutable": true,
17441
17449
  "locationInModule": {
17442
17450
  "filename": "lib/origin-endpoint-policy.ts",
17443
- "line": 85
17451
+ "line": 89
17444
17452
  },
17445
17453
  "name": "document",
17446
17454
  "type": {
@@ -17465,7 +17473,7 @@
17465
17473
  "kind": "interface",
17466
17474
  "locationInModule": {
17467
17475
  "filename": "lib/origin-endpoint-policy.ts",
17468
- "line": 35
17476
+ "line": 39
17469
17477
  },
17470
17478
  "name": "OriginEndpointPolicyProps",
17471
17479
  "properties": [
@@ -17478,7 +17486,7 @@
17478
17486
  "immutable": true,
17479
17487
  "locationInModule": {
17480
17488
  "filename": "lib/origin-endpoint-policy.ts",
17481
- "line": 39
17489
+ "line": 43
17482
17490
  },
17483
17491
  "name": "originEndpoint",
17484
17492
  "type": {
@@ -17495,7 +17503,7 @@
17495
17503
  "immutable": true,
17496
17504
  "locationInModule": {
17497
17505
  "filename": "lib/origin-endpoint-policy.ts",
17498
- "line": 53
17506
+ "line": 57
17499
17507
  },
17500
17508
  "name": "cdnAuth",
17501
17509
  "optional": true,
@@ -17513,7 +17521,7 @@
17513
17521
  "immutable": true,
17514
17522
  "locationInModule": {
17515
17523
  "filename": "lib/origin-endpoint-policy.ts",
17516
- "line": 46
17524
+ "line": 50
17517
17525
  },
17518
17526
  "name": "policyDocument",
17519
17527
  "optional": true,
@@ -17542,7 +17550,7 @@
17542
17550
  "kind": "interface",
17543
17551
  "locationInModule": {
17544
17552
  "filename": "lib/endpoint.ts",
17545
- "line": 1852
17553
+ "line": 1881
17546
17554
  },
17547
17555
  "name": "OriginEndpointProps",
17548
17556
  "properties": [
@@ -17555,7 +17563,7 @@
17555
17563
  "immutable": true,
17556
17564
  "locationInModule": {
17557
17565
  "filename": "lib/endpoint.ts",
17558
- "line": 1856
17566
+ "line": 1885
17559
17567
  },
17560
17568
  "name": "channel",
17561
17569
  "type": {
@@ -17579,7 +17587,7 @@
17579
17587
  "kind": "enum",
17580
17588
  "locationInModule": {
17581
17589
  "filename": "lib/endpoint.ts",
17582
- "line": 819
17590
+ "line": 820
17583
17591
  },
17584
17592
  "members": [
17585
17593
  {
@@ -17636,7 +17644,7 @@
17636
17644
  "kind": "enum",
17637
17645
  "locationInModule": {
17638
17646
  "filename": "lib/endpoint.ts",
17639
- "line": 848
17647
+ "line": 849
17640
17648
  },
17641
17649
  "members": [
17642
17650
  {
@@ -17723,7 +17731,7 @@
17723
17731
  "kind": "enum",
17724
17732
  "locationInModule": {
17725
17733
  "filename": "lib/endpoint.ts",
17726
- "line": 962
17734
+ "line": 963
17727
17735
  },
17728
17736
  "members": [
17729
17737
  {
@@ -17755,7 +17763,7 @@
17755
17763
  "kind": "enum",
17756
17764
  "locationInModule": {
17757
17765
  "filename": "lib/endpoint.ts",
17758
- "line": 920
17766
+ "line": 921
17759
17767
  },
17760
17768
  "members": [
17761
17769
  {
@@ -17844,7 +17852,7 @@
17844
17852
  "kind": "class",
17845
17853
  "locationInModule": {
17846
17854
  "filename": "lib/endpoint.ts",
17847
- "line": 2495
17855
+ "line": 2524
17848
17856
  },
17849
17857
  "methods": [
17850
17858
  {
@@ -17855,7 +17863,7 @@
17855
17863
  },
17856
17864
  "locationInModule": {
17857
17865
  "filename": "lib/endpoint.ts",
17858
- "line": 2520
17866
+ "line": 2549
17859
17867
  },
17860
17868
  "name": "cmaf",
17861
17869
  "parameters": [
@@ -17882,7 +17890,7 @@
17882
17890
  },
17883
17891
  "locationInModule": {
17884
17892
  "filename": "lib/endpoint.ts",
17885
- "line": 2537
17893
+ "line": 2566
17886
17894
  },
17887
17895
  "name": "ism",
17888
17896
  "parameters": [
@@ -17909,7 +17917,7 @@
17909
17917
  },
17910
17918
  "locationInModule": {
17911
17919
  "filename": "lib/endpoint.ts",
17912
- "line": 2501
17920
+ "line": 2530
17913
17921
  },
17914
17922
  "name": "ts",
17915
17923
  "parameters": [
@@ -17947,7 +17955,7 @@
17947
17955
  "kind": "interface",
17948
17956
  "locationInModule": {
17949
17957
  "filename": "lib/endpoint.ts",
17950
- "line": 2325
17958
+ "line": 2354
17951
17959
  },
17952
17960
  "name": "SegmentConfiguration",
17953
17961
  "properties": [
@@ -17960,7 +17968,7 @@
17960
17968
  "immutable": true,
17961
17969
  "locationInModule": {
17962
17970
  "filename": "lib/endpoint.ts",
17963
- "line": 2329
17971
+ "line": 2358
17964
17972
  },
17965
17973
  "name": "containerType",
17966
17974
  "type": {
@@ -17977,7 +17985,7 @@
17977
17985
  "immutable": true,
17978
17986
  "locationInModule": {
17979
17987
  "filename": "lib/endpoint.ts",
17980
- "line": 2379
17988
+ "line": 2408
17981
17989
  },
17982
17990
  "name": "encryption",
17983
17991
  "optional": true,
@@ -17995,7 +18003,7 @@
17995
18003
  "immutable": true,
17996
18004
  "locationInModule": {
17997
18005
  "filename": "lib/endpoint.ts",
17998
- "line": 2335
18006
+ "line": 2364
17999
18007
  },
18000
18008
  "name": "includeIframeOnlyStreams",
18001
18009
  "optional": true,
@@ -18014,7 +18022,7 @@
18014
18022
  "immutable": true,
18015
18023
  "locationInModule": {
18016
18024
  "filename": "lib/endpoint.ts",
18017
- "line": 2343
18025
+ "line": 2372
18018
18026
  },
18019
18027
  "name": "scteFilter",
18020
18028
  "optional": true,
@@ -18037,7 +18045,7 @@
18037
18045
  "immutable": true,
18038
18046
  "locationInModule": {
18039
18047
  "filename": "lib/endpoint.ts",
18040
- "line": 2349
18048
+ "line": 2378
18041
18049
  },
18042
18050
  "name": "scteInSegments",
18043
18051
  "optional": true,
@@ -18055,7 +18063,7 @@
18055
18063
  "immutable": true,
18056
18064
  "locationInModule": {
18057
18065
  "filename": "lib/endpoint.ts",
18058
- "line": 2355
18066
+ "line": 2384
18059
18067
  },
18060
18068
  "name": "segmentDuration",
18061
18069
  "optional": true,
@@ -18073,7 +18081,7 @@
18073
18081
  "immutable": true,
18074
18082
  "locationInModule": {
18075
18083
  "filename": "lib/endpoint.ts",
18076
- "line": 2361
18084
+ "line": 2390
18077
18085
  },
18078
18086
  "name": "segmentName",
18079
18087
  "optional": true,
@@ -18091,7 +18099,7 @@
18091
18099
  "immutable": true,
18092
18100
  "locationInModule": {
18093
18101
  "filename": "lib/endpoint.ts",
18094
- "line": 2367
18102
+ "line": 2396
18095
18103
  },
18096
18104
  "name": "tsIncludeDvbSubtitles",
18097
18105
  "optional": true,
@@ -18109,7 +18117,7 @@
18109
18117
  "immutable": true,
18110
18118
  "locationInModule": {
18111
18119
  "filename": "lib/endpoint.ts",
18112
- "line": 2373
18120
+ "line": 2402
18113
18121
  },
18114
18122
  "name": "tsUseAudioRenditionGroup",
18115
18123
  "optional": true,
@@ -18135,7 +18143,7 @@
18135
18143
  "kind": "interface",
18136
18144
  "locationInModule": {
18137
18145
  "filename": "lib/endpoint.ts",
18138
- "line": 2385
18146
+ "line": 2414
18139
18147
  },
18140
18148
  "name": "SegmentPropsBase",
18141
18149
  "properties": [
@@ -18149,7 +18157,7 @@
18149
18157
  "immutable": true,
18150
18158
  "locationInModule": {
18151
18159
  "filename": "lib/endpoint.ts",
18152
- "line": 2398
18160
+ "line": 2427
18153
18161
  },
18154
18162
  "name": "duration",
18155
18163
  "optional": true,
@@ -18167,7 +18175,7 @@
18167
18175
  "immutable": true,
18168
18176
  "locationInModule": {
18169
18177
  "filename": "lib/endpoint.ts",
18170
- "line": 2391
18178
+ "line": 2420
18171
18179
  },
18172
18180
  "name": "includeIframeOnlyStreams",
18173
18181
  "optional": true,
@@ -18185,7 +18193,7 @@
18185
18193
  "immutable": true,
18186
18194
  "locationInModule": {
18187
18195
  "filename": "lib/endpoint.ts",
18188
- "line": 2405
18196
+ "line": 2434
18189
18197
  },
18190
18198
  "name": "name",
18191
18199
  "optional": true,
@@ -18406,7 +18414,7 @@
18406
18414
  "kind": "enum",
18407
18415
  "locationInModule": {
18408
18416
  "filename": "lib/endpoint.ts",
18409
- "line": 146
18417
+ "line": 147
18410
18418
  },
18411
18419
  "members": [
18412
18420
  {
@@ -18440,7 +18448,7 @@
18440
18448
  "kind": "enum",
18441
18449
  "locationInModule": {
18442
18450
  "filename": "lib/endpoint.ts",
18443
- "line": 70
18451
+ "line": 71
18444
18452
  },
18445
18453
  "members": [
18446
18454
  {
@@ -18479,7 +18487,7 @@
18479
18487
  "kind": "enum",
18480
18488
  "locationInModule": {
18481
18489
  "filename": "lib/endpoint.ts",
18482
- "line": 1924
18490
+ "line": 1953
18483
18491
  },
18484
18492
  "members": [
18485
18493
  {
@@ -18516,7 +18524,7 @@
18516
18524
  "kind": "class",
18517
18525
  "locationInModule": {
18518
18526
  "filename": "lib/endpoint.ts",
18519
- "line": 2218
18527
+ "line": 2247
18520
18528
  },
18521
18529
  "methods": [
18522
18530
  {
@@ -18526,7 +18534,7 @@
18526
18534
  },
18527
18535
  "locationInModule": {
18528
18536
  "filename": "lib/endpoint.ts",
18529
- "line": 2222
18537
+ "line": 2251
18530
18538
  },
18531
18539
  "name": "speke",
18532
18540
  "parameters": [
@@ -18562,7 +18570,7 @@
18562
18570
  "kind": "enum",
18563
18571
  "locationInModule": {
18564
18572
  "filename": "lib/endpoint.ts",
18565
- "line": 805
18573
+ "line": 806
18566
18574
  },
18567
18575
  "members": [
18568
18576
  {
@@ -18601,7 +18609,7 @@
18601
18609
  "kind": "interface",
18602
18610
  "locationInModule": {
18603
18611
  "filename": "lib/endpoint.ts",
18604
- "line": 2411
18612
+ "line": 2440
18605
18613
  },
18606
18614
  "name": "TsSegmentProps",
18607
18615
  "properties": [
@@ -18616,7 +18624,7 @@
18616
18624
  "immutable": true,
18617
18625
  "locationInModule": {
18618
18626
  "filename": "lib/endpoint.ts",
18619
- "line": 2447
18627
+ "line": 2476
18620
18628
  },
18621
18629
  "name": "encryption",
18622
18630
  "optional": true,
@@ -18634,7 +18642,7 @@
18634
18642
  "immutable": true,
18635
18643
  "locationInModule": {
18636
18644
  "filename": "lib/endpoint.ts",
18637
- "line": 2431
18645
+ "line": 2460
18638
18646
  },
18639
18647
  "name": "includeDvbSubtitles",
18640
18648
  "optional": true,
@@ -18652,7 +18660,7 @@
18652
18660
  "immutable": true,
18653
18661
  "locationInModule": {
18654
18662
  "filename": "lib/endpoint.ts",
18655
- "line": 2417
18663
+ "line": 2446
18656
18664
  },
18657
18665
  "name": "scteFilter",
18658
18666
  "optional": true,
@@ -18675,7 +18683,7 @@
18675
18683
  "immutable": true,
18676
18684
  "locationInModule": {
18677
18685
  "filename": "lib/endpoint.ts",
18678
- "line": 2424
18686
+ "line": 2453
18679
18687
  },
18680
18688
  "name": "scteInSegments",
18681
18689
  "optional": true,
@@ -18693,7 +18701,7 @@
18693
18701
  "immutable": true,
18694
18702
  "locationInModule": {
18695
18703
  "filename": "lib/endpoint.ts",
18696
- "line": 2438
18704
+ "line": 2467
18697
18705
  },
18698
18706
  "name": "useAudioRenditionGroup",
18699
18707
  "optional": true,
@@ -18719,7 +18727,7 @@
18719
18727
  "kind": "interface",
18720
18728
  "locationInModule": {
18721
18729
  "filename": "lib/endpoint.ts",
18722
- "line": 2043
18730
+ "line": 2072
18723
18731
  },
18724
18732
  "name": "TsSpekeEncryptionProps",
18725
18733
  "properties": [
@@ -18732,7 +18740,7 @@
18732
18740
  "immutable": true,
18733
18741
  "locationInModule": {
18734
18742
  "filename": "lib/endpoint.ts",
18735
- "line": 2047
18743
+ "line": 2076
18736
18744
  },
18737
18745
  "name": "method",
18738
18746
  "type": {
@@ -18749,7 +18757,7 @@
18749
18757
  "immutable": true,
18750
18758
  "locationInModule": {
18751
18759
  "filename": "lib/endpoint.ts",
18752
- "line": 1958
18760
+ "line": 1987
18753
18761
  },
18754
18762
  "name": "resourceId",
18755
18763
  "type": {
@@ -18766,7 +18774,7 @@
18766
18774
  "immutable": true,
18767
18775
  "locationInModule": {
18768
18776
  "filename": "lib/endpoint.ts",
18769
- "line": 1966
18777
+ "line": 1995
18770
18778
  },
18771
18779
  "name": "role",
18772
18780
  "type": {
@@ -18782,7 +18790,7 @@
18782
18790
  "immutable": true,
18783
18791
  "locationInModule": {
18784
18792
  "filename": "lib/endpoint.ts",
18785
- "line": 1971
18793
+ "line": 2000
18786
18794
  },
18787
18795
  "name": "url",
18788
18796
  "type": {
@@ -18799,7 +18807,7 @@
18799
18807
  "immutable": true,
18800
18808
  "locationInModule": {
18801
18809
  "filename": "lib/endpoint.ts",
18802
- "line": 1988
18810
+ "line": 2017
18803
18811
  },
18804
18812
  "name": "audioPreset",
18805
18813
  "optional": true,
@@ -18818,7 +18826,7 @@
18818
18826
  "immutable": true,
18819
18827
  "locationInModule": {
18820
18828
  "filename": "lib/endpoint.ts",
18821
- "line": 1981
18829
+ "line": 2010
18822
18830
  },
18823
18831
  "name": "certificate",
18824
18832
  "optional": true,
@@ -18837,7 +18845,7 @@
18837
18845
  "immutable": true,
18838
18846
  "locationInModule": {
18839
18847
  "filename": "lib/endpoint.ts",
18840
- "line": 2064
18848
+ "line": 2093
18841
18849
  },
18842
18850
  "name": "constantInitializationVector",
18843
18851
  "optional": true,
@@ -18855,7 +18863,7 @@
18855
18863
  "immutable": true,
18856
18864
  "locationInModule": {
18857
18865
  "filename": "lib/endpoint.ts",
18858
- "line": 2054
18866
+ "line": 2083
18859
18867
  },
18860
18868
  "name": "drmSystems",
18861
18869
  "optional": true,
@@ -18878,7 +18886,7 @@
18878
18886
  "immutable": true,
18879
18887
  "locationInModule": {
18880
18888
  "filename": "lib/endpoint.ts",
18881
- "line": 2071
18889
+ "line": 2100
18882
18890
  },
18883
18891
  "name": "keyRotationInterval",
18884
18892
  "optional": true,
@@ -18896,7 +18904,7 @@
18896
18904
  "immutable": true,
18897
18905
  "locationInModule": {
18898
18906
  "filename": "lib/endpoint.ts",
18899
- "line": 1995
18907
+ "line": 2024
18900
18908
  },
18901
18909
  "name": "videoPreset",
18902
18910
  "optional": true,
@@ -18949,7 +18957,7 @@
18949
18957
  "kind": "enum",
18950
18958
  "locationInModule": {
18951
18959
  "filename": "lib/endpoint.ts",
18952
- "line": 40
18960
+ "line": 41
18953
18961
  },
18954
18962
  "members": [
18955
18963
  {
@@ -18988,7 +18996,7 @@
18988
18996
  "kind": "enum",
18989
18997
  "locationInModule": {
18990
18998
  "filename": "lib/endpoint.ts",
18991
- "line": 54
18999
+ "line": 55
18992
19000
  },
18993
19001
  "members": [
18994
19002
  {
@@ -19024,6 +19032,6 @@
19024
19032
  "symbolId": "lib/endpoint:VideoDynamicRange"
19025
19033
  }
19026
19034
  },
19027
- "version": "2.256.1-alpha.0",
19035
+ "version": "2.258.0-alpha.0",
19028
19036
  "fingerprint": "**********"
19029
19037
  }