{-# 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.ElasticTranscoder.CreatePipeline -- Copyright : (c) 2013-2021 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) -- -- The CreatePipeline operation creates a pipeline with settings that you -- specify. module Amazonka.ElasticTranscoder.CreatePipeline ( -- * Creating a Request CreatePipeline (..), newCreatePipeline, -- * Request Lenses createPipeline_contentConfig, createPipeline_outputBucket, createPipeline_awsKmsKeyArn, createPipeline_notifications, createPipeline_thumbnailConfig, createPipeline_name, createPipeline_inputBucket, createPipeline_role, -- * Destructuring the Response CreatePipelineResponse (..), newCreatePipelineResponse, -- * Response Lenses createPipelineResponse_warnings, createPipelineResponse_pipeline, createPipelineResponse_httpStatus, ) where import qualified Amazonka.Core as Core import Amazonka.ElasticTranscoder.Types import qualified Amazonka.Lens as Lens import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response -- | The @CreatePipelineRequest@ structure. -- -- /See:/ 'newCreatePipeline' smart constructor. data CreatePipeline = CreatePipeline' { -- | 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 files, the type of access you want users to have, and the -- storage class that you want to assign to the files. -- -- If you specify values for @ContentConfig@, you must also specify values -- for @ThumbnailConfig@. -- -- If you specify values for @ContentConfig@ and @ThumbnailConfig@, omit -- the @OutputBucket@ object. -- -- - __Bucket__: The Amazon S3 bucket in which you want Elastic -- Transcoder to save transcoded files and playlists. -- -- - __Permissions__ (Optional): The Permissions object specifies which -- users you want to have access to transcoded files and the type of -- access you want them to have. You can grant permissions to a maximum -- of 30 users and\/or predefined Amazon S3 groups. -- -- - __Grantee Type__: Specify the type of value that appears in the -- @Grantee@ object: -- -- - __Canonical__: The value in the @Grantee@ object is either the -- canonical user ID for an AWS account or an origin access -- identity for an Amazon CloudFront distribution. For more -- information about canonical user IDs, see Access Control List -- (ACL) Overview in the Amazon Simple Storage Service Developer -- Guide. For more information about using CloudFront origin access -- identities to require that users use CloudFront URLs instead of -- Amazon S3 URLs, see Using an Origin Access Identity to Restrict -- Access to Your Amazon S3 Content. -- -- A canonical user ID is not the same as an AWS account number. -- -- - __Email__: The value in the @Grantee@ object is the registered -- email address of an AWS account. -- -- - __Group__: The value in the @Grantee@ object is one of the -- following predefined Amazon S3 groups: @AllUsers@, -- @AuthenticatedUsers@, or @LogDelivery@. -- -- - __Grantee__: The AWS user or group that you want to have access to -- transcoded files and playlists. To identify the user or group, you -- can specify the canonical user ID for an AWS account, an origin -- access identity for a CloudFront distribution, the registered email -- address of an AWS account, or a predefined Amazon S3 group -- -- - __Access__: The permission that you want to give to the AWS user -- that you specified in @Grantee@. Permissions are granted on the -- files that Elastic Transcoder adds to the bucket, including -- playlists and video files. Valid values include: -- -- - @READ@: The grantee can read the objects and metadata for -- objects that Elastic Transcoder adds to the Amazon S3 bucket. -- -- - @READ_ACP@: The grantee can read the object ACL for objects that -- Elastic Transcoder adds to the Amazon S3 bucket. -- -- - @WRITE_ACP@: The grantee can write the ACL for the objects that -- Elastic Transcoder adds to the Amazon S3 bucket. -- -- - @FULL_CONTROL@: The grantee has @READ@, @READ_ACP@, and -- @WRITE_ACP@ permissions for the objects that Elastic Transcoder -- adds to the Amazon S3 bucket. -- -- - __StorageClass__: The Amazon S3 storage class, @Standard@ or -- @ReducedRedundancy@, that you want Elastic Transcoder to assign to -- the video files and playlists that it stores in your Amazon S3 -- bucket. CreatePipeline -> Maybe PipelineOutputConfig contentConfig :: Prelude.Maybe PipelineOutputConfig, -- | The Amazon S3 bucket in which you want Elastic Transcoder to save the -- transcoded files. (Use this, or use ContentConfig:Bucket plus -- ThumbnailConfig:Bucket.) -- -- Specify this value when all of the following are true: -- -- - You want to save transcoded files, thumbnails (if any), and -- playlists (if any) together in one bucket. -- -- - You do not want to specify the users or groups who have access to -- the transcoded files, thumbnails, and playlists. -- -- - You do not want to specify the permissions that Elastic Transcoder -- grants to the files. -- -- When Elastic Transcoder saves files in @OutputBucket@, it grants -- full control over the files only to the AWS account that owns the -- role that is specified by @Role@. -- -- - You want to associate the transcoded files and thumbnails with the -- Amazon S3 Standard storage class. -- -- If you want to save transcoded files and playlists in one bucket and -- thumbnails in another bucket, specify which users can access the -- transcoded files or the permissions the users have, or change the Amazon -- S3 storage class, omit @OutputBucket@ and specify values for -- @ContentConfig@ and @ThumbnailConfig@ instead. CreatePipeline -> Maybe Text outputBucket :: Prelude.Maybe Prelude.Text, -- | 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-cbc-pkcs7@, @aes-ctr@, or -- @aes-gcm@. CreatePipeline -> Maybe Text awsKmsKeyArn :: Prelude.Maybe Prelude.Text, -- | The Amazon Simple Notification Service (Amazon SNS) topic that you want -- to notify to report job status. -- -- To receive notifications, you must also subscribe to the new topic in -- the Amazon SNS console. -- -- - __Progressing__: The topic ARN for the Amazon Simple Notification -- Service (Amazon SNS) topic that you want to notify when Elastic -- Transcoder has started to process a job in this pipeline. This is -- the ARN that Amazon SNS returned when you created the topic. For -- more information, see Create a Topic in the Amazon Simple -- Notification Service Developer Guide. -- -- - __Complete__: The topic ARN for the Amazon SNS topic that you want -- to notify when Elastic Transcoder has finished processing a job in -- this pipeline. This is the ARN that Amazon SNS returned when you -- created the topic. -- -- - __Warning__: The topic ARN for the Amazon SNS topic that you want to -- notify when Elastic Transcoder encounters a warning condition while -- processing a job in this pipeline. This is the ARN that Amazon SNS -- returned when you created the topic. -- -- - __Error__: The topic ARN for the Amazon SNS topic that you want to -- notify when Elastic Transcoder encounters an error condition while -- processing a job in this pipeline. This is the ARN that Amazon SNS -- returned when you created the topic. CreatePipeline -> Maybe Notifications notifications :: Prelude.Maybe Notifications, -- | The @ThumbnailConfig@ object specifies several values, including the -- Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail -- files, which users you want to have access to the files, the type of -- access you want users to have, and the storage class that you want to -- assign to the files. -- -- If you specify values for @ContentConfig@, you must also specify values -- for @ThumbnailConfig@ even if you don\'t want to create thumbnails. -- -- If you specify values for @ContentConfig@ and @ThumbnailConfig@, omit -- the @OutputBucket@ object. -- -- - __Bucket__: The Amazon S3 bucket in which you want Elastic -- Transcoder to save thumbnail files. -- -- - __Permissions__ (Optional): The @Permissions@ object specifies which -- users and\/or predefined Amazon S3 groups you want to have access to -- thumbnail files, and the type of access you want them to have. You -- can grant permissions to a maximum of 30 users and\/or predefined -- Amazon S3 groups. -- -- - __GranteeType__: Specify the type of value that appears in the -- Grantee object: -- -- - __Canonical__: The value in the @Grantee@ object is either the -- canonical user ID for an AWS account or an origin access -- identity for an Amazon CloudFront distribution. -- -- A canonical user ID is not the same as an AWS account number. -- -- - __Email__: The value in the @Grantee@ object is the registered -- email address of an AWS account. -- -- - __Group__: The value in the @Grantee@ object is one of the -- following predefined Amazon S3 groups: @AllUsers@, -- @AuthenticatedUsers@, or @LogDelivery@. -- -- - __Grantee__: The AWS user or group that you want to have access to -- thumbnail files. To identify the user or group, you can specify the -- canonical user ID for an AWS account, an origin access identity for -- a CloudFront distribution, the registered email address of an AWS -- account, or a predefined Amazon S3 group. -- -- - __Access__: The permission that you want to give to the AWS user -- that you specified in @Grantee@. Permissions are granted on the -- thumbnail files that Elastic Transcoder adds to the bucket. Valid -- values include: -- -- - @READ@: The grantee can read the thumbnails and metadata for -- objects that Elastic Transcoder adds to the Amazon S3 bucket. -- -- - @READ_ACP@: The grantee can read the object ACL for thumbnails -- that Elastic Transcoder adds to the Amazon S3 bucket. -- -- - @WRITE_ACP@: The grantee can write the ACL for the thumbnails -- that Elastic Transcoder adds to the Amazon S3 bucket. -- -- - @FULL_CONTROL@: The grantee has @READ@, @READ_ACP@, and -- @WRITE_ACP@ permissions for the thumbnails that Elastic -- Transcoder adds to the Amazon S3 bucket. -- -- - __StorageClass__: The Amazon S3 storage class, @Standard@ or -- @ReducedRedundancy@, that you want Elastic Transcoder to assign to -- the thumbnails that it stores in your Amazon S3 bucket. CreatePipeline -> Maybe PipelineOutputConfig thumbnailConfig :: Prelude.Maybe PipelineOutputConfig, -- | The name of the pipeline. We recommend that the name be unique within -- the AWS account, but uniqueness is not enforced. -- -- Constraints: Maximum 40 characters. CreatePipeline -> Text name :: Prelude.Text, -- | The Amazon S3 bucket in which you saved the media files that you want to -- transcode. CreatePipeline -> Text inputBucket :: Prelude.Text, -- | The IAM Amazon Resource Name (ARN) for the role that you want Elastic -- Transcoder to use to create the pipeline. CreatePipeline -> Text role' :: Prelude.Text } deriving (CreatePipeline -> CreatePipeline -> Bool (CreatePipeline -> CreatePipeline -> Bool) -> (CreatePipeline -> CreatePipeline -> Bool) -> Eq CreatePipeline forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: CreatePipeline -> CreatePipeline -> Bool $c/= :: CreatePipeline -> CreatePipeline -> Bool == :: CreatePipeline -> CreatePipeline -> Bool $c== :: CreatePipeline -> CreatePipeline -> Bool Prelude.Eq, ReadPrec [CreatePipeline] ReadPrec CreatePipeline Int -> ReadS CreatePipeline ReadS [CreatePipeline] (Int -> ReadS CreatePipeline) -> ReadS [CreatePipeline] -> ReadPrec CreatePipeline -> ReadPrec [CreatePipeline] -> Read CreatePipeline forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a readListPrec :: ReadPrec [CreatePipeline] $creadListPrec :: ReadPrec [CreatePipeline] readPrec :: ReadPrec CreatePipeline $creadPrec :: ReadPrec CreatePipeline readList :: ReadS [CreatePipeline] $creadList :: ReadS [CreatePipeline] readsPrec :: Int -> ReadS CreatePipeline $creadsPrec :: Int -> ReadS CreatePipeline Prelude.Read, Int -> CreatePipeline -> ShowS [CreatePipeline] -> ShowS CreatePipeline -> String (Int -> CreatePipeline -> ShowS) -> (CreatePipeline -> String) -> ([CreatePipeline] -> ShowS) -> Show CreatePipeline forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [CreatePipeline] -> ShowS $cshowList :: [CreatePipeline] -> ShowS show :: CreatePipeline -> String $cshow :: CreatePipeline -> String showsPrec :: Int -> CreatePipeline -> ShowS $cshowsPrec :: Int -> CreatePipeline -> ShowS Prelude.Show, (forall x. CreatePipeline -> Rep CreatePipeline x) -> (forall x. Rep CreatePipeline x -> CreatePipeline) -> Generic CreatePipeline forall x. Rep CreatePipeline x -> CreatePipeline forall x. CreatePipeline -> Rep CreatePipeline x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep CreatePipeline x -> CreatePipeline $cfrom :: forall x. CreatePipeline -> Rep CreatePipeline x Prelude.Generic) -- | -- Create a value of 'CreatePipeline' 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: -- -- 'contentConfig', 'createPipeline_contentConfig' - 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 files, the type of access you want users to have, and the -- storage class that you want to assign to the files. -- -- If you specify values for @ContentConfig@, you must also specify values -- for @ThumbnailConfig@. -- -- If you specify values for @ContentConfig@ and @ThumbnailConfig@, omit -- the @OutputBucket@ object. -- -- - __Bucket__: The Amazon S3 bucket in which you want Elastic -- Transcoder to save transcoded files and playlists. -- -- - __Permissions__ (Optional): The Permissions object specifies which -- users you want to have access to transcoded files and the type of -- access you want them to have. You can grant permissions to a maximum -- of 30 users and\/or predefined Amazon S3 groups. -- -- - __Grantee Type__: Specify the type of value that appears in the -- @Grantee@ object: -- -- - __Canonical__: The value in the @Grantee@ object is either the -- canonical user ID for an AWS account or an origin access -- identity for an Amazon CloudFront distribution. For more -- information about canonical user IDs, see Access Control List -- (ACL) Overview in the Amazon Simple Storage Service Developer -- Guide. For more information about using CloudFront origin access -- identities to require that users use CloudFront URLs instead of -- Amazon S3 URLs, see Using an Origin Access Identity to Restrict -- Access to Your Amazon S3 Content. -- -- A canonical user ID is not the same as an AWS account number. -- -- - __Email__: The value in the @Grantee@ object is the registered -- email address of an AWS account. -- -- - __Group__: The value in the @Grantee@ object is one of the -- following predefined Amazon S3 groups: @AllUsers@, -- @AuthenticatedUsers@, or @LogDelivery@. -- -- - __Grantee__: The AWS user or group that you want to have access to -- transcoded files and playlists. To identify the user or group, you -- can specify the canonical user ID for an AWS account, an origin -- access identity for a CloudFront distribution, the registered email -- address of an AWS account, or a predefined Amazon S3 group -- -- - __Access__: The permission that you want to give to the AWS user -- that you specified in @Grantee@. Permissions are granted on the -- files that Elastic Transcoder adds to the bucket, including -- playlists and video files. Valid values include: -- -- - @READ@: The grantee can read the objects and metadata for -- objects that Elastic Transcoder adds to the Amazon S3 bucket. -- -- - @READ_ACP@: The grantee can read the object ACL for objects that -- Elastic Transcoder adds to the Amazon S3 bucket. -- -- - @WRITE_ACP@: The grantee can write the ACL for the objects that -- Elastic Transcoder adds to the Amazon S3 bucket. -- -- - @FULL_CONTROL@: The grantee has @READ@, @READ_ACP@, and -- @WRITE_ACP@ permissions for the objects that Elastic Transcoder -- adds to the Amazon S3 bucket. -- -- - __StorageClass__: The Amazon S3 storage class, @Standard@ or -- @ReducedRedundancy@, that you want Elastic Transcoder to assign to -- the video files and playlists that it stores in your Amazon S3 -- bucket. -- -- 'outputBucket', 'createPipeline_outputBucket' - The Amazon S3 bucket in which you want Elastic Transcoder to save the -- transcoded files. (Use this, or use ContentConfig:Bucket plus -- ThumbnailConfig:Bucket.) -- -- Specify this value when all of the following are true: -- -- - You want to save transcoded files, thumbnails (if any), and -- playlists (if any) together in one bucket. -- -- - You do not want to specify the users or groups who have access to -- the transcoded files, thumbnails, and playlists. -- -- - You do not want to specify the permissions that Elastic Transcoder -- grants to the files. -- -- When Elastic Transcoder saves files in @OutputBucket@, it grants -- full control over the files only to the AWS account that owns the -- role that is specified by @Role@. -- -- - You want to associate the transcoded files and thumbnails with the -- Amazon S3 Standard storage class. -- -- If you want to save transcoded files and playlists in one bucket and -- thumbnails in another bucket, specify which users can access the -- transcoded files or the permissions the users have, or change the Amazon -- S3 storage class, omit @OutputBucket@ and specify values for -- @ContentConfig@ and @ThumbnailConfig@ instead. -- -- 'awsKmsKeyArn', 'createPipeline_awsKmsKeyArn' - 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-cbc-pkcs7@, @aes-ctr@, or -- @aes-gcm@. -- -- 'notifications', 'createPipeline_notifications' - The Amazon Simple Notification Service (Amazon SNS) topic that you want -- to notify to report job status. -- -- To receive notifications, you must also subscribe to the new topic in -- the Amazon SNS console. -- -- - __Progressing__: The topic ARN for the Amazon Simple Notification -- Service (Amazon SNS) topic that you want to notify when Elastic -- Transcoder has started to process a job in this pipeline. This is -- the ARN that Amazon SNS returned when you created the topic. For -- more information, see Create a Topic in the Amazon Simple -- Notification Service Developer Guide. -- -- - __Complete__: The topic ARN for the Amazon SNS topic that you want -- to notify when Elastic Transcoder has finished processing a job in -- this pipeline. This is the ARN that Amazon SNS returned when you -- created the topic. -- -- - __Warning__: The topic ARN for the Amazon SNS topic that you want to -- notify when Elastic Transcoder encounters a warning condition while -- processing a job in this pipeline. This is the ARN that Amazon SNS -- returned when you created the topic. -- -- - __Error__: The topic ARN for the Amazon SNS topic that you want to -- notify when Elastic Transcoder encounters an error condition while -- processing a job in this pipeline. This is the ARN that Amazon SNS -- returned when you created the topic. -- -- 'thumbnailConfig', 'createPipeline_thumbnailConfig' - The @ThumbnailConfig@ object specifies several values, including the -- Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail -- files, which users you want to have access to the files, the type of -- access you want users to have, and the storage class that you want to -- assign to the files. -- -- If you specify values for @ContentConfig@, you must also specify values -- for @ThumbnailConfig@ even if you don\'t want to create thumbnails. -- -- If you specify values for @ContentConfig@ and @ThumbnailConfig@, omit -- the @OutputBucket@ object. -- -- - __Bucket__: The Amazon S3 bucket in which you want Elastic -- Transcoder to save thumbnail files. -- -- - __Permissions__ (Optional): The @Permissions@ object specifies which -- users and\/or predefined Amazon S3 groups you want to have access to -- thumbnail files, and the type of access you want them to have. You -- can grant permissions to a maximum of 30 users and\/or predefined -- Amazon S3 groups. -- -- - __GranteeType__: Specify the type of value that appears in the -- Grantee object: -- -- - __Canonical__: The value in the @Grantee@ object is either the -- canonical user ID for an AWS account or an origin access -- identity for an Amazon CloudFront distribution. -- -- A canonical user ID is not the same as an AWS account number. -- -- - __Email__: The value in the @Grantee@ object is the registered -- email address of an AWS account. -- -- - __Group__: The value in the @Grantee@ object is one of the -- following predefined Amazon S3 groups: @AllUsers@, -- @AuthenticatedUsers@, or @LogDelivery@. -- -- - __Grantee__: The AWS user or group that you want to have access to -- thumbnail files. To identify the user or group, you can specify the -- canonical user ID for an AWS account, an origin access identity for -- a CloudFront distribution, the registered email address of an AWS -- account, or a predefined Amazon S3 group. -- -- - __Access__: The permission that you want to give to the AWS user -- that you specified in @Grantee@. Permissions are granted on the -- thumbnail files that Elastic Transcoder adds to the bucket. Valid -- values include: -- -- - @READ@: The grantee can read the thumbnails and metadata for -- objects that Elastic Transcoder adds to the Amazon S3 bucket. -- -- - @READ_ACP@: The grantee can read the object ACL for thumbnails -- that Elastic Transcoder adds to the Amazon S3 bucket. -- -- - @WRITE_ACP@: The grantee can write the ACL for the thumbnails -- that Elastic Transcoder adds to the Amazon S3 bucket. -- -- - @FULL_CONTROL@: The grantee has @READ@, @READ_ACP@, and -- @WRITE_ACP@ permissions for the thumbnails that Elastic -- Transcoder adds to the Amazon S3 bucket. -- -- - __StorageClass__: The Amazon S3 storage class, @Standard@ or -- @ReducedRedundancy@, that you want Elastic Transcoder to assign to -- the thumbnails that it stores in your Amazon S3 bucket. -- -- 'name', 'createPipeline_name' - The name of the pipeline. We recommend that the name be unique within -- the AWS account, but uniqueness is not enforced. -- -- Constraints: Maximum 40 characters. -- -- 'inputBucket', 'createPipeline_inputBucket' - The Amazon S3 bucket in which you saved the media files that you want to -- transcode. -- -- 'role'', 'createPipeline_role' - The IAM Amazon Resource Name (ARN) for the role that you want Elastic -- Transcoder to use to create the pipeline. newCreatePipeline :: -- | 'name' Prelude.Text -> -- | 'inputBucket' Prelude.Text -> -- | 'role'' Prelude.Text -> CreatePipeline newCreatePipeline :: Text -> Text -> Text -> CreatePipeline newCreatePipeline Text pName_ Text pInputBucket_ Text pRole_ = CreatePipeline' :: Maybe PipelineOutputConfig -> Maybe Text -> Maybe Text -> Maybe Notifications -> Maybe PipelineOutputConfig -> Text -> Text -> Text -> CreatePipeline CreatePipeline' { $sel:contentConfig:CreatePipeline' :: Maybe PipelineOutputConfig contentConfig = Maybe PipelineOutputConfig forall a. Maybe a Prelude.Nothing, $sel:outputBucket:CreatePipeline' :: Maybe Text outputBucket = Maybe Text forall a. Maybe a Prelude.Nothing, $sel:awsKmsKeyArn:CreatePipeline' :: Maybe Text awsKmsKeyArn = Maybe Text forall a. Maybe a Prelude.Nothing, $sel:notifications:CreatePipeline' :: Maybe Notifications notifications = Maybe Notifications forall a. Maybe a Prelude.Nothing, $sel:thumbnailConfig:CreatePipeline' :: Maybe PipelineOutputConfig thumbnailConfig = Maybe PipelineOutputConfig forall a. Maybe a Prelude.Nothing, $sel:name:CreatePipeline' :: Text name = Text pName_, $sel:inputBucket:CreatePipeline' :: Text inputBucket = Text pInputBucket_, $sel:role':CreatePipeline' :: Text role' = Text pRole_ } -- | 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 files, the type of access you want users to have, and the -- storage class that you want to assign to the files. -- -- If you specify values for @ContentConfig@, you must also specify values -- for @ThumbnailConfig@. -- -- If you specify values for @ContentConfig@ and @ThumbnailConfig@, omit -- the @OutputBucket@ object. -- -- - __Bucket__: The Amazon S3 bucket in which you want Elastic -- Transcoder to save transcoded files and playlists. -- -- - __Permissions__ (Optional): The Permissions object specifies which -- users you want to have access to transcoded files and the type of -- access you want them to have. You can grant permissions to a maximum -- of 30 users and\/or predefined Amazon S3 groups. -- -- - __Grantee Type__: Specify the type of value that appears in the -- @Grantee@ object: -- -- - __Canonical__: The value in the @Grantee@ object is either the -- canonical user ID for an AWS account or an origin access -- identity for an Amazon CloudFront distribution. For more -- information about canonical user IDs, see Access Control List -- (ACL) Overview in the Amazon Simple Storage Service Developer -- Guide. For more information about using CloudFront origin access -- identities to require that users use CloudFront URLs instead of -- Amazon S3 URLs, see Using an Origin Access Identity to Restrict -- Access to Your Amazon S3 Content. -- -- A canonical user ID is not the same as an AWS account number. -- -- - __Email__: The value in the @Grantee@ object is the registered -- email address of an AWS account. -- -- - __Group__: The value in the @Grantee@ object is one of the -- following predefined Amazon S3 groups: @AllUsers@, -- @AuthenticatedUsers@, or @LogDelivery@. -- -- - __Grantee__: The AWS user or group that you want to have access to -- transcoded files and playlists. To identify the user or group, you -- can specify the canonical user ID for an AWS account, an origin -- access identity for a CloudFront distribution, the registered email -- address of an AWS account, or a predefined Amazon S3 group -- -- - __Access__: The permission that you want to give to the AWS user -- that you specified in @Grantee@. Permissions are granted on the -- files that Elastic Transcoder adds to the bucket, including -- playlists and video files. Valid values include: -- -- - @READ@: The grantee can read the objects and metadata for -- objects that Elastic Transcoder adds to the Amazon S3 bucket. -- -- - @READ_ACP@: The grantee can read the object ACL for objects that -- Elastic Transcoder adds to the Amazon S3 bucket. -- -- - @WRITE_ACP@: The grantee can write the ACL for the objects that -- Elastic Transcoder adds to the Amazon S3 bucket. -- -- - @FULL_CONTROL@: The grantee has @READ@, @READ_ACP@, and -- @WRITE_ACP@ permissions for the objects that Elastic Transcoder -- adds to the Amazon S3 bucket. -- -- - __StorageClass__: The Amazon S3 storage class, @Standard@ or -- @ReducedRedundancy@, that you want Elastic Transcoder to assign to -- the video files and playlists that it stores in your Amazon S3 -- bucket. createPipeline_contentConfig :: Lens.Lens' CreatePipeline (Prelude.Maybe PipelineOutputConfig) createPipeline_contentConfig :: (Maybe PipelineOutputConfig -> f (Maybe PipelineOutputConfig)) -> CreatePipeline -> f CreatePipeline createPipeline_contentConfig = (CreatePipeline -> Maybe PipelineOutputConfig) -> (CreatePipeline -> Maybe PipelineOutputConfig -> CreatePipeline) -> Lens CreatePipeline CreatePipeline (Maybe PipelineOutputConfig) (Maybe PipelineOutputConfig) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreatePipeline' {Maybe PipelineOutputConfig contentConfig :: Maybe PipelineOutputConfig $sel:contentConfig:CreatePipeline' :: CreatePipeline -> Maybe PipelineOutputConfig contentConfig} -> Maybe PipelineOutputConfig contentConfig) (\s :: CreatePipeline s@CreatePipeline' {} Maybe PipelineOutputConfig a -> CreatePipeline s {$sel:contentConfig:CreatePipeline' :: Maybe PipelineOutputConfig contentConfig = Maybe PipelineOutputConfig a} :: CreatePipeline) -- | The Amazon S3 bucket in which you want Elastic Transcoder to save the -- transcoded files. (Use this, or use ContentConfig:Bucket plus -- ThumbnailConfig:Bucket.) -- -- Specify this value when all of the following are true: -- -- - You want to save transcoded files, thumbnails (if any), and -- playlists (if any) together in one bucket. -- -- - You do not want to specify the users or groups who have access to -- the transcoded files, thumbnails, and playlists. -- -- - You do not want to specify the permissions that Elastic Transcoder -- grants to the files. -- -- When Elastic Transcoder saves files in @OutputBucket@, it grants -- full control over the files only to the AWS account that owns the -- role that is specified by @Role@. -- -- - You want to associate the transcoded files and thumbnails with the -- Amazon S3 Standard storage class. -- -- If you want to save transcoded files and playlists in one bucket and -- thumbnails in another bucket, specify which users can access the -- transcoded files or the permissions the users have, or change the Amazon -- S3 storage class, omit @OutputBucket@ and specify values for -- @ContentConfig@ and @ThumbnailConfig@ instead. createPipeline_outputBucket :: Lens.Lens' CreatePipeline (Prelude.Maybe Prelude.Text) createPipeline_outputBucket :: (Maybe Text -> f (Maybe Text)) -> CreatePipeline -> f CreatePipeline createPipeline_outputBucket = (CreatePipeline -> Maybe Text) -> (CreatePipeline -> Maybe Text -> CreatePipeline) -> Lens CreatePipeline CreatePipeline (Maybe Text) (Maybe Text) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreatePipeline' {Maybe Text outputBucket :: Maybe Text $sel:outputBucket:CreatePipeline' :: CreatePipeline -> Maybe Text outputBucket} -> Maybe Text outputBucket) (\s :: CreatePipeline s@CreatePipeline' {} Maybe Text a -> CreatePipeline s {$sel:outputBucket:CreatePipeline' :: Maybe Text outputBucket = Maybe Text a} :: CreatePipeline) -- | 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-cbc-pkcs7@, @aes-ctr@, or -- @aes-gcm@. createPipeline_awsKmsKeyArn :: Lens.Lens' CreatePipeline (Prelude.Maybe Prelude.Text) createPipeline_awsKmsKeyArn :: (Maybe Text -> f (Maybe Text)) -> CreatePipeline -> f CreatePipeline createPipeline_awsKmsKeyArn = (CreatePipeline -> Maybe Text) -> (CreatePipeline -> Maybe Text -> CreatePipeline) -> Lens CreatePipeline CreatePipeline (Maybe Text) (Maybe Text) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreatePipeline' {Maybe Text awsKmsKeyArn :: Maybe Text $sel:awsKmsKeyArn:CreatePipeline' :: CreatePipeline -> Maybe Text awsKmsKeyArn} -> Maybe Text awsKmsKeyArn) (\s :: CreatePipeline s@CreatePipeline' {} Maybe Text a -> CreatePipeline s {$sel:awsKmsKeyArn:CreatePipeline' :: Maybe Text awsKmsKeyArn = Maybe Text a} :: CreatePipeline) -- | The Amazon Simple Notification Service (Amazon SNS) topic that you want -- to notify to report job status. -- -- To receive notifications, you must also subscribe to the new topic in -- the Amazon SNS console. -- -- - __Progressing__: The topic ARN for the Amazon Simple Notification -- Service (Amazon SNS) topic that you want to notify when Elastic -- Transcoder has started to process a job in this pipeline. This is -- the ARN that Amazon SNS returned when you created the topic. For -- more information, see Create a Topic in the Amazon Simple -- Notification Service Developer Guide. -- -- - __Complete__: The topic ARN for the Amazon SNS topic that you want -- to notify when Elastic Transcoder has finished processing a job in -- this pipeline. This is the ARN that Amazon SNS returned when you -- created the topic. -- -- - __Warning__: The topic ARN for the Amazon SNS topic that you want to -- notify when Elastic Transcoder encounters a warning condition while -- processing a job in this pipeline. This is the ARN that Amazon SNS -- returned when you created the topic. -- -- - __Error__: The topic ARN for the Amazon SNS topic that you want to -- notify when Elastic Transcoder encounters an error condition while -- processing a job in this pipeline. This is the ARN that Amazon SNS -- returned when you created the topic. createPipeline_notifications :: Lens.Lens' CreatePipeline (Prelude.Maybe Notifications) createPipeline_notifications :: (Maybe Notifications -> f (Maybe Notifications)) -> CreatePipeline -> f CreatePipeline createPipeline_notifications = (CreatePipeline -> Maybe Notifications) -> (CreatePipeline -> Maybe Notifications -> CreatePipeline) -> Lens CreatePipeline CreatePipeline (Maybe Notifications) (Maybe Notifications) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreatePipeline' {Maybe Notifications notifications :: Maybe Notifications $sel:notifications:CreatePipeline' :: CreatePipeline -> Maybe Notifications notifications} -> Maybe Notifications notifications) (\s :: CreatePipeline s@CreatePipeline' {} Maybe Notifications a -> CreatePipeline s {$sel:notifications:CreatePipeline' :: Maybe Notifications notifications = Maybe Notifications a} :: CreatePipeline) -- | The @ThumbnailConfig@ object specifies several values, including the -- Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail -- files, which users you want to have access to the files, the type of -- access you want users to have, and the storage class that you want to -- assign to the files. -- -- If you specify values for @ContentConfig@, you must also specify values -- for @ThumbnailConfig@ even if you don\'t want to create thumbnails. -- -- If you specify values for @ContentConfig@ and @ThumbnailConfig@, omit -- the @OutputBucket@ object. -- -- - __Bucket__: The Amazon S3 bucket in which you want Elastic -- Transcoder to save thumbnail files. -- -- - __Permissions__ (Optional): The @Permissions@ object specifies which -- users and\/or predefined Amazon S3 groups you want to have access to -- thumbnail files, and the type of access you want them to have. You -- can grant permissions to a maximum of 30 users and\/or predefined -- Amazon S3 groups. -- -- - __GranteeType__: Specify the type of value that appears in the -- Grantee object: -- -- - __Canonical__: The value in the @Grantee@ object is either the -- canonical user ID for an AWS account or an origin access -- identity for an Amazon CloudFront distribution. -- -- A canonical user ID is not the same as an AWS account number. -- -- - __Email__: The value in the @Grantee@ object is the registered -- email address of an AWS account. -- -- - __Group__: The value in the @Grantee@ object is one of the -- following predefined Amazon S3 groups: @AllUsers@, -- @AuthenticatedUsers@, or @LogDelivery@. -- -- - __Grantee__: The AWS user or group that you want to have access to -- thumbnail files. To identify the user or group, you can specify the -- canonical user ID for an AWS account, an origin access identity for -- a CloudFront distribution, the registered email address of an AWS -- account, or a predefined Amazon S3 group. -- -- - __Access__: The permission that you want to give to the AWS user -- that you specified in @Grantee@. Permissions are granted on the -- thumbnail files that Elastic Transcoder adds to the bucket. Valid -- values include: -- -- - @READ@: The grantee can read the thumbnails and metadata for -- objects that Elastic Transcoder adds to the Amazon S3 bucket. -- -- - @READ_ACP@: The grantee can read the object ACL for thumbnails -- that Elastic Transcoder adds to the Amazon S3 bucket. -- -- - @WRITE_ACP@: The grantee can write the ACL for the thumbnails -- that Elastic Transcoder adds to the Amazon S3 bucket. -- -- - @FULL_CONTROL@: The grantee has @READ@, @READ_ACP@, and -- @WRITE_ACP@ permissions for the thumbnails that Elastic -- Transcoder adds to the Amazon S3 bucket. -- -- - __StorageClass__: The Amazon S3 storage class, @Standard@ or -- @ReducedRedundancy@, that you want Elastic Transcoder to assign to -- the thumbnails that it stores in your Amazon S3 bucket. createPipeline_thumbnailConfig :: Lens.Lens' CreatePipeline (Prelude.Maybe PipelineOutputConfig) createPipeline_thumbnailConfig :: (Maybe PipelineOutputConfig -> f (Maybe PipelineOutputConfig)) -> CreatePipeline -> f CreatePipeline createPipeline_thumbnailConfig = (CreatePipeline -> Maybe PipelineOutputConfig) -> (CreatePipeline -> Maybe PipelineOutputConfig -> CreatePipeline) -> Lens CreatePipeline CreatePipeline (Maybe PipelineOutputConfig) (Maybe PipelineOutputConfig) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreatePipeline' {Maybe PipelineOutputConfig thumbnailConfig :: Maybe PipelineOutputConfig $sel:thumbnailConfig:CreatePipeline' :: CreatePipeline -> Maybe PipelineOutputConfig thumbnailConfig} -> Maybe PipelineOutputConfig thumbnailConfig) (\s :: CreatePipeline s@CreatePipeline' {} Maybe PipelineOutputConfig a -> CreatePipeline s {$sel:thumbnailConfig:CreatePipeline' :: Maybe PipelineOutputConfig thumbnailConfig = Maybe PipelineOutputConfig a} :: CreatePipeline) -- | The name of the pipeline. We recommend that the name be unique within -- the AWS account, but uniqueness is not enforced. -- -- Constraints: Maximum 40 characters. createPipeline_name :: Lens.Lens' CreatePipeline Prelude.Text createPipeline_name :: (Text -> f Text) -> CreatePipeline -> f CreatePipeline createPipeline_name = (CreatePipeline -> Text) -> (CreatePipeline -> Text -> CreatePipeline) -> Lens CreatePipeline CreatePipeline Text Text forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreatePipeline' {Text name :: Text $sel:name:CreatePipeline' :: CreatePipeline -> Text name} -> Text name) (\s :: CreatePipeline s@CreatePipeline' {} Text a -> CreatePipeline s {$sel:name:CreatePipeline' :: Text name = Text a} :: CreatePipeline) -- | The Amazon S3 bucket in which you saved the media files that you want to -- transcode. createPipeline_inputBucket :: Lens.Lens' CreatePipeline Prelude.Text createPipeline_inputBucket :: (Text -> f Text) -> CreatePipeline -> f CreatePipeline createPipeline_inputBucket = (CreatePipeline -> Text) -> (CreatePipeline -> Text -> CreatePipeline) -> Lens CreatePipeline CreatePipeline Text Text forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreatePipeline' {Text inputBucket :: Text $sel:inputBucket:CreatePipeline' :: CreatePipeline -> Text inputBucket} -> Text inputBucket) (\s :: CreatePipeline s@CreatePipeline' {} Text a -> CreatePipeline s {$sel:inputBucket:CreatePipeline' :: Text inputBucket = Text a} :: CreatePipeline) -- | The IAM Amazon Resource Name (ARN) for the role that you want Elastic -- Transcoder to use to create the pipeline. createPipeline_role :: Lens.Lens' CreatePipeline Prelude.Text createPipeline_role :: (Text -> f Text) -> CreatePipeline -> f CreatePipeline createPipeline_role = (CreatePipeline -> Text) -> (CreatePipeline -> Text -> CreatePipeline) -> Lens CreatePipeline CreatePipeline Text Text forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreatePipeline' {Text role' :: Text $sel:role':CreatePipeline' :: CreatePipeline -> Text role'} -> Text role') (\s :: CreatePipeline s@CreatePipeline' {} Text a -> CreatePipeline s {$sel:role':CreatePipeline' :: Text role' = Text a} :: CreatePipeline) instance Core.AWSRequest CreatePipeline where type AWSResponse CreatePipeline = CreatePipelineResponse request :: CreatePipeline -> Request CreatePipeline request = Service -> CreatePipeline -> Request CreatePipeline forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a Request.postJSON Service defaultService response :: Logger -> Service -> Proxy CreatePipeline -> ClientResponse ClientBody -> m (Either Error (ClientResponse (AWSResponse CreatePipeline))) response = (Int -> ResponseHeaders -> Object -> Either String (AWSResponse CreatePipeline)) -> Logger -> Service -> Proxy CreatePipeline -> ClientResponse ClientBody -> m (Either Error (ClientResponse (AWSResponse CreatePipeline))) forall (m :: * -> *) a. MonadResource m => (Int -> ResponseHeaders -> Object -> Either String (AWSResponse a)) -> Logger -> Service -> Proxy a -> ClientResponse ClientBody -> m (Either Error (ClientResponse (AWSResponse a))) Response.receiveJSON ( \Int s ResponseHeaders h Object x -> Maybe [Warning] -> Maybe Pipeline -> Int -> CreatePipelineResponse CreatePipelineResponse' (Maybe [Warning] -> Maybe Pipeline -> Int -> CreatePipelineResponse) -> Either String (Maybe [Warning]) -> Either String (Maybe Pipeline -> Int -> CreatePipelineResponse) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> (Object x Object -> Text -> Either String (Maybe (Maybe [Warning])) forall a. FromJSON a => Object -> Text -> Either String (Maybe a) Core..?> Text "Warnings" Either String (Maybe (Maybe [Warning])) -> Maybe [Warning] -> Either String (Maybe [Warning]) forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a Core..!@ Maybe [Warning] forall a. Monoid a => a Prelude.mempty) Either String (Maybe Pipeline -> Int -> CreatePipelineResponse) -> Either String (Maybe Pipeline) -> Either String (Int -> CreatePipelineResponse) forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b Prelude.<*> (Object x Object -> Text -> Either String (Maybe Pipeline) forall a. FromJSON a => Object -> Text -> Either String (Maybe a) Core..?> Text "Pipeline") Either String (Int -> CreatePipelineResponse) -> Either String Int -> Either String CreatePipelineResponse forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b Prelude.<*> (Int -> Either String Int forall (f :: * -> *) a. Applicative f => a -> f a Prelude.pure (Int -> Int forall a. Enum a => a -> Int Prelude.fromEnum Int s)) ) instance Prelude.Hashable CreatePipeline instance Prelude.NFData CreatePipeline instance Core.ToHeaders CreatePipeline where toHeaders :: CreatePipeline -> ResponseHeaders toHeaders = ResponseHeaders -> CreatePipeline -> ResponseHeaders forall a b. a -> b -> a Prelude.const ResponseHeaders forall a. Monoid a => a Prelude.mempty instance Core.ToJSON CreatePipeline where toJSON :: CreatePipeline -> Value toJSON CreatePipeline' {Maybe Text Maybe Notifications Maybe PipelineOutputConfig Text role' :: Text inputBucket :: Text name :: Text thumbnailConfig :: Maybe PipelineOutputConfig notifications :: Maybe Notifications awsKmsKeyArn :: Maybe Text outputBucket :: Maybe Text contentConfig :: Maybe PipelineOutputConfig $sel:role':CreatePipeline' :: CreatePipeline -> Text $sel:inputBucket:CreatePipeline' :: CreatePipeline -> Text $sel:name:CreatePipeline' :: CreatePipeline -> Text $sel:thumbnailConfig:CreatePipeline' :: CreatePipeline -> Maybe PipelineOutputConfig $sel:notifications:CreatePipeline' :: CreatePipeline -> Maybe Notifications $sel:awsKmsKeyArn:CreatePipeline' :: CreatePipeline -> Maybe Text $sel:outputBucket:CreatePipeline' :: CreatePipeline -> Maybe Text $sel:contentConfig:CreatePipeline' :: CreatePipeline -> Maybe PipelineOutputConfig ..} = [Pair] -> Value Core.object ( [Maybe Pair] -> [Pair] forall a. [Maybe a] -> [a] Prelude.catMaybes [ (Text "ContentConfig" Text -> PipelineOutputConfig -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) (PipelineOutputConfig -> Pair) -> Maybe PipelineOutputConfig -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe PipelineOutputConfig contentConfig, (Text "OutputBucket" Text -> Text -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe Text outputBucket, (Text "AwsKmsKeyArn" Text -> Text -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe Text awsKmsKeyArn, (Text "Notifications" Text -> Notifications -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) (Notifications -> Pair) -> Maybe Notifications -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe Notifications notifications, (Text "ThumbnailConfig" Text -> PipelineOutputConfig -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) (PipelineOutputConfig -> Pair) -> Maybe PipelineOutputConfig -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe PipelineOutputConfig thumbnailConfig, Pair -> Maybe Pair forall a. a -> Maybe a Prelude.Just (Text "Name" Text -> Text -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..= Text name), Pair -> Maybe Pair forall a. a -> Maybe a Prelude.Just (Text "InputBucket" Text -> Text -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..= Text inputBucket), Pair -> Maybe Pair forall a. a -> Maybe a Prelude.Just (Text "Role" Text -> Text -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..= Text role') ] ) instance Core.ToPath CreatePipeline where toPath :: CreatePipeline -> ByteString toPath = ByteString -> CreatePipeline -> ByteString forall a b. a -> b -> a Prelude.const ByteString "/2012-09-25/pipelines" instance Core.ToQuery CreatePipeline where toQuery :: CreatePipeline -> QueryString toQuery = QueryString -> CreatePipeline -> QueryString forall a b. a -> b -> a Prelude.const QueryString forall a. Monoid a => a Prelude.mempty -- | When you create a pipeline, Elastic Transcoder returns the values that -- you specified in the request. -- -- /See:/ 'newCreatePipelineResponse' smart constructor. data CreatePipelineResponse = CreatePipelineResponse' { -- | Elastic Transcoder returns a warning if the resources used by your -- pipeline are not in the same region as the pipeline. -- -- Using resources in the same region, such as your Amazon S3 buckets, -- Amazon SNS notification topics, and AWS KMS key, reduces processing time -- and prevents cross-regional charges. CreatePipelineResponse -> Maybe [Warning] warnings :: Prelude.Maybe [Warning], -- | A section of the response body that provides information about the -- pipeline that is created. CreatePipelineResponse -> Maybe Pipeline pipeline :: Prelude.Maybe Pipeline, -- | The response's http status code. CreatePipelineResponse -> Int httpStatus :: Prelude.Int } deriving (CreatePipelineResponse -> CreatePipelineResponse -> Bool (CreatePipelineResponse -> CreatePipelineResponse -> Bool) -> (CreatePipelineResponse -> CreatePipelineResponse -> Bool) -> Eq CreatePipelineResponse forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: CreatePipelineResponse -> CreatePipelineResponse -> Bool $c/= :: CreatePipelineResponse -> CreatePipelineResponse -> Bool == :: CreatePipelineResponse -> CreatePipelineResponse -> Bool $c== :: CreatePipelineResponse -> CreatePipelineResponse -> Bool Prelude.Eq, ReadPrec [CreatePipelineResponse] ReadPrec CreatePipelineResponse Int -> ReadS CreatePipelineResponse ReadS [CreatePipelineResponse] (Int -> ReadS CreatePipelineResponse) -> ReadS [CreatePipelineResponse] -> ReadPrec CreatePipelineResponse -> ReadPrec [CreatePipelineResponse] -> Read CreatePipelineResponse forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a readListPrec :: ReadPrec [CreatePipelineResponse] $creadListPrec :: ReadPrec [CreatePipelineResponse] readPrec :: ReadPrec CreatePipelineResponse $creadPrec :: ReadPrec CreatePipelineResponse readList :: ReadS [CreatePipelineResponse] $creadList :: ReadS [CreatePipelineResponse] readsPrec :: Int -> ReadS CreatePipelineResponse $creadsPrec :: Int -> ReadS CreatePipelineResponse Prelude.Read, Int -> CreatePipelineResponse -> ShowS [CreatePipelineResponse] -> ShowS CreatePipelineResponse -> String (Int -> CreatePipelineResponse -> ShowS) -> (CreatePipelineResponse -> String) -> ([CreatePipelineResponse] -> ShowS) -> Show CreatePipelineResponse forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [CreatePipelineResponse] -> ShowS $cshowList :: [CreatePipelineResponse] -> ShowS show :: CreatePipelineResponse -> String $cshow :: CreatePipelineResponse -> String showsPrec :: Int -> CreatePipelineResponse -> ShowS $cshowsPrec :: Int -> CreatePipelineResponse -> ShowS Prelude.Show, (forall x. CreatePipelineResponse -> Rep CreatePipelineResponse x) -> (forall x. Rep CreatePipelineResponse x -> CreatePipelineResponse) -> Generic CreatePipelineResponse forall x. Rep CreatePipelineResponse x -> CreatePipelineResponse forall x. CreatePipelineResponse -> Rep CreatePipelineResponse x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep CreatePipelineResponse x -> CreatePipelineResponse $cfrom :: forall x. CreatePipelineResponse -> Rep CreatePipelineResponse x Prelude.Generic) -- | -- Create a value of 'CreatePipelineResponse' 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: -- -- 'warnings', 'createPipelineResponse_warnings' - Elastic Transcoder returns a warning if the resources used by your -- pipeline are not in the same region as the pipeline. -- -- Using resources in the same region, such as your Amazon S3 buckets, -- Amazon SNS notification topics, and AWS KMS key, reduces processing time -- and prevents cross-regional charges. -- -- 'pipeline', 'createPipelineResponse_pipeline' - A section of the response body that provides information about the -- pipeline that is created. -- -- 'httpStatus', 'createPipelineResponse_httpStatus' - The response's http status code. newCreatePipelineResponse :: -- | 'httpStatus' Prelude.Int -> CreatePipelineResponse newCreatePipelineResponse :: Int -> CreatePipelineResponse newCreatePipelineResponse Int pHttpStatus_ = CreatePipelineResponse' :: Maybe [Warning] -> Maybe Pipeline -> Int -> CreatePipelineResponse CreatePipelineResponse' { $sel:warnings:CreatePipelineResponse' :: Maybe [Warning] warnings = Maybe [Warning] forall a. Maybe a Prelude.Nothing, $sel:pipeline:CreatePipelineResponse' :: Maybe Pipeline pipeline = Maybe Pipeline forall a. Maybe a Prelude.Nothing, $sel:httpStatus:CreatePipelineResponse' :: Int httpStatus = Int pHttpStatus_ } -- | Elastic Transcoder returns a warning if the resources used by your -- pipeline are not in the same region as the pipeline. -- -- Using resources in the same region, such as your Amazon S3 buckets, -- Amazon SNS notification topics, and AWS KMS key, reduces processing time -- and prevents cross-regional charges. createPipelineResponse_warnings :: Lens.Lens' CreatePipelineResponse (Prelude.Maybe [Warning]) createPipelineResponse_warnings :: (Maybe [Warning] -> f (Maybe [Warning])) -> CreatePipelineResponse -> f CreatePipelineResponse createPipelineResponse_warnings = (CreatePipelineResponse -> Maybe [Warning]) -> (CreatePipelineResponse -> Maybe [Warning] -> CreatePipelineResponse) -> Lens CreatePipelineResponse CreatePipelineResponse (Maybe [Warning]) (Maybe [Warning]) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreatePipelineResponse' {Maybe [Warning] warnings :: Maybe [Warning] $sel:warnings:CreatePipelineResponse' :: CreatePipelineResponse -> Maybe [Warning] warnings} -> Maybe [Warning] warnings) (\s :: CreatePipelineResponse s@CreatePipelineResponse' {} Maybe [Warning] a -> CreatePipelineResponse s {$sel:warnings:CreatePipelineResponse' :: Maybe [Warning] warnings = Maybe [Warning] a} :: CreatePipelineResponse) ((Maybe [Warning] -> f (Maybe [Warning])) -> CreatePipelineResponse -> f CreatePipelineResponse) -> ((Maybe [Warning] -> f (Maybe [Warning])) -> Maybe [Warning] -> f (Maybe [Warning])) -> (Maybe [Warning] -> f (Maybe [Warning])) -> CreatePipelineResponse -> f CreatePipelineResponse forall b c a. (b -> c) -> (a -> b) -> a -> c Prelude.. AnIso [Warning] [Warning] [Warning] [Warning] -> Iso (Maybe [Warning]) (Maybe [Warning]) (Maybe [Warning]) (Maybe [Warning]) forall (f :: * -> *) (g :: * -> *) s t a b. (Functor f, Functor g) => AnIso s t a b -> Iso (f s) (g t) (f a) (g b) Lens.mapping AnIso [Warning] [Warning] [Warning] [Warning] forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b Lens.coerced -- | A section of the response body that provides information about the -- pipeline that is created. createPipelineResponse_pipeline :: Lens.Lens' CreatePipelineResponse (Prelude.Maybe Pipeline) createPipelineResponse_pipeline :: (Maybe Pipeline -> f (Maybe Pipeline)) -> CreatePipelineResponse -> f CreatePipelineResponse createPipelineResponse_pipeline = (CreatePipelineResponse -> Maybe Pipeline) -> (CreatePipelineResponse -> Maybe Pipeline -> CreatePipelineResponse) -> Lens CreatePipelineResponse CreatePipelineResponse (Maybe Pipeline) (Maybe Pipeline) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreatePipelineResponse' {Maybe Pipeline pipeline :: Maybe Pipeline $sel:pipeline:CreatePipelineResponse' :: CreatePipelineResponse -> Maybe Pipeline pipeline} -> Maybe Pipeline pipeline) (\s :: CreatePipelineResponse s@CreatePipelineResponse' {} Maybe Pipeline a -> CreatePipelineResponse s {$sel:pipeline:CreatePipelineResponse' :: Maybe Pipeline pipeline = Maybe Pipeline a} :: CreatePipelineResponse) -- | The response's http status code. createPipelineResponse_httpStatus :: Lens.Lens' CreatePipelineResponse Prelude.Int createPipelineResponse_httpStatus :: (Int -> f Int) -> CreatePipelineResponse -> f CreatePipelineResponse createPipelineResponse_httpStatus = (CreatePipelineResponse -> Int) -> (CreatePipelineResponse -> Int -> CreatePipelineResponse) -> Lens CreatePipelineResponse CreatePipelineResponse Int Int forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreatePipelineResponse' {Int httpStatus :: Int $sel:httpStatus:CreatePipelineResponse' :: CreatePipelineResponse -> Int httpStatus} -> Int httpStatus) (\s :: CreatePipelineResponse s@CreatePipelineResponse' {} Int a -> CreatePipelineResponse s {$sel:httpStatus:CreatePipelineResponse' :: Int httpStatus = Int a} :: CreatePipelineResponse) instance Prelude.NFData CreatePipelineResponse