import * as HttpClient from "effect/unstable/http/HttpClient";
import * as redacted from "effect/Redacted";
import * as S from "effect/Schema";
import * as stream from "effect/Stream";
import * as API from "../client/api.js";
import * as T from "../traits.js";
import * as C from "../category.js";
import { SensitiveString } from "../sensitive.js";
const svc = T.AwsApiService({
    sdkId: "MediaPackage",
    serviceShapeName: "MediaPackage",
});
const auth = T.AwsAuthSigv4({ name: "mediapackage" });
const ver = T.ServiceVersion("2017-10-12");
const proto = T.AwsProtocolsRestJson1();
const rules = T.EndpointResolver((p, _) => {
    const { Region, UseDualStack = false, UseFIPS = false, Endpoint } = p;
    const e = (u, p = {}, h = {}) => ({
        type: "endpoint",
        endpoint: { url: u, properties: p, headers: h },
    });
    const err = (m) => ({
        type: "error",
        message: m,
    });
    if (Endpoint != null) {
        if (UseFIPS === true) {
            return err("Invalid Configuration: FIPS and custom endpoint are not supported");
        }
        if (UseDualStack === true) {
            return err("Invalid Configuration: Dualstack and custom endpoint are not supported");
        }
        return e(Endpoint);
    }
    if (Region != null) {
        {
            const PartitionResult = _.partition(Region);
            if (PartitionResult != null && PartitionResult !== false) {
                if (UseFIPS === true && UseDualStack === true) {
                    if (true === _.getAttr(PartitionResult, "supportsFIPS") &&
                        true === _.getAttr(PartitionResult, "supportsDualStack")) {
                        return e(`https://mediapackage-fips.${Region}.${_.getAttr(PartitionResult, "dualStackDnsSuffix")}`);
                    }
                    return err("FIPS and DualStack are enabled, but this partition does not support one or both");
                }
                if (UseFIPS === true) {
                    if (_.getAttr(PartitionResult, "supportsFIPS") === true) {
                        return e(`https://mediapackage-fips.${Region}.${_.getAttr(PartitionResult, "dnsSuffix")}`);
                    }
                    return err("FIPS is enabled but this partition does not support FIPS");
                }
                if (UseDualStack === true) {
                    if (true === _.getAttr(PartitionResult, "supportsDualStack")) {
                        return e(`https://mediapackage.${Region}.${_.getAttr(PartitionResult, "dualStackDnsSuffix")}`);
                    }
                    return err("DualStack is enabled but this partition does not support DualStack");
                }
                return e(`https://mediapackage.${Region}.${_.getAttr(PartitionResult, "dnsSuffix")}`);
            }
        }
    }
    return err("Invalid Configuration: Missing Region");
});
export const EgressAccessLogs = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ LogGroupName: S.optional(S.String) }).pipe(S.encodeKeys({ LogGroupName: "logGroupName" }))).annotate({
    identifier: "EgressAccessLogs",
});
export const IngressAccessLogs = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ LogGroupName: S.optional(S.String) }).pipe(S.encodeKeys({ LogGroupName: "logGroupName" }))).annotate({
    identifier: "IngressAccessLogs",
});
export const ConfigureLogsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    EgressAccessLogs: S.optional(EgressAccessLogs),
    Id: S.String.pipe(T.HttpLabel("Id")),
    IngressAccessLogs: S.optional(IngressAccessLogs),
})
    .pipe(S.encodeKeys({
    EgressAccessLogs: "egressAccessLogs",
    IngressAccessLogs: "ingressAccessLogs",
}))
    .pipe(T.all(T.Http({ method: "PUT", uri: "/channels/{Id}/configure_logs" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ConfigureLogsRequest",
});
export const IngestEndpoint = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Id: S.optional(S.String),
    Password: S.optional(SensitiveString),
    Url: S.optional(S.String),
    Username: S.optional(SensitiveString),
}).pipe(S.encodeKeys({
    Id: "id",
    Password: "password",
    Url: "url",
    Username: "username",
}))).annotate({ identifier: "IngestEndpoint" });
export const __listOfIngestEndpoint = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(IngestEndpoint);
export const HlsIngest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ IngestEndpoints: S.optional(__listOfIngestEndpoint) }).pipe(S.encodeKeys({ IngestEndpoints: "ingestEndpoints" }))).annotate({ identifier: "HlsIngest" });
export const Tags = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, S.String.pipe(S.optional));
export const ConfigureLogsResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Arn: S.optional(S.String),
    CreatedAt: S.optional(S.String),
    Description: S.optional(S.String),
    EgressAccessLogs: S.optional(EgressAccessLogs),
    HlsIngest: S.optional(HlsIngest),
    Id: S.optional(S.String),
    IngressAccessLogs: S.optional(IngressAccessLogs),
    Tags: S.optional(Tags),
}).pipe(S.encodeKeys({
    Arn: "arn",
    CreatedAt: "createdAt",
    Description: "description",
    EgressAccessLogs: "egressAccessLogs",
    HlsIngest: "hlsIngest",
    Id: "id",
    IngressAccessLogs: "ingressAccessLogs",
    Tags: "tags",
}))).annotate({
    identifier: "ConfigureLogsResponse",
});
export const CreateChannelRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Description: S.optional(S.String),
    Id: S.optional(S.String),
    Tags: S.optional(Tags),
})
    .pipe(S.encodeKeys({ Description: "description", Id: "id", Tags: "tags" }))
    .pipe(T.all(T.Http({ method: "POST", uri: "/channels" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateChannelRequest",
});
export const CreateChannelResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Arn: S.optional(S.String),
    CreatedAt: S.optional(S.String),
    Description: S.optional(S.String),
    EgressAccessLogs: S.optional(EgressAccessLogs),
    HlsIngest: S.optional(HlsIngest),
    Id: S.optional(S.String),
    IngressAccessLogs: S.optional(IngressAccessLogs),
    Tags: S.optional(Tags),
}).pipe(S.encodeKeys({
    Arn: "arn",
    CreatedAt: "createdAt",
    Description: "description",
    EgressAccessLogs: "egressAccessLogs",
    HlsIngest: "hlsIngest",
    Id: "id",
    IngressAccessLogs: "ingressAccessLogs",
    Tags: "tags",
}))).annotate({
    identifier: "CreateChannelResponse",
});
export const S3Destination = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    BucketName: S.optional(S.String),
    ManifestKey: S.optional(S.String),
    RoleArn: S.optional(S.String),
}).pipe(S.encodeKeys({
    BucketName: "bucketName",
    ManifestKey: "manifestKey",
    RoleArn: "roleArn",
}))).annotate({ identifier: "S3Destination" });
export const CreateHarvestJobRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    EndTime: S.optional(S.String),
    Id: S.optional(S.String),
    OriginEndpointId: S.optional(S.String),
    S3Destination: S.optional(S3Destination),
    StartTime: S.optional(S.String),
})
    .pipe(S.encodeKeys({
    EndTime: "endTime",
    Id: "id",
    OriginEndpointId: "originEndpointId",
    S3Destination: "s3Destination",
    StartTime: "startTime",
}))
    .pipe(T.all(T.Http({ method: "POST", uri: "/harvest_jobs" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateHarvestJobRequest",
});
export const Status = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const CreateHarvestJobResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Arn: S.optional(S.String),
    ChannelId: S.optional(S.String),
    CreatedAt: S.optional(S.String),
    EndTime: S.optional(S.String),
    Id: S.optional(S.String),
    OriginEndpointId: S.optional(S.String),
    S3Destination: S.optional(S3Destination),
    StartTime: S.optional(S.String),
    Status: S.optional(Status),
}).pipe(S.encodeKeys({
    Arn: "arn",
    ChannelId: "channelId",
    CreatedAt: "createdAt",
    EndTime: "endTime",
    Id: "id",
    OriginEndpointId: "originEndpointId",
    S3Destination: "s3Destination",
    StartTime: "startTime",
    Status: "status",
}))).annotate({
    identifier: "CreateHarvestJobResponse",
});
export const Authorization = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    CdnIdentifierSecret: S.optional(S.String),
    SecretsRoleArn: S.optional(S.String),
}).pipe(S.encodeKeys({
    CdnIdentifierSecret: "cdnIdentifierSecret",
    SecretsRoleArn: "secretsRoleArn",
}))).annotate({ identifier: "Authorization" });
export const CmafEncryptionMethod = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const PresetSpeke20Audio = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const PresetSpeke20Video = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const EncryptionContractConfiguration = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    PresetSpeke20Audio: S.optional(PresetSpeke20Audio),
    PresetSpeke20Video: S.optional(PresetSpeke20Video),
}).pipe(S.encodeKeys({
    PresetSpeke20Audio: "presetSpeke20Audio",
    PresetSpeke20Video: "presetSpeke20Video",
}))).annotate({
    identifier: "EncryptionContractConfiguration",
});
export const __listOf__string = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const SpekeKeyProvider = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    CertificateArn: S.optional(S.String),
    EncryptionContractConfiguration: S.optional(EncryptionContractConfiguration),
    ResourceId: S.optional(S.String),
    RoleArn: S.optional(S.String),
    SystemIds: S.optional(__listOf__string),
    Url: S.optional(S.String),
}).pipe(S.encodeKeys({
    CertificateArn: "certificateArn",
    EncryptionContractConfiguration: "encryptionContractConfiguration",
    ResourceId: "resourceId",
    RoleArn: "roleArn",
    SystemIds: "systemIds",
    Url: "url",
}))).annotate({
    identifier: "SpekeKeyProvider",
});
export const CmafEncryption = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ConstantInitializationVector: S.optional(S.String),
    EncryptionMethod: S.optional(CmafEncryptionMethod),
    KeyRotationIntervalSeconds: S.optional(S.Number),
    SpekeKeyProvider: S.optional(SpekeKeyProvider),
}).pipe(S.encodeKeys({
    ConstantInitializationVector: "constantInitializationVector",
    EncryptionMethod: "encryptionMethod",
    KeyRotationIntervalSeconds: "keyRotationIntervalSeconds",
    SpekeKeyProvider: "spekeKeyProvider",
}))).annotate({ identifier: "CmafEncryption" });
export const AdMarkers = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const __AdTriggersElement = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const AdTriggers = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(__AdTriggersElement);
export const AdsOnDeliveryRestrictions = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const PlaylistType = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const HlsManifestCreateOrUpdateParameters = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AdMarkers: S.optional(AdMarkers),
    AdTriggers: S.optional(AdTriggers),
    AdsOnDeliveryRestrictions: S.optional(AdsOnDeliveryRestrictions),
    Id: S.optional(S.String),
    IncludeIframeOnlyStream: S.optional(S.Boolean),
    ManifestName: S.optional(S.String),
    PlaylistType: S.optional(PlaylistType),
    PlaylistWindowSeconds: S.optional(S.Number),
    ProgramDateTimeIntervalSeconds: S.optional(S.Number),
}).pipe(S.encodeKeys({
    AdMarkers: "adMarkers",
    AdTriggers: "adTriggers",
    AdsOnDeliveryRestrictions: "adsOnDeliveryRestrictions",
    Id: "id",
    IncludeIframeOnlyStream: "includeIframeOnlyStream",
    ManifestName: "manifestName",
    PlaylistType: "playlistType",
    PlaylistWindowSeconds: "playlistWindowSeconds",
    ProgramDateTimeIntervalSeconds: "programDateTimeIntervalSeconds",
}))).annotate({
    identifier: "HlsManifestCreateOrUpdateParameters",
});
export const __listOfHlsManifestCreateOrUpdateParameters = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(HlsManifestCreateOrUpdateParameters);
export const StreamOrder = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const StreamSelection = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    MaxVideoBitsPerSecond: S.optional(S.Number),
    MinVideoBitsPerSecond: S.optional(S.Number),
    StreamOrder: S.optional(StreamOrder),
}).pipe(S.encodeKeys({
    MaxVideoBitsPerSecond: "maxVideoBitsPerSecond",
    MinVideoBitsPerSecond: "minVideoBitsPerSecond",
    StreamOrder: "streamOrder",
}))).annotate({
    identifier: "StreamSelection",
});
export const CmafPackageCreateOrUpdateParameters = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Encryption: S.optional(CmafEncryption),
    HlsManifests: S.optional(__listOfHlsManifestCreateOrUpdateParameters),
    SegmentDurationSeconds: S.optional(S.Number),
    SegmentPrefix: S.optional(S.String),
    StreamSelection: S.optional(StreamSelection),
}).pipe(S.encodeKeys({
    Encryption: "encryption",
    HlsManifests: "hlsManifests",
    SegmentDurationSeconds: "segmentDurationSeconds",
    SegmentPrefix: "segmentPrefix",
    StreamSelection: "streamSelection",
}))).annotate({
    identifier: "CmafPackageCreateOrUpdateParameters",
});
export const DashEncryption = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    KeyRotationIntervalSeconds: S.optional(S.Number),
    SpekeKeyProvider: S.optional(SpekeKeyProvider),
}).pipe(S.encodeKeys({
    KeyRotationIntervalSeconds: "keyRotationIntervalSeconds",
    SpekeKeyProvider: "spekeKeyProvider",
}))).annotate({ identifier: "DashEncryption" });
export const ManifestLayout = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const __PeriodTriggersElement = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const __listOf__PeriodTriggersElement = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(__PeriodTriggersElement);
export const Profile = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const SegmentTemplateFormat = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const UtcTiming = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const DashPackage = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AdTriggers: S.optional(AdTriggers),
    AdsOnDeliveryRestrictions: S.optional(AdsOnDeliveryRestrictions),
    Encryption: S.optional(DashEncryption),
    IncludeIframeOnlyStream: S.optional(S.Boolean),
    ManifestLayout: S.optional(ManifestLayout),
    ManifestWindowSeconds: S.optional(S.Number),
    MinBufferTimeSeconds: S.optional(S.Number),
    MinUpdatePeriodSeconds: S.optional(S.Number),
    PeriodTriggers: S.optional(__listOf__PeriodTriggersElement),
    Profile: S.optional(Profile),
    SegmentDurationSeconds: S.optional(S.Number),
    SegmentTemplateFormat: S.optional(SegmentTemplateFormat),
    StreamSelection: S.optional(StreamSelection),
    SuggestedPresentationDelaySeconds: S.optional(S.Number),
    UtcTiming: S.optional(UtcTiming),
    UtcTimingUri: S.optional(S.String),
}).pipe(S.encodeKeys({
    AdTriggers: "adTriggers",
    AdsOnDeliveryRestrictions: "adsOnDeliveryRestrictions",
    Encryption: "encryption",
    IncludeIframeOnlyStream: "includeIframeOnlyStream",
    ManifestLayout: "manifestLayout",
    ManifestWindowSeconds: "manifestWindowSeconds",
    MinBufferTimeSeconds: "minBufferTimeSeconds",
    MinUpdatePeriodSeconds: "minUpdatePeriodSeconds",
    PeriodTriggers: "periodTriggers",
    Profile: "profile",
    SegmentDurationSeconds: "segmentDurationSeconds",
    SegmentTemplateFormat: "segmentTemplateFormat",
    StreamSelection: "streamSelection",
    SuggestedPresentationDelaySeconds: "suggestedPresentationDelaySeconds",
    UtcTiming: "utcTiming",
    UtcTimingUri: "utcTimingUri",
}))).annotate({ identifier: "DashPackage" });
export const EncryptionMethod = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const HlsEncryption = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ConstantInitializationVector: S.optional(S.String),
    EncryptionMethod: S.optional(EncryptionMethod),
    KeyRotationIntervalSeconds: S.optional(S.Number),
    RepeatExtXKey: S.optional(S.Boolean),
    SpekeKeyProvider: S.optional(SpekeKeyProvider),
}).pipe(S.encodeKeys({
    ConstantInitializationVector: "constantInitializationVector",
    EncryptionMethod: "encryptionMethod",
    KeyRotationIntervalSeconds: "keyRotationIntervalSeconds",
    RepeatExtXKey: "repeatExtXKey",
    SpekeKeyProvider: "spekeKeyProvider",
}))).annotate({ identifier: "HlsEncryption" });
export const HlsPackage = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AdMarkers: S.optional(AdMarkers),
    AdTriggers: S.optional(AdTriggers),
    AdsOnDeliveryRestrictions: S.optional(AdsOnDeliveryRestrictions),
    Encryption: S.optional(HlsEncryption),
    IncludeDvbSubtitles: S.optional(S.Boolean),
    IncludeIframeOnlyStream: S.optional(S.Boolean),
    PlaylistType: S.optional(PlaylistType),
    PlaylistWindowSeconds: S.optional(S.Number),
    ProgramDateTimeIntervalSeconds: S.optional(S.Number),
    SegmentDurationSeconds: S.optional(S.Number),
    StreamSelection: S.optional(StreamSelection),
    UseAudioRenditionGroup: S.optional(S.Boolean),
}).pipe(S.encodeKeys({
    AdMarkers: "adMarkers",
    AdTriggers: "adTriggers",
    AdsOnDeliveryRestrictions: "adsOnDeliveryRestrictions",
    Encryption: "encryption",
    IncludeDvbSubtitles: "includeDvbSubtitles",
    IncludeIframeOnlyStream: "includeIframeOnlyStream",
    PlaylistType: "playlistType",
    PlaylistWindowSeconds: "playlistWindowSeconds",
    ProgramDateTimeIntervalSeconds: "programDateTimeIntervalSeconds",
    SegmentDurationSeconds: "segmentDurationSeconds",
    StreamSelection: "streamSelection",
    UseAudioRenditionGroup: "useAudioRenditionGroup",
}))).annotate({ identifier: "HlsPackage" });
export const MssEncryption = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ SpekeKeyProvider: S.optional(SpekeKeyProvider) }).pipe(S.encodeKeys({ SpekeKeyProvider: "spekeKeyProvider" }))).annotate({ identifier: "MssEncryption" });
export const MssPackage = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Encryption: S.optional(MssEncryption),
    ManifestWindowSeconds: S.optional(S.Number),
    SegmentDurationSeconds: S.optional(S.Number),
    StreamSelection: S.optional(StreamSelection),
}).pipe(S.encodeKeys({
    Encryption: "encryption",
    ManifestWindowSeconds: "manifestWindowSeconds",
    SegmentDurationSeconds: "segmentDurationSeconds",
    StreamSelection: "streamSelection",
}))).annotate({ identifier: "MssPackage" });
export const Origination = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const CreateOriginEndpointRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Authorization: S.optional(Authorization),
    ChannelId: S.optional(S.String),
    CmafPackage: S.optional(CmafPackageCreateOrUpdateParameters),
    DashPackage: S.optional(DashPackage),
    Description: S.optional(S.String),
    HlsPackage: S.optional(HlsPackage),
    Id: S.optional(S.String),
    ManifestName: S.optional(S.String),
    MssPackage: S.optional(MssPackage),
    Origination: S.optional(Origination),
    StartoverWindowSeconds: S.optional(S.Number),
    Tags: S.optional(Tags),
    TimeDelaySeconds: S.optional(S.Number),
    Whitelist: S.optional(__listOf__string),
})
    .pipe(S.encodeKeys({
    Authorization: "authorization",
    ChannelId: "channelId",
    CmafPackage: "cmafPackage",
    DashPackage: "dashPackage",
    Description: "description",
    HlsPackage: "hlsPackage",
    Id: "id",
    ManifestName: "manifestName",
    MssPackage: "mssPackage",
    Origination: "origination",
    StartoverWindowSeconds: "startoverWindowSeconds",
    Tags: "tags",
    TimeDelaySeconds: "timeDelaySeconds",
    Whitelist: "whitelist",
}))
    .pipe(T.all(T.Http({ method: "POST", uri: "/origin_endpoints" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateOriginEndpointRequest",
});
export const HlsManifest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AdMarkers: S.optional(AdMarkers),
    Id: S.optional(S.String),
    IncludeIframeOnlyStream: S.optional(S.Boolean),
    ManifestName: S.optional(S.String),
    PlaylistType: S.optional(PlaylistType),
    PlaylistWindowSeconds: S.optional(S.Number),
    ProgramDateTimeIntervalSeconds: S.optional(S.Number),
    Url: S.optional(S.String),
    AdTriggers: S.optional(AdTriggers),
    AdsOnDeliveryRestrictions: S.optional(AdsOnDeliveryRestrictions),
}).pipe(S.encodeKeys({
    AdMarkers: "adMarkers",
    Id: "id",
    IncludeIframeOnlyStream: "includeIframeOnlyStream",
    ManifestName: "manifestName",
    PlaylistType: "playlistType",
    PlaylistWindowSeconds: "playlistWindowSeconds",
    ProgramDateTimeIntervalSeconds: "programDateTimeIntervalSeconds",
    Url: "url",
    AdTriggers: "adTriggers",
    AdsOnDeliveryRestrictions: "adsOnDeliveryRestrictions",
}))).annotate({ identifier: "HlsManifest" });
export const __listOfHlsManifest = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(HlsManifest);
export const CmafPackage = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Encryption: S.optional(CmafEncryption),
    HlsManifests: S.optional(__listOfHlsManifest),
    SegmentDurationSeconds: S.optional(S.Number),
    SegmentPrefix: S.optional(S.String),
    StreamSelection: S.optional(StreamSelection),
}).pipe(S.encodeKeys({
    Encryption: "encryption",
    HlsManifests: "hlsManifests",
    SegmentDurationSeconds: "segmentDurationSeconds",
    SegmentPrefix: "segmentPrefix",
    StreamSelection: "streamSelection",
}))).annotate({ identifier: "CmafPackage" });
export const CreateOriginEndpointResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Arn: S.optional(S.String),
    Authorization: S.optional(Authorization),
    ChannelId: S.optional(S.String),
    CmafPackage: S.optional(CmafPackage),
    CreatedAt: S.optional(S.String),
    DashPackage: S.optional(DashPackage),
    Description: S.optional(S.String),
    HlsPackage: S.optional(HlsPackage),
    Id: S.optional(S.String),
    ManifestName: S.optional(S.String),
    MssPackage: S.optional(MssPackage),
    Origination: S.optional(Origination),
    StartoverWindowSeconds: S.optional(S.Number),
    Tags: S.optional(Tags),
    TimeDelaySeconds: S.optional(S.Number),
    Url: S.optional(S.String),
    Whitelist: S.optional(__listOf__string),
}).pipe(S.encodeKeys({
    Arn: "arn",
    Authorization: "authorization",
    ChannelId: "channelId",
    CmafPackage: "cmafPackage",
    CreatedAt: "createdAt",
    DashPackage: "dashPackage",
    Description: "description",
    HlsPackage: "hlsPackage",
    Id: "id",
    ManifestName: "manifestName",
    MssPackage: "mssPackage",
    Origination: "origination",
    StartoverWindowSeconds: "startoverWindowSeconds",
    Tags: "tags",
    TimeDelaySeconds: "timeDelaySeconds",
    Url: "url",
    Whitelist: "whitelist",
}))).annotate({
    identifier: "CreateOriginEndpointResponse",
});
export const DeleteChannelRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Id: S.String.pipe(T.HttpLabel("Id")) }).pipe(T.all(T.Http({ method: "DELETE", uri: "/channels/{Id}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteChannelRequest",
});
export const DeleteChannelResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DeleteChannelResponse",
});
export const DeleteOriginEndpointRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Id: S.String.pipe(T.HttpLabel("Id")) }).pipe(T.all(T.Http({ method: "DELETE", uri: "/origin_endpoints/{Id}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteOriginEndpointRequest",
});
export const DeleteOriginEndpointResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DeleteOriginEndpointResponse",
});
export const DescribeChannelRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Id: S.String.pipe(T.HttpLabel("Id")) }).pipe(T.all(T.Http({ method: "GET", uri: "/channels/{Id}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DescribeChannelRequest",
});
export const DescribeChannelResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Arn: S.optional(S.String),
    CreatedAt: S.optional(S.String),
    Description: S.optional(S.String),
    EgressAccessLogs: S.optional(EgressAccessLogs),
    HlsIngest: S.optional(HlsIngest),
    Id: S.optional(S.String),
    IngressAccessLogs: S.optional(IngressAccessLogs),
    Tags: S.optional(Tags),
}).pipe(S.encodeKeys({
    Arn: "arn",
    CreatedAt: "createdAt",
    Description: "description",
    EgressAccessLogs: "egressAccessLogs",
    HlsIngest: "hlsIngest",
    Id: "id",
    IngressAccessLogs: "ingressAccessLogs",
    Tags: "tags",
}))).annotate({
    identifier: "DescribeChannelResponse",
});
export const DescribeHarvestJobRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Id: S.String.pipe(T.HttpLabel("Id")) }).pipe(T.all(T.Http({ method: "GET", uri: "/harvest_jobs/{Id}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DescribeHarvestJobRequest",
});
export const DescribeHarvestJobResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Arn: S.optional(S.String),
    ChannelId: S.optional(S.String),
    CreatedAt: S.optional(S.String),
    EndTime: S.optional(S.String),
    Id: S.optional(S.String),
    OriginEndpointId: S.optional(S.String),
    S3Destination: S.optional(S3Destination),
    StartTime: S.optional(S.String),
    Status: S.optional(Status),
}).pipe(S.encodeKeys({
    Arn: "arn",
    ChannelId: "channelId",
    CreatedAt: "createdAt",
    EndTime: "endTime",
    Id: "id",
    OriginEndpointId: "originEndpointId",
    S3Destination: "s3Destination",
    StartTime: "startTime",
    Status: "status",
}))).annotate({
    identifier: "DescribeHarvestJobResponse",
});
export const DescribeOriginEndpointRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Id: S.String.pipe(T.HttpLabel("Id")) }).pipe(T.all(T.Http({ method: "GET", uri: "/origin_endpoints/{Id}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DescribeOriginEndpointRequest",
});
export const DescribeOriginEndpointResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Arn: S.optional(S.String),
    Authorization: S.optional(Authorization),
    ChannelId: S.optional(S.String),
    CmafPackage: S.optional(CmafPackage),
    CreatedAt: S.optional(S.String),
    DashPackage: S.optional(DashPackage),
    Description: S.optional(S.String),
    HlsPackage: S.optional(HlsPackage),
    Id: S.optional(S.String),
    ManifestName: S.optional(S.String),
    MssPackage: S.optional(MssPackage),
    Origination: S.optional(Origination),
    StartoverWindowSeconds: S.optional(S.Number),
    Tags: S.optional(Tags),
    TimeDelaySeconds: S.optional(S.Number),
    Url: S.optional(S.String),
    Whitelist: S.optional(__listOf__string),
}).pipe(S.encodeKeys({
    Arn: "arn",
    Authorization: "authorization",
    ChannelId: "channelId",
    CmafPackage: "cmafPackage",
    CreatedAt: "createdAt",
    DashPackage: "dashPackage",
    Description: "description",
    HlsPackage: "hlsPackage",
    Id: "id",
    ManifestName: "manifestName",
    MssPackage: "mssPackage",
    Origination: "origination",
    StartoverWindowSeconds: "startoverWindowSeconds",
    Tags: "tags",
    TimeDelaySeconds: "timeDelaySeconds",
    Url: "url",
    Whitelist: "whitelist",
}))).annotate({
    identifier: "DescribeOriginEndpointResponse",
});
export const ListChannelsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    MaxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
    NextToken: S.optional(S.String).pipe(T.HttpQuery("nextToken")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/channels" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListChannelsRequest",
});
export const Channel = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Arn: S.optional(S.String),
    CreatedAt: S.optional(S.String),
    Description: S.optional(S.String),
    EgressAccessLogs: S.optional(EgressAccessLogs),
    HlsIngest: S.optional(HlsIngest),
    Id: S.optional(S.String),
    IngressAccessLogs: S.optional(IngressAccessLogs),
    Tags: S.optional(Tags),
}).pipe(S.encodeKeys({
    Arn: "arn",
    CreatedAt: "createdAt",
    Description: "description",
    EgressAccessLogs: "egressAccessLogs",
    HlsIngest: "hlsIngest",
    Id: "id",
    IngressAccessLogs: "ingressAccessLogs",
    Tags: "tags",
}))).annotate({ identifier: "Channel" });
export const __listOfChannel = /*@__PURE__*/ /*#__PURE__*/ S.Array(Channel);
export const ListChannelsResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Channels: S.optional(__listOfChannel),
    NextToken: S.optional(S.String),
}).pipe(S.encodeKeys({ Channels: "channels", NextToken: "nextToken" }))).annotate({
    identifier: "ListChannelsResponse",
});
export const ListHarvestJobsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    IncludeChannelId: S.optional(S.String).pipe(T.HttpQuery("includeChannelId")),
    IncludeStatus: S.optional(S.String).pipe(T.HttpQuery("includeStatus")),
    MaxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
    NextToken: S.optional(S.String).pipe(T.HttpQuery("nextToken")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/harvest_jobs" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListHarvestJobsRequest",
});
export const HarvestJob = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Arn: S.optional(S.String),
    ChannelId: S.optional(S.String),
    CreatedAt: S.optional(S.String),
    EndTime: S.optional(S.String),
    Id: S.optional(S.String),
    OriginEndpointId: S.optional(S.String),
    S3Destination: S.optional(S3Destination),
    StartTime: S.optional(S.String),
    Status: S.optional(Status),
}).pipe(S.encodeKeys({
    Arn: "arn",
    ChannelId: "channelId",
    CreatedAt: "createdAt",
    EndTime: "endTime",
    Id: "id",
    OriginEndpointId: "originEndpointId",
    S3Destination: "s3Destination",
    StartTime: "startTime",
    Status: "status",
}))).annotate({ identifier: "HarvestJob" });
export const __listOfHarvestJob = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(HarvestJob);
export const ListHarvestJobsResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    HarvestJobs: S.optional(__listOfHarvestJob),
    NextToken: S.optional(S.String),
}).pipe(S.encodeKeys({ HarvestJobs: "harvestJobs", NextToken: "nextToken" }))).annotate({
    identifier: "ListHarvestJobsResponse",
});
export const ListOriginEndpointsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ChannelId: S.optional(S.String).pipe(T.HttpQuery("channelId")),
    MaxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
    NextToken: S.optional(S.String).pipe(T.HttpQuery("nextToken")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/origin_endpoints" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListOriginEndpointsRequest",
});
export const OriginEndpoint = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Arn: S.optional(S.String),
    Authorization: S.optional(Authorization),
    ChannelId: S.optional(S.String),
    CmafPackage: S.optional(CmafPackage),
    CreatedAt: S.optional(S.String),
    DashPackage: S.optional(DashPackage),
    Description: S.optional(S.String),
    HlsPackage: S.optional(HlsPackage),
    Id: S.optional(S.String),
    ManifestName: S.optional(S.String),
    MssPackage: S.optional(MssPackage),
    Origination: S.optional(Origination),
    StartoverWindowSeconds: S.optional(S.Number),
    Tags: S.optional(Tags),
    TimeDelaySeconds: S.optional(S.Number),
    Url: S.optional(S.String),
    Whitelist: S.optional(__listOf__string),
}).pipe(S.encodeKeys({
    Arn: "arn",
    Authorization: "authorization",
    ChannelId: "channelId",
    CmafPackage: "cmafPackage",
    CreatedAt: "createdAt",
    DashPackage: "dashPackage",
    Description: "description",
    HlsPackage: "hlsPackage",
    Id: "id",
    ManifestName: "manifestName",
    MssPackage: "mssPackage",
    Origination: "origination",
    StartoverWindowSeconds: "startoverWindowSeconds",
    Tags: "tags",
    TimeDelaySeconds: "timeDelaySeconds",
    Url: "url",
    Whitelist: "whitelist",
}))).annotate({ identifier: "OriginEndpoint" });
export const __listOfOriginEndpoint = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(OriginEndpoint);
export const ListOriginEndpointsResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    NextToken: S.optional(S.String),
    OriginEndpoints: S.optional(__listOfOriginEndpoint),
}).pipe(S.encodeKeys({
    NextToken: "nextToken",
    OriginEndpoints: "originEndpoints",
}))).annotate({
    identifier: "ListOriginEndpointsResponse",
});
export const ListTagsForResourceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ ResourceArn: S.String.pipe(T.HttpLabel("ResourceArn")) }).pipe(T.all(T.Http({ method: "GET", uri: "/tags/{ResourceArn}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListTagsForResourceRequest",
});
export const __mapOf__string = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, S.String.pipe(S.optional));
export const ListTagsForResourceResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Tags: S.optional(__mapOf__string) }).pipe(S.encodeKeys({ Tags: "tags" }))).annotate({
    identifier: "ListTagsForResourceResponse",
});
export const RotateChannelCredentialsRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Id: S.String.pipe(T.HttpLabel("Id")) }).pipe(T.all(T.Http({ method: "PUT", uri: "/channels/{Id}/credentials" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "RotateChannelCredentialsRequest",
});
export const RotateChannelCredentialsResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Arn: S.optional(S.String),
    CreatedAt: S.optional(S.String),
    Description: S.optional(S.String),
    EgressAccessLogs: S.optional(EgressAccessLogs),
    HlsIngest: S.optional(HlsIngest),
    Id: S.optional(S.String),
    IngressAccessLogs: S.optional(IngressAccessLogs),
    Tags: S.optional(Tags),
}).pipe(S.encodeKeys({
    Arn: "arn",
    CreatedAt: "createdAt",
    Description: "description",
    EgressAccessLogs: "egressAccessLogs",
    HlsIngest: "hlsIngest",
    Id: "id",
    IngressAccessLogs: "ingressAccessLogs",
    Tags: "tags",
}))).annotate({
    identifier: "RotateChannelCredentialsResponse",
});
export const RotateIngestEndpointCredentialsRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Id: S.String.pipe(T.HttpLabel("Id")),
    IngestEndpointId: S.String.pipe(T.HttpLabel("IngestEndpointId")),
}).pipe(T.all(T.Http({
    method: "PUT",
    uri: "/channels/{Id}/ingest_endpoints/{IngestEndpointId}/credentials",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "RotateIngestEndpointCredentialsRequest",
});
export const RotateIngestEndpointCredentialsResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Arn: S.optional(S.String),
    CreatedAt: S.optional(S.String),
    Description: S.optional(S.String),
    EgressAccessLogs: S.optional(EgressAccessLogs),
    HlsIngest: S.optional(HlsIngest),
    Id: S.optional(S.String),
    IngressAccessLogs: S.optional(IngressAccessLogs),
    Tags: S.optional(Tags),
}).pipe(S.encodeKeys({
    Arn: "arn",
    CreatedAt: "createdAt",
    Description: "description",
    EgressAccessLogs: "egressAccessLogs",
    HlsIngest: "hlsIngest",
    Id: "id",
    IngressAccessLogs: "ingressAccessLogs",
    Tags: "tags",
}))).annotate({
    identifier: "RotateIngestEndpointCredentialsResponse",
});
export const TagResourceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ResourceArn: S.String.pipe(T.HttpLabel("ResourceArn")),
    Tags: S.optional(__mapOf__string),
})
    .pipe(S.encodeKeys({ Tags: "tags" }))
    .pipe(T.all(T.Http({ method: "POST", uri: "/tags/{ResourceArn}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "TagResourceRequest",
});
export const TagResourceResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "TagResourceResponse",
});
export const UntagResourceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ResourceArn: S.String.pipe(T.HttpLabel("ResourceArn")),
    TagKeys: S.optional(__listOf__string).pipe(T.HttpQuery("tagKeys")),
}).pipe(T.all(T.Http({ method: "DELETE", uri: "/tags/{ResourceArn}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UntagResourceRequest",
});
export const UntagResourceResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "UntagResourceResponse",
});
export const UpdateChannelRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Description: S.optional(S.String),
    Id: S.String.pipe(T.HttpLabel("Id")),
})
    .pipe(S.encodeKeys({ Description: "description" }))
    .pipe(T.all(T.Http({ method: "PUT", uri: "/channels/{Id}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateChannelRequest",
});
export const UpdateChannelResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Arn: S.optional(S.String),
    CreatedAt: S.optional(S.String),
    Description: S.optional(S.String),
    EgressAccessLogs: S.optional(EgressAccessLogs),
    HlsIngest: S.optional(HlsIngest),
    Id: S.optional(S.String),
    IngressAccessLogs: S.optional(IngressAccessLogs),
    Tags: S.optional(Tags),
}).pipe(S.encodeKeys({
    Arn: "arn",
    CreatedAt: "createdAt",
    Description: "description",
    EgressAccessLogs: "egressAccessLogs",
    HlsIngest: "hlsIngest",
    Id: "id",
    IngressAccessLogs: "ingressAccessLogs",
    Tags: "tags",
}))).annotate({
    identifier: "UpdateChannelResponse",
});
export const UpdateOriginEndpointRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Authorization: S.optional(Authorization),
    CmafPackage: S.optional(CmafPackageCreateOrUpdateParameters),
    DashPackage: S.optional(DashPackage),
    Description: S.optional(S.String),
    HlsPackage: S.optional(HlsPackage),
    Id: S.String.pipe(T.HttpLabel("Id")),
    ManifestName: S.optional(S.String),
    MssPackage: S.optional(MssPackage),
    Origination: S.optional(Origination),
    StartoverWindowSeconds: S.optional(S.Number),
    TimeDelaySeconds: S.optional(S.Number),
    Whitelist: S.optional(__listOf__string),
})
    .pipe(S.encodeKeys({
    Authorization: "authorization",
    CmafPackage: "cmafPackage",
    DashPackage: "dashPackage",
    Description: "description",
    HlsPackage: "hlsPackage",
    ManifestName: "manifestName",
    MssPackage: "mssPackage",
    Origination: "origination",
    StartoverWindowSeconds: "startoverWindowSeconds",
    TimeDelaySeconds: "timeDelaySeconds",
    Whitelist: "whitelist",
}))
    .pipe(T.all(T.Http({ method: "PUT", uri: "/origin_endpoints/{Id}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateOriginEndpointRequest",
});
export const UpdateOriginEndpointResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Arn: S.optional(S.String),
    Authorization: S.optional(Authorization),
    ChannelId: S.optional(S.String),
    CmafPackage: S.optional(CmafPackage),
    CreatedAt: S.optional(S.String),
    DashPackage: S.optional(DashPackage),
    Description: S.optional(S.String),
    HlsPackage: S.optional(HlsPackage),
    Id: S.optional(S.String),
    ManifestName: S.optional(S.String),
    MssPackage: S.optional(MssPackage),
    Origination: S.optional(Origination),
    StartoverWindowSeconds: S.optional(S.Number),
    Tags: S.optional(Tags),
    TimeDelaySeconds: S.optional(S.Number),
    Url: S.optional(S.String),
    Whitelist: S.optional(__listOf__string),
}).pipe(S.encodeKeys({
    Arn: "arn",
    Authorization: "authorization",
    ChannelId: "channelId",
    CmafPackage: "cmafPackage",
    CreatedAt: "createdAt",
    DashPackage: "dashPackage",
    Description: "description",
    HlsPackage: "hlsPackage",
    Id: "id",
    ManifestName: "manifestName",
    MssPackage: "mssPackage",
    Origination: "origination",
    StartoverWindowSeconds: "startoverWindowSeconds",
    Tags: "tags",
    TimeDelaySeconds: "timeDelaySeconds",
    Url: "url",
    Whitelist: "whitelist",
}))).annotate({
    identifier: "UpdateOriginEndpointResponse",
});
//# Errors
export class ForbiddenException extends S.TaggedErrorClass()("ForbiddenException", { Message: S.optional(S.String) }).pipe(C.withAuthError) {
}
export class InternalServerErrorException extends S.TaggedErrorClass()("InternalServerErrorException", { Message: S.optional(S.String) }).pipe(C.withServerError) {
}
export class NotFoundException extends S.TaggedErrorClass()("NotFoundException", { Message: S.optional(S.String) }).pipe(C.withBadRequestError) {
}
export class ServiceUnavailableException extends S.TaggedErrorClass()("ServiceUnavailableException", { Message: S.optional(S.String) }).pipe(C.withServerError) {
}
export class TooManyRequestsException extends S.TaggedErrorClass()("TooManyRequestsException", { Message: S.optional(S.String) }).pipe(C.withThrottlingError) {
}
export class UnprocessableEntityException extends S.TaggedErrorClass()("UnprocessableEntityException", { Message: S.optional(S.String) }).pipe(C.withBadRequestError) {
}
/**
 * Changes the Channel's properities to configure log subscription
 */
