@aws-cdk/aws-mediapackagev2-alpha 2.257.0-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.257.0",
11
+ "aws-cdk-lib": "^2.258.0",
12
12
  "constructs": "^10.5.0"
13
13
  },
14
14
  "dependencyClosure": {
@@ -8966,7 +8966,7 @@
8966
8966
  "stability": "experimental"
8967
8967
  },
8968
8968
  "homepage": "https://github.com/aws/aws-cdk",
8969
- "jsiiVersion": "5.9.37 (build 5176c0d)",
8969
+ "jsiiVersion": "5.9.44 (build 150b837)",
8970
8970
  "keywords": [
8971
8971
  "aws",
8972
8972
  "cdk",
@@ -8988,7 +8988,7 @@
8988
8988
  },
8989
8989
  "name": "@aws-cdk/aws-mediapackagev2-alpha",
8990
8990
  "readme": {
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## 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"
8992
8992
  },
8993
8993
  "repository": {
8994
8994
  "directory": "packages/@aws-cdk/aws-mediapackagev2-alpha",
@@ -9103,7 +9103,7 @@
9103
9103
  "kind": "enum",
9104
9104
  "locationInModule": {
9105
9105
  "filename": "lib/endpoint.ts",
9106
- "line": 24
9106
+ "line": 25
9107
9107
  },
9108
9108
  "members": [
9109
9109
  {
@@ -9156,7 +9156,7 @@
9156
9156
  },
9157
9157
  "locationInModule": {
9158
9158
  "filename": "lib/endpoint.ts",
9159
- "line": 239
9159
+ "line": 240
9160
9160
  },
9161
9161
  "parameters": [
9162
9162
  {
@@ -9192,7 +9192,7 @@
9192
9192
  "kind": "class",
9193
9193
  "locationInModule": {
9194
9194
  "filename": "lib/endpoint.ts",
9195
- "line": 224
9195
+ "line": 225
9196
9196
  },
9197
9197
  "methods": [
9198
9198
  {
@@ -9202,7 +9202,7 @@
9202
9202
  },
9203
9203
  "locationInModule": {
9204
9204
  "filename": "lib/endpoint.ts",
9205
- "line": 235
9205
+ "line": 236
9206
9206
  },
9207
9207
  "name": "range",
9208
9208
  "parameters": [
@@ -9233,7 +9233,7 @@
9233
9233
  },
9234
9234
  "locationInModule": {
9235
9235
  "filename": "lib/endpoint.ts",
9236
- "line": 228
9236
+ "line": 229
9237
9237
  },
9238
9238
  "name": "value",
9239
9239
  "parameters": [
@@ -9271,7 +9271,7 @@
9271
9271
  "kind": "enum",
9272
9272
  "locationInModule": {
9273
9273
  "filename": "lib/endpoint.ts",
9274
- "line": 168
9274
+ "line": 169
9275
9275
  },
9276
9276
  "members": [
9277
9277
  {
@@ -9301,9 +9301,9 @@
9301
9301
  "see": "https://docs.aws.amazon.com/mediapackage/latest/userguide/cdn-auth.html",
9302
9302
  "stability": "experimental",
9303
9303
  "summary": "Options for configuring CDN Authorization Configuration.",
9304
- "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});",
9305
9305
  "custom": {
9306
- "exampleMetadata": "fixture=_generated"
9306
+ "exampleMetadata": "infused"
9307
9307
  }
9308
9308
  },
9309
9309
  "fqn": "@aws-cdk/aws-mediapackagev2-alpha.CdnAuthConfiguration",
@@ -9317,13 +9317,14 @@
9317
9317
  {
9318
9318
  "abstract": true,
9319
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}.",
9320
9321
  "stability": "experimental",
9321
9322
  "summary": "Secrets to use for CDN authorization."
9322
9323
  },
9323
9324
  "immutable": true,
9324
9325
  "locationInModule": {
9325
9326
  "filename": "lib/origin-endpoint-policy.ts",
9326
- "line": 20
9327
+ "line": 24
9327
9328
  },
9328
9329
  "name": "secrets",
9329
9330
  "type": {
@@ -9346,7 +9347,7 @@
9346
9347
  "immutable": true,
9347
9348
  "locationInModule": {
9348
9349
  "filename": "lib/origin-endpoint-policy.ts",
9349
- "line": 29
9350
+ "line": 33
9350
9351
  },
9351
9352
  "name": "role",
9352
9353
  "optional": true,
@@ -11159,7 +11160,7 @@
11159
11160
  "kind": "enum",
11160
11161
  "locationInModule": {
11161
11162
  "filename": "lib/endpoint.ts",
11162
- "line": 1900
11163
+ "line": 1929
11163
11164
  },
11164
11165
  "members": [
11165
11166
  {
@@ -11210,7 +11211,7 @@
11210
11211
  "kind": "class",
11211
11212
  "locationInModule": {
11212
11213
  "filename": "lib/endpoint.ts",
11213
- "line": 2155
11214
+ "line": 2184
11214
11215
  },
11215
11216
  "methods": [
11216
11217
  {
@@ -11220,7 +11221,7 @@
11220
11221
  },
11221
11222
  "locationInModule": {
11222
11223
  "filename": "lib/endpoint.ts",
11223
- "line": 2159
11224
+ "line": 2188
11224
11225
  },
11225
11226
  "name": "speke",
11226
11227
  "parameters": [
@@ -11256,7 +11257,7 @@
11256
11257
  "kind": "enum",
11257
11258
  "locationInModule": {
11258
11259
  "filename": "lib/endpoint.ts",
11259
- "line": 791
11260
+ "line": 792
11260
11261
  },
11261
11262
  "members": [
11262
11263
  {
@@ -11358,7 +11359,7 @@
11358
11359
  "kind": "interface",
11359
11360
  "locationInModule": {
11360
11361
  "filename": "lib/endpoint.ts",
11361
- "line": 2453
11362
+ "line": 2482
11362
11363
  },
11363
11364
  "name": "CmafSegmentProps",
11364
11365
  "properties": [
@@ -11373,7 +11374,7 @@
11373
11374
  "immutable": true,
11374
11375
  "locationInModule": {
11375
11376
  "filename": "lib/endpoint.ts",
11376
- "line": 2475
11377
+ "line": 2504
11377
11378
  },
11378
11379
  "name": "encryption",
11379
11380
  "optional": true,
@@ -11391,7 +11392,7 @@
11391
11392
  "immutable": true,
11392
11393
  "locationInModule": {
11393
11394
  "filename": "lib/endpoint.ts",
11394
- "line": 2459
11395
+ "line": 2488
11395
11396
  },
11396
11397
  "name": "scteFilter",
11397
11398
  "optional": true,
@@ -11414,7 +11415,7 @@
11414
11415
  "immutable": true,
11415
11416
  "locationInModule": {
11416
11417
  "filename": "lib/endpoint.ts",
11417
- "line": 2466
11418
+ "line": 2495
11418
11419
  },
11419
11420
  "name": "scteInSegments",
11420
11421
  "optional": true,
@@ -11440,7 +11441,7 @@
11440
11441
  "kind": "interface",
11441
11442
  "locationInModule": {
11442
11443
  "filename": "lib/endpoint.ts",
11443
- "line": 2001
11444
+ "line": 2030
11444
11445
  },
11445
11446
  "name": "CmafSpekeEncryptionProps",
11446
11447
  "properties": [
@@ -11454,7 +11455,7 @@
11454
11455
  "immutable": true,
11455
11456
  "locationInModule": {
11456
11457
  "filename": "lib/endpoint.ts",
11457
- "line": 2013
11458
+ "line": 2042
11458
11459
  },
11459
11460
  "name": "drmSystems",
11460
11461
  "type": {
@@ -11475,7 +11476,7 @@
11475
11476
  "immutable": true,
11476
11477
  "locationInModule": {
11477
11478
  "filename": "lib/endpoint.ts",
11478
- "line": 2005
11479
+ "line": 2034
11479
11480
  },
11480
11481
  "name": "method",
11481
11482
  "type": {
@@ -11492,7 +11493,7 @@
11492
11493
  "immutable": true,
11493
11494
  "locationInModule": {
11494
11495
  "filename": "lib/endpoint.ts",
11495
- "line": 1958
11496
+ "line": 1987
11496
11497
  },
11497
11498
  "name": "resourceId",
11498
11499
  "type": {
@@ -11509,7 +11510,7 @@
11509
11510
  "immutable": true,
11510
11511
  "locationInModule": {
11511
11512
  "filename": "lib/endpoint.ts",
11512
- "line": 1966
11513
+ "line": 1995
11513
11514
  },
11514
11515
  "name": "role",
11515
11516
  "type": {
@@ -11525,7 +11526,7 @@
11525
11526
  "immutable": true,
11526
11527
  "locationInModule": {
11527
11528
  "filename": "lib/endpoint.ts",
11528
- "line": 1971
11529
+ "line": 2000
11529
11530
  },
11530
11531
  "name": "url",
11531
11532
  "type": {
@@ -11542,7 +11543,7 @@
11542
11543
  "immutable": true,
11543
11544
  "locationInModule": {
11544
11545
  "filename": "lib/endpoint.ts",
11545
- "line": 1988
11546
+ "line": 2017
11546
11547
  },
11547
11548
  "name": "audioPreset",
11548
11549
  "optional": true,
@@ -11561,7 +11562,7 @@
11561
11562
  "immutable": true,
11562
11563
  "locationInModule": {
11563
11564
  "filename": "lib/endpoint.ts",
11564
- "line": 1981
11565
+ "line": 2010
11565
11566
  },
11566
11567
  "name": "certificate",
11567
11568
  "optional": true,
@@ -11580,7 +11581,7 @@
11580
11581
  "immutable": true,
11581
11582
  "locationInModule": {
11582
11583
  "filename": "lib/endpoint.ts",
11583
- "line": 2023
11584
+ "line": 2052
11584
11585
  },
11585
11586
  "name": "constantInitializationVector",
11586
11587
  "optional": true,
@@ -11598,7 +11599,7 @@
11598
11599
  "immutable": true,
11599
11600
  "locationInModule": {
11600
11601
  "filename": "lib/endpoint.ts",
11601
- "line": 2037
11602
+ "line": 2066
11602
11603
  },
11603
11604
  "name": "excludeSegmentDrmMetadata",
11604
11605
  "optional": true,
@@ -11616,7 +11617,7 @@
11616
11617
  "immutable": true,
11617
11618
  "locationInModule": {
11618
11619
  "filename": "lib/endpoint.ts",
11619
- "line": 2030
11620
+ "line": 2059
11620
11621
  },
11621
11622
  "name": "keyRotationInterval",
11622
11623
  "optional": true,
@@ -11634,7 +11635,7 @@
11634
11635
  "immutable": true,
11635
11636
  "locationInModule": {
11636
11637
  "filename": "lib/endpoint.ts",
11637
- "line": 1995
11638
+ "line": 2024
11638
11639
  },
11639
11640
  "name": "videoPreset",
11640
11641
  "optional": true,
@@ -11656,7 +11657,7 @@
11656
11657
  "kind": "enum",
11657
11658
  "locationInModule": {
11658
11659
  "filename": "lib/endpoint.ts",
11659
- "line": 773
11660
+ "line": 774
11660
11661
  },
11661
11662
  "members": [
11662
11663
  {
@@ -12741,7 +12742,7 @@
12741
12742
  "kind": "class",
12742
12743
  "locationInModule": {
12743
12744
  "filename": "lib/endpoint.ts",
12744
- "line": 2118
12745
+ "line": 2147
12745
12746
  },
12746
12747
  "name": "EncryptionConfiguration",
12747
12748
  "symbolId": "lib/endpoint:EncryptionConfiguration"
@@ -12756,7 +12757,7 @@
12756
12757
  "kind": "enum",
12757
12758
  "locationInModule": {
12758
12759
  "filename": "lib/endpoint.ts",
12759
- "line": 898
12760
+ "line": 899
12760
12761
  },
12761
12762
  "members": [
12762
12763
  {
@@ -14011,7 +14012,7 @@
14011
14012
  "kind": "interface",
14012
14013
  "locationInModule": {
14013
14014
  "filename": "lib/endpoint.ts",
14014
- "line": 979
14015
+ "line": 980
14015
14016
  },
14016
14017
  "methods": [
14017
14018
  {
@@ -14035,17 +14036,6 @@
14035
14036
  "type": {
14036
14037
  "fqn": "aws-cdk-lib.aws_iam.PolicyStatement"
14037
14038
  }
14038
- },
14039
- {
14040
- "docs": {
14041
- "remarks": "Only the first CDN auth configuration is used if provided multiple times.",
14042
- "summary": "- Optional CDN authorization configuration."
14043
- },
14044
- "name": "cdnAuth",
14045
- "optional": true,
14046
- "type": {
14047
- "fqn": "@aws-cdk/aws-mediapackagev2-alpha.CdnAuthConfiguration"
14048
- }
14049
14039
  }
14050
14040
  ],
14051
14041
  "returns": {
@@ -14269,7 +14259,7 @@
14269
14259
  "immutable": true,
14270
14260
  "locationInModule": {
14271
14261
  "filename": "lib/endpoint.ts",
14272
- "line": 985
14262
+ "line": 986
14273
14263
  },
14274
14264
  "name": "channelGroupName",
14275
14265
  "type": {
@@ -14288,7 +14278,7 @@
14288
14278
  "immutable": true,
14289
14279
  "locationInModule": {
14290
14280
  "filename": "lib/endpoint.ts",
14291
- "line": 992
14281
+ "line": 993
14292
14282
  },
14293
14283
  "name": "channelName",
14294
14284
  "type": {
@@ -14307,7 +14297,7 @@
14307
14297
  "immutable": true,
14308
14298
  "locationInModule": {
14309
14299
  "filename": "lib/endpoint.ts",
14310
- "line": 1006
14300
+ "line": 1007
14311
14301
  },
14312
14302
  "name": "originEndpointArn",
14313
14303
  "type": {
@@ -14326,7 +14316,7 @@
14326
14316
  "immutable": true,
14327
14317
  "locationInModule": {
14328
14318
  "filename": "lib/endpoint.ts",
14329
- "line": 999
14319
+ "line": 1000
14330
14320
  },
14331
14321
  "name": "originEndpointName",
14332
14322
  "type": {
@@ -14345,7 +14335,7 @@
14345
14335
  "immutable": true,
14346
14336
  "locationInModule": {
14347
14337
  "filename": "lib/endpoint.ts",
14348
- "line": 1013
14338
+ "line": 1014
14349
14339
  },
14350
14340
  "name": "createdAt",
14351
14341
  "optional": true,
@@ -14365,7 +14355,7 @@
14365
14355
  "immutable": true,
14366
14356
  "locationInModule": {
14367
14357
  "filename": "lib/endpoint.ts",
14368
- "line": 1041
14358
+ "line": 1042
14369
14359
  },
14370
14360
  "name": "dashManifestUrls",
14371
14361
  "optional": true,
@@ -14390,7 +14380,7 @@
14390
14380
  "immutable": true,
14391
14381
  "locationInModule": {
14392
14382
  "filename": "lib/endpoint.ts",
14393
- "line": 1027
14383
+ "line": 1028
14394
14384
  },
14395
14385
  "name": "hlsManifestUrls",
14396
14386
  "optional": true,
@@ -14415,7 +14405,7 @@
14415
14405
  "immutable": true,
14416
14406
  "locationInModule": {
14417
14407
  "filename": "lib/endpoint.ts",
14418
- "line": 1034
14408
+ "line": 1035
14419
14409
  },
14420
14410
  "name": "lowLatencyHlsManifestUrls",
14421
14411
  "optional": true,
@@ -14440,7 +14430,7 @@
14440
14430
  "immutable": true,
14441
14431
  "locationInModule": {
14442
14432
  "filename": "lib/endpoint.ts",
14443
- "line": 1020
14433
+ "line": 1021
14444
14434
  },
14445
14435
  "name": "modifiedAt",
14446
14436
  "optional": true,
@@ -14460,7 +14450,7 @@
14460
14450
  "immutable": true,
14461
14451
  "locationInModule": {
14462
14452
  "filename": "lib/endpoint.ts",
14463
- "line": 1048
14453
+ "line": 1049
14464
14454
  },
14465
14455
  "name": "mssManifestUrls",
14466
14456
  "optional": true,
@@ -14731,7 +14721,7 @@
14731
14721
  "kind": "enum",
14732
14722
  "locationInModule": {
14733
14723
  "filename": "lib/endpoint.ts",
14734
- "line": 1940
14724
+ "line": 1969
14735
14725
  },
14736
14726
  "members": [
14737
14727
  {
@@ -14761,7 +14751,7 @@
14761
14751
  "kind": "class",
14762
14752
  "locationInModule": {
14763
14753
  "filename": "lib/endpoint.ts",
14764
- "line": 2279
14754
+ "line": 2308
14765
14755
  },
14766
14756
  "methods": [
14767
14757
  {
@@ -14771,7 +14761,7 @@
14771
14761
  },
14772
14762
  "locationInModule": {
14773
14763
  "filename": "lib/endpoint.ts",
14774
- "line": 2283
14764
+ "line": 2312
14775
14765
  },
14776
14766
  "name": "speke",
14777
14767
  "parameters": [
@@ -14811,7 +14801,7 @@
14811
14801
  "kind": "interface",
14812
14802
  "locationInModule": {
14813
14803
  "filename": "lib/endpoint.ts",
14814
- "line": 2481
14804
+ "line": 2510
14815
14805
  },
14816
14806
  "name": "IsmSegmentProps",
14817
14807
  "properties": [
@@ -14826,7 +14816,7 @@
14826
14816
  "immutable": true,
14827
14817
  "locationInModule": {
14828
14818
  "filename": "lib/endpoint.ts",
14829
- "line": 2489
14819
+ "line": 2518
14830
14820
  },
14831
14821
  "name": "encryption",
14832
14822
  "optional": true,
@@ -14853,7 +14843,7 @@
14853
14843
  "kind": "interface",
14854
14844
  "locationInModule": {
14855
14845
  "filename": "lib/endpoint.ts",
14856
- "line": 2081
14846
+ "line": 2110
14857
14847
  },
14858
14848
  "name": "IsmSpekeEncryptionProps",
14859
14849
  "properties": [
@@ -14866,7 +14856,7 @@
14866
14856
  "immutable": true,
14867
14857
  "locationInModule": {
14868
14858
  "filename": "lib/endpoint.ts",
14869
- "line": 2092
14859
+ "line": 2121
14870
14860
  },
14871
14861
  "name": "resourceId",
14872
14862
  "type": {
@@ -14882,7 +14872,7 @@
14882
14872
  "immutable": true,
14883
14873
  "locationInModule": {
14884
14874
  "filename": "lib/endpoint.ts",
14885
- "line": 2097
14875
+ "line": 2126
14886
14876
  },
14887
14877
  "name": "role",
14888
14878
  "type": {
@@ -14898,7 +14888,7 @@
14898
14888
  "immutable": true,
14899
14889
  "locationInModule": {
14900
14890
  "filename": "lib/endpoint.ts",
14901
- "line": 2102
14891
+ "line": 2131
14902
14892
  },
14903
14893
  "name": "url",
14904
14894
  "type": {
@@ -14915,7 +14905,7 @@
14915
14905
  "immutable": true,
14916
14906
  "locationInModule": {
14917
14907
  "filename": "lib/endpoint.ts",
14918
- "line": 2110
14908
+ "line": 2139
14919
14909
  },
14920
14910
  "name": "certificate",
14921
14911
  "optional": true,
@@ -14933,7 +14923,7 @@
14933
14923
  "immutable": true,
14934
14924
  "locationInModule": {
14935
14925
  "filename": "lib/endpoint.ts",
14936
- "line": 2087
14926
+ "line": 2116
14937
14927
  },
14938
14928
  "name": "drmSystems",
14939
14929
  "optional": true,
@@ -15140,7 +15130,7 @@
15140
15130
  "kind": "class",
15141
15131
  "locationInModule": {
15142
15132
  "filename": "lib/endpoint.ts",
15143
- "line": 427
15133
+ "line": 428
15144
15134
  },
15145
15135
  "methods": [
15146
15136
  {
@@ -15151,7 +15141,7 @@
15151
15141
  },
15152
15142
  "locationInModule": {
15153
15143
  "filename": "lib/endpoint.ts",
15154
- "line": 454
15144
+ "line": 455
15155
15145
  },
15156
15146
  "name": "dash",
15157
15147
  "parameters": [
@@ -15177,7 +15167,7 @@
15177
15167
  },
15178
15168
  "locationInModule": {
15179
15169
  "filename": "lib/endpoint.ts",
15180
- "line": 444
15170
+ "line": 445
15181
15171
  },
15182
15172
  "name": "hls",
15183
15173
  "parameters": [
@@ -15203,7 +15193,7 @@
15203
15193
  },
15204
15194
  "locationInModule": {
15205
15195
  "filename": "lib/endpoint.ts",
15206
- "line": 434
15196
+ "line": 435
15207
15197
  },
15208
15198
  "name": "lowLatencyHLS",
15209
15199
  "parameters": [
@@ -15229,7 +15219,7 @@
15229
15219
  },
15230
15220
  "locationInModule": {
15231
15221
  "filename": "lib/endpoint.ts",
15232
- "line": 464
15222
+ "line": 465
15233
15223
  },
15234
15224
  "name": "mss",
15235
15225
  "parameters": [
@@ -15269,7 +15259,7 @@
15269
15259
  },
15270
15260
  "locationInModule": {
15271
15261
  "filename": "lib/endpoint.ts",
15272
- "line": 409
15262
+ "line": 410
15273
15263
  },
15274
15264
  "parameters": [
15275
15265
  {
@@ -15287,7 +15277,7 @@
15287
15277
  "kind": "class",
15288
15278
  "locationInModule": {
15289
15279
  "filename": "lib/endpoint.ts",
15290
- "line": 252
15280
+ "line": 253
15291
15281
  },
15292
15282
  "methods": [
15293
15283
  {
@@ -15297,7 +15287,7 @@
15297
15287
  },
15298
15288
  "locationInModule": {
15299
15289
  "filename": "lib/endpoint.ts",
15300
- "line": 315
15290
+ "line": 316
15301
15291
  },
15302
15292
  "name": "audioCodec",
15303
15293
  "parameters": [
@@ -15322,7 +15312,7 @@
15322
15312
  },
15323
15313
  "locationInModule": {
15324
15314
  "filename": "lib/endpoint.ts",
15325
- "line": 322
15315
+ "line": 323
15326
15316
  },
15327
15317
  "name": "audioCodecList",
15328
15318
  "parameters": [
@@ -15352,7 +15342,7 @@
15352
15342
  },
15353
15343
  "locationInModule": {
15354
15344
  "filename": "lib/endpoint.ts",
15355
- "line": 256
15345
+ "line": 257
15356
15346
  },
15357
15347
  "name": "bitrate",
15358
15348
  "parameters": [
@@ -15384,7 +15374,7 @@
15384
15374
  },
15385
15375
  "locationInModule": {
15386
15376
  "filename": "lib/endpoint.ts",
15387
- "line": 394
15377
+ "line": 395
15388
15378
  },
15389
15379
  "name": "bitrateCombo",
15390
15380
  "parameters": [
@@ -15420,7 +15410,7 @@
15420
15410
  },
15421
15411
  "locationInModule": {
15422
15412
  "filename": "lib/endpoint.ts",
15423
- "line": 265
15413
+ "line": 266
15424
15414
  },
15425
15415
  "name": "bitrateRange",
15426
15416
  "parameters": [
@@ -15457,7 +15447,7 @@
15457
15447
  },
15458
15448
  "locationInModule": {
15459
15449
  "filename": "lib/endpoint.ts",
15460
- "line": 402
15450
+ "line": 403
15461
15451
  },
15462
15452
  "name": "custom",
15463
15453
  "parameters": [
@@ -15482,7 +15472,7 @@
15482
15472
  },
15483
15473
  "locationInModule": {
15484
15474
  "filename": "lib/endpoint.ts",
15485
- "line": 276
15475
+ "line": 277
15486
15476
  },
15487
15477
  "name": "numeric",
15488
15478
  "parameters": [
@@ -15515,7 +15505,7 @@
15515
15505
  },
15516
15506
  "locationInModule": {
15517
15507
  "filename": "lib/endpoint.ts",
15518
- "line": 380
15508
+ "line": 381
15519
15509
  },
15520
15510
  "name": "numericCombo",
15521
15511
  "parameters": [
@@ -15551,7 +15541,7 @@
15551
15541
  },
15552
15542
  "locationInModule": {
15553
15543
  "filename": "lib/endpoint.ts",
15554
- "line": 284
15544
+ "line": 285
15555
15545
  },
15556
15546
  "name": "numericList",
15557
15547
  "parameters": [
@@ -15587,7 +15577,7 @@
15587
15577
  },
15588
15578
  "locationInModule": {
15589
15579
  "filename": "lib/endpoint.ts",
15590
- "line": 292
15580
+ "line": 293
15591
15581
  },
15592
15582
  "name": "numericRange",
15593
15583
  "parameters": [
@@ -15624,7 +15614,7 @@
15624
15614
  },
15625
15615
  "locationInModule": {
15626
15616
  "filename": "lib/endpoint.ts",
15627
- "line": 301
15617
+ "line": 302
15628
15618
  },
15629
15619
  "name": "text",
15630
15620
  "parameters": [
@@ -15655,7 +15645,7 @@
15655
15645
  },
15656
15646
  "locationInModule": {
15657
15647
  "filename": "lib/endpoint.ts",
15658
- "line": 308
15648
+ "line": 309
15659
15649
  },
15660
15650
  "name": "textList",
15661
15651
  "parameters": [
@@ -15691,7 +15681,7 @@
15691
15681
  },
15692
15682
  "locationInModule": {
15693
15683
  "filename": "lib/endpoint.ts",
15694
- "line": 357
15684
+ "line": 358
15695
15685
  },
15696
15686
  "name": "trickplayType",
15697
15687
  "parameters": [
@@ -15716,7 +15706,7 @@
15716
15706
  },
15717
15707
  "locationInModule": {
15718
15708
  "filename": "lib/endpoint.ts",
15719
- "line": 364
15709
+ "line": 365
15720
15710
  },
15721
15711
  "name": "trickplayTypeList",
15722
15712
  "parameters": [
@@ -15746,7 +15736,7 @@
15746
15736
  },
15747
15737
  "locationInModule": {
15748
15738
  "filename": "lib/endpoint.ts",
15749
- "line": 329
15739
+ "line": 330
15750
15740
  },
15751
15741
  "name": "videoCodec",
15752
15742
  "parameters": [
@@ -15771,7 +15761,7 @@
15771
15761
  },
15772
15762
  "locationInModule": {
15773
15763
  "filename": "lib/endpoint.ts",
15774
- "line": 336
15764
+ "line": 337
15775
15765
  },
15776
15766
  "name": "videoCodecList",
15777
15767
  "parameters": [
@@ -15801,7 +15791,7 @@
15801
15791
  },
15802
15792
  "locationInModule": {
15803
15793
  "filename": "lib/endpoint.ts",
15804
- "line": 343
15794
+ "line": 344
15805
15795
  },
15806
15796
  "name": "videoDynamicRange",
15807
15797
  "parameters": [
@@ -15826,7 +15816,7 @@
15826
15816
  },
15827
15817
  "locationInModule": {
15828
15818
  "filename": "lib/endpoint.ts",
15829
- "line": 350
15819
+ "line": 351
15830
15820
  },
15831
15821
  "name": "videoDynamicRangeList",
15832
15822
  "parameters": [
@@ -15860,7 +15850,7 @@
15860
15850
  "immutable": true,
15861
15851
  "locationInModule": {
15862
15852
  "filename": "lib/endpoint.ts",
15863
- "line": 409
15853
+ "line": 410
15864
15854
  },
15865
15855
  "name": "filterString",
15866
15856
  "type": {
@@ -15887,7 +15877,7 @@
15887
15877
  },
15888
15878
  "locationInModule": {
15889
15879
  "filename": "lib/cloudfront-origin.ts",
15890
- "line": 71
15880
+ "line": 58
15891
15881
  },
15892
15882
  "parameters": [
15893
15883
  {
@@ -15907,7 +15897,7 @@
15907
15897
  "kind": "class",
15908
15898
  "locationInModule": {
15909
15899
  "filename": "lib/cloudfront-origin.ts",
15910
- "line": 66
15900
+ "line": 54
15911
15901
  },
15912
15902
  "methods": [
15913
15903
  {
@@ -15918,7 +15908,7 @@
15918
15908
  },
15919
15909
  "locationInModule": {
15920
15910
  "filename": "lib/cloudfront-origin.ts",
15921
- "line": 91
15911
+ "line": 77
15922
15912
  },
15923
15913
  "name": "bind",
15924
15914
  "overrides": "aws-cdk-lib.aws_cloudfront.OriginBase",
@@ -15948,7 +15938,7 @@
15948
15938
  },
15949
15939
  "locationInModule": {
15950
15940
  "filename": "lib/cloudfront-origin.ts",
15951
- "line": 84
15941
+ "line": 70
15952
15942
  },
15953
15943
  "name": "renderCustomOriginConfig",
15954
15944
  "overrides": "aws-cdk-lib.aws_cloudfront.OriginBase",
@@ -15982,7 +15972,7 @@
15982
15972
  "kind": "interface",
15983
15973
  "locationInModule": {
15984
15974
  "filename": "lib/cloudfront-origin.ts",
15985
- "line": 14
15975
+ "line": 13
15986
15976
  },
15987
15977
  "name": "MediaPackageV2OriginProps",
15988
15978
  "properties": [
@@ -15996,32 +15986,13 @@
15996
15986
  "immutable": true,
15997
15987
  "locationInModule": {
15998
15988
  "filename": "lib/cloudfront-origin.ts",
15999
- "line": 20
15989
+ "line": 19
16000
15990
  },
16001
15991
  "name": "channelGroup",
16002
15992
  "type": {
16003
15993
  "fqn": "@aws-cdk/aws-mediapackagev2-alpha.IChannelGroup"
16004
15994
  }
16005
15995
  },
16006
- {
16007
- "abstract": true,
16008
- "docs": {
16009
- "default": "- no CDN authorization",
16010
- "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.",
16011
- "stability": "experimental",
16012
- "summary": "Optional CDN authorization configuration."
16013
- },
16014
- "immutable": true,
16015
- "locationInModule": {
16016
- "filename": "lib/cloudfront-origin.ts",
16017
- "line": 38
16018
- },
16019
- "name": "cdnAuth",
16020
- "optional": true,
16021
- "type": {
16022
- "fqn": "@aws-cdk/aws-mediapackagev2-alpha.CdnAuthConfiguration"
16023
- }
16024
- },
16025
15996
  {
16026
15997
  "abstract": true,
16027
15998
  "docs": {
@@ -16032,7 +16003,7 @@
16032
16003
  "immutable": true,
16033
16004
  "locationInModule": {
16034
16005
  "filename": "lib/cloudfront-origin.ts",
16035
- "line": 27
16006
+ "line": 26
16036
16007
  },
16037
16008
  "name": "originAccessControl",
16038
16009
  "optional": true,
@@ -16189,7 +16160,7 @@
16189
16160
  },
16190
16161
  "locationInModule": {
16191
16162
  "filename": "lib/endpoint.ts",
16192
- "line": 210
16163
+ "line": 211
16193
16164
  },
16194
16165
  "parameters": [
16195
16166
  {
@@ -16225,7 +16196,7 @@
16225
16196
  "kind": "class",
16226
16197
  "locationInModule": {
16227
16198
  "filename": "lib/endpoint.ts",
16228
- "line": 195
16199
+ "line": 196
16229
16200
  },
16230
16201
  "methods": [
16231
16202
  {
@@ -16235,7 +16206,7 @@
16235
16206
  },
16236
16207
  "locationInModule": {
16237
16208
  "filename": "lib/endpoint.ts",
16238
- "line": 206
16209
+ "line": 207
16239
16210
  },
16240
16211
  "name": "range",
16241
16212
  "parameters": [
@@ -16266,7 +16237,7 @@
16266
16237
  },
16267
16238
  "locationInModule": {
16268
16239
  "filename": "lib/endpoint.ts",
16269
- "line": 199
16240
+ "line": 200
16270
16241
  },
16271
16242
  "name": "value",
16272
16243
  "parameters": [
@@ -16304,7 +16275,7 @@
16304
16275
  "kind": "enum",
16305
16276
  "locationInModule": {
16306
16277
  "filename": "lib/endpoint.ts",
16307
- "line": 89
16278
+ "line": 90
16308
16279
  },
16309
16280
  "members": [
16310
16281
  {
@@ -16369,7 +16340,7 @@
16369
16340
  },
16370
16341
  "locationInModule": {
16371
16342
  "filename": "lib/endpoint.ts",
16372
- "line": 2886
16343
+ "line": 2900
16373
16344
  },
16374
16345
  "parameters": [
16375
16346
  {
@@ -16398,7 +16369,7 @@
16398
16369
  "kind": "class",
16399
16370
  "locationInModule": {
16400
16371
  "filename": "lib/endpoint.ts",
16401
- "line": 2834
16372
+ "line": 2848
16402
16373
  },
16403
16374
  "methods": [
16404
16375
  {
@@ -16409,7 +16380,7 @@
16409
16380
  },
16410
16381
  "locationInModule": {
16411
16382
  "filename": "lib/endpoint.ts",
16412
- "line": 2555
16383
+ "line": 2584
16413
16384
  },
16414
16385
  "name": "fromOriginEndpointArn",
16415
16386
  "parameters": [
@@ -16446,7 +16417,7 @@
16446
16417
  },
16447
16418
  "locationInModule": {
16448
16419
  "filename": "lib/endpoint.ts",
16449
- "line": 2584
16420
+ "line": 2613
16450
16421
  },
16451
16422
  "name": "fromOriginEndpointAttributes",
16452
16423
  "parameters": [
@@ -16478,13 +16449,13 @@
16478
16449
  },
16479
16450
  {
16480
16451
  "docs": {
16481
- "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.",
16482
16453
  "stability": "experimental",
16483
16454
  "summary": "Configure origin endpoint policy."
16484
16455
  },
16485
16456
  "locationInModule": {
16486
16457
  "filename": "lib/endpoint.ts",
16487
- "line": 2680
16458
+ "line": 2699
16488
16459
  },
16489
16460
  "name": "addToResourcePolicy",
16490
16461
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16497,17 +16468,6 @@
16497
16468
  "type": {
16498
16469
  "fqn": "aws-cdk-lib.aws_iam.PolicyStatement"
16499
16470
  }
16500
- },
16501
- {
16502
- "docs": {
16503
- "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.",
16504
- "summary": "- Optional CDN authorization configuration."
16505
- },
16506
- "name": "cdnAuth",
16507
- "optional": true,
16508
- "type": {
16509
- "fqn": "@aws-cdk/aws-mediapackagev2-alpha.CdnAuthConfiguration"
16510
- }
16511
16471
  }
16512
16472
  ],
16513
16473
  "returns": {
@@ -16523,7 +16483,7 @@
16523
16483
  },
16524
16484
  "locationInModule": {
16525
16485
  "filename": "lib/endpoint.ts",
16526
- "line": 2733
16486
+ "line": 2747
16527
16487
  },
16528
16488
  "name": "metric",
16529
16489
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16562,7 +16522,7 @@
16562
16522
  },
16563
16523
  "locationInModule": {
16564
16524
  "filename": "lib/endpoint.ts",
16565
- "line": 2765
16525
+ "line": 2779
16566
16526
  },
16567
16527
  "name": "metricEgressBytes",
16568
16528
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16589,7 +16549,7 @@
16589
16549
  },
16590
16550
  "locationInModule": {
16591
16551
  "filename": "lib/endpoint.ts",
16592
- "line": 2807
16552
+ "line": 2821
16593
16553
  },
16594
16554
  "name": "metricEgressRequestCount",
16595
16555
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16616,7 +16576,7 @@
16616
16576
  },
16617
16577
  "locationInModule": {
16618
16578
  "filename": "lib/endpoint.ts",
16619
- "line": 2793
16579
+ "line": 2807
16620
16580
  },
16621
16581
  "name": "metricEgressResponseTime",
16622
16582
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16643,7 +16603,7 @@
16643
16603
  },
16644
16604
  "locationInModule": {
16645
16605
  "filename": "lib/endpoint.ts",
16646
- "line": 2751
16606
+ "line": 2765
16647
16607
  },
16648
16608
  "name": "metricIngressBytes",
16649
16609
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16670,7 +16630,7 @@
16670
16630
  },
16671
16631
  "locationInModule": {
16672
16632
  "filename": "lib/endpoint.ts",
16673
- "line": 2821
16633
+ "line": 2835
16674
16634
  },
16675
16635
  "name": "metricIngressRequestCount",
16676
16636
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16697,7 +16657,7 @@
16697
16657
  },
16698
16658
  "locationInModule": {
16699
16659
  "filename": "lib/endpoint.ts",
16700
- "line": 2779
16660
+ "line": 2793
16701
16661
  },
16702
16662
  "name": "metricIngressResponseTime",
16703
16663
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16723,7 +16683,7 @@
16723
16683
  },
16724
16684
  "locationInModule": {
16725
16685
  "filename": "lib/endpoint.ts",
16726
- "line": 2704
16686
+ "line": 2718
16727
16687
  },
16728
16688
  "name": "segmentValidation",
16729
16689
  "parameters": [
@@ -16761,7 +16721,7 @@
16761
16721
  "immutable": true,
16762
16722
  "locationInModule": {
16763
16723
  "filename": "lib/endpoint.ts",
16764
- "line": 2837
16724
+ "line": 2851
16765
16725
  },
16766
16726
  "name": "PROPERTY_INJECTION_ID",
16767
16727
  "static": true,
@@ -16777,7 +16737,7 @@
16777
16737
  "immutable": true,
16778
16738
  "locationInModule": {
16779
16739
  "filename": "lib/endpoint.ts",
16780
- "line": 2839
16740
+ "line": 2853
16781
16741
  },
16782
16742
  "name": "channelGroupName",
16783
16743
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16793,7 +16753,7 @@
16793
16753
  "immutable": true,
16794
16754
  "locationInModule": {
16795
16755
  "filename": "lib/endpoint.ts",
16796
- "line": 2840
16756
+ "line": 2854
16797
16757
  },
16798
16758
  "name": "channelName",
16799
16759
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16809,7 +16769,7 @@
16809
16769
  "immutable": true,
16810
16770
  "locationInModule": {
16811
16771
  "filename": "lib/endpoint.ts",
16812
- "line": 2842
16772
+ "line": 2856
16813
16773
  },
16814
16774
  "name": "originEndpointArn",
16815
16775
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16825,7 +16785,7 @@
16825
16785
  "immutable": true,
16826
16786
  "locationInModule": {
16827
16787
  "filename": "lib/endpoint.ts",
16828
- "line": 2841
16788
+ "line": 2855
16829
16789
  },
16830
16790
  "name": "originEndpointName",
16831
16791
  "overrides": "@aws-cdk/aws-mediapackagev2-alpha.IOriginEndpoint",
@@ -16842,7 +16802,7 @@
16842
16802
  "immutable": true,
16843
16803
  "locationInModule": {
16844
16804
  "filename": "lib/endpoint.ts",
16845
- "line": 2629
16805
+ "line": 2658
16846
16806
  },
16847
16807
  "name": "originEndpointRef",
16848
16808
  "overrides": "aws-cdk-lib.interfaces.aws_mediapackagev2.IOriginEndpointRef",
@@ -16858,7 +16818,7 @@
16858
16818
  "immutable": true,
16859
16819
  "locationInModule": {
16860
16820
  "filename": "lib/endpoint.ts",
16861
- "line": 2847
16821
+ "line": 2861
16862
16822
  },
16863
16823
  "name": "createdAt",
16864
16824
  "optional": true,
@@ -16875,7 +16835,7 @@
16875
16835
  "immutable": true,
16876
16836
  "locationInModule": {
16877
16837
  "filename": "lib/endpoint.ts",
16878
- "line": 2867
16838
+ "line": 2881
16879
16839
  },
16880
16840
  "name": "dashManifestUrls",
16881
16841
  "optional": true,
@@ -16897,7 +16857,7 @@
16897
16857
  "immutable": true,
16898
16858
  "locationInModule": {
16899
16859
  "filename": "lib/endpoint.ts",
16900
- "line": 2862
16860
+ "line": 2876
16901
16861
  },
16902
16862
  "name": "hlsManifestUrls",
16903
16863
  "optional": true,
@@ -16919,7 +16879,7 @@
16919
16879
  "immutable": true,
16920
16880
  "locationInModule": {
16921
16881
  "filename": "lib/endpoint.ts",
16922
- "line": 2857
16882
+ "line": 2871
16923
16883
  },
16924
16884
  "name": "lowLatencyHlsManifestUrls",
16925
16885
  "optional": true,
@@ -16941,7 +16901,7 @@
16941
16901
  "immutable": true,
16942
16902
  "locationInModule": {
16943
16903
  "filename": "lib/endpoint.ts",
16944
- "line": 2852
16904
+ "line": 2866
16945
16905
  },
16946
16906
  "name": "modifiedAt",
16947
16907
  "optional": true,
@@ -16958,7 +16918,7 @@
16958
16918
  "immutable": true,
16959
16919
  "locationInModule": {
16960
16920
  "filename": "lib/endpoint.ts",
16961
- "line": 2871
16921
+ "line": 2885
16962
16922
  },
16963
16923
  "name": "mssManifestUrls",
16964
16924
  "optional": true,
@@ -16979,7 +16939,7 @@
16979
16939
  },
16980
16940
  "locationInModule": {
16981
16941
  "filename": "lib/endpoint.ts",
16982
- "line": 2879
16942
+ "line": 2893
16983
16943
  },
16984
16944
  "name": "autoCreatePolicy",
16985
16945
  "protected": true,
@@ -16993,7 +16953,7 @@
16993
16953
  },
16994
16954
  "locationInModule": {
16995
16955
  "filename": "lib/endpoint.ts",
16996
- "line": 2882
16956
+ "line": 2896
16997
16957
  },
16998
16958
  "name": "dashManifests",
16999
16959
  "protected": true,
@@ -17012,7 +16972,7 @@
17012
16972
  },
17013
16973
  "locationInModule": {
17014
16974
  "filename": "lib/endpoint.ts",
17015
- "line": 2880
16975
+ "line": 2894
17016
16976
  },
17017
16977
  "name": "hlsManifests",
17018
16978
  "protected": true,
@@ -17031,7 +16991,7 @@
17031
16991
  },
17032
16992
  "locationInModule": {
17033
16993
  "filename": "lib/endpoint.ts",
17034
- "line": 2881
16994
+ "line": 2895
17035
16995
  },
17036
16996
  "name": "llHlsManifests",
17037
16997
  "protected": true,
@@ -17050,7 +17010,7 @@
17050
17010
  },
17051
17011
  "locationInModule": {
17052
17012
  "filename": "lib/endpoint.ts",
17053
- "line": 2883
17013
+ "line": 2897
17054
17014
  },
17055
17015
  "name": "mssManifests",
17056
17016
  "protected": true,
@@ -17063,6 +17023,23 @@
17063
17023
  }
17064
17024
  }
17065
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
+ },
17066
17043
  {
17067
17044
  "docs": {
17068
17045
  "remarks": "If `autoCreatePolicy` is true, an `OriginEndpointPolicy` will be created upon the\nfirst call to addToResourcePolicy(s).",
@@ -17071,7 +17048,7 @@
17071
17048
  },
17072
17049
  "locationInModule": {
17073
17050
  "filename": "lib/endpoint.ts",
17074
- "line": 2878
17051
+ "line": 2892
17075
17052
  },
17076
17053
  "name": "policy",
17077
17054
  "optional": true,
@@ -17085,7 +17062,7 @@
17085
17062
  },
17086
17063
  "locationInModule": {
17087
17064
  "filename": "lib/endpoint.ts",
17088
- "line": 2884
17065
+ "line": 2898
17089
17066
  },
17090
17067
  "name": "segment",
17091
17068
  "optional": true,
@@ -17112,7 +17089,7 @@
17112
17089
  "kind": "interface",
17113
17090
  "locationInModule": {
17114
17091
  "filename": "lib/endpoint.ts",
17115
- "line": 1862
17092
+ "line": 1891
17116
17093
  },
17117
17094
  "name": "OriginEndpointAttributes",
17118
17095
  "properties": [
@@ -17129,7 +17106,7 @@
17129
17106
  "immutable": true,
17130
17107
  "locationInModule": {
17131
17108
  "filename": "lib/endpoint.ts",
17132
- "line": 1868
17109
+ "line": 1897
17133
17110
  },
17134
17111
  "name": "channelGroupName",
17135
17112
  "type": {
@@ -17149,7 +17126,7 @@
17149
17126
  "immutable": true,
17150
17127
  "locationInModule": {
17151
17128
  "filename": "lib/endpoint.ts",
17152
- "line": 1875
17129
+ "line": 1904
17153
17130
  },
17154
17131
  "name": "channelName",
17155
17132
  "type": {
@@ -17168,7 +17145,7 @@
17168
17145
  "immutable": true,
17169
17146
  "locationInModule": {
17170
17147
  "filename": "lib/endpoint.ts",
17171
- "line": 1882
17148
+ "line": 1911
17172
17149
  },
17173
17150
  "name": "originEndpointName",
17174
17151
  "type": {
@@ -17186,7 +17163,7 @@
17186
17163
  "immutable": true,
17187
17164
  "locationInModule": {
17188
17165
  "filename": "lib/endpoint.ts",
17189
- "line": 1891
17166
+ "line": 1920
17190
17167
  },
17191
17168
  "name": "region",
17192
17169
  "optional": true,
@@ -17258,13 +17235,15 @@
17258
17235
  "abstract": true,
17259
17236
  "docs": {
17260
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",
17261
17240
  "stability": "experimental",
17262
17241
  "summary": "Provide access to MediaPackage V2 Origin Endpoint via secret header."
17263
17242
  },
17264
17243
  "immutable": true,
17265
17244
  "locationInModule": {
17266
17245
  "filename": "lib/endpoint.ts",
17267
- "line": 1834
17246
+ "line": 1863
17268
17247
  },
17269
17248
  "name": "cdnAuth",
17270
17249
  "optional": true,
@@ -17342,7 +17321,7 @@
17342
17321
  "immutable": true,
17343
17322
  "locationInModule": {
17344
17323
  "filename": "lib/endpoint.ts",
17345
- "line": 1846
17324
+ "line": 1875
17346
17325
  },
17347
17326
  "name": "removalPolicy",
17348
17327
  "optional": true,
@@ -17414,7 +17393,7 @@
17414
17393
  },
17415
17394
  "locationInModule": {
17416
17395
  "filename": "lib/origin-endpoint-policy.ts",
17417
- "line": 87
17396
+ "line": 91
17418
17397
  },
17419
17398
  "parameters": [
17420
17399
  {
@@ -17440,7 +17419,7 @@
17440
17419
  "kind": "class",
17441
17420
  "locationInModule": {
17442
17421
  "filename": "lib/origin-endpoint-policy.ts",
17443
- "line": 77
17422
+ "line": 81
17444
17423
  },
17445
17424
  "name": "OriginEndpointPolicy",
17446
17425
  "properties": [
@@ -17453,7 +17432,7 @@
17453
17432
  "immutable": true,
17454
17433
  "locationInModule": {
17455
17434
  "filename": "lib/origin-endpoint-policy.ts",
17456
- "line": 80
17435
+ "line": 84
17457
17436
  },
17458
17437
  "name": "PROPERTY_INJECTION_ID",
17459
17438
  "static": true,
@@ -17469,7 +17448,7 @@
17469
17448
  "immutable": true,
17470
17449
  "locationInModule": {
17471
17450
  "filename": "lib/origin-endpoint-policy.ts",
17472
- "line": 85
17451
+ "line": 89
17473
17452
  },
17474
17453
  "name": "document",
17475
17454
  "type": {
@@ -17494,7 +17473,7 @@
17494
17473
  "kind": "interface",
17495
17474
  "locationInModule": {
17496
17475
  "filename": "lib/origin-endpoint-policy.ts",
17497
- "line": 35
17476
+ "line": 39
17498
17477
  },
17499
17478
  "name": "OriginEndpointPolicyProps",
17500
17479
  "properties": [
@@ -17507,7 +17486,7 @@
17507
17486
  "immutable": true,
17508
17487
  "locationInModule": {
17509
17488
  "filename": "lib/origin-endpoint-policy.ts",
17510
- "line": 39
17489
+ "line": 43
17511
17490
  },
17512
17491
  "name": "originEndpoint",
17513
17492
  "type": {
@@ -17524,7 +17503,7 @@
17524
17503
  "immutable": true,
17525
17504
  "locationInModule": {
17526
17505
  "filename": "lib/origin-endpoint-policy.ts",
17527
- "line": 53
17506
+ "line": 57
17528
17507
  },
17529
17508
  "name": "cdnAuth",
17530
17509
  "optional": true,
@@ -17542,7 +17521,7 @@
17542
17521
  "immutable": true,
17543
17522
  "locationInModule": {
17544
17523
  "filename": "lib/origin-endpoint-policy.ts",
17545
- "line": 46
17524
+ "line": 50
17546
17525
  },
17547
17526
  "name": "policyDocument",
17548
17527
  "optional": true,
@@ -17571,7 +17550,7 @@
17571
17550
  "kind": "interface",
17572
17551
  "locationInModule": {
17573
17552
  "filename": "lib/endpoint.ts",
17574
- "line": 1852
17553
+ "line": 1881
17575
17554
  },
17576
17555
  "name": "OriginEndpointProps",
17577
17556
  "properties": [
@@ -17584,7 +17563,7 @@
17584
17563
  "immutable": true,
17585
17564
  "locationInModule": {
17586
17565
  "filename": "lib/endpoint.ts",
17587
- "line": 1856
17566
+ "line": 1885
17588
17567
  },
17589
17568
  "name": "channel",
17590
17569
  "type": {
@@ -17608,7 +17587,7 @@
17608
17587
  "kind": "enum",
17609
17588
  "locationInModule": {
17610
17589
  "filename": "lib/endpoint.ts",
17611
- "line": 819
17590
+ "line": 820
17612
17591
  },
17613
17592
  "members": [
17614
17593
  {
@@ -17665,7 +17644,7 @@
17665
17644
  "kind": "enum",
17666
17645
  "locationInModule": {
17667
17646
  "filename": "lib/endpoint.ts",
17668
- "line": 848
17647
+ "line": 849
17669
17648
  },
17670
17649
  "members": [
17671
17650
  {
@@ -17752,7 +17731,7 @@
17752
17731
  "kind": "enum",
17753
17732
  "locationInModule": {
17754
17733
  "filename": "lib/endpoint.ts",
17755
- "line": 962
17734
+ "line": 963
17756
17735
  },
17757
17736
  "members": [
17758
17737
  {
@@ -17784,7 +17763,7 @@
17784
17763
  "kind": "enum",
17785
17764
  "locationInModule": {
17786
17765
  "filename": "lib/endpoint.ts",
17787
- "line": 920
17766
+ "line": 921
17788
17767
  },
17789
17768
  "members": [
17790
17769
  {
@@ -17873,7 +17852,7 @@
17873
17852
  "kind": "class",
17874
17853
  "locationInModule": {
17875
17854
  "filename": "lib/endpoint.ts",
17876
- "line": 2495
17855
+ "line": 2524
17877
17856
  },
17878
17857
  "methods": [
17879
17858
  {
@@ -17884,7 +17863,7 @@
17884
17863
  },
17885
17864
  "locationInModule": {
17886
17865
  "filename": "lib/endpoint.ts",
17887
- "line": 2520
17866
+ "line": 2549
17888
17867
  },
17889
17868
  "name": "cmaf",
17890
17869
  "parameters": [
@@ -17911,7 +17890,7 @@
17911
17890
  },
17912
17891
  "locationInModule": {
17913
17892
  "filename": "lib/endpoint.ts",
17914
- "line": 2537
17893
+ "line": 2566
17915
17894
  },
17916
17895
  "name": "ism",
17917
17896
  "parameters": [
@@ -17938,7 +17917,7 @@
17938
17917
  },
17939
17918
  "locationInModule": {
17940
17919
  "filename": "lib/endpoint.ts",
17941
- "line": 2501
17920
+ "line": 2530
17942
17921
  },
17943
17922
  "name": "ts",
17944
17923
  "parameters": [
@@ -17976,7 +17955,7 @@
17976
17955
  "kind": "interface",
17977
17956
  "locationInModule": {
17978
17957
  "filename": "lib/endpoint.ts",
17979
- "line": 2325
17958
+ "line": 2354
17980
17959
  },
17981
17960
  "name": "SegmentConfiguration",
17982
17961
  "properties": [
@@ -17989,7 +17968,7 @@
17989
17968
  "immutable": true,
17990
17969
  "locationInModule": {
17991
17970
  "filename": "lib/endpoint.ts",
17992
- "line": 2329
17971
+ "line": 2358
17993
17972
  },
17994
17973
  "name": "containerType",
17995
17974
  "type": {
@@ -18006,7 +17985,7 @@
18006
17985
  "immutable": true,
18007
17986
  "locationInModule": {
18008
17987
  "filename": "lib/endpoint.ts",
18009
- "line": 2379
17988
+ "line": 2408
18010
17989
  },
18011
17990
  "name": "encryption",
18012
17991
  "optional": true,
@@ -18024,7 +18003,7 @@
18024
18003
  "immutable": true,
18025
18004
  "locationInModule": {
18026
18005
  "filename": "lib/endpoint.ts",
18027
- "line": 2335
18006
+ "line": 2364
18028
18007
  },
18029
18008
  "name": "includeIframeOnlyStreams",
18030
18009
  "optional": true,
@@ -18043,7 +18022,7 @@
18043
18022
  "immutable": true,
18044
18023
  "locationInModule": {
18045
18024
  "filename": "lib/endpoint.ts",
18046
- "line": 2343
18025
+ "line": 2372
18047
18026
  },
18048
18027
  "name": "scteFilter",
18049
18028
  "optional": true,
@@ -18066,7 +18045,7 @@
18066
18045
  "immutable": true,
18067
18046
  "locationInModule": {
18068
18047
  "filename": "lib/endpoint.ts",
18069
- "line": 2349
18048
+ "line": 2378
18070
18049
  },
18071
18050
  "name": "scteInSegments",
18072
18051
  "optional": true,
@@ -18084,7 +18063,7 @@
18084
18063
  "immutable": true,
18085
18064
  "locationInModule": {
18086
18065
  "filename": "lib/endpoint.ts",
18087
- "line": 2355
18066
+ "line": 2384
18088
18067
  },
18089
18068
  "name": "segmentDuration",
18090
18069
  "optional": true,
@@ -18102,7 +18081,7 @@
18102
18081
  "immutable": true,
18103
18082
  "locationInModule": {
18104
18083
  "filename": "lib/endpoint.ts",
18105
- "line": 2361
18084
+ "line": 2390
18106
18085
  },
18107
18086
  "name": "segmentName",
18108
18087
  "optional": true,
@@ -18120,7 +18099,7 @@
18120
18099
  "immutable": true,
18121
18100
  "locationInModule": {
18122
18101
  "filename": "lib/endpoint.ts",
18123
- "line": 2367
18102
+ "line": 2396
18124
18103
  },
18125
18104
  "name": "tsIncludeDvbSubtitles",
18126
18105
  "optional": true,
@@ -18138,7 +18117,7 @@
18138
18117
  "immutable": true,
18139
18118
  "locationInModule": {
18140
18119
  "filename": "lib/endpoint.ts",
18141
- "line": 2373
18120
+ "line": 2402
18142
18121
  },
18143
18122
  "name": "tsUseAudioRenditionGroup",
18144
18123
  "optional": true,
@@ -18164,7 +18143,7 @@
18164
18143
  "kind": "interface",
18165
18144
  "locationInModule": {
18166
18145
  "filename": "lib/endpoint.ts",
18167
- "line": 2385
18146
+ "line": 2414
18168
18147
  },
18169
18148
  "name": "SegmentPropsBase",
18170
18149
  "properties": [
@@ -18178,7 +18157,7 @@
18178
18157
  "immutable": true,
18179
18158
  "locationInModule": {
18180
18159
  "filename": "lib/endpoint.ts",
18181
- "line": 2398
18160
+ "line": 2427
18182
18161
  },
18183
18162
  "name": "duration",
18184
18163
  "optional": true,
@@ -18196,7 +18175,7 @@
18196
18175
  "immutable": true,
18197
18176
  "locationInModule": {
18198
18177
  "filename": "lib/endpoint.ts",
18199
- "line": 2391
18178
+ "line": 2420
18200
18179
  },
18201
18180
  "name": "includeIframeOnlyStreams",
18202
18181
  "optional": true,
@@ -18214,7 +18193,7 @@
18214
18193
  "immutable": true,
18215
18194
  "locationInModule": {
18216
18195
  "filename": "lib/endpoint.ts",
18217
- "line": 2405
18196
+ "line": 2434
18218
18197
  },
18219
18198
  "name": "name",
18220
18199
  "optional": true,
@@ -18435,7 +18414,7 @@
18435
18414
  "kind": "enum",
18436
18415
  "locationInModule": {
18437
18416
  "filename": "lib/endpoint.ts",
18438
- "line": 146
18417
+ "line": 147
18439
18418
  },
18440
18419
  "members": [
18441
18420
  {
@@ -18469,7 +18448,7 @@
18469
18448
  "kind": "enum",
18470
18449
  "locationInModule": {
18471
18450
  "filename": "lib/endpoint.ts",
18472
- "line": 70
18451
+ "line": 71
18473
18452
  },
18474
18453
  "members": [
18475
18454
  {
@@ -18508,7 +18487,7 @@
18508
18487
  "kind": "enum",
18509
18488
  "locationInModule": {
18510
18489
  "filename": "lib/endpoint.ts",
18511
- "line": 1924
18490
+ "line": 1953
18512
18491
  },
18513
18492
  "members": [
18514
18493
  {
@@ -18545,7 +18524,7 @@
18545
18524
  "kind": "class",
18546
18525
  "locationInModule": {
18547
18526
  "filename": "lib/endpoint.ts",
18548
- "line": 2218
18527
+ "line": 2247
18549
18528
  },
18550
18529
  "methods": [
18551
18530
  {
@@ -18555,7 +18534,7 @@
18555
18534
  },
18556
18535
  "locationInModule": {
18557
18536
  "filename": "lib/endpoint.ts",
18558
- "line": 2222
18537
+ "line": 2251
18559
18538
  },
18560
18539
  "name": "speke",
18561
18540
  "parameters": [
@@ -18591,7 +18570,7 @@
18591
18570
  "kind": "enum",
18592
18571
  "locationInModule": {
18593
18572
  "filename": "lib/endpoint.ts",
18594
- "line": 805
18573
+ "line": 806
18595
18574
  },
18596
18575
  "members": [
18597
18576
  {
@@ -18630,7 +18609,7 @@
18630
18609
  "kind": "interface",
18631
18610
  "locationInModule": {
18632
18611
  "filename": "lib/endpoint.ts",
18633
- "line": 2411
18612
+ "line": 2440
18634
18613
  },
18635
18614
  "name": "TsSegmentProps",
18636
18615
  "properties": [
@@ -18645,7 +18624,7 @@
18645
18624
  "immutable": true,
18646
18625
  "locationInModule": {
18647
18626
  "filename": "lib/endpoint.ts",
18648
- "line": 2447
18627
+ "line": 2476
18649
18628
  },
18650
18629
  "name": "encryption",
18651
18630
  "optional": true,
@@ -18663,7 +18642,7 @@
18663
18642
  "immutable": true,
18664
18643
  "locationInModule": {
18665
18644
  "filename": "lib/endpoint.ts",
18666
- "line": 2431
18645
+ "line": 2460
18667
18646
  },
18668
18647
  "name": "includeDvbSubtitles",
18669
18648
  "optional": true,
@@ -18681,7 +18660,7 @@
18681
18660
  "immutable": true,
18682
18661
  "locationInModule": {
18683
18662
  "filename": "lib/endpoint.ts",
18684
- "line": 2417
18663
+ "line": 2446
18685
18664
  },
18686
18665
  "name": "scteFilter",
18687
18666
  "optional": true,
@@ -18704,7 +18683,7 @@
18704
18683
  "immutable": true,
18705
18684
  "locationInModule": {
18706
18685
  "filename": "lib/endpoint.ts",
18707
- "line": 2424
18686
+ "line": 2453
18708
18687
  },
18709
18688
  "name": "scteInSegments",
18710
18689
  "optional": true,
@@ -18722,7 +18701,7 @@
18722
18701
  "immutable": true,
18723
18702
  "locationInModule": {
18724
18703
  "filename": "lib/endpoint.ts",
18725
- "line": 2438
18704
+ "line": 2467
18726
18705
  },
18727
18706
  "name": "useAudioRenditionGroup",
18728
18707
  "optional": true,
@@ -18748,7 +18727,7 @@
18748
18727
  "kind": "interface",
18749
18728
  "locationInModule": {
18750
18729
  "filename": "lib/endpoint.ts",
18751
- "line": 2043
18730
+ "line": 2072
18752
18731
  },
18753
18732
  "name": "TsSpekeEncryptionProps",
18754
18733
  "properties": [
@@ -18761,7 +18740,7 @@
18761
18740
  "immutable": true,
18762
18741
  "locationInModule": {
18763
18742
  "filename": "lib/endpoint.ts",
18764
- "line": 2047
18743
+ "line": 2076
18765
18744
  },
18766
18745
  "name": "method",
18767
18746
  "type": {
@@ -18778,7 +18757,7 @@
18778
18757
  "immutable": true,
18779
18758
  "locationInModule": {
18780
18759
  "filename": "lib/endpoint.ts",
18781
- "line": 1958
18760
+ "line": 1987
18782
18761
  },
18783
18762
  "name": "resourceId",
18784
18763
  "type": {
@@ -18795,7 +18774,7 @@
18795
18774
  "immutable": true,
18796
18775
  "locationInModule": {
18797
18776
  "filename": "lib/endpoint.ts",
18798
- "line": 1966
18777
+ "line": 1995
18799
18778
  },
18800
18779
  "name": "role",
18801
18780
  "type": {
@@ -18811,7 +18790,7 @@
18811
18790
  "immutable": true,
18812
18791
  "locationInModule": {
18813
18792
  "filename": "lib/endpoint.ts",
18814
- "line": 1971
18793
+ "line": 2000
18815
18794
  },
18816
18795
  "name": "url",
18817
18796
  "type": {
@@ -18828,7 +18807,7 @@
18828
18807
  "immutable": true,
18829
18808
  "locationInModule": {
18830
18809
  "filename": "lib/endpoint.ts",
18831
- "line": 1988
18810
+ "line": 2017
18832
18811
  },
18833
18812
  "name": "audioPreset",
18834
18813
  "optional": true,
@@ -18847,7 +18826,7 @@
18847
18826
  "immutable": true,
18848
18827
  "locationInModule": {
18849
18828
  "filename": "lib/endpoint.ts",
18850
- "line": 1981
18829
+ "line": 2010
18851
18830
  },
18852
18831
  "name": "certificate",
18853
18832
  "optional": true,
@@ -18866,7 +18845,7 @@
18866
18845
  "immutable": true,
18867
18846
  "locationInModule": {
18868
18847
  "filename": "lib/endpoint.ts",
18869
- "line": 2064
18848
+ "line": 2093
18870
18849
  },
18871
18850
  "name": "constantInitializationVector",
18872
18851
  "optional": true,
@@ -18884,7 +18863,7 @@
18884
18863
  "immutable": true,
18885
18864
  "locationInModule": {
18886
18865
  "filename": "lib/endpoint.ts",
18887
- "line": 2054
18866
+ "line": 2083
18888
18867
  },
18889
18868
  "name": "drmSystems",
18890
18869
  "optional": true,
@@ -18907,7 +18886,7 @@
18907
18886
  "immutable": true,
18908
18887
  "locationInModule": {
18909
18888
  "filename": "lib/endpoint.ts",
18910
- "line": 2071
18889
+ "line": 2100
18911
18890
  },
18912
18891
  "name": "keyRotationInterval",
18913
18892
  "optional": true,
@@ -18925,7 +18904,7 @@
18925
18904
  "immutable": true,
18926
18905
  "locationInModule": {
18927
18906
  "filename": "lib/endpoint.ts",
18928
- "line": 1995
18907
+ "line": 2024
18929
18908
  },
18930
18909
  "name": "videoPreset",
18931
18910
  "optional": true,
@@ -18978,7 +18957,7 @@
18978
18957
  "kind": "enum",
18979
18958
  "locationInModule": {
18980
18959
  "filename": "lib/endpoint.ts",
18981
- "line": 40
18960
+ "line": 41
18982
18961
  },
18983
18962
  "members": [
18984
18963
  {
@@ -19017,7 +18996,7 @@
19017
18996
  "kind": "enum",
19018
18997
  "locationInModule": {
19019
18998
  "filename": "lib/endpoint.ts",
19020
- "line": 54
18999
+ "line": 55
19021
19000
  },
19022
19001
  "members": [
19023
19002
  {
@@ -19053,6 +19032,6 @@
19053
19032
  "symbolId": "lib/endpoint:VideoDynamicRange"
19054
19033
  }
19055
19034
  },
19056
- "version": "2.257.0-alpha.0",
19035
+ "version": "2.258.0-alpha.0",
19057
19036
  "fingerprint": "**********"
19058
19037
  }