@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api AWS Elemental MediaLive
@version 2017-10-14
@auth AWS SigV4
@endpoints 92
@hint download_for_search
@toc prod(92)

@endpoint POST /prod/inputDevices/{inputDeviceId}/accept
@desc Accept an incoming input device transfer. The ownership of the device will transfer to your AWS account.
@required {InputDeviceId: str}

@endpoint POST /prod/batch/delete
@desc Starts delete of resources.
@optional {ChannelIds: [str], InputIds: [str], InputSecurityGroupIds: [str], MultiplexIds: [str]}
@returns(200) {Failed: [BatchFailedResultModel]?, Successful: [BatchSuccessfulResultModel]?}

@endpoint POST /prod/batch/start
@desc Starts existing resources
@optional {ChannelIds: [str], MultiplexIds: [str]}
@returns(200) {Failed: [BatchFailedResultModel]?, Successful: [BatchSuccessfulResultModel]?}

@endpoint POST /prod/batch/stop
@desc Stops running resources
@optional {ChannelIds: [str], MultiplexIds: [str]}
@returns(200) {Failed: [BatchFailedResultModel]?, Successful: [BatchSuccessfulResultModel]?}

@endpoint PUT /prod/channels/{channelId}/schedule
@desc Update a channel schedule
@required {ChannelId: str}
@optional {Creates: BatchScheduleActionCreateRequest, Deletes: BatchScheduleActionDeleteRequest}
@returns(200) {Creates: BatchScheduleActionCreateResult?{ScheduleActions: [ScheduleAction]}, Deletes: BatchScheduleActionDeleteResult?{ScheduleActions: [ScheduleAction]}}

@endpoint POST /prod/inputDevices/{inputDeviceId}/cancel
@desc Cancel an input device transfer that you have requested.
@required {InputDeviceId: str}

@endpoint POST /prod/claimDevice
@desc Send a request to claim an AWS Elemental device that you have purchased from a third-party vendor. After the request succeeds, you will own the device.
@optional {Id: str}

@endpoint POST /prod/channels
@desc Creates a new channel
@optional {CdiInputSpecification: CdiInputSpecification, ChannelClass: str, Destinations: [OutputDestination], EncoderSettings: EncoderSettings, InputAttachments: [InputAttachment], InputSpecification: InputSpecification, LogLevel: str, Maintenance: MaintenanceCreateSettings, Name: str, RequestId: str, Reserved: str, RoleArn: str, Tags: map<str,str>, Vpc: VpcOutputSettings}
@returns(200) {Channel: Channel?{Arn: str?, CdiInputSpecification: CdiInputSpecification?{Resolution: str?}, ChannelClass: str?, Destinations: [OutputDestination]?, EgressEndpoints: [ChannelEgressEndpoint]?, EncoderSettings: EncoderSettings?{AudioDescriptions: [AudioDescription], AvailBlanking: AvailBlanking?{AvailBlankingImage: InputLocation?, State: str?}, AvailConfiguration: AvailConfiguration?{AvailSettings: AvailSettings?, Scte35SegmentationScope: str?}, BlackoutSlate: BlackoutSlate?{BlackoutSlateImage: InputLocation?, NetworkEndBlackout: str?, NetworkEndBlackoutImage: InputLocation?, NetworkId: str?, State: str?}, CaptionDescriptions: [CaptionDescription]?, FeatureActivations: FeatureActivations?{InputPrepareScheduleActions: str?, OutputStaticImageOverlayScheduleActions: str?}, GlobalConfiguration: GlobalConfiguration?{InitialAudioGain: int?, InputEndAction: str?, InputLossBehavior: InputLossBehavior?, OutputLockingMode: str?, OutputTimingSource: str?, SupportLowFramerateInputs: str?, OutputLockingSettings: OutputLockingSettings?}, MotionGraphicsConfiguration: MotionGraphicsConfiguration?{MotionGraphicsInsertion: str?, MotionGraphicsSettings: MotionGraphicsSettings}, NielsenConfiguration: NielsenConfiguration?{DistributorId: str?, NielsenPcmToId3Tagging: str?}, OutputGroups: [OutputGroup], TimecodeConfig: TimecodeConfig{Source: str, SyncThreshold: int?}, VideoDescriptions: [VideoDescription], ThumbnailConfiguration: ThumbnailConfiguration?{State: str}, ColorCorrectionSettings: ColorCorrectionSettings?{GlobalColorCorrections: [ColorCorrection]}}, Id: str?, InputAttachments: [InputAttachment]?, InputSpecification: InputSpecification?{Codec: str?, MaximumBitrate: str?, Resolution: str?}, LogLevel: str?, Maintenance: MaintenanceStatus?{MaintenanceDay: str?, MaintenanceDeadline: str?, MaintenanceScheduledDate: str?, MaintenanceStartTime: str?}, Name: str?, PipelineDetails: [PipelineDetail]?, PipelinesRunningCount: int?, RoleArn: str?, State: str?, Tags: map<str,str>?, Vpc: VpcOutputSettingsDescription?{AvailabilityZones: [str]?, NetworkInterfaceIds: [str]?, SecurityGroupIds: [str]?, SubnetIds: [str]?}}}

@endpoint POST /prod/inputs
@desc Create an input
@optional {Destinations: [InputDestinationRequest], InputDevices: [InputDeviceSettings], InputSecurityGroups: [str], MediaConnectFlows: [MediaConnectFlowRequest], Name: str, RequestId: str, RoleArn: str, Sources: [InputSourceRequest], Tags: map<str,str>, Type: str, Vpc: InputVpcRequest, SrtSettings: SrtSettingsRequest}
@returns(200) {Input: Input?{Arn: str?, AttachedChannels: [str]?, Destinations: [InputDestination]?, Id: str?, InputClass: str?, InputDevices: [InputDeviceSettings]?, InputPartnerIds: [str]?, InputSourceType: str?, MediaConnectFlows: [MediaConnectFlow]?, Name: str?, RoleArn: str?, SecurityGroups: [str]?, Sources: [InputSource]?, State: str?, Tags: map<str,str>?, Type: str?, SrtSettings: SrtSettings?{SrtCallerSources: [SrtCallerSource]?}}}

@endpoint POST /prod/inputSecurityGroups
@desc Creates a Input Security Group
@optional {Tags: map<str,str>, WhitelistRules: [InputWhitelistRuleCidr]}
@returns(200) {SecurityGroup: InputSecurityGroup?{Arn: str?, Id: str?, Inputs: [str]?, State: str?, Tags: map<str,str>?, WhitelistRules: [InputWhitelistRule]?}}

@endpoint POST /prod/multiplexes
@desc Create a new multiplex.
@required {AvailabilityZones: [str], MultiplexSettings: MultiplexSettings, Name: str, RequestId: str}
@optional {Tags: map<str,str>}
@returns(200) {Multiplex: Multiplex?{Arn: str?, AvailabilityZones: [str]?, Destinations: [MultiplexOutputDestination]?, Id: str?, MultiplexSettings: MultiplexSettings?{MaximumVideoBufferDelayMilliseconds: int?, TransportStreamBitrate: int, TransportStreamId: int, TransportStreamReservedBitrate: int?}, Name: str?, PipelinesRunningCount: int?, ProgramCount: int?, State: str?, Tags: map<str,str>?}}

@endpoint POST /prod/multiplexes/{multiplexId}/programs
@desc Create a new program in the multiplex.
@required {MultiplexId: str, MultiplexProgramSettings: MultiplexProgramSettings, ProgramName: str, RequestId: str}
@returns(200) {MultiplexProgram: MultiplexProgram?{ChannelId: str?, MultiplexProgramSettings: MultiplexProgramSettings?{PreferredChannelPipeline: str?, ProgramNumber: int, ServiceDescriptor: MultiplexProgramServiceDescriptor?{ProviderName: str, ServiceName: str}, VideoSettings: MultiplexVideoSettings?{ConstantBitrate: int?, StatmuxSettings: MultiplexStatmuxVideoSettings?}}, PacketIdentifiersMap: MultiplexProgramPacketIdentifiersMap?{AudioPids: [int]?, DvbSubPids: [int]?, DvbTeletextPid: int?, EtvPlatformPid: int?, EtvSignalPid: int?, KlvDataPids: [int]?, PcrPid: int?, PmtPid: int?, PrivateMetadataPid: int?, Scte27Pids: [int]?, Scte35Pid: int?, TimedMetadataPid: int?, VideoPid: int?, AribCaptionsPid: int?, DvbTeletextPids: [int]?, EcmPid: int?, Smpte2038Pid: int?}, PipelineDetails: [MultiplexProgramPipelineDetail]?, ProgramName: str?}}

