createOriginEndpoint
abstract suspend fun createOriginEndpoint(input: CreateOriginEndpointRequest): CreateOriginEndpointResponse
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.AdMarkerDash
import aws.sdk.kotlin.services.mediapackagev2.model.AdMarkerHls
import aws.sdk.kotlin.services.mediapackagev2.model.CmafEncryptionMethod
import aws.sdk.kotlin.services.mediapackagev2.model.ContainerType
import aws.sdk.kotlin.services.mediapackagev2.model.CreateDashManifestConfiguration
import aws.sdk.kotlin.services.mediapackagev2.model.CreateHlsManifestConfiguration
import aws.sdk.kotlin.services.mediapackagev2.model.CreateLowLatencyHlsManifestConfiguration
import aws.sdk.kotlin.services.mediapackagev2.model.CreateMssManifestConfiguration
import aws.sdk.kotlin.services.mediapackagev2.model.DashBaseUrl
import aws.sdk.kotlin.services.mediapackagev2.model.DashCompactness
import aws.sdk.kotlin.services.mediapackagev2.model.DashDrmSignaling
import aws.sdk.kotlin.services.mediapackagev2.model.DashDvbFontDownload
import aws.sdk.kotlin.services.mediapackagev2.model.DashDvbMetricsReporting
import aws.sdk.kotlin.services.mediapackagev2.model.DashDvbSettings
import aws.sdk.kotlin.services.mediapackagev2.model.DashPeriodTrigger
import aws.sdk.kotlin.services.mediapackagev2.model.DashProfile
import aws.sdk.kotlin.services.mediapackagev2.model.DashProgramInformation
import aws.sdk.kotlin.services.mediapackagev2.model.DashSegmentTemplateFormat
import aws.sdk.kotlin.services.mediapackagev2.model.DashUtcTiming
import aws.sdk.kotlin.services.mediapackagev2.model.DashUtcTimingMode
import aws.sdk.kotlin.services.mediapackagev2.model.DrmSystem
import aws.sdk.kotlin.services.mediapackagev2.model.Encryption
import aws.sdk.kotlin.services.mediapackagev2.model.EncryptionContractConfiguration
import aws.sdk.kotlin.services.mediapackagev2.model.EncryptionMethod
import aws.sdk.kotlin.services.mediapackagev2.model.EndpointErrorCondition
import aws.sdk.kotlin.services.mediapackagev2.model.ForceEndpointErrorConfiguration
import aws.sdk.kotlin.services.mediapackagev2.model.IsmEncryptionMethod
import aws.sdk.kotlin.services.mediapackagev2.model.MssManifestLayout
import aws.sdk.kotlin.services.mediapackagev2.model.PresetSpeke20Audio
import aws.sdk.kotlin.services.mediapackagev2.model.PresetSpeke20Video
import aws.sdk.kotlin.services.mediapackagev2.model.Scte
import aws.sdk.kotlin.services.mediapackagev2.model.ScteDash
import aws.sdk.kotlin.services.mediapackagev2.model.ScteFilter
import aws.sdk.kotlin.services.mediapackagev2.model.ScteHls
import aws.sdk.kotlin.services.mediapackagev2.model.Segment
import aws.sdk.kotlin.services.mediapackagev2.model.SpekeKeyProvider
import aws.sdk.kotlin.services.mediapackagev2.model.TsEncryptionMethod
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
forceEndpointErrorConfiguration = ForceEndpointErrorConfiguration {
endpointErrorConditions = listOf<EndpointErrorCondition>(
EndpointErrorCondition.fromValue("STALE_MANIFEST"),
EndpointErrorCondition.fromValue("INCOMPLETE_MANIFEST"),
EndpointErrorCondition.fromValue("MISSING_DRM_KEY"),
EndpointErrorCondition.fromValue("SLATE_INPUT")
)
}
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.AdMarkerDash
import aws.sdk.kotlin.services.mediapackagev2.model.AdMarkerHls
import aws.sdk.kotlin.services.mediapackagev2.model.CmafEncryptionMethod
import aws.sdk.kotlin.services.mediapackagev2.model.ContainerType
import aws.sdk.kotlin.services.mediapackagev2.model.CreateDashManifestConfiguration
import aws.sdk.kotlin.services.mediapackagev2.model.CreateHlsManifestConfiguration
import aws.sdk.kotlin.services.mediapackagev2.model.CreateLowLatencyHlsManifestConfiguration
import aws.sdk.kotlin.services.mediapackagev2.model.CreateMssManifestConfiguration
import aws.sdk.kotlin.services.mediapackagev2.model.DashBaseUrl
import aws.sdk.kotlin.services.mediapackagev2.model.DashCompactness
import aws.sdk.kotlin.services.mediapackagev2.model.DashDrmSignaling
import aws.sdk.kotlin.services.mediapackagev2.model.DashDvbFontDownload
import aws.sdk.kotlin.services.mediapackagev2.model.DashDvbMetricsReporting
import aws.sdk.kotlin.services.mediapackagev2.model.DashDvbSettings
import aws.sdk.kotlin.services.mediapackagev2.model.DashPeriodTrigger
import aws.sdk.kotlin.services.mediapackagev2.model.DashProfile
import aws.sdk.kotlin.services.mediapackagev2.model.DashProgramInformation
import aws.sdk.kotlin.services.mediapackagev2.model.DashSegmentTemplateFormat
import aws.sdk.kotlin.services.mediapackagev2.model.DashUtcTiming
import aws.sdk.kotlin.services.mediapackagev2.model.DashUtcTimingMode
import aws.sdk.kotlin.services.mediapackagev2.model.DrmSystem
import aws.sdk.kotlin.services.mediapackagev2.model.Encryption
import aws.sdk.kotlin.services.mediapackagev2.model.EncryptionContractConfiguration
import aws.sdk.kotlin.services.mediapackagev2.model.EncryptionMethod
import aws.sdk.kotlin.services.mediapackagev2.model.EndpointErrorCondition
import aws.sdk.kotlin.services.mediapackagev2.model.ForceEndpointErrorConfiguration
import aws.sdk.kotlin.services.mediapackagev2.model.IsmEncryptionMethod
import aws.sdk.kotlin.services.mediapackagev2.model.MssManifestLayout
import aws.sdk.kotlin.services.mediapackagev2.model.PresetSpeke20Audio
import aws.sdk.kotlin.services.mediapackagev2.model.PresetSpeke20Video
import aws.sdk.kotlin.services.mediapackagev2.model.Scte
import aws.sdk.kotlin.services.mediapackagev2.model.ScteDash
import aws.sdk.kotlin.services.mediapackagev2.model.ScteFilter
import aws.sdk.kotlin.services.mediapackagev2.model.ScteHls
import aws.sdk.kotlin.services.mediapackagev2.model.Segment
import aws.sdk.kotlin.services.mediapackagev2.model.SpekeKeyProvider
import aws.sdk.kotlin.services.mediapackagev2.model.TsEncryptionMethod
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("CMAF")
startoverWindowSeconds = 300
forceEndpointErrorConfiguration = ForceEndpointErrorConfiguration {
endpointErrorConditions = listOf<EndpointErrorCondition>(
EndpointErrorCondition.fromValue("STALE_MANIFEST"),
EndpointErrorCondition.fromValue("INCOMPLETE_MANIFEST"),
EndpointErrorCondition.fromValue("MISSING_DRM_KEY"),
EndpointErrorCondition.fromValue("SLATE_INPUT")
)
}
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
}
)
dashManifests = listOf<CreateDashManifestConfiguration>(
CreateDashManifestConfiguration {
manifestName = "exampleDashManifest1"
manifestWindowSeconds = 300
minUpdatePeriodSeconds = 5
minBufferTimeSeconds = 30
suggestedPresentationDelaySeconds = 2
segmentTemplateFormat = DashSegmentTemplateFormat.fromValue("NUMBER_WITH_TIMELINE")
periodTriggers = listOf<DashPeriodTrigger>(
DashPeriodTrigger.fromValue("AVAILS")
)
scteDash = ScteDash {
adMarkerDash = AdMarkerDash.fromValue("XML")
}
drmSignaling = DashDrmSignaling.fromValue("INDIVIDUAL")
utcTiming = DashUtcTiming {
timingMode = DashUtcTimingMode.fromValue("HTTP_HEAD")
timingSource = "example"
}
profiles = listOf<DashProfile>(
DashProfile.fromValue("DVB_DASH")
)
baseUrls = listOf<DashBaseUrl>(
DashBaseUrl {
url = "http://example.com/"
serviceLocation = "A"
dvbPriority = 1
dvbWeight = 3
}
)
programInformation = DashProgramInformation {
title = "exampleTitle"
source = "exampleSource"
copyright = "(c) Example. All rights reserved"
languageCode = "en"
moreInformationUrl = "https://example.com/more-information"
}
dvbSettings = DashDvbSettings {
fontDownload = DashDvbFontDownload {
url = "https://example.com/fonts/SubtitleDisplay.woff"
mimeType = "application/font"
fontFamily = "SubtitleDisplay"
}
errorMetrics = listOf<DashDvbMetricsReporting>(
DashDvbMetricsReporting {
reportingUrl = "https://example.com/dvb-errors/errors"
probability = 500
}
)
}
compactness = DashCompactness.fromValue("STANDARD")
},
CreateDashManifestConfiguration {
manifestName = "exampleDashManifest2"
manifestWindowSeconds = 60
minUpdatePeriodSeconds = 3
minBufferTimeSeconds = 9
suggestedPresentationDelaySeconds = 12
segmentTemplateFormat = DashSegmentTemplateFormat.fromValue("NUMBER_WITH_TIMELINE")
periodTriggers = listOf<DashPeriodTrigger>(
DashPeriodTrigger.fromValue("AVAILS"),
DashPeriodTrigger.fromValue("DRM_KEY_ROTATION"),
DashPeriodTrigger.fromValue("SOURCE_CHANGES"),
DashPeriodTrigger.fromValue("SOURCE_DISRUPTIONS")
)
scteDash = ScteDash {
adMarkerDash = AdMarkerDash.fromValue("XML")
}
drmSignaling = DashDrmSignaling.fromValue("INDIVIDUAL")
utcTiming = DashUtcTiming {
timingMode = DashUtcTimingMode.fromValue("HTTP_HEAD")
timingSource = "example"
}
profiles = listOf<DashProfile>(
DashProfile.fromValue("DVB_DASH")
)
baseUrls = listOf<DashBaseUrl>(
DashBaseUrl {
url = "http://example2.com/"
serviceLocation = "B"
dvbPriority = 2
dvbWeight = 2
}
)
programInformation = DashProgramInformation {
title = "exampleTitle2"
source = "exampleSource2"
copyright = "(c) Example. All rights reserved"
languageCode = "en"
moreInformationUrl = "https://example2.com/more-information"
}
dvbSettings = DashDvbSettings {
fontDownload = DashDvbFontDownload {
url = "https://example.com/fonts/SubtitleDisplay.woff"
mimeType = "application/font"
fontFamily = "SubtitleDisplay"
}
errorMetrics = listOf<DashDvbMetricsReporting>(
DashDvbMetricsReporting {
reportingUrl = "https://example2.com/dvb-errors/errors"
probability = 600
}
)
}
compactness = DashCompactness.fromValue("STANDARD")
}
)
tags = mapOf<String, String>(
"key1" to "value1",
"key2" to "value2"
)
}
//sampleEnd
}
import aws.sdk.kotlin.services.mediapackagev2.model.AdMarkerDash
import aws.sdk.kotlin.services.mediapackagev2.model.AdMarkerHls
import aws.sdk.kotlin.services.mediapackagev2.model.CmafEncryptionMethod
import aws.sdk.kotlin.services.mediapackagev2.model.ContainerType
import aws.sdk.kotlin.services.mediapackagev2.model.CreateDashManifestConfiguration
import aws.sdk.kotlin.services.mediapackagev2.model.CreateHlsManifestConfiguration
import aws.sdk.kotlin.services.mediapackagev2.model.CreateLowLatencyHlsManifestConfiguration
import aws.sdk.kotlin.services.mediapackagev2.model.CreateMssManifestConfiguration
import aws.sdk.kotlin.services.mediapackagev2.model.DashBaseUrl
import aws.sdk.kotlin.services.mediapackagev2.model.DashCompactness
import aws.sdk.kotlin.services.mediapackagev2.model.DashDrmSignaling
import aws.sdk.kotlin.services.mediapackagev2.model.DashDvbFontDownload
import aws.sdk.kotlin.services.mediapackagev2.model.DashDvbMetricsReporting
import aws.sdk.kotlin.services.mediapackagev2.model.DashDvbSettings
import aws.sdk.kotlin.services.mediapackagev2.model.DashPeriodTrigger
import aws.sdk.kotlin.services.mediapackagev2.model.DashProfile
import aws.sdk.kotlin.services.mediapackagev2.model.DashProgramInformation
import aws.sdk.kotlin.services.mediapackagev2.model.DashSegmentTemplateFormat
import aws.sdk.kotlin.services.mediapackagev2.model.DashUtcTiming
import aws.sdk.kotlin.services.mediapackagev2.model.DashUtcTimingMode
import aws.sdk.kotlin.services.mediapackagev2.model.DrmSystem
import aws.sdk.kotlin.services.mediapackagev2.model.Encryption
import aws.sdk.kotlin.services.mediapackagev2.model.EncryptionContractConfiguration
import aws.sdk.kotlin.services.mediapackagev2.model.EncryptionMethod
import aws.sdk.kotlin.services.mediapackagev2.model.EndpointErrorCondition
import aws.sdk.kotlin.services.mediapackagev2.model.ForceEndpointErrorConfiguration
import aws.sdk.kotlin.services.mediapackagev2.model.IsmEncryptionMethod
import aws.sdk.kotlin.services.mediapackagev2.model.MssManifestLayout
import aws.sdk.kotlin.services.mediapackagev2.model.PresetSpeke20Audio
import aws.sdk.kotlin.services.mediapackagev2.model.PresetSpeke20Video
import aws.sdk.kotlin.services.mediapackagev2.model.Scte
import aws.sdk.kotlin.services.mediapackagev2.model.ScteDash
import aws.sdk.kotlin.services.mediapackagev2.model.ScteFilter
import aws.sdk.kotlin.services.mediapackagev2.model.ScteHls
import aws.sdk.kotlin.services.mediapackagev2.model.Segment
import aws.sdk.kotlin.services.mediapackagev2.model.SpekeKeyProvider
import aws.sdk.kotlin.services.mediapackagev2.model.TsEncryptionMethod
fun main() {
//sampleStart
// Creating an OriginEndpoint with container type ISM, and encryption enabled
val resp = mediaPackageV2Client.createOriginEndpoint {
channelGroupName = "exampleChannelGroup"
channelName = "exampleChannel"
originEndpointName = "exampleOriginEndpointISM"
containerType = ContainerType.fromValue("ISM")
description = "Description for exampleOriginEndpointISM"
startoverWindowSeconds = 300
forceEndpointErrorConfiguration = ForceEndpointErrorConfiguration {
endpointErrorConditions = listOf<EndpointErrorCondition>(
EndpointErrorCondition.fromValue("STALE_MANIFEST"),
EndpointErrorCondition.fromValue("INCOMPLETE_MANIFEST"),
EndpointErrorCondition.fromValue("MISSING_DRM_KEY"),
EndpointErrorCondition.fromValue("SLATE_INPUT")
)
}
segment = Segment {
segmentDurationSeconds = 2
segmentName = "segmentName"
encryption = Encryption {
encryptionMethod = EncryptionMethod {
ismEncryptionMethod = IsmEncryptionMethod.fromValue("CENC")
}
spekeKeyProvider = SpekeKeyProvider {
encryptionContractConfiguration = EncryptionContractConfiguration {
presetSpeke20Audio = PresetSpeke20Audio.fromValue("SHARED")
presetSpeke20Video = PresetSpeke20Video.fromValue("SHARED")
}
resourceId = "ResourceId"
drmSystems = listOf<DrmSystem>(
DrmSystem.fromValue("PLAYREADY")
)
roleArn = "arn:aws:iam::123456789012:role/empRole"
url = "https://speke-key-provider.example.com"
}
}
}
mssManifests = listOf<CreateMssManifestConfiguration>(
CreateMssManifestConfiguration {
manifestName = "exampleMssManifest1"
manifestWindowSeconds = 60
manifestLayout = MssManifestLayout.fromValue("FULL")
}
)
tags = mapOf<String, String>(
"key1" to "value1",
"key2" to "value2"
)
}
//sampleEnd
}