aws_sdk_paymentcryptographydata/operation/verify_auth_request_cryptogram/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::verify_auth_request_cryptogram::_verify_auth_request_cryptogram_output::VerifyAuthRequestCryptogramOutputBuilder;
3
4pub use crate::operation::verify_auth_request_cryptogram::_verify_auth_request_cryptogram_input::VerifyAuthRequestCryptogramInputBuilder;
5
6impl crate::operation::verify_auth_request_cryptogram::builders::VerifyAuthRequestCryptogramInputBuilder {
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::verify_auth_request_cryptogram::VerifyAuthRequestCryptogramOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::verify_auth_request_cryptogram::VerifyAuthRequestCryptogramError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.verify_auth_request_cryptogram();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `VerifyAuthRequestCryptogram`.
24///
25/// <p>Verifies Authorization Request Cryptogram (ARQC) for a EMV chip payment card authorization. For more information, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/data-operations.verifyauthrequestcryptogram.html">Verify auth request cryptogram</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>.</p>
26/// <p>ARQC generation is done outside of Amazon Web Services Payment Cryptography and is typically generated on a point of sale terminal for an EMV chip card to obtain payment authorization during transaction time. For ARQC verification, you must first import the ARQC generated outside of Amazon Web Services Payment Cryptography by calling <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportKey.html">ImportKey</a>. This operation uses the imported ARQC and an major encryption key (DUKPT) created by calling <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_CreateKey.html">CreateKey</a> to either provide a boolean ARQC verification result or provide an APRC (Authorization Response Cryptogram) response using Method 1 or Method 2. The <code>ARPC_METHOD_1</code> uses <code>AuthResponseCode</code> to generate ARPC and <code>ARPC_METHOD_2</code> uses <code>CardStatusUpdate</code> to generate ARPC.</p>
27/// <p>For information about valid keys for this operation, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/keys-validattributes.html">Understanding key attributes</a> and <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html">Key types for specific data operations</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>.</p>
28/// <p><b>Cross-account use</b>: This operation can't be used across different Amazon Web Services accounts.</p>
29/// <p><b>Related operations:</b></p>
30/// <ul>
31/// <li>
32/// <p><code>VerifyCardValidationData</code></p></li>
33/// <li>
34/// <p><code>VerifyPinData</code></p></li>
35/// </ul>
36#[derive(::std::clone::Clone, ::std::fmt::Debug)]
37pub struct VerifyAuthRequestCryptogramFluentBuilder {
38    handle: ::std::sync::Arc<crate::client::Handle>,
39    inner: crate::operation::verify_auth_request_cryptogram::builders::VerifyAuthRequestCryptogramInputBuilder,
40    config_override: ::std::option::Option<crate::config::Builder>,
41}
42impl
43    crate::client::customize::internal::CustomizableSend<
44        crate::operation::verify_auth_request_cryptogram::VerifyAuthRequestCryptogramOutput,
45        crate::operation::verify_auth_request_cryptogram::VerifyAuthRequestCryptogramError,
46    > for VerifyAuthRequestCryptogramFluentBuilder
47{
48    fn send(
49        self,
50        config_override: crate::config::Builder,
51    ) -> crate::client::customize::internal::BoxFuture<
52        crate::client::customize::internal::SendResult<
53            crate::operation::verify_auth_request_cryptogram::VerifyAuthRequestCryptogramOutput,
54            crate::operation::verify_auth_request_cryptogram::VerifyAuthRequestCryptogramError,
55        >,
56    > {
57        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
58    }
59}
60impl VerifyAuthRequestCryptogramFluentBuilder {
61    /// Creates a new `VerifyAuthRequestCryptogramFluentBuilder`.
62    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
63        Self {
64            handle,
65            inner: ::std::default::Default::default(),
66            config_override: ::std::option::Option::None,
67        }
68    }
69    /// Access the VerifyAuthRequestCryptogram as a reference.
70    pub fn as_input(&self) -> &crate::operation::verify_auth_request_cryptogram::builders::VerifyAuthRequestCryptogramInputBuilder {
71        &self.inner
72    }
73    /// Sends the request and returns the response.
74    ///
75    /// If an error occurs, an `SdkError` will be returned with additional details that
76    /// can be matched against.
77    ///
78    /// By default, any retryable failures will be retried twice. Retry behavior
79    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
80    /// set when configuring the client.
81    pub async fn send(
82        self,
83    ) -> ::std::result::Result<
84        crate::operation::verify_auth_request_cryptogram::VerifyAuthRequestCryptogramOutput,
85        ::aws_smithy_runtime_api::client::result::SdkError<
86            crate::operation::verify_auth_request_cryptogram::VerifyAuthRequestCryptogramError,
87            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
88        >,
89    > {
90        let input = self
91            .inner
92            .build()
93            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
94        let runtime_plugins = crate::operation::verify_auth_request_cryptogram::VerifyAuthRequestCryptogram::operation_runtime_plugins(
95            self.handle.runtime_plugins.clone(),
96            &self.handle.conf,
97            self.config_override,
98        );
99        crate::operation::verify_auth_request_cryptogram::VerifyAuthRequestCryptogram::orchestrate(&runtime_plugins, input).await
100    }
101
102    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
103    pub fn customize(
104        self,
105    ) -> crate::client::customize::CustomizableOperation<
106        crate::operation::verify_auth_request_cryptogram::VerifyAuthRequestCryptogramOutput,
107        crate::operation::verify_auth_request_cryptogram::VerifyAuthRequestCryptogramError,
108        Self,
109    > {
110        crate::client::customize::CustomizableOperation::new(self)
111    }
112    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
113        self.set_config_override(::std::option::Option::Some(config_override.into()));
114        self
115    }
116
117    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
118        self.config_override = config_override;
119        self
120    }
121    /// <p>The <code>keyARN</code> of the major encryption key that Amazon Web Services Payment Cryptography uses for ARQC verification.</p>
122    pub fn key_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
123        self.inner = self.inner.key_identifier(input.into());
124        self
125    }
126    /// <p>The <code>keyARN</code> of the major encryption key that Amazon Web Services Payment Cryptography uses for ARQC verification.</p>
127    pub fn set_key_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
128        self.inner = self.inner.set_key_identifier(input);
129        self
130    }
131    /// <p>The <code>keyARN</code> of the major encryption key that Amazon Web Services Payment Cryptography uses for ARQC verification.</p>
132    pub fn get_key_identifier(&self) -> &::std::option::Option<::std::string::String> {
133        self.inner.get_key_identifier()
134    }
135    /// <p>The transaction data that Amazon Web Services Payment Cryptography uses for ARQC verification. The same transaction is used for ARQC generation outside of Amazon Web Services Payment Cryptography.</p>
136    pub fn transaction_data(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
137        self.inner = self.inner.transaction_data(input.into());
138        self
139    }
140    /// <p>The transaction data that Amazon Web Services Payment Cryptography uses for ARQC verification. The same transaction is used for ARQC generation outside of Amazon Web Services Payment Cryptography.</p>
141    pub fn set_transaction_data(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
142        self.inner = self.inner.set_transaction_data(input);
143        self
144    }
145    /// <p>The transaction data that Amazon Web Services Payment Cryptography uses for ARQC verification. The same transaction is used for ARQC generation outside of Amazon Web Services Payment Cryptography.</p>
146    pub fn get_transaction_data(&self) -> &::std::option::Option<::std::string::String> {
147        self.inner.get_transaction_data()
148    }
149    /// <p>The auth request cryptogram imported into Amazon Web Services Payment Cryptography for ARQC verification using a major encryption key and transaction data.</p>
150    pub fn auth_request_cryptogram(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
151        self.inner = self.inner.auth_request_cryptogram(input.into());
152        self
153    }
154    /// <p>The auth request cryptogram imported into Amazon Web Services Payment Cryptography for ARQC verification using a major encryption key and transaction data.</p>
155    pub fn set_auth_request_cryptogram(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
156        self.inner = self.inner.set_auth_request_cryptogram(input);
157        self
158    }
159    /// <p>The auth request cryptogram imported into Amazon Web Services Payment Cryptography for ARQC verification using a major encryption key and transaction data.</p>
160    pub fn get_auth_request_cryptogram(&self) -> &::std::option::Option<::std::string::String> {
161        self.inner.get_auth_request_cryptogram()
162    }
163    /// <p>The method to use when deriving the major encryption key for ARQC verification within Amazon Web Services Payment Cryptography. The same key derivation mode was used for ARQC generation outside of Amazon Web Services Payment Cryptography.</p>
164    pub fn major_key_derivation_mode(mut self, input: crate::types::MajorKeyDerivationMode) -> Self {
165        self.inner = self.inner.major_key_derivation_mode(input);
166        self
167    }
168    /// <p>The method to use when deriving the major encryption key for ARQC verification within Amazon Web Services Payment Cryptography. The same key derivation mode was used for ARQC generation outside of Amazon Web Services Payment Cryptography.</p>
169    pub fn set_major_key_derivation_mode(mut self, input: ::std::option::Option<crate::types::MajorKeyDerivationMode>) -> Self {
170        self.inner = self.inner.set_major_key_derivation_mode(input);
171        self
172    }
173    /// <p>The method to use when deriving the major encryption key for ARQC verification within Amazon Web Services Payment Cryptography. The same key derivation mode was used for ARQC generation outside of Amazon Web Services Payment Cryptography.</p>
174    pub fn get_major_key_derivation_mode(&self) -> &::std::option::Option<crate::types::MajorKeyDerivationMode> {
175        self.inner.get_major_key_derivation_mode()
176    }
177    /// <p>The attributes and values to use for deriving a session key for ARQC verification within Amazon Web Services Payment Cryptography. The same attributes were used for ARQC generation outside of Amazon Web Services Payment Cryptography.</p>
178    pub fn session_key_derivation_attributes(mut self, input: crate::types::SessionKeyDerivation) -> Self {
179        self.inner = self.inner.session_key_derivation_attributes(input);
180        self
181    }
182    /// <p>The attributes and values to use for deriving a session key for ARQC verification within Amazon Web Services Payment Cryptography. The same attributes were used for ARQC generation outside of Amazon Web Services Payment Cryptography.</p>
183    pub fn set_session_key_derivation_attributes(mut self, input: ::std::option::Option<crate::types::SessionKeyDerivation>) -> Self {
184        self.inner = self.inner.set_session_key_derivation_attributes(input);
185        self
186    }
187    /// <p>The attributes and values to use for deriving a session key for ARQC verification within Amazon Web Services Payment Cryptography. The same attributes were used for ARQC generation outside of Amazon Web Services Payment Cryptography.</p>
188    pub fn get_session_key_derivation_attributes(&self) -> &::std::option::Option<crate::types::SessionKeyDerivation> {
189        self.inner.get_session_key_derivation_attributes()
190    }
191    /// <p>The attributes and values for auth request cryptogram verification. These parameters are required in case using ARPC Method 1 or Method 2 for ARQC verification.</p>
192    pub fn auth_response_attributes(mut self, input: crate::types::CryptogramAuthResponse) -> Self {
193        self.inner = self.inner.auth_response_attributes(input);
194        self
195    }
196    /// <p>The attributes and values for auth request cryptogram verification. These parameters are required in case using ARPC Method 1 or Method 2 for ARQC verification.</p>
197    pub fn set_auth_response_attributes(mut self, input: ::std::option::Option<crate::types::CryptogramAuthResponse>) -> Self {
198        self.inner = self.inner.set_auth_response_attributes(input);
199        self
200    }
201    /// <p>The attributes and values for auth request cryptogram verification. These parameters are required in case using ARPC Method 1 or Method 2 for ARQC verification.</p>
202    pub fn get_auth_response_attributes(&self) -> &::std::option::Option<crate::types::CryptogramAuthResponse> {
203        self.inner.get_auth_response_attributes()
204    }
205}