amazonka-kinesis-video-media 1.6.1 → 2.0
raw patch · 23 files changed
+1177/−747 lines, 23 filesdep +case-insensitivedep ~amazonka-coredep ~amazonka-testdep ~basesetup-changedPVP ok
version bump matches the API change (PVP)
Dependencies added: case-insensitive
Dependency ranges changed: amazonka-core, amazonka-test, base
API changes (from Hackage documentation)
- Network.AWS.KinesisVideoMedia: ContinuationToken :: StartSelectorType
- Network.AWS.KinesisVideoMedia: Earliest :: StartSelectorType
- Network.AWS.KinesisVideoMedia: FragmentNumber :: StartSelectorType
- Network.AWS.KinesisVideoMedia: Now :: StartSelectorType
- Network.AWS.KinesisVideoMedia: ProducerTimestamp :: StartSelectorType
- Network.AWS.KinesisVideoMedia: ServerTimestamp :: StartSelectorType
- Network.AWS.KinesisVideoMedia: _ClientLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
- Network.AWS.KinesisVideoMedia: _ConnectionLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
- Network.AWS.KinesisVideoMedia: _InvalidArgumentException :: AsError a => Getting (First ServiceError) a ServiceError
- Network.AWS.KinesisVideoMedia: _InvalidEndpointException :: AsError a => Getting (First ServiceError) a ServiceError
- Network.AWS.KinesisVideoMedia: _NotAuthorizedException :: AsError a => Getting (First ServiceError) a ServiceError
- Network.AWS.KinesisVideoMedia: _ResourceNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError
- Network.AWS.KinesisVideoMedia: data StartSelector
- Network.AWS.KinesisVideoMedia: data StartSelectorType
- Network.AWS.KinesisVideoMedia: kinesisVideoMedia :: Service
- Network.AWS.KinesisVideoMedia: ssAfterFragmentNumber :: Lens' StartSelector (Maybe Text)
- Network.AWS.KinesisVideoMedia: ssContinuationToken :: Lens' StartSelector (Maybe Text)
- Network.AWS.KinesisVideoMedia: ssStartSelectorType :: Lens' StartSelector StartSelectorType
- Network.AWS.KinesisVideoMedia: ssStartTimestamp :: Lens' StartSelector (Maybe UTCTime)
- Network.AWS.KinesisVideoMedia: startSelector :: StartSelectorType -> StartSelector
- Network.AWS.KinesisVideoMedia.GetMedia: data GetMedia
- Network.AWS.KinesisVideoMedia.GetMedia: data GetMediaResponse
- Network.AWS.KinesisVideoMedia.GetMedia: getMedia :: StartSelector -> GetMedia
- Network.AWS.KinesisVideoMedia.GetMedia: getMediaResponse :: Int -> RsBody -> GetMediaResponse
- Network.AWS.KinesisVideoMedia.GetMedia: gmStartSelector :: Lens' GetMedia StartSelector
- Network.AWS.KinesisVideoMedia.GetMedia: gmStreamARN :: Lens' GetMedia (Maybe Text)
- Network.AWS.KinesisVideoMedia.GetMedia: gmStreamName :: Lens' GetMedia (Maybe Text)
- Network.AWS.KinesisVideoMedia.GetMedia: gmrsContentType :: Lens' GetMediaResponse (Maybe Text)
- Network.AWS.KinesisVideoMedia.GetMedia: gmrsPayload :: Lens' GetMediaResponse RsBody
- Network.AWS.KinesisVideoMedia.GetMedia: gmrsResponseStatus :: Lens' GetMediaResponse Int
- Network.AWS.KinesisVideoMedia.GetMedia: instance Control.DeepSeq.NFData Network.AWS.KinesisVideoMedia.GetMedia.GetMedia
- Network.AWS.KinesisVideoMedia.GetMedia: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.KinesisVideoMedia.GetMedia.GetMedia
- Network.AWS.KinesisVideoMedia.GetMedia: instance Data.Data.Data Network.AWS.KinesisVideoMedia.GetMedia.GetMedia
- Network.AWS.KinesisVideoMedia.GetMedia: instance Data.Hashable.Class.Hashable Network.AWS.KinesisVideoMedia.GetMedia.GetMedia
- Network.AWS.KinesisVideoMedia.GetMedia: instance GHC.Classes.Eq Network.AWS.KinesisVideoMedia.GetMedia.GetMedia
- Network.AWS.KinesisVideoMedia.GetMedia: instance GHC.Generics.Generic Network.AWS.KinesisVideoMedia.GetMedia.GetMedia
- Network.AWS.KinesisVideoMedia.GetMedia: instance GHC.Generics.Generic Network.AWS.KinesisVideoMedia.GetMedia.GetMediaResponse
- Network.AWS.KinesisVideoMedia.GetMedia: instance GHC.Read.Read Network.AWS.KinesisVideoMedia.GetMedia.GetMedia
- Network.AWS.KinesisVideoMedia.GetMedia: instance GHC.Show.Show Network.AWS.KinesisVideoMedia.GetMedia.GetMedia
- Network.AWS.KinesisVideoMedia.GetMedia: instance GHC.Show.Show Network.AWS.KinesisVideoMedia.GetMedia.GetMediaResponse
- Network.AWS.KinesisVideoMedia.GetMedia: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.KinesisVideoMedia.GetMedia.GetMedia
- Network.AWS.KinesisVideoMedia.GetMedia: instance Network.AWS.Data.Path.ToPath Network.AWS.KinesisVideoMedia.GetMedia.GetMedia
- Network.AWS.KinesisVideoMedia.GetMedia: instance Network.AWS.Data.Query.ToQuery Network.AWS.KinesisVideoMedia.GetMedia.GetMedia
- Network.AWS.KinesisVideoMedia.GetMedia: instance Network.AWS.Types.AWSRequest Network.AWS.KinesisVideoMedia.GetMedia.GetMedia
- Network.AWS.KinesisVideoMedia.Types: ContinuationToken :: StartSelectorType
- Network.AWS.KinesisVideoMedia.Types: Earliest :: StartSelectorType
- Network.AWS.KinesisVideoMedia.Types: FragmentNumber :: StartSelectorType
- Network.AWS.KinesisVideoMedia.Types: Now :: StartSelectorType
- Network.AWS.KinesisVideoMedia.Types: ProducerTimestamp :: StartSelectorType
- Network.AWS.KinesisVideoMedia.Types: ServerTimestamp :: StartSelectorType
- Network.AWS.KinesisVideoMedia.Types: _ClientLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
- Network.AWS.KinesisVideoMedia.Types: _ConnectionLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
- Network.AWS.KinesisVideoMedia.Types: _InvalidArgumentException :: AsError a => Getting (First ServiceError) a ServiceError
- Network.AWS.KinesisVideoMedia.Types: _InvalidEndpointException :: AsError a => Getting (First ServiceError) a ServiceError
- Network.AWS.KinesisVideoMedia.Types: _NotAuthorizedException :: AsError a => Getting (First ServiceError) a ServiceError
- Network.AWS.KinesisVideoMedia.Types: _ResourceNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError
- Network.AWS.KinesisVideoMedia.Types: data StartSelector
- Network.AWS.KinesisVideoMedia.Types: data StartSelectorType
- Network.AWS.KinesisVideoMedia.Types: kinesisVideoMedia :: Service
- Network.AWS.KinesisVideoMedia.Types: ssAfterFragmentNumber :: Lens' StartSelector (Maybe Text)
- Network.AWS.KinesisVideoMedia.Types: ssContinuationToken :: Lens' StartSelector (Maybe Text)
- Network.AWS.KinesisVideoMedia.Types: ssStartSelectorType :: Lens' StartSelector StartSelectorType
- Network.AWS.KinesisVideoMedia.Types: ssStartTimestamp :: Lens' StartSelector (Maybe UTCTime)
- Network.AWS.KinesisVideoMedia.Types: startSelector :: StartSelectorType -> StartSelector
+ Amazonka.KinesisVideoMedia: GetMedia' :: Maybe Text -> Maybe Text -> StartSelector -> GetMedia
+ Amazonka.KinesisVideoMedia: GetMediaResponse' :: Maybe Text -> Int -> ResponseBody -> GetMediaResponse
+ Amazonka.KinesisVideoMedia: StartSelector' :: Maybe Text -> Maybe Text -> Maybe POSIX -> StartSelectorType -> StartSelector
+ Amazonka.KinesisVideoMedia: StartSelectorType' :: Text -> StartSelectorType
+ Amazonka.KinesisVideoMedia: [fromStartSelectorType] :: StartSelectorType -> Text
+ Amazonka.KinesisVideoMedia: _ClientLimitExceededException :: AsError a => Fold a ServiceError
+ Amazonka.KinesisVideoMedia: _ConnectionLimitExceededException :: AsError a => Fold a ServiceError
+ Amazonka.KinesisVideoMedia: _InvalidArgumentException :: AsError a => Fold a ServiceError
+ Amazonka.KinesisVideoMedia: _InvalidEndpointException :: AsError a => Fold a ServiceError
+ Amazonka.KinesisVideoMedia: _NotAuthorizedException :: AsError a => Fold a ServiceError
+ Amazonka.KinesisVideoMedia: _ResourceNotFoundException :: AsError a => Fold a ServiceError
+ Amazonka.KinesisVideoMedia: data GetMedia
+ Amazonka.KinesisVideoMedia: data GetMediaResponse
+ Amazonka.KinesisVideoMedia: data StartSelector
+ Amazonka.KinesisVideoMedia: defaultService :: Service
+ Amazonka.KinesisVideoMedia: newGetMedia :: StartSelector -> GetMedia
+ Amazonka.KinesisVideoMedia: newGetMediaResponse :: Int -> ResponseBody -> GetMediaResponse
+ Amazonka.KinesisVideoMedia: newStartSelector :: StartSelectorType -> StartSelector
+ Amazonka.KinesisVideoMedia: newtype StartSelectorType
+ Amazonka.KinesisVideoMedia: pattern StartSelectorType_CONTINUATION_TOKEN :: StartSelectorType
+ Amazonka.KinesisVideoMedia: pattern StartSelectorType_EARLIEST :: StartSelectorType
+ Amazonka.KinesisVideoMedia: pattern StartSelectorType_FRAGMENT_NUMBER :: StartSelectorType
+ Amazonka.KinesisVideoMedia: pattern StartSelectorType_NOW :: StartSelectorType
+ Amazonka.KinesisVideoMedia: pattern StartSelectorType_PRODUCER_TIMESTAMP :: StartSelectorType
+ Amazonka.KinesisVideoMedia: pattern StartSelectorType_SERVER_TIMESTAMP :: StartSelectorType
+ Amazonka.KinesisVideoMedia.GetMedia: GetMedia' :: Maybe Text -> Maybe Text -> StartSelector -> GetMedia
+ Amazonka.KinesisVideoMedia.GetMedia: GetMediaResponse' :: Maybe Text -> Int -> ResponseBody -> GetMediaResponse
+ Amazonka.KinesisVideoMedia.GetMedia: [$sel:contentType:GetMediaResponse'] :: GetMediaResponse -> Maybe Text
+ Amazonka.KinesisVideoMedia.GetMedia: [$sel:httpStatus:GetMediaResponse'] :: GetMediaResponse -> Int
+ Amazonka.KinesisVideoMedia.GetMedia: [$sel:payload:GetMediaResponse'] :: GetMediaResponse -> ResponseBody
+ Amazonka.KinesisVideoMedia.GetMedia: [$sel:startSelector:GetMedia'] :: GetMedia -> StartSelector
+ Amazonka.KinesisVideoMedia.GetMedia: [$sel:streamARN:GetMedia'] :: GetMedia -> Maybe Text
+ Amazonka.KinesisVideoMedia.GetMedia: [$sel:streamName:GetMedia'] :: GetMedia -> Maybe Text
+ Amazonka.KinesisVideoMedia.GetMedia: data GetMedia
+ Amazonka.KinesisVideoMedia.GetMedia: data GetMediaResponse
+ Amazonka.KinesisVideoMedia.GetMedia: getMediaResponse_contentType :: Lens' GetMediaResponse (Maybe Text)
+ Amazonka.KinesisVideoMedia.GetMedia: getMediaResponse_httpStatus :: Lens' GetMediaResponse Int
+ Amazonka.KinesisVideoMedia.GetMedia: getMediaResponse_payload :: Lens' GetMediaResponse ResponseBody
+ Amazonka.KinesisVideoMedia.GetMedia: getMedia_startSelector :: Lens' GetMedia StartSelector
+ Amazonka.KinesisVideoMedia.GetMedia: getMedia_streamARN :: Lens' GetMedia (Maybe Text)
+ Amazonka.KinesisVideoMedia.GetMedia: getMedia_streamName :: Lens' GetMedia (Maybe Text)
+ Amazonka.KinesisVideoMedia.GetMedia: instance Amazonka.Data.Headers.ToHeaders Amazonka.KinesisVideoMedia.GetMedia.GetMedia
+ Amazonka.KinesisVideoMedia.GetMedia: instance Amazonka.Data.Path.ToPath Amazonka.KinesisVideoMedia.GetMedia.GetMedia
+ Amazonka.KinesisVideoMedia.GetMedia: instance Amazonka.Data.Query.ToQuery Amazonka.KinesisVideoMedia.GetMedia.GetMedia
+ Amazonka.KinesisVideoMedia.GetMedia: instance Amazonka.Types.AWSRequest Amazonka.KinesisVideoMedia.GetMedia.GetMedia
+ Amazonka.KinesisVideoMedia.GetMedia: instance Control.DeepSeq.NFData Amazonka.KinesisVideoMedia.GetMedia.GetMedia
+ Amazonka.KinesisVideoMedia.GetMedia: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.KinesisVideoMedia.GetMedia.GetMedia
+ Amazonka.KinesisVideoMedia.GetMedia: instance Data.Hashable.Class.Hashable Amazonka.KinesisVideoMedia.GetMedia.GetMedia
+ Amazonka.KinesisVideoMedia.GetMedia: instance GHC.Classes.Eq Amazonka.KinesisVideoMedia.GetMedia.GetMedia
+ Amazonka.KinesisVideoMedia.GetMedia: instance GHC.Generics.Generic Amazonka.KinesisVideoMedia.GetMedia.GetMedia
+ Amazonka.KinesisVideoMedia.GetMedia: instance GHC.Generics.Generic Amazonka.KinesisVideoMedia.GetMedia.GetMediaResponse
+ Amazonka.KinesisVideoMedia.GetMedia: instance GHC.Read.Read Amazonka.KinesisVideoMedia.GetMedia.GetMedia
+ Amazonka.KinesisVideoMedia.GetMedia: instance GHC.Show.Show Amazonka.KinesisVideoMedia.GetMedia.GetMedia
+ Amazonka.KinesisVideoMedia.GetMedia: instance GHC.Show.Show Amazonka.KinesisVideoMedia.GetMedia.GetMediaResponse
+ Amazonka.KinesisVideoMedia.GetMedia: newGetMedia :: StartSelector -> GetMedia
+ Amazonka.KinesisVideoMedia.GetMedia: newGetMediaResponse :: Int -> ResponseBody -> GetMediaResponse
+ Amazonka.KinesisVideoMedia.Lens: getMediaResponse_contentType :: Lens' GetMediaResponse (Maybe Text)
+ Amazonka.KinesisVideoMedia.Lens: getMediaResponse_httpStatus :: Lens' GetMediaResponse Int
+ Amazonka.KinesisVideoMedia.Lens: getMediaResponse_payload :: Lens' GetMediaResponse ResponseBody
+ Amazonka.KinesisVideoMedia.Lens: getMedia_startSelector :: Lens' GetMedia StartSelector
+ Amazonka.KinesisVideoMedia.Lens: getMedia_streamARN :: Lens' GetMedia (Maybe Text)
+ Amazonka.KinesisVideoMedia.Lens: getMedia_streamName :: Lens' GetMedia (Maybe Text)
+ Amazonka.KinesisVideoMedia.Lens: startSelector_afterFragmentNumber :: Lens' StartSelector (Maybe Text)
+ Amazonka.KinesisVideoMedia.Lens: startSelector_continuationToken :: Lens' StartSelector (Maybe Text)
+ Amazonka.KinesisVideoMedia.Lens: startSelector_startSelectorType :: Lens' StartSelector StartSelectorType
+ Amazonka.KinesisVideoMedia.Lens: startSelector_startTimestamp :: Lens' StartSelector (Maybe UTCTime)
+ Amazonka.KinesisVideoMedia.Types: StartSelector' :: Maybe Text -> Maybe Text -> Maybe POSIX -> StartSelectorType -> StartSelector
+ Amazonka.KinesisVideoMedia.Types: StartSelectorType' :: Text -> StartSelectorType
+ Amazonka.KinesisVideoMedia.Types: [$sel:afterFragmentNumber:StartSelector'] :: StartSelector -> Maybe Text
+ Amazonka.KinesisVideoMedia.Types: [$sel:continuationToken:StartSelector'] :: StartSelector -> Maybe Text
+ Amazonka.KinesisVideoMedia.Types: [$sel:startSelectorType:StartSelector'] :: StartSelector -> StartSelectorType
+ Amazonka.KinesisVideoMedia.Types: [$sel:startTimestamp:StartSelector'] :: StartSelector -> Maybe POSIX
+ Amazonka.KinesisVideoMedia.Types: [fromStartSelectorType] :: StartSelectorType -> Text
+ Amazonka.KinesisVideoMedia.Types: _ClientLimitExceededException :: AsError a => Fold a ServiceError
+ Amazonka.KinesisVideoMedia.Types: _ConnectionLimitExceededException :: AsError a => Fold a ServiceError
+ Amazonka.KinesisVideoMedia.Types: _InvalidArgumentException :: AsError a => Fold a ServiceError
+ Amazonka.KinesisVideoMedia.Types: _InvalidEndpointException :: AsError a => Fold a ServiceError
+ Amazonka.KinesisVideoMedia.Types: _NotAuthorizedException :: AsError a => Fold a ServiceError
+ Amazonka.KinesisVideoMedia.Types: _ResourceNotFoundException :: AsError a => Fold a ServiceError
+ Amazonka.KinesisVideoMedia.Types: data StartSelector
+ Amazonka.KinesisVideoMedia.Types: defaultService :: Service
+ Amazonka.KinesisVideoMedia.Types: newStartSelector :: StartSelectorType -> StartSelector
+ Amazonka.KinesisVideoMedia.Types: newtype StartSelectorType
+ Amazonka.KinesisVideoMedia.Types: pattern StartSelectorType_CONTINUATION_TOKEN :: StartSelectorType
+ Amazonka.KinesisVideoMedia.Types: pattern StartSelectorType_EARLIEST :: StartSelectorType
+ Amazonka.KinesisVideoMedia.Types: pattern StartSelectorType_FRAGMENT_NUMBER :: StartSelectorType
+ Amazonka.KinesisVideoMedia.Types: pattern StartSelectorType_NOW :: StartSelectorType
+ Amazonka.KinesisVideoMedia.Types: pattern StartSelectorType_PRODUCER_TIMESTAMP :: StartSelectorType
+ Amazonka.KinesisVideoMedia.Types: pattern StartSelectorType_SERVER_TIMESTAMP :: StartSelectorType
+ Amazonka.KinesisVideoMedia.Types: startSelector_afterFragmentNumber :: Lens' StartSelector (Maybe Text)
+ Amazonka.KinesisVideoMedia.Types: startSelector_continuationToken :: Lens' StartSelector (Maybe Text)
+ Amazonka.KinesisVideoMedia.Types: startSelector_startSelectorType :: Lens' StartSelector StartSelectorType
+ Amazonka.KinesisVideoMedia.Types: startSelector_startTimestamp :: Lens' StartSelector (Maybe UTCTime)
+ Amazonka.KinesisVideoMedia.Types.StartSelector: StartSelector' :: Maybe Text -> Maybe Text -> Maybe POSIX -> StartSelectorType -> StartSelector
+ Amazonka.KinesisVideoMedia.Types.StartSelector: [$sel:afterFragmentNumber:StartSelector'] :: StartSelector -> Maybe Text
+ Amazonka.KinesisVideoMedia.Types.StartSelector: [$sel:continuationToken:StartSelector'] :: StartSelector -> Maybe Text
+ Amazonka.KinesisVideoMedia.Types.StartSelector: [$sel:startSelectorType:StartSelector'] :: StartSelector -> StartSelectorType
+ Amazonka.KinesisVideoMedia.Types.StartSelector: [$sel:startTimestamp:StartSelector'] :: StartSelector -> Maybe POSIX
+ Amazonka.KinesisVideoMedia.Types.StartSelector: data StartSelector
+ Amazonka.KinesisVideoMedia.Types.StartSelector: instance Control.DeepSeq.NFData Amazonka.KinesisVideoMedia.Types.StartSelector.StartSelector
+ Amazonka.KinesisVideoMedia.Types.StartSelector: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.KinesisVideoMedia.Types.StartSelector.StartSelector
+ Amazonka.KinesisVideoMedia.Types.StartSelector: instance Data.Hashable.Class.Hashable Amazonka.KinesisVideoMedia.Types.StartSelector.StartSelector
+ Amazonka.KinesisVideoMedia.Types.StartSelector: instance GHC.Classes.Eq Amazonka.KinesisVideoMedia.Types.StartSelector.StartSelector
+ Amazonka.KinesisVideoMedia.Types.StartSelector: instance GHC.Generics.Generic Amazonka.KinesisVideoMedia.Types.StartSelector.StartSelector
+ Amazonka.KinesisVideoMedia.Types.StartSelector: instance GHC.Read.Read Amazonka.KinesisVideoMedia.Types.StartSelector.StartSelector
+ Amazonka.KinesisVideoMedia.Types.StartSelector: instance GHC.Show.Show Amazonka.KinesisVideoMedia.Types.StartSelector.StartSelector
+ Amazonka.KinesisVideoMedia.Types.StartSelector: newStartSelector :: StartSelectorType -> StartSelector
+ Amazonka.KinesisVideoMedia.Types.StartSelector: startSelector_afterFragmentNumber :: Lens' StartSelector (Maybe Text)
+ Amazonka.KinesisVideoMedia.Types.StartSelector: startSelector_continuationToken :: Lens' StartSelector (Maybe Text)
+ Amazonka.KinesisVideoMedia.Types.StartSelector: startSelector_startSelectorType :: Lens' StartSelector StartSelectorType
+ Amazonka.KinesisVideoMedia.Types.StartSelector: startSelector_startTimestamp :: Lens' StartSelector (Maybe UTCTime)
+ Amazonka.KinesisVideoMedia.Types.StartSelectorType: StartSelectorType' :: Text -> StartSelectorType
+ Amazonka.KinesisVideoMedia.Types.StartSelectorType: [fromStartSelectorType] :: StartSelectorType -> Text
+ Amazonka.KinesisVideoMedia.Types.StartSelectorType: instance Amazonka.Data.ByteString.ToByteString Amazonka.KinesisVideoMedia.Types.StartSelectorType.StartSelectorType
+ Amazonka.KinesisVideoMedia.Types.StartSelectorType: instance Amazonka.Data.Headers.ToHeader Amazonka.KinesisVideoMedia.Types.StartSelectorType.StartSelectorType
+ Amazonka.KinesisVideoMedia.Types.StartSelectorType: instance Amazonka.Data.Log.ToLog Amazonka.KinesisVideoMedia.Types.StartSelectorType.StartSelectorType
+ Amazonka.KinesisVideoMedia.Types.StartSelectorType: instance Amazonka.Data.Query.ToQuery Amazonka.KinesisVideoMedia.Types.StartSelectorType.StartSelectorType
+ Amazonka.KinesisVideoMedia.Types.StartSelectorType: instance Amazonka.Data.Text.FromText Amazonka.KinesisVideoMedia.Types.StartSelectorType.StartSelectorType
+ Amazonka.KinesisVideoMedia.Types.StartSelectorType: instance Amazonka.Data.Text.ToText Amazonka.KinesisVideoMedia.Types.StartSelectorType.StartSelectorType
+ Amazonka.KinesisVideoMedia.Types.StartSelectorType: instance Amazonka.Data.XML.FromXML Amazonka.KinesisVideoMedia.Types.StartSelectorType.StartSelectorType
+ Amazonka.KinesisVideoMedia.Types.StartSelectorType: instance Amazonka.Data.XML.ToXML Amazonka.KinesisVideoMedia.Types.StartSelectorType.StartSelectorType
+ Amazonka.KinesisVideoMedia.Types.StartSelectorType: instance Control.DeepSeq.NFData Amazonka.KinesisVideoMedia.Types.StartSelectorType.StartSelectorType
+ Amazonka.KinesisVideoMedia.Types.StartSelectorType: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.KinesisVideoMedia.Types.StartSelectorType.StartSelectorType
+ Amazonka.KinesisVideoMedia.Types.StartSelectorType: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.KinesisVideoMedia.Types.StartSelectorType.StartSelectorType
+ Amazonka.KinesisVideoMedia.Types.StartSelectorType: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.KinesisVideoMedia.Types.StartSelectorType.StartSelectorType
+ Amazonka.KinesisVideoMedia.Types.StartSelectorType: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.KinesisVideoMedia.Types.StartSelectorType.StartSelectorType
+ Amazonka.KinesisVideoMedia.Types.StartSelectorType: instance Data.Hashable.Class.Hashable Amazonka.KinesisVideoMedia.Types.StartSelectorType.StartSelectorType
+ Amazonka.KinesisVideoMedia.Types.StartSelectorType: instance GHC.Classes.Eq Amazonka.KinesisVideoMedia.Types.StartSelectorType.StartSelectorType
+ Amazonka.KinesisVideoMedia.Types.StartSelectorType: instance GHC.Classes.Ord Amazonka.KinesisVideoMedia.Types.StartSelectorType.StartSelectorType
+ Amazonka.KinesisVideoMedia.Types.StartSelectorType: instance GHC.Generics.Generic Amazonka.KinesisVideoMedia.Types.StartSelectorType.StartSelectorType
+ Amazonka.KinesisVideoMedia.Types.StartSelectorType: instance GHC.Read.Read Amazonka.KinesisVideoMedia.Types.StartSelectorType.StartSelectorType
+ Amazonka.KinesisVideoMedia.Types.StartSelectorType: instance GHC.Show.Show Amazonka.KinesisVideoMedia.Types.StartSelectorType.StartSelectorType
+ Amazonka.KinesisVideoMedia.Types.StartSelectorType: newtype StartSelectorType
+ Amazonka.KinesisVideoMedia.Types.StartSelectorType: pattern StartSelectorType_CONTINUATION_TOKEN :: StartSelectorType
+ Amazonka.KinesisVideoMedia.Types.StartSelectorType: pattern StartSelectorType_EARLIEST :: StartSelectorType
+ Amazonka.KinesisVideoMedia.Types.StartSelectorType: pattern StartSelectorType_FRAGMENT_NUMBER :: StartSelectorType
+ Amazonka.KinesisVideoMedia.Types.StartSelectorType: pattern StartSelectorType_NOW :: StartSelectorType
+ Amazonka.KinesisVideoMedia.Types.StartSelectorType: pattern StartSelectorType_PRODUCER_TIMESTAMP :: StartSelectorType
+ Amazonka.KinesisVideoMedia.Types.StartSelectorType: pattern StartSelectorType_SERVER_TIMESTAMP :: StartSelectorType
Files
- README.md +3/−4
- Setup.hs +0/−2
- amazonka-kinesis-video-media.cabal +75/−75
- gen/Amazonka/KinesisVideoMedia.hs +91/−0
- gen/Amazonka/KinesisVideoMedia/GetMedia.hs +398/−0
- gen/Amazonka/KinesisVideoMedia/Lens.hs +36/−0
- gen/Amazonka/KinesisVideoMedia/Types.hs +170/−0
- gen/Amazonka/KinesisVideoMedia/Types/StartSelector.hs +200/−0
- gen/Amazonka/KinesisVideoMedia/Types/StartSelectorType.hs +91/−0
- gen/Amazonka/KinesisVideoMedia/Waiters.hs +24/−0
- gen/Network/AWS/KinesisVideoMedia.hs +0/−98
- gen/Network/AWS/KinesisVideoMedia/GetMedia.hs +0/−170
- gen/Network/AWS/KinesisVideoMedia/Types.hs +0/−134
- gen/Network/AWS/KinesisVideoMedia/Types/Product.hs +0/−96
- gen/Network/AWS/KinesisVideoMedia/Types/Sum.hs +0/−59
- gen/Network/AWS/KinesisVideoMedia/Waiters.hs +0/−21
- test/Main.hs +11/−9
- test/Test/AWS/Gen/KinesisVideoMedia.hs +0/−50
- test/Test/AWS/KinesisVideoMedia.hs +0/−20
- test/Test/AWS/KinesisVideoMedia/Internal.hs +0/−9
- test/Test/Amazonka/Gen/KinesisVideoMedia.hs +50/−0
- test/Test/Amazonka/KinesisVideoMedia.hs +20/−0
- test/Test/Amazonka/KinesisVideoMedia/Internal.hs +8/−0
README.md view
@@ -7,9 +7,8 @@ ## Version--`1.6.1`-+ +`2.0` - Derived from API version @2017-09-30@ of the AWS service descriptions, licensed under Apache 2.0. ## Description @@ -26,7 +25,7 @@ The provided lenses should be compatible with any of the major lens libraries [lens](http://hackage.haskell.org/package/lens) or [lens-family-core](http://hackage.haskell.org/package/lens-family-core). -See [Network.AWS.KinesisVideoMedia](http://hackage.haskell.org/package/amazonka-kinesis-video-media/docs/Network-AWS-KinesisVideoMedia.html)+See [Amazonka.KinesisVideoMedia](http://hackage.haskell.org/package/amazonka-kinesis-video-media/docs/Amazonka-KinesisVideoMedia.html) or [the AWS documentation](https://aws.amazon.com/documentation/) to get started.
− Setup.hs
@@ -1,2 +0,0 @@-import Distribution.Simple-main = defaultMain
amazonka-kinesis-video-media.cabal view
@@ -1,86 +1,86 @@-name: amazonka-kinesis-video-media-version: 1.6.1-synopsis: Amazon Kinesis Video Streams Media SDK.-homepage: https://github.com/brendanhay/amazonka-bug-reports: https://github.com/brendanhay/amazonka/issues-license: MPL-2.0-license-file: LICENSE-author: Brendan Hay-maintainer: Brendan Hay <brendan.g.hay+amazonka@gmail.com>-copyright: Copyright (c) 2013-2018 Brendan Hay-category: Network, AWS, Cloud, Distributed Computing-build-type: Simple-cabal-version: >= 1.10-extra-source-files: README.md fixture/*.yaml fixture/*.proto src/.gitkeep+cabal-version: 2.2+name: amazonka-kinesis-video-media+version: 2.0+synopsis: Amazon Kinesis Video Streams Media SDK.+homepage: https://github.com/brendanhay/amazonka+bug-reports: https://github.com/brendanhay/amazonka/issues+license: MPL-2.0+license-file: LICENSE+author: Brendan Hay+maintainer:+ Brendan Hay <brendan.g.hay+amazonka@gmail.com>, Jack Kelly <jack@jackkelly.name>++copyright: Copyright (c) 2013-2023 Brendan Hay+category: AWS+build-type: Simple+extra-source-files:+ fixture/*.proto+ fixture/*.yaml+ README.md+ src/.gitkeep+ description:- The types from this library are intended to be used with- <http://hackage.haskell.org/package/amazonka amazonka>, which provides- mechanisms for specifying AuthN/AuthZ information, sending requests,- and receiving responses.- .- Lenses are used for constructing and manipulating types,- due to the depth of nesting of AWS types and transparency regarding- de/serialisation into more palatable Haskell values.- The provided lenses should be compatible with any of the major lens libraries- such as <http://hackage.haskell.org/package/lens lens> or- <http://hackage.haskell.org/package/lens-family-core lens-family-core>.- .- See "Network.AWS.KinesisVideoMedia" or <https://aws.amazon.com/documentation/ the AWS documentation>- to get started.+ Derived from API version @2017-09-30@ of the AWS service descriptions, licensed under Apache 2.0.+ .+ The types from this library are intended to be used with <http://hackage.haskell.org/package/amazonka amazonka>,+ which provides mechanisms for specifying AuthN/AuthZ information, sending requests, and receiving responses.+ .+ It is recommended to use generic lenses or optics from packages such as <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify optional fields and deconstruct responses.+ .+ Generated lenses can be found in "Amazonka.KinesisVideoMedia.Lens" and are+ suitable for use with a lens package such as <http://hackage.haskell.org/package/lens lens> or <http://hackage.haskell.org/package/lens-family-core lens-family-core>.+ .+ See "Amazonka.KinesisVideoMedia" and the <https://aws.amazon.com/documentation/ AWS documentation> to get started. source-repository head- type: git- location: git://github.com/brendanhay/amazonka.git- subdir: amazonka-kinesis-video-media+ type: git+ location: git://github.com/brendanhay/amazonka.git+ subdir: amazonka-kinesis-video-media library- default-language: Haskell2010- hs-source-dirs: src gen-- ghc-options:- -Wall- -fwarn-incomplete-uni-patterns- -fwarn-incomplete-record-updates- -funbox-strict-fields-- exposed-modules:- Network.AWS.KinesisVideoMedia- , Network.AWS.KinesisVideoMedia.GetMedia- , Network.AWS.KinesisVideoMedia.Types- , Network.AWS.KinesisVideoMedia.Waiters+ default-language: Haskell2010+ hs-source-dirs: src gen+ ghc-options:+ -Wall -fwarn-incomplete-uni-patterns+ -fwarn-incomplete-record-updates -funbox-strict-fields - other-modules:- Network.AWS.KinesisVideoMedia.Types.Product- , Network.AWS.KinesisVideoMedia.Types.Sum+ exposed-modules:+ Amazonka.KinesisVideoMedia+ Amazonka.KinesisVideoMedia.GetMedia+ Amazonka.KinesisVideoMedia.Lens+ Amazonka.KinesisVideoMedia.Types+ Amazonka.KinesisVideoMedia.Types.StartSelector+ Amazonka.KinesisVideoMedia.Types.StartSelectorType+ Amazonka.KinesisVideoMedia.Waiters - build-depends:- amazonka-core == 1.6.1.*- , base >= 4.7 && < 5+ build-depends:+ , amazonka-core >=2.0 && <2.1+ , base >=4.12 && <5 test-suite amazonka-kinesis-video-media-test- type: exitcode-stdio-1.0- default-language: Haskell2010- hs-source-dirs: test- main-is: Main.hs-- ghc-options: -Wall -threaded+ type: exitcode-stdio-1.0+ default-language: Haskell2010+ hs-source-dirs: test+ main-is: Main.hs+ ghc-options: -Wall -threaded - -- This section is encoded by the template and any modules added by- -- hand outside these namespaces will not correctly be added to the- -- distribution package.- other-modules:- Test.AWS.KinesisVideoMedia- , Test.AWS.Gen.KinesisVideoMedia- , Test.AWS.KinesisVideoMedia.Internal+ -- This section is encoded by the template and any modules added by+ -- hand outside these namespaces will not correctly be added to the+ -- distribution package.+ other-modules:+ Test.Amazonka.Gen.KinesisVideoMedia+ Test.Amazonka.KinesisVideoMedia+ Test.Amazonka.KinesisVideoMedia.Internal - build-depends:- amazonka-core == 1.6.1.*- , amazonka-test == 1.6.1.*- , amazonka-kinesis-video-media- , base- , bytestring- , tasty- , tasty-hunit- , text- , time- , unordered-containers+ build-depends:+ , amazonka-core >=2.0 && <2.1+ , amazonka-kinesis-video-media+ , amazonka-test >=2.0 && <2.1+ , base+ , bytestring+ , case-insensitive+ , tasty+ , tasty-hunit+ , text+ , time+ , unordered-containers
+ gen/Amazonka/KinesisVideoMedia.hs view
@@ -0,0 +1,91 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Amazonka.KinesisVideoMedia+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Derived from API version @2017-09-30@ of the AWS service descriptions, licensed under Apache 2.0.+module Amazonka.KinesisVideoMedia+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ -- $errors++ -- ** ClientLimitExceededException+ _ClientLimitExceededException,++ -- ** ConnectionLimitExceededException+ _ConnectionLimitExceededException,++ -- ** InvalidArgumentException+ _InvalidArgumentException,++ -- ** InvalidEndpointException+ _InvalidEndpointException,++ -- ** NotAuthorizedException+ _NotAuthorizedException,++ -- ** ResourceNotFoundException+ _ResourceNotFoundException,++ -- * Waiters+ -- $waiters++ -- * Operations+ -- $operations++ -- ** GetMedia+ GetMedia (GetMedia'),+ newGetMedia,+ GetMediaResponse (GetMediaResponse'),+ newGetMediaResponse,++ -- * Types++ -- ** StartSelectorType+ StartSelectorType (..),++ -- ** StartSelector+ StartSelector (StartSelector'),+ newStartSelector,+ )+where++import Amazonka.KinesisVideoMedia.GetMedia+import Amazonka.KinesisVideoMedia.Lens+import Amazonka.KinesisVideoMedia.Types+import Amazonka.KinesisVideoMedia.Waiters++-- $errors+-- Error matchers are designed for use with the functions provided by+-- <http://hackage.haskell.org/package/lens/docs/Control-Exception-Lens.html Control.Exception.Lens>.+-- This allows catching (and rethrowing) service specific errors returned+-- by 'KinesisVideoMedia'.++-- $operations+-- Some AWS operations return results that are incomplete and require subsequent+-- requests in order to obtain the entire result set. The process of sending+-- subsequent requests to continue where a previous request left off is called+-- pagination. For example, the 'ListObjects' operation of Amazon S3 returns up to+-- 1000 objects at a time, and you must send subsequent requests with the+-- appropriate Marker in order to retrieve the next page of results.+--+-- Operations that have an 'AWSPager' instance can transparently perform subsequent+-- requests, correctly setting Markers and other request facets to iterate through+-- the entire result set of a truncated API operation. Operations which support+-- this have an additional note in the documentation.+--+-- Many operations have the ability to filter results on the server side. See the+-- individual operation parameters for details.++-- $waiters+-- Waiters poll by repeatedly sending a request until some remote success condition+-- configured by the 'Wait' specification is fulfilled. The 'Wait' specification+-- determines how many attempts should be made, in addition to delay and retry strategies.
+ gen/Amazonka/KinesisVideoMedia/GetMedia.hs view
@@ -0,0 +1,398 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.KinesisVideoMedia.GetMedia+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Use this API to retrieve media content from a Kinesis video stream. In+-- the request, you identify the stream name or stream Amazon Resource Name+-- (ARN), and the starting chunk. Kinesis Video Streams then returns a+-- stream of chunks in order by fragment number.+--+-- You must first call the @GetDataEndpoint@ API to get an endpoint. Then+-- send the @GetMedia@ requests to this endpoint using the+-- <https://docs.aws.amazon.com/cli/latest/reference/ --endpoint-url parameter>.+--+-- When you put media data (fragments) on a stream, Kinesis Video Streams+-- stores each incoming fragment and related metadata in what is called a+-- \"chunk.\" For more information, see+-- <https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_PutMedia.html PutMedia>.+-- The @GetMedia@ API returns a stream of these chunks starting from the+-- chunk that you specify in the request.+--+-- The following limits apply when using the @GetMedia@ API:+--+-- - A client can call @GetMedia@ up to five times per second per stream.+--+-- - Kinesis Video Streams sends media data at a rate of up to 25+-- megabytes per second (or 200 megabits per second) during a+-- @GetMedia@ session.+--+-- If an error is thrown after invoking a Kinesis Video Streams media API,+-- in addition to the HTTP status code and the response body, it includes+-- the following pieces of information:+--+-- - @x-amz-ErrorType@ HTTP header – contains a more specific error type+-- in addition to what the HTTP status code provides.+--+-- - @x-amz-RequestId@ HTTP header – if you want to report an issue to+-- AWS, the support team can better diagnose the problem if given the+-- Request Id.+--+-- Both the HTTP status code and the ErrorType header can be utilized to+-- make programmatic decisions about whether errors are retry-able and+-- under what conditions, as well as provide information on what actions+-- the client programmer might need to take in order to successfully try+-- again.+--+-- For more information, see the __Errors__ section at the bottom of this+-- topic, as well as+-- <https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/CommonErrors.html Common Errors>.+module Amazonka.KinesisVideoMedia.GetMedia+ ( -- * Creating a Request+ GetMedia (..),+ newGetMedia,++ -- * Request Lenses+ getMedia_streamARN,+ getMedia_streamName,+ getMedia_startSelector,++ -- * Destructuring the Response+ GetMediaResponse (..),+ newGetMediaResponse,++ -- * Response Lenses+ getMediaResponse_contentType,+ getMediaResponse_httpStatus,+ getMediaResponse_payload,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.KinesisVideoMedia.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetMedia' smart constructor.+data GetMedia = GetMedia'+ { -- | The ARN of the stream from where you want to get the media content. If+ -- you don\'t specify the @streamARN@, you must specify the @streamName@.+ streamARN :: Prelude.Maybe Prelude.Text,+ -- | The Kinesis video stream name from where you want to get the media+ -- content. If you don\'t specify the @streamName@, you must specify the+ -- @streamARN@.+ streamName :: Prelude.Maybe Prelude.Text,+ -- | Identifies the starting chunk to get from the specified stream.+ startSelector :: StartSelector+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetMedia' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'streamARN', 'getMedia_streamARN' - The ARN of the stream from where you want to get the media content. If+-- you don\'t specify the @streamARN@, you must specify the @streamName@.+--+-- 'streamName', 'getMedia_streamName' - The Kinesis video stream name from where you want to get the media+-- content. If you don\'t specify the @streamName@, you must specify the+-- @streamARN@.+--+-- 'startSelector', 'getMedia_startSelector' - Identifies the starting chunk to get from the specified stream.+newGetMedia ::+ -- | 'startSelector'+ StartSelector ->+ GetMedia+newGetMedia pStartSelector_ =+ GetMedia'+ { streamARN = Prelude.Nothing,+ streamName = Prelude.Nothing,+ startSelector = pStartSelector_+ }++-- | The ARN of the stream from where you want to get the media content. If+-- you don\'t specify the @streamARN@, you must specify the @streamName@.+getMedia_streamARN :: Lens.Lens' GetMedia (Prelude.Maybe Prelude.Text)+getMedia_streamARN = Lens.lens (\GetMedia' {streamARN} -> streamARN) (\s@GetMedia' {} a -> s {streamARN = a} :: GetMedia)++-- | The Kinesis video stream name from where you want to get the media+-- content. If you don\'t specify the @streamName@, you must specify the+-- @streamARN@.+getMedia_streamName :: Lens.Lens' GetMedia (Prelude.Maybe Prelude.Text)+getMedia_streamName = Lens.lens (\GetMedia' {streamName} -> streamName) (\s@GetMedia' {} a -> s {streamName = a} :: GetMedia)++-- | Identifies the starting chunk to get from the specified stream.+getMedia_startSelector :: Lens.Lens' GetMedia StartSelector+getMedia_startSelector = Lens.lens (\GetMedia' {startSelector} -> startSelector) (\s@GetMedia' {} a -> s {startSelector = a} :: GetMedia)++instance Core.AWSRequest GetMedia where+ type AWSResponse GetMedia = GetMediaResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveBody+ ( \s h x ->+ GetMediaResponse'+ Prelude.<$> (h Data..#? "Content-Type")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Prelude.pure x)+ )++instance Prelude.Hashable GetMedia where+ hashWithSalt _salt GetMedia' {..} =+ _salt+ `Prelude.hashWithSalt` streamARN+ `Prelude.hashWithSalt` streamName+ `Prelude.hashWithSalt` startSelector++instance Prelude.NFData GetMedia where+ rnf GetMedia' {..} =+ Prelude.rnf streamARN+ `Prelude.seq` Prelude.rnf streamName+ `Prelude.seq` Prelude.rnf startSelector++instance Data.ToHeaders GetMedia where+ toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON GetMedia where+ toJSON GetMedia' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("StreamARN" Data..=) Prelude.<$> streamARN,+ ("StreamName" Data..=) Prelude.<$> streamName,+ Prelude.Just+ ("StartSelector" Data..= startSelector)+ ]+ )++instance Data.ToPath GetMedia where+ toPath = Prelude.const "/getMedia"++instance Data.ToQuery GetMedia where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetMediaResponse' smart constructor.+data GetMediaResponse = GetMediaResponse'+ { -- | The content type of the requested media.+ contentType :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The payload Kinesis Video Streams returns is a sequence of chunks from+ -- the specified stream. For information about the chunks, see . The chunks+ -- that Kinesis Video Streams returns in the @GetMedia@ call also include+ -- the following additional Matroska (MKV) tags:+ --+ -- - AWS_KINESISVIDEO_CONTINUATION_TOKEN (UTF-8 string) - In the event+ -- your @GetMedia@ call terminates, you can use this continuation token+ -- in your next request to get the next chunk where the last request+ -- terminated.+ --+ -- - AWS_KINESISVIDEO_MILLIS_BEHIND_NOW (UTF-8 string) - Client+ -- applications can use this tag value to determine how far behind the+ -- chunk returned in the response is from the latest chunk on the+ -- stream.+ --+ -- - AWS_KINESISVIDEO_FRAGMENT_NUMBER - Fragment number returned in the+ -- chunk.+ --+ -- - AWS_KINESISVIDEO_SERVER_TIMESTAMP - Server timestamp of the+ -- fragment.+ --+ -- - AWS_KINESISVIDEO_PRODUCER_TIMESTAMP - Producer timestamp of the+ -- fragment.+ --+ -- The following tags will be present if an error occurs:+ --+ -- - AWS_KINESISVIDEO_ERROR_CODE - String description of an error that+ -- caused GetMedia to stop.+ --+ -- - AWS_KINESISVIDEO_ERROR_ID: Integer code of the error.+ --+ -- The error codes are as follows:+ --+ -- - 3002 - Error writing to the stream+ --+ -- - 4000 - Requested fragment is not found+ --+ -- - 4500 - Access denied for the stream\'s KMS key+ --+ -- - 4501 - Stream\'s KMS key is disabled+ --+ -- - 4502 - Validation error on the stream\'s KMS key+ --+ -- - 4503 - KMS key specified in the stream is unavailable+ --+ -- - 4504 - Invalid usage of the KMS key specified in the stream+ --+ -- - 4505 - Invalid state of the KMS key specified in the stream+ --+ -- - 4506 - Unable to find the KMS key specified in the stream+ --+ -- - 5000 - Internal error+ payload :: Data.ResponseBody+ }+ deriving (Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetMediaResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contentType', 'getMediaResponse_contentType' - The content type of the requested media.+--+-- 'httpStatus', 'getMediaResponse_httpStatus' - The response's http status code.+--+-- 'payload', 'getMediaResponse_payload' - The payload Kinesis Video Streams returns is a sequence of chunks from+-- the specified stream. For information about the chunks, see . The chunks+-- that Kinesis Video Streams returns in the @GetMedia@ call also include+-- the following additional Matroska (MKV) tags:+--+-- - AWS_KINESISVIDEO_CONTINUATION_TOKEN (UTF-8 string) - In the event+-- your @GetMedia@ call terminates, you can use this continuation token+-- in your next request to get the next chunk where the last request+-- terminated.+--+-- - AWS_KINESISVIDEO_MILLIS_BEHIND_NOW (UTF-8 string) - Client+-- applications can use this tag value to determine how far behind the+-- chunk returned in the response is from the latest chunk on the+-- stream.+--+-- - AWS_KINESISVIDEO_FRAGMENT_NUMBER - Fragment number returned in the+-- chunk.+--+-- - AWS_KINESISVIDEO_SERVER_TIMESTAMP - Server timestamp of the+-- fragment.+--+-- - AWS_KINESISVIDEO_PRODUCER_TIMESTAMP - Producer timestamp of the+-- fragment.+--+-- The following tags will be present if an error occurs:+--+-- - AWS_KINESISVIDEO_ERROR_CODE - String description of an error that+-- caused GetMedia to stop.+--+-- - AWS_KINESISVIDEO_ERROR_ID: Integer code of the error.+--+-- The error codes are as follows:+--+-- - 3002 - Error writing to the stream+--+-- - 4000 - Requested fragment is not found+--+-- - 4500 - Access denied for the stream\'s KMS key+--+-- - 4501 - Stream\'s KMS key is disabled+--+-- - 4502 - Validation error on the stream\'s KMS key+--+-- - 4503 - KMS key specified in the stream is unavailable+--+-- - 4504 - Invalid usage of the KMS key specified in the stream+--+-- - 4505 - Invalid state of the KMS key specified in the stream+--+-- - 4506 - Unable to find the KMS key specified in the stream+--+-- - 5000 - Internal error+newGetMediaResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'payload'+ Data.ResponseBody ->+ GetMediaResponse+newGetMediaResponse pHttpStatus_ pPayload_ =+ GetMediaResponse'+ { contentType = Prelude.Nothing,+ httpStatus = pHttpStatus_,+ payload = pPayload_+ }++-- | The content type of the requested media.+getMediaResponse_contentType :: Lens.Lens' GetMediaResponse (Prelude.Maybe Prelude.Text)+getMediaResponse_contentType = Lens.lens (\GetMediaResponse' {contentType} -> contentType) (\s@GetMediaResponse' {} a -> s {contentType = a} :: GetMediaResponse)++-- | The response's http status code.+getMediaResponse_httpStatus :: Lens.Lens' GetMediaResponse Prelude.Int+getMediaResponse_httpStatus = Lens.lens (\GetMediaResponse' {httpStatus} -> httpStatus) (\s@GetMediaResponse' {} a -> s {httpStatus = a} :: GetMediaResponse)++-- | The payload Kinesis Video Streams returns is a sequence of chunks from+-- the specified stream. For information about the chunks, see . The chunks+-- that Kinesis Video Streams returns in the @GetMedia@ call also include+-- the following additional Matroska (MKV) tags:+--+-- - AWS_KINESISVIDEO_CONTINUATION_TOKEN (UTF-8 string) - In the event+-- your @GetMedia@ call terminates, you can use this continuation token+-- in your next request to get the next chunk where the last request+-- terminated.+--+-- - AWS_KINESISVIDEO_MILLIS_BEHIND_NOW (UTF-8 string) - Client+-- applications can use this tag value to determine how far behind the+-- chunk returned in the response is from the latest chunk on the+-- stream.+--+-- - AWS_KINESISVIDEO_FRAGMENT_NUMBER - Fragment number returned in the+-- chunk.+--+-- - AWS_KINESISVIDEO_SERVER_TIMESTAMP - Server timestamp of the+-- fragment.+--+-- - AWS_KINESISVIDEO_PRODUCER_TIMESTAMP - Producer timestamp of the+-- fragment.+--+-- The following tags will be present if an error occurs:+--+-- - AWS_KINESISVIDEO_ERROR_CODE - String description of an error that+-- caused GetMedia to stop.+--+-- - AWS_KINESISVIDEO_ERROR_ID: Integer code of the error.+--+-- The error codes are as follows:+--+-- - 3002 - Error writing to the stream+--+-- - 4000 - Requested fragment is not found+--+-- - 4500 - Access denied for the stream\'s KMS key+--+-- - 4501 - Stream\'s KMS key is disabled+--+-- - 4502 - Validation error on the stream\'s KMS key+--+-- - 4503 - KMS key specified in the stream is unavailable+--+-- - 4504 - Invalid usage of the KMS key specified in the stream+--+-- - 4505 - Invalid state of the KMS key specified in the stream+--+-- - 4506 - Unable to find the KMS key specified in the stream+--+-- - 5000 - Internal error+getMediaResponse_payload :: Lens.Lens' GetMediaResponse Data.ResponseBody+getMediaResponse_payload = Lens.lens (\GetMediaResponse' {payload} -> payload) (\s@GetMediaResponse' {} a -> s {payload = a} :: GetMediaResponse)
+ gen/Amazonka/KinesisVideoMedia/Lens.hs view
@@ -0,0 +1,36 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.KinesisVideoMedia.Lens+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.KinesisVideoMedia.Lens+ ( -- * Operations++ -- ** GetMedia+ getMedia_streamARN,+ getMedia_streamName,+ getMedia_startSelector,+ getMediaResponse_contentType,+ getMediaResponse_httpStatus,+ getMediaResponse_payload,++ -- * Types++ -- ** StartSelector+ startSelector_afterFragmentNumber,+ startSelector_continuationToken,+ startSelector_startTimestamp,+ startSelector_startSelectorType,+ )+where++import Amazonka.KinesisVideoMedia.GetMedia+import Amazonka.KinesisVideoMedia.Types.StartSelector
+ gen/Amazonka/KinesisVideoMedia/Types.hs view
@@ -0,0 +1,170 @@+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.KinesisVideoMedia.Types+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.KinesisVideoMedia.Types+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ _ClientLimitExceededException,+ _ConnectionLimitExceededException,+ _InvalidArgumentException,+ _InvalidEndpointException,+ _NotAuthorizedException,+ _ResourceNotFoundException,++ -- * StartSelectorType+ StartSelectorType (..),++ -- * StartSelector+ StartSelector (..),+ newStartSelector,+ startSelector_afterFragmentNumber,+ startSelector_continuationToken,+ startSelector_startTimestamp,+ startSelector_startSelectorType,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.KinesisVideoMedia.Types.StartSelector+import Amazonka.KinesisVideoMedia.Types.StartSelectorType+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2017-09-30@ of the Amazon Kinesis Video Streams Media SDK configuration.+defaultService :: Core.Service+defaultService =+ Core.Service+ { Core.abbrev = "KinesisVideoMedia",+ Core.signer = Sign.v4,+ Core.endpointPrefix = "kinesisvideo",+ Core.signingName = "kinesisvideo",+ Core.version = "2017-09-30",+ Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+ Core.endpoint = Core.defaultEndpoint defaultService,+ Core.timeout = Prelude.Just 70,+ Core.check = Core.statusSuccess,+ Core.error = Core.parseJSONError "KinesisVideoMedia",+ Core.retry = retry+ }+ where+ retry =+ Core.Exponential+ { Core.base = 5.0e-2,+ Core.growth = 2,+ Core.attempts = 5,+ Core.check = check+ }+ check e+ | Lens.has (Core.hasStatus 502) e =+ Prelude.Just "bad_gateway"+ | Lens.has (Core.hasStatus 504) e =+ Prelude.Just "gateway_timeout"+ | Lens.has (Core.hasStatus 500) e =+ Prelude.Just "general_server_error"+ | Lens.has (Core.hasStatus 509) e =+ Prelude.Just "limit_exceeded"+ | Lens.has+ ( Core.hasCode "RequestThrottledException"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "request_throttled_exception"+ | Lens.has (Core.hasStatus 503) e =+ Prelude.Just "service_unavailable"+ | Lens.has+ ( Core.hasCode "ThrottledException"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "throttled_exception"+ | Lens.has+ ( Core.hasCode "Throttling"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "throttling"+ | Lens.has+ ( Core.hasCode "ThrottlingException"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "throttling_exception"+ | Lens.has+ ( Core.hasCode+ "ProvisionedThroughputExceededException"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "throughput_exceeded"+ | Lens.has (Core.hasStatus 429) e =+ Prelude.Just "too_many_requests"+ | Prelude.otherwise = Prelude.Nothing++-- | Kinesis Video Streams has throttled the request because you have+-- exceeded the limit of allowed client calls. Try making the call later.+_ClientLimitExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ClientLimitExceededException =+ Core._MatchServiceError+ defaultService+ "ClientLimitExceededException"+ Prelude.. Core.hasStatus 400++-- | Kinesis Video Streams has throttled the request because you have+-- exceeded the limit of allowed client connections.+_ConnectionLimitExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConnectionLimitExceededException =+ Core._MatchServiceError+ defaultService+ "ConnectionLimitExceededException"+ Prelude.. Core.hasStatus 400++-- | The value for this input parameter is invalid.+_InvalidArgumentException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidArgumentException =+ Core._MatchServiceError+ defaultService+ "InvalidArgumentException"+ Prelude.. Core.hasStatus 400++-- | Status Code: 400, Caller used wrong endpoint to write data to a stream.+-- On receiving such an exception, the user must call @GetDataEndpoint@+-- with @AccessMode@ set to \"READ\" and use the endpoint Kinesis Video+-- returns in the next @GetMedia@ call.+_InvalidEndpointException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidEndpointException =+ Core._MatchServiceError+ defaultService+ "InvalidEndpointException"+ Prelude.. Core.hasStatus 400++-- | Status Code: 403, The caller is not authorized to perform an operation+-- on the given stream, or the token has expired.+_NotAuthorizedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_NotAuthorizedException =+ Core._MatchServiceError+ defaultService+ "NotAuthorizedException"+ Prelude.. Core.hasStatus 401++-- | Status Code: 404, The stream with the given name does not exist.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+ Core._MatchServiceError+ defaultService+ "ResourceNotFoundException"+ Prelude.. Core.hasStatus 404
+ gen/Amazonka/KinesisVideoMedia/Types/StartSelector.hs view
@@ -0,0 +1,200 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.KinesisVideoMedia.Types.StartSelector+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.KinesisVideoMedia.Types.StartSelector where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.KinesisVideoMedia.Types.StartSelectorType+import qualified Amazonka.Prelude as Prelude++-- | Identifies the chunk on the Kinesis video stream where you want the+-- @GetMedia@ API to start returning media data. You have the following+-- options to identify the starting chunk:+--+-- - Choose the latest (or oldest) chunk.+--+-- - Identify a specific chunk. You can identify a specific chunk either+-- by providing a fragment number or timestamp (server or producer).+--+-- - Each chunk\'s metadata includes a continuation token as a Matroska+-- (MKV) tag (@AWS_KINESISVIDEO_CONTINUATION_TOKEN@). If your previous+-- @GetMedia@ request terminated, you can use this tag value in your+-- next @GetMedia@ request. The API then starts returning chunks+-- starting where the last API ended.+--+-- /See:/ 'newStartSelector' smart constructor.+data StartSelector = StartSelector'+ { -- | Specifies the fragment number from where you want the @GetMedia@ API to+ -- start returning the fragments.+ afterFragmentNumber :: Prelude.Maybe Prelude.Text,+ -- | Continuation token that Kinesis Video Streams returned in the previous+ -- @GetMedia@ response. The @GetMedia@ API then starts with the chunk+ -- identified by the continuation token.+ continuationToken :: Prelude.Maybe Prelude.Text,+ -- | A timestamp value. This value is required if you choose the+ -- PRODUCER_TIMESTAMP or the SERVER_TIMESTAMP as the @startSelectorType@.+ -- The @GetMedia@ API then starts with the chunk containing the fragment+ -- that has the specified timestamp.+ startTimestamp :: Prelude.Maybe Data.POSIX,+ -- | Identifies the fragment on the Kinesis video stream where you want to+ -- start getting the data from.+ --+ -- - NOW - Start with the latest chunk on the stream.+ --+ -- - EARLIEST - Start with earliest available chunk on the stream.+ --+ -- - FRAGMENT_NUMBER - Start with the chunk after a specific fragment.+ -- You must also specify the @AfterFragmentNumber@ parameter.+ --+ -- - PRODUCER_TIMESTAMP or SERVER_TIMESTAMP - Start with the chunk+ -- containing a fragment with the specified producer or server+ -- timestamp. You specify the timestamp by adding @StartTimestamp@.+ --+ -- - CONTINUATION_TOKEN - Read using the specified continuation token.+ --+ -- If you choose the NOW, EARLIEST, or CONTINUATION_TOKEN as the+ -- @startSelectorType@, you don\'t provide any additional information in+ -- the @startSelector@.+ startSelectorType :: StartSelectorType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartSelector' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'afterFragmentNumber', 'startSelector_afterFragmentNumber' - Specifies the fragment number from where you want the @GetMedia@ API to+-- start returning the fragments.+--+-- 'continuationToken', 'startSelector_continuationToken' - Continuation token that Kinesis Video Streams returned in the previous+-- @GetMedia@ response. The @GetMedia@ API then starts with the chunk+-- identified by the continuation token.+--+-- 'startTimestamp', 'startSelector_startTimestamp' - A timestamp value. This value is required if you choose the+-- PRODUCER_TIMESTAMP or the SERVER_TIMESTAMP as the @startSelectorType@.+-- The @GetMedia@ API then starts with the chunk containing the fragment+-- that has the specified timestamp.+--+-- 'startSelectorType', 'startSelector_startSelectorType' - Identifies the fragment on the Kinesis video stream where you want to+-- start getting the data from.+--+-- - NOW - Start with the latest chunk on the stream.+--+-- - EARLIEST - Start with earliest available chunk on the stream.+--+-- - FRAGMENT_NUMBER - Start with the chunk after a specific fragment.+-- You must also specify the @AfterFragmentNumber@ parameter.+--+-- - PRODUCER_TIMESTAMP or SERVER_TIMESTAMP - Start with the chunk+-- containing a fragment with the specified producer or server+-- timestamp. You specify the timestamp by adding @StartTimestamp@.+--+-- - CONTINUATION_TOKEN - Read using the specified continuation token.+--+-- If you choose the NOW, EARLIEST, or CONTINUATION_TOKEN as the+-- @startSelectorType@, you don\'t provide any additional information in+-- the @startSelector@.+newStartSelector ::+ -- | 'startSelectorType'+ StartSelectorType ->+ StartSelector+newStartSelector pStartSelectorType_ =+ StartSelector'+ { afterFragmentNumber =+ Prelude.Nothing,+ continuationToken = Prelude.Nothing,+ startTimestamp = Prelude.Nothing,+ startSelectorType = pStartSelectorType_+ }++-- | Specifies the fragment number from where you want the @GetMedia@ API to+-- start returning the fragments.+startSelector_afterFragmentNumber :: Lens.Lens' StartSelector (Prelude.Maybe Prelude.Text)+startSelector_afterFragmentNumber = Lens.lens (\StartSelector' {afterFragmentNumber} -> afterFragmentNumber) (\s@StartSelector' {} a -> s {afterFragmentNumber = a} :: StartSelector)++-- | Continuation token that Kinesis Video Streams returned in the previous+-- @GetMedia@ response. The @GetMedia@ API then starts with the chunk+-- identified by the continuation token.+startSelector_continuationToken :: Lens.Lens' StartSelector (Prelude.Maybe Prelude.Text)+startSelector_continuationToken = Lens.lens (\StartSelector' {continuationToken} -> continuationToken) (\s@StartSelector' {} a -> s {continuationToken = a} :: StartSelector)++-- | A timestamp value. This value is required if you choose the+-- PRODUCER_TIMESTAMP or the SERVER_TIMESTAMP as the @startSelectorType@.+-- The @GetMedia@ API then starts with the chunk containing the fragment+-- that has the specified timestamp.+startSelector_startTimestamp :: Lens.Lens' StartSelector (Prelude.Maybe Prelude.UTCTime)+startSelector_startTimestamp = Lens.lens (\StartSelector' {startTimestamp} -> startTimestamp) (\s@StartSelector' {} a -> s {startTimestamp = a} :: StartSelector) Prelude.. Lens.mapping Data._Time++-- | Identifies the fragment on the Kinesis video stream where you want to+-- start getting the data from.+--+-- - NOW - Start with the latest chunk on the stream.+--+-- - EARLIEST - Start with earliest available chunk on the stream.+--+-- - FRAGMENT_NUMBER - Start with the chunk after a specific fragment.+-- You must also specify the @AfterFragmentNumber@ parameter.+--+-- - PRODUCER_TIMESTAMP or SERVER_TIMESTAMP - Start with the chunk+-- containing a fragment with the specified producer or server+-- timestamp. You specify the timestamp by adding @StartTimestamp@.+--+-- - CONTINUATION_TOKEN - Read using the specified continuation token.+--+-- If you choose the NOW, EARLIEST, or CONTINUATION_TOKEN as the+-- @startSelectorType@, you don\'t provide any additional information in+-- the @startSelector@.+startSelector_startSelectorType :: Lens.Lens' StartSelector StartSelectorType+startSelector_startSelectorType = Lens.lens (\StartSelector' {startSelectorType} -> startSelectorType) (\s@StartSelector' {} a -> s {startSelectorType = a} :: StartSelector)++instance Prelude.Hashable StartSelector where+ hashWithSalt _salt StartSelector' {..} =+ _salt+ `Prelude.hashWithSalt` afterFragmentNumber+ `Prelude.hashWithSalt` continuationToken+ `Prelude.hashWithSalt` startTimestamp+ `Prelude.hashWithSalt` startSelectorType++instance Prelude.NFData StartSelector where+ rnf StartSelector' {..} =+ Prelude.rnf afterFragmentNumber+ `Prelude.seq` Prelude.rnf continuationToken+ `Prelude.seq` Prelude.rnf startTimestamp+ `Prelude.seq` Prelude.rnf startSelectorType++instance Data.ToJSON StartSelector where+ toJSON StartSelector' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("AfterFragmentNumber" Data..=)+ Prelude.<$> afterFragmentNumber,+ ("ContinuationToken" Data..=)+ Prelude.<$> continuationToken,+ ("StartTimestamp" Data..=)+ Prelude.<$> startTimestamp,+ Prelude.Just+ ("StartSelectorType" Data..= startSelectorType)+ ]+ )
+ gen/Amazonka/KinesisVideoMedia/Types/StartSelectorType.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.KinesisVideoMedia.Types.StartSelectorType+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.KinesisVideoMedia.Types.StartSelectorType+ ( StartSelectorType+ ( ..,+ StartSelectorType_CONTINUATION_TOKEN,+ StartSelectorType_EARLIEST,+ StartSelectorType_FRAGMENT_NUMBER,+ StartSelectorType_NOW,+ StartSelectorType_PRODUCER_TIMESTAMP,+ StartSelectorType_SERVER_TIMESTAMP+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype StartSelectorType = StartSelectorType'+ { fromStartSelectorType ::+ Data.Text+ }+ deriving stock+ ( Prelude.Show,+ Prelude.Read,+ Prelude.Eq,+ Prelude.Ord,+ Prelude.Generic+ )+ deriving newtype+ ( Prelude.Hashable,+ Prelude.NFData,+ Data.FromText,+ Data.ToText,+ Data.ToByteString,+ Data.ToLog,+ Data.ToHeader,+ Data.ToQuery,+ Data.FromJSON,+ Data.FromJSONKey,+ Data.ToJSON,+ Data.ToJSONKey,+ Data.FromXML,+ Data.ToXML+ )++pattern StartSelectorType_CONTINUATION_TOKEN :: StartSelectorType+pattern StartSelectorType_CONTINUATION_TOKEN = StartSelectorType' "CONTINUATION_TOKEN"++pattern StartSelectorType_EARLIEST :: StartSelectorType+pattern StartSelectorType_EARLIEST = StartSelectorType' "EARLIEST"++pattern StartSelectorType_FRAGMENT_NUMBER :: StartSelectorType+pattern StartSelectorType_FRAGMENT_NUMBER = StartSelectorType' "FRAGMENT_NUMBER"++pattern StartSelectorType_NOW :: StartSelectorType+pattern StartSelectorType_NOW = StartSelectorType' "NOW"++pattern StartSelectorType_PRODUCER_TIMESTAMP :: StartSelectorType+pattern StartSelectorType_PRODUCER_TIMESTAMP = StartSelectorType' "PRODUCER_TIMESTAMP"++pattern StartSelectorType_SERVER_TIMESTAMP :: StartSelectorType+pattern StartSelectorType_SERVER_TIMESTAMP = StartSelectorType' "SERVER_TIMESTAMP"++{-# COMPLETE+ StartSelectorType_CONTINUATION_TOKEN,+ StartSelectorType_EARLIEST,+ StartSelectorType_FRAGMENT_NUMBER,+ StartSelectorType_NOW,+ StartSelectorType_PRODUCER_TIMESTAMP,+ StartSelectorType_SERVER_TIMESTAMP,+ StartSelectorType'+ #-}
+ gen/Amazonka/KinesisVideoMedia/Waiters.hs view
@@ -0,0 +1,24 @@+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.KinesisVideoMedia.Waiters+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.KinesisVideoMedia.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.KinesisVideoMedia.Lens+import Amazonka.KinesisVideoMedia.Types+import qualified Amazonka.Prelude as Prelude
− gen/Network/AWS/KinesisVideoMedia.hs
@@ -1,98 +0,0 @@-{-# OPTIONS_GHC -fno-warn-unused-imports #-}-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}---- Derived from AWS service descriptions, licensed under Apache 2.0.---- |--- Module : Network.AWS.KinesisVideoMedia--- Copyright : (c) 2013-2018 Brendan Hay--- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>--- Stability : auto-generated--- Portability : non-portable (GHC extensions)-------------module Network.AWS.KinesisVideoMedia- (- -- * Service Configuration- kinesisVideoMedia-- -- * Errors- -- $errors-- -- ** ConnectionLimitExceededException- , _ConnectionLimitExceededException-- -- ** InvalidArgumentException- , _InvalidArgumentException-- -- ** NotAuthorizedException- , _NotAuthorizedException-- -- ** ClientLimitExceededException- , _ClientLimitExceededException-- -- ** InvalidEndpointException- , _InvalidEndpointException-- -- ** ResourceNotFoundException- , _ResourceNotFoundException-- -- * Waiters- -- $waiters-- -- * Operations- -- $operations-- -- ** GetMedia- , module Network.AWS.KinesisVideoMedia.GetMedia-- -- * Types-- -- ** StartSelectorType- , StartSelectorType (..)-- -- ** StartSelector- , StartSelector- , startSelector- , ssContinuationToken- , ssAfterFragmentNumber- , ssStartTimestamp- , ssStartSelectorType- ) where--import Network.AWS.KinesisVideoMedia.GetMedia-import Network.AWS.KinesisVideoMedia.Types-import Network.AWS.KinesisVideoMedia.Waiters--{- $errors-Error matchers are designed for use with the functions provided by-<http://hackage.haskell.org/package/lens/docs/Control-Exception-Lens.html Control.Exception.Lens>.-This allows catching (and rethrowing) service specific errors returned-by 'KinesisVideoMedia'.--}--{- $operations-Some AWS operations return results that are incomplete and require subsequent-requests in order to obtain the entire result set. The process of sending-subsequent requests to continue where a previous request left off is called-pagination. For example, the 'ListObjects' operation of Amazon S3 returns up to-1000 objects at a time, and you must send subsequent requests with the-appropriate Marker in order to retrieve the next page of results.--Operations that have an 'AWSPager' instance can transparently perform subsequent-requests, correctly setting Markers and other request facets to iterate through-the entire result set of a truncated API operation. Operations which support-this have an additional note in the documentation.--Many operations have the ability to filter results on the server side. See the-individual operation parameters for details.--}--{- $waiters-Waiters poll by repeatedly sending a request until some remote success condition-configured by the 'Wait' specification is fulfilled. The 'Wait' specification-determines how many attempts should be made, in addition to delay and retry strategies.--}
− gen/Network/AWS/KinesisVideoMedia/GetMedia.hs
@@ -1,170 +0,0 @@-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TypeFamilies #-}--{-# OPTIONS_GHC -fno-warn-unused-imports #-}-{-# OPTIONS_GHC -fno-warn-unused-binds #-}-{-# OPTIONS_GHC -fno-warn-unused-matches #-}---- Derived from AWS service descriptions, licensed under Apache 2.0.---- |--- Module : Network.AWS.KinesisVideoMedia.GetMedia--- Copyright : (c) 2013-2018 Brendan Hay--- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>--- Stability : auto-generated--- Portability : non-portable (GHC extensions)------ Use this API to retrieve media content from a Kinesis video stream. In the request, you identify stream name or stream Amazon Resource Name (ARN), and the starting chunk. Kinesis Video Streams then returns a stream of chunks in order by fragment number.--------- When you put media data (fragments) on a stream, Kinesis Video Streams stores each incoming fragment and related metadata in what is called a "chunk." For more information, see . The @GetMedia@ API returns a stream of these chunks starting from the chunk that you specify in the request.------ The following limits apply when using the @GetMedia@ API:------ * A client can call @GetMedia@ up to five times per second per stream.------ * Kinesis Video Streams sends media data at a rate of up to 25 megabytes per second (or 200 megabits per second) during a @GetMedia@ session.----------module Network.AWS.KinesisVideoMedia.GetMedia- (- -- * Creating a Request- getMedia- , GetMedia- -- * Request Lenses- , gmStreamARN- , gmStreamName- , gmStartSelector-- -- * Destructuring the Response- , getMediaResponse- , GetMediaResponse- -- * Response Lenses- , gmrsContentType- , gmrsResponseStatus- , gmrsPayload- ) where--import Network.AWS.KinesisVideoMedia.Types-import Network.AWS.KinesisVideoMedia.Types.Product-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response---- | /See:/ 'getMedia' smart constructor.-data GetMedia = GetMedia'- { _gmStreamARN :: !(Maybe Text)- , _gmStreamName :: !(Maybe Text)- , _gmStartSelector :: !StartSelector- } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'GetMedia' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'gmStreamARN' - The ARN of the stream from where you want to get the media content. If you don't specify the @streamARN@ , you must specify the @streamName@ .------ * 'gmStreamName' - The Kinesis video stream name from where you want to get the media content. If you don't specify the @streamName@ , you must specify the @streamARN@ .------ * 'gmStartSelector' - Identifies the starting chunk to get from the specified stream.-getMedia- :: StartSelector -- ^ 'gmStartSelector'- -> GetMedia-getMedia pStartSelector_ =- GetMedia'- { _gmStreamARN = Nothing- , _gmStreamName = Nothing- , _gmStartSelector = pStartSelector_- }----- | The ARN of the stream from where you want to get the media content. If you don't specify the @streamARN@ , you must specify the @streamName@ .-gmStreamARN :: Lens' GetMedia (Maybe Text)-gmStreamARN = lens _gmStreamARN (\ s a -> s{_gmStreamARN = a})---- | The Kinesis video stream name from where you want to get the media content. If you don't specify the @streamName@ , you must specify the @streamARN@ .-gmStreamName :: Lens' GetMedia (Maybe Text)-gmStreamName = lens _gmStreamName (\ s a -> s{_gmStreamName = a})---- | Identifies the starting chunk to get from the specified stream.-gmStartSelector :: Lens' GetMedia StartSelector-gmStartSelector = lens _gmStartSelector (\ s a -> s{_gmStartSelector = a})--instance AWSRequest GetMedia where- type Rs GetMedia = GetMediaResponse- request = postJSON kinesisVideoMedia- response- = receiveBody- (\ s h x ->- GetMediaResponse' <$>- (h .#? "Content-Type") <*> (pure (fromEnum s)) <*>- (pure x))--instance Hashable GetMedia where--instance NFData GetMedia where--instance ToHeaders GetMedia where- toHeaders = const mempty--instance ToJSON GetMedia where- toJSON GetMedia'{..}- = object- (catMaybes- [("StreamARN" .=) <$> _gmStreamARN,- ("StreamName" .=) <$> _gmStreamName,- Just ("StartSelector" .= _gmStartSelector)])--instance ToPath GetMedia where- toPath = const "/getMedia"--instance ToQuery GetMedia where- toQuery = const mempty---- | /See:/ 'getMediaResponse' smart constructor.-data GetMediaResponse = GetMediaResponse'- { _gmrsContentType :: !(Maybe Text)- , _gmrsResponseStatus :: !Int- , _gmrsPayload :: !RsBody- } deriving (Show, Generic)----- | Creates a value of 'GetMediaResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'gmrsContentType' - The content type of the requested media.------ * 'gmrsResponseStatus' - -- | The response status code.------ * 'gmrsPayload' - The payload Kinesis Video Streams returns is a sequence of chunks from the specified stream. For information about the chunks, see . The chunks that Kinesis Video Streams returns in the @GetMedia@ call also include the following additional Matroska (MKV) tags: * AWS_KINESISVIDEO_CONTINUATION_TOKEN (UTF-8 string) - In the event your @GetMedia@ call terminates, you can use this continuation token in your next request to get the next chunk where the last request terminated. * AWS_KINESISVIDEO_MILLIS_BEHIND_NOW (UTF-8 string) - Client applications can use this tag value to determine how far behind the chunk returned in the response is from the latest chunk on the stream. * AWS_KINESISVIDEO_FRAGMENT_NUMBER - Fragment number returned in the chunk. * AWS_KINESISVIDEO_SERVER_TIMESTAMP - Server time stamp of the fragment. * AWS_KINESISVIDEO_PRODUCER_TIMESTAMP - Producer time stamp of the fragment. The following tags will be present if an error occurs: * AWS_KINESISVIDEO_ERROR_CODE - String description of an error that caused GetMedia to stop. * AWS_KINESISVIDEO_ERROR_ID: Integer code of the error. The error codes are as follows: * 3002 - Error writing to the stream * 4000 - Requested fragment is not found * 4500 - Access denied for the stream's KMS key * 4501 - Stream's KMS key is disabled * 4502 - Validation error on the Stream's KMS key * 4503 - KMS key specified in the stream is unavailable * 4504 - Invalid usage of the KMS key specified in the stream * 4505 - Invalid state of the KMS key specified in the stream * 4506 - Unable to find the KMS key specified in the stream * 5000 - Internal error-getMediaResponse- :: Int -- ^ 'gmrsResponseStatus'- -> RsBody -- ^ 'gmrsPayload'- -> GetMediaResponse-getMediaResponse pResponseStatus_ pPayload_ =- GetMediaResponse'- { _gmrsContentType = Nothing- , _gmrsResponseStatus = pResponseStatus_- , _gmrsPayload = pPayload_- }----- | The content type of the requested media.-gmrsContentType :: Lens' GetMediaResponse (Maybe Text)-gmrsContentType = lens _gmrsContentType (\ s a -> s{_gmrsContentType = a})---- | -- | The response status code.-gmrsResponseStatus :: Lens' GetMediaResponse Int-gmrsResponseStatus = lens _gmrsResponseStatus (\ s a -> s{_gmrsResponseStatus = a})---- | The payload Kinesis Video Streams returns is a sequence of chunks from the specified stream. For information about the chunks, see . The chunks that Kinesis Video Streams returns in the @GetMedia@ call also include the following additional Matroska (MKV) tags: * AWS_KINESISVIDEO_CONTINUATION_TOKEN (UTF-8 string) - In the event your @GetMedia@ call terminates, you can use this continuation token in your next request to get the next chunk where the last request terminated. * AWS_KINESISVIDEO_MILLIS_BEHIND_NOW (UTF-8 string) - Client applications can use this tag value to determine how far behind the chunk returned in the response is from the latest chunk on the stream. * AWS_KINESISVIDEO_FRAGMENT_NUMBER - Fragment number returned in the chunk. * AWS_KINESISVIDEO_SERVER_TIMESTAMP - Server time stamp of the fragment. * AWS_KINESISVIDEO_PRODUCER_TIMESTAMP - Producer time stamp of the fragment. The following tags will be present if an error occurs: * AWS_KINESISVIDEO_ERROR_CODE - String description of an error that caused GetMedia to stop. * AWS_KINESISVIDEO_ERROR_ID: Integer code of the error. The error codes are as follows: * 3002 - Error writing to the stream * 4000 - Requested fragment is not found * 4500 - Access denied for the stream's KMS key * 4501 - Stream's KMS key is disabled * 4502 - Validation error on the Stream's KMS key * 4503 - KMS key specified in the stream is unavailable * 4504 - Invalid usage of the KMS key specified in the stream * 4505 - Invalid state of the KMS key specified in the stream * 4506 - Unable to find the KMS key specified in the stream * 5000 - Internal error-gmrsPayload :: Lens' GetMediaResponse RsBody-gmrsPayload = lens _gmrsPayload (\ s a -> s{_gmrsPayload = a})
− gen/Network/AWS/KinesisVideoMedia/Types.hs
@@ -1,134 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}---- Derived from AWS service descriptions, licensed under Apache 2.0.---- |--- Module : Network.AWS.KinesisVideoMedia.Types--- Copyright : (c) 2013-2018 Brendan Hay--- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>--- Stability : auto-generated--- Portability : non-portable (GHC extensions)----module Network.AWS.KinesisVideoMedia.Types- (- -- * Service Configuration- kinesisVideoMedia-- -- * Errors- , _ConnectionLimitExceededException- , _InvalidArgumentException- , _NotAuthorizedException- , _ClientLimitExceededException- , _InvalidEndpointException- , _ResourceNotFoundException-- -- * StartSelectorType- , StartSelectorType (..)-- -- * StartSelector- , StartSelector- , startSelector- , ssContinuationToken- , ssAfterFragmentNumber- , ssStartTimestamp- , ssStartSelectorType- ) where--import Network.AWS.KinesisVideoMedia.Types.Product-import Network.AWS.KinesisVideoMedia.Types.Sum-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Sign.V4---- | API version @2017-09-30@ of the Amazon Kinesis Video Streams Media SDK configuration.-kinesisVideoMedia :: Service-kinesisVideoMedia =- Service- { _svcAbbrev = "KinesisVideoMedia"- , _svcSigner = v4- , _svcPrefix = "kinesisvideo"- , _svcVersion = "2017-09-30"- , _svcEndpoint = defaultEndpoint kinesisVideoMedia- , _svcTimeout = Just 70- , _svcCheck = statusSuccess- , _svcError = parseJSONError "KinesisVideoMedia"- , _svcRetry = retry- }- where- retry =- Exponential- { _retryBase = 5.0e-2- , _retryGrowth = 2- , _retryAttempts = 5- , _retryCheck = check- }- check e- | has (hasCode "ThrottledException" . hasStatus 400) e =- Just "throttled_exception"- | has (hasStatus 429) e = Just "too_many_requests"- | has (hasCode "ThrottlingException" . hasStatus 400) e =- Just "throttling_exception"- | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"- | has (hasStatus 504) e = Just "gateway_timeout"- | has (hasCode "RequestThrottledException" . hasStatus 400) e =- Just "request_throttled_exception"- | has (hasStatus 502) e = Just "bad_gateway"- | has (hasStatus 503) e = Just "service_unavailable"- | has (hasStatus 500) e = Just "general_server_error"- | has (hasStatus 509) e = Just "limit_exceeded"- | otherwise = Nothing----- | Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client connections.-------_ConnectionLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError-_ConnectionLimitExceededException =- _MatchServiceError kinesisVideoMedia "ConnectionLimitExceededException" .- hasStatus 400----- | The value for this input parameter is invalid.-------_InvalidArgumentException :: AsError a => Getting (First ServiceError) a ServiceError-_InvalidArgumentException =- _MatchServiceError kinesisVideoMedia "InvalidArgumentException" .- hasStatus 400----- | Status Code: 403, The caller is not authorized to perform an operation on the given stream, or the token has expired.-------_NotAuthorizedException :: AsError a => Getting (First ServiceError) a ServiceError-_NotAuthorizedException =- _MatchServiceError kinesisVideoMedia "NotAuthorizedException" . hasStatus 401----- | Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client calls. Try making the call later.-------_ClientLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError-_ClientLimitExceededException =- _MatchServiceError kinesisVideoMedia "ClientLimitExceededException" .- hasStatus 400----- | Status Code: 400, Caller used wrong endpoint to write data to a stream. On receiving such an exception, the user must call @GetDataEndpoint@ with @AccessMode@ set to "READ" and use the endpoint Kinesis Video returns in the next @GetMedia@ call.-------_InvalidEndpointException :: AsError a => Getting (First ServiceError) a ServiceError-_InvalidEndpointException =- _MatchServiceError kinesisVideoMedia "InvalidEndpointException" .- hasStatus 400----- | Status Code: 404, The stream with the given name does not exist.-------_ResourceNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError-_ResourceNotFoundException =- _MatchServiceError kinesisVideoMedia "ResourceNotFoundException" .- hasStatus 404-
− gen/Network/AWS/KinesisVideoMedia/Types/Product.hs
@@ -1,96 +0,0 @@-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}--{-# OPTIONS_GHC -fno-warn-unused-imports #-}---- Derived from AWS service descriptions, licensed under Apache 2.0.---- |--- Module : Network.AWS.KinesisVideoMedia.Types.Product--- Copyright : (c) 2013-2018 Brendan Hay--- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>--- Stability : auto-generated--- Portability : non-portable (GHC extensions)----module Network.AWS.KinesisVideoMedia.Types.Product where--import Network.AWS.KinesisVideoMedia.Types.Sum-import Network.AWS.Lens-import Network.AWS.Prelude---- | Identifies the chunk on the Kinesis video stream where you want the @GetMedia@ API to start returning media data. You have the following options to identify the starting chunk:--------- * Choose the latest (or oldest) chunk.------ * Identify a specific chunk. You can identify a specific chunk either by providing a fragment number or time stamp (server or producer).------ * Each chunk's metadata includes a continuation token as a Matroska (MKV) tag (@AWS_KINESISVIDEO_CONTINUATION_TOKEN@ ). If your previous @GetMedia@ request terminated, you can use this tag value in your next @GetMedia@ request. The API then starts returning chunks starting where the last API ended.--------------- /See:/ 'startSelector' smart constructor.-data StartSelector = StartSelector'- { _ssContinuationToken :: !(Maybe Text)- , _ssAfterFragmentNumber :: !(Maybe Text)- , _ssStartTimestamp :: !(Maybe POSIX)- , _ssStartSelectorType :: !StartSelectorType- } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'StartSelector' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ssContinuationToken' - Continuation token that Kinesis Video Streams returned in the previous @GetMedia@ response. The @GetMedia@ API then starts with the chunk identified by the continuation token.------ * 'ssAfterFragmentNumber' - Specifies the fragment number from where you want the @GetMedia@ API to start returning the fragments.------ * 'ssStartTimestamp' - A time stamp value. This value is required if you choose the PRODUCER_TIMESTAMP or the SERVER_TIMESTAMP as the @startSelectorType@ . The @GetMedia@ API then starts with the chunk containing the fragment that has the specified time stamp.------ * 'ssStartSelectorType' - Identifies the fragment on the Kinesis video stream where you want to start getting the data from. * NOW - Start with the latest chunk on the stream. * EARLIEST - Start with earliest available chunk on the stream. * FRAGMENT_NUMBER - Start with the chunk containing the specific fragment. You must also specify the @StartFragmentNumber@ . * PRODUCER_TIMESTAMP or SERVER_TIMESTAMP - Start with the chunk containing a fragment with the specified producer or server time stamp. You specify the time stamp by adding @StartTimestamp@ . * CONTINUATION_TOKEN - Read using the specified continuation token.-startSelector- :: StartSelectorType -- ^ 'ssStartSelectorType'- -> StartSelector-startSelector pStartSelectorType_ =- StartSelector'- { _ssContinuationToken = Nothing- , _ssAfterFragmentNumber = Nothing- , _ssStartTimestamp = Nothing- , _ssStartSelectorType = pStartSelectorType_- }----- | Continuation token that Kinesis Video Streams returned in the previous @GetMedia@ response. The @GetMedia@ API then starts with the chunk identified by the continuation token.-ssContinuationToken :: Lens' StartSelector (Maybe Text)-ssContinuationToken = lens _ssContinuationToken (\ s a -> s{_ssContinuationToken = a})---- | Specifies the fragment number from where you want the @GetMedia@ API to start returning the fragments.-ssAfterFragmentNumber :: Lens' StartSelector (Maybe Text)-ssAfterFragmentNumber = lens _ssAfterFragmentNumber (\ s a -> s{_ssAfterFragmentNumber = a})---- | A time stamp value. This value is required if you choose the PRODUCER_TIMESTAMP or the SERVER_TIMESTAMP as the @startSelectorType@ . The @GetMedia@ API then starts with the chunk containing the fragment that has the specified time stamp.-ssStartTimestamp :: Lens' StartSelector (Maybe UTCTime)-ssStartTimestamp = lens _ssStartTimestamp (\ s a -> s{_ssStartTimestamp = a}) . mapping _Time---- | Identifies the fragment on the Kinesis video stream where you want to start getting the data from. * NOW - Start with the latest chunk on the stream. * EARLIEST - Start with earliest available chunk on the stream. * FRAGMENT_NUMBER - Start with the chunk containing the specific fragment. You must also specify the @StartFragmentNumber@ . * PRODUCER_TIMESTAMP or SERVER_TIMESTAMP - Start with the chunk containing a fragment with the specified producer or server time stamp. You specify the time stamp by adding @StartTimestamp@ . * CONTINUATION_TOKEN - Read using the specified continuation token.-ssStartSelectorType :: Lens' StartSelector StartSelectorType-ssStartSelectorType = lens _ssStartSelectorType (\ s a -> s{_ssStartSelectorType = a})--instance Hashable StartSelector where--instance NFData StartSelector where--instance ToJSON StartSelector where- toJSON StartSelector'{..}- = object- (catMaybes- [("ContinuationToken" .=) <$> _ssContinuationToken,- ("AfterFragmentNumber" .=) <$>- _ssAfterFragmentNumber,- ("StartTimestamp" .=) <$> _ssStartTimestamp,- Just ("StartSelectorType" .= _ssStartSelectorType)])
− gen/Network/AWS/KinesisVideoMedia/Types/Sum.hs
@@ -1,59 +0,0 @@-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE LambdaCase #-}-{-# LANGUAGE OverloadedStrings #-}--{-# OPTIONS_GHC -fno-warn-unused-imports #-}---- Derived from AWS service descriptions, licensed under Apache 2.0.---- |--- Module : Network.AWS.KinesisVideoMedia.Types.Sum--- Copyright : (c) 2013-2018 Brendan Hay--- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>--- Stability : auto-generated--- Portability : non-portable (GHC extensions)----module Network.AWS.KinesisVideoMedia.Types.Sum where--import Network.AWS.Prelude--data StartSelectorType- = ContinuationToken- | Earliest- | FragmentNumber- | Now- | ProducerTimestamp- | ServerTimestamp- deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)---instance FromText StartSelectorType where- parser = takeLowerText >>= \case- "continuation_token" -> pure ContinuationToken- "earliest" -> pure Earliest- "fragment_number" -> pure FragmentNumber- "now" -> pure Now- "producer_timestamp" -> pure ProducerTimestamp- "server_timestamp" -> pure ServerTimestamp- e -> fromTextError $ "Failure parsing StartSelectorType from value: '" <> e- <> "'. Accepted values: continuation_token, earliest, fragment_number, now, producer_timestamp, server_timestamp"--instance ToText StartSelectorType where- toText = \case- ContinuationToken -> "CONTINUATION_TOKEN"- Earliest -> "EARLIEST"- FragmentNumber -> "FRAGMENT_NUMBER"- Now -> "NOW"- ProducerTimestamp -> "PRODUCER_TIMESTAMP"- ServerTimestamp -> "SERVER_TIMESTAMP"--instance Hashable StartSelectorType-instance NFData StartSelectorType-instance ToByteString StartSelectorType-instance ToQuery StartSelectorType-instance ToHeader StartSelectorType--instance ToJSON StartSelectorType where- toJSON = toJSONText
− gen/Network/AWS/KinesisVideoMedia/Waiters.hs
@@ -1,21 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE TypeFamilies #-}--{-# OPTIONS_GHC -fno-warn-unused-imports #-}---- Derived from AWS service descriptions, licensed under Apache 2.0.---- |--- Module : Network.AWS.KinesisVideoMedia.Waiters--- Copyright : (c) 2013-2018 Brendan Hay--- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>--- Stability : auto-generated--- Portability : non-portable (GHC extensions)----module Network.AWS.KinesisVideoMedia.Waiters where--import Network.AWS.KinesisVideoMedia.Types-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Waiter
test/Main.hs view
@@ -2,20 +2,22 @@ -- | -- Module : Main--- Copyright : (c) 2013-2018 Brendan Hay+-- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions)--- module Main (main) where +import Test.Amazonka.KinesisVideoMedia+import Test.Amazonka.KinesisVideoMedia.Internal import Test.Tasty-import Test.AWS.KinesisVideoMedia-import Test.AWS.KinesisVideoMedia.Internal main :: IO ()-main = defaultMain $ testGroup "KinesisVideoMedia"- [ testGroup "tests" tests- , testGroup "fixtures" fixtures- ]+main =+ defaultMain $+ testGroup+ "KinesisVideoMedia"+ [ testGroup "tests" tests,+ testGroup "fixtures" fixtures+ ]
− test/Test/AWS/Gen/KinesisVideoMedia.hs
@@ -1,50 +0,0 @@-{-# OPTIONS_GHC -fno-warn-unused-imports #-}-{-# OPTIONS_GHC -fno-warn-orphans #-}---- Derived from AWS service descriptions, licensed under Apache 2.0.---- |--- Module : Test.AWS.Gen.KinesisVideoMedia--- Copyright : (c) 2013-2018 Brendan Hay--- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>--- Stability : auto-generated--- Portability : non-portable (GHC extensions)----module Test.AWS.Gen.KinesisVideoMedia where--import Data.Proxy-import Network.AWS.KinesisVideoMedia-import Test.AWS.Fixture-import Test.AWS.KinesisVideoMedia.Internal-import Test.AWS.Prelude-import Test.Tasty---- Auto-generated: the actual test selection needs to be manually placed into--- the top-level so that real test data can be incrementally added.------ This commented snippet is what the entire set should look like:---- fixtures :: TestTree--- fixtures =--- [ testGroup "request"--- [ requestGetMedia $--- getMedia------ ]---- , testGroup "response"--- [ responseGetMedia $--- getMediaResponse------ ]--- ]---- Requests--requestGetMedia :: GetMedia -> TestTree-requestGetMedia = req- "GetMedia"- "fixture/GetMedia.yaml"---- Responses
− test/Test/AWS/KinesisVideoMedia.hs
@@ -1,20 +0,0 @@--- |--- Module : Test.AWS.KinesisVideoMedia--- Copyright : (c) 2013-2018 Brendan Hay--- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>--- Stability : auto-generated--- Portability : non-portable (GHC extensions)----module Test.AWS.KinesisVideoMedia- ( tests- , fixtures- ) where--import Test.Tasty (TestTree)--tests :: [TestTree]-tests = []--fixtures :: [TestTree]-fixtures = []
− test/Test/AWS/KinesisVideoMedia/Internal.hs
@@ -1,9 +0,0 @@--- |--- Module : Test.AWS.KinesisVideoMedia.Internal--- Copyright : (c) 2013-2018 Brendan Hay--- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>--- Stability : auto-generated--- Portability : non-portable (GHC extensions)----module Test.AWS.KinesisVideoMedia.Internal where
+ test/Test/Amazonka/Gen/KinesisVideoMedia.hs view
@@ -0,0 +1,50 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Test.Amazonka.Gen.KinesisVideoMedia+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Test.Amazonka.Gen.KinesisVideoMedia where++import Amazonka.KinesisVideoMedia+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.KinesisVideoMedia.Internal+import Test.Amazonka.Prelude+import Test.Tasty++-- Auto-generated: the actual test selection needs to be manually placed into+-- the top-level so that real test data can be incrementally added.+--+-- This commented snippet is what the entire set should look like:++-- fixtures :: TestTree+-- fixtures =+-- [ testGroup "request"+-- [ requestGetMedia $+-- newGetMedia+--+-- ]++-- , testGroup "response"+-- [ responseGetMedia $+-- newGetMediaResponse+--+-- ]+-- ]++-- Requests++requestGetMedia :: GetMedia -> TestTree+requestGetMedia =+ req+ "GetMedia"+ "fixture/GetMedia.yaml"++-- Responses
+ test/Test/Amazonka/KinesisVideoMedia.hs view
@@ -0,0 +1,20 @@+-- |+-- Module : Test.Amazonka.KinesisVideoMedia+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Test.Amazonka.KinesisVideoMedia+ ( tests,+ fixtures,+ )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/KinesisVideoMedia/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module : Test.Amazonka.KinesisVideoMedia.Internal+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Test.Amazonka.KinesisVideoMedia.Internal where