1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
/// <p>Describes an action to write data to an Amazon S3 bucket.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct S3Action {
/// <p>The ARN of the IAM role that grants access.</p>
pub role_arn: ::std::string::String,
/// <p>The Amazon S3 bucket.</p>
pub bucket_name: ::std::string::String,
/// <p>The object key. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html">Actions, resources, and condition keys for Amazon S3</a>.</p>
pub key: ::std::string::String,
/// <p>The Amazon S3 canned ACL that controls access to the object identified by the object key. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl">S3 canned ACLs</a>.</p>
pub canned_acl: ::std::option::Option<crate::types::CannedAccessControlList>,
}
impl S3Action {
/// <p>The ARN of the IAM role that grants access.</p>
pub fn role_arn(&self) -> &str {
use std::ops::Deref;
self.role_arn.deref()
}
/// <p>The Amazon S3 bucket.</p>
pub fn bucket_name(&self) -> &str {
use std::ops::Deref;
self.bucket_name.deref()
}
/// <p>The object key. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html">Actions, resources, and condition keys for Amazon S3</a>.</p>
pub fn key(&self) -> &str {
use std::ops::Deref;
self.key.deref()
}
/// <p>The Amazon S3 canned ACL that controls access to the object identified by the object key. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl">S3 canned ACLs</a>.</p>
pub fn canned_acl(&self) -> ::std::option::Option<&crate::types::CannedAccessControlList> {
self.canned_acl.as_ref()
}
}
impl S3Action {
/// Creates a new builder-style object to manufacture [`S3Action`](crate::types::S3Action).
pub fn builder() -> crate::types::builders::S3ActionBuilder {
crate::types::builders::S3ActionBuilder::default()
}
}
/// A builder for [`S3Action`](crate::types::S3Action).
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct S3ActionBuilder {
pub(crate) role_arn: ::std::option::Option<::std::string::String>,
pub(crate) bucket_name: ::std::option::Option<::std::string::String>,
pub(crate) key: ::std::option::Option<::std::string::String>,
pub(crate) canned_acl: ::std::option::Option<crate::types::CannedAccessControlList>,
}
impl S3ActionBuilder {
/// <p>The ARN of the IAM role that grants access.</p>
/// This field is required.
pub fn role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.role_arn = ::std::option::Option::Some(input.into());
self
}
/// <p>The ARN of the IAM role that grants access.</p>
pub fn set_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.role_arn = input;
self
}
/// <p>The ARN of the IAM role that grants access.</p>
pub fn get_role_arn(&self) -> &::std::option::Option<::std::string::String> {
&self.role_arn
}
/// <p>The Amazon S3 bucket.</p>
/// This field is required.
pub fn bucket_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.bucket_name = ::std::option::Option::Some(input.into());
self
}
/// <p>The Amazon S3 bucket.</p>
pub fn set_bucket_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.bucket_name = input;
self
}
/// <p>The Amazon S3 bucket.</p>
pub fn get_bucket_name(&self) -> &::std::option::Option<::std::string::String> {
&self.bucket_name
}
/// <p>The object key. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html">Actions, resources, and condition keys for Amazon S3</a>.</p>
/// This field is required.
pub fn key(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.key = ::std::option::Option::Some(input.into());
self
}
/// <p>The object key. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html">Actions, resources, and condition keys for Amazon S3</a>.</p>
pub fn set_key(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.key = input;
self
}
/// <p>The object key. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html">Actions, resources, and condition keys for Amazon S3</a>.</p>
pub fn get_key(&self) -> &::std::option::Option<::std::string::String> {
&self.key
}
/// <p>The Amazon S3 canned ACL that controls access to the object identified by the object key. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl">S3 canned ACLs</a>.</p>
pub fn canned_acl(mut self, input: crate::types::CannedAccessControlList) -> Self {
self.canned_acl = ::std::option::Option::Some(input);
self
}
/// <p>The Amazon S3 canned ACL that controls access to the object identified by the object key. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl">S3 canned ACLs</a>.</p>
pub fn set_canned_acl(mut self, input: ::std::option::Option<crate::types::CannedAccessControlList>) -> Self {
self.canned_acl = input;
self
}
/// <p>The Amazon S3 canned ACL that controls access to the object identified by the object key. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl">S3 canned ACLs</a>.</p>
pub fn get_canned_acl(&self) -> &::std::option::Option<crate::types::CannedAccessControlList> {
&self.canned_acl
}
/// Consumes the builder and constructs a [`S3Action`](crate::types::S3Action).
/// This method will fail if any of the following fields are not set:
/// - [`role_arn`](crate::types::builders::S3ActionBuilder::role_arn)
/// - [`bucket_name`](crate::types::builders::S3ActionBuilder::bucket_name)
/// - [`key`](crate::types::builders::S3ActionBuilder::key)
pub fn build(self) -> ::std::result::Result<crate::types::S3Action, ::aws_smithy_types::error::operation::BuildError> {
::std::result::Result::Ok(crate::types::S3Action {
role_arn: self.role_arn.ok_or_else(|| {
::aws_smithy_types::error::operation::BuildError::missing_field(
"role_arn",
"role_arn was not specified but it is required when building S3Action",
)
})?,
bucket_name: self.bucket_name.ok_or_else(|| {
::aws_smithy_types::error::operation::BuildError::missing_field(
"bucket_name",
"bucket_name was not specified but it is required when building S3Action",
)
})?,
key: self.key.ok_or_else(|| {
::aws_smithy_types::error::operation::BuildError::missing_field(
"key",
"key was not specified but it is required when building S3Action",
)
})?,
canned_acl: self.canned_acl,
})
}
}