aws-sdk-bedrockagentcore 1.31.0 → 1.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -922,6 +922,215 @@ module Aws::BedrockAgentCore
922
922
  req.send_request(options)
923
923
  end
924
924
 
925
+ # Create a new payment instrument for a connector
926
+ #
927
+ # @option params [String] :user_id
928
+ # The user ID associated with this payment instrument.
929
+ #
930
+ # @option params [String] :agent_name
931
+ # The agent name associated with this request, used for observability.
932
+ #
933
+ # @option params [required, String] :payment_manager_arn
934
+ # The ARN of the payment manager that owns this payment instrument.
935
+ #
936
+ # @option params [required, String] :payment_connector_id
937
+ # The ID of the payment connector to use for this instrument.
938
+ #
939
+ # @option params [required, String] :payment_instrument_type
940
+ # The type of payment instrument being created.
941
+ #
942
+ # @option params [required, Types::PaymentInstrumentDetails] :payment_instrument_details
943
+ # The details of the payment instrument.
944
+ #
945
+ # @option params [String] :client_token
946
+ # Idempotency token to ensure request uniqueness.
947
+ #
948
+ # **A suitable default value is auto-generated.** You should normally
949
+ # not need to pass this option.**
950
+ #
951
+ # @return [Types::CreatePaymentInstrumentResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
952
+ #
953
+ # * {Types::CreatePaymentInstrumentResponse#payment_instrument #payment_instrument} => Types::PaymentInstrument
954
+ #
955
+ # @example Request syntax with placeholder values
956
+ #
957
+ # resp = client.create_payment_instrument({
958
+ # user_id: "UserId",
959
+ # agent_name: "PaymentAgentName",
960
+ # payment_manager_arn: "PaymentManagerArn", # required
961
+ # payment_connector_id: "PaymentConnectorId", # required
962
+ # payment_instrument_type: "EMBEDDED_CRYPTO_WALLET", # required, accepts EMBEDDED_CRYPTO_WALLET
963
+ # payment_instrument_details: { # required
964
+ # embedded_crypto_wallet: {
965
+ # network: "ETHEREUM", # required, accepts ETHEREUM, SOLANA
966
+ # linked_accounts: [ # required
967
+ # {
968
+ # email: {
969
+ # email_address: "Email", # required
970
+ # },
971
+ # sms: {
972
+ # phone_number: "PhoneNumber", # required
973
+ # },
974
+ # developer_jwt: {
975
+ # kid: "JwtKeyId", # required
976
+ # sub: "LinkedAccountDeveloperJwtSubString", # required
977
+ # },
978
+ # o_auth_2: {
979
+ # google: {
980
+ # sub: "OAuth2AuthenticationSubString", # required
981
+ # email_address: "Email",
982
+ # name: "OAuth2AuthenticationNameString",
983
+ # username: "OAuth2AuthenticationUsernameString",
984
+ # },
985
+ # apple: {
986
+ # sub: "OAuth2AuthenticationSubString", # required
987
+ # email_address: "Email",
988
+ # name: "OAuth2AuthenticationNameString",
989
+ # username: "OAuth2AuthenticationUsernameString",
990
+ # },
991
+ # x: {
992
+ # sub: "OAuth2AuthenticationSubString", # required
993
+ # email_address: "Email",
994
+ # name: "OAuth2AuthenticationNameString",
995
+ # username: "OAuth2AuthenticationUsernameString",
996
+ # },
997
+ # telegram: {
998
+ # sub: "OAuth2AuthenticationSubString", # required
999
+ # email_address: "Email",
1000
+ # name: "OAuth2AuthenticationNameString",
1001
+ # username: "OAuth2AuthenticationUsernameString",
1002
+ # },
1003
+ # github: {
1004
+ # sub: "OAuth2AuthenticationSubString", # required
1005
+ # email_address: "Email",
1006
+ # name: "OAuth2AuthenticationNameString",
1007
+ # username: "OAuth2AuthenticationUsernameString",
1008
+ # },
1009
+ # },
1010
+ # },
1011
+ # ],
1012
+ # wallet_address: "String",
1013
+ # redirect_url: "EmbeddedCryptoWalletRedirectUrlString",
1014
+ # },
1015
+ # },
1016
+ # client_token: "ClientToken",
1017
+ # })
1018
+ #
1019
+ # @example Response structure
1020
+ #
1021
+ # resp.payment_instrument.payment_instrument_id #=> String
1022
+ # resp.payment_instrument.payment_manager_arn #=> String
1023
+ # resp.payment_instrument.payment_connector_id #=> String
1024
+ # resp.payment_instrument.user_id #=> String
1025
+ # resp.payment_instrument.payment_instrument_type #=> String, one of "EMBEDDED_CRYPTO_WALLET"
1026
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.network #=> String, one of "ETHEREUM", "SOLANA"
1027
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts #=> Array
1028
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].email.email_address #=> String
1029
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].sms.phone_number #=> String
1030
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].developer_jwt.kid #=> String
1031
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].developer_jwt.sub #=> String
1032
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.google.sub #=> String
1033
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.google.email_address #=> String
1034
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.google.name #=> String
1035
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.google.username #=> String
1036
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.apple.sub #=> String
1037
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.apple.email_address #=> String
1038
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.apple.name #=> String
1039
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.apple.username #=> String
1040
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.x.sub #=> String
1041
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.x.email_address #=> String
1042
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.x.name #=> String
1043
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.x.username #=> String
1044
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.telegram.sub #=> String
1045
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.telegram.email_address #=> String
1046
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.telegram.name #=> String
1047
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.telegram.username #=> String
1048
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.github.sub #=> String
1049
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.github.email_address #=> String
1050
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.github.name #=> String
1051
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.github.username #=> String
1052
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.wallet_address #=> String
1053
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.redirect_url #=> String
1054
+ # resp.payment_instrument.created_at #=> Time
1055
+ # resp.payment_instrument.status #=> String, one of "INITIATED", "ACTIVE", "FAILED", "DELETED"
1056
+ # resp.payment_instrument.updated_at #=> Time
1057
+ #
1058
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bedrock-agentcore-2024-02-28/CreatePaymentInstrument AWS API Documentation
1059
+ #
1060
+ # @overload create_payment_instrument(params = {})
1061
+ # @param [Hash] params ({})
1062
+ def create_payment_instrument(params = {}, options = {})
1063
+ req = build_request(:create_payment_instrument, params)
1064
+ req.send_request(options)
1065
+ end
1066
+
1067
+ # Create a new payment manager session
1068
+ #
1069
+ # @option params [String] :user_id
1070
+ # The user ID associated with this payment session.
1071
+ #
1072
+ # @option params [String] :agent_name
1073
+ # The agent name associated with this request, used for observability.
1074
+ #
1075
+ # @option params [required, String] :payment_manager_arn
1076
+ # The ARN of the payment manager that owns this session.
1077
+ #
1078
+ # @option params [Types::SessionLimits] :limits
1079
+ # The spending limits for this payment session.
1080
+ #
1081
+ # @option params [required, Integer] :expiry_time_in_minutes
1082
+ # The session expiry time in minutes. Must be between 15 and 480
1083
+ # minutes.
1084
+ #
1085
+ # @option params [String] :client_token
1086
+ # Idempotency token to ensure request uniqueness.
1087
+ #
1088
+ # **A suitable default value is auto-generated.** You should normally
1089
+ # not need to pass this option.**
1090
+ #
1091
+ # @return [Types::CreatePaymentSessionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1092
+ #
1093
+ # * {Types::CreatePaymentSessionResponse#payment_session #payment_session} => Types::PaymentSession
1094
+ #
1095
+ # @example Request syntax with placeholder values
1096
+ #
1097
+ # resp = client.create_payment_session({
1098
+ # user_id: "UserId",
1099
+ # agent_name: "PaymentAgentName",
1100
+ # payment_manager_arn: "PaymentManagerArn", # required
1101
+ # limits: {
1102
+ # max_spend_amount: { # required
1103
+ # value: "String", # required
1104
+ # currency: "USD", # required, accepts USD
1105
+ # },
1106
+ # },
1107
+ # expiry_time_in_minutes: 1, # required
1108
+ # client_token: "ClientToken",
1109
+ # })
1110
+ #
1111
+ # @example Response structure
1112
+ #
1113
+ # resp.payment_session.payment_session_id #=> String
1114
+ # resp.payment_session.payment_manager_arn #=> String
1115
+ # resp.payment_session.limits.max_spend_amount.value #=> String
1116
+ # resp.payment_session.limits.max_spend_amount.currency #=> String, one of "USD"
1117
+ # resp.payment_session.user_id #=> String
1118
+ # resp.payment_session.expiry_time_in_minutes #=> Integer
1119
+ # resp.payment_session.created_at #=> Time
1120
+ # resp.payment_session.available_limits.available_spend_amount.value #=> String
1121
+ # resp.payment_session.available_limits.available_spend_amount.currency #=> String, one of "USD"
1122
+ # resp.payment_session.available_limits.updated_at #=> Time
1123
+ # resp.payment_session.updated_at #=> Time
1124
+ #
1125
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bedrock-agentcore-2024-02-28/CreatePaymentSession AWS API Documentation
1126
+ #
1127
+ # @overload create_payment_session(params = {})
1128
+ # @param [Hash] params ({})
1129
+ def create_payment_session(params = {}, options = {})
1130
+ req = build_request(:create_payment_session, params)
1131
+ req.send_request(options)
1132
+ end
1133
+
925
1134
  # Deletes an A/B test and its associated gateway rules.
