aws-sdk-sfn 1.97.0

AWS SDK for AWS Step Functions
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use crate::operation::describe_state_machine::_describe_state_machine_output::DescribeStateMachineOutputBuilder;

pub use crate::operation::describe_state_machine::_describe_state_machine_input::DescribeStateMachineInputBuilder;

impl crate::operation::describe_state_machine::builders::DescribeStateMachineInputBuilder {
    /// Sends a request with this input using the given client.
    pub async fn send_with(
        self,
        client: &crate::Client,
    ) -> ::std::result::Result<
        crate::operation::describe_state_machine::DescribeStateMachineOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::describe_state_machine::DescribeStateMachineError,
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
        >,
    > {
        let mut fluent_builder = client.describe_state_machine();
        fluent_builder.inner = self;
        fluent_builder.send().await
    }
}
/// Fluent builder constructing a request to `DescribeStateMachine`.
///
/// <p>Provides information about a state machine's definition, its IAM role Amazon Resource Name (ARN), and configuration.</p>
/// <p>A qualified state machine ARN can either refer to a <i>Distributed Map state</i> defined within a state machine, a version ARN, or an alias ARN.</p>
/// <p>The following are some examples of qualified and unqualified state machine ARNs:</p>
/// <ul>
/// <li>
/// <p>The following qualified state machine ARN refers to a <i>Distributed Map state</i> with a label <code>mapStateLabel</code> in a state machine named <code>myStateMachine</code>.</p>
/// <p><code>arn:partition:states:region:account-id:stateMachine:myStateMachine/mapStateLabel</code></p><note>
/// <p>If you provide a qualified state machine ARN that refers to a <i>Distributed Map state</i>, the request fails with <code>ValidationException</code>.</p>
/// </note></li>
/// <li>
/// <p>The following qualified state machine ARN refers to an alias named <code>PROD</code>.</p>
/// <p><code>arn:<partition>
/// :states:
/// <region>
/// :
/// <account-id>
/// :stateMachine:
/// <mystatemachine:prod></mystatemachine:prod>
/// </account-id>
/// </region>
/// </partition></code></p><note>
/// <p>If you provide a qualified state machine ARN that refers to a version ARN or an alias ARN, the request starts execution for that version or alias.</p>
/// </note></li>
/// <li>
/// <p>The following unqualified state machine ARN refers to a state machine named <code>myStateMachine</code>.</p>
/// <p><code>arn:<partition>
/// :states:
/// <region>
/// :
/// <account-id>
/// :stateMachine:
/// <mystatemachine></mystatemachine>
/// </account-id>
/// </region>
/// </partition></code></p></li>
/// </ul>
/// <p>This API action returns the details for a state machine version if the <code>stateMachineArn</code> you specify is a state machine version ARN.</p><note>
/// <p>This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes.</p>
/// </note>
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
pub struct DescribeStateMachineFluentBuilder {
    handle: ::std::sync::Arc<crate::client::Handle>,
    inner: crate::operation::describe_state_machine::builders::DescribeStateMachineInputBuilder,
    config_override: ::std::option::Option<crate::config::Builder>,
}
impl
    crate::client::customize::internal::CustomizableSend<
        crate::operation::describe_state_machine::DescribeStateMachineOutput,
        crate::operation::describe_state_machine::DescribeStateMachineError,
    > for DescribeStateMachineFluentBuilder
{
    fn send(
        self,
        config_override: crate::config::Builder,
    ) -> crate::client::customize::internal::BoxFuture<
        crate::client::customize::internal::SendResult<
            crate::operation::describe_state_machine::DescribeStateMachineOutput,
            crate::operation::describe_state_machine::DescribeStateMachineError,
        >,
    > {
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
    }
}
impl DescribeStateMachineFluentBuilder {
    /// Creates a new `DescribeStateMachineFluentBuilder`.
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
        Self {
            handle,
            inner: ::std::default::Default::default(),
            config_override: ::std::option::Option::None,
        }
    }
    /// Access the DescribeStateMachine as a reference.
    pub fn as_input(&self) -> &crate::operation::describe_state_machine::builders::DescribeStateMachineInputBuilder {
        &self.inner
    }
    /// Sends the request and returns the response.
    ///
    /// If an error occurs, an `SdkError` will be returned with additional details that
    /// can be matched against.
    ///
    /// By default, any retryable failures will be retried twice. Retry behavior
    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
    /// set when configuring the client.
    pub async fn send(
        self,
    ) -> ::std::result::Result<
        crate::operation::describe_state_machine::DescribeStateMachineOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::describe_state_machine::DescribeStateMachineError,
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
        >,
    > {
        let input = self
            .inner
            .build()
            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
        let runtime_plugins = crate::operation::describe_state_machine::DescribeStateMachine::operation_runtime_plugins(
            self.handle.runtime_plugins.clone(),
            &self.handle.conf,
            self.config_override,
        );
        crate::operation::describe_state_machine::DescribeStateMachine::orchestrate(&runtime_plugins, input).await
    }

    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
    pub fn customize(
        self,
    ) -> crate::client::customize::CustomizableOperation<
        crate::operation::describe_state_machine::DescribeStateMachineOutput,
        crate::operation::describe_state_machine::DescribeStateMachineError,
        Self,
    > {
        crate::client::customize::CustomizableOperation::new(self)
    }
    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
        self.set_config_override(::std::option::Option::Some(config_override.into()));
        self
    }

    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
        self.config_override = config_override;
        self
    }
    /// <p>The Amazon Resource Name (ARN) of the state machine for which you want the information.</p>
    /// <p>If you specify a state machine version ARN, this API returns details about that version. The version ARN is a combination of state machine ARN and the version number separated by a colon (:). For example, <code>stateMachineARN:1</code>.</p>
    pub fn state_machine_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.state_machine_arn(input.into());
        self
    }
    /// <p>The Amazon Resource Name (ARN) of the state machine for which you want the information.</p>
    /// <p>If you specify a state machine version ARN, this API returns details about that version. The version ARN is a combination of state machine ARN and the version number separated by a colon (:). For example, <code>stateMachineARN:1</code>.</p>
    pub fn set_state_machine_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_state_machine_arn(input);
        self
    }
    /// <p>The Amazon Resource Name (ARN) of the state machine for which you want the information.</p>
    /// <p>If you specify a state machine version ARN, this API returns details about that version. The version ARN is a combination of state machine ARN and the version number separated by a colon (:). For example, <code>stateMachineARN:1</code>.</p>
    pub fn get_state_machine_arn(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_state_machine_arn()
    }
    /// <p>If your state machine definition is encrypted with a KMS key, callers must have <code>kms:Decrypt</code> permission to decrypt the definition. Alternatively, you can call the API with <code>includedData = METADATA_ONLY</code> to get a successful response without the encrypted definition.</p><note>
    /// <p>When calling a labelled ARN for an encrypted state machine, the <code>includedData = METADATA_ONLY</code> parameter will not apply because Step Functions needs to decrypt the entire state machine definition to get the Distributed Map state’s definition. In this case, the API caller needs to have <code>kms:Decrypt</code> permission.</p>
    /// </note>
    pub fn included_data(mut self, input: crate::types::IncludedData) -> Self {
        self.inner = self.inner.included_data(input);
        self
    }
    /// <p>If your state machine definition is encrypted with a KMS key, callers must have <code>kms:Decrypt</code> permission to decrypt the definition. Alternatively, you can call the API with <code>includedData = METADATA_ONLY</code> to get a successful response without the encrypted definition.</p><note>
    /// <p>When calling a labelled ARN for an encrypted state machine, the <code>includedData = METADATA_ONLY</code> parameter will not apply because Step Functions needs to decrypt the entire state machine definition to get the Distributed Map state’s definition. In this case, the API caller needs to have <code>kms:Decrypt</code> permission.</p>
    /// </note>
    pub fn set_included_data(mut self, input: ::std::option::Option<crate::types::IncludedData>) -> Self {
        self.inner = self.inner.set_included_data(input);
        self
    }
    /// <p>If your state machine definition is encrypted with a KMS key, callers must have <code>kms:Decrypt</code> permission to decrypt the definition. Alternatively, you can call the API with <code>includedData = METADATA_ONLY</code> to get a successful response without the encrypted definition.</p><note>
    /// <p>When calling a labelled ARN for an encrypted state machine, the <code>includedData = METADATA_ONLY</code> parameter will not apply because Step Functions needs to decrypt the entire state machine definition to get the Distributed Map state’s definition. In this case, the API caller needs to have <code>kms:Decrypt</code> permission.</p>
    /// </note>
    pub fn get_included_data(&self) -> &::std::option::Option<crate::types::IncludedData> {
        self.inner.get_included_data()
    }
}