@endpoint POST /prod/inputs/{inputId}/partners
@desc Create a partner input
@required {InputId: str}
@optional {RequestId: str, Tags: map<str,str>}
@returns(200) {Input: Input?{Arn: str?, AttachedChannels: [str]?, Destinations: [InputDestination]?, Id: str?, InputClass: str?, InputDevices: [InputDeviceSettings]?, InputPartnerIds: [str]?, InputSourceType: str?, MediaConnectFlows: [MediaConnectFlow]?, Name: str?, RoleArn: str?, SecurityGroups: [str]?, Sources: [InputSource]?, State: str?, Tags: map<str,str>?, Type: str?, SrtSettings: SrtSettings?{SrtCallerSources: [SrtCallerSource]?}}}

@endpoint POST /prod/tags/{resource-arn}
@desc Create tags for a resource
@required {ResourceArn: str}
@optional {Tags: map<str,str>}

@endpoint DELETE /prod/channels/{channelId}
@desc Starts deletion of channel. The associated outputs are also deleted.
@required {ChannelId: str}
@returns(200) {Arn: str?, CdiInputSpecification: CdiInputSpecification?{Resolution: str?}, ChannelClass: str?, Destinations: [OutputDestination]?, EgressEndpoints: [ChannelEgressEndpoint]?, EncoderSettings: EncoderSettings?{AudioDescriptions: [AudioDescription], AvailBlanking: AvailBlanking?{AvailBlankingImage: InputLocation?{PasswordParam: str?, Uri: str, Username: str?}, State: str?}, AvailConfiguration: AvailConfiguration?{AvailSettings: AvailSettings?{Esam: Esam?, Scte35SpliceInsert: Scte35SpliceInsert?, Scte35TimeSignalApos: Scte35TimeSignalApos?}, Scte35SegmentationScope: str?}, BlackoutSlate: BlackoutSlate?{BlackoutSlateImage: InputLocation?{PasswordParam: str?, Uri: str, Username: str?}, NetworkEndBlackout: str?, NetworkEndBlackoutImage: InputLocation?{PasswordParam: str?, Uri: str, Username: str?}, NetworkId: str?, State: str?}, CaptionDescriptions: [CaptionDescription]?, FeatureActivations: FeatureActivations?{InputPrepareScheduleActions: str?, OutputStaticImageOverlayScheduleActions: str?}, GlobalConfiguration: GlobalConfiguration?{InitialAudioGain: int?, InputEndAction: str?, InputLossBehavior: InputLossBehavior?{BlackFrameMsec: int?, InputLossImageColor: str?, InputLossImageSlate: InputLocation?, InputLossImageType: str?, RepeatFrameMsec: int?}, OutputLockingMode: str?, OutputTimingSource: str?, SupportLowFramerateInputs: str?, OutputLockingSettings: OutputLockingSettings?{EpochLockingSettings: EpochLockingSettings?, PipelineLockingSettings: PipelineLockingSettings?}}, MotionGraphicsConfiguration: MotionGraphicsConfiguration?{MotionGraphicsInsertion: str?, MotionGraphicsSettings: MotionGraphicsSettings{HtmlMotionGraphicsSettings: HtmlMotionGraphicsSettings?}}, NielsenConfiguration: NielsenConfiguration?{DistributorId: str?, NielsenPcmToId3Tagging: str?}, OutputGroups: [OutputGroup], TimecodeConfig: TimecodeConfig{Source: str, SyncThreshold: int?}, VideoDescriptions: [VideoDescription], ThumbnailConfiguration: ThumbnailConfiguration?{State: str}, ColorCorrectionSettings: ColorCorrectionSettings?{GlobalColorCorrections: [ColorCorrection]}}, Id: str?, InputAttachments: [InputAttachment]?, InputSpecification: InputSpecification?{Codec: str?, MaximumBitrate: str?, Resolution: str?}, LogLevel: str?, Maintenance: MaintenanceStatus?{MaintenanceDay: str?, MaintenanceDeadline: str?, MaintenanceScheduledDate: str?, MaintenanceStartTime: str?}, Name: str?, PipelineDetails: [PipelineDetail]?, PipelinesRunningCount: int?, RoleArn: str?, State: str?, Tags: map<str,str>?, Vpc: VpcOutputSettingsDescription?{AvailabilityZones: [str]?, NetworkInterfaceIds: [str]?, SecurityGroupIds: [str]?, SubnetIds: [str]?}}

@endpoint DELETE /prod/inputs/{inputId}
@desc Deletes the input end point
@required {InputId: str}

@endpoint DELETE /prod/inputSecurityGroups/{inputSecurityGroupId}
@desc Deletes an Input Security Group
@required {InputSecurityGroupId: str}

@endpoint DELETE /prod/multiplexes/{multiplexId}
@desc Delete a multiplex. The multiplex must be idle.
@required {MultiplexId: str}
@returns(200) {Arn: str?, AvailabilityZones: [str]?, Destinations: [MultiplexOutputDestination]?, Id: str?, MultiplexSettings: MultiplexSettings?{MaximumVideoBufferDelayMilliseconds: int?, TransportStreamBitrate: int, TransportStreamId: int, TransportStreamReservedBitrate: int?}, Name: str?, PipelinesRunningCount: int?, ProgramCount: int?, State: str?, Tags: map<str,str>?}

@endpoint DELETE /prod/multiplexes/{multiplexId}/programs/{programName}
@desc Delete a program from a multiplex.
@required {MultiplexId: str, ProgramName: str}
@returns(200) {ChannelId: str?, MultiplexProgramSettings: MultiplexProgramSettings?{PreferredChannelPipeline: str?, ProgramNumber: int, ServiceDescriptor: MultiplexProgramServiceDescriptor?{ProviderName: str, ServiceName: str}, VideoSettings: MultiplexVideoSettings?{ConstantBitrate: int?, StatmuxSettings: MultiplexStatmuxVideoSettings?{MaximumBitrate: int?, MinimumBitrate: int?, Priority: int?}}}, PacketIdentifiersMap: MultiplexProgramPacketIdentifiersMap?{AudioPids: [int]?, DvbSubPids: [int]?, DvbTeletextPid: int?, EtvPlatformPid: int?, EtvSignalPid: int?, KlvDataPids: [int]?, PcrPid: int?, PmtPid: int?, PrivateMetadataPid: int?, Scte27Pids: [int]?, Scte35Pid: int?, TimedMetadataPid: int?, VideoPid: int?, AribCaptionsPid: int?, DvbTeletextPids: [int]?, EcmPid: int?, Smpte2038Pid: int?}, PipelineDetails: [MultiplexProgramPipelineDetail]?, ProgramName: str?}

@endpoint DELETE /prod/reservations/{reservationId}
@desc Delete an expired reservation.
@required {ReservationId: str}
@returns(200) {Arn: str?, Count: int?, CurrencyCode: str?, Duration: int?, DurationUnits: str?, End: str?, FixedPrice: num(f64)?, Name: str?, OfferingDescription: str?, OfferingId: str?, OfferingType: str?, Region: str?, RenewalSettings: RenewalSettings?{AutomaticRenewal: str?, RenewalCount: int?}, ReservationId: str?, ResourceSpecification: ReservationResourceSpecification?{ChannelClass: str?, Codec: str?, MaximumBitrate: str?, MaximumFramerate: str?, Resolution: str?, ResourceType: str?, SpecialFeature: str?, VideoQuality: str?}, Start: str?, State: str?, Tags: map<str,str>?, UsagePrice: num(f64)?}

@endpoint DELETE /prod/channels/{channelId}/schedule
@desc Delete all schedule actions on a channel.
@required {ChannelId: str}

@endpoint DELETE /prod/tags/{resource-arn}
@desc Removes tags for a resource
@required {ResourceArn: str, tagKeys: [str]}

@endpoint GET /prod/accountConfiguration
@desc Describe account configuration
@returns(200) {AccountConfiguration: AccountConfiguration?{KmsKeyId: str?}}

