@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api AWS MediaConnect
@version 2018-11-14
@auth AWS SigV4
@endpoints 52
@hint download_for_search
@toc bridges(12), flows(23), gateways(4), gateway-instances(4), offerings(3), reservations(2), entitlements(1), tags(3)

@group bridges
@endpoint POST /v1/bridges/{bridgeArn}/outputs
@desc Adds outputs to an existing bridge.
@required {BridgeArn: str, Outputs: [AddBridgeOutputRequest]}
@returns(200) {BridgeArn: str?, Outputs: [BridgeOutput]?}

@endpoint POST /v1/bridges/{bridgeArn}/sources
@desc Adds sources to an existing bridge.
@required {BridgeArn: str, Sources: [AddBridgeSourceRequest]}
@returns(200) {BridgeArn: str?, Sources: [BridgeSource]?}

@endgroup

@group flows
@endpoint POST /v1/flows/{flowArn}/mediaStreams
@desc Adds media streams to an existing flow. After you add a media stream to a flow, you can associate it with a source and/or an output that uses the ST 2110 JPEG XS or CDI protocol.
@required {FlowArn: str, MediaStreams: [AddMediaStreamRequest]}
@returns(200) {FlowArn: str?, MediaStreams: [MediaStream]?}

@endpoint POST /v1/flows/{flowArn}/outputs
@desc Adds outputs to an existing flow. You can create up to 50 outputs per flow.
@required {FlowArn: str, Outputs: [AddOutputRequest]}
@returns(200) {FlowArn: str?, Outputs: [Output]?}

@endpoint POST /v1/flows/{flowArn}/source
@desc Adds Sources to flow
@required {FlowArn: str, Sources: [SetSourceRequest]}
@returns(200) {FlowArn: str?, Sources: [Source]?}

@endpoint POST /v1/flows/{flowArn}/vpcInterfaces
@desc Adds VPC interfaces to flow
@required {FlowArn: str, VpcInterfaces: [VpcInterfaceRequest]}
@returns(200) {FlowArn: str?, VpcInterfaces: [VpcInterface]?}

@endgroup

@group bridges
@endpoint POST /v1/bridges
@desc Creates a new bridge. The request must include one source.
@required {Name: str, PlacementArn: str, Sources: [AddBridgeSourceRequest]}
@optional {EgressGatewayBridge: AddEgressGatewayBridgeRequest, IngressGatewayBridge: AddIngressGatewayBridgeRequest, Outputs: [AddBridgeOutputRequest], SourceFailoverConfig: FailoverConfig}
@returns(200) {Bridge: Bridge?{BridgeArn: str, BridgeMessages: [MessageDetail]?, BridgeState: str, EgressGatewayBridge: EgressGatewayBridge?{InstanceId: str?, MaxBitrate: int}, IngressGatewayBridge: IngressGatewayBridge?{InstanceId: str?, MaxBitrate: int, MaxOutputs: int}, Name: str, Outputs: [BridgeOutput]?, PlacementArn: str, SourceFailoverConfig: FailoverConfig?{FailoverMode: str?, RecoveryWindow: int?, SourcePriority: SourcePriority?{PrimarySource: str?}, State: str?}, Sources: [BridgeSource]?}}

@endgroup