926
1135
  #
927
1136
  # @option params [required, String] :ab_test_id
@@ -1068,6 +1277,131 @@ module Aws::BedrockAgentCore
1068
1277
  req.send_request(options)
1069
1278
  end
1070
1279
 
1280
+ # Delete a payment instrument
1281
+ #
1282
+ # Marks a payment instrument as deleted by updating its status to
1283
+ # DELETED. This is a soft delete operation that preserves the record in
1284
+ # the database for audit and compliance purposes. The record remains
1285
+ # queryable for audit purposes but is excluded from normal list and get
1286
+ # operations.
1287
+ #
1288
+ # Deleting an already-deleted or non-existent instrument returns
1289
+ # ResourceNotFoundException (404).
1290
+ #
1291
+ # Authorization: The caller must own the instrument (accountId, userId,
1292
+ # and paymentManagerId must match). If authorization fails, a 403
1293
+ # Forbidden error is returned.
1294
+ #
1295
+ # Timestamp Management: The updatedAt timestamp is set to the current
1296
+ # time, while createdAt is preserved. The version field is incremented
1297
+ # for optimistic locking.
1298
+ #
1299
+ # Errors:
1300
+ #
1301
+ # * ResourceNotFoundException: The instrument does not exist or is
1302
+ # already deleted
1303
+ # * AccessDeniedException: The caller is not authorized to delete this
1304
+ # instrument
1305
+ # * ValidationException: Required fields are missing or invalid
1306
+ # * InternalServerException: An unexpected server error occurred
1307
+ #
1308
+ # @option params [String] :user_id
1309
+ # The user ID making the delete request. Must match the instrument's
1310
+ # userId.
1311
+ #
1312
+ # @option params [required, String] :payment_manager_arn
1313
+ # The payment manager ARN. Must match the instrument's
1314
+ # paymentManagerArn.
1315
+ #
1316
+ # @option params [required, String] :payment_connector_id
1317
+ # The payment connector ID. Must match the instrument's
1318
+ # paymentConnectorId.
1319
+ #
1320
+ # @option params [required, String] :payment_instrument_id
1321
+ # The payment instrument ID to delete.
1322
+ #
1323
+ # @return [Types::DeletePaymentInstrumentResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1324
+ #
1325
+ # * {Types::DeletePaymentInstrumentResponse#status #status} => String
1326
+ #
1327
+ # @example Request syntax with placeholder values
1328
+ #
1329
+ # resp = client.delete_payment_instrument({
1330
+ # user_id: "UserId",
1331
+ # payment_manager_arn: "PaymentManagerArn", # required
1332
+ # payment_connector_id: "PaymentConnectorId", # required
1333
+ # payment_instrument_id: "PaymentInstrumentId", # required
1334
+ # })
1335
+ #
1336
+ # @example Response structure
1337
+ #
1338
+ # resp.status #=> String, one of "INITIATED", "ACTIVE", "FAILED", "DELETED"
1339
+ #
1340
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bedrock-agentcore-2024-02-28/DeletePaymentInstrument AWS API Documentation
1341
+ #
1342
+ # @overload delete_payment_instrument(params = {})
1343
+ # @param [Hash] params ({})
1344
+ def delete_payment_instrument(params = {}, options = {})
1345
+ req = build_request(:delete_payment_instrument, params)
1346
+ req.send_request(options)
1347
+ end
1348
+
1349
+ # Delete a payment manager session
1350
+ #
1351
+ # Permanently removes a payment session record from the database. This
1352
+ # is a hard delete operation that removes the session completely.
1353
+ #
1354
+ # Deleting a non-existent or already-deleted session returns
1355
+ # ResourceNotFoundException (404).
1356
+ #
1357
+ # Authorization: The caller must own the session (accountId, userId, and
1358
+ # paymentManagerId must match). If authorization fails, a 403 Forbidden
1359
+ # error is returned.
1360
+ #
1361
+ # Errors:
1362
+ #
1363
+ # * ResourceNotFoundException: The session does not exist or has already
1364
+ # been deleted
1365
+ # * AccessDeniedException: The caller is not authorized to delete this
1366
+ # session
1367
+ # * ValidationException: Required fields are missing or invalid
1368
+ # * InternalServerException: An unexpected server error occurred
1369
+ #
1370
+ # @option params [String] :user_id
1371
+ # The user ID making the delete request. Must match the session's
1372
+ # userId.
1373
+ #
1374
+ # @option params [required, String] :payment_manager_arn
1375
+ # The payment manager ARN. Must match the session's paymentManagerArn.
1376
+ #
1377
+ # @option params [required, String] :payment_session_id
1378
+ # The payment session ID to delete.
1379
+ #
1380
+ # @return [Types::DeletePaymentSessionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1381
+ #
1382
+ # * {Types::DeletePaymentSessionResponse#status #status} => String
1383
+ #
1384
+ # @example Request syntax with placeholder values
1385
+ #
1386
+ # resp = client.delete_payment_session({
1387
+ # user_id: "UserId",
1388
+ # payment_manager_arn: "PaymentManagerArn", # required
1389
+ # payment_session_id: "PaymentSessionId", # required
1390
+ # })
1391
+ #
1392
+ # @example Response structure
1393
+ #
1394
+ # resp.status #=> String, one of "ACTIVE", "EXPIRED", "DELETED"
1395
+ #
1396
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bedrock-agentcore-2024-02-28/DeletePaymentSession AWS API Documentation
1397
+ #
1398
+ # @overload delete_payment_session(params = {})
1399
+ # @param [Hash] params ({})
1400
+ def delete_payment_session(params = {}, options = {})
1401
+ req = build_request(:delete_payment_session, params)
1402
+ req.send_request(options)
1403
+ end
1404
+
1071
1405
  # Deletes a recommendation and its associated results.