export const configureLogs = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: ConfigureLogsRequest,
    output: ConfigureLogsResponse,
    errors: [
        ForbiddenException,
        InternalServerErrorException,
        NotFoundException,
        ServiceUnavailableException,
        TooManyRequestsException,
        UnprocessableEntityException,
    ],
}));
/**
 * Creates a new Channel.
 */
export const createChannel = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateChannelRequest,
    output: CreateChannelResponse,
    errors: [
        ForbiddenException,
        InternalServerErrorException,
        NotFoundException,
        ServiceUnavailableException,
        TooManyRequestsException,
        UnprocessableEntityException,
    ],
}));
/**
 * Creates a new HarvestJob record.
 */
export const createHarvestJob = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateHarvestJobRequest,
    output: CreateHarvestJobResponse,
    errors: [
        ForbiddenException,
        InternalServerErrorException,
        NotFoundException,
        ServiceUnavailableException,
        TooManyRequestsException,
        UnprocessableEntityException,
    ],
}));
/**
 * Creates a new OriginEndpoint record.
 */
export const createOriginEndpoint = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateOriginEndpointRequest,
    output: CreateOriginEndpointResponse,
    errors: [
        ForbiddenException,
        InternalServerErrorException,
        NotFoundException,
        ServiceUnavailableException,
        TooManyRequestsException,
        UnprocessableEntityException,
    ],
}));
/**
 * Deletes an existing Channel.
 */