@endpoint GET /prod/channels/{channelId}
@desc Gets details about a channel
@required {ChannelId: str}
@returns(200) {Arn: str?, CdiInputSpecification: CdiInputSpecification?{Resolution: str?}, ChannelClass: str?, Destinations: [OutputDestination]?, EgressEndpoints: [ChannelEgressEndpoint]?, EncoderSettings: EncoderSettings?{AudioDescriptions: [AudioDescription], AvailBlanking: AvailBlanking?{AvailBlankingImage: InputLocation?{PasswordParam: str?, Uri: str, Username: str?}, State: str?}, AvailConfiguration: AvailConfiguration?{AvailSettings: AvailSettings?{Esam: Esam?, Scte35SpliceInsert: Scte35SpliceInsert?, Scte35TimeSignalApos: Scte35TimeSignalApos?}, Scte35SegmentationScope: str?}, BlackoutSlate: BlackoutSlate?{BlackoutSlateImage: InputLocation?{PasswordParam: str?, Uri: str, Username: str?}, NetworkEndBlackout: str?, NetworkEndBlackoutImage: InputLocation?{PasswordParam: str?, Uri: str, Username: str?}, NetworkId: str?, State: str?}, CaptionDescriptions: [CaptionDescription]?, FeatureActivations: FeatureActivations?{InputPrepareScheduleActions: str?, OutputStaticImageOverlayScheduleActions: str?}, GlobalConfiguration: GlobalConfiguration?{InitialAudioGain: int?, InputEndAction: str?, InputLossBehavior: InputLossBehavior?{BlackFrameMsec: int?, InputLossImageColor: str?, InputLossImageSlate: InputLocation?, InputLossImageType: str?, RepeatFrameMsec: int?}, OutputLockingMode: str?, OutputTimingSource: str?, SupportLowFramerateInputs: str?, OutputLockingSettings: OutputLockingSettings?{EpochLockingSettings: EpochLockingSettings?, PipelineLockingSettings: PipelineLockingSettings?}}, MotionGraphicsConfiguration: MotionGraphicsConfiguration?{MotionGraphicsInsertion: str?, MotionGraphicsSettings: MotionGraphicsSettings{HtmlMotionGraphicsSettings: HtmlMotionGraphicsSettings?}}, NielsenConfiguration: NielsenConfiguration?{DistributorId: str?, NielsenPcmToId3Tagging: str?}, OutputGroups: [OutputGroup], TimecodeConfig: TimecodeConfig{Source: str, SyncThreshold: int?}, VideoDescriptions: [VideoDescription], ThumbnailConfiguration: ThumbnailConfiguration?{State: str}, ColorCorrectionSettings: ColorCorrectionSettings?{GlobalColorCorrections: [ColorCorrection]}}, Id: str?, InputAttachments: [InputAttachment]?, InputSpecification: InputSpecification?{Codec: str?, MaximumBitrate: str?, Resolution: str?}, LogLevel: str?, Maintenance: MaintenanceStatus?{MaintenanceDay: str?, MaintenanceDeadline: str?, MaintenanceScheduledDate: str?, MaintenanceStartTime: str?}, Name: str?, PipelineDetails: [PipelineDetail]?, PipelinesRunningCount: int?, RoleArn: str?, State: str?, Tags: map<str,str>?, Vpc: VpcOutputSettingsDescription?{AvailabilityZones: [str]?, NetworkInterfaceIds: [str]?, SecurityGroupIds: [str]?, SubnetIds: [str]?}}

@endpoint GET /prod/inputs/{inputId}
@desc Produces details about an input
@required {InputId: str}
@returns(200) {Arn: str?, AttachedChannels: [str]?, Destinations: [InputDestination]?, Id: str?, InputClass: str?, InputDevices: [InputDeviceSettings]?, InputPartnerIds: [str]?, InputSourceType: str?, MediaConnectFlows: [MediaConnectFlow]?, Name: str?, RoleArn: str?, SecurityGroups: [str]?, Sources: [InputSource]?, State: str?, Tags: map<str,str>?, Type: str?, SrtSettings: SrtSettings?{SrtCallerSources: [SrtCallerSource]?}}

@endpoint GET /prod/inputDevices/{inputDeviceId}
@desc Gets the details for the input device
@required {InputDeviceId: str}
@returns(200) {Arn: str?, ConnectionState: str?, DeviceSettingsSyncState: str?, DeviceUpdateStatus: str?, HdDeviceSettings: InputDeviceHdSettings?{ActiveInput: str?, ConfiguredInput: str?, DeviceState: str?, Framerate: num(f64)?, Height: int?, MaxBitrate: int?, ScanType: str?, Width: int?, LatencyMs: int?}, Id: str?, MacAddress: str?, Name: str?, NetworkSettings: InputDeviceNetworkSettings?{DnsAddresses: [str]?, Gateway: str?, IpAddress: str?, IpScheme: str?, SubnetMask: str?}, SerialNumber: str?, Type: str?, UhdDeviceSettings: InputDeviceUhdSettings?{ActiveInput: str?, ConfiguredInput: str?, DeviceState: str?, Framerate: num(f64)?, Height: int?, MaxBitrate: int?, ScanType: str?, Width: int?, LatencyMs: int?, Codec: str?, MediaconnectSettings: InputDeviceMediaConnectSettings?{FlowArn: str?, RoleArn: str?, SecretArn: str?, SourceName: str?}, AudioChannelPairs: [InputDeviceUhdAudioChannelPairConfig]?}, Tags: map<str,str>?, AvailabilityZone: str?, MedialiveInputArns: [str]?, OutputType: str?}

@endpoint GET /prod/inputDevices/{inputDeviceId}/thumbnailData
@desc Get the latest thumbnail data for the input device.
@required {InputDeviceId: str, accept: str}
@returns(200) {Body: bytes?, ContentType: str?, ContentLength: int(i64)?, ETag: str?, LastModified: str(timestamp)?}

@endpoint GET /prod/inputSecurityGroups/{inputSecurityGroupId}
@desc Produces a summary of an Input Security Group
@required {InputSecurityGroupId: str}
@returns(200) {Arn: str?, Id: str?, Inputs: [str]?, State: str?, Tags: map<str,str>?, WhitelistRules: [InputWhitelistRule]?}

@endpoint GET /prod/multiplexes/{multiplexId}
@desc Gets details about a multiplex.
@required {MultiplexId: str}
@returns(200) {Arn: str?, AvailabilityZones: [str]?, Destinations: [MultiplexOutputDestination]?, Id: str?, MultiplexSettings: MultiplexSettings?{MaximumVideoBufferDelayMilliseconds: int?, TransportStreamBitrate: int, TransportStreamId: int, TransportStreamReservedBitrate: int?}, Name: str?, PipelinesRunningCount: int?, ProgramCount: int?, State: str?, Tags: map<str,str>?}

@endpoint GET /prod/multiplexes/{multiplexId}/programs/{programName}
@desc Get the details for a program in a multiplex.
@required {MultiplexId: str, ProgramName: str}
@returns(200) {ChannelId: str?, MultiplexProgramSettings: MultiplexProgramSettings?{PreferredChannelPipeline: str?, ProgramNumber: int, ServiceDescriptor: MultiplexProgramServiceDescriptor?{ProviderName: str, ServiceName: str}, VideoSettings: MultiplexVideoSettings?{ConstantBitrate: int?, StatmuxSettings: MultiplexStatmuxVideoSettings?{MaximumBitrate: int?, MinimumBitrate: int?, Priority: int?}}}, PacketIdentifiersMap: MultiplexProgramPacketIdentifiersMap?{AudioPids: [int]?, DvbSubPids: [int]?, DvbTeletextPid: int?, EtvPlatformPid: int?, EtvSignalPid: int?, KlvDataPids: [int]?, PcrPid: int?, PmtPid: int?, PrivateMetadataPid: int?, Scte27Pids: [int]?, Scte35Pid: int?, TimedMetadataPid: int?, VideoPid: int?, AribCaptionsPid: int?, DvbTeletextPids: [int]?, EcmPid: int?, Smpte2038Pid: int?}, PipelineDetails: [MultiplexProgramPipelineDetail]?, ProgramName: str?}

@endpoint GET /prod/offerings/{offeringId}
@desc Get details for an offering.
@required {OfferingId: str}
@returns(200) {Arn: str?, CurrencyCode: str?, Duration: int?, DurationUnits: str?, FixedPrice: num(f64)?, OfferingDescription: str?, OfferingId: str?, OfferingType: str?, Region: str?, ResourceSpecification: ReservationResourceSpecification?{ChannelClass: str?, Codec: str?, MaximumBitrate: str?, MaximumFramerate: str?, Resolution: str?, ResourceType: str?, SpecialFeature: str?, VideoQuality: str?}, UsagePrice: num(f64)?}

@endpoint GET /prod/reservations/{reservationId}
@desc Get details for a reservation.
@required {ReservationId: str}
@returns(200) {Arn: str?, Count: int?, CurrencyCode: str?, Duration: int?, DurationUnits: str?, End: str?, FixedPrice: num(f64)?, Name: str?, OfferingDescription: str?, OfferingId: str?, OfferingType: str?, Region: str?, RenewalSettings: RenewalSettings?{AutomaticRenewal: str?, RenewalCount: int?}, ReservationId: str?, ResourceSpecification: ReservationResourceSpecification?{ChannelClass: str?, Codec: str?, MaximumBitrate: str?, MaximumFramerate: str?, Resolution: str?, ResourceType: str?, SpecialFeature: str?, VideoQuality: str?}, Start: str?, State: str?, Tags: map<str,str>?, UsagePrice: num(f64)?}

@endpoint GET /prod/channels/{channelId}/schedule
@desc Get a channel schedule
@required {ChannelId: str}
@optional {maxResults: int, nextToken: str}
@returns(200) {NextToken: str?, ScheduleActions: [ScheduleAction]?}

