aws-sdk-codecatalyst 0.2.0

AWS SDK for Amazon CodeCatalyst
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
#[derive(Debug)]
pub(crate) struct Handle {
    pub(crate) client: aws_smithy_client::Client<
        aws_smithy_client::erase::DynConnector,
        aws_smithy_client::erase::DynMiddleware<aws_smithy_client::erase::DynConnector>,
    >,
    pub(crate) conf: crate::Config,
}

/// Client for Amazon CodeCatalyst
///
/// Client for invoking operations on Amazon CodeCatalyst. Each operation on Amazon CodeCatalyst is a method on this
/// this struct. `.send()` MUST be invoked on the generated operations to dispatch the request to the service.
///
/// # Examples
/// **Constructing a client and invoking an operation**
/// ```rust,no_run
/// # async fn docs() {
///     // create a shared configuration. This can be used & shared between multiple service clients.
///     let shared_config = aws_config::load_from_env().await;
///     let client = aws_sdk_codecatalyst::Client::new(&shared_config);
///     // invoke an operation
///     /* let rsp = client
///         .<operation_name>().
///         .<param>("some value")
///         .send().await; */
/// # }
/// ```
/// **Constructing a client with custom configuration**
/// ```rust,no_run
/// use aws_config::retry::RetryConfig;
/// # async fn docs() {
/// let shared_config = aws_config::load_from_env().await;
/// let config = aws_sdk_codecatalyst::config::Builder::from(&shared_config)
///   .retry_config(RetryConfig::disabled())
///   .build();
/// let client = aws_sdk_codecatalyst::Client::from_conf(config);
/// # }
#[derive(std::fmt::Debug)]
pub struct Client {
    handle: std::sync::Arc<Handle>,
}

impl std::clone::Clone for Client {
    fn clone(&self) -> Self {
        Self {
            handle: self.handle.clone(),
        }
    }
}

#[doc(inline)]
pub use aws_smithy_client::Builder;

impl
    From<
        aws_smithy_client::Client<
            aws_smithy_client::erase::DynConnector,
            aws_smithy_client::erase::DynMiddleware<aws_smithy_client::erase::DynConnector>,
        >,
    > for Client
{
    fn from(
        client: aws_smithy_client::Client<
            aws_smithy_client::erase::DynConnector,
            aws_smithy_client::erase::DynMiddleware<aws_smithy_client::erase::DynConnector>,
        >,
    ) -> Self {
        Self::with_config(client, crate::Config::builder().build())
    }
}

impl Client {
    /// Creates a client with the given service configuration.
    pub fn with_config(
        client: aws_smithy_client::Client<
            aws_smithy_client::erase::DynConnector,
            aws_smithy_client::erase::DynMiddleware<aws_smithy_client::erase::DynConnector>,
        >,
        conf: crate::Config,
    ) -> Self {
        Self {
            handle: std::sync::Arc::new(Handle { client, conf }),
        }
    }

