aws_sdk_dynamodb/operation/get_resource_policy/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::get_resource_policy::_get_resource_policy_output::GetResourcePolicyOutputBuilder;
3
4pub use crate::operation::get_resource_policy::_get_resource_policy_input::GetResourcePolicyInputBuilder;
5
6impl crate::operation::get_resource_policy::builders::GetResourcePolicyInputBuilder {
7                    /// Sends a request with this input using the given client.
8                    pub async fn send_with(self, client: &crate::Client) -> ::std::result::Result<
9                        crate::operation::get_resource_policy::GetResourcePolicyOutput,
10                        ::aws_smithy_runtime_api::client::result::SdkError<
11                            crate::operation::get_resource_policy::GetResourcePolicyError,
12                            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse
13                        >
14                    > {
15                        let mut fluent_builder = client.get_resource_policy();
16                        fluent_builder.inner = self;
17                        fluent_builder.send().await
18                    }
19                }
20/// Fluent builder constructing a request to `GetResourcePolicy`.
21/// 
22/// <p>Returns the resource-based policy document attached to the resource, which can be a table or stream, in JSON format.</p>
23/// <p><code>GetResourcePolicy</code> follows an <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html"> <i>eventually consistent</i> </a> model. The following list describes the outcomes when you issue the <code>GetResourcePolicy</code> request immediately after issuing another request:</p>
24/// <ul>
25/// <li>
26/// <p>If you issue a <code>GetResourcePolicy</code> request immediately after a <code>PutResourcePolicy</code> request, DynamoDB might return a <code>PolicyNotFoundException</code>.</p></li>
27/// <li>
28/// <p>If you issue a <code>GetResourcePolicy</code>request immediately after a <code>DeleteResourcePolicy</code> request, DynamoDB might return the policy that was present before the deletion request.</p></li>
29/// <li>
30/// <p>If you issue a <code>GetResourcePolicy</code> request immediately after a <code>CreateTable</code> request, which includes a resource-based policy, DynamoDB might return a <code>ResourceNotFoundException</code> or a <code>PolicyNotFoundException</code>.</p></li>
31/// </ul>
32/// <p>Because <code>GetResourcePolicy</code> uses an <i>eventually consistent</i> query, the metadata for your policy or table might not be available at that moment. Wait for a few seconds, and then retry the <code>GetResourcePolicy</code> request.</p>
33/// <p>After a <code>GetResourcePolicy</code> request returns a policy created using the <code>PutResourcePolicy</code> request, the policy will be applied in the authorization of requests to the resource. Because this process is eventually consistent, it will take some time to apply the policy to all requests to a resource. Policies that you attach while creating a table using the <code>CreateTable</code> request will always be applied to all requests for that table.</p>
34#[derive(::std::clone::Clone, ::std::fmt::Debug)]
35pub struct GetResourcePolicyFluentBuilder {
36                handle: ::std::sync::Arc<crate::client::Handle>,
37                inner: crate::operation::get_resource_policy::builders::GetResourcePolicyInputBuilder,
38config_override: ::std::option::Option<crate::config::Builder>,
39            }
40impl
41                crate::client::customize::internal::CustomizableSend<
42                    crate::operation::get_resource_policy::GetResourcePolicyOutput,
43                    crate::operation::get_resource_policy::GetResourcePolicyError,
44                > for GetResourcePolicyFluentBuilder
45            {
46                fn send(
47                    self,
48                    config_override: crate::config::Builder,
49                ) -> crate::client::customize::internal::BoxFuture<
50                    crate::client::customize::internal::SendResult<
51                        crate::operation::get_resource_policy::GetResourcePolicyOutput,
52                        crate::operation::get_resource_policy::GetResourcePolicyError,
53                    >,
54                > {
55                    ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
56                }
57            }
58impl GetResourcePolicyFluentBuilder {
59    /// Creates a new `GetResourcePolicyFluentBuilder`.
60                    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
61                        Self {
62                            handle,
63                            inner: ::std::default::Default::default(),
64    config_override: ::std::option::Option::None,
65                        }
66                    }
67    /// Access the GetResourcePolicy as a reference.
68                    pub fn as_input(&self) -> &crate::operation::get_resource_policy::builders::GetResourcePolicyInputBuilder {
69                        &self.inner
70                    }
71    /// Sends the request and returns the response.
72                    ///
73                    /// If an error occurs, an `SdkError` will be returned with additional details that
74                    /// can be matched against.
75                    ///
76                    /// By default, any retryable failures will be retried twice. Retry behavior
77                    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
78                    /// set when configuring the client. Note: retries are enabled by default when using
79                    /// `aws_config::load_from_env()` or when using `BehaviorVersion::v2025_01_17()` or later.
80                    pub async fn send(self) -> ::std::result::Result<crate::operation::get_resource_policy::GetResourcePolicyOutput, ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::get_resource_policy::GetResourcePolicyError, ::aws_smithy_runtime_api::client::orchestrator::HttpResponse>> {
81                        let input = self.inner.build().map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
82                        let runtime_plugins = crate::operation::get_resource_policy::GetResourcePolicy::operation_runtime_plugins(
83                            self.handle.runtime_plugins.clone(),
84                            &self.handle.conf,
85                            self.config_override,
86                        );
87                        crate::operation::get_resource_policy::GetResourcePolicy::orchestrate(&runtime_plugins, input).await
88                    }
89    
90                    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
91                    pub fn customize(
92                        self,
93                    ) -> crate::client::customize::CustomizableOperation<crate::operation::get_resource_policy::GetResourcePolicyOutput, crate::operation::get_resource_policy::GetResourcePolicyError, Self> {
94                        crate::client::customize::CustomizableOperation::new(self)
95                    }
96    pub(crate) fn config_override(
97                            mut self,
98                            config_override: impl ::std::convert::Into<crate::config::Builder>,
99                        ) -> Self {
100                            self.set_config_override(::std::option::Option::Some(config_override.into()));
101                            self
102                        }
103    
104                        pub(crate) fn set_config_override(
105                            &mut self,
106                            config_override: ::std::option::Option<crate::config::Builder>,
107                        ) -> &mut Self {
108                            self.config_override = config_override;
109                            self
110                        }
111    /// <p>The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy is attached. The resources you can specify include tables and streams.</p>
112    pub fn resource_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
113                    self.inner = self.inner.resource_arn(input.into());
114                    self
115                }
116    /// <p>The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy is attached. The resources you can specify include tables and streams.</p>
117    pub fn set_resource_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
118                    self.inner = self.inner.set_resource_arn(input);
119                    self
120                }
121    /// <p>The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy is attached. The resources you can specify include tables and streams.</p>
122    pub fn get_resource_arn(&self) -> &::std::option::Option<::std::string::String> {
123                    self.inner.get_resource_arn()
124                }
125}
126