7#include <aws/core/utils/UUID.h> 
    8#include <aws/core/utils/memory/stl/AWSString.h> 
    9#include <aws/core/utils/memory/stl/AWSVector.h> 
   10#include <aws/kendra/KendraRequest.h> 
   11#include <aws/kendra/Kendra_EXPORTS.h> 
   12#include <aws/kendra/model/IndexEdition.h> 
   13#include <aws/kendra/model/ServerSideEncryptionConfiguration.h> 
   14#include <aws/kendra/model/Tag.h> 
   15#include <aws/kendra/model/UserContextPolicy.h> 
   16#include <aws/kendra/model/UserGroupResolutionConfiguration.h> 
   17#include <aws/kendra/model/UserTokenConfiguration.h> 
   47  template <
typename NameT = Aws::String>
 
   49    m_nameHasBeenSet = 
true;
 
   50    m_name = std::forward<NameT>(value);
 
   52  template <
typename NameT = Aws::String>
 
   54    SetName(std::forward<NameT>(value));
 
   75    m_editionHasBeenSet = 
true;
 
   93  template <
typename RoleArnT = Aws::String>
 
   95    m_roleArnHasBeenSet = 
true;
 
   96    m_roleArn = std::forward<RoleArnT>(value);
 
   98  template <
typename RoleArnT = Aws::String>
 
  112    return m_serverSideEncryptionConfiguration;
 
  115  template <
typename ServerS
ideEncryptionConfigurationT = ServerS
ideEncryptionConfiguration>
 
  117    m_serverSideEncryptionConfigurationHasBeenSet = 
true;
 
  118    m_serverSideEncryptionConfiguration = std::forward<ServerSideEncryptionConfigurationT>(value);
 
  120  template <
typename ServerS
ideEncryptionConfigurationT = ServerS
ideEncryptionConfiguration>
 
  133  template <
typename DescriptionT = Aws::String>
 
  135    m_descriptionHasBeenSet = 
true;
 
  136    m_description = std::forward<DescriptionT>(value);
 
  138  template <
typename DescriptionT = Aws::String>
 
  153  template <
typename ClientTokenT = Aws::String>
 
  155    m_clientTokenHasBeenSet = 
true;
 
  156    m_clientToken = std::forward<ClientTokenT>(value);
 
  158  template <
typename ClientTokenT = Aws::String>
 
  174  template <
typename TagsT = Aws::Vector<Tag>>
 
  176    m_tagsHasBeenSet = 
true;
 
  177    m_tags = std::forward<TagsT>(value);
 
  179  template <
typename TagsT = Aws::Vector<Tag>>
 
  181    SetTags(std::forward<TagsT>(value));
 
  184  template <
typename TagsT = Tag>
 
  186    m_tagsHasBeenSet = 
true;
 
  187    m_tags.emplace_back(std::forward<TagsT>(value));
 
  201  template <
typename UserTokenConfigurationsT = Aws::Vector<UserTokenConfiguration>>
 
  203    m_userTokenConfigurationsHasBeenSet = 
true;
 
  204    m_userTokenConfigurations = std::forward<UserTokenConfigurationsT>(value);
 
  206  template <
typename UserTokenConfigurationsT = Aws::Vector<UserTokenConfiguration>>
 
  211  template <
typename UserTokenConfigurationsT = UserTokenConfiguration>
 
  213    m_userTokenConfigurationsHasBeenSet = 
true;
 
  214    m_userTokenConfigurations.emplace_back(std::forward<UserTokenConfigurationsT>(value));
 
  239    m_userContextPolicyHasBeenSet = 
true;
 
  240    m_userContextPolicy = value;
 
  260  template <
typename UserGroupResolutionConfigurationT = UserGroupResolutionConfiguration>
 
  262    m_userGroupResolutionConfigurationHasBeenSet = 
true;
 
  263    m_userGroupResolutionConfiguration = std::forward<UserGroupResolutionConfigurationT>(value);
 
  265  template <
typename UserGroupResolutionConfigurationT = UserGroupResolutionConfiguration>
 
  273  bool m_nameHasBeenSet = 