@group flows
@endpoint POST /v1/flows
@desc Creates a new flow. The request must include one source. The request optionally can include outputs (up to 50) and entitlements (up to 50).
@required {Name: str}
@optional {AvailabilityZone: str, Entitlements: [GrantEntitlementRequest], MediaStreams: [AddMediaStreamRequest], Outputs: [AddOutputRequest], Source: SetSourceRequest, SourceFailoverConfig: FailoverConfig, Sources: [SetSourceRequest], VpcInterfaces: [VpcInterfaceRequest], Maintenance: AddMaintenance, SourceMonitoringConfig: MonitoringConfig}
@returns(200) {Flow: Flow?{AvailabilityZone: str, Description: str?, EgressIp: str?, Entitlements: [Entitlement], FlowArn: str, MediaStreams: [MediaStream]?, Name: str, Outputs: [Output], Source: Source{DataTransferSubscriberFeePercent: int?, Decryption: Encryption?{Algorithm: str?, ConstantInitializationVector: str?, DeviceId: str?, KeyType: str?, Region: str?, ResourceId: str?, RoleArn: str, SecretArn: str?, Url: str?}, Description: str?, EntitlementArn: str?, IngestIp: str?, IngestPort: int?, MediaStreamSourceConfigurations: [MediaStreamSourceConfiguration]?, Name: str, SenderControlPort: int?, SenderIpAddress: str?, SourceArn: str, Transport: Transport?{CidrAllowList: [str]?, MaxBitrate: int?, MaxLatency: int?, MaxSyncBuffer: int?, MinLatency: int?, Protocol: str, RemoteId: str?, SenderControlPort: int?, SenderIpAddress: str?, SmoothingLatency: int?, SourceListenerAddress: str?, SourceListenerPort: int?, StreamId: str?}, VpcInterfaceName: str?, WhitelistCidr: str?, GatewayBridgeSource: GatewayBridgeSource?{BridgeArn: str, VpcInterfaceAttachment: VpcInterfaceAttachment?}}, SourceFailoverConfig: FailoverConfig?{FailoverMode: str?, RecoveryWindow: int?, SourcePriority: SourcePriority?{PrimarySource: str?}, State: str?}, Sources: [Source]?, Status: str, VpcInterfaces: [VpcInterface]?, Maintenance: Maintenance?{MaintenanceDay: str?, MaintenanceDeadline: str?, MaintenanceScheduledDate: str?, MaintenanceStartHour: str?}, SourceMonitoringConfig: MonitoringConfig?{ThumbnailState: str?}}}

@endgroup

@group gateways
@endpoint POST /v1/gateways
@desc Creates a new gateway. The request must include at least one network (up to 4).
@required {EgressCidrBlocks: [str], Name: str, Networks: [GatewayNetwork]}
@returns(200) {Gateway: Gateway?{EgressCidrBlocks: [str], GatewayArn: str, GatewayMessages: [MessageDetail]?, GatewayState: str?, Name: str, Networks: [GatewayNetwork]}}

@endgroup

@group bridges
@endpoint DELETE /v1/bridges/{bridgeArn}
@desc Deletes a bridge. Before you can delete a bridge, you must stop the bridge.
@required {BridgeArn: str}
@returns(200) {BridgeArn: str?}

@endgroup

@group flows
@endpoint DELETE /v1/flows/{flowArn}
@desc Deletes a flow. Before you can delete a flow, you must stop the flow.
@required {FlowArn: str}
@returns(200) {FlowArn: str?, Status: str?}

@endgroup

@group gateways
@endpoint DELETE /v1/gateways/{gatewayArn}
@desc Deletes a gateway. Before you can delete a gateway, you must deregister its instances and delete its bridges.
@required {GatewayArn: str}
@returns(200) {GatewayArn: str?}

@endgroup

@group gateway-instances
@endpoint DELETE /v1/gateway-instances/{gatewayInstanceArn}
@desc Deregisters an instance. Before you deregister an instance, all bridges running on the instance must be stopped. If you want to deregister an instance without stopping the bridges, you must use the --force option.
@required {GatewayInstanceArn: str}
@optional {force: bool}
@returns(200) {GatewayInstanceArn: str?, InstanceState: str?}

@endgroup

@group bridges
@endpoint GET /v1/bridges/{bridgeArn}
@desc Displays the details of a bridge.
@required {BridgeArn: str}
@returns(200) {Bridge: Bridge?{BridgeArn: str, BridgeMessages: [MessageDetail]?, BridgeState: str, EgressGatewayBridge: EgressGatewayBridge?{InstanceId: str?, MaxBitrate: int}, IngressGatewayBridge: IngressGatewayBridge?{InstanceId: str?, MaxBitrate: int, MaxOutputs: int}, Name: str, Outputs: [BridgeOutput]?, PlacementArn: str, SourceFailoverConfig: FailoverConfig?{FailoverMode: str?, RecoveryWindow: int?, SourcePriority: SourcePriority?{PrimarySource: str?}, State: str?}, Sources: [BridgeSource]?}}

@endgroup

