15#ifndef AWS_ENCRYPTION_SDK_KMS_MRK_KEYRING_H
16#define AWS_ENCRYPTION_SDK_KMS_MRK_KEYRING_H
18#include <aws/cryptosdk/cpp/exports.h>
21#include <aws/core/Aws.h>
22#include <aws/core/utils/Outcome.h>
23#include <aws/core/utils/memory/stl/AWSMap.h>
24#include <aws/core/utils/memory/stl/AWSSet.h>
25#include <aws/core/utils/memory/stl/AWSString.h>
26#include <aws/core/utils/memory/stl/AWSVector.h>
28#include <aws/kms/KMSClient.h>
177 const Aws::String ®ion, std::shared_ptr<KmsKeyring::DiscoveryFilter> discovery_filter)
const;
180 std::shared_ptr<KMS::KMSClient> kms_client;
181 Aws::Vector<Aws::String> grant_tokens;
182 std::shared_ptr<KmsKeyring::ClientSupplier> client_supplier;
227 const Aws::String &generator_key_id,
const Aws::Vector<Aws::String> &additional_key_ids = {})
const;
247 const Aws::Set<Aws::String> ®ions,
248 std::shared_ptr<KmsKeyring::DiscoveryFilter> discovery_filter =
nullptr)
const;
251 Aws::Vector<Aws::String> grant_tokens;
252 std::shared_ptr<KmsKeyring::ClientSupplier> client_supplier;
259 const Aws::String &generator_key_id,
const Aws::Vector<Aws::String> &additional_key_ids = {})
const;
Builder & WithClientSupplier(const std::shared_ptr< KmsKeyring::ClientSupplier > &client_supplier)
Builder & WithKmsClient(const std::shared_ptr< KMS::KMSClient > &kms_client)
Builder & WithGrantTokens(const Aws::Vector< Aws::String > &grant_tokens)
aws_cryptosdk_keyring * BuildDiscovery(const Aws::String ®ion) const
Builder & WithGrantToken(const Aws::String &grant_token)
aws_cryptosdk_keyring * Build(const Aws::String &key_id) const
aws_cryptosdk_keyring * BuildDiscovery(const Aws::String ®ion, std::shared_ptr< KmsKeyring::DiscoveryFilter > discovery_filter) const
MultiKeyringBuilder & WithGrantToken(const Aws::String &grant_token)
MultiKeyringBuilder & WithClientSupplier(const std::shared_ptr< KmsKeyring::ClientSupplier > &client_supplier)
aws_cryptosdk_keyring * BuildDiscovery(const Aws::Set< Aws::String > ®ions, std::shared_ptr< KmsKeyring::DiscoveryFilter > discovery_filter=nullptr) const
aws_cryptosdk_keyring * Build(const Aws::Vector< Aws::String > &additional_key_ids={}) const
aws_cryptosdk_keyring * Build(const Aws::String &generator_key_id, const Aws::Vector< Aws::String > &additional_key_ids={}) const
MultiKeyringBuilder & WithGrantTokens(const Aws::Vector< Aws::String > &grant_tokens)