// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use crate::operation::update_workforce::_update_workforce_input::UpdateWorkforceInputBuilder;
pub use crate::operation::update_workforce::_update_workforce_output::UpdateWorkforceOutputBuilder;
impl crate::operation::update_workforce::builders::UpdateWorkforceInputBuilder {
/// Sends a request with this input using the given client.
pub async fn send_with(
self,
client: &crate::Client,
) -> ::std::result::Result<
crate::operation::update_workforce::UpdateWorkforceOutput,
::aws_smithy_runtime_api::client::result::SdkError<
crate::operation::update_workforce::UpdateWorkforceError,
::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
>,
> {
let mut fluent_builder = client.update_workforce();
fluent_builder.inner = self;
fluent_builder.send().await
}
}
/// Fluent builder constructing a request to `UpdateWorkforce`.
///
/// <p>Use this operation to update your workforce. You can use this operation to require that workers use specific IP addresses to work on tasks and to update your OpenID Connect (OIDC) Identity Provider (IdP) workforce configuration.</p>
/// <p>The worker portal is now supported in VPC and public internet.</p>
/// <p>Use <code>SourceIpConfig</code> to restrict worker access to tasks to a specific range of IP addresses. You specify allowed IP addresses by creating a list of up to ten <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">CIDRs</a>. By default, a workforce isn't restricted to specific IP addresses. If you specify a range of IP addresses, workers who attempt to access tasks using any IP address outside the specified range are denied and get a <code>Not Found</code> error message on the worker portal.</p>
/// <p>To restrict public internet access for all workers, configure the <code>SourceIpConfig</code> CIDR value. For example, when using <code>SourceIpConfig</code> with an <code>IpAddressType</code> of <code>IPv4</code>, you can restrict access to the IPv4 CIDR block "10.0.0.0/16". When using an <code>IpAddressType</code> of <code>dualstack</code>, you can specify both the IPv4 and IPv6 CIDR blocks, such as "10.0.0.0/16" for IPv4 only, "2001:db8:1234:1a00::/56" for IPv6 only, or "10.0.0.0/16" and "2001:db8:1234:1a00::/56" for dual stack.</p><important>
/// <p>Amazon SageMaker does not support Source Ip restriction for worker portals in VPC.</p>
/// </important>
/// <p>Use <code>OidcConfig</code> to update the configuration of a workforce created using your own OIDC IdP.</p><important>
/// <p>You can only update your OIDC IdP configuration when there are no work teams associated with your workforce. You can delete work teams using the <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteWorkteam.html">DeleteWorkteam</a> operation.</p>
/// </important>
/// <p>After restricting access to a range of IP addresses or updating your OIDC IdP configuration with this operation, you can view details about your update workforce using the <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeWorkforce.html">DescribeWorkforce</a> operation.</p><important>
/// <p>This operation only applies to private workforces.</p>
/// </important>
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
pub struct UpdateWorkforceFluentBuilder {
handle: ::std::sync::Arc<crate::client::Handle>,
inner: crate::operation::update_workforce::builders::UpdateWorkforceInputBuilder,
config_override: ::std::option::Option<crate::config::Builder>,
}
impl
crate::client::customize::internal::CustomizableSend<
crate::operation::update_workforce::UpdateWorkforceOutput,
crate::operation::update_workforce::UpdateWorkforceError,
> for UpdateWorkforceFluentBuilder
{
fn send(
self,
config_override: crate::config::Builder,
) -> crate::client::customize::internal::BoxFuture<
crate::client::customize::internal::SendResult<
crate::operation::update_workforce::UpdateWorkforceOutput,
crate::operation::update_workforce::UpdateWorkforceError,
>,
> {
::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
}
}
impl UpdateWorkforceFluentBuilder {
/// Creates a new `UpdateWorkforceFluentBuilder`.
pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
Self {
handle,
inner: ::std::default::Default::default(),
config_override: ::std::option::Option::None,
}
}
/// Access the UpdateWorkforce as a reference.
pub fn as_input(&self) -> &crate::operation::update_workforce::builders::UpdateWorkforceInputBuilder {
&self.inner
}
/// Sends the request and returns the response.
///
/// If an error occurs, an `SdkError` will be returned with additional details that
/// can be matched against.
///
/// By default, any retryable failures will be retried twice. Retry behavior
/// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
/// set when configuring the client.
pub async fn send(
self,
) -> ::std::result::Result<
crate::operation::update_workforce::UpdateWorkforceOutput,
::aws_smithy_runtime_api::client::result::SdkError<
crate::operation::update_workforce::UpdateWorkforceError,
::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
>,
> {
let input = self
.inner
.build()
.map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
let runtime_plugins = crate::operation::update_workforce::UpdateWorkforce::operation_runtime_plugins(
self.handle.runtime_plugins.clone(),
&self.handle.conf,
self.config_override,
);
crate::operation::update_workforce::UpdateWorkforce::orchestrate(&runtime_plugins, input).await
}
/// Consumes this builder, creating a customizable operation that can be modified before being sent.
pub fn customize(
self,
) -> crate::client::customize::CustomizableOperation<
crate::operation::update_workforce::UpdateWorkforceOutput,
crate::operation::update_workforce::UpdateWorkforceError,
Self,
> {
crate::client::customize::CustomizableOperation::new(self)
}
pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
self.set_config_override(::std::option::Option::Some(config_override.into()));
self
}
pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
self.config_override = config_override;
self
}
/// <p>The name of the private workforce that you want to update. You can find your workforce name by using the <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListWorkforces.html">ListWorkforces</a> operation.</p>
pub fn workforce_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.workforce_name(input.into());
self
}
/// <p>The name of the private workforce that you want to update. You can find your workforce name by using the <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListWorkforces.html">ListWorkforces</a> operation.</p>
pub fn set_workforce_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_workforce_name(input);
self
}
/// <p>The name of the private workforce that you want to update. You can find your workforce name by using the <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListWorkforces.html">ListWorkforces</a> operation.</p>
pub fn get_workforce_name(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_workforce_name()
}
/// <p>A list of one to ten worker IP address ranges (<a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">CIDRs</a>) that can be used to access tasks assigned to this workforce.</p>
/// <p>Maximum: Ten CIDR values</p>
pub fn source_ip_config(mut self, input: crate::types::SourceIpConfig) -> Self {
self.inner = self.inner.source_ip_config(input);
self
}
/// <p>A list of one to ten worker IP address ranges (<a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">CIDRs</a>) that can be used to access tasks assigned to this workforce.</p>
/// <p>Maximum: Ten CIDR values</p>
pub fn set_source_ip_config(mut self, input: ::std::option::Option<crate::types::SourceIpConfig>) -> Self {
self.inner = self.inner.set_source_ip_config(input);
self
}
/// <p>A list of one to ten worker IP address ranges (<a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">CIDRs</a>) that can be used to access tasks assigned to this workforce.</p>
/// <p>Maximum: Ten CIDR values</p>
pub fn get_source_ip_config(&self) -> &::std::option::Option<crate::types::SourceIpConfig> {
self.inner.get_source_ip_config()
}
/// <p>Use this parameter to update your OIDC Identity Provider (IdP) configuration for a workforce made using your own IdP.</p>
pub fn oidc_config(mut self, input: crate::types::OidcConfig) -> Self {
self.inner = self.inner.oidc_config(input);
self
}
/// <p>Use this parameter to update your OIDC Identity Provider (IdP) configuration for a workforce made using your own IdP.</p>
pub fn set_oidc_config(mut self, input: ::std::option::Option<crate::types::OidcConfig>) -> Self {
self.inner = self.inner.set_oidc_config(input);
self
}
/// <p>Use this parameter to update your OIDC Identity Provider (IdP) configuration for a workforce made using your own IdP.</p>
pub fn get_oidc_config(&self) -> &::std::option::Option<crate::types::OidcConfig> {
self.inner.get_oidc_config()
}
/// <p>Use this parameter to update your VPC configuration for a workforce.</p>
pub fn workforce_vpc_config(mut self, input: crate::types::WorkforceVpcConfigRequest) -> Self {
self.inner = self.inner.workforce_vpc_config(input);
self
}
/// <p>Use this parameter to update your VPC configuration for a workforce.</p>
pub fn set_workforce_vpc_config(mut self, input: ::std::option::Option<crate::types::WorkforceVpcConfigRequest>) -> Self {
self.inner = self.inner.set_workforce_vpc_config(input);
self
}
/// <p>Use this parameter to update your VPC configuration for a workforce.</p>
pub fn get_workforce_vpc_config(&self) -> &::std::option::Option<crate::types::WorkforceVpcConfigRequest> {
self.inner.get_workforce_vpc_config()
}
/// <p>Use this parameter to specify whether you want <code>IPv4</code> only or <code>dualstack</code> (<code>IPv4</code> and <code>IPv6</code>) to support your labeling workforce.</p>
pub fn ip_address_type(mut self, input: crate::types::WorkforceIpAddressType) -> Self {
self.inner = self.inner.ip_address_type(input);
self
}
/// <p>Use this parameter to specify whether you want <code>IPv4</code> only or <code>dualstack</code> (<code>IPv4</code> and <code>IPv6</code>) to support your labeling workforce.</p>
pub fn set_ip_address_type(mut self, input: ::std::option::Option<crate::types::WorkforceIpAddressType>) -> Self {
self.inner = self.inner.set_ip_address_type(input);
self
}
/// <p>Use this parameter to specify whether you want <code>IPv4</code> only or <code>dualstack</code> (<code>IPv4</code> and <code>IPv6</code>) to support your labeling workforce.</p>
pub fn get_ip_address_type(&self) -> &::std::option::Option<crate::types::WorkforceIpAddressType> {
self.inner.get_ip_address_type()
}
}