export const deleteChannel = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteChannelRequest,
    output: DeleteChannelResponse,
    errors: [
        ForbiddenException,
        InternalServerErrorException,
        NotFoundException,
        ServiceUnavailableException,
        TooManyRequestsException,
        UnprocessableEntityException,
    ],
}));
/**
 * Deletes an existing OriginEndpoint.
 */
export const deleteOriginEndpoint = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteOriginEndpointRequest,
    output: DeleteOriginEndpointResponse,
    errors: [
        ForbiddenException,
        InternalServerErrorException,
        NotFoundException,
        ServiceUnavailableException,
        TooManyRequestsException,
        UnprocessableEntityException,
    ],
}));
/**
 * Gets details about a Channel.
 */
export const describeChannel = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DescribeChannelRequest,
    output: DescribeChannelResponse,
    errors: [
        ForbiddenException,
        InternalServerErrorException,
        NotFoundException,
        ServiceUnavailableException,
        TooManyRequestsException,
        UnprocessableEntityException,
    ],
}));
/**
 * Gets details about an existing HarvestJob.
 */
export const describeHarvestJob = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DescribeHarvestJobRequest,
    output: DescribeHarvestJobResponse,
    errors: [
        ForbiddenException,
        InternalServerErrorException,
        NotFoundException,
        ServiceUnavailableException,
        TooManyRequestsException,
        UnprocessableEntityException,
    ],
}));
/**
 * Gets details about an existing OriginEndpoint.
 */