@group flows
@endpoint GET /v1/flows/{flowArn}
@desc Displays the details of a flow. The response includes the flow ARN, name, and Availability Zone, as well as details about the source, outputs, and entitlements.
@required {FlowArn: str}
@returns(200) {Flow: Flow?{AvailabilityZone: str, Description: str?, EgressIp: str?, Entitlements: [Entitlement], FlowArn: str, MediaStreams: [MediaStream]?, Name: str, Outputs: [Output], Source: Source{DataTransferSubscriberFeePercent: int?, Decryption: Encryption?{Algorithm: str?, ConstantInitializationVector: str?, DeviceId: str?, KeyType: str?, Region: str?, ResourceId: str?, RoleArn: str, SecretArn: str?, Url: str?}, Description: str?, EntitlementArn: str?, IngestIp: str?, IngestPort: int?, MediaStreamSourceConfigurations: [MediaStreamSourceConfiguration]?, Name: str, SenderControlPort: int?, SenderIpAddress: str?, SourceArn: str, Transport: Transport?{CidrAllowList: [str]?, MaxBitrate: int?, MaxLatency: int?, MaxSyncBuffer: int?, MinLatency: int?, Protocol: str, RemoteId: str?, SenderControlPort: int?, SenderIpAddress: str?, SmoothingLatency: int?, SourceListenerAddress: str?, SourceListenerPort: int?, StreamId: str?}, VpcInterfaceName: str?, WhitelistCidr: str?, GatewayBridgeSource: GatewayBridgeSource?{BridgeArn: str, VpcInterfaceAttachment: VpcInterfaceAttachment?}}, SourceFailoverConfig: FailoverConfig?{FailoverMode: str?, RecoveryWindow: int?, SourcePriority: SourcePriority?{PrimarySource: str?}, State: str?}, Sources: [Source]?, Status: str, VpcInterfaces: [VpcInterface]?, Maintenance: Maintenance?{MaintenanceDay: str?, MaintenanceDeadline: str?, MaintenanceScheduledDate: str?, MaintenanceStartHour: str?}, SourceMonitoringConfig: MonitoringConfig?{ThumbnailState: str?}}, Messages: Messages?{Errors: [str]}}

@endpoint GET /v1/flows/{flowArn}/source-metadata
@desc Displays details of the flow's source stream. The response contains information about the contents of the stream and its programs.
@required {FlowArn: str}
@returns(200) {FlowArn: str?, Messages: [MessageDetail]?, Timestamp: str(timestamp)?, TransportMediaInfo: TransportMediaInfo?{Programs: [TransportStreamProgram]}}

@endpoint GET /v1/flows/{flowArn}/source-thumbnail
@desc Displays the thumbnail details of a flow's source stream.
@required {FlowArn: str}
@returns(200) {ThumbnailDetails: ThumbnailDetails?{FlowArn: str, Thumbnail: str?, ThumbnailMessages: [MessageDetail], Timecode: str?, Timestamp: str(timestamp)?}}

@endgroup

@group gateways
@endpoint GET /v1/gateways/{gatewayArn}
@desc Displays the details of a gateway. The response includes the gateway ARN, name, and CIDR blocks, as well as details about the networks.
@required {GatewayArn: str}
@returns(200) {Gateway: Gateway?{EgressCidrBlocks: [str], GatewayArn: str, GatewayMessages: [MessageDetail]?, GatewayState: str?, Name: str, Networks: [GatewayNetwork]}}

@endgroup

@group gateway-instances
@endpoint GET /v1/gateway-instances/{gatewayInstanceArn}
@desc Displays the details of an instance.
@required {GatewayInstanceArn: str}
@returns(200) {GatewayInstance: GatewayInstance?{BridgePlacement: str, ConnectionStatus: str, GatewayArn: str, GatewayInstanceArn: str, InstanceId: str, InstanceMessages: [MessageDetail]?, InstanceState: str, RunningBridgeCount: int}}

@endgroup

@group offerings
@endpoint GET /v1/offerings/{offeringArn}
@desc Displays the details of an offering. The response includes the offering description, duration, outbound bandwidth, price, and Amazon Resource Name (ARN).
@required {OfferingArn: str}
@returns(200) {Offering: Offering?{CurrencyCode: str, Duration: int, DurationUnits: str, OfferingArn: str, OfferingDescription: str, PricePerUnit: str, PriceUnits: str, ResourceSpecification: ResourceSpecification{ReservedBitrate: int?, ResourceType: str}}}

@endgroup

@group reservations
@endpoint GET /v1/reservations/{reservationArn}
@desc Displays the details of a reservation. The response includes the reservation name, state, start date and time, and the details of the offering that make up the rest of the reservation (such as price, duration, and outbound bandwidth).
@required {ReservationArn: str}
@returns(200) {Reservation: Reservation?{CurrencyCode: str, Duration: int, DurationUnits: str, End: str, OfferingArn: str, OfferingDescription: str, PricePerUnit: str, PriceUnits: str, ReservationArn: str, ReservationName: str, ReservationState: str, ResourceSpecification: ResourceSpecification{ReservedBitrate: int?, ResourceType: str}, Start: str}}

