aws-sdk-inspector2 1.125.0

AWS SDK for Inspector2
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
#[derive(Debug)]
pub(crate) struct Handle {
    pub(crate) conf: crate::Config,
    #[allow(dead_code)] // unused when a service does not provide any operations
    pub(crate) runtime_plugins: ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
}

/// Client for Inspector2
///
/// Client for invoking operations on Inspector2. Each operation on Inspector2 is a method on this
/// this struct. `.send()` MUST be invoked on the generated operations to dispatch the request to the service.
/// ## Constructing a `Client`
///
/// A [`Config`] is required to construct a client. For most use cases, the [`aws-config`]
/// crate should be used to automatically resolve this config using
/// [`aws_config::load_from_env()`], since this will resolve an [`SdkConfig`] which can be shared
/// across multiple different AWS SDK clients. This config resolution process can be customized
/// by calling [`aws_config::from_env()`] instead, which returns a [`ConfigLoader`] that uses
/// the [builder pattern] to customize the default config.
///
/// In the simplest case, creating a client looks as follows:
/// ```rust,no_run
/// # async fn wrapper() {
/// let config = aws_config::load_from_env().await;
/// let client = aws_sdk_inspector2::Client::new(&config);
/// # }
/// ```
///
/// Occasionally, SDKs may have additional service-specific values that can be set on the [`Config`] that
/// is absent from [`SdkConfig`], or slightly different settings for a specific client may be desired.
/// The [`Builder`](crate::config::Builder) struct implements `From<&SdkConfig>`, so setting these specific settings can be
/// done as follows:
///
/// ```rust,no_run
/// # async fn wrapper() {
/// let sdk_config = ::aws_config::load_from_env().await;
/// let config = aws_sdk_inspector2::config::Builder::from(&sdk_config)
/// # /*
///     .some_service_specific_setting("value")
/// # */
///     .build();
/// # }
/// ```
///
/// See the [`aws-config` docs] and [`Config`] for more information on customizing configuration.
///
/// _Note:_ Client construction is expensive due to connection thread pool initialization, and should
/// be done once at application start-up.
///
/// [`Config`]: crate::Config
/// [`ConfigLoader`]: https://docs.rs/aws-config/*/aws_config/struct.ConfigLoader.html
/// [`SdkConfig`]: https://docs.rs/aws-config/*/aws_config/struct.SdkConfig.html
/// [`aws-config` docs]: https://docs.rs/aws-config/*
/// [`aws-config`]: https://crates.io/crates/aws-config
/// [`aws_config::from_env()`]: https://docs.rs/aws-config/*/aws_config/fn.from_env.html
/// [`aws_config::load_from_env()`]: https://docs.rs/aws-config/*/aws_config/fn.load_from_env.html
/// [builder pattern]: https://rust-lang.github.io/api-guidelines/type-safety.html#builders-enable-construction-of-complex-values-c-builder
/// # Using the `Client`
///
/// A client has a function for every operation that can be performed by the service.
/// For example, the [`AssociateMember`](crate::operation::associate_member) operation has
/// a [`Client::associate_member`], function which returns a builder for that operation.
/// The fluent builder ultimately has a `send()` function that returns an async future that
/// returns a result, as illustrated below:
///
/// ```rust,ignore
/// let result = client.associate_member()
///     .account_id("example")
///     .send()
///     .await;
/// ```
///
/// The underlying HTTP requests that get made by this can be modified with the `customize_operation`
/// function on the fluent builder. See the [`customize`](crate::client::customize) module for more
/// information.
/// # Waiters
///
/// This client provides `wait_until` methods behind the [`Waiters`](crate::client::Waiters) trait.
/// To use them, simply import the trait, and then call one of the `wait_until` methods. This will
/// return a waiter fluent builder that takes various parameters, which are documented on the builder
/// type. Once parameters have been provided, the `wait` method can be called to initiate waiting.
///
/// For example, if there was a `wait_until_thing` method, it could look like:
/// ```rust,ignore
/// let result = client.wait_until_thing()
///     .thing_id("someId")
///     .wait(Duration::from_secs(120))
///     .await;
/// ```
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
pub struct Client {
    handle: ::std::sync::Arc<Handle>,
}

