/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include namespace smithy { template class IdentityResolverBase { public: using IdentityT = IDENTITY_T; virtual ~IdentityResolverBase(){}; using IdentityProperties = Aws::UnorderedMap>; // IdentityResolvers are asynchronous. using ResolveIdentityFutureOutcome = Aws::Utils::FutureOutcome, Aws::Client::AWSError>; using AdditionalParameters = Aws::UnorderedMap>; // Each Identity has one or more identity resolvers that are able to load the customer’s // Identity. An identity resolver might load the identity from a remote service (e.g. STS), a local // service (e.g. IMDS), local disk (e.g. a configuration file) or local memory (e.g. environment variables). virtual ResolveIdentityFutureOutcome getIdentity(const IdentityProperties& identityProperties, const AdditionalParameters& additionalParameters) = 0; }; }