@endgroup

@group flows
@endpoint POST /v1/flows/{flowArn}/entitlements
@desc Grants entitlements to an existing flow.
@required {FlowArn: str, Entitlements: [GrantEntitlementRequest]}
@returns(200) {Entitlements: [Entitlement]?, FlowArn: str?}

@endgroup

@group bridges
@endpoint GET /v1/bridges
@desc Displays a list of bridges that are associated with this account and an optionally specified Arn. This request returns a paginated result.
@optional {filterArn: str, maxResults: int, nextToken: str}
@returns(200) {Bridges: [ListedBridge]?, NextToken: str?}

@endgroup

@group entitlements
@endpoint GET /v1/entitlements
@desc Displays a list of all entitlements that have been granted to this account. This request returns 20 results per page.
@optional {maxResults: int, nextToken: str}
@returns(200) {Entitlements: [ListedEntitlement]?, NextToken: str?}

@endgroup

@group flows
@endpoint GET /v1/flows
@desc Displays a list of flows that are associated with this account. This request returns a paginated result.
@optional {maxResults: int, nextToken: str}
@returns(200) {Flows: [ListedFlow]?, NextToken: str?}

@endgroup

@group gateway-instances
@endpoint GET /v1/gateway-instances
@desc Displays a list of instances associated with the AWS account. This request returns a paginated result. You can use the filterArn property to display only the instances associated with the selected Gateway Amazon Resource Name (ARN).
@optional {filterArn: str, maxResults: int, nextToken: str}
@returns(200) {Instances: [ListedGatewayInstance]?, NextToken: str?}

@endgroup

@group gateways
@endpoint GET /v1/gateways
@desc Displays a list of gateways that are associated with this account. This request returns a paginated result.
@optional {maxResults: int, nextToken: str}
@returns(200) {Gateways: [ListedGateway]?, NextToken: str?}

@endgroup

@group offerings
@endpoint GET /v1/offerings
@desc Displays a list of all offerings that are available to this account in the current AWS Region. If you have an active reservation (which means you've purchased an offering that has already started and hasn't expired yet), your account isn't eligible for other offerings.
@optional {maxResults: int, nextToken: str}
@returns(200) {NextToken: str?, Offerings: [Offering]?}

@endgroup

@group reservations
@endpoint GET /v1/reservations
@desc Displays a list of all reservations that have been purchased by this account in the current AWS Region. This list includes all reservations in all states (such as active and expired).
@optional {maxResults: int, nextToken: str}
@returns(200) {NextToken: str?, Reservations: [Reservation]?}

@endgroup

@group tags
@endpoint GET /tags/{resourceArn}
@desc List all tags on an AWS Elemental MediaConnect resource
@required {ResourceArn: str}
@returns(200) {Tags: map<str,str>?}

@endgroup

@group offerings
@endpoint POST /v1/offerings/{offeringArn}
@desc Submits a request to purchase an offering. If you already have an active reservation, you can't purchase another offering.
@required {OfferingArn: str, ReservationName: str, Start: str}
@returns(200) {Reservation: Reservation?{CurrencyCode: str, Duration: int, DurationUnits: str, End: str, OfferingArn: str, OfferingDescription: str, PricePerUnit: str, PriceUnits: str, ReservationArn: str, ReservationName: str, ReservationState: str, ResourceSpecification: ResourceSpecification{ReservedBitrate: int?, ResourceType: str}, Start: str}}

@endgroup

@group bridges
@endpoint DELETE /v1/bridges/{bridgeArn}/outputs/{outputName}
@desc Removes an output from a bridge.
@required {BridgeArn: str, OutputName: str}
@returns(200) {BridgeArn: str?, OutputName: str?}

@endpoint DELETE /v1/bridges/{bridgeArn}/sources/{sourceName}
@desc Removes a source from a bridge.
@required {BridgeArn: str, SourceName: str}
@returns(200) {BridgeArn: str?, SourceName: str?}

@endgroup

@group flows
@endpoint DELETE /v1/flows/{flowArn}/mediaStreams/{mediaStreamName}
@desc Removes a media stream from a flow. This action is only available if the media stream is not associated with a source or output.
@required {FlowArn: str, MediaStreamName: str}
@returns(200) {FlowArn: str?, MediaStreamName: str?}