@endpoint GET /prod/channels/{channelId}/thumbnails
@desc Describe the latest thumbnails data.
@required {ChannelId: str, pipelineId: str, thumbnailType: str}
@returns(200) {ThumbnailDetails: [ThumbnailDetail]?}

@endpoint GET /prod/channels
@desc Produces list of channels that have been created
@optional {maxResults: int, nextToken: str}
@returns(200) {Channels: [ChannelSummary]?, NextToken: str?}

@endpoint GET /prod/inputDeviceTransfers
@desc List input devices that are currently being transferred. List input devices that you are transferring from your AWS account or input devices that another AWS account is transferring to you.
@required {transferType: str}
@optional {maxResults: int, nextToken: str}
@returns(200) {InputDeviceTransfers: [TransferringInputDeviceSummary]?, NextToken: str?}

@endpoint GET /prod/inputDevices
@desc List input devices
@optional {maxResults: int, nextToken: str}
@returns(200) {InputDevices: [InputDeviceSummary]?, NextToken: str?}

@endpoint GET /prod/inputSecurityGroups
@desc Produces a list of Input Security Groups for an account
@optional {maxResults: int, nextToken: str}
@returns(200) {InputSecurityGroups: [InputSecurityGroup]?, NextToken: str?}

@endpoint GET /prod/inputs
@desc Produces list of inputs that have been created
@optional {maxResults: int, nextToken: str}
@returns(200) {Inputs: [Input]?, NextToken: str?}

@endpoint GET /prod/multiplexes/{multiplexId}/programs
@desc List the programs that currently exist for a specific multiplex.
@required {MultiplexId: str}
@optional {maxResults: int, nextToken: str}
@returns(200) {MultiplexPrograms: [MultiplexProgramSummary]?, NextToken: str?}

@endpoint GET /prod/multiplexes
@desc Retrieve a list of the existing multiplexes.
@optional {maxResults: int, nextToken: str}
@returns(200) {Multiplexes: [MultiplexSummary]?, NextToken: str?}

@endpoint GET /prod/offerings
@desc List offerings available for purchase.
@optional {channelClass: str, channelConfiguration: str, codec: str, duration: str, maxResults: int, maximumBitrate: str, maximumFramerate: str, nextToken: str, resolution: str, resourceType: str, specialFeature: str, videoQuality: str}
@returns(200) {NextToken: str?, Offerings: [Offering]?}

@endpoint GET /prod/reservations
@desc List purchased reservations.
@optional {channelClass: str, codec: str, maxResults: int, maximumBitrate: str, maximumFramerate: str, nextToken: str, resolution: str, resourceType: str, specialFeature: str, videoQuality: str}
@returns(200) {NextToken: str?, Reservations: [Reservation]?}

@endpoint GET /prod/tags/{resource-arn}
@desc Produces list of tags that have been created for a resource
@required {ResourceArn: str}
@returns(200) {Tags: map<str,str>?}

@endpoint POST /prod/offerings/{offeringId}/purchase
@desc Purchase an offering and create a reservation.
@required {OfferingId: str, Count: int}
@optional {Name: str, RenewalSettings: RenewalSettings, RequestId: str, Start: str, Tags: map<str,str>}
@returns(200) {Reservation: Reservation?{Arn: str?, Count: int?, CurrencyCode: str?, Duration: int?, DurationUnits: str?, End: str?, FixedPrice: num(f64)?, Name: str?, OfferingDescription: str?, OfferingId: str?, OfferingType: str?, Region: str?, RenewalSettings: RenewalSettings?{AutomaticRenewal: str?, RenewalCount: int?}, ReservationId: str?, ResourceSpecification: ReservationResourceSpecification?{ChannelClass: str?, Codec: str?, MaximumBitrate: str?, MaximumFramerate: str?, Resolution: str?, ResourceType: str?, SpecialFeature: str?, VideoQuality: str?}, Start: str?, State: str?, Tags: map<str,str>?, UsagePrice: num(f64)?}}

@endpoint POST /prod/inputDevices/{inputDeviceId}/reboot
@desc Send a reboot command to the specified input device. The device will begin rebooting within a few seconds of sending the command. When the reboot is complete, the device’s connection status will change to connected.
@required {InputDeviceId: str}
@optional {Force: str}

@endpoint POST /prod/inputDevices/{inputDeviceId}/reject
@desc Reject the transfer of the specified input device to your AWS account.
@required {InputDeviceId: str}

@endpoint POST /prod/channels/{channelId}/start
@desc Starts an existing channel
@required {ChannelId: str}
@returns(200) {Arn: str?, CdiInputSpecification: CdiInputSpecification?{Resolution: str?}, ChannelClass: str?, Destinations: [OutputDestination]?, EgressEndpoints: [ChannelEgressEndpoint]?, EncoderSettings: EncoderSettings?{AudioDescriptions: [AudioDescription], AvailBlanking: AvailBlanking?{AvailBlankingImage: InputLocation?{PasswordParam: str?, Uri: str, Username: str?}, State: str?}, AvailConfiguration: AvailConfiguration?{AvailSettings: AvailSettings?{Esam: Esam?, Scte35SpliceInsert: Scte35SpliceInsert?, Scte35TimeSignalApos: Scte35TimeSignalApos?}, Scte35SegmentationScope: str?}, BlackoutSlate: BlackoutSlate?{BlackoutSlateImage: InputLocation?{PasswordParam: str?, Uri: str, Username: str?}, NetworkEndBlackout: str?, NetworkEndBlackoutImage: InputLocation?{PasswordParam: str?, Uri: str, Username: str?}, NetworkId: str?, State: str?}, CaptionDescriptions: [CaptionDescription]?, FeatureActivations: FeatureActivations?{InputPrepareScheduleActions: str?, OutputStaticImageOverlayScheduleActions: str?}, GlobalConfiguration: GlobalConfiguration?{InitialAudioGain: int?, InputEndAction: str?, InputLossBehavior: InputLossBehavior?{BlackFrameMsec: int?, InputLossImageColor: str?, InputLossImageSlate: InputLocation?, InputLossImageType: str?, RepeatFrameMsec: int?}, OutputLockingMode: str?, OutputTimingSource: str?, SupportLowFramerateInputs: str?, OutputLockingSettings: OutputLockingSettings?{EpochLockingSettings: EpochLockingSettings?, PipelineLockingSettings: PipelineLockingSettings?}}, MotionGraphicsConfiguration: MotionGraphicsConfiguration?{MotionGraphicsInsertion: str?, MotionGraphicsSettings: MotionGraphicsSettings{HtmlMotionGraphicsSettings: HtmlMotionGraphicsSettings?}}, NielsenConfiguration: NielsenConfiguration?{DistributorId: str?, NielsenPcmToId3Tagging: str?}, OutputGroups: [OutputGroup], TimecodeConfig: TimecodeConfig{Source: str, SyncThreshold: int?}, VideoDescriptions: [VideoDescription], ThumbnailConfiguration: ThumbnailConfiguration?{State: str}, ColorCorrectionSettings: ColorCorrectionSettings?{GlobalColorCorrections: [ColorCorrection]}}, Id: str?, InputAttachments: [InputAttachment]?, InputSpecification: InputSpecification?{Codec: str?, MaximumBitrate: str?, Resolution: str?}, LogLevel: str?, Maintenance: MaintenanceStatus?{MaintenanceDay: str?, MaintenanceDeadline: str?, MaintenanceScheduledDate: str?, MaintenanceStartTime: str?}, Name: str?, PipelineDetails: [PipelineDetail]?, PipelinesRunningCount: int?, RoleArn: str?, State: str?, Tags: map<str,str>?, Vpc: VpcOutputSettingsDescription?{AvailabilityZones: [str]?, NetworkInterfaceIds: [str]?, SecurityGroupIds: [str]?, SubnetIds: [str]?}}

@endpoint POST /prod/inputDevices/{inputDeviceId}/start
@desc Start an input device that is attached to a MediaConnect flow. (There is no need to start a device that is attached to a MediaLive input; MediaLive starts the device when the channel starts.)
@required {InputDeviceId: str}

@endpoint POST /prod/inputDevices/{inputDeviceId}/startInputDeviceMaintenanceWindow
@desc Start a maintenance window for the specified input device. Starting a maintenance window will give the device up to two hours to install software. If the device was streaming prior to the maintenance, it will resume streaming when the software is fully installed. Devices automatically install updates while they are powered on and their MediaLive channels are stopped. A maintenance window allows you to update a device without having to stop MediaLive channels that use the device. The device must remain powered on and connected to the internet for the duration of the maintenance.
@required {InputDeviceId: str}

@endpoint POST /prod/multiplexes/{multiplexId}/start
@desc Start (run) the multiplex. Starting the multiplex does not start the channels. You must explicitly start each channel.
@required {MultiplexId: str}
@returns(200) {Arn: str?, AvailabilityZones: [str]?, Destinations: [MultiplexOutputDestination]?, Id: str?, MultiplexSettings: MultiplexSettings?{MaximumVideoBufferDelayMilliseconds: int?, TransportStreamBitrate: int, TransportStreamId: int, TransportStreamReservedBitrate: int?}, Name: str?, PipelinesRunningCount: int?, ProgramCount: int?, State: str?, Tags: map<str,str>?}