impl Client {
    /// Creates a new client from the service [`Config`](crate::Config).
    ///
    /// # Panics
    ///
    /// This method will panic in the following cases:
    ///
    /// - Retries or timeouts are enabled without a `sleep_impl` configured.
    /// - Identity caching is enabled without a `sleep_impl` and `time_source` configured.
    /// - No `behavior_version` is provided.
    ///
    /// The panic message for each of these will have instructions on how to resolve them.
    #[track_caller]
    pub fn from_conf(conf: crate::Config) -> Self {
        let handle = Handle {
            conf: conf.clone(),
            runtime_plugins: crate::config::base_client_runtime_plugins(conf),
        };
        if let Err(err) = Self::validate_config(&handle) {
            panic!("Invalid client configuration: {err}");
        }
        Self {
            handle: ::std::sync::Arc::new(handle),
        }
    }

    /// Returns the client's configuration.
    pub fn config(&self) -> &crate::Config {
        &self.handle.conf
    }

    fn validate_config(handle: &Handle) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
        let mut cfg = ::aws_smithy_types::config_bag::ConfigBag::base();
        handle
            .runtime_plugins
            .apply_client_configuration(&mut cfg)?
            .validate_base_client_config(&cfg)?;
        Ok(())
    }
}

///
/// Waiter functions for the client.
///
/// Import this trait to get `wait_until` methods on the client.
///
pub trait Waiters {
    /// Wait until a connector reaches the ENABLED state, whether after CreateConnector or UpdateConnector. Caller MUST filter ListConnectors by the specific connector ARN so the matchers apply only to the target connector. Success when all returned items have enablementStatus == ENABLED. Failure when any item is in FAILED_TO_ENABLE or FAILED_TO_UPDATE.
    fn wait_until_connector_enabled(&self) -> crate::waiters::connector_enabled::ConnectorEnabledFluentBuilder;
    /// Wait until a connector is no longer returned by ListConnectors. Caller MUST filter ListConnectors by the specific connector ARN; success is reached when the filtered result returns zero items. Failure when the deletion terminally fails (FAILED_TO_DELETE).
    fn wait_until_connector_deleted(&self) -> crate::waiters::connector_deleted::ConnectorDeletedFluentBuilder;
    /// Wait until a connector reaches the CONNECTED health status, typically after CreateConnector or UpdateConnector + ConnectorEnabled. Caller MUST filter ListConnectors by the specific connector ARN so the matchers apply only to the target connector. Success when all returned items have health.connectorStatus == CONNECTED. Failure when any item is in health.connectorStatus == FAILED_TO_CONNECT or enablementStatus == FAILED_TO_ENABLE.
    fn wait_until_connector_connected(&self) -> crate::waiters::connector_connected::ConnectorConnectedFluentBuilder;
}
impl Waiters for Client {
    fn wait_until_connector_enabled(&self) -> crate::waiters::connector_enabled::ConnectorEnabledFluentBuilder {
        crate::waiters::connector_enabled::ConnectorEnabledFluentBuilder::new(self.handle.clone())
    }
    fn wait_until_connector_deleted(&self) -> crate::waiters::connector_deleted::ConnectorDeletedFluentBuilder {
        crate::waiters::connector_deleted::ConnectorDeletedFluentBuilder::new(self.handle.clone())
    }
    fn wait_until_connector_connected(&self) -> crate::waiters::connector_connected::ConnectorConnectedFluentBuilder {
        crate::waiters::connector_connected::ConnectorConnectedFluentBuilder::new(self.handle.clone())
    }
}

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.
    /// - This method will panic if no `BehaviorVersion` is provided. If you experience this panic, set `behavior_version` on the Config or enable the `behavior-version-latest` Cargo feature.
    #[track_caller]
    pub fn new(sdk_config: &::aws_types::sdk_config::SdkConfig) -> Self {
        Self::from_conf(sdk_config.into())
    }
}

