Skip to content

create_origin_endpoint

create_origin_endpoint(
    channel_group_name: ResourceName,
    channel_name: ResourceName,
    origin_endpoint_name: ResourceName,
    container_type: ContainerType,
    *,
    config_overrides: Optional[MediaPackageV2ClientConfig] = None,
    segment: Optional[Segment] = None,
    client_token: Optional[IdempotencyToken] = None,
    description: Optional[ResourceDescription] = None,
    startover_window_seconds: Optional[int] = None,
    hls_manifests: Optional[CreateHlsManifests] = None,
    low_latency_hls_manifests: Optional[CreateLowLatencyHlsManifests] = None,
    dash_manifests: Optional[CreateDashManifests] = None,
    mss_manifests: Optional[CreateMssManifests] = None,
    force_endpoint_error_configuration: Optional[
        ForceEndpointErrorConfiguration
    ] = None,
    uri_separator: Optional[UriSeparator] = None,
    stream_name_output_mode: Optional[StreamNameOutputMode] = None,
    tags: Optional[TagMap] = None,
) -> 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.

Parameters:

  • channel_group_name (ResourceName) –

    The name that describes the channel group. The name is the primary identifier for the channel group, and must be unique for your account in the AWS Region.

  • channel_name (ResourceName) –

    The name that describes the channel. The name is the primary identifier for the channel, and must be unique for your account in the AWS Region and channel group.

  • origin_endpoint_name (ResourceName) –

    The name that describes the origin endpoint. The name is the primary identifier for the origin endpoint, and must be unique for your account in the AWS Region and channel. You can't use spaces in the name. You can't change the name after you create the endpoint.

  • container_type (ContainerType) –

    The type of container to attach to this origin endpoint. A container type is a file format that encapsulates one or more media streams, such as audio and video, into a single file. You can't change the container type after you create the endpoint.

  • segment (Optional[Segment], default: None ) –

    The segment configuration, including the segment name, duration, and other configuration values.

  • client_token (Optional[IdempotencyToken], default: None ) –

    A unique, case-sensitive token that you provide to ensure the idempotency of the request.

  • description (Optional[ResourceDescription], default: None ) –

    Enter any descriptive text that helps you to identify the origin endpoint.

  • startover_window_seconds (Optional[int], default: None ) –

    The size of the window (in seconds) to create a window of the live stream that's available for on-demand viewing. Viewers can start-over or catch-up on content that falls within the window. The maximum startover window is 1,209,600 seconds (14 days).

  • hls_manifests (Optional[CreateHlsManifests], default: None ) –

    An HTTP live streaming (HLS) manifest configuration.

  • low_latency_hls_manifests (Optional[CreateLowLatencyHlsManifests], default: None ) –

    A low-latency HLS manifest configuration.

  • dash_manifests (Optional[CreateDashManifests], default: None ) –

    A DASH manifest configuration.

  • mss_manifests (Optional[CreateMssManifests], default: None ) –

    A list of Microsoft Smooth Streaming (MSS) manifest configurations for the origin endpoint. You can configure multiple MSS manifests to provide different streaming experiences or to support different client requirements.

  • force_endpoint_error_configuration (Optional[ForceEndpointErrorConfiguration], default: None ) –

    The failover settings for the endpoint.

  • uri_separator (Optional[UriSeparator], default: None ) –

    The separator character to use in generated URIs for this origin endpoint. This setting applies to all manifest types on the endpoint. If you don't specify a value, the default is UNDERSCORE.

  • stream_name_output_mode (Optional[StreamNameOutputMode], default: None ) –

    The output mode for stream names in egress manifests. This setting is valid only when the associated channel's InputType is HLS. You can't change the stream name output mode after you create the endpoint.

    INDEX uses numeric indices for stream names (for example, 1, 2, 3). PASSTHROUGH_NAME uses the stream names from the input manifest. If you don't specify a value, the default is INDEX.

  • tags (Optional[TagMap], default: None ) –

    A comma-separated list of tag key:value pairs that you define. For example:

    "Key1": "Value1",

    "Key2": "Value2"