@endpoint POST /prod/channels/{channelId}/stop
@desc Stops a running channel
@required {ChannelId: str}
@returns(200) {Arn: str?, CdiInputSpecification: CdiInputSpecification?{Resolution: str?}, ChannelClass: str?, Destinations: [OutputDestination]?, EgressEndpoints: [ChannelEgressEndpoint]?, EncoderSettings: EncoderSettings?{AudioDescriptions: [AudioDescription], AvailBlanking: AvailBlanking?{AvailBlankingImage: InputLocation?{PasswordParam: str?, Uri: str, Username: str?}, State: str?}, AvailConfiguration: AvailConfiguration?{AvailSettings: AvailSettings?{Esam: Esam?, Scte35SpliceInsert: Scte35SpliceInsert?, Scte35TimeSignalApos: Scte35TimeSignalApos?}, Scte35SegmentationScope: str?}, BlackoutSlate: BlackoutSlate?{BlackoutSlateImage: InputLocation?{PasswordParam: str?, Uri: str, Username: str?}, NetworkEndBlackout: str?, NetworkEndBlackoutImage: InputLocation?{PasswordParam: str?, Uri: str, Username: str?}, NetworkId: str?, State: str?}, CaptionDescriptions: [CaptionDescription]?, FeatureActivations: FeatureActivations?{InputPrepareScheduleActions: str?, OutputStaticImageOverlayScheduleActions: str?}, GlobalConfiguration: GlobalConfiguration?{InitialAudioGain: int?, InputEndAction: str?, InputLossBehavior: InputLossBehavior?{BlackFrameMsec: int?, InputLossImageColor: str?, InputLossImageSlate: InputLocation?, InputLossImageType: str?, RepeatFrameMsec: int?}, OutputLockingMode: str?, OutputTimingSource: str?, SupportLowFramerateInputs: str?, OutputLockingSettings: OutputLockingSettings?{EpochLockingSettings: EpochLockingSettings?, PipelineLockingSettings: PipelineLockingSettings?}}, MotionGraphicsConfiguration: MotionGraphicsConfiguration?{MotionGraphicsInsertion: str?, MotionGraphicsSettings: MotionGraphicsSettings{HtmlMotionGraphicsSettings: HtmlMotionGraphicsSettings?}}, NielsenConfiguration: NielsenConfiguration?{DistributorId: str?, NielsenPcmToId3Tagging: str?}, OutputGroups: [OutputGroup], TimecodeConfig: TimecodeConfig{Source: str, SyncThreshold: int?}, VideoDescriptions: [VideoDescription], ThumbnailConfiguration: ThumbnailConfiguration?{State: str}, ColorCorrectionSettings: ColorCorrectionSettings?{GlobalColorCorrections: [ColorCorrection]}}, Id: str?, InputAttachments: [InputAttachment]?, InputSpecification: InputSpecification?{Codec: str?, MaximumBitrate: str?, Resolution: str?}, LogLevel: str?, Maintenance: MaintenanceStatus?{MaintenanceDay: str?, MaintenanceDeadline: str?, MaintenanceScheduledDate: str?, MaintenanceStartTime: str?}, Name: str?, PipelineDetails: [PipelineDetail]?, PipelinesRunningCount: int?, RoleArn: str?, State: str?, Tags: map<str,str>?, Vpc: VpcOutputSettingsDescription?{AvailabilityZones: [str]?, NetworkInterfaceIds: [str]?, SecurityGroupIds: [str]?, SubnetIds: [str]?}}

@endpoint POST /prod/inputDevices/{inputDeviceId}/stop
@desc Stop an input device that is attached to a MediaConnect flow. (There is no need to stop a device that is attached to a MediaLive input; MediaLive automatically stops the device when the channel stops.)
@required {InputDeviceId: str}

@endpoint POST /prod/multiplexes/{multiplexId}/stop
@desc Stops a running multiplex. If the multiplex isn't running, this action has no effect.
@required {MultiplexId: str}
@returns(200) {Arn: str?, AvailabilityZones: [str]?, Destinations: [MultiplexOutputDestination]?, Id: str?, MultiplexSettings: MultiplexSettings?{MaximumVideoBufferDelayMilliseconds: int?, TransportStreamBitrate: int, TransportStreamId: int, TransportStreamReservedBitrate: int?}, Name: str?, PipelinesRunningCount: int?, ProgramCount: int?, State: str?, Tags: map<str,str>?}

@endpoint POST /prod/inputDevices/{inputDeviceId}/transfer
@desc Start an input device transfer to another AWS account. After you make the request, the other account must accept or reject the transfer.
@required {InputDeviceId: str}
@optional {TargetCustomerId: str, TargetRegion: str, TransferMessage: str}

@endpoint PUT /prod/accountConfiguration
@desc Update account configuration
@optional {AccountConfiguration: AccountConfiguration}
@returns(200) {AccountConfiguration: AccountConfiguration?{KmsKeyId: str?}}

@endpoint PUT /prod/channels/{channelId}
@desc Updates a channel.
@required {ChannelId: str}
@optional {CdiInputSpecification: CdiInputSpecification, Destinations: [OutputDestination], EncoderSettings: EncoderSettings, InputAttachments: [InputAttachment], InputSpecification: InputSpecification, LogLevel: str, Maintenance: MaintenanceUpdateSettings, Name: str, RoleArn: str}
@returns(200) {Channel: Channel?{Arn: str?, CdiInputSpecification: CdiInputSpecification?{Resolution: str?}, ChannelClass: str?, Destinations: [OutputDestination]?, EgressEndpoints: [ChannelEgressEndpoint]?, EncoderSettings: EncoderSettings?{AudioDescriptions: [AudioDescription], AvailBlanking: AvailBlanking?{AvailBlankingImage: InputLocation?, State: str?}, AvailConfiguration: AvailConfiguration?{AvailSettings: AvailSettings?, Scte35SegmentationScope: str?}, BlackoutSlate: BlackoutSlate?{BlackoutSlateImage: InputLocation?, NetworkEndBlackout: str?, NetworkEndBlackoutImage: InputLocation?, NetworkId: str?, State: str?}, CaptionDescriptions: [CaptionDescription]?, FeatureActivations: FeatureActivations?{InputPrepareScheduleActions: str?, OutputStaticImageOverlayScheduleActions: str?}, GlobalConfiguration: GlobalConfiguration?{InitialAudioGain: int?, InputEndAction: str?, InputLossBehavior: InputLossBehavior?, OutputLockingMode: str?, OutputTimingSource: str?, SupportLowFramerateInputs: str?, OutputLockingSettings: OutputLockingSettings?}, MotionGraphicsConfiguration: MotionGraphicsConfiguration?{MotionGraphicsInsertion: str?, MotionGraphicsSettings: MotionGraphicsSettings}, NielsenConfiguration: NielsenConfiguration?{DistributorId: str?, NielsenPcmToId3Tagging: str?}, OutputGroups: [OutputGroup], TimecodeConfig: TimecodeConfig{Source: str, SyncThreshold: int?}, VideoDescriptions: [VideoDescription], ThumbnailConfiguration: ThumbnailConfiguration?{State: str}, ColorCorrectionSettings: ColorCorrectionSettings?{GlobalColorCorrections: [ColorCorrection]}}, Id: str?, InputAttachments: [InputAttachment]?, InputSpecification: InputSpecification?{Codec: str?, MaximumBitrate: str?, Resolution: str?}, LogLevel: str?, Maintenance: MaintenanceStatus?{MaintenanceDay: str?, MaintenanceDeadline: str?, MaintenanceScheduledDate: str?, MaintenanceStartTime: str?}, Name: str?, PipelineDetails: [PipelineDetail]?, PipelinesRunningCount: int?, RoleArn: str?, State: str?, Tags: map<str,str>?, Vpc: VpcOutputSettingsDescription?{AvailabilityZones: [str]?, NetworkInterfaceIds: [str]?, SecurityGroupIds: [str]?, SubnetIds: [str]?}}}