mod associate_member;

mod batch_associate_code_security_scan_configuration;

mod batch_disassociate_code_security_scan_configuration;

mod batch_get_account_status;

mod batch_get_code_snippet;

mod batch_get_finding_details;

mod batch_get_free_trial_info;

mod batch_get_member_ec2_deep_inspection_status;

mod batch_update_member_ec2_deep_inspection_status;

mod cancel_findings_report;

mod cancel_sbom_export;

mod create_cis_scan_configuration;

mod create_code_security_integration;

mod create_code_security_scan_configuration;

mod create_connector;

mod create_filter;

mod create_findings_report;

mod create_sbom_export;

/// Operation customization and supporting types.
///
/// The underlying HTTP requests made during an operation can be customized
/// by calling the `customize()` method on the builder returned from a client
/// operation call. For example, this can be used to add an additional HTTP header:
///
/// ```ignore
/// # async fn wrapper() -> ::std::result::Result<(), aws_sdk_inspector2::Error> {
/// # let client: aws_sdk_inspector2::Client = unimplemented!();
/// use ::http_1x::header::{HeaderName, HeaderValue};
///
/// let result = client.associate_member()
///     .customize()
///     .mutate_request(|req| {
///         // Add `x-example-header` with value
///         req.headers_mut()
///             .insert(
///                 HeaderName::from_static("x-example-header"),
///                 HeaderValue::from_static("1"),
///             );
///     })
///     .send()
///     .await;
/// # }
/// ```
pub mod customize;

mod delete_cis_scan_configuration;

mod delete_code_security_integration;

mod delete_code_security_scan_configuration;

mod delete_connector;

mod delete_filter;

mod describe_organization_configuration;

mod disable;

mod disable_delegated_admin_account;

mod disassociate_member;

mod enable;

mod enable_delegated_admin_account;

mod get_cis_scan_report;

mod get_cis_scan_result_details;

mod get_clusters_for_image;

mod get_code_security_integration;

mod get_code_security_scan;

mod get_code_security_scan_configuration;

mod get_configuration;

mod get_delegated_admin_account;

mod get_ec2_deep_inspection_configuration;

mod get_encryption_key;

mod get_findings_report_status;

mod get_member;

mod get_sbom_export;

mod list_account_permissions;

mod list_cis_scan_configurations;

mod list_cis_scan_results_aggregated_by_checks;

mod list_cis_scan_results_aggregated_by_target_resource;

mod list_cis_scans;

mod list_code_security_integrations;

mod list_code_security_scan_configuration_associations;

mod list_code_security_scan_configurations;

mod list_connector_scan_configurations;

mod list_connectors;

mod list_coverage;

mod list_coverage_statistics;

mod list_delegated_admin_accounts;

mod list_filters;

mod list_finding_aggregations;

mod list_findings;

mod list_members;

mod list_tags_for_resource;

mod list_usage_totals;

mod reset_encryption_key;

mod search_vulnerabilities;

mod send_cis_session_health;

mod send_cis_session_telemetry;

mod start_cis_session;

mod start_code_security_scan;

mod stop_cis_session;

mod tag_resource;

mod untag_resource;

mod update_cis_scan_configuration;

mod update_code_security_integration;

mod update_code_security_scan_configuration;

mod update_configuration;

mod update_connector;

mod update_connector_scan_configuration;

mod update_ec2_deep_inspection_configuration;

mod update_encryption_key;

mod update_filter;

mod update_org_ec2_deep_inspection_configuration;

mod update_organization_configuration;