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}