@endpoint PUT /prod/channels/{channelId}/channelClass
@desc Changes the class of the channel.
@required {ChannelId: str, ChannelClass: str}
@optional {Destinations: [OutputDestination]}
@returns(200) {Channel: Channel?{Arn: str?, CdiInputSpecification: CdiInputSpecification?{Resolution: str?}, ChannelClass: str?, Destinations: [OutputDestination]?, EgressEndpoints: [ChannelEgressEndpoint]?, EncoderSettings: EncoderSettings?{AudioDescriptions: [AudioDescription], AvailBlanking: AvailBlanking?{AvailBlankingImage: InputLocation?, State: str?}, AvailConfiguration: AvailConfiguration?{AvailSettings: AvailSettings?, Scte35SegmentationScope: str?}, BlackoutSlate: BlackoutSlate?{BlackoutSlateImage: InputLocation?, NetworkEndBlackout: str?, NetworkEndBlackoutImage: InputLocation?, NetworkId: str?, State: str?}, CaptionDescriptions: [CaptionDescription]?, FeatureActivations: FeatureActivations?{InputPrepareScheduleActions: str?, OutputStaticImageOverlayScheduleActions: str?}, GlobalConfiguration: GlobalConfiguration?{InitialAudioGain: int?, InputEndAction: str?, InputLossBehavior: InputLossBehavior?, OutputLockingMode: str?, OutputTimingSource: str?, SupportLowFramerateInputs: str?, OutputLockingSettings: OutputLockingSettings?}, MotionGraphicsConfiguration: MotionGraphicsConfiguration?{MotionGraphicsInsertion: str?, MotionGraphicsSettings: MotionGraphicsSettings}, NielsenConfiguration: NielsenConfiguration?{DistributorId: str?, NielsenPcmToId3Tagging: str?}, OutputGroups: [OutputGroup], TimecodeConfig: TimecodeConfig{Source: str, SyncThreshold: int?}, VideoDescriptions: [VideoDescription], ThumbnailConfiguration: ThumbnailConfiguration?{State: str}, ColorCorrectionSettings: ColorCorrectionSettings?{GlobalColorCorrections: [ColorCorrection]}}, Id: str?, InputAttachments: [InputAttachment]?, InputSpecification: InputSpecification?{Codec: str?, MaximumBitrate: str?, Resolution: str?}, LogLevel: str?, Maintenance: MaintenanceStatus?{MaintenanceDay: str?, MaintenanceDeadline: str?, MaintenanceScheduledDate: str?, MaintenanceStartTime: str?}, Name: str?, PipelineDetails: [PipelineDetail]?, PipelinesRunningCount: int?, RoleArn: str?, State: str?, Tags: map<str,str>?, Vpc: VpcOutputSettingsDescription?{AvailabilityZones: [str]?, NetworkInterfaceIds: [str]?, SecurityGroupIds: [str]?, SubnetIds: [str]?}}}

@endpoint PUT /prod/inputs/{inputId}
@desc Updates an input.
@required {InputId: str}
@optional {Destinations: [InputDestinationRequest], InputDevices: [InputDeviceRequest], InputSecurityGroups: [str], MediaConnectFlows: [MediaConnectFlowRequest], Name: str, RoleArn: str, Sources: [InputSourceRequest], SrtSettings: SrtSettingsRequest}
@returns(200) {Input: Input?{Arn: str?, AttachedChannels: [str]?, Destinations: [InputDestination]?, Id: str?, InputClass: str?, InputDevices: [InputDeviceSettings]?, InputPartnerIds: [str]?, InputSourceType: str?, MediaConnectFlows: [MediaConnectFlow]?, Name: str?, RoleArn: str?, SecurityGroups: [str]?, Sources: [InputSource]?, State: str?, Tags: map<str,str>?, Type: str?, SrtSettings: SrtSettings?{SrtCallerSources: [SrtCallerSource]?}}}

@endpoint PUT /prod/inputDevices/{inputDeviceId}
@desc Updates the parameters for the input device.
@required {InputDeviceId: str}
@optional {HdDeviceSettings: InputDeviceConfigurableSettings, Name: str, UhdDeviceSettings: InputDeviceConfigurableSettings, AvailabilityZone: str}
@returns(200) {Arn: str?, ConnectionState: str?, DeviceSettingsSyncState: str?, DeviceUpdateStatus: str?, HdDeviceSettings: InputDeviceHdSettings?{ActiveInput: str?, ConfiguredInput: str?, DeviceState: str?, Framerate: num(f64)?, Height: int?, MaxBitrate: int?, ScanType: str?, Width: int?, LatencyMs: int?}, Id: str?, MacAddress: str?, Name: str?, NetworkSettings: InputDeviceNetworkSettings?{DnsAddresses: [str]?, Gateway: str?, IpAddress: str?, IpScheme: str?, SubnetMask: str?}, SerialNumber: str?, Type: str?, UhdDeviceSettings: InputDeviceUhdSettings?{ActiveInput: str?, ConfiguredInput: str?, DeviceState: str?, Framerate: num(f64)?, Height: int?, MaxBitrate: int?, ScanType: str?, Width: int?, LatencyMs: int?, Codec: str?, MediaconnectSettings: InputDeviceMediaConnectSettings?{FlowArn: str?, RoleArn: str?, SecretArn: str?, SourceName: str?}, AudioChannelPairs: [InputDeviceUhdAudioChannelPairConfig]?}, Tags: map<str,str>?, AvailabilityZone: str?, MedialiveInputArns: [str]?, OutputType: str?}

@endpoint PUT /prod/inputSecurityGroups/{inputSecurityGroupId}
@desc Update an Input Security Group's Whilelists.
@required {InputSecurityGroupId: str}
@optional {Tags: map<str,str>, WhitelistRules: [InputWhitelistRuleCidr]}
@returns(200) {SecurityGroup: InputSecurityGroup?{Arn: str?, Id: str?, Inputs: [str]?, State: str?, Tags: map<str,str>?, WhitelistRules: [InputWhitelistRule]?}}

@endpoint PUT /prod/multiplexes/{multiplexId}
@desc Updates a multiplex.
@required {MultiplexId: str}
@optional {MultiplexSettings: MultiplexSettings, Name: str, PacketIdentifiersMapping: map<str,MultiplexProgramPacketIdentifiersMap>}
@returns(200) {Multiplex: Multiplex?{Arn: str?, AvailabilityZones: [str]?, Destinations: [MultiplexOutputDestination]?, Id: str?, MultiplexSettings: MultiplexSettings?{MaximumVideoBufferDelayMilliseconds: int?, TransportStreamBitrate: int, TransportStreamId: int, TransportStreamReservedBitrate: int?}, Name: str?, PipelinesRunningCount: int?, ProgramCount: int?, State: str?, Tags: map<str,str>?}}

@endpoint PUT /prod/multiplexes/{multiplexId}/programs/{programName}
@desc Update a program in a multiplex.
@required {MultiplexId: str, ProgramName: str}
@optional {MultiplexProgramSettings: MultiplexProgramSettings}
@returns(200) {MultiplexProgram: MultiplexProgram?{ChannelId: str?, MultiplexProgramSettings: MultiplexProgramSettings?{PreferredChannelPipeline: str?, ProgramNumber: int, ServiceDescriptor: MultiplexProgramServiceDescriptor?{ProviderName: str, ServiceName: str}, VideoSettings: MultiplexVideoSettings?{ConstantBitrate: int?, StatmuxSettings: MultiplexStatmuxVideoSettings?}}, PacketIdentifiersMap: MultiplexProgramPacketIdentifiersMap?{AudioPids: [int]?, DvbSubPids: [int]?, DvbTeletextPid: int?, EtvPlatformPid: int?, EtvSignalPid: int?, KlvDataPids: [int]?, PcrPid: int?, PmtPid: int?, PrivateMetadataPid: int?, Scte27Pids: [int]?, Scte35Pid: int?, TimedMetadataPid: int?, VideoPid: int?, AribCaptionsPid: int?, DvbTeletextPids: [int]?, EcmPid: int?, Smpte2038Pid: int?}, PipelineDetails: [MultiplexProgramPipelineDetail]?, ProgramName: str?}}

@endpoint PUT /prod/reservations/{reservationId}
@desc Update reservation.
@required {ReservationId: str}
@optional {Name: str, RenewalSettings: RenewalSettings}
@returns(200) {Reservation: Reservation?{Arn: str?, Count: int?, CurrencyCode: str?, Duration: int?, DurationUnits: str?, End: str?, FixedPrice: num(f64)?, Name: str?, OfferingDescription: str?, OfferingId: str?, OfferingType: str?, Region: str?, RenewalSettings: RenewalSettings?{AutomaticRenewal: str?, RenewalCount: int?}, ReservationId: str?, ResourceSpecification: ReservationResourceSpecification?{ChannelClass: str?, Codec: str?, MaximumBitrate: str?, MaximumFramerate: str?, Resolution: str?, ResourceType: str?, SpecialFeature: str?, VideoQuality: str?}, Start: str?, State: str?, Tags: map<str,str>?, UsagePrice: num(f64)?}}

