createOriginEndpoint

The endpoint is attached to a channel, and represents the output of the live content. You can associate multiple endpoints to a single channel. Each endpoint gives players and downstream CDNs (such as Amazon CloudFront) access to the content for playback. Content can't be served from a channel until it has an endpoint. You can create only one endpoint with each request.

Samples

import aws.sdk.kotlin.services.mediapackagev2.model.CreateHlsManifestConfiguration
import aws.sdk.kotlin.services.mediapackagev2.model.CreateLowLatencyHlsManifestConfiguration
import aws.sdk.kotlin.services.mediapackagev2.model.DrmSystem
import aws.sdk.kotlin.services.mediapackagev2.model.ScteFilter
fun main() { 
   //sampleStart 
   // Creating an OriginEndpoint with container type TS, and encryption enabled
val resp = mediaPackageV2Client.createOriginEndpoint {
    channelGroupName = "exampleChannelGroup"
    channelName = "exampleChannel"
    originEndpointName = "exampleOriginEndpointTS"
    containerType = ContainerType.fromValue("TS")
    description = "Description for exampleOriginEndpointTS"
    startoverWindowSeconds = 300
    segment = Segment {
        segmentDurationSeconds = 6
        segmentName = "segmentName"
        tsUseAudioRenditionGroup = true
        includeIframeOnlyStreams = true
        tsIncludeDvbSubtitles = true
        scte = Scte {
            scteFilter = listOf<ScteFilter>(
                ScteFilter.fromValue("SPLICE_INSERT"),
                ScteFilter.fromValue("BREAK")
            )
        }
        encryption = Encryption {
            constantInitializationVector = "A382A901F3C1F7718512266CFFBB0B7E"
            encryptionMethod = EncryptionMethod {
                tsEncryptionMethod = TsEncryptionMethod.fromValue("AES_128")
            }
            keyRotationIntervalSeconds = 300
            spekeKeyProvider = SpekeKeyProvider {
                encryptionContractConfiguration = EncryptionContractConfiguration {
                    presetSpeke20Audio = PresetSpeke20Audio.fromValue("SHARED")
                    presetSpeke20Video = PresetSpeke20Video.fromValue("SHARED")
                }
                resourceId = "ResourceId"
                drmSystems = listOf<DrmSystem>(
                    DrmSystem.fromValue("CLEAR_KEY_AES_128")
                )
                roleArn = "arn:aws:iam::123456789012:role/empRole"
                url = "https://foo.com"
            }
        }
    }
    hlsManifests = listOf<CreateHlsManifestConfiguration>(
        CreateHlsManifestConfiguration {
            manifestName = "exampleManifest1"
            childManifestName = "exampleChildManifest1"
            scteHls = ScteHls {
                adMarkerHls = AdMarkerHls.fromValue("DATERANGE")
            }
            manifestWindowSeconds = 30
            programDateTimeIntervalSeconds = 60
        },
        CreateHlsManifestConfiguration {
            manifestName = "exampleManifest2"
            childManifestName = "exampleManifest2"
            scteHls = ScteHls {
                adMarkerHls = AdMarkerHls.fromValue("DATERANGE")
            }
            manifestWindowSeconds = 30
            programDateTimeIntervalSeconds = 60
        }            
    )
    lowLatencyHlsManifests = listOf<CreateLowLatencyHlsManifestConfiguration>(
        CreateLowLatencyHlsManifestConfiguration {
            manifestName = "exampleLLManifest1"
            childManifestName = "exampleLLChildManifest1"
            scteHls = ScteHls {
                adMarkerHls = AdMarkerHls.fromValue("DATERANGE")
            }
            manifestWindowSeconds = 30
            programDateTimeIntervalSeconds = 60
        },
        CreateLowLatencyHlsManifestConfiguration {
            manifestName = "exampleLLManifest2"
            childManifestName = "exampleLLManifest2"
            scteHls = ScteHls {
                adMarkerHls = AdMarkerHls.fromValue("DATERANGE")
            }
            manifestWindowSeconds = 30
            programDateTimeIntervalSeconds = 60
        }            
    )
    tags = mapOf<String, String>(
        "key1" to "value1",
        "key2" to "value2"
    )
} 
   //sampleEnd
}
import aws.sdk.kotlin.services.mediapackagev2.model.CreateHlsManifestConfiguration
import aws.sdk.kotlin.services.mediapackagev2.model.CreateLowLatencyHlsManifestConfiguration
import aws.sdk.kotlin.services.mediapackagev2.model.DrmSystem
import aws.sdk.kotlin.services.mediapackagev2.model.ScteFilter
fun main() { 
   //sampleStart 
   // Creating an OriginEndpoint with container type CMAF, and encryption enabled
val resp = mediaPackageV2Client.createOriginEndpoint {
    channelGroupName = "exampleChannelGroup"
    channelName = "exampleChannel"
    originEndpointName = "exampleOriginEndpointCMAF"
    containerType = ContainerType.fromValue("TS")
    startoverWindowSeconds = 300
    segment = Segment {
        segmentDurationSeconds = 6
        segmentName = "segmentName"
        includeIframeOnlyStreams = true
        scte = Scte {
            scteFilter = listOf<ScteFilter>(
                ScteFilter.fromValue("SPLICE_INSERT"),
                ScteFilter.fromValue("BREAK")
            )
        }
        encryption = Encryption {
            constantInitializationVector = "A382A901F3C1F7718512266CFFBB0B9F"
            encryptionMethod = EncryptionMethod {
                cmafEncryptionMethod = CmafEncryptionMethod.fromValue("CBCS")
            }
            keyRotationIntervalSeconds = 300
            spekeKeyProvider = SpekeKeyProvider {
                encryptionContractConfiguration = EncryptionContractConfiguration {
                    presetSpeke20Audio = PresetSpeke20Audio.fromValue("PRESET_AUDIO_1")
                    presetSpeke20Video = PresetSpeke20Video.fromValue("PRESET_VIDEO_1")
                }
                resourceId = "ResourceId"
                drmSystems = listOf<DrmSystem>(
                    DrmSystem.fromValue("PLAYREADY"),
                    DrmSystem.fromValue("WIDEVINE")
                )
                roleArn = "arn:aws:iam::123456789012:role/empRole"
                url = "https://foo.com"
            }
        }
    }
    hlsManifests = listOf<CreateHlsManifestConfiguration>(
        CreateHlsManifestConfiguration {
            manifestName = "exampleManifest1"
            childManifestName = "exampleChildManifest1"
            scteHls = ScteHls {
                adMarkerHls = AdMarkerHls.fromValue("DATERANGE")
            }
            manifestWindowSeconds = 30
            programDateTimeIntervalSeconds = 60
        },
        CreateHlsManifestConfiguration {
            manifestName = "exampleManifest2"
            childManifestName = "exampleManifest2"
            scteHls = ScteHls {
                adMarkerHls = AdMarkerHls.fromValue("DATERANGE")
            }
            manifestWindowSeconds = 30
            programDateTimeIntervalSeconds = 60
        }            
    )
    lowLatencyHlsManifests = listOf<CreateLowLatencyHlsManifestConfiguration>(
        CreateLowLatencyHlsManifestConfiguration {
            manifestName = "exampleLLManifest1"
            childManifestName = "exampleLLChildManifest1"
            scteHls = ScteHls {
                adMarkerHls = AdMarkerHls.fromValue("DATERANGE")
            }
            manifestWindowSeconds = 30
            programDateTimeIntervalSeconds = 60
        },
        CreateLowLatencyHlsManifestConfiguration {
            manifestName = "exampleLLManifest2"
            childManifestName = "exampleLLManifest2"
            scteHls = ScteHls {
                adMarkerHls = AdMarkerHls.fromValue("DATERANGE")
            }
            manifestWindowSeconds = 30
            programDateTimeIntervalSeconds = 60
        }            
    )
    tags = mapOf<String, String>(
        "key1" to "value1",
        "key2" to "value2"
    )
} 
   //sampleEnd
}