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}