@endpoint DELETE /v1/flows/{flowArn}/outputs/{outputArn}
@desc Removes an output from an existing flow. This request can be made only on an output that does not have an entitlement associated with it. If the output has an entitlement, you must revoke the entitlement instead. When an entitlement is revoked from a flow, the service automatically removes the associated output.
@required {FlowArn: str, OutputArn: str}
@returns(200) {FlowArn: str?, OutputArn: str?}

@endpoint DELETE /v1/flows/{flowArn}/source/{sourceArn}
@desc Removes a source from an existing flow. This request can be made only if there is more than one source on the flow.
@required {FlowArn: str, SourceArn: str}
@returns(200) {FlowArn: str?, SourceArn: str?}

@endpoint DELETE /v1/flows/{flowArn}/vpcInterfaces/{vpcInterfaceName}
@desc Removes a VPC Interface from an existing flow. This request can be made only on a VPC interface that does not have a Source or Output associated with it. If the VPC interface is referenced by a Source or Output, you must first delete or update the Source or Output to no longer reference the VPC interface.
@required {FlowArn: str, VpcInterfaceName: str}
@returns(200) {FlowArn: str?, NonDeletedNetworkInterfaceIds: [str]?, VpcInterfaceName: str?}

@endpoint DELETE /v1/flows/{flowArn}/entitlements/{entitlementArn}
@desc Revokes an entitlement from a flow. Once an entitlement is revoked, the content becomes unavailable to the subscriber and the associated output is removed.
@required {EntitlementArn: str, FlowArn: str}
@returns(200) {EntitlementArn: str?, FlowArn: str?}

@endpoint POST /v1/flows/start/{flowArn}
@desc Starts a flow.
@required {FlowArn: str}
@returns(200) {FlowArn: str?, Status: str?}

@endpoint POST /v1/flows/stop/{flowArn}
@desc Stops a flow.
@required {FlowArn: str}
@returns(200) {FlowArn: str?, Status: str?}

@endgroup

@group tags
@endpoint POST /tags/{resourceArn}
@desc Associates the specified tags to a resource with the specified resourceArn. If existing tags on a resource are not specified in the request parameters, they are not changed. When a resource is deleted, the tags associated with that resource are deleted as well.
@required {ResourceArn: str, Tags: map<str,str>}

@endpoint DELETE /tags/{resourceArn}
@desc Deletes specified tags from a resource.
@required {ResourceArn: str, tagKeys: [str]}

@endgroup

@group bridges
@endpoint PUT /v1/bridges/{bridgeArn}
@desc Updates the bridge
@required {BridgeArn: str}
@optional {EgressGatewayBridge: UpdateEgressGatewayBridgeRequest, IngressGatewayBridge: UpdateIngressGatewayBridgeRequest, SourceFailoverConfig: UpdateFailoverConfig}
@returns(200) {Bridge: Bridge?{BridgeArn: str, BridgeMessages: [MessageDetail]?, BridgeState: str, EgressGatewayBridge: EgressGatewayBridge?{InstanceId: str?, MaxBitrate: int}, IngressGatewayBridge: IngressGatewayBridge?{InstanceId: str?, MaxBitrate: int, MaxOutputs: int}, Name: str, Outputs: [BridgeOutput]?, PlacementArn: str, SourceFailoverConfig: FailoverConfig?{FailoverMode: str?, RecoveryWindow: int?, SourcePriority: SourcePriority?{PrimarySource: str?}, State: str?}, Sources: [BridgeSource]?}}

@endpoint PUT /v1/bridges/{bridgeArn}/outputs/{outputName}
@desc Updates an existing bridge output.
@required {BridgeArn: str, OutputName: str}
@optional {NetworkOutput: UpdateBridgeNetworkOutputRequest}
@returns(200) {BridgeArn: str?, Output: BridgeOutput?{FlowOutput: BridgeFlowOutput?{FlowArn: str, FlowSourceArn: str, Name: str}, NetworkOutput: BridgeNetworkOutput?{IpAddress: str, Name: str, NetworkName: str, Port: int, Protocol: str, Ttl: int}}}