1072
1406
  #
1073
1407
  # @option params [required, String] :recommendation_id
@@ -1671,6 +2005,196 @@ module Aws::BedrockAgentCore
1671
2005
  req.send_request(options)
1672
2006
  end
1673
2007
 
2008
+ # Get a payment instrument by ID
2009
+ #
2010
+ # @option params [String] :user_id
2011
+ # The user ID associated with this payment instrument.
2012
+ #
2013
+ # @option params [String] :agent_name
2014
+ # The agent name associated with this request, used for observability.
2015
+ #
2016
+ # @option params [required, String] :payment_manager_arn
2017
+ # The ARN of the payment manager that owns this payment instrument.
2018
+ #
2019
+ # @option params [String] :payment_connector_id
2020
+ # The ID of the payment connector.
2021
+ #
2022
+ # @option params [required, String] :payment_instrument_id
2023
+ # The ID of the payment instrument to retrieve.
2024
+ #
2025
+ # @return [Types::GetPaymentInstrumentResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2026
+ #
2027
+ # * {Types::GetPaymentInstrumentResponse#payment_instrument #payment_instrument} => Types::PaymentInstrument
2028
+ #
2029
+ # @example Request syntax with placeholder values
2030
+ #
2031
+ # resp = client.get_payment_instrument({
2032
+ # user_id: "UserId",
2033
+ # agent_name: "PaymentAgentName",
2034
+ # payment_manager_arn: "PaymentManagerArn", # required
2035
+ # payment_connector_id: "PaymentConnectorId",
2036
+ # payment_instrument_id: "PaymentInstrumentId", # required
2037
+ # })
2038
+ #
2039
+ # @example Response structure
2040
+ #
2041
+ # resp.payment_instrument.payment_instrument_id #=> String
2042
+ # resp.payment_instrument.payment_manager_arn #=> String
2043
+ # resp.payment_instrument.payment_connector_id #=> String
2044
+ # resp.payment_instrument.user_id #=> String
2045
+ # resp.payment_instrument.payment_instrument_type #=> String, one of "EMBEDDED_CRYPTO_WALLET"
2046
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.network #=> String, one of "ETHEREUM", "SOLANA"
2047
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts #=> Array
2048
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].email.email_address #=> String
2049
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].sms.phone_number #=> String
2050
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].developer_jwt.kid #=> String
2051
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].developer_jwt.sub #=> String
2052
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.google.sub #=> String
2053
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.google.email_address #=> String
2054
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.google.name #=> String
2055
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.google.username #=> String
2056
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.apple.sub #=> String
2057
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.apple.email_address #=> String
2058
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.apple.name #=> String
2059
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.apple.username #=> String
2060
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.x.sub #=> String
2061
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.x.email_address #=> String
2062
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.x.name #=> String
2063
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.x.username #=> String
2064
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.telegram.sub #=> String
2065
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.telegram.email_address #=> String
2066
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.telegram.name #=> String
2067
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.telegram.username #=> String
2068
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.github.sub #=> String
2069
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.github.email_address #=> String
2070
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.github.name #=> String
2071
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.linked_accounts[0].o_auth_2.github.username #=> String
2072
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.wallet_address #=> String
2073
+ # resp.payment_instrument.payment_instrument_details.embedded_crypto_wallet.redirect_url #=> String
2074
+ # resp.payment_instrument.created_at #=> Time
2075
+ # resp.payment_instrument.status #=> String, one of "INITIATED", "ACTIVE", "FAILED", "DELETED"
2076
+ # resp.payment_instrument.updated_at #=> Time
2077
+ #
2078
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bedrock-agentcore-2024-02-28/GetPaymentInstrument AWS API Documentation
2079
+ #
2080
+ # @overload get_payment_instrument(params = {})
2081
+ # @param [Hash] params ({})
2082
+ def get_payment_instrument(params = {}, options = {})
2083
+ req = build_request(:get_payment_instrument, params)
2084
+ req.send_request(options)
2085
+ end
2086
+
2087
+ # Get the balance of a payment instrument
2088
+ #
2089
+ # @option params [String] :user_id
2090
+ # The user ID associated with this payment instrument.
2091
+ #
2092
+ # @option params [String] :agent_name
2093
+ # The agent name associated with this request, used for observability.
2094
+ #
2095
+ # @option params [required, String] :payment_manager_arn
2096
+ # The ARN of the payment manager that owns this payment instrument.
2097
+ #
2098
+ # @option params [required, String] :payment_connector_id
2099
+ # The ID of the payment connector associated with this instrument.
2100
+ #
2101
+ # @option params [required, String] :payment_instrument_id
2102
+ # The ID of the payment instrument to query balance for.
2103
+ #
2104
+ # @option params [required, String] :chain
2105
+ # The specific blockchain chain to query balance on. Required because
2106
+ # balances are chain-specific — the same wallet address may hold
2107
+ # different token balances on different chains.
2108
+ #
2109
+ # @option params [required, String] :token
2110
+ # The token to query balance for. Required to specify which supported
2111
+ # token's balance to return.
2112
+ #
2113
+ # @return [Types::GetPaymentInstrumentBalanceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2114
+ #
2115
+ # * {Types::GetPaymentInstrumentBalanceResponse#payment_instrument_id #payment_instrument_id} => String
2116
+ # * {Types::GetPaymentInstrumentBalanceResponse#token_balance #token_balance} => Types::TokenBalance
2117
+ #
2118
+ # @example Request syntax with placeholder values
2119
+ #
2120
+ # resp = client.get_payment_instrument_balance({
2121
+ # user_id: "UserId",
2122
+ # agent_name: "PaymentAgentName",
2123
+ # payment_manager_arn: "PaymentManagerArn", # required
2124
+ # payment_connector_id: "PaymentConnectorId", # required
2125
+ # payment_instrument_id: "PaymentInstrumentId", # required
2126
+ # chain: "BASE", # required, accepts BASE, BASE_SEPOLIA, ETHEREUM, SOLANA, SOLANA_DEVNET
2127
+ # token: "USDC", # required, accepts USDC
2128
+ # })
2129
+ #
2130
+ # @example Response structure
2131
+ #
2132
+ # resp.payment_instrument_id #=> String
2133
+ # resp.token_balance.amount #=> String
2134
+ # resp.token_balance.decimals #=> Integer
2135
+ # resp.token_balance.token #=> String, one of "USDC"
2136
+ # resp.token_balance.network #=> String, one of "ETHEREUM", "SOLANA"
2137
+ # resp.token_balance.chain #=> String, one of "BASE", "BASE_SEPOLIA", "ETHEREUM", "SOLANA", "SOLANA_DEVNET"
2138
+ #
2139
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bedrock-agentcore-2024-02-28/GetPaymentInstrumentBalance AWS API Documentation
2140
+ #
2141
+ # @overload get_payment_instrument_balance(params = {})
2142
+ # @param [Hash] params ({})
2143
+ def get_payment_instrument_balance(params = {}, options = {})
2144
+ req = build_request(:get_payment_instrument_balance, params)
2145
+ req.send_request(options)
2146
+ end
2147
+
2148
+ # Get a payment session
2149
+ #
2150
+ # @option params [String] :user_id
2151
+ # The user ID associated with this payment session.
2152
+ #
2153
+ # @option params [String] :agent_name
2154
+ # The agent name associated with this request, used for observability.
2155
+ #
2156
+ # @option params [required, String] :payment_manager_arn
2157
+ # The ARN of the payment manager that owns this session.
2158
+ #
2159
+ # @option params [required, String] :payment_session_id
2160
+ # The ID of the payment session to retrieve.
2161
+ #
2162
+ # @return [Types::GetPaymentSessionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2163
+ #
2164
+ # * {Types::GetPaymentSessionResponse#payment_session #payment_session} => Types::PaymentSession
2165
+ #
2166
+ # @example Request syntax with placeholder values
2167
+ #
2168
+ # resp = client.get_payment_session({
2169
+ # user_id: "UserId",
2170
+ # agent_name: "PaymentAgentName",
2171
+ # payment_manager_arn: "PaymentManagerArn", # required
2172
+ # payment_session_id: "PaymentSessionId", # required
2173
+ # })
2174
+ #
2175
+ # @example Response structure
2176
+ #
2177
+ # resp.payment_session.payment_session_id #=> String
2178
+ # resp.payment_session.payment_manager_arn #=> String
2179
+ # resp.payment_session.limits.max_spend_amount.value #=> String
2180
+ # resp.payment_session.limits.max_spend_amount.currency #=> String, one of "USD"
2181
+ # resp.payment_session.user_id #=> String
2182
+ # resp.payment_session.expiry_time_in_minutes #=> Integer
2183
+ # resp.payment_session.created_at #=> Time
2184
+ # resp.payment_session.available_limits.available_spend_amount.value #=> String
2185
+ # resp.payment_session.available_limits.available_spend_amount.currency #=> String, one of "USD"
2186
+ # resp.payment_session.available_limits.updated_at #=> Time
2187
+ # resp.payment_session.updated_at #=> Time
2188
+ #
2189
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bedrock-agentcore-2024-02-28/GetPaymentSession AWS API Documentation
2190
+ #
2191
+ # @overload get_payment_session(params = {})
2192
+ # @param [Hash] params ({})
2193
+ def get_payment_session(params = {}, options = {})
2194
+ req = build_request(:get_payment_session, params)
2195
+ req.send_request(options)
2196
+ end
2197
+
1674
2198
  # Retrieves detailed information about a recommendation, including its