export const describeOriginEndpoint = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DescribeOriginEndpointRequest,
    output: DescribeOriginEndpointResponse,
    errors: [
        ForbiddenException,
        InternalServerErrorException,
        NotFoundException,
        ServiceUnavailableException,
        TooManyRequestsException,
        UnprocessableEntityException,
    ],
}));
/**
 * Returns a collection of Channels.
 */
export const listChannels = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListChannelsRequest,
    output: ListChannelsResponse,
    errors: [
        ForbiddenException,
        InternalServerErrorException,
        NotFoundException,
        ServiceUnavailableException,
        TooManyRequestsException,
        UnprocessableEntityException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        items: "Channels",
        pageSize: "MaxResults",
    },
}));
/**
 * Returns a collection of HarvestJob records.
 */
export const listHarvestJobs = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListHarvestJobsRequest,
    output: ListHarvestJobsResponse,
    errors: [
        ForbiddenException,
        InternalServerErrorException,
        NotFoundException,
        ServiceUnavailableException,
        TooManyRequestsException,
        UnprocessableEntityException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        items: "HarvestJobs",
        pageSize: "MaxResults",
    },
}));
/**
 * Returns a collection of OriginEndpoint records.
 */
export const listOriginEndpoints = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListOriginEndpointsRequest,
    output: ListOriginEndpointsResponse,
    errors: [
        ForbiddenException,
        InternalServerErrorException,
        NotFoundException,
        ServiceUnavailableException,
        TooManyRequestsException,
        UnprocessableEntityException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        items: "OriginEndpoints",
        pageSize: "MaxResults",
    },
}));
/**
 *
 */
