aws_sdk_elastictranscoder/operation/create_pipeline/
_create_pipeline_input.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2
3/// <p>The <code>CreatePipelineRequest</code> structure.</p>
4#[non_exhaustive]
5#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
6pub struct CreatePipelineInput {
7    /// <p>The name of the pipeline. We recommend that the name be unique within the AWS account, but uniqueness is not enforced.</p>
8    /// <p>Constraints: Maximum 40 characters.</p>
9    pub name: ::std::option::Option<::std::string::String>,
10    /// <p>The Amazon S3 bucket in which you saved the media files that you want to transcode.</p>
11    pub input_bucket: ::std::option::Option<::std::string::String>,
12    /// <p>The Amazon S3 bucket in which you want Elastic Transcoder to save the transcoded files. (Use this, or use ContentConfig:Bucket plus ThumbnailConfig:Bucket.)</p>
13    /// <p>Specify this value when all of the following are true:</p>
14    /// <ul>
15    /// <li>
16    /// <p>You want to save transcoded files, thumbnails (if any), and playlists (if any) together in one bucket.</p></li>
17    /// <li>
18    /// <p>You do not want to specify the users or groups who have access to the transcoded files, thumbnails, and playlists.</p></li>
19    /// <li>
20    /// <p>You do not want to specify the permissions that Elastic Transcoder grants to the files.</p><important>
21    /// <p>When Elastic Transcoder saves files in <code>OutputBucket</code>, it grants full control over the files only to the AWS account that owns the role that is specified by <code>Role</code>.</p>
22    /// </important></li>
23    /// <li>
24    /// <p>You want to associate the transcoded files and thumbnails with the Amazon S3 Standard storage class.</p></li>
25    /// </ul>
26    /// <p>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 <code>OutputBucket</code> and specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code> instead.</p>
27    pub output_bucket: ::std::option::Option<::std::string::String>,
28    /// <p>The IAM Amazon Resource Name (ARN) for the role that you want Elastic Transcoder to use to create the pipeline.</p>
29    pub role: ::std::option::Option<::std::string::String>,
30    /// <p>The AWS Key Management Service (AWS KMS) key that you want to use with this pipeline.</p>
31    /// <p>If you use either <code>s3</code> or <code>s3-aws-kms</code> as your <code>Encryption:Mode</code>, 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 <code>Encryption:Mode</code> of <code>aes-cbc-pkcs7</code>, <code>aes-ctr</code>, or <code>aes-gcm</code>.</p>
32    pub aws_kms_key_arn: ::std::option::Option<::std::string::String>,
33    /// <p>The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify to report job status.</p><important>
34    /// <p>To receive notifications, you must also subscribe to the new topic in the Amazon SNS console.</p>
35    /// </important>
36    /// <ul>
37    /// <li>
38    /// <p><b>Progressing</b>: 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.</p></li>
39    /// <li>
40    /// <p><b>Complete</b>: 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.</p></li>
41    /// <li>
42    /// <p><b>Warning</b>: 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.</p></li>
43    /// <li>
44    /// <p><b>Error</b>: 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.</p></li>
45    /// </ul>
46    pub notifications: ::std::option::Option<crate::types::Notifications>,
47    /// <p>The optional <code>ContentConfig</code> 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.</p>
48    /// <p>If you specify values for <code>ContentConfig</code>, you must also specify values for <code>ThumbnailConfig</code>.</p>
49    /// <p>If you specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code>, omit the <code>OutputBucket</code> object.</p>
50    /// <ul>
51    /// <li>
52    /// <p><b>Bucket</b>: The Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists.</p></li>
53    /// <li>
54    /// <p><b>Permissions</b> (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.</p></li>
55    /// <li>
56    /// <p><b>Grantee Type</b>: Specify the type of value that appears in the <code>Grantee</code> object:</p>
57    /// <ul>
58    /// <li>
59    /// <p><b>Canonical</b>: The value in the <code>Grantee</code> 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.</p><important>
60    /// <p>A canonical user ID is not the same as an AWS account number.</p>
61    /// </important></li>
62    /// <li>
63    /// <p><b>Email</b>: The value in the <code>Grantee</code> object is the registered email address of an AWS account.</p></li>
64    /// <li>
65    /// <p><b>Group</b>: The value in the <code>Grantee</code> object is one of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>.</p></li>
66    /// </ul></li>
67    /// <li>
68    /// <p><b>Grantee</b>: 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</p></li>
69    /// <li>
70    /// <p><b>Access</b>: The permission that you want to give to the AWS user that you specified in <code>Grantee</code>. Permissions are granted on the files that Elastic Transcoder adds to the bucket, including playlists and video files. Valid values include:</p>
71    /// <ul>
72    /// <li>
73    /// <p><code>READ</code>: The grantee can read the objects and metadata for objects that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
74    /// <li>
75    /// <p><code>READ_ACP</code>: The grantee can read the object ACL for objects that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
76    /// <li>
77    /// <p><code>WRITE_ACP</code>: The grantee can write the ACL for the objects that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
78    /// <li>
79    /// <p><code>FULL_CONTROL</code>: The grantee has <code>READ</code>, <code>READ_ACP</code>, and <code>WRITE_ACP</code> permissions for the objects that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
80    /// </ul></li>
81    /// <li>
82    /// <p><b>StorageClass</b>: The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket.</p></li>
83    /// </ul>
84    pub content_config: ::std::option::Option<crate::types::PipelineOutputConfig>,
85    /// <p>The <code>ThumbnailConfig</code> 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.</p>
86    /// <p>If you specify values for <code>ContentConfig</code>, you must also specify values for <code>ThumbnailConfig</code> even if you don't want to create thumbnails.</p>
87    /// <p>If you specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code>, omit the <code>OutputBucket</code> object.</p>
88    /// <ul>
89    /// <li>
90    /// <p><b>Bucket</b>: The Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files.</p></li>
91    /// <li>
92    /// <p><b>Permissions</b> (Optional): The <code>Permissions</code> 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.</p></li>
93    /// <li>
94    /// <p><b>GranteeType</b>: Specify the type of value that appears in the Grantee object:</p>
95    /// <ul>
96    /// <li>
97    /// <p><b>Canonical</b>: The value in the <code>Grantee</code> object is either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution.</p><important>
98    /// <p>A canonical user ID is not the same as an AWS account number.</p>
99    /// </important></li>
100    /// <li>
101    /// <p><b>Email</b>: The value in the <code>Grantee</code> object is the registered email address of an AWS account.</p></li>
102    /// <li>
103    /// <p><b>Group</b>: The value in the <code>Grantee</code> object is one of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>.</p></li>
104    /// </ul></li>
105    /// <li>
106    /// <p><b>Grantee</b>: 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.</p></li>
107    /// <li>
108    /// <p><b>Access</b>: The permission that you want to give to the AWS user that you specified in <code>Grantee</code>. Permissions are granted on the thumbnail files that Elastic Transcoder adds to the bucket. Valid values include:</p>
109    /// <ul>
110    /// <li>
111    /// <p><code>READ</code>: The grantee can read the thumbnails and metadata for objects that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
112    /// <li>
113    /// <p><code>READ_ACP</code>: The grantee can read the object ACL for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
114    /// <li>
115    /// <p><code>WRITE_ACP</code>: The grantee can write the ACL for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
116    /// <li>
117    /// <p><code>FULL_CONTROL</code>: The grantee has <code>READ</code>, <code>READ_ACP</code>, and <code>WRITE_ACP</code> permissions for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
118    /// </ul></li>
119    /// <li>
120    /// <p><b>StorageClass</b>: The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the thumbnails that it stores in your Amazon S3 bucket.</p></li>
121    /// </ul>
122    pub thumbnail_config: ::std::option::Option<crate::types::PipelineOutputConfig>,
123}
124impl CreatePipelineInput {
125    /// <p>The name of the pipeline. We recommend that the name be unique within the AWS account, but uniqueness is not enforced.</p>
126    /// <p>Constraints: Maximum 40 characters.</p>
127    pub fn name(&self) -> ::std::option::Option<&str> {
128        self.name.as_deref()
129    }
130    /// <p>The Amazon S3 bucket in which you saved the media files that you want to transcode.</p>
131    pub fn input_bucket(&self) -> ::std::option::Option<&str> {
132        self.input_bucket.as_deref()
133    }
134    /// <p>The Amazon S3 bucket in which you want Elastic Transcoder to save the transcoded files. (Use this, or use ContentConfig:Bucket plus ThumbnailConfig:Bucket.)</p>
135    /// <p>Specify this value when all of the following are true:</p>
136    /// <ul>
137    /// <li>
138    /// <p>You want to save transcoded files, thumbnails (if any), and playlists (if any) together in one bucket.</p></li>
139    /// <li>
140    /// <p>You do not want to specify the users or groups who have access to the transcoded files, thumbnails, and playlists.</p></li>
141    /// <li>
142    /// <p>You do not want to specify the permissions that Elastic Transcoder grants to the files.</p><important>
143    /// <p>When Elastic Transcoder saves files in <code>OutputBucket</code>, it grants full control over the files only to the AWS account that owns the role that is specified by <code>Role</code>.</p>
144    /// </important></li>
145    /// <li>
146    /// <p>You want to associate the transcoded files and thumbnails with the Amazon S3 Standard storage class.</p></li>
147    /// </ul>
148    /// <p>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 <code>OutputBucket</code> and specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code> instead.</p>
149    pub fn output_bucket(&self) -> ::std::option::Option<&str> {
150        self.output_bucket.as_deref()
151    }
152    /// <p>The IAM Amazon Resource Name (ARN) for the role that you want Elastic Transcoder to use to create the pipeline.</p>
153    pub fn role(&self) -> ::std::option::Option<&str> {
154        self.role.as_deref()
155    }
156    /// <p>The AWS Key Management Service (AWS KMS) key that you want to use with this pipeline.</p>
157    /// <p>If you use either <code>s3</code> or <code>s3-aws-kms</code> as your <code>Encryption:Mode</code>, 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 <code>Encryption:Mode</code> of <code>aes-cbc-pkcs7</code>, <code>aes-ctr</code>, or <code>aes-gcm</code>.</p>
158    pub fn aws_kms_key_arn(&self) -> ::std::option::Option<&str> {
159        self.aws_kms_key_arn.as_deref()
160    }
161    /// <p>The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify to report job status.</p><important>
162    /// <p>To receive notifications, you must also subscribe to the new topic in the Amazon SNS console.</p>
163    /// </important>
164    /// <ul>
165    /// <li>
166    /// <p><b>Progressing</b>: 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.</p></li>
167    /// <li>
168    /// <p><b>Complete</b>: 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.</p></li>
169    /// <li>
170    /// <p><b>Warning</b>: 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.</p></li>
171    /// <li>
172    /// <p><b>Error</b>: 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.</p></li>
173    /// </ul>
174    pub fn notifications(&self) -> ::std::option::Option<&crate::types::Notifications> {
175        self.notifications.as_ref()
176    }
177    /// <p>The optional <code>ContentConfig</code> 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.</p>
178    /// <p>If you specify values for <code>ContentConfig</code>, you must also specify values for <code>ThumbnailConfig</code>.</p>
179    /// <p>If you specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code>, omit the <code>OutputBucket</code> object.</p>
180    /// <ul>
181    /// <li>
182    /// <p><b>Bucket</b>: The Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists.</p></li>
183    /// <li>
184    /// <p><b>Permissions</b> (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.</p></li>
185    /// <li>
186    /// <p><b>Grantee Type</b>: Specify the type of value that appears in the <code>Grantee</code> object:</p>
187    /// <ul>
188    /// <li>
189    /// <p><b>Canonical</b>: The value in the <code>Grantee</code> 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.</p><important>
190    /// <p>A canonical user ID is not the same as an AWS account number.</p>
191    /// </important></li>
192    /// <li>
193    /// <p><b>Email</b>: The value in the <code>Grantee</code> object is the registered email address of an AWS account.</p></li>
194    /// <li>
195    /// <p><b>Group</b>: The value in the <code>Grantee</code> object is one of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>.</p></li>
196    /// </ul></li>
197    /// <li>
198    /// <p><b>Grantee</b>: 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</p></li>
199    /// <li>
200    /// <p><b>Access</b>: The permission that you want to give to the AWS user that you specified in <code>Grantee</code>. Permissions are granted on the files that Elastic Transcoder adds to the bucket, including playlists and video files. Valid values include:</p>
201    /// <ul>
202    /// <li>
203    /// <p><code>READ</code>: The grantee can read the objects and metadata for objects that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
204    /// <li>
205    /// <p><code>READ_ACP</code>: The grantee can read the object ACL for objects that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
206    /// <li>
207    /// <p><code>WRITE_ACP</code>: The grantee can write the ACL for the objects that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
208    /// <li>
209    /// <p><code>FULL_CONTROL</code>: The grantee has <code>READ</code>, <code>READ_ACP</code>, and <code>WRITE_ACP</code> permissions for the objects that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
210    /// </ul></li>
211    /// <li>
212    /// <p><b>StorageClass</b>: The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket.</p></li>
213    /// </ul>
214    pub fn content_config(&self) -> ::std::option::Option<&crate::types::PipelineOutputConfig> {
215        self.content_config.as_ref()
216    }
217    /// <p>The <code>ThumbnailConfig</code> 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.</p>
218    /// <p>If you specify values for <code>ContentConfig</code>, you must also specify values for <code>ThumbnailConfig</code> even if you don't want to create thumbnails.</p>
219    /// <p>If you specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code>, omit the <code>OutputBucket</code> object.</p>
220    /// <ul>
221    /// <li>
222    /// <p><b>Bucket</b>: The Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files.</p></li>
223    /// <li>
224    /// <p><b>Permissions</b> (Optional): The <code>Permissions</code> 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.</p></li>
225    /// <li>
226    /// <p><b>GranteeType</b>: Specify the type of value that appears in the Grantee object:</p>
227    /// <ul>
228    /// <li>
229    /// <p><b>Canonical</b>: The value in the <code>Grantee</code> object is either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution.</p><important>
230    /// <p>A canonical user ID is not the same as an AWS account number.</p>
231    /// </important></li>
232    /// <li>
233    /// <p><b>Email</b>: The value in the <code>Grantee</code> object is the registered email address of an AWS account.</p></li>
234    /// <li>
235    /// <p><b>Group</b>: The value in the <code>Grantee</code> object is one of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>.</p></li>
236    /// </ul></li>
237    /// <li>
238    /// <p><b>Grantee</b>: 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.</p></li>
239    /// <li>
240    /// <p><b>Access</b>: The permission that you want to give to the AWS user that you specified in <code>Grantee</code>. Permissions are granted on the thumbnail files that Elastic Transcoder adds to the bucket. Valid values include:</p>
241    /// <ul>
242    /// <li>
243    /// <p><code>READ</code>: The grantee can read the thumbnails and metadata for objects that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
244    /// <li>
245    /// <p><code>READ_ACP</code>: The grantee can read the object ACL for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
246    /// <li>
247    /// <p><code>WRITE_ACP</code>: The grantee can write the ACL for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
248    /// <li>
249    /// <p><code>FULL_CONTROL</code>: The grantee has <code>READ</code>, <code>READ_ACP</code>, and <code>WRITE_ACP</code> permissions for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
250    /// </ul></li>
251    /// <li>
252    /// <p><b>StorageClass</b>: The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the thumbnails that it stores in your Amazon S3 bucket.</p></li>
253    /// </ul>
254    pub fn thumbnail_config(&self) -> ::std::option::Option<&crate::types::PipelineOutputConfig> {
255        self.thumbnail_config.as_ref()
256    }
257}
258impl CreatePipelineInput {
259    /// Creates a new builder-style object to manufacture [`CreatePipelineInput`](crate::operation::create_pipeline::CreatePipelineInput).
260    pub fn builder() -> crate::operation::create_pipeline::builders::CreatePipelineInputBuilder {
261        crate::operation::create_pipeline::builders::CreatePipelineInputBuilder::default()
262    }
263}
264
265/// A builder for [`CreatePipelineInput`](crate::operation::create_pipeline::CreatePipelineInput).
266#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
267#[non_exhaustive]
268pub struct CreatePipelineInputBuilder {
269    pub(crate) name: ::std::option::Option<::std::string::String>,
270    pub(crate) input_bucket: ::std::option::Option<::std::string::String>,
271    pub(crate) output_bucket: ::std::option::Option<::std::string::String>,
272    pub(crate) role: ::std::option::Option<::std::string::String>,
273    pub(crate) aws_kms_key_arn: ::std::option::Option<::std::string::String>,
274    pub(crate) notifications: ::std::option::Option<crate::types::Notifications>,
275    pub(crate) content_config: ::std::option::Option<crate::types::PipelineOutputConfig>,
276    pub(crate) thumbnail_config: ::std::option::Option<crate::types::PipelineOutputConfig>,
277}
278impl CreatePipelineInputBuilder {
279    /// <p>The name of the pipeline. We recommend that the name be unique within the AWS account, but uniqueness is not enforced.</p>
280    /// <p>Constraints: Maximum 40 characters.</p>
281    /// This field is required.
282    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
283        self.name = ::std::option::Option::Some(input.into());
284        self
285    }
286    /// <p>The name of the pipeline. We recommend that the name be unique within the AWS account, but uniqueness is not enforced.</p>
287    /// <p>Constraints: Maximum 40 characters.</p>
288    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
289        self.name = input;
290        self
291    }
292    /// <p>The name of the pipeline. We recommend that the name be unique within the AWS account, but uniqueness is not enforced.</p>
293    /// <p>Constraints: Maximum 40 characters.</p>
294    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
295        &self.name
296    }
297    /// <p>The Amazon S3 bucket in which you saved the media files that you want to transcode.</p>
298    /// This field is required.
299    pub fn input_bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
300        self.input_bucket = ::std::option::Option::Some(input.into());
301        self
302    }
303    /// <p>The Amazon S3 bucket in which you saved the media files that you want to transcode.</p>
304    pub fn set_input_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
305        self.input_bucket = input;
306        self
307    }
308    /// <p>The Amazon S3 bucket in which you saved the media files that you want to transcode.</p>
309    pub fn get_input_bucket(&self) -> &::std::option::Option<::std::string::String> {
310        &self.input_bucket
311    }
312    /// <p>The Amazon S3 bucket in which you want Elastic Transcoder to save the transcoded files. (Use this, or use ContentConfig:Bucket plus ThumbnailConfig:Bucket.)</p>
313    /// <p>Specify this value when all of the following are true:</p>
314    /// <ul>
315    /// <li>
316    /// <p>You want to save transcoded files, thumbnails (if any), and playlists (if any) together in one bucket.</p></li>
317    /// <li>
318    /// <p>You do not want to specify the users or groups who have access to the transcoded files, thumbnails, and playlists.</p></li>
319    /// <li>
320    /// <p>You do not want to specify the permissions that Elastic Transcoder grants to the files.</p><important>
321    /// <p>When Elastic Transcoder saves files in <code>OutputBucket</code>, it grants full control over the files only to the AWS account that owns the role that is specified by <code>Role</code>.</p>
322    /// </important></li>
323    /// <li>
324    /// <p>You want to associate the transcoded files and thumbnails with the Amazon S3 Standard storage class.</p></li>
325    /// </ul>
326    /// <p>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 <code>OutputBucket</code> and specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code> instead.</p>
327    pub fn output_bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
328        self.output_bucket = ::std::option::Option::Some(input.into());
329        self
330    }
331    /// <p>The Amazon S3 bucket in which you want Elastic Transcoder to save the transcoded files. (Use this, or use ContentConfig:Bucket plus ThumbnailConfig:Bucket.)</p>
332    /// <p>Specify this value when all of the following are true:</p>
333    /// <ul>
334    /// <li>
335    /// <p>You want to save transcoded files, thumbnails (if any), and playlists (if any) together in one bucket.</p></li>
336    /// <li>
337    /// <p>You do not want to specify the users or groups who have access to the transcoded files, thumbnails, and playlists.</p></li>
338    /// <li>
339    /// <p>You do not want to specify the permissions that Elastic Transcoder grants to the files.</p><important>
340    /// <p>When Elastic Transcoder saves files in <code>OutputBucket</code>, it grants full control over the files only to the AWS account that owns the role that is specified by <code>Role</code>.</p>
341    /// </important></li>
342    /// <li>
343    /// <p>You want to associate the transcoded files and thumbnails with the Amazon S3 Standard storage class.</p></li>
344    /// </ul>
345    /// <p>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 <code>OutputBucket</code> and specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code> instead.</p>
346    pub fn set_output_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
347        self.output_bucket = input;
348        self
349    }
350    /// <p>The Amazon S3 bucket in which you want Elastic Transcoder to save the transcoded files. (Use this, or use ContentConfig:Bucket plus ThumbnailConfig:Bucket.)</p>
351    /// <p>Specify this value when all of the following are true:</p>
352    /// <ul>
353    /// <li>
354    /// <p>You want to save transcoded files, thumbnails (if any), and playlists (if any) together in one bucket.</p></li>
355    /// <li>
356    /// <p>You do not want to specify the users or groups who have access to the transcoded files, thumbnails, and playlists.</p></li>
357    /// <li>
358    /// <p>You do not want to specify the permissions that Elastic Transcoder grants to the files.</p><important>
359    /// <p>When Elastic Transcoder saves files in <code>OutputBucket</code>, it grants full control over the files only to the AWS account that owns the role that is specified by <code>Role</code>.</p>
360    /// </important></li>
361    /// <li>
362    /// <p>You want to associate the transcoded files and thumbnails with the Amazon S3 Standard storage class.</p></li>
363    /// </ul>
364    /// <p>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 <code>OutputBucket</code> and specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code> instead.</p>
365    pub fn get_output_bucket(&self) -> &::std::option::Option<::std::string::String> {
366        &self.output_bucket
367    }
368    /// <p>The IAM Amazon Resource Name (ARN) for the role that you want Elastic Transcoder to use to create the pipeline.</p>
369    /// This field is required.
370    pub fn role(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
371        self.role = ::std::option::Option::Some(input.into());
372        self
373    }
374    /// <p>The IAM Amazon Resource Name (ARN) for the role that you want Elastic Transcoder to use to create the pipeline.</p>
375    pub fn set_role(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
376        self.role = input;
377        self
378    }
379    /// <p>The IAM Amazon Resource Name (ARN) for the role that you want Elastic Transcoder to use to create the pipeline.</p>
380    pub fn get_role(&self) -> &::std::option::Option<::std::string::String> {
381        &self.role
382    }
383    /// <p>The AWS Key Management Service (AWS KMS) key that you want to use with this pipeline.</p>
384    /// <p>If you use either <code>s3</code> or <code>s3-aws-kms</code> as your <code>Encryption:Mode</code>, 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 <code>Encryption:Mode</code> of <code>aes-cbc-pkcs7</code>, <code>aes-ctr</code>, or <code>aes-gcm</code>.</p>
385    pub fn aws_kms_key_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
386        self.aws_kms_key_arn = ::std::option::Option::Some(input.into());
387        self
388    }
389    /// <p>The AWS Key Management Service (AWS KMS) key that you want to use with this pipeline.</p>
390    /// <p>If you use either <code>s3</code> or <code>s3-aws-kms</code> as your <code>Encryption:Mode</code>, 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 <code>Encryption:Mode</code> of <code>aes-cbc-pkcs7</code>, <code>aes-ctr</code>, or <code>aes-gcm</code>.</p>
391    pub fn set_aws_kms_key_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
392        self.aws_kms_key_arn = input;
393        self
394    }
395    /// <p>The AWS Key Management Service (AWS KMS) key that you want to use with this pipeline.</p>
396    /// <p>If you use either <code>s3</code> or <code>s3-aws-kms</code> as your <code>Encryption:Mode</code>, 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 <code>Encryption:Mode</code> of <code>aes-cbc-pkcs7</code>, <code>aes-ctr</code>, or <code>aes-gcm</code>.</p>
397    pub fn get_aws_kms_key_arn(&self) -> &::std::option::Option<::std::string::String> {
398        &self.aws_kms_key_arn
399    }
400    /// <p>The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify to report job status.</p><important>
401    /// <p>To receive notifications, you must also subscribe to the new topic in the Amazon SNS console.</p>
402    /// </important>
403    /// <ul>
404    /// <li>
405    /// <p><b>Progressing</b>: 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.</p></li>
406    /// <li>
407    /// <p><b>Complete</b>: 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.</p></li>
408    /// <li>
409    /// <p><b>Warning</b>: 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.</p></li>
410    /// <li>
411    /// <p><b>Error</b>: 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.</p></li>
412    /// </ul>
413    pub fn notifications(mut self, input: crate::types::Notifications) -> Self {
414        self.notifications = ::std::option::Option::Some(input);
415        self
416    }
417    /// <p>The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify to report job status.</p><important>
418    /// <p>To receive notifications, you must also subscribe to the new topic in the Amazon SNS console.</p>
419    /// </important>
420    /// <ul>
421    /// <li>
422    /// <p><b>Progressing</b>: 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.</p></li>
423    /// <li>
424    /// <p><b>Complete</b>: 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.</p></li>
425    /// <li>
426    /// <p><b>Warning</b>: 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.</p></li>
427    /// <li>
428    /// <p><b>Error</b>: 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.</p></li>
429    /// </ul>
430    pub fn set_notifications(mut self, input: ::std::option::Option<crate::types::Notifications>) -> Self {
431        self.notifications = input;
432        self
433    }
434    /// <p>The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify to report job status.</p><important>
435    /// <p>To receive notifications, you must also subscribe to the new topic in the Amazon SNS console.</p>
436    /// </important>
437    /// <ul>
438    /// <li>
439    /// <p><b>Progressing</b>: 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.</p></li>
440    /// <li>
441    /// <p><b>Complete</b>: 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.</p></li>
442    /// <li>
443    /// <p><b>Warning</b>: 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.</p></li>
444    /// <li>
445    /// <p><b>Error</b>: 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.</p></li>
446    /// </ul>
447    pub fn get_notifications(&self) -> &::std::option::Option<crate::types::Notifications> {
448        &self.notifications
449    }
450    /// <p>The optional <code>ContentConfig</code> 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.</p>
451    /// <p>If you specify values for <code>ContentConfig</code>, you must also specify values for <code>ThumbnailConfig</code>.</p>
452    /// <p>If you specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code>, omit the <code>OutputBucket</code> object.</p>
453    /// <ul>
454    /// <li>
455    /// <p><b>Bucket</b>: The Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists.</p></li>
456    /// <li>
457    /// <p><b>Permissions</b> (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.</p></li>
458    /// <li>
459    /// <p><b>Grantee Type</b>: Specify the type of value that appears in the <code>Grantee</code> object:</p>
460    /// <ul>
461    /// <li>
462    /// <p><b>Canonical</b>: The value in the <code>Grantee</code> 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.</p><important>
463    /// <p>A canonical user ID is not the same as an AWS account number.</p>
464    /// </important></li>
465    /// <li>
466    /// <p><b>Email</b>: The value in the <code>Grantee</code> object is the registered email address of an AWS account.</p></li>
467    /// <li>
468    /// <p><b>Group</b>: The value in the <code>Grantee</code> object is one of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>.</p></li>
469    /// </ul></li>
470    /// <li>
471    /// <p><b>Grantee</b>: 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</p></li>
472    /// <li>
473    /// <p><b>Access</b>: The permission that you want to give to the AWS user that you specified in <code>Grantee</code>. Permissions are granted on the files that Elastic Transcoder adds to the bucket, including playlists and video files. Valid values include:</p>
474    /// <ul>
475    /// <li>
476    /// <p><code>READ</code>: The grantee can read the objects and metadata for objects that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
477    /// <li>
478    /// <p><code>READ_ACP</code>: The grantee can read the object ACL for objects that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
479    /// <li>
480    /// <p><code>WRITE_ACP</code>: The grantee can write the ACL for the objects that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
481    /// <li>
482    /// <p><code>FULL_CONTROL</code>: The grantee has <code>READ</code>, <code>READ_ACP</code>, and <code>WRITE_ACP</code> permissions for the objects that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
483    /// </ul></li>
484    /// <li>
485    /// <p><b>StorageClass</b>: The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket.</p></li>
486    /// </ul>
487    pub fn content_config(mut self, input: crate::types::PipelineOutputConfig) -> Self {
488        self.content_config = ::std::option::Option::Some(input);
489        self
490    }
491    /// <p>The optional <code>ContentConfig</code> 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.</p>
492    /// <p>If you specify values for <code>ContentConfig</code>, you must also specify values for <code>ThumbnailConfig</code>.</p>
493    /// <p>If you specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code>, omit the <code>OutputBucket</code> object.</p>
494    /// <ul>
495    /// <li>
496    /// <p><b>Bucket</b>: The Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists.</p></li>
497    /// <li>
498    /// <p><b>Permissions</b> (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.</p></li>
499    /// <li>
500    /// <p><b>Grantee Type</b>: Specify the type of value that appears in the <code>Grantee</code> object:</p>
501    /// <ul>
502    /// <li>
503    /// <p><b>Canonical</b>: The value in the <code>Grantee</code> 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.</p><important>
504    /// <p>A canonical user ID is not the same as an AWS account number.</p>
505    /// </important></li>
506    /// <li>
507    /// <p><b>Email</b>: The value in the <code>Grantee</code> object is the registered email address of an AWS account.</p></li>
508    /// <li>
509    /// <p><b>Group</b>: The value in the <code>Grantee</code> object is one of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>.</p></li>
510    /// </ul></li>
511    /// <li>
512    /// <p><b>Grantee</b>: 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</p></li>
513    /// <li>
514    /// <p><b>Access</b>: The permission that you want to give to the AWS user that you specified in <code>Grantee</code>. Permissions are granted on the files that Elastic Transcoder adds to the bucket, including playlists and video files. Valid values include:</p>
515    /// <ul>
516    /// <li>
517    /// <p><code>READ</code>: The grantee can read the objects and metadata for objects that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
518    /// <li>
519    /// <p><code>READ_ACP</code>: The grantee can read the object ACL for objects that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
520    /// <li>
521    /// <p><code>WRITE_ACP</code>: The grantee can write the ACL for the objects that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
522    /// <li>
523    /// <p><code>FULL_CONTROL</code>: The grantee has <code>READ</code>, <code>READ_ACP</code>, and <code>WRITE_ACP</code> permissions for the objects that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
524    /// </ul></li>
525    /// <li>
526    /// <p><b>StorageClass</b>: The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket.</p></li>
527    /// </ul>
528    pub fn set_content_config(mut self, input: ::std::option::Option<crate::types::PipelineOutputConfig>) -> Self {
529        self.content_config = input;
530        self
531    }
532    /// <p>The optional <code>ContentConfig</code> 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.</p>
533    /// <p>If you specify values for <code>ContentConfig</code>, you must also specify values for <code>ThumbnailConfig</code>.</p>
534    /// <p>If you specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code>, omit the <code>OutputBucket</code> object.</p>
535    /// <ul>
536    /// <li>
537    /// <p><b>Bucket</b>: The Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists.</p></li>
538    /// <li>
539    /// <p><b>Permissions</b> (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.</p></li>
540    /// <li>
541    /// <p><b>Grantee Type</b>: Specify the type of value that appears in the <code>Grantee</code> object:</p>
542    /// <ul>
543    /// <li>
544    /// <p><b>Canonical</b>: The value in the <code>Grantee</code> 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.</p><important>
545    /// <p>A canonical user ID is not the same as an AWS account number.</p>
546    /// </important></li>
547    /// <li>
548    /// <p><b>Email</b>: The value in the <code>Grantee</code> object is the registered email address of an AWS account.</p></li>
549    /// <li>
550    /// <p><b>Group</b>: The value in the <code>Grantee</code> object is one of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>.</p></li>
551    /// </ul></li>
552    /// <li>
553    /// <p><b>Grantee</b>: 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</p></li>
554    /// <li>
555    /// <p><b>Access</b>: The permission that you want to give to the AWS user that you specified in <code>Grantee</code>. Permissions are granted on the files that Elastic Transcoder adds to the bucket, including playlists and video files. Valid values include:</p>
556    /// <ul>
557    /// <li>
558    /// <p><code>READ</code>: The grantee can read the objects and metadata for objects that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
559    /// <li>
560    /// <p><code>READ_ACP</code>: The grantee can read the object ACL for objects that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
561    /// <li>
562    /// <p><code>WRITE_ACP</code>: The grantee can write the ACL for the objects that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
563    /// <li>
564    /// <p><code>FULL_CONTROL</code>: The grantee has <code>READ</code>, <code>READ_ACP</code>, and <code>WRITE_ACP</code> permissions for the objects that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
565    /// </ul></li>
566    /// <li>
567    /// <p><b>StorageClass</b>: The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket.</p></li>
568    /// </ul>
569    pub fn get_content_config(&self) -> &::std::option::Option<crate::types::PipelineOutputConfig> {
570        &self.content_config
571    }
572    /// <p>The <code>ThumbnailConfig</code> 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.</p>
573    /// <p>If you specify values for <code>ContentConfig</code>, you must also specify values for <code>ThumbnailConfig</code> even if you don't want to create thumbnails.</p>
574    /// <p>If you specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code>, omit the <code>OutputBucket</code> object.</p>
575    /// <ul>
576    /// <li>
577    /// <p><b>Bucket</b>: The Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files.</p></li>
578    /// <li>
579    /// <p><b>Permissions</b> (Optional): The <code>Permissions</code> 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.</p></li>
580    /// <li>
581    /// <p><b>GranteeType</b>: Specify the type of value that appears in the Grantee object:</p>
582    /// <ul>
583    /// <li>
584    /// <p><b>Canonical</b>: The value in the <code>Grantee</code> object is either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution.</p><important>
585    /// <p>A canonical user ID is not the same as an AWS account number.</p>
586    /// </important></li>
587    /// <li>
588    /// <p><b>Email</b>: The value in the <code>Grantee</code> object is the registered email address of an AWS account.</p></li>
589    /// <li>
590    /// <p><b>Group</b>: The value in the <code>Grantee</code> object is one of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>.</p></li>
591    /// </ul></li>
592    /// <li>
593    /// <p><b>Grantee</b>: 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.</p></li>
594    /// <li>
595    /// <p><b>Access</b>: The permission that you want to give to the AWS user that you specified in <code>Grantee</code>. Permissions are granted on the thumbnail files that Elastic Transcoder adds to the bucket. Valid values include:</p>
596    /// <ul>
597    /// <li>
598    /// <p><code>READ</code>: The grantee can read the thumbnails and metadata for objects that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
599    /// <li>
600    /// <p><code>READ_ACP</code>: The grantee can read the object ACL for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
601    /// <li>
602    /// <p><code>WRITE_ACP</code>: The grantee can write the ACL for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
603    /// <li>
604    /// <p><code>FULL_CONTROL</code>: The grantee has <code>READ</code>, <code>READ_ACP</code>, and <code>WRITE_ACP</code> permissions for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
605    /// </ul></li>
606    /// <li>
607    /// <p><b>StorageClass</b>: The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the thumbnails that it stores in your Amazon S3 bucket.</p></li>
608    /// </ul>
609    pub fn thumbnail_config(mut self, input: crate::types::PipelineOutputConfig) -> Self {
610        self.thumbnail_config = ::std::option::Option::Some(input);
611        self
612    }
613    /// <p>The <code>ThumbnailConfig</code> 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.</p>
614    /// <p>If you specify values for <code>ContentConfig</code>, you must also specify values for <code>ThumbnailConfig</code> even if you don't want to create thumbnails.</p>
615    /// <p>If you specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code>, omit the <code>OutputBucket</code> object.</p>
616    /// <ul>
617    /// <li>
618    /// <p><b>Bucket</b>: The Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files.</p></li>
619    /// <li>
620    /// <p><b>Permissions</b> (Optional): The <code>Permissions</code> 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.</p></li>
621    /// <li>
622    /// <p><b>GranteeType</b>: Specify the type of value that appears in the Grantee object:</p>
623    /// <ul>
624    /// <li>
625    /// <p><b>Canonical</b>: The value in the <code>Grantee</code> object is either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution.</p><important>
626    /// <p>A canonical user ID is not the same as an AWS account number.</p>
627    /// </important></li>
628    /// <li>
629    /// <p><b>Email</b>: The value in the <code>Grantee</code> object is the registered email address of an AWS account.</p></li>
630    /// <li>
631    /// <p><b>Group</b>: The value in the <code>Grantee</code> object is one of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>.</p></li>
632    /// </ul></li>
633    /// <li>
634    /// <p><b>Grantee</b>: 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.</p></li>
635    /// <li>
636    /// <p><b>Access</b>: The permission that you want to give to the AWS user that you specified in <code>Grantee</code>. Permissions are granted on the thumbnail files that Elastic Transcoder adds to the bucket. Valid values include:</p>
637    /// <ul>
638    /// <li>
639    /// <p><code>READ</code>: The grantee can read the thumbnails and metadata for objects that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
640    /// <li>
641    /// <p><code>READ_ACP</code>: The grantee can read the object ACL for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
642    /// <li>
643    /// <p><code>WRITE_ACP</code>: The grantee can write the ACL for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
644    /// <li>
645    /// <p><code>FULL_CONTROL</code>: The grantee has <code>READ</code>, <code>READ_ACP</code>, and <code>WRITE_ACP</code> permissions for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
646    /// </ul></li>
647    /// <li>
648    /// <p><b>StorageClass</b>: The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the thumbnails that it stores in your Amazon S3 bucket.</p></li>
649    /// </ul>
650    pub fn set_thumbnail_config(mut self, input: ::std::option::Option<crate::types::PipelineOutputConfig>) -> Self {
651        self.thumbnail_config = input;
652        self
653    }
654    /// <p>The <code>ThumbnailConfig</code> 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.</p>
655    /// <p>If you specify values for <code>ContentConfig</code>, you must also specify values for <code>ThumbnailConfig</code> even if you don't want to create thumbnails.</p>
656    /// <p>If you specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code>, omit the <code>OutputBucket</code> object.</p>
657    /// <ul>
658    /// <li>
659    /// <p><b>Bucket</b>: The Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files.</p></li>
660    /// <li>
661    /// <p><b>Permissions</b> (Optional): The <code>Permissions</code> 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.</p></li>
662    /// <li>
663    /// <p><b>GranteeType</b>: Specify the type of value that appears in the Grantee object:</p>
664    /// <ul>
665    /// <li>
666    /// <p><b>Canonical</b>: The value in the <code>Grantee</code> object is either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution.</p><important>
667    /// <p>A canonical user ID is not the same as an AWS account number.</p>
668    /// </important></li>
669    /// <li>
670    /// <p><b>Email</b>: The value in the <code>Grantee</code> object is the registered email address of an AWS account.</p></li>
671    /// <li>
672    /// <p><b>Group</b>: The value in the <code>Grantee</code> object is one of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>.</p></li>
673    /// </ul></li>
674    /// <li>
675    /// <p><b>Grantee</b>: 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.</p></li>
676    /// <li>
677    /// <p><b>Access</b>: The permission that you want to give to the AWS user that you specified in <code>Grantee</code>. Permissions are granted on the thumbnail files that Elastic Transcoder adds to the bucket. Valid values include:</p>
678    /// <ul>
679    /// <li>
680    /// <p><code>READ</code>: The grantee can read the thumbnails and metadata for objects that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
681    /// <li>
682    /// <p><code>READ_ACP</code>: The grantee can read the object ACL for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
683    /// <li>
684    /// <p><code>WRITE_ACP</code>: The grantee can write the ACL for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
685    /// <li>
686    /// <p><code>FULL_CONTROL</code>: The grantee has <code>READ</code>, <code>READ_ACP</code>, and <code>WRITE_ACP</code> permissions for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.</p></li>
687    /// </ul></li>
688    /// <li>
689    /// <p><b>StorageClass</b>: The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the thumbnails that it stores in your Amazon S3 bucket.</p></li>
690    /// </ul>
691    pub fn get_thumbnail_config(&self) -> &::std::option::Option<crate::types::PipelineOutputConfig> {
692        &self.thumbnail_config
693    }
694    /// Consumes the builder and constructs a [`CreatePipelineInput`](crate::operation::create_pipeline::CreatePipelineInput).
695    pub fn build(
696        self,
697    ) -> ::std::result::Result<crate::operation::create_pipeline::CreatePipelineInput, ::aws_smithy_types::error::operation::BuildError> {
698        ::std::result::Result::Ok(crate::operation::create_pipeline::CreatePipelineInput {
699            name: self.name,
700            input_bucket: self.input_bucket,
701            output_bucket: self.output_bucket,
702            role: self.role,
703            aws_kms_key_arn: self.aws_kms_key_arn,
704            notifications: self.notifications,
705            content_config: self.content_config,
706            thumbnail_config: self.thumbnail_config,
707        })
708    }
709}