false;
 
  276  bool m_editionHasBeenSet = 
false;
 
  279  bool m_roleArnHasBeenSet = 
false;
 
  281  ServerSideEncryptionConfiguration m_serverSideEncryptionConfiguration;
 
  282  bool m_serverSideEncryptionConfigurationHasBeenSet = 
false;
 
  285  bool m_descriptionHasBeenSet = 
false;
 
  288  bool m_clientTokenHasBeenSet = 
true;
 
  291  bool m_tagsHasBeenSet = 
false;
 
  294  bool m_userTokenConfigurationsHasBeenSet = 
false;
 
  297  bool m_userContextPolicyHasBeenSet = 
false;
 
  299  UserGroupResolutionConfiguration m_userGroupResolutionConfiguration;
 
  300  bool m_userGroupResolutionConfigurationHasBeenSet = 
false;
 
static Aws::Utils::UUID PseudoRandomUUID()
 
void SetClientToken(ClientTokenT &&value)
 
CreateIndexRequest & WithUserContextPolicy(UserContextPolicy value)
 
AWS_KENDRA_API CreateIndexRequest()=default
 
bool NameHasBeenSet() const
 
void SetUserTokenConfigurations(UserTokenConfigurationsT &&value)
 
IndexEdition GetEdition() const
 
CreateIndexRequest & WithEdition(IndexEdition value)
 
bool UserContextPolicyHasBeenSet() const
 
void SetServerSideEncryptionConfiguration(ServerSideEncryptionConfigurationT &&value)
 
const Aws::Vector< Tag > & GetTags() const
 
CreateIndexRequest & WithDescription(DescriptionT &&value)
 
bool EditionHasBeenSet() const
 
CreateIndexRequest & WithUserGroupResolutionConfiguration(UserGroupResolutionConfigurationT &&value)
 
bool RoleArnHasBeenSet() const
 
CreateIndexRequest & WithUserTokenConfigurations(UserTokenConfigurationsT &&value)
 
void SetTags(TagsT &&value)
 
void SetName(NameT &&value)
 
CreateIndexRequest & WithClientToken(ClientTokenT &&value)
 
const Aws::String & GetName() const
 
const ServerSideEncryptionConfiguration & GetServerSideEncryptionConfiguration() const
 
bool UserTokenConfigurationsHasBeenSet() const
 
bool DescriptionHasBeenSet() const
 
void SetDescription(DescriptionT &&value)
 
virtual const char * GetServiceRequestName() const override
 
bool TagsHasBeenSet() const
 
const Aws::String & GetRoleArn() const
 
CreateIndexRequest & AddTags(TagsT &&value)
 
bool ServerSideEncryptionConfigurationHasBeenSet() const
 
const Aws::Vector< UserTokenConfiguration > & GetUserTokenConfigurations() const
 
CreateIndexRequest & WithTags(TagsT &&value)
 
void SetUserContextPolicy(UserContextPolicy value)
 
CreateIndexRequest & WithServerSideEncryptionConfiguration(ServerSideEncryptionConfigurationT &&value)
 
AWS_KENDRA_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override
 
UserContextPolicy GetUserContextPolicy() const
 
void SetRoleArn(RoleArnT &&value)
 
bool UserGroupResolutionConfigurationHasBeenSet() const
 
const UserGroupResolutionConfiguration & GetUserGroupResolutionConfiguration() const
 
const Aws::String & GetDescription() const
 
CreateIndexRequest & AddUserTokenConfigurations(UserTokenConfigurationsT &&value)
 
bool ClientTokenHasBeenSet() const
 
CreateIndexRequest & WithRoleArn(RoleArnT &&value)
 
AWS_KENDRA_API Aws::String SerializePayload() const override
 
void SetUserGroupResolutionConfiguration(UserGroupResolutionConfigurationT &&value)
 
CreateIndexRequest & WithName(NameT &&value)
 
void SetEdition(IndexEdition value)
 
const Aws::String & GetClientToken() const
 
Aws::Map< Aws::String, Aws::String > HeaderValueCollection
 
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
 
std::vector< T, Aws::Allocator< T > > Vector