@endpoint POST /prod/channels/{channelId}/restartChannelPipelines
@desc Restart pipelines in one channel that is currently running.
@required {ChannelId: str}
@optional {PipelineIds: [str]}
@returns(200) {Arn: str?, CdiInputSpecification: CdiInputSpecification?{Resolution: str?}, ChannelClass: str?, Destinations: [OutputDestination]?, EgressEndpoints: [ChannelEgressEndpoint]?, EncoderSettings: EncoderSettings?{AudioDescriptions: [AudioDescription], AvailBlanking: AvailBlanking?{AvailBlankingImage: InputLocation?{PasswordParam: str?, Uri: str, Username: str?}, State: str?}, AvailConfiguration: AvailConfiguration?{AvailSettings: AvailSettings?{Esam: Esam?, Scte35SpliceInsert: Scte35SpliceInsert?, Scte35TimeSignalApos: Scte35TimeSignalApos?}, Scte35SegmentationScope: str?}, BlackoutSlate: BlackoutSlate?{BlackoutSlateImage: InputLocation?{PasswordParam: str?, Uri: str, Username: str?}, NetworkEndBlackout: str?, NetworkEndBlackoutImage: InputLocation?{PasswordParam: str?, Uri: str, Username: str?}, NetworkId: str?, State: str?}, CaptionDescriptions: [CaptionDescription]?, FeatureActivations: FeatureActivations?{InputPrepareScheduleActions: str?, OutputStaticImageOverlayScheduleActions: str?}, GlobalConfiguration: GlobalConfiguration?{InitialAudioGain: int?, InputEndAction: str?, InputLossBehavior: InputLossBehavior?{BlackFrameMsec: int?, InputLossImageColor: str?, InputLossImageSlate: InputLocation?, InputLossImageType: str?, RepeatFrameMsec: int?}, OutputLockingMode: str?, OutputTimingSource: str?, SupportLowFramerateInputs: str?, OutputLockingSettings: OutputLockingSettings?{EpochLockingSettings: EpochLockingSettings?, PipelineLockingSettings: PipelineLockingSettings?}}, MotionGraphicsConfiguration: MotionGraphicsConfiguration?{MotionGraphicsInsertion: str?, MotionGraphicsSettings: MotionGraphicsSettings{HtmlMotionGraphicsSettings: HtmlMotionGraphicsSettings?}}, NielsenConfiguration: NielsenConfiguration?{DistributorId: str?, NielsenPcmToId3Tagging: str?}, OutputGroups: [OutputGroup], TimecodeConfig: TimecodeConfig{Source: str, SyncThreshold: int?}, VideoDescriptions: [VideoDescription], ThumbnailConfiguration: ThumbnailConfiguration?{State: str}, ColorCorrectionSettings: ColorCorrectionSettings?{GlobalColorCorrections: [ColorCorrection]}}, Id: str?, InputAttachments: [InputAttachment]?, InputSpecification: InputSpecification?{Codec: str?, MaximumBitrate: str?, Resolution: str?}, LogLevel: str?, Maintenance: MaintenanceStatus?{MaintenanceDay: str?, MaintenanceDeadline: str?, MaintenanceScheduledDate: str?, MaintenanceStartTime: str?}, MaintenanceStatus: str?, Name: str?, PipelineDetails: [PipelineDetail]?, PipelinesRunningCount: int?, RoleArn: str?, State: str?, Tags: map<str,str>?, Vpc: VpcOutputSettingsDescription?{AvailabilityZones: [str]?, NetworkInterfaceIds: [str]?, SecurityGroupIds: [str]?, SubnetIds: [str]?}}

@endpoint POST /prod/cloudwatch-alarm-templates
@desc Creates a cloudwatch alarm template to dynamically generate cloudwatch metric alarms on targeted resource types.
@required {ComparisonOperator: str, EvaluationPeriods: int, GroupIdentifier: str, MetricName: str, Name: str, Period: int, Statistic: str, TargetResourceType: str, Threshold: num(f64), TreatMissingData: str}
@optional {DatapointsToAlarm: int, Description: str, Tags: map<str,str>}
@returns(200) {Arn: str?, ComparisonOperator: str?, CreatedAt: str(timestamp)?, DatapointsToAlarm: int?, Description: str?, EvaluationPeriods: int?, GroupId: str?, Id: str?, MetricName: str?, ModifiedAt: str(timestamp)?, Name: str?, Period: int?, Statistic: str?, Tags: map<str,str>?, TargetResourceType: str?, Threshold: num(f64)?, TreatMissingData: str?}

@endpoint POST /prod/cloudwatch-alarm-template-groups
@desc Creates a cloudwatch alarm template group to group your cloudwatch alarm templates and to attach to signal maps for dynamically creating alarms.
@required {Name: str}
@optional {Description: str, Tags: map<str,str>}
@returns(200) {Arn: str?, CreatedAt: str(timestamp)?, Description: str?, Id: str?, ModifiedAt: str(timestamp)?, Name: str?, Tags: map<str,str>?}

@endpoint POST /prod/eventbridge-rule-templates
@desc Creates an eventbridge rule template to monitor events and send notifications to your targeted resources.
@required {EventType: str, GroupIdentifier: str, Name: str}
@optional {Description: str, EventTargets: [EventBridgeRuleTemplateTarget], Tags: map<str,str>}
@returns(200) {Arn: str?, CreatedAt: str(timestamp)?, Description: str?, EventTargets: [EventBridgeRuleTemplateTarget]?, EventType: str?, GroupId: str?, Id: str?, ModifiedAt: str(timestamp)?, Name: str?, Tags: map<str,str>?}

@endpoint POST /prod/eventbridge-rule-template-groups
@desc Creates an eventbridge rule template group to group your eventbridge rule templates and to attach to signal maps for dynamically creating notification rules.
@required {Name: str}
@optional {Description: str, Tags: map<str,str>}
@returns(200) {Arn: str?, CreatedAt: str(timestamp)?, Description: str?, Id: str?, ModifiedAt: str(timestamp)?, Name: str?, Tags: map<str,str>?}

@endpoint POST /prod/signal-maps
@desc Initiates the creation of a new signal map. Will discover a new mediaResourceMap based on the provided discoveryEntryPointArn.
@required {DiscoveryEntryPointArn: str, Name: str}
@optional {CloudWatchAlarmTemplateGroupIdentifiers: [str], Description: str, EventBridgeRuleTemplateGroupIdentifiers: [str], Tags: map<str,str>}
@returns(200) {Arn: str?, CloudWatchAlarmTemplateGroupIds: [str]?, CreatedAt: str(timestamp)?, Description: str?, DiscoveryEntryPointArn: str?, ErrorMessage: str?, EventBridgeRuleTemplateGroupIds: [str]?, FailedMediaResourceMap: map<str,MediaResource>?, Id: str?, LastDiscoveredAt: str(timestamp)?, LastSuccessfulMonitorDeployment: SuccessfulMonitorDeployment?{DetailsUri: str, Status: str}, MediaResourceMap: map<str,MediaResource>?, ModifiedAt: str(timestamp)?, MonitorChangesPendingDeployment: bool?, MonitorDeployment: MonitorDeployment?{DetailsUri: str?, ErrorMessage: str?, Status: str}, Name: str?, Status: str?, Tags: map<str,str>?}

@endpoint DELETE /prod/cloudwatch-alarm-templates/{identifier}
@desc Deletes a cloudwatch alarm template.
@required {Identifier: str}

@endpoint DELETE /prod/cloudwatch-alarm-template-groups/{identifier}
@desc Deletes a cloudwatch alarm template group. You must detach this group from all signal maps and ensure its existing templates are moved to another group or deleted.
@required {Identifier: str}

@endpoint DELETE /prod/eventbridge-rule-templates/{identifier}
@desc Deletes an eventbridge rule template.
@required {Identifier: str}

@endpoint DELETE /prod/eventbridge-rule-template-groups/{identifier}
@desc Deletes an eventbridge rule template group. You must detach this group from all signal maps and ensure its existing templates are moved to another group or deleted.
@required {Identifier: str}

@endpoint DELETE /prod/signal-maps/{identifier}
@desc Deletes the specified signal map.
@required {Identifier: str}

@endpoint GET /prod/cloudwatch-alarm-templates/{identifier}
@desc Retrieves the specified cloudwatch alarm template.
@required {Identifier: str}
@returns(200) {Arn: str?, ComparisonOperator: str?, CreatedAt: str(timestamp)?, DatapointsToAlarm: int?, Description: str?, EvaluationPeriods: int?, GroupId: str?, Id: str?, MetricName: str?, ModifiedAt: str(timestamp)?, Name: str?, Period: int?, Statistic: str?, Tags: map<str,str>?, TargetResourceType: str?, Threshold: num(f64)?, TreatMissingData: str?}

@endpoint GET /prod/cloudwatch-alarm-template-groups/{identifier}
@desc Retrieves the specified cloudwatch alarm template group.
@required {Identifier: str}
@returns(200) {Arn: str?, CreatedAt: str(timestamp)?, Description: str?, Id: str?, ModifiedAt: str(timestamp)?, Name: str?, Tags: map<str,str>?}