1675
2199
  # configuration, status, and results.
1676
2200
  #
@@ -1893,6 +2417,64 @@ module Aws::BedrockAgentCore
1893
2417
  req.send_request(options)
1894
2418
  end
1895
2419
 
2420
+ # Generates authentication tokens for payment providers that use
2421
+ # vendor-specific authentication mechanisms.
2422
+ #
2423
+ # @option params [required, String] :workload_identity_token
2424
+ # Workload access token for authorization. Named workloadIdentityToken
2425
+ # for consistency with APIKey and OAuth2CredentialProvider.
2426
+ #
2427
+ # @option params [required, String] :resource_credential_provider_name
2428
+ # Name of the payment credential provider to use
2429
+ #
2430
+ # @option params [required, Types::PaymentTokenRequestInput] :payment_token_request
2431
+ # Vendor-specific token request input Contains all request parameters in
2432
+ # a type-safe, vendor-specific structure
2433
+ #
2434
+ # @return [Types::GetResourcePaymentTokenResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2435
+ #
2436
+ # * {Types::GetResourcePaymentTokenResponse#payment_token_response #payment_token_response} => Types::PaymentTokenResponseOutput
2437
+ #
2438
+ # @example Request syntax with placeholder values
2439
+ #
2440
+ # resp = client.get_resource_payment_token({
2441
+ # workload_identity_token: "WorkloadIdentityTokenType", # required
2442
+ # resource_credential_provider_name: "CredentialProviderName", # required
2443
+ # payment_token_request: { # required
2444
+ # coinbase_cdp_token_request: {
2445
+ # request_method: "GET", # required, accepts GET, POST, PUT, DELETE, PATCH
2446
+ # request_host: "PaymentRequestHostType",
2447
+ # request_path: "PaymentRequestPathType", # required
2448
+ # include_wallet_auth_token: false,
2449
+ # request_body: "CoinbaseCdpPaymentRequestBodyType",
2450
+ # },
2451
+ # stripe_privy_token_request: {
2452
+ # request_host: "StripePrivyRequestHostType",
2453
+ # request_path: "StripePrivyRequestPathType", # required
2454
+ # request_body: "StripePrivyRequestBodyType", # required
2455
+ # include_authorization_signature: false,
2456
+ # },
2457
+ # },
2458
+ # })
2459
+ #
2460
+ # @example Response structure
2461
+ #
2462
+ # resp.payment_token_response.coinbase_cdp_token_response.bearer_token #=> String
2463
+ # resp.payment_token_response.coinbase_cdp_token_response.wallet_auth_token #=> String
2464
+ # resp.payment_token_response.stripe_privy_token_response.authorization_signature #=> String
2465
+ # resp.payment_token_response.stripe_privy_token_response.request_expiry #=> Integer
2466
+ # resp.payment_token_response.stripe_privy_token_response.app_id #=> String
2467
+ # resp.payment_token_response.stripe_privy_token_response.basic_auth_token #=> String
2468
+ #
2469
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bedrock-agentcore-2024-02-28/GetResourcePaymentToken AWS API Documentation
2470
+ #
2471
+ # @overload get_resource_payment_token(params = {})
2472
+ # @param [Hash] params ({})
2473
+ def get_resource_payment_token(params = {}, options = {})
2474
+ req = build_request(:get_resource_payment_token, params)
2475
+ req.send_request(options)
2476
+ end
2477
+
1896
2478
  # Obtains a workload access token for agentic workloads not acting on