    /// Returns the client's configuration.
    pub fn conf(&self) -> &crate::Config {
        &self.handle.conf
    }
}
impl Client {
    /// Constructs a fluent builder for the [`CreateAccessToken`](crate::client::fluent_builders::CreateAccessToken) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::CreateAccessToken::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::CreateAccessToken::set_name): <p>The friendly name of the personal access token.</p>
    ///   - [`expires_time(DateTime)`](crate::client::fluent_builders::CreateAccessToken::expires_time) / [`set_expires_time(Option<DateTime>)`](crate::client::fluent_builders::CreateAccessToken::set_expires_time): <p>The date and time the personal access token expires, in coordinated universal time (UTC) timestamp format as specified in <a href="https://www.rfc-editor.org/rfc/rfc3339#section-5.6">RFC 3339</a>.</p>
    /// - On success, responds with [`CreateAccessTokenOutput`](crate::output::CreateAccessTokenOutput) with field(s):
    ///   - [`secret(Option<String>)`](crate::output::CreateAccessTokenOutput::secret): <p>The secret value of the personal access token.</p>
    ///   - [`name(Option<String>)`](crate::output::CreateAccessTokenOutput::name): <p>The friendly name of the personal access token.</p>
    ///   - [`expires_time(Option<DateTime>)`](crate::output::CreateAccessTokenOutput::expires_time): <p>The date and time the personal access token expires, in coordinated universal time (UTC) timestamp format as specified in <a href="https://www.rfc-editor.org/rfc/rfc3339#section-5.6">RFC 3339</a>. If not specified, the default is one year from creation.</p>
    /// - On failure, responds with [`SdkError<CreateAccessTokenError>`](crate::error::CreateAccessTokenError)
    pub fn create_access_token(&self) -> fluent_builders::CreateAccessToken {
        fluent_builders::CreateAccessToken::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`CreateDevEnvironment`](crate::client::fluent_builders::CreateDevEnvironment) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`space_name(impl Into<String>)`](crate::client::fluent_builders::CreateDevEnvironment::space_name) / [`set_space_name(Option<String>)`](crate::client::fluent_builders::CreateDevEnvironment::set_space_name): <p>The name of the space.</p>
    ///   - [`project_name(impl Into<String>)`](crate::client::fluent_builders::CreateDevEnvironment::project_name) / [`set_project_name(Option<String>)`](crate::client::fluent_builders::CreateDevEnvironment::set_project_name): <p>The name of the project in the space.</p>
    ///   - [`repositories(Vec<RepositoryInput>)`](crate::client::fluent_builders::CreateDevEnvironment::repositories) / [`set_repositories(Option<Vec<RepositoryInput>>)`](crate::client::fluent_builders::CreateDevEnvironment::set_repositories): <p>The source repository that contains the branch to clone into the Dev Environment. </p>
    ///   - [`client_token(impl Into<String>)`](crate::client::fluent_builders::CreateDevEnvironment::client_token) / [`set_client_token(Option<String>)`](crate::client::fluent_builders::CreateDevEnvironment::set_client_token): <p>A user-specified idempotency token. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries return the result from the original successful request and have no additional effect.</p>
    ///   - [`alias(impl Into<String>)`](crate::client::fluent_builders::CreateDevEnvironment::alias) / [`set_alias(Option<String>)`](crate::client::fluent_builders::CreateDevEnvironment::set_alias): <p>The user-defined alias for a Dev Environment.</p>
    ///   - [`ides(Vec<IdeConfiguration>)`](crate::client::fluent_builders::CreateDevEnvironment::ides) / [`set_ides(Option<Vec<IdeConfiguration>>)`](crate::client::fluent_builders::CreateDevEnvironment::set_ides): <p>Information about the integrated development environment (IDE) configured for a Dev Environment.</p> <note>   <p>An IDE is required to create a Dev Environment. For Dev Environment creation, this field contains configuration information and must be provided.</p>  </note>
    ///   - [`instance_type(InstanceType)`](crate::client::fluent_builders::CreateDevEnvironment::instance_type) / [`set_instance_type(Option<InstanceType>)`](crate::client::fluent_builders::CreateDevEnvironment::set_instance_type): <p>The Amazon EC2 instace type to use for the Dev Environment. </p>
    ///   - [`inactivity_timeout_minutes(i32)`](crate::client::fluent_builders::CreateDevEnvironment::inactivity_timeout_minutes) / [`set_inactivity_timeout_minutes(i32)`](crate::client::fluent_builders::CreateDevEnvironment::set_inactivity_timeout_minutes): <p>The amount of time the Dev Environment will run without any activity detected before stopping, in minutes. Only whole integers are allowed. Dev Environments consume compute minutes when running.</p>
    ///   - [`persistent_storage(PersistentStorageConfiguration)`](crate::client::fluent_builders::CreateDevEnvironment::persistent_storage) / [`set_persistent_storage(Option<PersistentStorageConfiguration>)`](crate::client::fluent_builders::CreateDevEnvironment::set_persistent_storage): <p>Information about the amount of storage allocated to the Dev Environment. By default, a Dev Environment is configured to have 16GB of persistent storage.</p> <note>   <p>Valid values for persistent storage are based on memory sizes in 16GB increments. Valid values are 16, 32, and 64.</p>  </note>
    /// - On success, responds with [`CreateDevEnvironmentOutput`](crate::output::CreateDevEnvironmentOutput) with field(s):
    ///   - [`space_name(Option<String>)`](crate::output::CreateDevEnvironmentOutput::space_name): <p>The name of the space.</p>
    ///   - [`project_name(Option<String>)`](crate::output::CreateDevEnvironmentOutput::project_name): <p>The name of the project in the space.</p>
    ///   - [`id(Option<String>)`](crate::output::CreateDevEnvironmentOutput::id): <p>The system-generated unique ID of the Dev Environment. </p>
    /// - On failure, responds with [`SdkError<CreateDevEnvironmentError>`](crate::error::CreateDevEnvironmentError)
    pub fn create_dev_environment(&self) -> fluent_builders::CreateDevEnvironment {
        fluent_builders::CreateDevEnvironment::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`CreateProject`](crate::client::fluent_builders::CreateProject) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`space_name(impl Into<String>)`](crate::client::fluent_builders::CreateProject::space_name) / [`set_space_name(Option<String>)`](crate::client::fluent_builders::CreateProject::set_space_name): <p>The name of the space.</p>
    ///   - [`display_name(impl Into<String>)`](crate::client::fluent_builders::CreateProject::display_name) / [`set_display_name(Option<String>)`](crate::client::fluent_builders::CreateProject::set_display_name): <p>The friendly name of the project that will be displayed to users.</p>
    ///   - [`description(impl Into<String>)`](crate::client::fluent_builders::CreateProject::description) / [`set_description(Option<String>)`](crate::client::fluent_builders::CreateProject::set_description): <p>The description of the project. This description will be displayed to all users of the project. We recommend providing a brief description of the project and its intended purpose.</p>
    /// - On success, responds with [`CreateProjectOutput`](crate::output::CreateProjectOutput) with field(s):
    ///   - [`space_name(Option<String>)`](crate::output::CreateProjectOutput::space_name): <p>The name of the space.</p>
    ///   - [`name(Option<String>)`](crate::output::CreateProjectOutput::name): <p>The name of the project in the space.</p>
    ///   - [`display_name(Option<String>)`](crate::output::CreateProjectOutput::display_name): <p>The friendly name of the project.</p>
    ///   - [`description(Option<String>)`](crate::output::CreateProjectOutput::description): <p>The description of the project.</p>
    /// - On failure, responds with [`SdkError<CreateProjectError>`](crate::error::CreateProjectError)
    pub fn create_project(&self) -> fluent_builders::CreateProject {
        fluent_builders::CreateProject::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`CreateSourceRepositoryBranch`](crate::client::fluent_builders::CreateSourceRepositoryBranch) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`space_name(impl Into<String>)`](crate::client::fluent_builders::CreateSourceRepositoryBranch::space_name) / [`set_space_name(Option<String>)`](crate::client::fluent_builders::CreateSourceRepositoryBranch::set_space_name): <p>The name of the space.</p>
    ///   - [`project_name(impl Into<String>)`](crate::client::fluent_builders::CreateSourceRepositoryBranch::project_name) / [`set_project_name(Option<String>)`](crate::client::fluent_builders::CreateSourceRepositoryBranch::set_project_name): <p>The name of the project in the space.</p>
    ///   - [`source_repository_name(impl Into<String>)`](crate::client::fluent_builders::CreateSourceRepositoryBranch::source_repository_name) / [`set_source_repository_name(Option<String>)`](crate::client::fluent_builders::CreateSourceRepositoryBranch::set_source_repository_name): <p>The name of the repository where you want to create a branch.</p>
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::CreateSourceRepositoryBranch::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::CreateSourceRepositoryBranch::set_name): <p>The name for the branch you're creating.</p>
    ///   - [`head_commit_id(impl Into<String>)`](crate::client::fluent_builders::CreateSourceRepositoryBranch::head_commit_id) / [`set_head_commit_id(Option<String>)`](crate::client::fluent_builders::CreateSourceRepositoryBranch::set_head_commit_id): <p>The commit ID in an existing branch from which you want to create the new branch.</p>
    /// - On success, responds with [`CreateSourceRepositoryBranchOutput`](crate::output::CreateSourceRepositoryBranchOutput) with field(s):
    ///   - [`r#ref(Option<String>)`](crate::output::CreateSourceRepositoryBranchOutput::ref): <p>The Git reference name of the branch.</p>
    ///   - [`name(Option<String>)`](crate::output::CreateSourceRepositoryBranchOutput::name): <p>The name of the newly created branch.</p>
    ///   - [`last_updated_time(Option<DateTime>)`](crate::output::CreateSourceRepositoryBranchOutput::last_updated_time): <p>The time the branch was last updated, in coordinated universal time (UTC) timestamp format as specified in <a href="https://www.rfc-editor.org/rfc/rfc3339#section-5.6">RFC 3339</a>.</p>
    ///   - [`head_commit_id(Option<String>)`](crate::output::CreateSourceRepositoryBranchOutput::head_commit_id): <p>The commit ID of the tip of the newly created branch.</p>
    /// - On failure, responds with [`SdkError<CreateSourceRepositoryBranchError>`](crate::error::CreateSourceRepositoryBranchError)
    pub fn create_source_repository_branch(&self) -> fluent_builders::CreateSourceRepositoryBranch {
        fluent_builders::CreateSourceRepositoryBranch::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`DeleteAccessToken`](crate::client::fluent_builders::DeleteAccessToken) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`id(impl Into<String>)`](crate::client::fluent_builders::DeleteAccessToken::id) / [`set_id(Option<String>)`](crate::client::fluent_builders::DeleteAccessToken::set_id): <p>The ID of the personal access token to delete. You can find the IDs of all PATs associated with your user account by calling <code>ListAccessTokens</code>.</p>
    /// - On success, responds with [`DeleteAccessTokenOutput`](crate::output::DeleteAccessTokenOutput)

    /// - On failure, responds with [`SdkError<DeleteAccessTokenError>`](crate::error::DeleteAccessTokenError)
    pub fn delete_access_token(&self) -> fluent_builders::DeleteAccessToken {
        fluent_builders::DeleteAccessToken::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`DeleteDevEnvironment`](crate::client::fluent_builders::DeleteDevEnvironment) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`space_name(impl Into<String>)`](crate::client::fluent_builders::DeleteDevEnvironment::space_name) / [`set_space_name(Option<String>)`](crate::client::fluent_builders::DeleteDevEnvironment::set_space_name): <p>The name of the space.</p>
    ///   - [`project_name(impl Into<String>)`](crate::client::fluent_builders::DeleteDevEnvironment::project_name) / [`set_project_name(Option<String>)`](crate::client::fluent_builders::DeleteDevEnvironment::set_project_name): <p>The name of the project in the space.</p>
    ///   - [`id(impl Into<String>)`](crate::client::fluent_builders::DeleteDevEnvironment::id) / [`set_id(Option<String>)`](crate::client::fluent_builders::DeleteDevEnvironment::set_id): <p>The system-generated unique ID of the Dev Environment you want to delete. To retrieve a list of Dev Environment IDs, use <code>ListDevEnvironments</code>.</p>
    /// - On success, responds with [`DeleteDevEnvironmentOutput`](crate::output::DeleteDevEnvironmentOutput) with field(s):
    ///   - [`space_name(Option<String>)`](crate::output::DeleteDevEnvironmentOutput::space_name): <p>The name of the space.</p>
    ///   - [`project_name(Option<String>)`](crate::output::DeleteDevEnvironmentOutput::project_name): <p>The name of the project in the space.</p>
    ///   - [`id(Option<String>)`](crate::output::DeleteDevEnvironmentOutput::id): <p>The system-generated unique ID of the deleted Dev Environment. </p>
    /// - On failure, responds with [`SdkError<DeleteDevEnvironmentError>`](crate::error::DeleteDevEnvironmentError)
    pub fn delete_dev_environment(&self) -> fluent_builders::DeleteDevEnvironment {
        fluent_builders::DeleteDevEnvironment::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetDevEnvironment`](crate::client::fluent_builders::GetDevEnvironment) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`space_name(impl Into<String>)`](crate::client::fluent_builders::GetDevEnvironment::space_name) / [`set_space_name(Option<String>)`](crate::client::fluent_builders::GetDevEnvironment::set_space_name): <p>The name of the space.</p>
    ///   - [`project_name(impl Into<String>)`](crate::client::fluent_builders::GetDevEnvironment::project_name) / [`set_project_name(Option<String>)`](crate::client::fluent_builders::GetDevEnvironment::set_project_name): <p>The name of the project in the space.</p>
    ///   - [`id(impl Into<String>)`](crate::client::fluent_builders::GetDevEnvironment::id) / [`set_id(Option<String>)`](crate::client::fluent_builders::GetDevEnvironment::set_id): <p>The system-generated unique ID of the Dev Environment for which you want to view information. To retrieve a list of Dev Environment IDs, use <code>ListDevEnvironments</code>.</p>
    /// - On success, responds with [`GetDevEnvironmentOutput`](crate::output::GetDevEnvironmentOutput) with field(s):
    ///   - [`space_name(Option<String>)`](crate::output::GetDevEnvironmentOutput::space_name): <p>The name of the space.</p>
    ///   - [`project_name(Option<String>)`](crate::output::GetDevEnvironmentOutput::project_name): <p>The name of the project in the space.</p>
    ///   - [`id(Option<String>)`](crate::output::GetDevEnvironmentOutput::id): <p>The system-generated unique ID of the Dev Environment. </p>
    ///   - [`last_updated_time(Option<DateTime>)`](crate::output::GetDevEnvironmentOutput::last_updated_time): <p>The time when the Dev Environment was last updated, in coordinated universal time (UTC) timestamp format as specified in <a href="https://www.rfc-editor.org/rfc/rfc3339#section-5.6">RFC 3339</a>.</p>
    ///   - [`creator_id(Option<String>)`](crate::output::GetDevEnvironmentOutput::creator_id): <p>The system-generated unique ID of the user who created the Dev Environment. </p>
    ///   - [`status(Option<DevEnvironmentStatus>)`](crate::output::GetDevEnvironmentOutput::status): <p>The current status of the Dev Environment.</p>
    ///   - [`status_reason(Option<String>)`](crate::output::GetDevEnvironmentOutput::status_reason): <p>The reason for the status.</p>
    ///   - [`repositories(Option<Vec<DevEnvironmentRepositorySummary>>)`](crate::output::GetDevEnvironmentOutput::repositories): <p>The source repository that contains the branch cloned into the Dev Environment. </p>
    ///   - [`alias(Option<String>)`](crate::output::GetDevEnvironmentOutput::alias): <p>The user-specified alias for the Dev Environment. </p>
    ///   - [`ides(Option<Vec<Ide>>)`](crate::output::GetDevEnvironmentOutput::ides): <p>Information about the integrated development environment (IDE) configured for the Dev Environment. </p>
    ///   - [`instance_type(Option<InstanceType>)`](crate::output::GetDevEnvironmentOutput::instance_type): <p>The Amazon EC2 instace type to use for the Dev Environment. </p>
    ///   - [`inactivity_timeout_minutes(i32)`](crate::output::GetDevEnvironmentOutput::inactivity_timeout_minutes): <p>The amount of time the Dev Environment will run without any activity detected before stopping, in minutes.</p>
    ///   - [`persistent_storage(Option<PersistentStorage>)`](crate::output::GetDevEnvironmentOutput::persistent_storage): <p>Information about the amount of storage allocated to the Dev Environment. By default, a Dev Environment is configured to have 16GB of persistent storage.</p>
    /// - On failure, responds with [`SdkError<GetDevEnvironmentError>`](crate::error::GetDevEnvironmentError)
    pub fn get_dev_environment(&self) -> fluent_builders::GetDevEnvironment {
        fluent_builders::GetDevEnvironment::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetProject`](crate::client::fluent_builders::GetProject) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`space_name(impl Into<String>)`](crate::client::fluent_builders::GetProject::space_name) / [`set_space_name(Option<String>)`](crate::client::fluent_builders::GetProject::set_space_name): <p>The name of the space.</p>
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::GetProject::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::GetProject::set_name): <p>The name of the project in the space.</p>
    /// - On success, responds with [`GetProjectOutput`](crate::output::GetProjectOutput) with field(s):
    ///   - [`space_name(Option<String>)`](crate::output::GetProjectOutput::space_name): <p>The name of the space.</p>
    ///   - [`name(Option<String>)`](crate::output::GetProjectOutput::name): <p>The name of the project in the space.</p>
    ///   - [`display_name(Option<String>)`](crate::output::GetProjectOutput::display_name): <p>The friendly name of the project displayed to users in Amazon CodeCatalyst.</p>
    ///   - [`description(Option<String>)`](crate::output::GetProjectOutput::description): <p>The description of the project.</p>
    /// - On failure, responds with [`SdkError<GetProjectError>`](crate::error::GetProjectError)
    pub fn get_project(&self) -> fluent_builders::GetProject {
        fluent_builders::GetProject::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetSourceRepositoryCloneUrls`](crate::client::fluent_builders::GetSourceRepositoryCloneUrls) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`space_name(impl Into<String>)`](crate::client::fluent_builders::GetSourceRepositoryCloneUrls::space_name) / [`set_space_name(Option<String>)`](crate::client::fluent_builders::GetSourceRepositoryCloneUrls::set_space_name): <p>The name of the space.</p>
    ///   - [`project_name(impl Into<String>)`](crate::client::fluent_builders::GetSourceRepositoryCloneUrls::project_name) / [`set_project_name(Option<String>)`](crate::client::fluent_builders::GetSourceRepositoryCloneUrls::set_project_name): <p>The name of the project in the space.</p>
    ///   - [`source_repository_name(impl Into<String>)`](crate::client::fluent_builders::GetSourceRepositoryCloneUrls::source_repository_name) / [`set_source_repository_name(Option<String>)`](crate::client::fluent_builders::GetSourceRepositoryCloneUrls::set_source_repository_name): <p>The name of the source repository.</p>
    /// - On success, responds with [`GetSourceRepositoryCloneUrlsOutput`](crate::output::GetSourceRepositoryCloneUrlsOutput) with field(s):
    ///   - [`https(Option<String>)`](crate::output::GetSourceRepositoryCloneUrlsOutput::https): <p>The HTTPS URL to use when cloning the source repository.</p>
    /// - On failure, responds with [`SdkError<GetSourceRepositoryCloneUrlsError>`](crate::error::GetSourceRepositoryCloneUrlsError)
    pub fn get_source_repository_clone_urls(
        &self,
    ) -> fluent_builders::GetSourceRepositoryCloneUrls {
        fluent_builders::GetSourceRepositoryCloneUrls::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetSpace`](crate::client::fluent_builders::GetSpace) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::GetSpace::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::GetSpace::set_name): <p>The name of the space.</p>
    /// - On success, responds with [`GetSpaceOutput`](crate::output::GetSpaceOutput) with field(s):
    ///   - [`name(Option<String>)`](crate::output::GetSpaceOutput::name): <p>The name of the space.</p>
    ///   - [`region_name(Option<String>)`](crate::output::GetSpaceOutput::region_name): <p>The Amazon Web Services Region where the space exists.</p>
    ///   - [`display_name(Option<String>)`](crate::output::GetSpaceOutput::display_name): <p>The friendly name of the space displayed to users.</p>
    ///   - [`description(Option<String>)`](crate::output::GetSpaceOutput::description): <p>The description of the space.</p>
    /// - On failure, responds with [`SdkError<GetSpaceError>`](crate::error::GetSpaceError)
    pub fn get_space(&self) -> fluent_builders::GetSpace {
        fluent_builders::GetSpace::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetSubscription`](crate::client::fluent_builders::GetSubscription) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`space_name(impl Into<String>)`](crate::client::fluent_builders::GetSubscription::space_name) / [`set_space_name(Option<String>)`](crate::client::fluent_builders::GetSubscription::set_space_name): <p>The name of the space.</p>
    /// - On success, responds with [`GetSubscriptionOutput`](crate::output::GetSubscriptionOutput) with field(s):
    ///   - [`subscription_type(Option<String>)`](crate::output::GetSubscriptionOutput::subscription_type): <p>The type of the billing plan for the space.</p>
    ///   - [`aws_account_name(Option<String>)`](crate::output::GetSubscriptionOutput::aws_account_name): <p>The display name of the Amazon Web Services account used for billing for the space.</p>
    /// - On failure, responds with [`SdkError<GetSubscriptionError>`](crate::error::GetSubscriptionError)
    pub fn get_subscription(&self) -> fluent_builders::GetSubscription {
        fluent_builders::GetSubscription::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetUserDetails`](crate::client::fluent_builders::GetUserDetails) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`id(impl Into<String>)`](crate::client::fluent_builders::GetUserDetails::id) / [`set_id(Option<String>)`](crate::client::fluent_builders::GetUserDetails::set_id): <p>The system-generated unique ID of the user. </p>
    ///   - [`user_name(impl Into<String>)`](crate::client::fluent_builders::GetUserDetails::user_name) / [`set_user_name(Option<String>)`](crate::client::fluent_builders::GetUserDetails::set_user_name): <p>The name of the user as displayed in Amazon CodeCatalyst.</p>
    /// - On success, responds with [`GetUserDetailsOutput`](crate::output::GetUserDetailsOutput) with field(s):
    ///   - [`user_id(Option<String>)`](crate::output::GetUserDetailsOutput::user_id): <p>The system-generated unique ID of the user.</p>
    ///   - [`user_name(Option<String>)`](crate::output::GetUserDetailsOutput::user_name): <p>The name of the user as displayed in Amazon CodeCatalyst.</p>
    ///   - [`display_name(Option<String>)`](crate::output::GetUserDetailsOutput::display_name): <p>The friendly name displayed for the user in Amazon CodeCatalyst.</p>
    ///   - [`primary_email(Option<EmailAddress>)`](crate::output::GetUserDetailsOutput::primary_email): <p>The email address provided by the user when they signed up.</p>
    ///   - [`version(Option<String>)`](crate::output::GetUserDetailsOutput::version): <p></p>
    /// - On failure, responds with [`SdkError<GetUserDetailsError>`](crate::error::GetUserDetailsError)
    pub fn get_user_details(&self) -> fluent_builders::GetUserDetails {
        fluent_builders::GetUserDetails::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ListAccessTokens`](crate::client::fluent_builders::ListAccessTokens) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::ListAccessTokens::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`max_results(i32)`](crate::client::fluent_builders::ListAccessTokens::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::ListAccessTokens::set_max_results): <p>The maximum number of results to show in a single call to this API. If the number of results is larger than the number you specified, the response will include a <code>NextToken</code> element, which you can use to obtain additional results.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::ListAccessTokens::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::ListAccessTokens::set_next_token): <p>A token returned from a call to this API to indicate the next batch of results to return, if any.</p>
    /// - On success, responds with [`ListAccessTokensOutput`](crate::output::ListAccessTokensOutput) with field(s):
    ///   - [`items(Option<Vec<AccessTokenSummary>>)`](crate::output::ListAccessTokensOutput::items): <p>A list of personal access tokens (PATs) associated with the calling user.</p>
    ///   - [`next_token(Option<String>)`](crate::output::ListAccessTokensOutput::next_token): <p>A token returned from a call to this API to indicate the next batch of results to return, if any.</p>
    /// - On failure, responds with [`SdkError<ListAccessTokensError>`](crate::error::ListAccessTokensError)
    pub fn list_access_tokens(&self) -> fluent_builders::ListAccessTokens {
        fluent_builders::ListAccessTokens::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ListDevEnvironments`](crate::client::fluent_builders::ListDevEnvironments) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::ListDevEnvironments::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`space_name(impl Into<String>)`](crate::client::fluent_builders::ListDevEnvironments::space_name) / [`set_space_name(Option<String>)`](crate::client::fluent_builders::ListDevEnvironments::set_space_name): <p>The name of the space.</p>
    ///   - [`project_name(impl Into<String>)`](crate::client::fluent_builders::ListDevEnvironments::project_name) / [`set_project_name(Option<String>)`](crate::client::fluent_builders::ListDevEnvironments::set_project_name): <p>The name of the project in the space.</p>
    ///   - [`filters(Vec<Filter>)`](crate::client::fluent_builders::ListDevEnvironments::filters) / [`set_filters(Option<Vec<Filter>>)`](crate::client::fluent_builders::ListDevEnvironments::set_filters): <p>Information about filters to apply to narrow the results returned in the list.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::ListDevEnvironments::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::ListDevEnvironments::set_next_token): <p>A token returned from a call to this API to indicate the next batch of results to return, if any.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::ListDevEnvironments::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::ListDevEnvironments::set_max_results): <p>The maximum number of results to show in a single call to this API. If the number of results is larger than the number you specified, the response will include a <code>NextToken</code> element, which you can use to obtain additional results.</p>
    /// - On success, responds with [`ListDevEnvironmentsOutput`](crate::output::ListDevEnvironmentsOutput) with field(s):
    ///   - [`items(Option<Vec<DevEnvironmentSummary>>)`](crate::output::ListDevEnvironmentsOutput::items): <p>Information about the Dev Environments in a project.</p>
    ///   - [`next_token(Option<String>)`](crate::output::ListDevEnvironmentsOutput::next_token): <p>A token returned from a call to this API to indicate the next batch of results to return, if any.</p>
    /// - On failure, responds with [`SdkError<ListDevEnvironmentsError>`](crate::error::ListDevEnvironmentsError)
    pub fn list_dev_environments(&self) -> fluent_builders::ListDevEnvironments {
        fluent_builders::ListDevEnvironments::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ListEventLogs`](crate::client::fluent_builders::ListEventLogs) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::ListEventLogs::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`space_name(impl Into<String>)`](crate::client::fluent_builders::ListEventLogs::space_name) / [`set_space_name(Option<String>)`](crate::client::fluent_builders::ListEventLogs::set_space_name): <p>The name of the space.</p>
    ///   - [`start_time(DateTime)`](crate::client::fluent_builders::ListEventLogs::start_time) / [`set_start_time(Option<DateTime>)`](crate::client::fluent_builders::ListEventLogs::set_start_time): <p>The date and time when you want to start retrieving events, in coordinated universal time (UTC) timestamp format as specified in <a href="https://www.rfc-editor.org/rfc/rfc3339#section-5.6">RFC 3339</a>.</p>
    ///   - [`end_time(DateTime)`](crate::client::fluent_builders::ListEventLogs::end_time) / [`set_end_time(Option<DateTime>)`](crate::client::fluent_builders::ListEventLogs::set_end_time): <p>The time after which you do not want any events retrieved, in coordinated universal time (UTC) timestamp format as specified in <a href="https://www.rfc-editor.org/rfc/rfc3339#section-5.6">RFC 3339</a>.</p>
    ///   - [`event_name(impl Into<String>)`](crate::client::fluent_builders::ListEventLogs::event_name) / [`set_event_name(Option<String>)`](crate::client::fluent_builders::ListEventLogs::set_event_name): <p>The name of the event.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::ListEventLogs::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::ListEventLogs::set_next_token): <p>A token returned from a call to this API to indicate the next batch of results to return, if any.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::ListEventLogs::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::ListEventLogs::set_max_results): <p>The maximum number of results to show in a single call to this API. If the number of results is larger than the number you specified, the response will include a <code>NextToken</code> element, which you can use to obtain additional results.</p>
    /// - On success, responds with [`ListEventLogsOutput`](crate::output::ListEventLogsOutput) with field(s):
    ///   - [`next_token(Option<String>)`](crate::output::ListEventLogsOutput::next_token): <p>A token returned from a call to this API to indicate the next batch of results to return, if any.</p>
    ///   - [`items(Option<Vec<EventLogEntry>>)`](crate::output::ListEventLogsOutput::items): <p>Information about each event retrieved in the list.</p>
    /// - On failure, responds with [`SdkError<ListEventLogsError>`](crate::error::ListEventLogsError)
    pub fn list_event_logs(&self) -> fluent_builders::ListEventLogs {
        fluent_builders::ListEventLogs::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ListProjects`](crate::client::fluent_builders::ListProjects) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::ListProjects::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`space_name(impl Into<String>)`](crate::client::fluent_builders::ListProjects::space_name) / [`set_space_name(Option<String>)`](crate::client::fluent_builders::ListProjects::set_space_name): <p>The name of the space.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::ListProjects::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::ListProjects::set_next_token): <p>A token returned from a call to this API to indicate the next batch of results to return, if any.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::ListProjects::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::ListProjects::set_max_results): <p>The maximum number of results to show in a single call to this API. If the number of results is larger than the number you specified, the response will include a <code>NextToken</code> element, which you can use to obtain additional results.</p>
    ///   - [`filters(Vec<ProjectListFilter>)`](crate::client::fluent_builders::ListProjects::filters) / [`set_filters(Option<Vec<ProjectListFilter>>)`](crate::client::fluent_builders::ListProjects::set_filters): <p>Information about filters to apply to narrow the results returned in the list.</p>
    /// - On success, responds with [`ListProjectsOutput`](crate::output::ListProjectsOutput) with field(s):
    ///   - [`next_token(Option<String>)`](crate::output::ListProjectsOutput::next_token): <p>A token returned from a call to this API to indicate the next batch of results to return, if any.</p>
    ///   - [`items(Option<Vec<ProjectSummary>>)`](crate::output::ListProjectsOutput::items): <p>Information about the projects.</p>
    /// - On failure, responds with [`SdkError<ListProjectsError>`](crate::error::ListProjectsError)
    pub fn list_projects(&self) -> fluent_builders::ListProjects {
        fluent_builders::ListProjects::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ListSourceRepositories`](crate::client::fluent_builders::ListSourceRepositories) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::ListSourceRepositories::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`space_name(impl Into<String>)`](crate::client::fluent_builders::ListSourceRepositories::space_name) / [`set_space_name(Option<String>)`](crate::client::fluent_builders::ListSourceRepositories::set_space_name): <p>The name of the space.</p>
    ///   - [`project_name(impl Into<String>)`](crate::client::fluent_builders::ListSourceRepositories::project_name) / [`set_project_name(Option<String>)`](crate::client::fluent_builders::ListSourceRepositories::set_project_name): <p>The name of the project in the space.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::ListSourceRepositories::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::ListSourceRepositories::set_next_token): <p>A token returned from a call to this API to indicate the next batch of results to return, if any.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::ListSourceRepositories::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::ListSourceRepositories::set_max_results): <p>The maximum number of results to show in a single call to this API. If the number of results is larger than the number you specified, the response will include a <code>NextToken</code> element, which you can use to obtain additional results.</p>
    /// - On success, responds with [`ListSourceRepositoriesOutput`](crate::output::ListSourceRepositoriesOutput) with field(s):
    ///   - [`items(Option<Vec<ListSourceRepositoriesItem>>)`](crate::output::ListSourceRepositoriesOutput::items): <p>Information about the source repositories.</p>
    ///   - [`next_token(Option<String>)`](crate::output::ListSourceRepositoriesOutput::next_token): <p>A token returned from a call to this API to indicate the next batch of results to return, if any.</p>
    /// - On failure, responds with [`SdkError<ListSourceRepositoriesError>`](crate::error::ListSourceRepositoriesError)
    pub fn list_source_repositories(&self) -> fluent_builders::ListSourceRepositories {
        fluent_builders::ListSourceRepositories::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ListSourceRepositoryBranches`](crate::client::fluent_builders::ListSourceRepositoryBranches) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::ListSourceRepositoryBranches::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`space_name(impl Into<String>)`](crate::client::fluent_builders::ListSourceRepositoryBranches::space_name) / [`set_space_name(Option<String>)`](crate::client::fluent_builders::ListSourceRepositoryBranches::set_space_name): <p>The name of the space.</p>
    ///   - [`project_name(impl Into<String>)`](crate::client::fluent_builders::ListSourceRepositoryBranches::project_name) / [`set_project_name(Option<String>)`](crate::client::fluent_builders::ListSourceRepositoryBranches::set_project_name): <p>The name of the project in the space.</p>
    ///   - [`source_repository_name(impl Into<String>)`](crate::client::fluent_builders::ListSourceRepositoryBranches::source_repository_name) / [`set_source_repository_name(Option<String>)`](crate::client::fluent_builders::ListSourceRepositoryBranches::set_source_repository_name): <p>The name of the source repository.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::ListSourceRepositoryBranches::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::ListSourceRepositoryBranches::set_next_token): <p>A token returned from a call to this API to indicate the next batch of results to return, if any.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::ListSourceRepositoryBranches::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::ListSourceRepositoryBranches::set_max_results): <p>The maximum number of results to show in a single call to this API. If the number of results is larger than the number you specified, the response will include a <code>NextToken</code> element, which you can use to obtain additional results.</p>
    /// - On success, responds with [`ListSourceRepositoryBranchesOutput`](crate::output::ListSourceRepositoryBranchesOutput) with field(s):
    ///   - [`next_token(Option<String>)`](crate::output::ListSourceRepositoryBranchesOutput::next_token): <p>A token returned from a call to this API to indicate the next batch of results to return, if any.</p>
    ///   - [`items(Option<Vec<ListSourceRepositoryBranchesItem>>)`](crate::output::ListSourceRepositoryBranchesOutput::items): <p>Information about the source branches.</p>
    /// - On failure, responds with [`SdkError<ListSourceRepositoryBranchesError>`](crate::error::ListSourceRepositoryBranchesError)
    pub fn list_source_repository_branches(&self) -> fluent_builders::ListSourceRepositoryBranches {
        fluent_builders::ListSourceRepositoryBranches::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ListSpaces`](crate::client::fluent_builders::ListSpaces) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::ListSpaces::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::ListSpaces::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::ListSpaces::set_next_token): <p>A token returned from a call to this API to indicate the next batch of results to return, if any.</p>
    /// - On success, responds with [`ListSpacesOutput`](crate::output::ListSpacesOutput) with field(s):
    ///   - [`next_token(Option<String>)`](crate::output::ListSpacesOutput::next_token): <p>A token returned from a call to this API to indicate the next batch of results to return, if any.</p>
    ///   - [`items(Option<Vec<SpaceSummary>>)`](crate::output::ListSpacesOutput::items): <p>Information about the space. </p>
    /// - On failure, responds with [`SdkError<ListSpacesError>`](crate::error::ListSpacesError)
    pub fn list_spaces(&self) -> fluent_builders::ListSpaces {
        fluent_builders::ListSpaces::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`StartDevEnvironment`](crate::client::fluent_builders::StartDevEnvironment) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`space_name(impl Into<String>)`](crate::client::fluent_builders::StartDevEnvironment::space_name) / [`set_space_name(Option<String>)`](crate::client::fluent_builders::StartDevEnvironment::set_space_name): <p>The name of the space.</p>
    ///   - [`project_name(impl Into<String>)`](crate::client::fluent_builders::StartDevEnvironment::project_name) / [`set_project_name(Option<String>)`](crate::client::fluent_builders::StartDevEnvironment::set_project_name): <p>The name of the project in the space.</p>
    ///   - [`id(impl Into<String>)`](crate::client::fluent_builders::StartDevEnvironment::id) / [`set_id(Option<String>)`](crate::client::fluent_builders::StartDevEnvironment::set_id): <p>The system-generated unique ID of the Dev Environment. </p>
    ///   - [`ides(Vec<IdeConfiguration>)`](crate::client::fluent_builders::StartDevEnvironment::ides) / [`set_ides(Option<Vec<IdeConfiguration>>)`](crate::client::fluent_builders::StartDevEnvironment::set_ides): <p>Information about the integrated development environment (IDE) configured for a Dev Environment. </p>
    ///   - [`instance_type(InstanceType)`](crate::client::fluent_builders::StartDevEnvironment::instance_type) / [`set_instance_type(Option<InstanceType>)`](crate::client::fluent_builders::StartDevEnvironment::set_instance_type): <p>The Amazon EC2 instace type to use for the Dev Environment. </p>
    ///   - [`inactivity_timeout_minutes(i32)`](crate::client::fluent_builders::StartDevEnvironment::inactivity_timeout_minutes) / [`set_inactivity_timeout_minutes(i32)`](crate::client::fluent_builders::StartDevEnvironment::set_inactivity_timeout_minutes): <p>The amount of time the Dev Environment will run without any activity detected before stopping, in minutes. Only whole integers are allowed. Dev Environments consume compute minutes when running.</p>
    /// - On success, responds with [`StartDevEnvironmentOutput`](crate::output::StartDevEnvironmentOutput) with field(s):
    ///   - [`space_name(Option<String>)`](crate::output::StartDevEnvironmentOutput::space_name): <p>The name of the space.</p>
    ///   - [`project_name(Option<String>)`](crate::output::StartDevEnvironmentOutput::project_name): <p>The name of the project in the space.</p>
    ///   - [`id(Option<String>)`](crate::output::StartDevEnvironmentOutput::id): <p>The system-generated unique ID of the Dev Environment. </p>
    ///   - [`status(Option<DevEnvironmentStatus>)`](crate::output::StartDevEnvironmentOutput::status): <p>The status of the Dev Environment. </p>
    /// - On failure, responds with [`SdkError<StartDevEnvironmentError>`](crate::error::StartDevEnvironmentError)
    pub fn start_dev_environment(&self) -> fluent_builders::StartDevEnvironment {
        fluent_builders::StartDevEnvironment::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`StartDevEnvironmentSession`](crate::client::fluent_builders::StartDevEnvironmentSession) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`space_name(impl Into<String>)`](crate::client::fluent_builders::StartDevEnvironmentSession::space_name) / [`set_space_name(Option<String>)`](crate::client::fluent_builders::StartDevEnvironmentSession::set_space_name): <p>The name of the space.</p>
    ///   - [`project_name(impl Into<String>)`](crate::client::fluent_builders::StartDevEnvironmentSession::project_name) / [`set_project_name(Option<String>)`](crate::client::fluent_builders::StartDevEnvironmentSession::set_project_name): <p>The name of the project in the space.</p>
    ///   - [`id(impl Into<String>)`](crate::client::fluent_builders::StartDevEnvironmentSession::id) / [`set_id(Option<String>)`](crate::client::fluent_builders::StartDevEnvironmentSession::set_id): <p>The system-generated unique ID of the Dev Environment.</p>
    ///   - [`session_configuration(DevEnvironmentSessionConfiguration)`](crate::client::fluent_builders::StartDevEnvironmentSession::session_configuration) / [`set_session_configuration(Option<DevEnvironmentSessionConfiguration>)`](crate::client::fluent_builders::StartDevEnvironmentSession::set_session_configuration): <p>Information about the configuration of a Dev Environment session.</p>
    /// - On success, responds with [`StartDevEnvironmentSessionOutput`](crate::output::StartDevEnvironmentSessionOutput) with field(s):
    ///   - [`access_details(Option<DevEnvironmentAccessDetails>)`](crate::output::StartDevEnvironmentSessionOutput::access_details): <p>Information about connection details for a Dev Environment.</p>
    ///   - [`session_id(Option<String>)`](crate::output::StartDevEnvironmentSessionOutput::session_id): <p>The system-generated unique ID of the Dev Environment session.</p>
    ///   - [`space_name(Option<String>)`](crate::output::StartDevEnvironmentSessionOutput::space_name): <p>The name of the space.</p>
    ///   - [`project_name(Option<String>)`](crate::output::StartDevEnvironmentSessionOutput::project_name): <p>The name of the project in the space.</p>
    ///   - [`id(Option<String>)`](crate::output::StartDevEnvironmentSessionOutput::id): <p>The system-generated unique ID of the Dev Environment.</p>
    /// - On failure, responds with [`SdkError<StartDevEnvironmentSessionError>`](crate::error::StartDevEnvironmentSessionError)
    pub fn start_dev_environment_session(&self) -> fluent_builders::StartDevEnvironmentSession {
        fluent_builders::StartDevEnvironmentSession::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`StopDevEnvironment`](crate::client::fluent_builders::StopDevEnvironment) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`space_name(impl Into<String>)`](crate::client::fluent_builders::StopDevEnvironment::space_name) / [`set_space_name(Option<String>)`](crate::client::fluent_builders::StopDevEnvironment::set_space_name): <p>The name of the space.</p>
    ///   - [`project_name(impl Into<String>)`](crate::client::fluent_builders::StopDevEnvironment::project_name) / [`set_project_name(Option<String>)`](crate::client::fluent_builders::StopDevEnvironment::set_project_name): <p>The name of the project in the space.</p>
    ///   - [`id(impl Into<String>)`](crate::client::fluent_builders::StopDevEnvironment::id) / [`set_id(Option<String>)`](crate::client::fluent_builders::StopDevEnvironment::set_id): <p>The system-generated unique ID of the Dev Environment. </p>
    /// - On success, responds with [`StopDevEnvironmentOutput`](crate::output::StopDevEnvironmentOutput) with field(s):
    ///   - [`space_name(Option<String>)`](crate::output::StopDevEnvironmentOutput::space_name): <p>The name of the space.</p>
    ///   - [`project_name(Option<String>)`](crate::output::StopDevEnvironmentOutput::project_name): <p>The name of the project in the space.</p>
    ///   - [`id(Option<String>)`](crate::output::StopDevEnvironmentOutput::id): <p>The system-generated unique ID of the Dev Environment. </p>
    ///   - [`status(Option<DevEnvironmentStatus>)`](crate::output::StopDevEnvironmentOutput::status): <p>The status of the Dev Environment. </p>
    /// - On failure, responds with [`SdkError<StopDevEnvironmentError>`](crate::error::StopDevEnvironmentError)
    pub fn stop_dev_environment(&self) -> fluent_builders::StopDevEnvironment {
        fluent_builders::StopDevEnvironment::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`UpdateDevEnvironment`](crate::client::fluent_builders::UpdateDevEnvironment) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`space_name(impl Into<String>)`](crate::client::fluent_builders::UpdateDevEnvironment::space_name) / [`set_space_name(Option<String>)`](crate::client::fluent_builders::UpdateDevEnvironment::set_space_name): <p>The name of the space.</p>
    ///   - [`project_name(impl Into<String>)`](crate::client::fluent_builders::UpdateDevEnvironment::project_name) / [`set_project_name(Option<String>)`](crate::client::fluent_builders::UpdateDevEnvironment::set_project_name): <p>The name of the project in the space.</p>
    ///   - [`id(impl Into<String>)`](crate::client::fluent_builders::UpdateDevEnvironment::id) / [`set_id(Option<String>)`](crate::client::fluent_builders::UpdateDevEnvironment::set_id): <p>The system-generated unique ID of the Dev Environment. </p>
    ///   - [`alias(impl Into<String>)`](crate::client::fluent_builders::UpdateDevEnvironment::alias) / [`set_alias(Option<String>)`](crate::client::fluent_builders::UpdateDevEnvironment::set_alias): <p>The user-specified alias for the Dev Environment. Changing this value will not cause a restart.</p>
    ///   - [`ides(Vec<IdeConfiguration>)`](crate::client::fluent_builders::UpdateDevEnvironment::ides) / [`set_ides(Option<Vec<IdeConfiguration>>)`](crate::client::fluent_builders::UpdateDevEnvironment::set_ides): <p>Information about the integrated development environment (IDE) configured for a Dev Environment.</p>
    ///   - [`instance_type(InstanceType)`](crate::client::fluent_builders::UpdateDevEnvironment::instance_type) / [`set_instance_type(Option<InstanceType>)`](crate::client::fluent_builders::UpdateDevEnvironment::set_instance_type): <p>The Amazon EC2 instace type to use for the Dev Environment. </p> <note>   <p>Changing this value will cause a restart of the Dev Environment if it is running.</p>  </note>
    ///   - [`inactivity_timeout_minutes(i32)`](crate::client::fluent_builders::UpdateDevEnvironment::inactivity_timeout_minutes) / [`set_inactivity_timeout_minutes(i32)`](crate::client::fluent_builders::UpdateDevEnvironment::set_inactivity_timeout_minutes): <p>The amount of time the Dev Environment will run without any activity detected before stopping, in minutes. Only whole integers are allowed. Dev Environments consume compute minutes when running.</p> <note>   <p>Changing this value will cause a restart of the Dev Environment if it is running.</p>  </note>
    ///   - [`client_token(impl Into<String>)`](crate::client::fluent_builders::UpdateDevEnvironment::client_token) / [`set_client_token(Option<String>)`](crate::client::fluent_builders::UpdateDevEnvironment::set_client_token): <p>A user-specified idempotency token. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries return the result from the original successful request and have no additional effect.</p>
    /// - On success, responds with [`UpdateDevEnvironmentOutput`](crate::output::UpdateDevEnvironmentOutput) with field(s):
    ///   - [`id(Option<String>)`](crate::output::UpdateDevEnvironmentOutput::id): <p>The system-generated unique ID of the Dev Environment. </p>
    ///   - [`space_name(Option<String>)`](crate::output::UpdateDevEnvironmentOutput::space_name): <p>The name of the space.</p>
    ///   - [`project_name(Option<String>)`](crate::output::UpdateDevEnvironmentOutput::project_name): <p>The name of the project in the space.</p>
    ///   - [`alias(Option<String>)`](crate::output::UpdateDevEnvironmentOutput::alias): <p>The user-specified alias for the Dev Environment.</p>
    ///   - [`ides(Option<Vec<IdeConfiguration>>)`](crate::output::UpdateDevEnvironmentOutput::ides): <p>Information about the integrated development environment (IDE) configured for the Dev Environment.</p>
    ///   - [`instance_type(Option<InstanceType>)`](crate::output::UpdateDevEnvironmentOutput::instance_type): <p>The Amazon EC2 instace type to use for the Dev Environment. </p>
    ///   - [`inactivity_timeout_minutes(i32)`](crate::output::UpdateDevEnvironmentOutput::inactivity_timeout_minutes): <p>The amount of time the Dev Environment will run without any activity detected before stopping, in minutes. </p>
    ///   - [`client_token(Option<String>)`](crate::output::UpdateDevEnvironmentOutput::client_token): <p>A user-specified idempotency token. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries return the result from the original successful request and have no additional effect.</p>
    /// - On failure, responds with [`SdkError<UpdateDevEnvironmentError>`](crate::error::UpdateDevEnvironmentError)
    pub fn update_dev_environment(&self) -> fluent_builders::UpdateDevEnvironment {
        fluent_builders::UpdateDevEnvironment::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`VerifySession`](crate::client::fluent_builders::VerifySession) operation.
    ///
    /// - The fluent builder takes no input, just [`send`](crate::client::fluent_builders::VerifySession::send) it.

    /// - On success, responds with [`VerifySessionOutput`](crate::output::VerifySessionOutput) with field(s):
    ///   - [`identity(Option<String>)`](crate::output::VerifySessionOutput::identity): <p>The system-generated unique ID of the user in Amazon CodeCatalyst.</p>
    /// - On failure, responds with [`SdkError<VerifySessionError>`](crate::error::VerifySessionError)
    pub fn verify_session(&self) -> fluent_builders::VerifySession {
        fluent_builders::VerifySession::new(self.handle.clone())
    }
}
pub mod fluent_builders {

    //! Utilities to ergonomically construct a request to the service.
    //!
    //! Fluent builders are created through the [`Client`](crate::client::Client) by calling
    //! one if its operation methods. After parameters are set using the builder methods,
    //! the `send` method can be called to initiate the request.
    /// Fluent builder constructing a request to `CreateAccessToken`.
    ///
    /// <p>Creates a personal access token (PAT) for the current user. A personal access token (PAT) is similar to a password. It is associated with your user account. You use PATs to access Amazon CodeCatalyst resources such as source repositories from third-party applications like Git and integrated development environments (IDEs). For more information, see <a href="https://docs.aws.amazon.com/codecatalyst/latest/userguide/ipa-tokens-keys.html">Managing personal access tokens in Amazon CodeCatalyst</a>.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct CreateAccessToken {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::create_access_token_input::Builder,
    }
    impl CreateAccessToken {
        /// Creates a new `CreateAccessToken`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::CreateAccessToken,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::CreateAccessTokenError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// 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::output::CreateAccessTokenOutput,
            aws_smithy_http::result::SdkError<crate::error::CreateAccessTokenError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The friendly name of the personal access token.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The friendly name of the personal access token.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
        /// <p>The date and time the personal access token expires, in coordinated universal time (UTC) timestamp format as specified in <a href="https://www.rfc-editor.org/rfc/rfc3339#section-5.6">RFC 3339</a>.</p>
        pub fn expires_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.inner = self.inner.expires_time(input);
            self
        }
        /// <p>The date and time the personal access token expires, in coordinated universal time (UTC) timestamp format as specified in <a href="https://www.rfc-editor.org/rfc/rfc3339#section-5.6">RFC 3339</a>.</p>
        pub fn set_expires_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.inner = self.inner.set_expires_time(input);
            self
        }
    }
    /// Fluent builder constructing a request to `CreateDevEnvironment`.
    ///
    /// <p>Creates a Dev Environment in Amazon CodeCatalyst, a cloud-based development Dev Environment that you can use to quickly work on the code stored in the source repositories of your project. By default, a Dev Environment is configured to have a 2 core processor, 4GB of RAM, and 16GB of persistent storage. </p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct CreateDevEnvironment {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::create_dev_environment_input::Builder,
    }
    impl CreateDevEnvironment {
        /// Creates a new `CreateDevEnvironment`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::CreateDevEnvironment,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::CreateDevEnvironmentError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// 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::output::CreateDevEnvironmentOutput,
            aws_smithy_http::result::SdkError<crate::error::CreateDevEnvironmentError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the space.</p>
        pub fn space_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.space_name(input.into());
            self
        }
        /// <p>The name of the space.</p>
        pub fn set_space_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_space_name(input);
            self
        }
        /// <p>The name of the project in the space.</p>
        pub fn project_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.project_name(input.into());
            self
        }
        /// <p>The name of the project in the space.</p>
        pub fn set_project_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_project_name(input);
            self
        }
        /// Appends an item to `repositories`.
        ///
        /// To override the contents of this collection use [`set_repositories`](Self::set_repositories).
        ///
        /// <p>The source repository that contains the branch to clone into the Dev Environment. </p>
        pub fn repositories(mut self, input: crate::model::RepositoryInput) -> Self {
            self.inner = self.inner.repositories(input);
            self
        }
        /// <p>The source repository that contains the branch to clone into the Dev Environment. </p>
        pub fn set_repositories(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::RepositoryInput>>,
        ) -> Self {
            self.inner = self.inner.set_repositories(input);
            self
        }
        /// <p>A user-specified idempotency token. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries return the result from the original successful request and have no additional effect.</p>
        pub fn client_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.client_token(input.into());
            self
        }
        /// <p>A user-specified idempotency token. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries return the result from the original successful request and have no additional effect.</p>
        pub fn set_client_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_client_token(input);
            self
        }
        /// <p>The user-defined alias for a Dev Environment.</p>
        pub fn alias(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.alias(input.into());
            self
        }
        /// <p>The user-defined alias for a Dev Environment.</p>
        pub fn set_alias(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_alias(input);
            self
        }
        /// Appends an item to `ides`.
        ///
        /// To override the contents of this collection use [`set_ides`](Self::set_ides).
        ///
        /// <p>Information about the integrated development environment (IDE) configured for a Dev Environment.</p> <note>
        /// <p>An IDE is required to create a Dev Environment. For Dev Environment creation, this field contains configuration information and must be provided.</p>
        /// </note>
        pub fn ides(mut self, input: crate::model::IdeConfiguration) -> Self {
            self.inner = self.inner.ides(input);
            self
        }
        /// <p>Information about the integrated development environment (IDE) configured for a Dev Environment.</p> <note>
        /// <p>An IDE is required to create a Dev Environment. For Dev Environment creation, this field contains configuration information and must be provided.</p>
        /// </note>
        pub fn set_ides(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::IdeConfiguration>>,
        ) -> Self {
            self.inner = self.inner.set_ides(input);
            self
        }
        /// <p>The Amazon EC2 instace type to use for the Dev Environment. </p>
        pub fn instance_type(mut self, input: crate::model::InstanceType) -> Self {
            self.inner = self.inner.instance_type(input);
            self
        }
        /// <p>The Amazon EC2 instace type to use for the Dev Environment. </p>
        pub fn set_instance_type(
            mut self,
            input: std::option::Option<crate::model::InstanceType>,
        ) -> Self {
            self.inner = self.inner.set_instance_type(input);
            self
        }
        /// <p>The amount of time the Dev Environment will run without any activity detected before stopping, in minutes. Only whole integers are allowed. Dev Environments consume compute minutes when running.</p>
        pub fn inactivity_timeout_minutes(mut self, input: i32) -> Self {
            self.inner = self.inner.inactivity_timeout_minutes(input);
            self
        }
        /// <p>The amount of time the Dev Environment will run without any activity detected before stopping, in minutes. Only whole integers are allowed. Dev Environments consume compute minutes when running.</p>
        pub fn set_inactivity_timeout_minutes(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_inactivity_timeout_minutes(input);
            self
        }
        /// <p>Information about the amount of storage allocated to the Dev Environment. By default, a Dev Environment is configured to have 16GB of persistent storage.</p> <note>
        /// <p>Valid values for persistent storage are based on memory sizes in 16GB increments. Valid values are 16, 32, and 64.</p>
        /// </note>
        pub fn persistent_storage(
            mut self,
            input: crate::model::PersistentStorageConfiguration,
        ) -> Self {
            self.inner = self.inner.persistent_storage(input);
            self
        }
        /// <p>Information about the amount of storage allocated to the Dev Environment. By default, a Dev Environment is configured to have 16GB of persistent storage.</p> <note>
        /// <p>Valid values for persistent storage are based on memory sizes in 16GB increments. Valid values are 16, 32, and 64.</p>
        /// </note>
        pub fn set_persistent_storage(
            mut self,
            input: std::option::Option<crate::model::PersistentStorageConfiguration>,
        ) -> Self {
            self.inner = self.inner.set_persistent_storage(input);
            self
        }
    }
    /// Fluent builder constructing a request to `CreateProject`.
    ///
    /// <p>Creates a project in a specified space.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct CreateProject {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::create_project_input::Builder,
    }
    impl CreateProject {
        /// Creates a new `CreateProject`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::CreateProject,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::CreateProjectError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// 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::output::CreateProjectOutput,
            aws_smithy_http::result::SdkError<crate::error::CreateProjectError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the space.</p>
        pub fn space_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.space_name(input.into());
            self
        }
        /// <p>The name of the space.</p>
        pub fn set_space_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_space_name(input);
            self
        }
        /// <p>The friendly name of the project that will be displayed to users.</p>
        pub fn display_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.display_name(input.into());
            self
        }
        /// <p>The friendly name of the project that will be displayed to users.</p>
        pub fn set_display_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_display_name(input);
            self
        }
        /// <p>The description of the project. This description will be displayed to all users of the project. We recommend providing a brief description of the project and its intended purpose.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.description(input.into());
            self
        }
        /// <p>The description of the project. This description will be displayed to all users of the project. We recommend providing a brief description of the project and its intended purpose.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_description(input);
            self
        }
    }
    /// Fluent builder constructing a request to `CreateSourceRepositoryBranch`.
    ///
    /// <p>Creates a branch in a specified source repository in Amazon CodeCatalyst. </p> <note>
    /// <p>This API only creates a branch in a source repository hosted in Amazon CodeCatalyst. You cannot use this API to create a branch in a linked repository.</p>
    /// </note>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct CreateSourceRepositoryBranch {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::create_source_repository_branch_input::Builder,
    }
    impl CreateSourceRepositoryBranch {
        /// Creates a new `CreateSourceRepositoryBranch`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::CreateSourceRepositoryBranch,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::CreateSourceRepositoryBranchError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// 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::output::CreateSourceRepositoryBranchOutput,
            aws_smithy_http::result::SdkError<crate::error::CreateSourceRepositoryBranchError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the space.</p>
        pub fn space_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.space_name(input.into());
            self
        }
        /// <p>The name of the space.</p>
        pub fn set_space_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_space_name(input);
            self
        }
        /// <p>The name of the project in the space.</p>
        pub fn project_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.project_name(input.into());
            self
        }
        /// <p>The name of the project in the space.</p>
        pub fn set_project_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_project_name(input);
            self
        }
        /// <p>The name of the repository where you want to create a branch.</p>
        pub fn source_repository_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.source_repository_name(input.into());
            self
        }
        /// <p>The name of the repository where you want to create a branch.</p>
        pub fn set_source_repository_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_source_repository_name(input);
            self
        }
        /// <p>The name for the branch you're creating.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name for the branch you're creating.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
        /// <p>The commit ID in an existing branch from which you want to create the new branch.</p>
        pub fn head_commit_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.head_commit_id(input.into());
            self
        }
        /// <p>The commit ID in an existing branch from which you want to create the new branch.</p>
        pub fn set_head_commit_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_head_commit_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `DeleteAccessToken`.
    ///
    /// <p>Deletes a specified personal access token (PAT). A personal access token can only be deleted by the user who created it.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct DeleteAccessToken {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::delete_access_token_input::Builder,
    }
    impl DeleteAccessToken {
        /// Creates a new `DeleteAccessToken`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::DeleteAccessToken,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::DeleteAccessTokenError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// 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::output::DeleteAccessTokenOutput,
            aws_smithy_http::result::SdkError<crate::error::DeleteAccessTokenError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the personal access token to delete. You can find the IDs of all PATs associated with your user account by calling <code>ListAccessTokens</code>.</p>
        pub fn id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.id(input.into());
            self
        }
        /// <p>The ID of the personal access token to delete. You can find the IDs of all PATs associated with your user account by calling <code>ListAccessTokens</code>.</p>
        pub fn set_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `DeleteDevEnvironment`.
    ///
    /// <p>Deletes a Dev Environment. </p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct DeleteDevEnvironment {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::delete_dev_environment_input::Builder,
    }
    impl DeleteDevEnvironment {
        /// Creates a new `DeleteDevEnvironment`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::DeleteDevEnvironment,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::DeleteDevEnvironmentError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// 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::output::DeleteDevEnvironmentOutput,
            aws_smithy_http::result::SdkError<crate::error::DeleteDevEnvironmentError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the space.</p>
        pub fn space_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.space_name(input.into());
            self
        }
        /// <p>The name of the space.</p>
        pub fn set_space_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_space_name(input);
            self
        }
        /// <p>The name of the project in the space.</p>
        pub fn project_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.project_name(input.into());
            self
        }
        /// <p>The name of the project in the space.</p>
        pub fn set_project_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_project_name(input);
            self
        }
        /// <p>The system-generated unique ID of the Dev Environment you want to delete. To retrieve a list of Dev Environment IDs, use <code>ListDevEnvironments</code>.</p>
        pub fn id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.id(input.into());
            self
        }
        /// <p>The system-generated unique ID of the Dev Environment you want to delete. To retrieve a list of Dev Environment IDs, use <code>ListDevEnvironments</code>.</p>
        pub fn set_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetDevEnvironment`.
    ///
    /// <p>Returns information about a Dev Environment for a source repository in a project. Dev Environments are specific to the user who creates them.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetDevEnvironment {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_dev_environment_input::Builder,
    }
    impl GetDevEnvironment {
        /// Creates a new `GetDevEnvironment`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetDevEnvironment,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetDevEnvironmentError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// 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::output::GetDevEnvironmentOutput,
            aws_smithy_http::result::SdkError<crate::error::GetDevEnvironmentError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the space.</p>
        pub fn space_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.space_name(input.into());
            self
        }
        /// <p>The name of the space.</p>
        pub fn set_space_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_space_name(input);
            self
        }
        /// <p>The name of the project in the space.</p>
        pub fn project_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.project_name(input.into());
            self
        }
        /// <p>The name of the project in the space.</p>
        pub fn set_project_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_project_name(input);
            self
        }
        /// <p>The system-generated unique ID of the Dev Environment for which you want to view information. To retrieve a list of Dev Environment IDs, use <code>ListDevEnvironments</code>.</p>
        pub fn id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.id(input.into());
            self
        }
        /// <p>The system-generated unique ID of the Dev Environment for which you want to view information. To retrieve a list of Dev Environment IDs, use <code>ListDevEnvironments</code>.</p>
        pub fn set_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetProject`.
    ///
    /// <p>Returns information about a project.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetProject {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_project_input::Builder,
    }
    impl GetProject {
        /// Creates a new `GetProject`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetProject,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetProjectError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// 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::output::GetProjectOutput,
            aws_smithy_http::result::SdkError<crate::error::GetProjectError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the space.</p>
        pub fn space_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.space_name(input.into());
            self
        }
        /// <p>The name of the space.</p>
        pub fn set_space_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_space_name(input);
            self
        }
        /// <p>The name of the project in the space.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name of the project in the space.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetSourceRepositoryCloneUrls`.
    ///
    /// <p>Returns information about the URLs that can be used with a Git client to clone a source repository.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetSourceRepositoryCloneUrls {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_source_repository_clone_urls_input::Builder,
    }
    impl GetSourceRepositoryCloneUrls {
        /// Creates a new `GetSourceRepositoryCloneUrls`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetSourceRepositoryCloneUrls,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetSourceRepositoryCloneUrlsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// 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::output::GetSourceRepositoryCloneUrlsOutput,
            aws_smithy_http::result::SdkError<crate::error::GetSourceRepositoryCloneUrlsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the space.</p>
        pub fn space_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.space_name(input.into());
            self
        }
        /// <p>The name of the space.</p>
        pub fn set_space_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_space_name(input);
            self
        }
        /// <p>The name of the project in the space.</p>
        pub fn project_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.project_name(input.into());
            self
        }
        /// <p>The name of the project in the space.</p>
        pub fn set_project_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_project_name(input);
            self
        }
        /// <p>The name of the source repository.</p>
        pub fn source_repository_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.source_repository_name(input.into());
            self
        }
        /// <p>The name of the source repository.</p>
        pub fn set_source_repository_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_source_repository_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetSpace`.
    ///
    /// <p>Returns information about an space.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetSpace {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_space_input::Builder,
    }
    impl GetSpace {
        /// Creates a new `GetSpace`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetSpace,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetSpaceError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// 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::output::GetSpaceOutput,
            aws_smithy_http::result::SdkError<crate::error::GetSpaceError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the space.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name of the space.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetSubscription`.
    ///
    /// <p>Returns information about the Amazon Web Services account used for billing purposes and the billing plan for the space.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetSubscription {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_subscription_input::Builder,
    }
    impl GetSubscription {
        /// Creates a new `GetSubscription`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetSubscription,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetSubscriptionError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// 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::output::GetSubscriptionOutput,
            aws_smithy_http::result::SdkError<crate::error::GetSubscriptionError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the space.</p>
        pub fn space_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.space_name(input.into());
            self
        }
        /// <p>The name of the space.</p>
        pub fn set_space_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_space_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetUserDetails`.
    ///
    /// <p>Returns information about a user. </p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetUserDetails {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_user_details_input::Builder,
    }
    impl GetUserDetails {
        /// Creates a new `GetUserDetails`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetUserDetails,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetUserDetailsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// 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::output::GetUserDetailsOutput,
            aws_smithy_http::result::SdkError<crate::error::GetUserDetailsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The system-generated unique ID of the user. </p>
        pub fn id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.id(input.into());
            self
        }
        /// <p>The system-generated unique ID of the user. </p>
        pub fn set_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_id(input);
            self
        }
        /// <p>The name of the user as displayed in Amazon CodeCatalyst.</p>
        pub fn user_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.user_name(input.into());
            self
        }
        /// <p>The name of the user as displayed in Amazon CodeCatalyst.</p>
        pub fn set_user_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_user_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ListAccessTokens`.
    ///
    /// <p>Lists all personal access tokens (PATs) associated with the user who calls the API. You can only list PATs associated with your user account.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ListAccessTokens {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::list_access_tokens_input::Builder,
    }
    impl ListAccessTokens {
        /// Creates a new `ListAccessTokens`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ListAccessTokens,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::ListAccessTokensError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// 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::output::ListAccessTokensOutput,
            aws_smithy_http::result::SdkError<crate::error::ListAccessTokensError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::ListAccessTokensPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::ListAccessTokensPaginator {
            crate::paginator::ListAccessTokensPaginator::new(self.handle, self.inner)
        }
        /// <p>The maximum number of results to show in a single call to this API. If the number of results is larger than the number you specified, the response will include a <code>NextToken</code> element, which you can use to obtain additional results.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum number of results to show in a single call to this API. If the number of results is larger than the number you specified, the response will include a <code>NextToken</code> element, which you can use to obtain additional results.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
        /// <p>A token returned from a call to this API to indicate the next batch of results to return, if any.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A token returned from a call to this API to indicate the next batch of results to return, if any.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ListDevEnvironments`.
    ///
    /// <p>Retrives a list of Dev Environments in a project.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ListDevEnvironments {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::list_dev_environments_input::Builder,
    }
    impl ListDevEnvironments {
        /// Creates a new `ListDevEnvironments`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ListDevEnvironments,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::ListDevEnvironmentsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// 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::output::ListDevEnvironmentsOutput,
            aws_smithy_http::result::SdkError<crate::error::ListDevEnvironmentsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::ListDevEnvironmentsPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::ListDevEnvironmentsPaginator {
            crate::paginator::ListDevEnvironmentsPaginator::new(self.handle, self.inner)
        }
        /// <p>The name of the space.</p>
        pub fn space_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.space_name(input.into());
            self
        }
        /// <p>The name of the space.</p>
        pub fn set_space_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_space_name(input);
            self
        }
        /// <p>The name of the project in the space.</p>
        pub fn project_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.project_name(input.into());
            self
        }
        /// <p>The name of the project in the space.</p>
        pub fn set_project_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_project_name(input);
            self
        }
        /// Appends an item to `filters`.
        ///
        /// To override the contents of this collection use [`set_filters`](Self::set_filters).
        ///
        /// <p>Information about filters to apply to narrow the results returned in the list.</p>
        pub fn filters(mut self, input: crate::model::Filter) -> Self {
            self.inner = self.inner.filters(input);
            self
        }
        /// <p>Information about filters to apply to narrow the results returned in the list.</p>
        pub fn set_filters(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::Filter>>,
        ) -> Self {
            self.inner = self.inner.set_filters(input);
            self
        }
        /// <p>A token returned from a call to this API to indicate the next batch of results to return, if any.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A token returned from a call to this API to indicate the next batch of results to return, if any.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// <p>The maximum number of results to show in a single call to this API. If the number of results is larger than the number you specified, the response will include a <code>NextToken</code> element, which you can use to obtain additional results.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum number of results to show in a single call to this API. If the number of results is larger than the number you specified, the response will include a <code>NextToken</code> element, which you can use to obtain additional results.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ListEventLogs`.
    ///
    /// <p>Retrieves a list of events that occurred during a specified time period in a space. You can use these events to audit user and system activity in a space.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ListEventLogs {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::list_event_logs_input::Builder,
    }
    impl ListEventLogs {
        /// Creates a new `ListEventLogs`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ListEventLogs,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::ListEventLogsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// 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::output::ListEventLogsOutput,
            aws_smithy_http::result::SdkError<crate::error::ListEventLogsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::ListEventLogsPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::ListEventLogsPaginator {
            crate::paginator::ListEventLogsPaginator::new(self.handle, self.inner)
        }
        /// <p>The name of the space.</p>
        pub fn space_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.space_name(input.into());
            self
        }
        /// <p>The name of the space.</p>
        pub fn set_space_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_space_name(input);
            self
        }
        /// <p>The date and time when you want to start retrieving events, in coordinated universal time (UTC) timestamp format as specified in <a href="https://www.rfc-editor.org/rfc/rfc3339#section-5.6">RFC 3339</a>.</p>
        pub fn start_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.inner = self.inner.start_time(input);
            self
        }
        /// <p>The date and time when you want to start retrieving events, in coordinated universal time (UTC) timestamp format as specified in <a href="https://www.rfc-editor.org/rfc/rfc3339#section-5.6">RFC 3339</a>.</p>
        pub fn set_start_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.inner = self.inner.set_start_time(input);
            self
        }
        /// <p>The time after which you do not want any events retrieved, in coordinated universal time (UTC) timestamp format as specified in <a href="https://www.rfc-editor.org/rfc/rfc3339#section-5.6">RFC 3339</a>.</p>
        pub fn end_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.inner = self.inner.end_time(input);
            self
        }
        /// <p>The time after which you do not want any events retrieved, in coordinated universal time (UTC) timestamp format as specified in <a href="https://www.rfc-editor.org/rfc/rfc3339#section-5.6">RFC 3339</a>.</p>
        pub fn set_end_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.inner = self.inner.set_end_time(input);
            self
        }
        /// <p>The name of the event.</p>
        pub fn event_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.event_name(input.into());
            self
        }
        /// <p>The name of the event.</p>
        pub fn set_event_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_event_name(input);
            self
        }
        /// <p>A token returned from a call to this API to indicate the next batch of results to return, if any.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A token returned from a call to this API to indicate the next batch of results to return, if any.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// <p>The maximum number of results to show in a single call to this API. If the number of results is larger than the number you specified, the response will include a <code>NextToken</code> element, which you can use to obtain additional results.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum number of results to show in a single call to this API. If the number of results is larger than the number you specified, the response will include a <code>NextToken</code> element, which you can use to obtain additional results.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ListProjects`.
    ///
    /// <p>Retrieves a list of projects.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ListProjects {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::list_projects_input::Builder,
    }
    impl ListProjects {
        /// Creates a new `ListProjects`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ListProjects,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::ListProjectsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// 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::output::ListProjectsOutput,
            aws_smithy_http::result::SdkError<crate::error::ListProjectsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::ListProjectsPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::ListProjectsPaginator {
            crate::paginator::ListProjectsPaginator::new(self.handle, self.inner)
        }
        /// <p>The name of the space.</p>
        pub fn space_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.space_name(input.into());
            self
        }
        /// <p>The name of the space.</p>
        pub fn set_space_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_space_name(input);
            self
        }
        /// <p>A token returned from a call to this API to indicate the next batch of results to return, if any.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A token returned from a call to this API to indicate the next batch of results to return, if any.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// <p>The maximum number of results to show in a single call to this API. If the number of results is larger than the number you specified, the response will include a <code>NextToken</code> element, which you can use to obtain additional results.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum number of results to show in a single call to this API. If the number of results is larger than the number you specified, the response will include a <code>NextToken</code> element, which you can use to obtain additional results.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
        /// Appends an item to `filters`.
        ///
        /// To override the contents of this collection use [`set_filters`](Self::set_filters).
        ///
        /// <p>Information about filters to apply to narrow the results returned in the list.</p>
        pub fn filters(mut self, input: crate::model::ProjectListFilter) -> Self {
            self.inner = self.inner.filters(input);
            self
        }
        /// <p>Information about filters to apply to narrow the results returned in the list.</p>
        pub fn set_filters(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::ProjectListFilter>>,
        ) -> Self {
            self.inner = self.inner.set_filters(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ListSourceRepositories`.
    ///
    /// <p>Retrieves a list of source repositories in a project.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ListSourceRepositories {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::list_source_repositories_input::Builder,
    }
    impl ListSourceRepositories {
        /// Creates a new `ListSourceRepositories`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ListSourceRepositories,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::ListSourceRepositoriesError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// 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::output::ListSourceRepositoriesOutput,
            aws_smithy_http::result::SdkError<crate::error::ListSourceRepositoriesError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::ListSourceRepositoriesPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::ListSourceRepositoriesPaginator {
            crate::paginator::ListSourceRepositoriesPaginator::new(self.handle, self.inner)
        }
        /// <p>The name of the space.</p>
        pub fn space_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.space_name(input.into());
            self
        }
        /// <p>The name of the space.</p>
        pub fn set_space_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_space_name(input);
            self
        }
        /// <p>The name of the project in the space.</p>
        pub fn project_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.project_name(input.into());
            self
        }
        /// <p>The name of the project in the space.</p>
        pub fn set_project_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_project_name(input);
            self
        }
        /// <p>A token returned from a call to this API to indicate the next batch of results to return, if any.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A token returned from a call to this API to indicate the next batch of results to return, if any.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// <p>The maximum number of results to show in a single call to this API. If the number of results is larger than the number you specified, the response will include a <code>NextToken</code> element, which you can use to obtain additional results.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum number of results to show in a single call to this API. If the number of results is larger than the number you specified, the response will include a <code>NextToken</code> element, which you can use to obtain additional results.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ListSourceRepositoryBranches`.
    ///
    /// <p>Retrieves a list of branches in a specified source repository.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ListSourceRepositoryBranches {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::list_source_repository_branches_input::Builder,
    }
    impl ListSourceRepositoryBranches {
        /// Creates a new `ListSourceRepositoryBranches`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ListSourceRepositoryBranches,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::ListSourceRepositoryBranchesError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// 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::output::ListSourceRepositoryBranchesOutput,
            aws_smithy_http::result::SdkError<crate::error::ListSourceRepositoryBranchesError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::ListSourceRepositoryBranchesPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::ListSourceRepositoryBranchesPaginator {
            crate::paginator::ListSourceRepositoryBranchesPaginator::new(self.handle, self.inner)
        }
        /// <p>The name of the space.</p>
        pub fn space_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.space_name(input.into());
            self
        }
        /// <p>The name of the space.</p>
        pub fn set_space_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_space_name(input);
            self
        }
        /// <p>The name of the project in the space.</p>
        pub fn project_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.project_name(input.into());
            self
        }
        /// <p>The name of the project in the space.</p>
        pub fn set_project_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_project_name(input);
            self
        }
        /// <p>The name of the source repository.</p>
        pub fn source_repository_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.source_repository_name(input.into());
            self
        }
        /// <p>The name of the source repository.</p>
        pub fn set_source_repository_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_source_repository_name(input);
            self
        }
        /// <p>A token returned from a call to this API to indicate the next batch of results to return, if any.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A token returned from a call to this API to indicate the next batch of results to return, if any.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// <p>The maximum number of results to show in a single call to this API. If the number of results is larger than the number you specified, the response will include a <code>NextToken</code> element, which you can use to obtain additional results.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum number of results to show in a single call to this API. If the number of results is larger than the number you specified, the response will include a <code>NextToken</code> element, which you can use to obtain additional results.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ListSpaces`.
    ///
    /// <p>Retrieves a list of spaces.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ListSpaces {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::list_spaces_input::Builder,
    }
    impl ListSpaces {
        /// Creates a new `ListSpaces`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ListSpaces,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::ListSpacesError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// 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::output::ListSpacesOutput,
            aws_smithy_http::result::SdkError<crate::error::ListSpacesError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::ListSpacesPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::ListSpacesPaginator {
            crate::paginator::ListSpacesPaginator::new(self.handle, self.inner)
        }
        /// <p>A token returned from a call to this API to indicate the next batch of results to return, if any.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A token returned from a call to this API to indicate the next batch of results to return, if any.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
    }
    /// Fluent builder constructing a request to `StartDevEnvironment`.
    ///
    /// <p>Starts a specified Dev Environment and puts it into an active state. </p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct StartDevEnvironment {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::start_dev_environment_input::Builder,
    }
    impl StartDevEnvironment {
        /// Creates a new `StartDevEnvironment`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::StartDevEnvironment,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::StartDevEnvironmentError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// 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::output::StartDevEnvironmentOutput,
            aws_smithy_http::result::SdkError<crate::error::StartDevEnvironmentError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the space.</p>
        pub fn space_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.space_name(input.into());
            self
        }
        /// <p>The name of the space.</p>
        pub fn set_space_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_space_name(input);
            self
        }
        /// <p>The name of the project in the space.</p>
        pub fn project_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.project_name(input.into());
            self
        }
        /// <p>The name of the project in the space.</p>
        pub fn set_project_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_project_name(input);
            self
        }
        /// <p>The system-generated unique ID of the Dev Environment. </p>
        pub fn id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.id(input.into());
            self
        }
        /// <p>The system-generated unique ID of the Dev Environment. </p>
        pub fn set_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_id(input);
            self
        }
        /// Appends an item to `ides`.
        ///
        /// To override the contents of this collection use [`set_ides`](Self::set_ides).
        ///
        /// <p>Information about the integrated development environment (IDE) configured for a Dev Environment. </p>
        pub fn ides(mut self, input: crate::model::IdeConfiguration) -> Self {
            self.inner = self.inner.ides(input);
            self
        }
        /// <p>Information about the integrated development environment (IDE) configured for a Dev Environment. </p>
        pub fn set_ides(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::IdeConfiguration>>,
        ) -> Self {
            self.inner = self.inner.set_ides(input);
            self
        }
        /// <p>The Amazon EC2 instace type to use for the Dev Environment. </p>
        pub fn instance_type(mut self, input: crate::model::InstanceType) -> Self {
            self.inner = self.inner.instance_type(input);
            self
        }
        /// <p>The Amazon EC2 instace type to use for the Dev Environment. </p>
        pub fn set_instance_type(
            mut self,
            input: std::option::Option<crate::model::InstanceType>,
        ) -> Self {
            self.inner = self.inner.set_instance_type(input);
            self
        }
        /// <p>The amount of time the Dev Environment will run without any activity detected before stopping, in minutes. Only whole integers are allowed. Dev Environments consume compute minutes when running.</p>
        pub fn inactivity_timeout_minutes(mut self, input: i32) -> Self {
            self.inner = self.inner.inactivity_timeout_minutes(input);
            self
        }
        /// <p>The amount of time the Dev Environment will run without any activity detected before stopping, in minutes. Only whole integers are allowed. Dev Environments consume compute minutes when running.</p>
        pub fn set_inactivity_timeout_minutes(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_inactivity_timeout_minutes(input);
            self
        }
    }
    /// Fluent builder constructing a request to `StartDevEnvironmentSession`.
    ///
    /// <p>Starts a session for a specified Dev Environment.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct StartDevEnvironmentSession {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::start_dev_environment_session_input::Builder,
    }
    impl StartDevEnvironmentSession {
        /// Creates a new `StartDevEnvironmentSession`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::StartDevEnvironmentSession,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::StartDevEnvironmentSessionError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// 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::output::StartDevEnvironmentSessionOutput,
            aws_smithy_http::result::SdkError<crate::error::StartDevEnvironmentSessionError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the space.</p>
        pub fn space_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.space_name(input.into());
            self
        }
        /// <p>The name of the space.</p>
        pub fn set_space_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_space_name(input);
            self
        }
        /// <p>The name of the project in the space.</p>
        pub fn project_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.project_name(input.into());
            self
        }
        /// <p>The name of the project in the space.</p>
        pub fn set_project_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_project_name(input);
            self
        }
        /// <p>The system-generated unique ID of the Dev Environment.</p>
        pub fn id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.id(input.into());
            self
        }
        /// <p>The system-generated unique ID of the Dev Environment.</p>
        pub fn set_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_id(input);
            self
        }
        /// <p>Information about the configuration of a Dev Environment session.</p>
        pub fn session_configuration(
            mut self,
            input: crate::model::DevEnvironmentSessionConfiguration,
        ) -> Self {
            self.inner = self.inner.session_configuration(input);
            self
        }
        /// <p>Information about the configuration of a Dev Environment session.</p>
        pub fn set_session_configuration(
            mut self,
            input: std::option::Option<crate::model::DevEnvironmentSessionConfiguration>,
        ) -> Self {
            self.inner = self.inner.set_session_configuration(input);
            self
        }
    }
    /// Fluent builder constructing a request to `StopDevEnvironment`.
    ///
    /// <p>Pauses a specified Dev Environment and places it in a non-running state. Stopped Dev Environments do not consume compute minutes.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct StopDevEnvironment {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::stop_dev_environment_input::Builder,
    }
    impl StopDevEnvironment {
        /// Creates a new `StopDevEnvironment`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::StopDevEnvironment,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::StopDevEnvironmentError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// 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::output::StopDevEnvironmentOutput,
            aws_smithy_http::result::SdkError<crate::error::StopDevEnvironmentError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the space.</p>
        pub fn space_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.space_name(input.into());
            self
        }
        /// <p>The name of the space.</p>
        pub fn set_space_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_space_name(input);
            self
        }
        /// <p>The name of the project in the space.</p>
        pub fn project_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.project_name(input.into());
            self
        }
        /// <p>The name of the project in the space.</p>
        pub fn set_project_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_project_name(input);
            self
        }
        /// <p>The system-generated unique ID of the Dev Environment. </p>
        pub fn id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.id(input.into());
            self
        }
        /// <p>The system-generated unique ID of the Dev Environment. </p>
        pub fn set_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `UpdateDevEnvironment`.
    ///
    /// <p>Changes one or more values for a Dev Environment. Updating certain values of the Dev Environment will cause a restart.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct UpdateDevEnvironment {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::update_dev_environment_input::Builder,
    }
    impl UpdateDevEnvironment {
        /// Creates a new `UpdateDevEnvironment`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::UpdateDevEnvironment,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::UpdateDevEnvironmentError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// 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::output::UpdateDevEnvironmentOutput,
            aws_smithy_http::result::SdkError<crate::error::UpdateDevEnvironmentError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the space.</p>
        pub fn space_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.space_name(input.into());
            self
        }
        /// <p>The name of the space.</p>
        pub fn set_space_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_space_name(input);
            self
        }
        /// <p>The name of the project in the space.</p>
        pub fn project_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.project_name(input.into());
            self
        }
        /// <p>The name of the project in the space.</p>
        pub fn set_project_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_project_name(input);
            self
        }
        /// <p>The system-generated unique ID of the Dev Environment. </p>
        pub fn id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.id(input.into());
            self
        }
        /// <p>The system-generated unique ID of the Dev Environment. </p>
        pub fn set_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_id(input);
            self
        }
        /// <p>The user-specified alias for the Dev Environment. Changing this value will not cause a restart.</p>
        pub fn alias(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.alias(input.into());
            self
        }
        /// <p>The user-specified alias for the Dev Environment. Changing this value will not cause a restart.</p>
        pub fn set_alias(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_alias(input);
            self
        }
        /// Appends an item to `ides`.
        ///
        /// To override the contents of this collection use [`set_ides`](Self::set_ides).
        ///
        /// <p>Information about the integrated development environment (IDE) configured for a Dev Environment.</p>
        pub fn ides(mut self, input: crate::model::IdeConfiguration) -> Self {
            self.inner = self.inner.ides(input);
            self
        }
        /// <p>Information about the integrated development environment (IDE) configured for a Dev Environment.</p>
        pub fn set_ides(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::IdeConfiguration>>,
        ) -> Self {
            self.inner = self.inner.set_ides(input);
            self
        }
        /// <p>The Amazon EC2 instace type to use for the Dev Environment. </p> <note>
        /// <p>Changing this value will cause a restart of the Dev Environment if it is running.</p>
        /// </note>
        pub fn instance_type(mut self, input: crate::model::InstanceType) -> Self {
            self.inner = self.inner.instance_type(input);
            self
        }
        /// <p>The Amazon EC2 instace type to use for the Dev Environment. </p> <note>
        /// <p>Changing this value will cause a restart of the Dev Environment if it is running.</p>
        /// </note>
        pub fn set_instance_type(
            mut self,
            input: std::option::Option<crate::model::InstanceType>,
        ) -> Self {
            self.inner = self.inner.set_instance_type(input);
            self
        }
        /// <p>The amount of time the Dev Environment will run without any activity detected before stopping, in minutes. Only whole integers are allowed. Dev Environments consume compute minutes when running.</p> <note>
        /// <p>Changing this value will cause a restart of the Dev Environment if it is running.</p>
        /// </note>
        pub fn inactivity_timeout_minutes(mut self, input: i32) -> Self {
            self.inner = self.inner.inactivity_timeout_minutes(input);
            self
        }
        /// <p>The amount of time the Dev Environment will run without any activity detected before stopping, in minutes. Only whole integers are allowed. Dev Environments consume compute minutes when running.</p> <note>
        /// <p>Changing this value will cause a restart of the Dev Environment if it is running.</p>
        /// </note>
        pub fn set_inactivity_timeout_minutes(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_inactivity_timeout_minutes(input);
            self
        }
        /// <p>A user-specified idempotency token. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries return the result from the original successful request and have no additional effect.</p>
        pub fn client_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.client_token(input.into());
            self
        }
        /// <p>A user-specified idempotency token. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries return the result from the original successful request and have no additional effect.</p>
        pub fn set_client_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_client_token(input);
            self
        }
    }
    /// Fluent builder constructing a request to `VerifySession`.
    ///
    /// <p>Verifies whether the calling user has a valid Amazon CodeCatalyst login and session. If successful, this returns the ID of the user in Amazon CodeCatalyst.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct VerifySession {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::verify_session_input::Builder,
    }
    impl VerifySession {
        /// Creates a new `VerifySession`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::VerifySession,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::VerifySessionError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// 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::output::VerifySessionOutput,
            aws_smithy_http::result::SdkError<crate::error::VerifySessionError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
    }
}

