aws_sdk_sagemaker/operation/update_workforce/builders.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::update_workforce::_update_workforce_output::UpdateWorkforceOutputBuilder;
3
4pub use crate::operation::update_workforce::_update_workforce_input::UpdateWorkforceInputBuilder;
5
6impl crate::operation::update_workforce::builders::UpdateWorkforceInputBuilder {
7 /// Sends a request with this input using the given client.
8 pub async fn send_with(
9 self,
10 client: &crate::Client,
11 ) -> ::std::result::Result<
12 crate::operation::update_workforce::UpdateWorkforceOutput,
13 ::aws_smithy_runtime_api::client::result::SdkError<
14 crate::operation::update_workforce::UpdateWorkforceError,
15 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16 >,
17 > {
18 let mut fluent_builder = client.update_workforce();
19 fluent_builder.inner = self;
20 fluent_builder.send().await
21 }
22}
23/// Fluent builder constructing a request to `UpdateWorkforce`.
24///
25/// <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>
26/// <p>The worker portal is now supported in VPC and public internet.</p>
27/// <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>
28/// <p>To restrict access to all the workers in public internet, add the <code>SourceIpConfig</code> CIDR value as "10.0.0.0/16".</p><important>
29/// <p>Amazon SageMaker does not support Source Ip restriction for worker portals in VPC.</p>
30/// </important>
31/// <p>Use <code>OidcConfig</code> to update the configuration of a workforce created using your own OIDC IdP.</p><important>
32/// <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>
33/// </important>
34/// <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>
35/// <p>This operation only applies to private workforces.</p>
36/// </important>
37#[derive(::std::clone::Clone, ::std::fmt::Debug)]
38pub struct UpdateWorkforceFluentBuilder {
39 handle: ::std::sync::Arc<crate::client::Handle>,
40 inner: crate::operation::update_workforce::builders::UpdateWorkforceInputBuilder,
41 config_override: ::std::option::Option<crate::config::Builder>,
42}
43impl
44 crate::client::customize::internal::CustomizableSend<
45 crate::operation::update_workforce::UpdateWorkforceOutput,
46 crate::operation::update_workforce::UpdateWorkforceError,
47 > for UpdateWorkforceFluentBuilder
48{
49 fn send(
50 self,
51 config_override: crate::config::Builder,
52 ) -> crate::client::customize::internal::BoxFuture<
53 crate::client::customize::internal::SendResult<
54 crate::operation::update_workforce::UpdateWorkforceOutput,
55 crate::operation::update_workforce::UpdateWorkforceError,
56 >,
57 > {
58 ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
59 }
60}
61impl UpdateWorkforceFluentBuilder {
62 /// Creates a new `UpdateWorkforceFluentBuilder`.
63 pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
64 Self {
65 handle,
66 inner: ::std::default::Default::default(),
67 config_override: ::std::option::Option::None,
68 }
69 }
70 /// Access the UpdateWorkforce as a reference.
71 pub fn as_input(&self) -> &crate::operation::update_workforce::builders::UpdateWorkforceInputBuilder {
72 &self.inner
73 }
74 /// Sends the request and returns the response.
75 ///
76 /// If an error occurs, an `SdkError` will be returned with additional details that
77 /// can be matched against.
78 ///
79 /// By default, any retryable failures will be retried twice. Retry behavior
80 /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
81 /// set when configuring the client.
82 pub async fn send(
83 self,
84 ) -> ::std::result::Result<
85 crate::operation::update_workforce::UpdateWorkforceOutput,
86 ::aws_smithy_runtime_api::client::result::SdkError<
87 crate::operation::update_workforce::UpdateWorkforceError,
88 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
89 >,
90 > {
91 let input = self
92 .inner
93 .build()
94 .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
95 let runtime_plugins = crate::operation::update_workforce::UpdateWorkforce::operation_runtime_plugins(
96 self.handle.runtime_plugins.clone(),
97 &self.handle.conf,
98 self.config_override,
99 );
100 crate::operation::update_workforce::UpdateWorkforce::orchestrate(&runtime_plugins, input).await
101 }
102
103 /// Consumes this builder, creating a customizable operation that can be modified before being sent.
104 pub fn customize(
105 self,
106 ) -> crate::client::customize::CustomizableOperation<
107 crate::operation::update_workforce::UpdateWorkforceOutput,
108 crate::operation::update_workforce::UpdateWorkforceError,
109 Self,
110 > {
111 crate::client::customize::CustomizableOperation::new(self)
112 }
113 pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
114 self.set_config_override(::std::option::Option::Some(config_override.into()));
115 self
116 }
117
118 pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
119 self.config_override = config_override;
120 self
121 }
122 /// <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>
123 pub fn workforce_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
124 self.inner = self.inner.workforce_name(input.into());
125 self
126 }
127 /// <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>
128 pub fn set_workforce_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
129 self.inner = self.inner.set_workforce_name(input);
130 self
131 }
132 /// <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>
133 pub fn get_workforce_name(&self) -> &::std::option::Option<::std::string::String> {
134 self.inner.get_workforce_name()
135 }
136 /// <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>
137 /// <p>Maximum: Ten CIDR values</p>
138 pub fn source_ip_config(mut self, input: crate::types::SourceIpConfig) -> Self {
139 self.inner = self.inner.source_ip_config(input);
140 self
141 }
142 /// <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>
143 /// <p>Maximum: Ten CIDR values</p>
144 pub fn set_source_ip_config(mut self, input: ::std::option::Option<crate::types::SourceIpConfig>) -> Self {
145 self.inner = self.inner.set_source_ip_config(input);
146 self
147 }
148 /// <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>
149 /// <p>Maximum: Ten CIDR values</p>
150 pub fn get_source_ip_config(&self) -> &::std::option::Option<crate::types::SourceIpConfig> {
151 self.inner.get_source_ip_config()
152 }
153 /// <p>Use this parameter to update your OIDC Identity Provider (IdP) configuration for a workforce made using your own IdP.</p>
154 pub fn oidc_config(mut self, input: crate::types::OidcConfig) -> Self {
155 self.inner = self.inner.oidc_config(input);
156 self
157 }
158 /// <p>Use this parameter to update your OIDC Identity Provider (IdP) configuration for a workforce made using your own IdP.</p>
159 pub fn set_oidc_config(mut self, input: ::std::option::Option<crate::types::OidcConfig>) -> Self {
160 self.inner = self.inner.set_oidc_config(input);
161 self
162 }
163 /// <p>Use this parameter to update your OIDC Identity Provider (IdP) configuration for a workforce made using your own IdP.</p>
164 pub fn get_oidc_config(&self) -> &::std::option::Option<crate::types::OidcConfig> {
165 self.inner.get_oidc_config()
166 }
167 /// <p>Use this parameter to update your VPC configuration for a workforce.</p>
168 pub fn workforce_vpc_config(mut self, input: crate::types::WorkforceVpcConfigRequest) -> Self {
169 self.inner = self.inner.workforce_vpc_config(input);
170 self
171 }
172 /// <p>Use this parameter to update your VPC configuration for a workforce.</p>
173 pub fn set_workforce_vpc_config(mut self, input: ::std::option::Option<crate::types::WorkforceVpcConfigRequest>) -> Self {
174 self.inner = self.inner.set_workforce_vpc_config(input);
175 self
176 }
177 /// <p>Use this parameter to update your VPC configuration for a workforce.</p>
178 pub fn get_workforce_vpc_config(&self) -> &::std::option::Option<crate::types::WorkforceVpcConfigRequest> {
179 self.inner.get_workforce_vpc_config()
180 }
181}