1897
2479
  # behalf of a user.
1898
2480
  #
@@ -3196,7 +3778,7 @@ module Aws::BedrockAgentCore
3196
3778
  # custom_parameters: {
3197
3779
  # "OAuthCustomParametersKey" => "OAuthCustomParametersValue",
3198
3780
  # },
3199
- # grant_type: "CLIENT_CREDENTIALS", # accepts CLIENT_CREDENTIALS, AUTHORIZATION_CODE
3781
+ # grant_type: "CLIENT_CREDENTIALS", # accepts CLIENT_CREDENTIALS, AUTHORIZATION_CODE, TOKEN_EXCHANGE
3200
3782
  # default_return_url: "OAuthDefaultReturnUrl",
3201
3783
  # },
3202
3784
  # },
@@ -3887,6 +4469,120 @@ module Aws::BedrockAgentCore
3887
4469
  req.send_request(options)
3888
4470
  end
3889
4471
 
4472
+ # List payment instruments for a manager
4473
+ #
4474
+ # @option params [String] :user_id
4475
+ # The user ID associated with the payment instruments.
4476
+ #
4477
+ # @option params [String] :agent_name
4478
+ # The agent name associated with this request, used for observability.
4479
+ #
4480
+ # @option params [required, String] :payment_manager_arn
4481
+ # The ARN of the payment manager that owns the payment instruments.
4482
+ #
4483
+ # @option params [String] :payment_connector_id
4484
+ # The ID of the payment connector to filter by.
4485
+ #
4486
+ # @option params [String] :next_token
4487
+ # Token for pagination to retrieve the next set of results.
4488
+ #
4489
+ # @option params [Integer] :max_results
4490
+ # Maximum number of results to return in a single response.
4491
+ #
4492
+ # @return [Types::ListPaymentInstrumentsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4493
+ #
4494
+ # * {Types::ListPaymentInstrumentsResponse#payment_instruments #payment_instruments} => Array<Types::PaymentInstrumentSummary>
4495
+ # * {Types::ListPaymentInstrumentsResponse#next_token #next_token} => String
4496
+ #
4497
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
4498
+ #
4499
+ # @example Request syntax with placeholder values
4500
+ #
4501
+ # resp = client.list_payment_instruments({
4502
+ # user_id: "UserId",
4503
+ # agent_name: "PaymentAgentName",
4504
+ # payment_manager_arn: "PaymentManagerArn", # required
4505
+ # payment_connector_id: "PaymentConnectorId",
4506
+ # next_token: "NextToken",
4507
+ # max_results: 1,
4508
+ # })
4509
+ #
4510
+ # @example Response structure
4511
+ #
4512
+ # resp.payment_instruments #=> Array
4513
+ # resp.payment_instruments[0].payment_instrument_id #=> String
4514
+ # resp.payment_instruments[0].payment_manager_arn #=> String
4515
+ # resp.payment_instruments[0].payment_connector_id #=> String
4516
+ # resp.payment_instruments[0].user_id #=> String
4517
+ # resp.payment_instruments[0].payment_instrument_type #=> String, one of "EMBEDDED_CRYPTO_WALLET"
4518
+ # resp.payment_instruments[0].status #=> String, one of "INITIATED", "ACTIVE", "FAILED", "DELETED"
4519
+ # resp.payment_instruments[0].created_at #=> Time
4520
+ # resp.payment_instruments[0].updated_at #=> Time
4521
+ # resp.next_token #=> String
4522
+ #
4523
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bedrock-agentcore-2024-02-28/ListPaymentInstruments AWS API Documentation
4524
+ #
4525
+ # @overload list_payment_instruments(params = {})
4526
+ # @param [Hash] params ({})
4527
+ def list_payment_instruments(params = {}, options = {})
4528
+ req = build_request(:list_payment_instruments, params)
4529
+ req.send_request(options)
4530
+ end
4531
+
4532
+ # List payment manager sessions
4533
+ #
4534
+ # @option params [String] :user_id
4535
+ # The user ID associated with the payment sessions.
4536
+ #
4537
+ # @option params [String] :agent_name
4538
+ # The agent name associated with this request, used for observability.
4539
+ #
4540
+ # @option params [required, String] :payment_manager_arn
4541
+ # The ARN of the payment manager that owns the sessions.
4542
+ #
4543
+ # @option params [String] :next_token
4544
+ # Token for pagination to retrieve the next set of results.
4545
+ #
4546
+ # @option params [Integer] :max_results
4547
+ # Maximum number of results to return in a single response.
4548
+ #
4549
+ # @return [Types::ListPaymentSessionsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4550
+ #
4551
+ # * {Types::ListPaymentSessionsResponse#payment_sessions #payment_sessions} => Array<Types::PaymentSessionSummary>
4552
+ # * {Types::ListPaymentSessionsResponse#next_token #next_token} => String
4553
+ #
4554
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
4555
+ #
4556
+ # @example Request syntax with placeholder values
4557
+ #
4558
+ # resp = client.list_payment_sessions({
4559
+ # user_id: "UserId",
4560
+ # agent_name: "PaymentAgentName",
4561
+ # payment_manager_arn: "PaymentManagerArn", # required
4562
+ # next_token: "NextToken",
4563
+ # max_results: 1,
4564
+ # })
4565
+ #
4566
+ # @example Response structure
4567
+ #
4568
+ # resp.payment_sessions #=> Array
4569
+ # resp.payment_sessions[0].payment_session_id #=> String
4570
+ # resp.payment_sessions[0].payment_manager_arn #=> String
4571
+ # resp.payment_sessions[0].user_id #=> String
4572
+ # resp.payment_sessions[0].expiry_time_in_minutes #=> Integer
4573
+ # resp.payment_sessions[0].created_at #=> Time
4574
+ # resp.payment_sessions[0].updated_at #=> Time
4575
+ # resp.next_token #=> String
4576
+ #
4577
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bedrock-agentcore-2024-02-28/ListPaymentSessions AWS API Documentation
4578
+ #
4579
+ # @overload list_payment_sessions(params = {})
4580
+ # @param [Hash] params ({})
4581
+ def list_payment_sessions(params = {}, options = {})
4582
+ req = build_request(:list_payment_sessions, params)
4583
+ req.send_request(options)
4584
+ end
4585
+
3890
4586
  # Lists all recommendations in the account, with optional filtering by
