packages feed

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 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