aws_sdk_continuum/operation/create_integration/builders.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_integration::_create_integration_input::CreateIntegrationInputBuilder;
3
4pub use crate::operation::create_integration::_create_integration_output::CreateIntegrationOutputBuilder;
5
6impl crate::operation::create_integration::builders::CreateIntegrationInputBuilder {
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::create_integration::CreateIntegrationOutput,
13 ::aws_smithy_runtime_api::client::result::SdkError<
14 crate::operation::create_integration::CreateIntegrationError,
15 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16 >,
17 > {
18 let mut fluent_builder = client.create_integration();
19 fluent_builder.inner = self;
20 fluent_builder.send().await
21 }
22}
23/// Fluent builder constructing a request to `CreateIntegration`.
24///
25/// Creates a new integration with an external source provider. Repeating an identical request with the same clientToken returns the original integrationId, integrationArn, and createdAt. Token records are retained for eight hours after success or terminal failure, including after the integration is deleted; replaying a deleted integration's token does not recreate it. An identical request with a retained terminal failure returns the recorded error. Reusing a token with different parameters returns ValidationException. A fresh token starts a new create attempt; if the name is already owned by another integration, ConflictException includes that integration's identifier. An attempt still in progress may return ThrottlingException with retryAfterSeconds set to 1; retry with the same token and identical parameters. GitHub authorization codes are single use. Retry an unresolved attempt with its original token and unchanged parameters first. If the service reports a terminal failure, an expired attempt, or a successful token exchange whose integration could not be saved, restart GitHub authorization with a fresh token and authorization code. The service does not checkpoint provider results for recovery by another request.
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct CreateIntegrationFluentBuilder {
28 handle: ::std::sync::Arc<crate::client::Handle>,
29 inner: crate::operation::create_integration::builders::CreateIntegrationInputBuilder,
30 config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl
33 crate::client::customize::internal::CustomizableSend<
34 crate::operation::create_integration::CreateIntegrationOutput,
35 crate::operation::create_integration::CreateIntegrationError,
36 > for CreateIntegrationFluentBuilder
37{
38 fn send(
39 self,
40 config_override: crate::config::Builder,
41 ) -> crate::client::customize::internal::BoxFuture<
42 crate::client::customize::internal::SendResult<
43 crate::operation::create_integration::CreateIntegrationOutput,
44 crate::operation::create_integration::CreateIntegrationError,
45 >,
46 > {
47 ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
48 }
49}
50impl CreateIntegrationFluentBuilder {
51 /// Creates a new `CreateIntegrationFluentBuilder`.
52 pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
53 Self {
54 handle,
55 inner: ::std::default::Default::default(),
56 config_override: ::std::option::Option::None,
57 }
58 }
59 /// Access the CreateIntegration as a reference.
60 pub fn as_input(&self) -> &crate::operation::create_integration::builders::CreateIntegrationInputBuilder {
61 &self.inner
62 }
63 /// Sends the request and returns the response.
64 ///
65 /// If an error occurs, an `SdkError` will be returned with additional details that
66 /// can be matched against.
67 ///
68 /// By default, any retryable failures will be retried twice. Retry behavior
69 /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
70 /// set when configuring the client.
71 pub async fn send(
72 self,
73 ) -> ::std::result::Result<
74 crate::operation::create_integration::CreateIntegrationOutput,
75 ::aws_smithy_runtime_api::client::result::SdkError<
76 crate::operation::create_integration::CreateIntegrationError,
77 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
78 >,
79 > {
80 let input = self
81 .inner
82 .build()
83 .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
84 let runtime_plugins = crate::operation::create_integration::CreateIntegration::operation_runtime_plugins(
85 self.handle.runtime_plugins.clone(),
86 &self.handle.conf,
87 self.config_override,
88 );
89 crate::operation::create_integration::CreateIntegration::orchestrate(&runtime_plugins, input).await
90 }
91
92 /// Consumes this builder, creating a customizable operation that can be modified before being sent.
93 pub fn customize(
94 self,
95 ) -> crate::client::customize::CustomizableOperation<
96 crate::operation::create_integration::CreateIntegrationOutput,
97 crate::operation::create_integration::CreateIntegrationError,
98 Self,
99 > {
100 crate::client::customize::CustomizableOperation::new(self)
101 }
102 pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
103 self.set_config_override(::std::option::Option::Some(config_override.into()));
104 self
105 }
106
107 pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
108 self.config_override = config_override;
109 self
110 }
111 /// An optional token identifying one create attempt within the caller's account, Region, and operation. SDKs generate a token when omitted. If a request reaches the service without a token, the service generates one for that request. Each request without a token starts a new attempt. To replay an attempt, supply the same token and identical input. Authorized users and roles in the same account can retry an attempt this way. Token records are retained for eight hours after success or terminal failure, including after deletion of a successfully created integration. Different input with the same token returns ValidationException.
112 pub fn client_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
113 self.inner = self.inner.client_token(input.into());
114 self
115 }
116 /// An optional token identifying one create attempt within the caller's account, Region, and operation. SDKs generate a token when omitted. If a request reaches the service without a token, the service generates one for that request. Each request without a token starts a new attempt. To replay an attempt, supply the same token and identical input. Authorized users and roles in the same account can retry an attempt this way. Token records are retained for eight hours after success or terminal failure, including after deletion of a successfully created integration. Different input with the same token returns ValidationException.
117 pub fn set_client_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
118 self.inner = self.inner.set_client_token(input);
119 self
120 }
121 /// An optional token identifying one create attempt within the caller's account, Region, and operation. SDKs generate a token when omitted. If a request reaches the service without a token, the service generates one for that request. Each request without a token starts a new attempt. To replay an attempt, supply the same token and identical input. Authorized users and roles in the same account can retry an attempt this way. Token records are retained for eight hours after success or terminal failure, including after deletion of a successfully created integration. Different input with the same token returns ValidationException.
122 pub fn get_client_token(&self) -> &::std::option::Option<::std::string::String> {
123 self.inner.get_client_token()
124 }
125 /// The name for the integration.
126 pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
127 self.inner = self.inner.name(input.into());
128 self
129 }
130 /// The name for the integration.
131 pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
132 self.inner = self.inner.set_name(input);
133 self
134 }
135 /// The name for the integration.
136 pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
137 self.inner.get_name()
138 }
139 /// The provider-specific configuration required to create the integration. Only one member may be specified.
140 pub fn provider_configuration(mut self, input: crate::types::ProviderConfiguration) -> Self {
141 self.inner = self.inner.provider_configuration(input);
142 self
143 }
144 /// The provider-specific configuration required to create the integration. Only one member may be specified.
145 pub fn set_provider_configuration(mut self, input: ::std::option::Option<crate::types::ProviderConfiguration>) -> Self {
146 self.inner = self.inner.set_provider_configuration(input);
147 self
148 }
149 /// The provider-specific configuration required to create the integration. Only one member may be specified.
150 pub fn get_provider_configuration(&self) -> &::std::option::Option<crate::types::ProviderConfiguration> {
151 self.inner.get_provider_configuration()
152 }
153}