amazonka-elastictranscoder 0.0.6 → 0.0.7
raw patch · 11 files changed
+409/−116 lines, 11 filesdep ~amazonka-corePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: amazonka-core
API changes (from Hackage documentation)
- Network.AWS.ElasticTranscoder.Types: instance Ord Artwork
- Network.AWS.ElasticTranscoder.Types: instance Ord CaptionFormat
- Network.AWS.ElasticTranscoder.Types: instance Ord CaptionSource
- Network.AWS.ElasticTranscoder.Types: instance Ord JobInput
- Network.AWS.ElasticTranscoder.Types: instance Ord JobWatermark
+ Network.AWS.ElasticTranscoder.CreatePipeline: cp1AwsKmsKeyArn :: Lens' CreatePipeline (Maybe Text)
+ Network.AWS.ElasticTranscoder.Types: aEncryption :: Lens' Artwork (Maybe Encryption)
+ Network.AWS.ElasticTranscoder.Types: cfEncryption :: Lens' CaptionFormat (Maybe Encryption)
+ Network.AWS.ElasticTranscoder.Types: cjoEncryption :: Lens' CreateJobOutput (Maybe Encryption)
+ Network.AWS.ElasticTranscoder.Types: cjoThumbnailEncryption :: Lens' CreateJobOutput (Maybe Encryption)
+ Network.AWS.ElasticTranscoder.Types: csEncryption :: Lens' CaptionSource (Maybe Encryption)
+ Network.AWS.ElasticTranscoder.Types: data Encryption
+ Network.AWS.ElasticTranscoder.Types: eInitializationVector :: Lens' Encryption (Maybe Text)
+ Network.AWS.ElasticTranscoder.Types: eKey :: Lens' Encryption (Maybe Text)
+ Network.AWS.ElasticTranscoder.Types: eKeyMd5 :: Lens' Encryption (Maybe Text)
+ Network.AWS.ElasticTranscoder.Types: eMode :: Lens' Encryption (Maybe Text)
+ Network.AWS.ElasticTranscoder.Types: encryption :: Encryption
+ Network.AWS.ElasticTranscoder.Types: instance Eq Encryption
+ Network.AWS.ElasticTranscoder.Types: instance FromJSON Encryption
+ Network.AWS.ElasticTranscoder.Types: instance Ord Encryption
+ Network.AWS.ElasticTranscoder.Types: instance Show Encryption
+ Network.AWS.ElasticTranscoder.Types: instance ToJSON Encryption
+ Network.AWS.ElasticTranscoder.Types: jiEncryption :: Lens' JobInput (Maybe Encryption)
+ Network.AWS.ElasticTranscoder.Types: joEncryption :: Lens' JobOutput (Maybe Encryption)
+ Network.AWS.ElasticTranscoder.Types: joThumbnailEncryption :: Lens' JobOutput (Maybe Encryption)
+ Network.AWS.ElasticTranscoder.Types: jwEncryption :: Lens' JobWatermark (Maybe Encryption)
+ Network.AWS.ElasticTranscoder.Types: pAwsKmsKeyArn :: Lens' Pipeline (Maybe Text)
+ Network.AWS.ElasticTranscoder.UpdatePipeline: upAwsKmsKeyArn :: Lens' UpdatePipeline (Maybe Text)
Files
- amazonka-elastictranscoder.cabal +2/−2
- gen/Network/AWS/ElasticTranscoder/CancelJob.hs +4/−0
- gen/Network/AWS/ElasticTranscoder/CreatePipeline.hs +17/−1
- gen/Network/AWS/ElasticTranscoder/DeletePreset.hs +5/−0
- gen/Network/AWS/ElasticTranscoder/ListJobsByPipeline.hs +1/−1
- gen/Network/AWS/ElasticTranscoder/ListJobsByStatus.hs +1/−1
- gen/Network/AWS/ElasticTranscoder/ListPipelines.hs +1/−1
- gen/Network/AWS/ElasticTranscoder/ListPresets.hs +1/−1
- gen/Network/AWS/ElasticTranscoder/TestRole.hs +1/−1
- gen/Network/AWS/ElasticTranscoder/Types.hs +359/−107
- gen/Network/AWS/ElasticTranscoder/UpdatePipeline.hs +17/−1
amazonka-elastictranscoder.cabal view
@@ -1,5 +1,5 @@ name: amazonka-elastictranscoder-version: 0.0.6+version: 0.0.7 synopsis: Amazon Elastic Transcoder SDK. homepage: https://github.com/brendanhay/amazonka license: OtherLicense@@ -59,5 +59,5 @@ other-modules: build-depends:- amazonka-core == 0.0.6.*+ amazonka-core == 0.0.7.* , base >= 4.7 && < 5
gen/Network/AWS/ElasticTranscoder/CancelJob.hs view
@@ -24,6 +24,10 @@ -- | The CancelJob operation cancels an unfinished job. --+-- You can only cancel a job that has a status of 'Submitted'. To prevent a+-- pipeline from starting to process a job while you're getting the job+-- identifier, use 'UpdatePipelineStatus' to temporarily pause the pipeline.+-- -- <http://docs.aws.amazon.com/elastictranscoder/latest/developerguide/CancelJob.html> module Network.AWS.ElasticTranscoder.CancelJob (
gen/Network/AWS/ElasticTranscoder/CreatePipeline.hs view
@@ -33,6 +33,7 @@ -- ** Request constructor , createPipeline -- ** Request lenses+ , cp1AwsKmsKeyArn , cp1ContentConfig , cp1InputBucket , cp1Name@@ -55,7 +56,8 @@ import qualified GHC.Exts data CreatePipeline = CreatePipeline- { _cp1ContentConfig :: Maybe PipelineOutputConfig+ { _cp1AwsKmsKeyArn :: Maybe Text+ , _cp1ContentConfig :: Maybe PipelineOutputConfig , _cp1InputBucket :: Text , _cp1Name :: Text , _cp1Notifications :: Maybe Notifications@@ -68,6 +70,8 @@ -- -- The fields accessible through corresponding lenses are: --+-- * 'cp1AwsKmsKeyArn' @::@ 'Maybe' 'Text'+-- -- * 'cp1ContentConfig' @::@ 'Maybe' 'PipelineOutputConfig' -- -- * 'cp1InputBucket' @::@ 'Text'@@ -91,11 +95,22 @@ , _cp1InputBucket = p2 , _cp1Role = p3 , _cp1OutputBucket = Nothing+ , _cp1AwsKmsKeyArn = Nothing , _cp1Notifications = Nothing , _cp1ContentConfig = Nothing , _cp1ThumbnailConfig = Nothing } +-- | The AWS Key Management Service (AWS KMS) key that you want to use with this+-- pipeline.+--+-- If you use either 'S3' or 'S3-AWS-KMS' as your 'Encryption:Mode', you don't need+-- to provide a key with your job because a default key, known as an AWS-KMS+-- key, is created for you automatically. You need to provide an AWS-KMS key+-- only if you want to use a non-default AWS-KMS key, or if you are using an 'Encryption:Mode' of 'AES-PKCS7', 'AES-CTR', or 'AES-GCM'.+cp1AwsKmsKeyArn :: Lens' CreatePipeline (Maybe Text)+cp1AwsKmsKeyArn = lens _cp1AwsKmsKeyArn (\s a -> s { _cp1AwsKmsKeyArn = a })+ -- | The optional 'ContentConfig' object specifies information about the Amazon S3 -- bucket in which you want Elastic Transcoder to save transcoded files and -- playlists: which bucket to use, which users you want to have access to the@@ -274,6 +289,7 @@ , "InputBucket" .= _cp1InputBucket , "OutputBucket" .= _cp1OutputBucket , "Role" .= _cp1Role+ , "AwsKmsKeyArn" .= _cp1AwsKmsKeyArn , "Notifications" .= _cp1Notifications , "ContentConfig" .= _cp1ContentConfig , "ThumbnailConfig" .= _cp1ThumbnailConfig
gen/Network/AWS/ElasticTranscoder/DeletePreset.hs view
@@ -25,6 +25,11 @@ -- | The DeletePreset operation removes a preset that you've added in an AWS -- region. --+-- You can't delete the default presets that are included with Elastic+-- Transcoder.+--+--+-- -- <http://docs.aws.amazon.com/elastictranscoder/latest/developerguide/DeletePreset.html> module Network.AWS.ElasticTranscoder.DeletePreset (
gen/Network/AWS/ElasticTranscoder/ListJobsByPipeline.hs view
@@ -149,7 +149,7 @@ instance FromJSON ListJobsByPipelineResponse where parseJSON = withObject "ListJobsByPipelineResponse" $ \o -> ListJobsByPipelineResponse- <$> o .: "Jobs"+ <$> o .:? "Jobs" .!= mempty <*> o .:? "NextPageToken" instance AWSPager ListJobsByPipeline where
gen/Network/AWS/ElasticTranscoder/ListJobsByStatus.hs view
@@ -147,7 +147,7 @@ instance FromJSON ListJobsByStatusResponse where parseJSON = withObject "ListJobsByStatusResponse" $ \o -> ListJobsByStatusResponse- <$> o .: "Jobs"+ <$> o .:? "Jobs" .!= mempty <*> o .:? "NextPageToken" instance AWSPager ListJobsByStatus where
gen/Network/AWS/ElasticTranscoder/ListPipelines.hs view
@@ -132,7 +132,7 @@ instance FromJSON ListPipelinesResponse where parseJSON = withObject "ListPipelinesResponse" $ \o -> ListPipelinesResponse <$> o .:? "NextPageToken"- <*> o .: "Pipelines"+ <*> o .:? "Pipelines" .!= mempty instance AWSPager ListPipelines where page rq rs
gen/Network/AWS/ElasticTranscoder/ListPresets.hs view
@@ -133,7 +133,7 @@ instance FromJSON ListPresetsResponse where parseJSON = withObject "ListPresetsResponse" $ \o -> ListPresetsResponse <$> o .:? "NextPageToken"- <*> o .: "Presets"+ <*> o .:? "Presets" .!= mempty instance AWSPager ListPresets where page rq rs
gen/Network/AWS/ElasticTranscoder/TestRole.hs view
@@ -160,5 +160,5 @@ instance FromJSON TestRoleResponse where parseJSON = withObject "TestRoleResponse" $ \o -> TestRoleResponse- <$> o .: "Messages"+ <$> o .:? "Messages" .!= mempty <*> o .:? "Success"
gen/Network/AWS/ElasticTranscoder/Types.hs view
@@ -62,6 +62,7 @@ , joCaptions , joComposition , joDuration+ , joEncryption , joHeight , joId , joKey@@ -70,6 +71,7 @@ , joSegmentDuration , joStatus , joStatusDetail+ , joThumbnailEncryption , joThumbnailPattern , joWatermarks , joWidth@@ -90,6 +92,7 @@ -- * CaptionSource , CaptionSource , captionSource+ , csEncryption , csKey , csLabel , csLanguage@@ -99,6 +102,7 @@ , Artwork , artwork , aAlbumArtFormat+ , aEncryption , aInputKey , aMaxHeight , aMaxWidth@@ -117,10 +121,12 @@ , cjoAlbumArt , cjoCaptions , cjoComposition+ , cjoEncryption , cjoKey , cjoPresetId , cjoRotate , cjoSegmentDuration+ , cjoThumbnailEncryption , cjoThumbnailPattern , cjoWatermarks @@ -145,6 +151,14 @@ , tResolution , tSizingPolicy + -- * Encryption+ , Encryption+ , encryption+ , eInitializationVector+ , eKey+ , eKeyMd5+ , eMode+ -- * JobAlbumArt , JobAlbumArt , jobAlbumArt@@ -154,6 +168,7 @@ -- * JobWatermark , JobWatermark , jobWatermark+ , jwEncryption , jwInputKey , jwPresetWatermarkId @@ -161,6 +176,7 @@ , Pipeline , pipeline , pArn+ , pAwsKmsKeyArn , pContentConfig , pId , pInputBucket@@ -187,6 +203,7 @@ -- * CaptionFormat , CaptionFormat , captionFormat+ , cfEncryption , cfFormat , cfPattern @@ -257,6 +274,7 @@ , jobInput , jiAspectRatio , jiContainer+ , jiEncryption , jiFrameRate , jiInterlaced , jiKey@@ -348,7 +366,7 @@ instance FromJSON PipelineOutputConfig where parseJSON = withObject "PipelineOutputConfig" $ \o -> PipelineOutputConfig <$> o .:? "Bucket"- <*> o .: "Permissions"+ <*> o .:? "Permissions" .!= mempty <*> o .:? "StorageClass" instance ToJSON PipelineOutputConfig where@@ -438,7 +456,7 @@ parseJSON = withObject "CreateJobPlaylist" $ \o -> CreateJobPlaylist <$> o .:? "Format" <*> o .:? "Name"- <*> o .: "OutputKeys"+ <*> o .:? "OutputKeys" .!= mempty instance ToJSON CreateJobPlaylist where toJSON CreateJobPlaylist{..} = object@@ -491,7 +509,7 @@ -- MergeRetain: Elastic Transcoder transcodes both embedded and sidecar -- captions into outputs. If captions for a language are embedded in the input -- file and also appear in a sidecar file, Elastic Transcoder uses the embedded--- captions and ignores the sidecar captions for that language. If CaptionSources+-- captions and ignores the sidecar captions for that language. If 'CaptionSources' -- is empty, Elastic Transcoder omits all sidecar captions from the output -- files. --@@ -504,8 +522,8 @@ instance FromJSON Captions where parseJSON = withObject "Captions" $ \o -> Captions- <$> o .: "CaptionFormats"- <*> o .: "CaptionSources"+ <$> o .:? "CaptionFormats" .!= mempty+ <*> o .:? "CaptionSources" .!= mempty <*> o .:? "MergePolicy" instance ToJSON Captions where@@ -538,9 +556,14 @@ -- -- 'auto': If you specify 'auto', Elastic Transcoder will select the profile -- based on the bit rate selected for the output file. 'AAC-LC': The most common--- AAC profile. Use for bitrates larger than 64 kbps. 'HE-AAC': Not supported on--- some older players and devices. Use for bitrates between 40 and 80 kbps. 'HE-AACv2': Not supported on some players and devices. Use for bitrates less than 48+-- AAC profile. Use for bit rates larger than 64 kbps. 'HE-AAC': Not supported on+-- some older players and devices. Use for bit rates between 40 and 80 kbps. 'HE-AACv2': Not supported on some players and devices. Use for bit rates less than 48 -- kbps. All outputs in a 'Smooth' playlist must have the same value for 'Profile'.+--+-- If you created any presets before AAC profiles were added, Elastic+-- Transcoder automatically updated your presets to use AAC-LC. You can change+-- the value as required.+-- acoProfile :: Lens' AudioCodecOptions (Maybe Text) acoProfile = lens _acoProfile (\s a -> s { _acoProfile = a }) @@ -554,21 +577,23 @@ ] data JobOutput = JobOutput- { _joAlbumArt :: Maybe JobAlbumArt- , _joCaptions :: Maybe Captions- , _joComposition :: List "Composition" Clip- , _joDuration :: Maybe Integer- , _joHeight :: Maybe Int- , _joId :: Maybe Text- , _joKey :: Maybe Text- , _joPresetId :: Maybe Text- , _joRotate :: Maybe Text- , _joSegmentDuration :: Maybe Text- , _joStatus :: Maybe Text- , _joStatusDetail :: Maybe Text- , _joThumbnailPattern :: Maybe Text- , _joWatermarks :: List "Watermarks" JobWatermark- , _joWidth :: Maybe Int+ { _joAlbumArt :: Maybe JobAlbumArt+ , _joCaptions :: Maybe Captions+ , _joComposition :: List "Composition" Clip+ , _joDuration :: Maybe Integer+ , _joEncryption :: Maybe Encryption+ , _joHeight :: Maybe Int+ , _joId :: Maybe Text+ , _joKey :: Maybe Text+ , _joPresetId :: Maybe Text+ , _joRotate :: Maybe Text+ , _joSegmentDuration :: Maybe Text+ , _joStatus :: Maybe Text+ , _joStatusDetail :: Maybe Text+ , _joThumbnailEncryption :: Maybe Encryption+ , _joThumbnailPattern :: Maybe Text+ , _joWatermarks :: List "Watermarks" JobWatermark+ , _joWidth :: Maybe Int } deriving (Eq, Show) -- | 'JobOutput' constructor.@@ -583,6 +608,8 @@ -- -- * 'joDuration' @::@ 'Maybe' 'Integer' --+-- * 'joEncryption' @::@ 'Maybe' 'Encryption'+-- -- * 'joHeight' @::@ 'Maybe' 'Int' -- -- * 'joId' @::@ 'Maybe' 'Text'@@ -599,6 +626,8 @@ -- -- * 'joStatusDetail' @::@ 'Maybe' 'Text' --+-- * 'joThumbnailEncryption' @::@ 'Maybe' 'Encryption'+-- -- * 'joThumbnailPattern' @::@ 'Maybe' 'Text' -- -- * 'joWatermarks' @::@ ['JobWatermark']@@ -607,21 +636,23 @@ -- jobOutput :: JobOutput jobOutput = JobOutput- { _joId = Nothing- , _joKey = Nothing- , _joThumbnailPattern = Nothing- , _joRotate = Nothing- , _joPresetId = Nothing- , _joSegmentDuration = Nothing- , _joStatus = Nothing- , _joStatusDetail = Nothing- , _joDuration = Nothing- , _joWidth = Nothing- , _joHeight = Nothing- , _joWatermarks = mempty- , _joAlbumArt = Nothing- , _joComposition = mempty- , _joCaptions = Nothing+ { _joId = Nothing+ , _joKey = Nothing+ , _joThumbnailPattern = Nothing+ , _joThumbnailEncryption = Nothing+ , _joRotate = Nothing+ , _joPresetId = Nothing+ , _joSegmentDuration = Nothing+ , _joStatus = Nothing+ , _joStatusDetail = Nothing+ , _joDuration = Nothing+ , _joWidth = Nothing+ , _joHeight = Nothing+ , _joWatermarks = mempty+ , _joAlbumArt = Nothing+ , _joComposition = mempty+ , _joCaptions = Nothing+ , _joEncryption = Nothing } -- | The album art to be associated with the output file, if any.@@ -684,6 +715,13 @@ joDuration :: Lens' JobOutput (Maybe Integer) joDuration = lens _joDuration (\s a -> s { _joDuration = a }) +-- | The encryption settings, if any, that you want Elastic Transcoder to apply to+-- your output files. If you choose to use encryption, you must specify a mode+-- to use. If you choose not to use encryption, Elastic Transcoder will write an+-- unencrypted file to your Amazon S3 bucket.+joEncryption :: Lens' JobOutput (Maybe Encryption)+joEncryption = lens _joEncryption (\s a -> s { _joEncryption = a })+ -- | Height of the output file, in pixels. joHeight :: Lens' JobOutput (Maybe Int) joHeight = lens _joHeight (\s a -> s { _joHeight = a })@@ -755,6 +793,12 @@ joStatusDetail :: Lens' JobOutput (Maybe Text) joStatusDetail = lens _joStatusDetail (\s a -> s { _joStatusDetail = a }) +-- | The encryption settings, if any, that you want Elastic Transcoder to apply to+-- your thumbnail.+joThumbnailEncryption :: Lens' JobOutput (Maybe Encryption)+joThumbnailEncryption =+ lens _joThumbnailEncryption (\s a -> s { _joThumbnailEncryption = a })+ -- | Whether you want Elastic Transcoder to create thumbnails for your videos and, -- if so, how you want Elastic Transcoder to name the files. --@@ -809,8 +853,9 @@ parseJSON = withObject "JobOutput" $ \o -> JobOutput <$> o .:? "AlbumArt" <*> o .:? "Captions"- <*> o .: "Composition"+ <*> o .:? "Composition" .!= mempty <*> o .:? "Duration"+ <*> o .:? "Encryption" <*> o .:? "Height" <*> o .:? "Id" <*> o .:? "Key"@@ -819,27 +864,30 @@ <*> o .:? "SegmentDuration" <*> o .:? "Status" <*> o .:? "StatusDetail"+ <*> o .:? "ThumbnailEncryption" <*> o .:? "ThumbnailPattern"- <*> o .: "Watermarks"+ <*> o .:? "Watermarks" .!= mempty <*> o .:? "Width" instance ToJSON JobOutput where toJSON JobOutput{..} = object- [ "Id" .= _joId- , "Key" .= _joKey- , "ThumbnailPattern" .= _joThumbnailPattern- , "Rotate" .= _joRotate- , "PresetId" .= _joPresetId- , "SegmentDuration" .= _joSegmentDuration- , "Status" .= _joStatus- , "StatusDetail" .= _joStatusDetail- , "Duration" .= _joDuration- , "Width" .= _joWidth- , "Height" .= _joHeight- , "Watermarks" .= _joWatermarks- , "AlbumArt" .= _joAlbumArt- , "Composition" .= _joComposition- , "Captions" .= _joCaptions+ [ "Id" .= _joId+ , "Key" .= _joKey+ , "ThumbnailPattern" .= _joThumbnailPattern+ , "ThumbnailEncryption" .= _joThumbnailEncryption+ , "Rotate" .= _joRotate+ , "PresetId" .= _joPresetId+ , "SegmentDuration" .= _joSegmentDuration+ , "Status" .= _joStatus+ , "StatusDetail" .= _joStatusDetail+ , "Duration" .= _joDuration+ , "Width" .= _joWidth+ , "Height" .= _joHeight+ , "Watermarks" .= _joWatermarks+ , "AlbumArt" .= _joAlbumArt+ , "Composition" .= _joComposition+ , "Captions" .= _joCaptions+ , "Encryption" .= _joEncryption ] data Job' = Job'@@ -955,9 +1003,9 @@ <*> o .:? "Input" <*> o .:? "Output" <*> o .:? "OutputKeyPrefix"- <*> o .: "Outputs"+ <*> o .:? "Outputs" .!= mempty <*> o .:? "PipelineId"- <*> o .: "Playlists"+ <*> o .:? "Playlists" .!= mempty <*> o .:? "Status" instance ToJSON Job' where@@ -974,16 +1022,19 @@ ] data CaptionSource = CaptionSource- { _csKey :: Maybe Text+ { _csEncryption :: Maybe Encryption+ , _csKey :: Maybe Text , _csLabel :: Maybe Text , _csLanguage :: Maybe Text , _csTimeOffset :: Maybe Text- } deriving (Eq, Ord, Show)+ } deriving (Eq, Show) -- | 'CaptionSource' constructor. -- -- The fields accessible through corresponding lenses are: --+-- * 'csEncryption' @::@ 'Maybe' 'Encryption'+-- -- * 'csKey' @::@ 'Maybe' 'Text' -- -- * 'csLabel' @::@ 'Maybe' 'Text'@@ -998,8 +1049,14 @@ , _csLanguage = Nothing , _csTimeOffset = Nothing , _csLabel = Nothing+ , _csEncryption = Nothing } +-- | The encryption settings, if any, that you want Elastic Transcoder to apply to+-- your caption sources.+csEncryption :: Lens' CaptionSource (Maybe Encryption)+csEncryption = lens _csEncryption (\s a -> s { _csEncryption = a })+ -- | The name of the sidecar caption file that you want Elastic Transcoder to -- include in the output file. csKey :: Lens' CaptionSource (Maybe Text)@@ -1032,7 +1089,8 @@ instance FromJSON CaptionSource where parseJSON = withObject "CaptionSource" $ \o -> CaptionSource- <$> o .:? "Key"+ <$> o .:? "Encryption"+ <*> o .:? "Key" <*> o .:? "Label" <*> o .:? "Language" <*> o .:? "TimeOffset"@@ -1043,16 +1101,18 @@ , "Language" .= _csLanguage , "TimeOffset" .= _csTimeOffset , "Label" .= _csLabel+ , "Encryption" .= _csEncryption ] data Artwork = Artwork { _aAlbumArtFormat :: Maybe Text+ , _aEncryption :: Maybe Encryption , _aInputKey :: Maybe Text , _aMaxHeight :: Maybe Text , _aMaxWidth :: Maybe Text , _aPaddingPolicy :: Maybe Text , _aSizingPolicy :: Maybe Text- } deriving (Eq, Ord, Show)+ } deriving (Eq, Show) -- | 'Artwork' constructor. --@@ -1060,6 +1120,8 @@ -- -- * 'aAlbumArtFormat' @::@ 'Maybe' 'Text' --+-- * 'aEncryption' @::@ 'Maybe' 'Encryption'+-- -- * 'aInputKey' @::@ 'Maybe' 'Text' -- -- * 'aMaxHeight' @::@ 'Maybe' 'Text'@@ -1078,12 +1140,18 @@ , _aSizingPolicy = Nothing , _aPaddingPolicy = Nothing , _aAlbumArtFormat = Nothing+ , _aEncryption = Nothing } -- | The format of album art, if any. Valid formats are '.jpg' and '.png'. aAlbumArtFormat :: Lens' Artwork (Maybe Text) aAlbumArtFormat = lens _aAlbumArtFormat (\s a -> s { _aAlbumArtFormat = a }) +-- | The encryption settings, if any, that you want Elastic Transcoder to apply to+-- your artwork.+aEncryption :: Lens' Artwork (Maybe Encryption)+aEncryption = lens _aEncryption (\s a -> s { _aEncryption = a })+ -- | The name of the file to be used as album art. To determine which Amazon S3 -- bucket contains the specified file, Elastic Transcoder checks the pipeline -- specified by 'PipelineId'; the 'InputBucket' object in that pipeline identifies@@ -1140,6 +1208,7 @@ instance FromJSON Artwork where parseJSON = withObject "Artwork" $ \o -> Artwork <$> o .:? "AlbumArtFormat"+ <*> o .:? "Encryption" <*> o .:? "InputKey" <*> o .:? "MaxHeight" <*> o .:? "MaxWidth"@@ -1154,6 +1223,7 @@ , "SizingPolicy" .= _aSizingPolicy , "PaddingPolicy" .= _aPaddingPolicy , "AlbumArtFormat" .= _aAlbumArtFormat+ , "Encryption" .= _aEncryption ] data TimeSpan = TimeSpan@@ -1204,15 +1274,17 @@ ] data CreateJobOutput = CreateJobOutput- { _cjoAlbumArt :: Maybe JobAlbumArt- , _cjoCaptions :: Maybe Captions- , _cjoComposition :: List "Composition" Clip- , _cjoKey :: Maybe Text- , _cjoPresetId :: Maybe Text- , _cjoRotate :: Maybe Text- , _cjoSegmentDuration :: Maybe Text- , _cjoThumbnailPattern :: Maybe Text- , _cjoWatermarks :: List "Watermarks" JobWatermark+ { _cjoAlbumArt :: Maybe JobAlbumArt+ , _cjoCaptions :: Maybe Captions+ , _cjoComposition :: List "Composition" Clip+ , _cjoEncryption :: Maybe Encryption+ , _cjoKey :: Maybe Text+ , _cjoPresetId :: Maybe Text+ , _cjoRotate :: Maybe Text+ , _cjoSegmentDuration :: Maybe Text+ , _cjoThumbnailEncryption :: Maybe Encryption+ , _cjoThumbnailPattern :: Maybe Text+ , _cjoWatermarks :: List "Watermarks" JobWatermark } deriving (Eq, Show) -- | 'CreateJobOutput' constructor.@@ -1225,6 +1297,8 @@ -- -- * 'cjoComposition' @::@ ['Clip'] --+-- * 'cjoEncryption' @::@ 'Maybe' 'Encryption'+-- -- * 'cjoKey' @::@ 'Maybe' 'Text' -- -- * 'cjoPresetId' @::@ 'Maybe' 'Text'@@ -1233,21 +1307,25 @@ -- -- * 'cjoSegmentDuration' @::@ 'Maybe' 'Text' --+-- * 'cjoThumbnailEncryption' @::@ 'Maybe' 'Encryption'+-- -- * 'cjoThumbnailPattern' @::@ 'Maybe' 'Text' -- -- * 'cjoWatermarks' @::@ ['JobWatermark'] -- createJobOutput :: CreateJobOutput createJobOutput = CreateJobOutput- { _cjoKey = Nothing- , _cjoThumbnailPattern = Nothing- , _cjoRotate = Nothing- , _cjoPresetId = Nothing- , _cjoSegmentDuration = Nothing- , _cjoWatermarks = mempty- , _cjoAlbumArt = Nothing- , _cjoComposition = mempty- , _cjoCaptions = Nothing+ { _cjoKey = Nothing+ , _cjoThumbnailPattern = Nothing+ , _cjoThumbnailEncryption = Nothing+ , _cjoRotate = Nothing+ , _cjoPresetId = Nothing+ , _cjoSegmentDuration = Nothing+ , _cjoWatermarks = mempty+ , _cjoAlbumArt = Nothing+ , _cjoComposition = mempty+ , _cjoCaptions = Nothing+ , _cjoEncryption = Nothing } -- | Information about the album art that you want Elastic Transcoder to add to@@ -1309,6 +1387,13 @@ cjoComposition :: Lens' CreateJobOutput [Clip] cjoComposition = lens _cjoComposition (\s a -> s { _cjoComposition = a }) . _List +-- | You can specify encryption settings for any output files that you want to use+-- for a transcoding job. This includes the output file and any watermarks,+-- thumbnails, album art, or captions that you want to use. You must specify+-- encryption settings for each file individually.+cjoEncryption :: Lens' CreateJobOutput (Maybe Encryption)+cjoEncryption = lens _cjoEncryption (\s a -> s { _cjoEncryption = a })+ -- | The name to assign to the transcoded file. Elastic Transcoder saves the file -- in the Amazon S3 bucket specified by the 'OutputBucket' object in the pipeline -- that is specified by the pipeline ID. If a file with the specified name@@ -1344,6 +1429,12 @@ cjoSegmentDuration = lens _cjoSegmentDuration (\s a -> s { _cjoSegmentDuration = a }) +-- | The encryption settings, if any, that you want Elastic Transcoder to apply to+-- your thumbnail.+cjoThumbnailEncryption :: Lens' CreateJobOutput (Maybe Encryption)+cjoThumbnailEncryption =+ lens _cjoThumbnailEncryption (\s a -> s { _cjoThumbnailEncryption = a })+ -- | Whether you want Elastic Transcoder to create thumbnails for your videos and, -- if so, how you want Elastic Transcoder to name the files. --@@ -1386,25 +1477,29 @@ parseJSON = withObject "CreateJobOutput" $ \o -> CreateJobOutput <$> o .:? "AlbumArt" <*> o .:? "Captions"- <*> o .: "Composition"+ <*> o .:? "Composition" .!= mempty+ <*> o .:? "Encryption" <*> o .:? "Key" <*> o .:? "PresetId" <*> o .:? "Rotate" <*> o .:? "SegmentDuration"+ <*> o .:? "ThumbnailEncryption" <*> o .:? "ThumbnailPattern"- <*> o .: "Watermarks"+ <*> o .:? "Watermarks" .!= mempty instance ToJSON CreateJobOutput where toJSON CreateJobOutput{..} = object- [ "Key" .= _cjoKey- , "ThumbnailPattern" .= _cjoThumbnailPattern- , "Rotate" .= _cjoRotate- , "PresetId" .= _cjoPresetId- , "SegmentDuration" .= _cjoSegmentDuration- , "Watermarks" .= _cjoWatermarks- , "AlbumArt" .= _cjoAlbumArt- , "Composition" .= _cjoComposition- , "Captions" .= _cjoCaptions+ [ "Key" .= _cjoKey+ , "ThumbnailPattern" .= _cjoThumbnailPattern+ , "ThumbnailEncryption" .= _cjoThumbnailEncryption+ , "Rotate" .= _cjoRotate+ , "PresetId" .= _cjoPresetId+ , "SegmentDuration" .= _cjoSegmentDuration+ , "Watermarks" .= _cjoWatermarks+ , "AlbumArt" .= _cjoAlbumArt+ , "Composition" .= _cjoComposition+ , "Captions" .= _cjoCaptions+ , "Encryption" .= _cjoEncryption ] data AudioParameters = AudioParameters@@ -1558,7 +1653,8 @@ tFormat :: Lens' Thumbnails (Maybe Text) tFormat = lens _tFormat (\s a -> s { _tFormat = a }) --- | The number of seconds between thumbnails. Specify an integer value.+-- | The approximate number of seconds between thumbnails. Specify an integer+-- value. tInterval :: Lens' Thumbnails (Maybe Text) tInterval = lens _tInterval (\s a -> s { _tInterval = a }) @@ -1639,6 +1735,112 @@ , "PaddingPolicy" .= _tPaddingPolicy ] +data Encryption = Encryption+ { _eInitializationVector :: Maybe Text+ , _eKey :: Maybe Text+ , _eKeyMd5 :: Maybe Text+ , _eMode :: Maybe Text+ } deriving (Eq, Ord, Show)++-- | 'Encryption' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'eInitializationVector' @::@ 'Maybe' 'Text'+--+-- * 'eKey' @::@ 'Maybe' 'Text'+--+-- * 'eKeyMd5' @::@ 'Maybe' 'Text'+--+-- * 'eMode' @::@ 'Maybe' 'Text'+--+encryption :: Encryption+encryption = Encryption+ { _eMode = Nothing+ , _eKey = Nothing+ , _eKeyMd5 = Nothing+ , _eInitializationVector = Nothing+ }++-- | The series of random bits created by a random bit generator, unique for every+-- encryption operation, that you used to encrypt your input files or that you+-- want Elastic Transcoder to use to encrypt your output files. The+-- initialization vector must be base64-encoded, and it must be exactly 16 bytes+-- long before being base64-encoded.+eInitializationVector :: Lens' Encryption (Maybe Text)+eInitializationVector =+ lens _eInitializationVector (\s a -> s { _eInitializationVector = a })++-- | The data encryption key that you want Elastic Transcoder to use to encrypt+-- your output file, or that was used to encrypt your input file. The key must+-- be base64-encoded and it must be one of the following bit lengths before+-- being base64-encoded:+--+-- '128', '192', or '256'.+--+-- The key must also be encrypted by using the Amazon Key Management Service.+eKey :: Lens' Encryption (Maybe Text)+eKey = lens _eKey (\s a -> s { _eKey = a })++-- | The MD5 digest of the key that you used to encrypt your input file, or that+-- you want Elastic Transcoder to use to encrypt your output file. Elastic+-- Transcoder uses the key digest as a checksum to make sure your key was not+-- corrupted in transit. The key MD5 must be base64-encoded, and it must be+-- exactly 16 bytes long before being base64-encoded.+eKeyMd5 :: Lens' Encryption (Maybe Text)+eKeyMd5 = lens _eKeyMd5 (\s a -> s { _eKeyMd5 = a })++-- | The specific server-side encryption mode that you want Elastic Transcoder to+-- use when decrypting your input files or encrypting your output files. Elastic+-- Transcoder supports the following options:+--+-- S3: Amazon S3 creates and manages the keys used for encrypting your files.+--+-- S3-AWS-KMS: Amazon S3 calls the Amazon Key Management Service, which creates+-- and manages the keys that are used for encrypting your files. If you specify 'S3-AWS-KMS' and you don't want to use the default key, you must add the AWS-KMS key that+-- you want to use to your pipeline.+--+-- AES-CBC-PKCS7: A padded cipher-block mode of operation originally used for+-- HLS files.+--+-- AES-CTR: AES Counter Mode.+--+-- AES-GCM: AES Galois Counter Mode, a mode of operation that is an+-- authenticated encryption format, meaning that a file, key, or initialization+-- vector that has been tampered with will fail the decryption process.+--+-- For all three AES options, you must provide the following settings, which+-- must be base64-encoded:+--+-- Key+--+-- Key MD5+--+-- Initialization Vector+--+-- For the AES modes, your private encryption keys and your unencrypted data+-- are never stored by AWS; therefore, it is important that you safely manage+-- your encryption keys. If you lose them, you won't be able to unencrypt your+-- data.+--+eMode :: Lens' Encryption (Maybe Text)+eMode = lens _eMode (\s a -> s { _eMode = a })++instance FromJSON Encryption where+ parseJSON = withObject "Encryption" $ \o -> Encryption+ <$> o .:? "InitializationVector"+ <*> o .:? "Key"+ <*> o .:? "KeyMd5"+ <*> o .:? "Mode"++instance ToJSON Encryption where+ toJSON Encryption{..} = object+ [ "Mode" .= _eMode+ , "Key" .= _eKey+ , "KeyMd5" .= _eKeyMd5+ , "InitializationVector" .= _eInitializationVector+ ]+ data JobAlbumArt = JobAlbumArt { _jaaArtwork :: List "Artwork" Artwork , _jaaMergePolicy :: Maybe Text@@ -1674,7 +1876,7 @@ instance FromJSON JobAlbumArt where parseJSON = withObject "JobAlbumArt" $ \o -> JobAlbumArt- <$> o .: "Artwork"+ <$> o .:? "Artwork" .!= mempty <*> o .:? "MergePolicy" instance ToJSON JobAlbumArt where@@ -1684,14 +1886,17 @@ ] data JobWatermark = JobWatermark- { _jwInputKey :: Maybe Text+ { _jwEncryption :: Maybe Encryption+ , _jwInputKey :: Maybe Text , _jwPresetWatermarkId :: Maybe Text- } deriving (Eq, Ord, Show)+ } deriving (Eq, Show) -- | 'JobWatermark' constructor. -- -- The fields accessible through corresponding lenses are: --+-- * 'jwEncryption' @::@ 'Maybe' 'Encryption'+-- -- * 'jwInputKey' @::@ 'Maybe' 'Text' -- -- * 'jwPresetWatermarkId' @::@ 'Maybe' 'Text'@@ -1700,8 +1905,14 @@ jobWatermark = JobWatermark { _jwPresetWatermarkId = Nothing , _jwInputKey = Nothing+ , _jwEncryption = Nothing } +-- | The encryption settings, if any, that you want Elastic Transcoder to apply to+-- your watermarks.+jwEncryption :: Lens' JobWatermark (Maybe Encryption)+jwEncryption = lens _jwEncryption (\s a -> s { _jwEncryption = a })+ -- | The name of the .png or .jpg file that you want to use for the watermark. To -- determine which Amazon S3 bucket contains the specified file, Elastic -- Transcoder checks the pipeline specified by 'Pipeline'; the 'Input Bucket' object@@ -1723,17 +1934,20 @@ instance FromJSON JobWatermark where parseJSON = withObject "JobWatermark" $ \o -> JobWatermark- <$> o .:? "InputKey"+ <$> o .:? "Encryption"+ <*> o .:? "InputKey" <*> o .:? "PresetWatermarkId" instance ToJSON JobWatermark where toJSON JobWatermark{..} = object [ "PresetWatermarkId" .= _jwPresetWatermarkId , "InputKey" .= _jwInputKey+ , "Encryption" .= _jwEncryption ] data Pipeline = Pipeline { _pArn :: Maybe Text+ , _pAwsKmsKeyArn :: Maybe Text , _pContentConfig :: Maybe PipelineOutputConfig , _pId :: Maybe Text , _pInputBucket :: Maybe Text@@ -1751,6 +1965,8 @@ -- -- * 'pArn' @::@ 'Maybe' 'Text' --+-- * 'pAwsKmsKeyArn' @::@ 'Maybe' 'Text'+-- -- * 'pContentConfig' @::@ 'Maybe' 'PipelineOutputConfig' -- -- * 'pId' @::@ 'Maybe' 'Text'@@ -1778,6 +1994,7 @@ , _pInputBucket = Nothing , _pOutputBucket = Nothing , _pRole = Nothing+ , _pAwsKmsKeyArn = Nothing , _pNotifications = Nothing , _pContentConfig = Nothing , _pThumbnailConfig = Nothing@@ -1787,6 +2004,16 @@ pArn :: Lens' Pipeline (Maybe Text) pArn = lens _pArn (\s a -> s { _pArn = a }) +-- | The AWS Key Management Service (AWS KMS) key that you want to use with this+-- pipeline.+--+-- If you use either 'S3' or 'S3-AWS-KMS' as your 'Encryption:Mode', you don't need+-- to provide a key with your job because a default key, known as an AWS-KMS+-- key, is created for you automatically. You need to provide an AWS-KMS key+-- only if you want to use a non-default AWS-KMS key, or if you are using an 'Encryption:Mode' of 'AES-PKCS7', 'AES-CTR', or 'AES-GCM'.+pAwsKmsKeyArn :: Lens' Pipeline (Maybe Text)+pAwsKmsKeyArn = lens _pAwsKmsKeyArn (\s a -> s { _pAwsKmsKeyArn = a })+ -- | Information about the Amazon S3 bucket in which you want Elastic Transcoder -- to save transcoded files and playlists. Either you specify both 'ContentConfig' -- and 'ThumbnailConfig', or you specify 'OutputBucket'.@@ -1894,6 +2121,7 @@ instance FromJSON Pipeline where parseJSON = withObject "Pipeline" $ \o -> Pipeline <$> o .:? "Arn"+ <*> o .:? "AwsKmsKeyArn" <*> o .:? "ContentConfig" <*> o .:? "Id" <*> o .:? "InputBucket"@@ -1913,6 +2141,7 @@ , "InputBucket" .= _pInputBucket , "OutputBucket" .= _pOutputBucket , "Role" .= _pRole+ , "AwsKmsKeyArn" .= _pAwsKmsKeyArn , "Notifications" .= _pNotifications , "ContentConfig" .= _pContentConfig , "ThumbnailConfig" .= _pThumbnailConfig@@ -2032,24 +2261,33 @@ ] data CaptionFormat = CaptionFormat- { _cfFormat :: Maybe Text- , _cfPattern :: Maybe Text- } deriving (Eq, Ord, Show)+ { _cfEncryption :: Maybe Encryption+ , _cfFormat :: Maybe Text+ , _cfPattern :: Maybe Text+ } deriving (Eq, Show) -- | 'CaptionFormat' constructor. -- -- The fields accessible through corresponding lenses are: --+-- * 'cfEncryption' @::@ 'Maybe' 'Encryption'+-- -- * 'cfFormat' @::@ 'Maybe' 'Text' -- -- * 'cfPattern' @::@ 'Maybe' 'Text' -- captionFormat :: CaptionFormat captionFormat = CaptionFormat- { _cfFormat = Nothing- , _cfPattern = Nothing+ { _cfFormat = Nothing+ , _cfPattern = Nothing+ , _cfEncryption = Nothing } +-- | The encryption settings, if any, that you want Elastic Transcoder to apply to+-- your caption formats.+cfEncryption :: Lens' CaptionFormat (Maybe Encryption)+cfEncryption = lens _cfEncryption (\s a -> s { _cfEncryption = a })+ -- | The format you specify determines whether Elastic Transcoder generates an -- embedded or sidecar caption for this output. --@@ -2094,13 +2332,15 @@ instance FromJSON CaptionFormat where parseJSON = withObject "CaptionFormat" $ \o -> CaptionFormat- <$> o .:? "Format"+ <$> o .:? "Encryption"+ <*> o .:? "Format" <*> o .:? "Pattern" instance ToJSON CaptionFormat where toJSON CaptionFormat{..} = object- [ "Format" .= _cfFormat- , "Pattern" .= _cfPattern+ [ "Format" .= _cfFormat+ , "Pattern" .= _cfPattern+ , "Encryption" .= _cfEncryption ] data PresetWatermark = PresetWatermark@@ -2353,7 +2593,7 @@ instance FromJSON Permission where parseJSON = withObject "Permission" $ \o -> Permission- <$> o .: "Access"+ <$> o .:? "Access" .!= mempty <*> o .:? "Grantee" <*> o .:? "GranteeType" @@ -2679,7 +2919,7 @@ <$> o .:? "AspectRatio" <*> o .:? "BitRate" <*> o .:? "Codec"- <*> o .: "CodecOptions"+ <*> o .:? "CodecOptions" .!= mempty <*> o .:? "DisplayAspectRatio" <*> o .:? "FixedGOP" <*> o .:? "FrameRate"@@ -2690,7 +2930,7 @@ <*> o .:? "PaddingPolicy" <*> o .:? "Resolution" <*> o .:? "SizingPolicy"- <*> o .: "Watermarks"+ <*> o .:? "Watermarks" .!= mempty instance ToJSON VideoParameters where toJSON VideoParameters{..} = object@@ -2807,7 +3047,7 @@ parseJSON = withObject "Playlist" $ \o -> Playlist <$> o .:? "Format" <*> o .:? "Name"- <*> o .: "OutputKeys"+ <*> o .:? "OutputKeys" .!= mempty <*> o .:? "Status" <*> o .:? "StatusDetail" @@ -2913,11 +3153,12 @@ data JobInput = JobInput { _jiAspectRatio :: Maybe Text , _jiContainer :: Maybe Text+ , _jiEncryption :: Maybe Encryption , _jiFrameRate :: Maybe Text , _jiInterlaced :: Maybe Text , _jiKey :: Maybe Text , _jiResolution :: Maybe Text- } deriving (Eq, Ord, Show)+ } deriving (Eq, Show) -- | 'JobInput' constructor. --@@ -2927,6 +3168,8 @@ -- -- * 'jiContainer' @::@ 'Maybe' 'Text' --+-- * 'jiEncryption' @::@ 'Maybe' 'Encryption'+-- -- * 'jiFrameRate' @::@ 'Maybe' 'Text' -- -- * 'jiInterlaced' @::@ 'Maybe' 'Text'@@ -2943,6 +3186,7 @@ , _jiAspectRatio = Nothing , _jiInterlaced = Nothing , _jiContainer = Nothing+ , _jiEncryption = Nothing } -- | The aspect ratio of the input file. If you want Elastic Transcoder to@@ -2966,6 +3210,12 @@ jiContainer :: Lens' JobInput (Maybe Text) jiContainer = lens _jiContainer (\s a -> s { _jiContainer = a }) +-- | The encryption settings, if any, that are used for decrypting your input+-- files. If your input file is encrypted, you must specify the mode that+-- Elastic Transcoder will use to decrypt your file.+jiEncryption :: Lens' JobInput (Maybe Encryption)+jiEncryption = lens _jiEncryption (\s a -> s { _jiEncryption = a })+ -- | The frame rate of the input file. If you want Elastic Transcoder to -- automatically detect the frame rate of the input file, specify 'auto'. If you -- want to specify the frame rate for the input file, enter one of the following@@ -3010,6 +3260,7 @@ parseJSON = withObject "JobInput" $ \o -> JobInput <$> o .:? "AspectRatio" <*> o .:? "Container"+ <*> o .:? "Encryption" <*> o .:? "FrameRate" <*> o .:? "Interlaced" <*> o .:? "Key"@@ -3023,4 +3274,5 @@ , "AspectRatio" .= _jiAspectRatio , "Interlaced" .= _jiInterlaced , "Container" .= _jiContainer+ , "Encryption" .= _jiEncryption ]
gen/Network/AWS/ElasticTranscoder/UpdatePipeline.hs view
@@ -35,6 +35,7 @@ -- ** Request constructor , updatePipeline -- ** Request lenses+ , upAwsKmsKeyArn , upContentConfig , upId , upInputBucket@@ -57,7 +58,8 @@ import qualified GHC.Exts data UpdatePipeline = UpdatePipeline- { _upContentConfig :: Maybe PipelineOutputConfig+ { _upAwsKmsKeyArn :: Maybe Text+ , _upContentConfig :: Maybe PipelineOutputConfig , _upId :: Text , _upInputBucket :: Maybe Text , _upName :: Maybe Text@@ -70,6 +72,8 @@ -- -- The fields accessible through corresponding lenses are: --+-- * 'upAwsKmsKeyArn' @::@ 'Maybe' 'Text'+-- -- * 'upContentConfig' @::@ 'Maybe' 'PipelineOutputConfig' -- -- * 'upId' @::@ 'Text'@@ -91,11 +95,22 @@ , _upName = Nothing , _upInputBucket = Nothing , _upRole = Nothing+ , _upAwsKmsKeyArn = Nothing , _upNotifications = Nothing , _upContentConfig = Nothing , _upThumbnailConfig = Nothing } +-- | The AWS Key Management Service (AWS KMS) key that you want to use with this+-- pipeline.+--+-- If you use either 'S3' or 'S3-AWS-KMS' as your 'Encryption:Mode', you don't need+-- to provide a key with your job because a default key, known as an AWS-KMS+-- key, is created for you automatically. You need to provide an AWS-KMS key+-- only if you want to use a non-default AWS-KMS key, or if you are using an 'Encryption:Mode' of 'AES-PKCS7', 'AES-CTR', or 'AES-GCM'.+upAwsKmsKeyArn :: Lens' UpdatePipeline (Maybe Text)+upAwsKmsKeyArn = lens _upAwsKmsKeyArn (\s a -> s { _upAwsKmsKeyArn = a })+ -- | The optional 'ContentConfig' object specifies information about the Amazon S3 -- bucket in which you want Elastic Transcoder to save transcoded files and -- playlists: which bucket to use, which users you want to have access to the@@ -238,6 +253,7 @@ [ "Name" .= _upName , "InputBucket" .= _upInputBucket , "Role" .= _upRole+ , "AwsKmsKeyArn" .= _upAwsKmsKeyArn , "Notifications" .= _upNotifications , "ContentConfig" .= _upContentConfig , "ThumbnailConfig" .= _upThumbnailConfig