impl Client {
    /// Creates a new client from an [SDK Config](aws_types::sdk_config::SdkConfig).
    ///
    /// # Panics
    ///
    /// - This method will panic if the `sdk_config` is missing an async sleep implementation. If you experience this panic, set
    ///     the `sleep_impl` on the Config passed into this function to fix it.
    /// - This method will panic if the `sdk_config` is missing an HTTP connector. If you experience this panic, set the
    ///     `http_connector` on the Config passed into this function to fix it.
    pub fn new(sdk_config: &aws_types::sdk_config::SdkConfig) -> Self {
        Self::from_conf(sdk_config.into())
    }

    /// Creates a new client from the service [`Config`](crate::Config).
    ///
    /// # Panics
    ///
    /// - This method will panic if the `conf` is missing an async sleep implementation. If you experience this panic, set
    ///     the `sleep_impl` on the Config passed into this function to fix it.
    /// - This method will panic if the `conf` is missing an HTTP connector. If you experience this panic, set the
    ///     `http_connector` on the Config passed into this function to fix it.
    pub fn from_conf(conf: crate::Config) -> Self {
        let retry_config = conf
            .retry_config()
            .cloned()
            .unwrap_or_else(aws_smithy_types::retry::RetryConfig::disabled);
        let timeout_config = conf
            .timeout_config()
            .cloned()
            .unwrap_or_else(aws_smithy_types::timeout::TimeoutConfig::disabled);
        let sleep_impl = conf.sleep_impl();
        if (retry_config.has_retry() || timeout_config.has_timeouts()) && sleep_impl.is_none() {
            panic!("An async sleep implementation is required for retries or timeouts to work. \
                                    Set the `sleep_impl` on the Config passed into this function to fix this panic.");
        }

        let connector = conf.http_connector().and_then(|c| {
            let timeout_config = conf
                .timeout_config()
                .cloned()
                .unwrap_or_else(aws_smithy_types::timeout::TimeoutConfig::disabled);
            let connector_settings =
                aws_smithy_client::http_connector::ConnectorSettings::from_timeout_config(
                    &timeout_config,
                );
            c.connector(&connector_settings, conf.sleep_impl())
        });

        let builder = aws_smithy_client::Builder::new();

        let builder = match connector {
            // Use provided connector
            Some(c) => builder.connector(c),
            None => {
                #[cfg(any(feature = "rustls", feature = "native-tls"))]
                {
                    // Use default connector based on enabled features
                    builder.dyn_https_connector(
                        aws_smithy_client::http_connector::ConnectorSettings::from_timeout_config(
                            &timeout_config,
                        ),
                    )
                }
                #[cfg(not(any(feature = "rustls", feature = "native-tls")))]
                {
                    panic!("No HTTP connector was available. Enable the `rustls` or `native-tls` crate feature or set a connector to fix this.");
                }
            }
        };
        let mut builder = builder
            .middleware(aws_smithy_client::erase::DynMiddleware::new(
                crate::middleware::DefaultMiddleware::new(),
            ))
            .retry_config(retry_config.into())
            .operation_timeout_config(timeout_config.into());
        builder.set_sleep_impl(sleep_impl);
        let client = builder.build();

        Self {
            handle: std::sync::Arc::new(Handle { client, conf }),
        }
    }
}