export const listTagsForResource = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: ListTagsForResourceRequest,
    output: ListTagsForResourceResponse,
    errors: [],
}));
/**
 * Changes the Channel's first IngestEndpoint's username and password. WARNING - This API is deprecated. Please use RotateIngestEndpointCredentials instead
 */
export const rotateChannelCredentials = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: RotateChannelCredentialsRequest,
    output: RotateChannelCredentialsResponse,
    errors: [
        ForbiddenException,
        InternalServerErrorException,
        NotFoundException,
        ServiceUnavailableException,
        TooManyRequestsException,
        UnprocessableEntityException,
    ],
}));
/**
 * Rotate the IngestEndpoint's username and password, as specified by the IngestEndpoint's id.
 */
export const rotateIngestEndpointCredentials = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: RotateIngestEndpointCredentialsRequest,
    output: RotateIngestEndpointCredentialsResponse,
    errors: [
        ForbiddenException,
        InternalServerErrorException,
        NotFoundException,
        ServiceUnavailableException,
        TooManyRequestsException,
        UnprocessableEntityException,
    ],
}));
/**
 *
 */
export const tagResource = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: TagResourceRequest,
    output: TagResourceResponse,
    errors: [],
}));
/**
 *
 */
export const untagResource = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UntagResourceRequest,
    output: UntagResourceResponse,
    errors: [],
}));
/**
 * Updates an existing Channel.
 */
export const updateChannel = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateChannelRequest,
    output: UpdateChannelResponse,
    errors: [
        ForbiddenException,
        InternalServerErrorException,
        NotFoundException,
        ServiceUnavailableException,
        TooManyRequestsException,
        UnprocessableEntityException,
    ],
}));
/**
 * Updates an existing OriginEndpoint.
 */
export const updateOriginEndpoint = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateOriginEndpointRequest,
    output: UpdateOriginEndpointResponse,
    errors: [
        ForbiddenException,
        InternalServerErrorException,
        NotFoundException,
        ServiceUnavailableException,
        TooManyRequestsException,
        UnprocessableEntityException,
    ],
}));
//# sourceMappingURL=mediapackage.js.map