@endpoint PUT /v1/bridges/{bridgeArn}/sources/{sourceName}
@desc Updates an existing bridge source.
@required {BridgeArn: str, SourceName: str}
@optional {FlowSource: UpdateBridgeFlowSourceRequest, NetworkSource: UpdateBridgeNetworkSourceRequest}
@returns(200) {BridgeArn: str?, Source: BridgeSource?{FlowSource: BridgeFlowSource?{FlowArn: str, FlowVpcInterfaceAttachment: VpcInterfaceAttachment?{VpcInterfaceName: str?}, Name: str, OutputArn: str?}, NetworkSource: BridgeNetworkSource?{MulticastIp: str, Name: str, NetworkName: str, Port: int, Protocol: str}}}

@endpoint PUT /v1/bridges/{bridgeArn}/state
@desc Updates the bridge state
@required {BridgeArn: str, DesiredState: str}
@returns(200) {BridgeArn: str?, DesiredState: str?}

@endgroup

@group flows
@endpoint PUT /v1/flows/{flowArn}
@desc Updates flow
@required {FlowArn: str}
@optional {SourceFailoverConfig: UpdateFailoverConfig, Maintenance: UpdateMaintenance, SourceMonitoringConfig: MonitoringConfig}
@returns(200) {Flow: Flow?{AvailabilityZone: str, Description: str?, EgressIp: str?, Entitlements: [Entitlement], FlowArn: str, MediaStreams: [MediaStream]?, Name: str, Outputs: [Output], Source: Source{DataTransferSubscriberFeePercent: int?, Decryption: Encryption?{Algorithm: str?, ConstantInitializationVector: str?, DeviceId: str?, KeyType: str?, Region: str?, ResourceId: str?, RoleArn: str, SecretArn: str?, Url: str?}, Description: str?, EntitlementArn: str?, IngestIp: str?, IngestPort: int?, MediaStreamSourceConfigurations: [MediaStreamSourceConfiguration]?, Name: str, SenderControlPort: int?, SenderIpAddress: str?, SourceArn: str, Transport: Transport?{CidrAllowList: [str]?, MaxBitrate: int?, MaxLatency: int?, MaxSyncBuffer: int?, MinLatency: int?, Protocol: str, RemoteId: str?, SenderControlPort: int?, SenderIpAddress: str?, SmoothingLatency: int?, SourceListenerAddress: str?, SourceListenerPort: int?, StreamId: str?}, VpcInterfaceName: str?, WhitelistCidr: str?, GatewayBridgeSource: GatewayBridgeSource?{BridgeArn: str, VpcInterfaceAttachment: VpcInterfaceAttachment?}}, SourceFailoverConfig: FailoverConfig?{FailoverMode: str?, RecoveryWindow: int?, SourcePriority: SourcePriority?{PrimarySource: str?}, State: str?}, Sources: [Source]?, Status: str, VpcInterfaces: [VpcInterface]?, Maintenance: Maintenance?{MaintenanceDay: str?, MaintenanceDeadline: str?, MaintenanceScheduledDate: str?, MaintenanceStartHour: str?}, SourceMonitoringConfig: MonitoringConfig?{ThumbnailState: str?}}}

@endpoint PUT /v1/flows/{flowArn}/entitlements/{entitlementArn}
@desc You can change an entitlement's description, subscribers, and encryption. If you change the subscribers, the service will remove the outputs that are are used by the subscribers that are removed.
@required {EntitlementArn: str, FlowArn: str}
@optional {Description: str, Encryption: UpdateEncryption, EntitlementStatus: str, Subscribers: [str]}
@returns(200) {Entitlement: Entitlement?{DataTransferSubscriberFeePercent: int?, Description: str?, Encryption: Encryption?{Algorithm: str?, ConstantInitializationVector: str?, DeviceId: str?, KeyType: str?, Region: str?, ResourceId: str?, RoleArn: str, SecretArn: str?, Url: str?}, EntitlementArn: str, EntitlementStatus: str?, Name: str, Subscribers: [str]}, FlowArn: str?}

@endpoint PUT /v1/flows/{flowArn}/mediaStreams/{mediaStreamName}
@desc Updates an existing media stream.
@required {FlowArn: str, MediaStreamName: str}
@optional {Attributes: MediaStreamAttributesRequest, ClockRate: int, Description: str, MediaStreamType: str, VideoFormat: str}
@returns(200) {FlowArn: str?, MediaStream: MediaStream?{Attributes: MediaStreamAttributes?{Fmtp: Fmtp{ChannelOrder: str?, Colorimetry: str?, ExactFramerate: str?, Par: str?, Range: str?, ScanMode: str?, Tcs: str?}, Lang: str?}, ClockRate: int?, Description: str?, Fmt: int, MediaStreamId: int, MediaStreamName: str, MediaStreamType: str, VideoFormat: str?}}