3891
4587
  # status.
3892
4588
  #
@@ -4007,6 +4703,87 @@ module Aws::BedrockAgentCore
4007
4703
  req.send_request(options)
4008
4704
  end
4009
4705
 
4706
+ # Process a payment transaction
4707
+ #
4708
+ # @option params [String] :user_id
4709
+ # The user ID associated with this payment.
4710
+ #
4711
+ # @option params [String] :agent_name
4712
+ # The agent name associated with this request, used for observability.
4713
+ #
4714
+ # @option params [required, String] :payment_manager_arn
4715
+ # The ARN of the payment manager handling this payment.
4716
+ #
4717
+ # @option params [required, String] :payment_session_id
4718
+ # The ID of the payment session for this transaction.
4719
+ #
4720
+ # @option params [required, String] :payment_instrument_id
4721
+ # The ID of the payment instrument to use for this transaction.
4722
+ #
4723
+ # @option params [required, String] :payment_type
4724
+ # The type of payment being processed.
4725
+ #
4726
+ # @option params [required, Types::PaymentInput] :payment_input
4727
+ # The payment input details specific to the payment type.
4728
+ #
4729
+ # @option params [String] :client_token
4730
+ # Idempotency token to ensure request uniqueness.
4731
+ #
4732
+ # **A suitable default value is auto-generated.** You should normally
4733
+ # not need to pass this option.**
4734
+ #
4735
+ # @return [Types::ProcessPaymentResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4736
+ #
4737
+ # * {Types::ProcessPaymentResponse#process_payment_id #process_payment_id} => String
4738
+ # * {Types::ProcessPaymentResponse#payment_manager_arn #payment_manager_arn} => String
4739
+ # * {Types::ProcessPaymentResponse#payment_session_id #payment_session_id} => String
4740
+ # * {Types::ProcessPaymentResponse#payment_instrument_id #payment_instrument_id} => String
4741
+ # * {Types::ProcessPaymentResponse#payment_type #payment_type} => String
4742
+ # * {Types::ProcessPaymentResponse#status #status} => String
4743
+ # * {Types::ProcessPaymentResponse#payment_output #payment_output} => Types::PaymentOutput
4744
+ # * {Types::ProcessPaymentResponse#created_at #created_at} => Time
4745
+ # * {Types::ProcessPaymentResponse#updated_at #updated_at} => Time
4746
+ #
4747
+ # @example Request syntax with placeholder values
4748
+ #
4749
+ # resp = client.process_payment({
4750
+ # user_id: "UserId",
4751
+ # agent_name: "PaymentAgentName",
4752
+ # payment_manager_arn: "PaymentManagerArn", # required
4753
+ # payment_session_id: "PaymentSessionId", # required
4754
+ # payment_instrument_id: "PaymentInstrumentId", # required
4755
+ # payment_type: "CRYPTO_X402", # required, accepts CRYPTO_X402
4756
+ # payment_input: { # required
4757
+ # crypto_x402: {
4758
+ # version: "String", # required
4759
+ # payload: { # required
4760
+ # },
4761
+ # },
4762
+ # },
4763
+ # client_token: "ClientToken",
4764
+ # })
4765
+ #
4766
+ # @example Response structure
4767
+ #
4768
+ # resp.process_payment_id #=> String
4769
+ # resp.payment_manager_arn #=> String
4770
+ # resp.payment_session_id #=> String
4771
+ # resp.payment_instrument_id #=> String
4772
+ # resp.payment_type #=> String, one of "CRYPTO_X402"
4773
+ # resp.status #=> String, one of "PROOF_GENERATED"
4774
+ # resp.payment_output.crypto_x402.version #=> String
4775
+ # resp.created_at #=> Time
4776
+ # resp.updated_at #=> Time
4777
+ #
4778
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bedrock-agentcore-2024-02-28/ProcessPayment AWS API Documentation
4779
+ #
4780
+ # @overload process_payment(params = {})
4781
+ # @param [Hash] params ({})
4782
+ def process_payment(params = {}, options = {})
4783
+ req = build_request(:process_payment, params)
4784
+ req.send_request(options)
4785
+ end
4786
+
4010
4787
  # Searches for and retrieves memory records from an AgentCore Memory
4011
4788
  # resource based on specified search criteria. We recommend using
4012
4789
  # pagination to ensure that the operation returns quickly and
@@ -5337,7 +6114,7 @@ module Aws::BedrockAgentCore
5337
6114
  tracer: tracer
5338
6115
  )
5339
6116
  context[:gem_name] = 'aws-sdk-bedrockagentcore'
5340
- context[:gem_version] = '1.31.0'
6117
+ context[:gem_version] = '1.32.0'
5341
6118
  Seahorse::Client::Request.new(handlers, context)
5342
6119
  end
5343
6120