@endpoint GET /prod/eventbridge-rule-templates/{identifier}
@desc Retrieves the specified eventbridge rule template.
@required {Identifier: str}
@returns(200) {Arn: str?, CreatedAt: str(timestamp)?, Description: str?, EventTargets: [EventBridgeRuleTemplateTarget]?, EventType: str?, GroupId: str?, Id: str?, ModifiedAt: str(timestamp)?, Name: str?, Tags: map<str,str>?}

@endpoint GET /prod/eventbridge-rule-template-groups/{identifier}
@desc Retrieves the specified eventbridge rule template group.
@required {Identifier: str}
@returns(200) {Arn: str?, CreatedAt: str(timestamp)?, Description: str?, Id: str?, ModifiedAt: str(timestamp)?, Name: str?, Tags: map<str,str>?}

@endpoint GET /prod/signal-maps/{identifier}
@desc Retrieves the specified signal map.
@required {Identifier: str}
@returns(200) {Arn: str?, CloudWatchAlarmTemplateGroupIds: [str]?, CreatedAt: str(timestamp)?, Description: str?, DiscoveryEntryPointArn: str?, ErrorMessage: str?, EventBridgeRuleTemplateGroupIds: [str]?, FailedMediaResourceMap: map<str,MediaResource>?, Id: str?, LastDiscoveredAt: str(timestamp)?, LastSuccessfulMonitorDeployment: SuccessfulMonitorDeployment?{DetailsUri: str, Status: str}, MediaResourceMap: map<str,MediaResource>?, ModifiedAt: str(timestamp)?, MonitorChangesPendingDeployment: bool?, MonitorDeployment: MonitorDeployment?{DetailsUri: str?, ErrorMessage: str?, Status: str}, Name: str?, Status: str?, Tags: map<str,str>?}

@endpoint GET /prod/cloudwatch-alarm-template-groups
@desc Lists cloudwatch alarm template groups.
@optional {maxResults: int, nextToken: str, scope: str, signalMapIdentifier: str}
@returns(200) {CloudWatchAlarmTemplateGroups: [CloudWatchAlarmTemplateGroupSummary]?, NextToken: str?}

@endpoint GET /prod/cloudwatch-alarm-templates
@desc Lists cloudwatch alarm templates.
@optional {groupIdentifier: str, maxResults: int, nextToken: str, scope: str, signalMapIdentifier: str}
@returns(200) {CloudWatchAlarmTemplates: [CloudWatchAlarmTemplateSummary]?, NextToken: str?}

@endpoint GET /prod/eventbridge-rule-template-groups
@desc Lists eventbridge rule template groups.
@optional {maxResults: int, nextToken: str, signalMapIdentifier: str}
@returns(200) {EventBridgeRuleTemplateGroups: [EventBridgeRuleTemplateGroupSummary]?, NextToken: str?}

@endpoint GET /prod/eventbridge-rule-templates
@desc Lists eventbridge rule templates.
@optional {groupIdentifier: str, maxResults: int, nextToken: str, signalMapIdentifier: str}
@returns(200) {EventBridgeRuleTemplates: [EventBridgeRuleTemplateSummary]?, NextToken: str?}

@endpoint GET /prod/signal-maps
@desc Lists signal maps.
@optional {cloudWatchAlarmTemplateGroupIdentifier: str, eventBridgeRuleTemplateGroupIdentifier: str, maxResults: int, nextToken: str}
@returns(200) {NextToken: str?, SignalMaps: [SignalMapSummary]?}

@endpoint DELETE /prod/signal-maps/{identifier}/monitor-deployment
@desc Initiates a deployment to delete the monitor of the specified signal map.
@required {Identifier: str}
@returns(200) {Arn: str?, CloudWatchAlarmTemplateGroupIds: [str]?, CreatedAt: str(timestamp)?, Description: str?, DiscoveryEntryPointArn: str?, ErrorMessage: str?, EventBridgeRuleTemplateGroupIds: [str]?, FailedMediaResourceMap: map<str,MediaResource>?, Id: str?, LastDiscoveredAt: str(timestamp)?, LastSuccessfulMonitorDeployment: SuccessfulMonitorDeployment?{DetailsUri: str, Status: str}, MediaResourceMap: map<str,MediaResource>?, ModifiedAt: str(timestamp)?, MonitorChangesPendingDeployment: bool?, MonitorDeployment: MonitorDeployment?{DetailsUri: str?, ErrorMessage: str?, Status: str}, Name: str?, Status: str?, Tags: map<str,str>?}

@endpoint POST /prod/signal-maps/{identifier}/monitor-deployment
@desc Initiates a deployment to deploy the latest monitor of the specified signal map.
@required {Identifier: str}
@optional {DryRun: bool}
@returns(200) {Arn: str?, CloudWatchAlarmTemplateGroupIds: [str]?, CreatedAt: str(timestamp)?, Description: str?, DiscoveryEntryPointArn: str?, ErrorMessage: str?, EventBridgeRuleTemplateGroupIds: [str]?, FailedMediaResourceMap: map<str,MediaResource>?, Id: str?, LastDiscoveredAt: str(timestamp)?, LastSuccessfulMonitorDeployment: SuccessfulMonitorDeployment?{DetailsUri: str, Status: str}, MediaResourceMap: map<str,MediaResource>?, ModifiedAt: str(timestamp)?, MonitorChangesPendingDeployment: bool?, MonitorDeployment: MonitorDeployment?{DetailsUri: str?, ErrorMessage: str?, Status: str}, Name: str?, Status: str?, Tags: map<str,str>?}

@endpoint PATCH /prod/signal-maps/{identifier}
@desc Initiates an update for the specified signal map. Will discover a new signal map if a changed discoveryEntryPointArn is provided.
@required {Identifier: str}
@optional {CloudWatchAlarmTemplateGroupIdentifiers: [str], Description: str, DiscoveryEntryPointArn: str, EventBridgeRuleTemplateGroupIdentifiers: [str], ForceRediscovery: bool, Name: str}
@returns(200) {Arn: str?, CloudWatchAlarmTemplateGroupIds: [str]?, CreatedAt: str(timestamp)?, Description: str?, DiscoveryEntryPointArn: str?, ErrorMessage: str?, EventBridgeRuleTemplateGroupIds: [str]?, FailedMediaResourceMap: map<str,MediaResource>?, Id: str?, LastDiscoveredAt: str(timestamp)?, LastSuccessfulMonitorDeployment: SuccessfulMonitorDeployment?{DetailsUri: str, Status: str}, MediaResourceMap: map<str,MediaResource>?, ModifiedAt: str(timestamp)?, MonitorChangesPendingDeployment: bool?, MonitorDeployment: MonitorDeployment?{DetailsUri: str?, ErrorMessage: str?, Status: str}, Name: str?, Status: str?, Tags: map<str,str>?}

@endpoint PATCH /prod/cloudwatch-alarm-templates/{identifier}
@desc Updates the specified cloudwatch alarm template.
@required {Identifier: str}
@optional {ComparisonOperator: str, DatapointsToAlarm: int, Description: str, EvaluationPeriods: int, GroupIdentifier: str, MetricName: str, Name: str, Period: int, Statistic: str, TargetResourceType: str, Threshold: num(f64), TreatMissingData: str}
@returns(200) {Arn: str?, ComparisonOperator: str?, CreatedAt: str(timestamp)?, DatapointsToAlarm: int?, Description: str?, EvaluationPeriods: int?, GroupId: str?, Id: str?, MetricName: str?, ModifiedAt: str(timestamp)?, Name: str?, Period: int?, Statistic: str?, Tags: map<str,str>?, TargetResourceType: str?, Threshold: num(f64)?, TreatMissingData: str?}

@endpoint PATCH /prod/cloudwatch-alarm-template-groups/{identifier}
@desc Updates the specified cloudwatch alarm template group.
@required {Identifier: str}
@optional {Description: str}
@returns(200) {Arn: str?, CreatedAt: str(timestamp)?, Description: str?, Id: str?, ModifiedAt: str(timestamp)?, Name: str?, Tags: map<str,str>?}

@endpoint PATCH /prod/eventbridge-rule-templates/{identifier}
@desc Updates the specified eventbridge rule template.
@required {Identifier: str}
@optional {Description: str, EventTargets: [EventBridgeRuleTemplateTarget], EventType: str, GroupIdentifier: str, Name: str}
@returns(200) {Arn: str?, CreatedAt: str(timestamp)?, Description: str?, EventTargets: [EventBridgeRuleTemplateTarget]?, EventType: str?, GroupId: str?, Id: str?, ModifiedAt: str(timestamp)?, Name: str?, Tags: map<str,str>?}

@endpoint PATCH /prod/eventbridge-rule-template-groups/{identifier}
@desc Updates the specified eventbridge rule template group.
@required {Identifier: str}
@optional {Description: str}
@returns(200) {Arn: str?, CreatedAt: str(timestamp)?, Description: str?, Id: str?, ModifiedAt: str(timestamp)?, Name: str?, Tags: map<str,str>?}

@end