@endpoint PUT /v1/flows/{flowArn}/outputs/{outputArn}
@desc Updates an existing flow output.
@required {FlowArn: str, OutputArn: str}
@optional {CidrAllowList: [str], Description: str, Destination: str, Encryption: UpdateEncryption, MaxLatency: int, MediaStreamOutputConfigurations: [MediaStreamOutputConfigurationRequest], MinLatency: int, Port: int, Protocol: str, RemoteId: str, SenderControlPort: int, SenderIpAddress: str, SmoothingLatency: int, StreamId: str, VpcInterfaceAttachment: VpcInterfaceAttachment, OutputStatus: str}
@returns(200) {FlowArn: str?, Output: Output?{DataTransferSubscriberFeePercent: int?, Description: str?, Destination: str?, Encryption: Encryption?{Algorithm: str?, ConstantInitializationVector: str?, DeviceId: str?, KeyType: str?, Region: str?, ResourceId: str?, RoleArn: str, SecretArn: str?, Url: str?}, EntitlementArn: str?, ListenerAddress: str?, MediaLiveInputArn: str?, MediaStreamOutputConfigurations: [MediaStreamOutputConfiguration]?, Name: str, OutputArn: str, Port: int?, Transport: Transport?{CidrAllowList: [str]?, MaxBitrate: int?, MaxLatency: int?, MaxSyncBuffer: int?, MinLatency: int?, Protocol: str, RemoteId: str?, SenderControlPort: int?, SenderIpAddress: str?, SmoothingLatency: int?, SourceListenerAddress: str?, SourceListenerPort: int?, StreamId: str?}, VpcInterfaceAttachment: VpcInterfaceAttachment?{VpcInterfaceName: str?}, BridgeArn: str?, BridgePorts: [int]?, OutputStatus: str?}}

@endpoint PUT /v1/flows/{flowArn}/source/{sourceArn}
@desc Updates the source of a flow.
@required {FlowArn: str, SourceArn: str}
@optional {Decryption: UpdateEncryption, Description: str, EntitlementArn: str, IngestPort: int, MaxBitrate: int, MaxLatency: int, MaxSyncBuffer: int, MediaStreamSourceConfigurations: [MediaStreamSourceConfigurationRequest], MinLatency: int, Protocol: str, SenderControlPort: int, SenderIpAddress: str, SourceListenerAddress: str, SourceListenerPort: int, StreamId: str, VpcInterfaceName: str, WhitelistCidr: str, GatewayBridgeSource: UpdateGatewayBridgeSourceRequest}
@returns(200) {FlowArn: str?, Source: Source?{DataTransferSubscriberFeePercent: int?, Decryption: Encryption?{Algorithm: str?, ConstantInitializationVector: str?, DeviceId: str?, KeyType: str?, Region: str?, ResourceId: str?, RoleArn: str, SecretArn: str?, Url: str?}, Description: str?, EntitlementArn: str?, IngestIp: str?, IngestPort: int?, MediaStreamSourceConfigurations: [MediaStreamSourceConfiguration]?, Name: str, SenderControlPort: int?, SenderIpAddress: str?, SourceArn: str, Transport: Transport?{CidrAllowList: [str]?, MaxBitrate: int?, MaxLatency: int?, MaxSyncBuffer: int?, MinLatency: int?, Protocol: str, RemoteId: str?, SenderControlPort: int?, SenderIpAddress: str?, SmoothingLatency: int?, SourceListenerAddress: str?, SourceListenerPort: int?, StreamId: str?}, VpcInterfaceName: str?, WhitelistCidr: str?, GatewayBridgeSource: GatewayBridgeSource?{BridgeArn: str, VpcInterfaceAttachment: VpcInterfaceAttachment?{VpcInterfaceName: str?}}}}

@endgroup

@group gateway-instances
@endpoint PUT /v1/gateway-instances/{gatewayInstanceArn}
@desc Updates the configuration of an existing Gateway Instance.
@required {GatewayInstanceArn: str}
@optional {BridgePlacement: str}
@returns(200) {BridgePlacement: str?, GatewayInstanceArn: str?}

@endgroup

@end