Raises:

  • AccessDeniedException –

    Access is denied because either you don't have permissions to perform the requested operation or MediaPackage is getting throttling errors with CDN authorization. The user or role that is making the request must have at least one IAM permissions policy attached that grants the required permissions. For more information, see Access Management in the IAM User Guide. Or, if you're using CDN authorization, you will receive this exception if MediaPackage receives a throttling error from Secrets Manager.

  • ConflictException –

    Updating or deleting this resource can cause an inconsistent state.

  • InternalServerException –

    Indicates that an error from the service occurred while trying to process a request.

  • ResourceNotFoundException –

    The specified resource doesn't exist.

  • ServiceQuotaExceededException –

    The request would cause a service quota to be exceeded.

  • ThrottlingException –

    The request throughput limit was exceeded.

  • ValidationException –

    The input failed to meet the constraints specified by the AWS service.

  • UnknownServiceError –

    The service returned an error code this client does not model.

Examples:

Creating an OriginEndpoint with container type TS, and encryption enabled

>>> client.create_origin_endpoint(channel_group_name='exampleChannelGroup', channel_name='exampleChannel', origin_endpoint_name='exampleOriginEndpointTS', container_type='TS', description='Description for exampleOriginEndpointTS', startover_window_seconds=300, force_endpoint_error_configuration={'EndpointErrorConditions': ['STALE_MANIFEST', 'INCOMPLETE_MANIFEST', 'MISSING_DRM_KEY', 'SLATE_INPUT']}, uri_separator='UNDERSCORE', stream_name_output_mode='INDEX', segment={'SegmentDurationSeconds': 6, 'SegmentName': 'segmentName', 'TsUseAudioRenditionGroup': True, 'IncludeIframeOnlyStreams': True, 'TsIncludeDvbSubtitles': True, 'Scte': {'ScteFilter': ['SPLICE_INSERT', 'BREAK']}, 'Encryption': {'ConstantInitializationVector': 'A382A901F3C1F7718512266CFFBB0B7E', 'EncryptionMethod': {'TsEncryptionMethod': 'AES_128'}, 'KeyRotationIntervalSeconds': 300, 'SpekeKeyProvider': {'EncryptionContractConfiguration': {'PresetSpeke20Audio': 'SHARED', 'PresetSpeke20Video': 'SHARED'}, 'ResourceId': 'ResourceId', 'DrmSystems': ['CLEAR_KEY_AES_128'], 'RoleArn': 'arn:aws:iam::123456789012:role/empRole', 'Url': 'https://foo.com', 'CertificateArn': 'arn:aws:acm:us-west-2:123456789012:certificate/0c6a65f1-7bd3-48ac-be17-f38675def22e'}}}, hls_manifests=[{'ManifestName': 'exampleManifest1', 'ChildManifestName': 'exampleChildManifest1', 'ScteHls': {'AdMarkerHls': 'DATERANGE'}, 'ManifestWindowSeconds': 30, 'ProgramDateTimeIntervalSeconds': 60, 'UriPathType': 'ROOT'}, {'ManifestName': 'exampleManifest2', 'ChildManifestName': 'exampleManifest2', 'ScteHls': {'AdMarkerHls': 'DATERANGE'}, 'ManifestWindowSeconds': 30, 'ProgramDateTimeIntervalSeconds': 60, 'UriPathType': 'ROOT'}], low_latency_hls_manifests=[{'ManifestName': 'exampleLLManifest1', 'ChildManifestName': 'exampleLLChildManifest1', 'ScteHls': {'AdMarkerHls': 'DATERANGE'}, 'ManifestWindowSeconds': 30, 'ProgramDateTimeIntervalSeconds': 60}, {'ManifestName': 'exampleLLManifest2', 'ChildManifestName': 'exampleLLManifest2', 'ScteHls': {'AdMarkerHls': 'DATERANGE'}, 'ManifestWindowSeconds': 30, 'ProgramDateTimeIntervalSeconds': 60}], tags={'key1': 'value1', 'key2': 'value2'})
Creating an OriginEndpoint with container type CMAF, and encryption enabled
>>> client.create_origin_endpoint(channel_group_name='exampleChannelGroup', channel_name='exampleChannel', origin_endpoint_name='exampleOriginEndpointCMAF', container_type='CMAF', startover_window_seconds=300, force_endpoint_error_configuration={'EndpointErrorConditions': ['STALE_MANIFEST', 'INCOMPLETE_MANIFEST', 'MISSING_DRM_KEY', 'SLATE_INPUT']}, uri_separator='UNDERSCORE', segment={'SegmentDurationSeconds': 6, 'SegmentName': 'segmentName', 'IncludeIframeOnlyStreams': True, 'Scte': {'ScteFilter': ['SPLICE_INSERT', 'BREAK']}, 'Encryption': {'ConstantInitializationVector': 'A382A901F3C1F7718512266CFFBB0B9F', 'EncryptionMethod': {'CmafEncryptionMethod': 'CBCS'}, 'KeyRotationIntervalSeconds': 300, 'SpekeKeyProvider': {'EncryptionContractConfiguration': {'PresetSpeke20Audio': 'PRESET_AUDIO_1', 'PresetSpeke20Video': 'PRESET_VIDEO_1'}, 'ResourceId': 'ResourceId', 'DrmSystems': ['PLAYREADY', 'WIDEVINE'], 'RoleArn': 'arn:aws:iam::123456789012:role/empRole', 'Url': 'https://foo.com', 'CertificateArn': 'arn:aws:acm:us-west-2:123456789012:certificate/0c6a65f1-7bd3-48ac-be17-f38675def22e'}}, 'OutputTimestampMode': 'REBASED_TO_CHANNEL_START'}, hls_manifests=[{'ManifestName': 'exampleManifest1', 'ChildManifestName': 'exampleChildManifest1', 'ScteHls': {'AdMarkerHls': 'DATERANGE'}, 'ManifestWindowSeconds': 30, 'ProgramDateTimeIntervalSeconds': 60}, {'ManifestName': 'exampleManifest2', 'ChildManifestName': 'exampleManifest2', 'ScteHls': {'AdMarkerHls': 'DATERANGE'}, 'ManifestWindowSeconds': 30, 'ProgramDateTimeIntervalSeconds': 60}], low_latency_hls_manifests=[{'ManifestName': 'exampleLLManifest1', 'ChildManifestName': 'exampleLLChildManifest1', 'ScteHls': {'AdMarkerHls': 'DATERANGE'}, 'ManifestWindowSeconds': 30, 'ProgramDateTimeIntervalSeconds': 60}, {'ManifestName': 'exampleLLManifest2', 'ChildManifestName': 'exampleLLManifest2', 'ScteHls': {'AdMarkerHls': 'DATERANGE'}, 'ManifestWindowSeconds': 30, 'ProgramDateTimeIntervalSeconds': 60}], dash_manifests=[{'ManifestName': 'exampleDashManifest1', 'ManifestWindowSeconds': 300, 'MinUpdatePeriodSeconds': 5, 'MinBufferTimeSeconds': 30, 'SuggestedPresentationDelaySeconds': 2, 'SegmentTemplateFormat': 'NUMBER_WITH_TIMELINE', 'PeriodTriggers': ['AVAILS'], 'ScteDash': {'AdMarkerDash': 'XML'}, 'DrmSignaling': 'INDIVIDUAL', 'UtcTiming': {'TimingMode': 'HTTP_HEAD', 'TimingSource': 'example'}, 'Profiles': ['DVB_DASH'], 'BaseUrls': [{'Url': 'http://example.com/', 'ServiceLocation': 'A', 'DvbPriority': 1, 'DvbWeight': 3}], 'ProgramInformation': {'Title': 'exampleTitle', 'Source': 'exampleSource', 'Copyright': '(c) Example. All rights reserved', 'LanguageCode': 'en', 'MoreInformationUrl': 'https://example.com/more-information'}, 'DvbSettings': {'FontDownload': {'Url': 'https://example.com/fonts/SubtitleDisplay.woff', 'MimeType': 'application/font', 'FontFamily': 'SubtitleDisplay'}, 'ErrorMetrics': [{'ReportingUrl': 'https://example.com/dvb-errors/errors', 'Probability': 500}]}, 'Compactness': 'STANDARD'}, {'ManifestName': 'exampleDashManifest2', 'ManifestWindowSeconds': 60, 'MinUpdatePeriodSeconds': 3, 'MinBufferTimeSeconds': 9, 'SuggestedPresentationDelaySeconds': 12, 'SegmentTemplateFormat': 'NUMBER_WITH_TIMELINE', 'PeriodTriggers': ['AVAILS', 'DRM_KEY_ROTATION', 'SOURCE_CHANGES', 'SOURCE_DISRUPTIONS'], 'ScteDash': {'AdMarkerDash': 'XML'}, 'DrmSignaling': 'INDIVIDUAL', 'UtcTiming': {'TimingMode': 'HTTP_HEAD', 'TimingSource': 'example'}, 'Profiles': ['DVB_DASH'], 'BaseUrls': [{'Url': 'http://example2.com/', 'ServiceLocation': 'B', 'DvbPriority': 2, 'DvbWeight': 2}], 'ProgramInformation': {'Title': 'exampleTitle2', 'Source': 'exampleSource2', 'Copyright': '(c) Example. All rights reserved', 'LanguageCode': 'en', 'MoreInformationUrl': 'https://example2.com/more-information'}, 'DvbSettings': {'FontDownload': {'Url': 'https://example.com/fonts/SubtitleDisplay.woff', 'MimeType': 'application/font', 'FontFamily': 'SubtitleDisplay'}, 'ErrorMetrics': [{'ReportingUrl': 'https://example2.com/dvb-errors/errors', 'Probability': 600}]}, 'Compactness': 'STANDARD', 'AvailabilityStartTimeConfiguration': {'FixedAvailabilityStartTime': '2026-04-17T23:00:00.00Z'}}], tags={'key1': 'value1', 'key2': 'value2'})
Creating an OriginEndpoint with container type ISM, and encryption enabled
>>> client.create_origin_endpoint(channel_group_name='exampleChannelGroup', channel_name='exampleChannel', origin_endpoint_name='exampleOriginEndpointISM', container_type='ISM', description='Description for exampleOriginEndpointISM', startover_window_seconds=300, force_endpoint_error_configuration={'EndpointErrorConditions': ['STALE_MANIFEST', 'INCOMPLETE_MANIFEST', 'MISSING_DRM_KEY', 'SLATE_INPUT']}, uri_separator='UNDERSCORE', segment={'SegmentDurationSeconds': 2, 'SegmentName': 'segmentName', 'Encryption': {'EncryptionMethod': {'IsmEncryptionMethod': 'CENC'}, 'SpekeKeyProvider': {'EncryptionContractConfiguration': {'PresetSpeke20Audio': 'SHARED', 'PresetSpeke20Video': 'SHARED'}, 'ResourceId': 'ResourceId', 'DrmSystems': ['PLAYREADY'], 'RoleArn': 'arn:aws:iam::123456789012:role/empRole', 'Url': 'https://speke-key-provider.example.com'}}}, mss_manifests=[{'ManifestName': 'exampleMssManifest1', 'ManifestWindowSeconds': 60, 'ManifestLayout': 'FULL'}], tags={'key1': 'value1', 'key2': 'value2'})
Source code in docs_src/capo_mediapackagev2/_services/media_package_v2.py
def create_origin_endpoint(
    self,
    channel_group_name: "capo_mediapackagev2.types.resource_name.ResourceName",
    channel_name: "capo_mediapackagev2.types.resource_name.ResourceName",
    origin_endpoint_name: "capo_mediapackagev2.types.resource_name.ResourceName",
    container_type: "capo_mediapackagev2.types.container_type.ContainerType",
    *,
    config_overrides: Optional[MediaPackageV2ClientConfig] = None,
    segment: Optional["capo_mediapackagev2.types.segment.Segment"] = None,
    client_token: Optional[
        "capo_mediapackagev2.types.idempotency_token.IdempotencyToken"
    ] = None,
    description: Optional[
        "capo_mediapackagev2.types.resource_description.ResourceDescription"
    ] = None,
    startover_window_seconds: Optional[int] = None,
    hls_manifests: Optional[
        "capo_mediapackagev2.types.create_hls_manifests.CreateHlsManifests"
    ] = None,
    low_latency_hls_manifests: Optional[
        "capo_mediapackagev2.types.create_low_latency_hls_manifests.CreateLowLatencyHlsManifests"
    ] = None,
    dash_manifests: Optional[
        "capo_mediapackagev2.types.create_dash_manifests.CreateDashManifests"
    ] = None,
    mss_manifests: Optional[
        "capo_mediapackagev2.types.create_mss_manifests.CreateMssManifests"
    ] = None,
    force_endpoint_error_configuration: Optional[
        "capo_mediapackagev2.types.force_endpoint_error_configuration.ForceEndpointErrorConfiguration"
    ] = None,
    uri_separator: Optional[
        "capo_mediapackagev2.types.uri_separator.UriSeparator"
    ] = None,
    stream_name_output_mode: Optional[
        "capo_mediapackagev2.types.stream_name_output_mode.StreamNameOutputMode"
    ] = None,
    tags: Optional["capo_mediapackagev2.types.tag_map.TagMap"] = None,
) -> "capo_mediapackagev2.types.create_origin_endpoint_response.CreateOriginEndpointResponse":
    """<p>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. </p>

    Args:
        channel_group_name: <p>The name that describes the channel group. The name is the primary identifier for the channel group, and must be unique for your account in the AWS Region.</p>
        channel_name: <p>The name that describes the channel. The name is the primary identifier for the channel, and must be unique for your account in the AWS Region and channel group. </p>
        origin_endpoint_name: <p>The name that describes the origin endpoint. The name is the primary identifier for the origin endpoint, and must be unique for your account in the AWS Region and channel. You can't use spaces in the name. You can't change the name after you create the endpoint.</p>
        container_type: <p>The type of container to attach to this origin endpoint. A container type is a file format that encapsulates one or more media streams, such as audio and video, into a single file. You can't change the container type after you create the endpoint.</p>
        segment: <p>The segment configuration, including the segment name, duration, and other configuration values.</p>
        client_token: <p>A unique, case-sensitive token that you provide to ensure the idempotency of the request.</p>
        description: <p>Enter any descriptive text that helps you to identify the origin endpoint.</p>
        startover_window_seconds: <p>The size of the window (in seconds) to create a window of the live stream that's available for on-demand viewing. Viewers can start-over or catch-up on content that falls within the window. The maximum startover window is 1,209,600 seconds (14 days).</p>
        hls_manifests: <p>An HTTP live streaming (HLS) manifest configuration.</p>
        low_latency_hls_manifests: <p>A low-latency HLS manifest configuration.</p>
        dash_manifests: <p>A DASH manifest configuration.</p>
        mss_manifests: <p>A list of Microsoft Smooth Streaming (MSS) manifest configurations for the origin endpoint. You can configure multiple MSS manifests to provide different streaming experiences or to support different client requirements.</p>
        force_endpoint_error_configuration: <p>The failover settings for the endpoint.</p>
        uri_separator: <p>The separator character to use in generated URIs for this origin endpoint. This setting applies to all manifest types on the endpoint. If you don't specify a value, the default is <code>UNDERSCORE</code>.</p>
        stream_name_output_mode: <p>The output mode for stream names in egress manifests. This setting is valid only when the associated channel's <code>InputType</code> is <code>HLS</code>. You can't change the stream name output mode after you create the endpoint.</p> <p> <code>INDEX</code> uses numeric indices for stream names (for example, 1, 2, 3). <code>PASSTHROUGH_NAME</code> uses the stream names from the input manifest. If you don't specify a value, the default is <code>INDEX</code>.</p>
        tags: <p>A comma-separated list of tag key:value pairs that you define. For example:</p> <p> <code>"Key1": "Value1",</code> </p> <p> <code>"Key2": "Value2"</code> </p>

    Raises:
        capo_mediapackagev2.errors.access_denied_exception.AccessDeniedException: <p>Access is denied because either you don't have permissions to perform the requested operation or MediaPackage is getting throttling errors with CDN authorization. The user or role that is making the request must have at least one IAM permissions policy attached that grants the required permissions. For more information, see Access Management in the IAM User Guide. Or, if you're using CDN authorization, you will receive this exception if MediaPackage receives a throttling error from Secrets Manager.</p>
        capo_mediapackagev2.errors.conflict_exception.ConflictException: <p>Updating or deleting this resource can cause an inconsistent state.</p>
        capo_mediapackagev2.errors.internal_server_exception.InternalServerException: <p>Indicates that an error from the service occurred while trying to process a request.</p>
        capo_mediapackagev2.errors.resource_not_found_exception.ResourceNotFoundException: <p>The specified resource doesn't exist.</p>
        capo_mediapackagev2.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would cause a service quota to be exceeded.</p>
        capo_mediapackagev2.errors.throttling_exception.ThrottlingException: <p>The request throughput limit was exceeded.</p>
        capo_mediapackagev2.errors.validation_exception.ValidationException: <p>The input failed to meet the constraints specified by the AWS service.</p>
        capo_mediapackagev2.errors.UnknownServiceError: The service returned an error code this client does not model.

    Examples:
        Creating an OriginEndpoint with container type TS, and encryption enabled

        >>> client.create_origin_endpoint(channel_group_name='exampleChannelGroup', channel_name='exampleChannel', origin_endpoint_name='exampleOriginEndpointTS', container_type='TS', description='Description for exampleOriginEndpointTS', startover_window_seconds=300, force_endpoint_error_configuration={'EndpointErrorConditions': ['STALE_MANIFEST', 'INCOMPLETE_MANIFEST', 'MISSING_DRM_KEY', 'SLATE_INPUT']}, uri_separator='UNDERSCORE', stream_name_output_mode='INDEX', segment={'SegmentDurationSeconds': 6, 'SegmentName': 'segmentName', 'TsUseAudioRenditionGroup': True, 'IncludeIframeOnlyStreams': True, 'TsIncludeDvbSubtitles': True, 'Scte': {'ScteFilter': ['SPLICE_INSERT', 'BREAK']}, 'Encryption': {'ConstantInitializationVector': 'A382A901F3C1F7718512266CFFBB0B7E', 'EncryptionMethod': {'TsEncryptionMethod': 'AES_128'}, 'KeyRotationIntervalSeconds': 300, 'SpekeKeyProvider': {'EncryptionContractConfiguration': {'PresetSpeke20Audio': 'SHARED', 'PresetSpeke20Video': 'SHARED'}, 'ResourceId': 'ResourceId', 'DrmSystems': ['CLEAR_KEY_AES_128'], 'RoleArn': 'arn:aws:iam::123456789012:role/empRole', 'Url': 'https://foo.com', 'CertificateArn': 'arn:aws:acm:us-west-2:123456789012:certificate/0c6a65f1-7bd3-48ac-be17-f38675def22e'}}}, hls_manifests=[{'ManifestName': 'exampleManifest1', 'ChildManifestName': 'exampleChildManifest1', 'ScteHls': {'AdMarkerHls': 'DATERANGE'}, 'ManifestWindowSeconds': 30, 'ProgramDateTimeIntervalSeconds': 60, 'UriPathType': 'ROOT'}, {'ManifestName': 'exampleManifest2', 'ChildManifestName': 'exampleManifest2', 'ScteHls': {'AdMarkerHls': 'DATERANGE'}, 'ManifestWindowSeconds': 30, 'ProgramDateTimeIntervalSeconds': 60, 'UriPathType': 'ROOT'}], low_latency_hls_manifests=[{'ManifestName': 'exampleLLManifest1', 'ChildManifestName': 'exampleLLChildManifest1', 'ScteHls': {'AdMarkerHls': 'DATERANGE'}, 'ManifestWindowSeconds': 30, 'ProgramDateTimeIntervalSeconds': 60}, {'ManifestName': 'exampleLLManifest2', 'ChildManifestName': 'exampleLLManifest2', 'ScteHls': {'AdMarkerHls': 'DATERANGE'}, 'ManifestWindowSeconds': 30, 'ProgramDateTimeIntervalSeconds': 60}], tags={'key1': 'value1', 'key2': 'value2'})
        Creating an OriginEndpoint with container type CMAF, and encryption enabled

        >>> client.create_origin_endpoint(channel_group_name='exampleChannelGroup', channel_name='exampleChannel', origin_endpoint_name='exampleOriginEndpointCMAF', container_type='CMAF', startover_window_seconds=300, force_endpoint_error_configuration={'EndpointErrorConditions': ['STALE_MANIFEST', 'INCOMPLETE_MANIFEST', 'MISSING_DRM_KEY', 'SLATE_INPUT']}, uri_separator='UNDERSCORE', segment={'SegmentDurationSeconds': 6, 'SegmentName': 'segmentName', 'IncludeIframeOnlyStreams': True, 'Scte': {'ScteFilter': ['SPLICE_INSERT', 'BREAK']}, 'Encryption': {'ConstantInitializationVector': 'A382A901F3C1F7718512266CFFBB0B9F', 'EncryptionMethod': {'CmafEncryptionMethod': 'CBCS'}, 'KeyRotationIntervalSeconds': 300, 'SpekeKeyProvider': {'EncryptionContractConfiguration': {'PresetSpeke20Audio': 'PRESET_AUDIO_1', 'PresetSpeke20Video': 'PRESET_VIDEO_1'}, 'ResourceId': 'ResourceId', 'DrmSystems': ['PLAYREADY', 'WIDEVINE'], 'RoleArn': 'arn:aws:iam::123456789012:role/empRole', 'Url': 'https://foo.com', 'CertificateArn': 'arn:aws:acm:us-west-2:123456789012:certificate/0c6a65f1-7bd3-48ac-be17-f38675def22e'}}, 'OutputTimestampMode': 'REBASED_TO_CHANNEL_START'}, hls_manifests=[{'ManifestName': 'exampleManifest1', 'ChildManifestName': 'exampleChildManifest1', 'ScteHls': {'AdMarkerHls': 'DATERANGE'}, 'ManifestWindowSeconds': 30, 'ProgramDateTimeIntervalSeconds': 60}, {'ManifestName': 'exampleManifest2', 'ChildManifestName': 'exampleManifest2', 'ScteHls': {'AdMarkerHls': 'DATERANGE'}, 'ManifestWindowSeconds': 30, 'ProgramDateTimeIntervalSeconds': 60}], low_latency_hls_manifests=[{'ManifestName': 'exampleLLManifest1', 'ChildManifestName': 'exampleLLChildManifest1', 'ScteHls': {'AdMarkerHls': 'DATERANGE'}, 'ManifestWindowSeconds': 30, 'ProgramDateTimeIntervalSeconds': 60}, {'ManifestName': 'exampleLLManifest2', 'ChildManifestName': 'exampleLLManifest2', 'ScteHls': {'AdMarkerHls': 'DATERANGE'}, 'ManifestWindowSeconds': 30, 'ProgramDateTimeIntervalSeconds': 60}], dash_manifests=[{'ManifestName': 'exampleDashManifest1', 'ManifestWindowSeconds': 300, 'MinUpdatePeriodSeconds': 5, 'MinBufferTimeSeconds': 30, 'SuggestedPresentationDelaySeconds': 2, 'SegmentTemplateFormat': 'NUMBER_WITH_TIMELINE', 'PeriodTriggers': ['AVAILS'], 'ScteDash': {'AdMarkerDash': 'XML'}, 'DrmSignaling': 'INDIVIDUAL', 'UtcTiming': {'TimingMode': 'HTTP_HEAD', 'TimingSource': 'example'}, 'Profiles': ['DVB_DASH'], 'BaseUrls': [{'Url': 'http://example.com/', 'ServiceLocation': 'A', 'DvbPriority': 1, 'DvbWeight': 3}], 'ProgramInformation': {'Title': 'exampleTitle', 'Source': 'exampleSource', 'Copyright': '(c) Example. All rights reserved', 'LanguageCode': 'en', 'MoreInformationUrl': 'https://example.com/more-information'}, 'DvbSettings': {'FontDownload': {'Url': 'https://example.com/fonts/SubtitleDisplay.woff', 'MimeType': 'application/font', 'FontFamily': 'SubtitleDisplay'}, 'ErrorMetrics': [{'ReportingUrl': 'https://example.com/dvb-errors/errors', 'Probability': 500}]}, 'Compactness': 'STANDARD'}, {'ManifestName': 'exampleDashManifest2', 'ManifestWindowSeconds': 60, 'MinUpdatePeriodSeconds': 3, 'MinBufferTimeSeconds': 9, 'SuggestedPresentationDelaySeconds': 12, 'SegmentTemplateFormat': 'NUMBER_WITH_TIMELINE', 'PeriodTriggers': ['AVAILS', 'DRM_KEY_ROTATION', 'SOURCE_CHANGES', 'SOURCE_DISRUPTIONS'], 'ScteDash': {'AdMarkerDash': 'XML'}, 'DrmSignaling': 'INDIVIDUAL', 'UtcTiming': {'TimingMode': 'HTTP_HEAD', 'TimingSource': 'example'}, 'Profiles': ['DVB_DASH'], 'BaseUrls': [{'Url': 'http://example2.com/', 'ServiceLocation': 'B', 'DvbPriority': 2, 'DvbWeight': 2}], 'ProgramInformation': {'Title': 'exampleTitle2', 'Source': 'exampleSource2', 'Copyright': '(c) Example. All rights reserved', 'LanguageCode': 'en', 'MoreInformationUrl': 'https://example2.com/more-information'}, 'DvbSettings': {'FontDownload': {'Url': 'https://example.com/fonts/SubtitleDisplay.woff', 'MimeType': 'application/font', 'FontFamily': 'SubtitleDisplay'}, 'ErrorMetrics': [{'ReportingUrl': 'https://example2.com/dvb-errors/errors', 'Probability': 600}]}, 'Compactness': 'STANDARD', 'AvailabilityStartTimeConfiguration': {'FixedAvailabilityStartTime': '2026-04-17T23:00:00.00Z'}}], tags={'key1': 'value1', 'key2': 'value2'})
        Creating an OriginEndpoint with container type ISM, and encryption enabled

        >>> client.create_origin_endpoint(channel_group_name='exampleChannelGroup', channel_name='exampleChannel', origin_endpoint_name='exampleOriginEndpointISM', container_type='ISM', description='Description for exampleOriginEndpointISM', startover_window_seconds=300, force_endpoint_error_configuration={'EndpointErrorConditions': ['STALE_MANIFEST', 'INCOMPLETE_MANIFEST', 'MISSING_DRM_KEY', 'SLATE_INPUT']}, uri_separator='UNDERSCORE', segment={'SegmentDurationSeconds': 2, 'SegmentName': 'segmentName', 'Encryption': {'EncryptionMethod': {'IsmEncryptionMethod': 'CENC'}, 'SpekeKeyProvider': {'EncryptionContractConfiguration': {'PresetSpeke20Audio': 'SHARED', 'PresetSpeke20Video': 'SHARED'}, 'ResourceId': 'ResourceId', 'DrmSystems': ['PLAYREADY'], 'RoleArn': 'arn:aws:iam::123456789012:role/empRole', 'Url': 'https://speke-key-provider.example.com'}}}, mss_manifests=[{'ManifestName': 'exampleMssManifest1', 'ManifestWindowSeconds': 60, 'ManifestLayout': 'FULL'}], tags={'key1': 'value1', 'key2': 'value2'})
    """

    def _handler(
        req: "OperationRequest[capo_mediapackagev2.types.create_origin_endpoint_request.CreateOriginEndpointRequest]",
    ) -> OperationResponse[
        "capo_mediapackagev2.types.create_origin_endpoint_response.CreateOriginEndpointResponse"
    ]:
        import capo_mediapackagev2._operations.mediapackagev2.create_origin_endpoint

        output, http_response = (
            capo_mediapackagev2._operations.mediapackagev2.create_origin_endpoint.create_origin_endpoint(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("CreateOriginEndpoint")
    )
    input_: capo_mediapackagev2.types.create_origin_endpoint_request.CreateOriginEndpointRequest = {
        "channel_group_name": channel_group_name,
        "channel_name": channel_name,
        "origin_endpoint_name": origin_endpoint_name,
        "container_type": container_type,
    }
    if segment is not None:
        input_["segment"] = segment
    if client_token is None:
        client_token = str(uuid.uuid4())
    input_["client_token"] = client_token
    if description is not None:
        input_["description"] = description
    if startover_window_seconds is not None:
        input_["startover_window_seconds"] = startover_window_seconds
    if hls_manifests is not None:
        input_["hls_manifests"] = hls_manifests
    if low_latency_hls_manifests is not None:
        input_["low_latency_hls_manifests"] = low_latency_hls_manifests
    if dash_manifests is not None:
        input_["dash_manifests"] = dash_manifests
    if mss_manifests is not None:
        input_["mss_manifests"] = mss_manifests
    if force_endpoint_error_configuration is not None:
        input_["force_endpoint_error_configuration"] = (
            force_endpoint_error_configuration
        )
    if uri_separator is not None:
        input_["uri_separator"] = uri_separator
    if stream_name_output_mode is not None:
        input_["stream_name_output_mode"] = stream_name_output_mode
    if tags is not None:
        input_["tags"] = tags

    response = execute_pipeline(
        OperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    response.response.close()
    return response.output