text: /*
  * All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
  * its licensors.
  *
  * For complete copyright and license terms please see the LICENSE at the root of this
  * distribution (the "License"). All use of this software is governed by the License,
  * or, if provided, by the license below or the license accompanying this file. Do not
  * remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  *
  */
  
  /////////////////////////////////////////////////////////
  /////////////////////////////////////////////////////////
  // THIS CODE IS AUTOGENERATED, DO NOT MODIFY
  /////////////////////////////////////////////////////////
  /////////////////////////////////////////////////////////
  
  #include "StdAfx.h"
  
  
  #include "AWS/ServiceAPI/CloudGemLexClientComponent.h"
  
  namespace CloudGemLex {
  namespace ServiceAPI {
  
      
      const char* LmbrAWS_CodeGen_PostAudioResponse_UUID= "{f3a674ed-8733-4734-a62c-647854710b37}";
      
      const char* LmbrAWS_CodeGen_PostBotDescRequest_UUID= "{59fa69d4-2c46-4c73-a79a-66c03d6175ea}";
      
      const char* LmbrAWS_CodeGen_BotStatusResponse_UUID= "{85393166-a15e-429a-9eff-d019f9ef0e63}";
      
      const char* LmbrAWS_CodeGen_GetBotDescResponsePropertyDesc_file_UUID= "{2ecb13a4-7666-4c75-bfd8-732dae2fa7f0}";
      
      const char* LmbrAWS_CodeGen_GetListBotsResponse_UUID= "{5039db55-72d1-4054-914b-1a1ab3e69421}";
      
      const char* LmbrAWS_CodeGen_Component_UUID= "{395da881-5b36-4461-85ad-969954598529}";
      
      const char* LmbrAWS_CodeGen_ResponseHandler_UUID= "{6b5c2592-5c81-4846-ade7-c2520701c2e8}";
      
      const char* LmbrAWS_CodeGen_PostTextRequest_UUID= "{7c3c582c-fac1-422e-bc67-e0134f2a8944}";
      
      const char* LmbrAWS_CodeGen_NotificationBus1_UUID= "{94559ad6-81e3-418d-9479-51375bb3e9b9}";
      
      const char* LmbrAWS_CodeGen_RequestBus1_UUID= "{2d95e0dd-f662-4215-bc00-64b9e5c9fe73}";
      
      const char* LmbrAWS_CodeGen_ListBotsEntry_UUID= "{095d0a45-fe5d-43f7-97ff-8e849f56eda1}";
      
      const char* LmbrAWS_CodeGen_ServiceStatus_UUID= "{ce266396-6813-47b5-864e-e5a2f56bb44f}";
      
      const char* LmbrAWS_CodeGen_GetBotDescResponse_UUID= "{571b7eda-dfe0-4d39-896b-4c416fbc32db}";
      
      const char* LmbrAWS_CodeGen_PostBotDescRequestPropertyDesc_file_UUID= "{a554d472-1681-45fd-bf8d-d8e11247e42e}";
      
      const char* LmbrAWS_CodeGen_PostAudioRequest_UUID= "{45c9a237-0ce8-4131-bf3f-17f01bc61d8f}";
      
  
      void Configure()
      {
          // Insert any necessary CloudGemFramework configuration here
      }
  
      // redefs
      bool WriteJson(CloudGemFramework::JsonWriter& writer, const int& item)
      {
          return writer.Int(item);
      }
  
      bool WriteJson(CloudGemFramework::JsonWriter& writer, const AZStd::string& item)
      {
          return writer.String(item);
      }
  
      bool WriteJson(CloudGemFramework::JsonWriter& writer, const double& item)
      {
          return writer.Double(item);
      }
  
      
      
      bool WriteJson(CloudGemFramework::JsonWriter& writer, const PostTextRequest& item)
      {
              bool ok = true;
              ok = ok && writer.StartObject();
              
              ok = ok && writer.Key("text");
              ok = ok && WriteJson(writer, item.text);
              
              ok = ok && writer.Key("session_attributes");
              ok = ok && WriteJson(writer, item.session_attributes);
              
              ok = ok && writer.Key("bot_alias");
              ok = ok && WriteJson(writer, item.bot_alias);
              
              ok = ok && writer.Key("user_id");
              ok = ok && WriteJson(writer, item.user_id);
              
              ok = ok && writer.Key("name");
              ok = ok && WriteJson(writer, item.name);
              
              ok = ok && writer.EndObject();
              return ok;
      }
      
      
      
      bool WriteJson(CloudGemFramework::JsonWriter& writer, const PostAudioResponse& item)
      {
              bool ok = true;
              ok = ok && writer.StartObject();
              
              ok = ok && writer.Key("slot_to_elicit");
              ok = ok && WriteJson(writer, item.slot_to_elicit);
              
              ok = ok && writer.Key("session_attributes");
              ok = ok && WriteJson(writer, item.session_attributes);
              
              ok = ok && writer.Key("intent");
              ok = ok && WriteJson(writer, item.intent);
              
              ok = ok && writer.Key("input_transcript");
              ok = ok && WriteJson(writer, item.input_transcript);
              
              ok = ok && writer.Key("dialog_state");
              ok = ok && WriteJson(writer, item.dialog_state);
              
              ok = ok && writer.Key("slots");
              ok = ok && WriteJson(writer, item.slots);
              
              ok = ok && writer.Key("message");
              ok = ok && WriteJson(writer, item.message);
              
              ok = ok && writer.EndObject();
              return ok;
      }
      
      
      
      bool WriteJson(CloudGemFramework::JsonWriter& writer, const ServiceStatus& item)
      {
              bool ok = true;
              ok = ok && writer.StartObject();
              
              ok = ok && writer.Key("status");
              ok = ok && WriteJson(writer, item.status);
              
              ok = ok && writer.EndObject();
              return ok;
      }
      
      
      
      bool WriteJson(CloudGemFramework::JsonWriter& writer, const PostBotDescRequestPropertyDesc_file& item)
      {
              bool ok = true;
              ok = ok && writer.StartObject();
              
              ok = ok && writer.EndObject();
              return ok;
      }
      
      
      
      bool WriteJson(CloudGemFramework::JsonWriter& writer, const PostBotDescRequest& item)
      {
              bool ok = true;
              ok = ok && writer.StartObject();
              
              ok = ok && writer.Key("desc_file");
              ok = ok && WriteJson(writer, item.desc_file);
              
              ok = ok && writer.EndObject();
              return ok;
      }
      
      
      
      bool WriteJson(CloudGemFramework::JsonWriter& writer, const BotStatusResponse& item)
      {
              bool ok = true;
              ok = ok && writer.StartObject();
              
              ok = ok && writer.Key("status");
              ok = ok && WriteJson(writer, item.status);
              
              ok = ok && writer.EndObject();
              return ok;
      }
      
      
      
      bool WriteJson(CloudGemFramework::JsonWriter& writer, const GetBotDescResponsePropertyDesc_file& item)
      {
              bool ok = true;
              ok = ok && writer.StartObject();
              
              ok = ok && writer.EndObject();
              return ok;
      }
      
      
      
      bool WriteJson(CloudGemFramework::JsonWriter& writer, const GetBotDescResponse& item)
      {
              bool ok = true;
              ok = ok && writer.StartObject();
              
              ok = ok && writer.Key("desc_file");
              ok = ok && WriteJson(writer, item.desc_file);
              
              ok = ok && writer.EndObject();
              return ok;
      }
      
      
      
      bool WriteJson(CloudGemFramework::JsonWriter& writer, const ListBotsEntry& item)
      {
              bool ok = true;
              ok = ok && writer.StartObject();
              
              ok = ok && writer.Key("status");
              ok = ok && WriteJson(writer, item.status);
              
              ok = ok && writer.Key("version");
              ok = ok && WriteJson(writer, item.version);
              
              ok = ok && writer.Key("updated");
              ok = ok && WriteJson(writer, item.updated);
              
              ok = ok && writer.Key("created");
              ok = ok && WriteJson(writer, item.created);
              
              ok = ok && writer.Key("name");
              ok = ok && WriteJson(writer, item.name);
              
              ok = ok && writer.EndObject();
              return ok;
      }
      
      
      
      bool WriteJson(CloudGemFramework::JsonWriter& writer, const GetListBotsResponsePropertyBots& list)
      {
          bool ok = true;
          ok = ok && writer.StartArray();
          for (auto item : list)
          {
              ok = ok && WriteJson(writer, item);
          }
          ok = ok && writer.EndArray();
          return ok;
      }
      
      
      
      bool WriteJson(CloudGemFramework::JsonWriter& writer, const GetListBotsResponse& item)
      {
              bool ok = true;
              ok = ok && writer.StartObject();
              
              ok = ok && writer.Key("bots");
              ok = ok && WriteJson(writer, item.bots);
              
              ok = ok && writer.Key("nextToken");
              ok = ok && WriteJson(writer, item.nextToken);
              
              ok = ok && writer.EndObject();
              return ok;
      }
      
      
      
      bool WriteJson(CloudGemFramework::JsonWriter& writer, const PostAudioRequest& item)
      {
              bool ok = true;
              ok = ok && writer.StartObject();
              
              ok = ok && writer.Key("audio");
              ok = ok && WriteJson(writer, item.audio);
              
              ok = ok && writer.Key("session_attributes");
              ok = ok && WriteJson(writer, item.session_attributes);
              
              ok = ok && writer.Key("bot_alias");
              ok = ok && WriteJson(writer, item.bot_alias);
              
              ok = ok && writer.Key("user_id");
              ok = ok && WriteJson(writer, item.user_id);
              
              ok = ok && writer.Key("name");
              ok = ok && WriteJson(writer, item.name);
              
              ok = ok && writer.EndObject();
              return ok;
      }
      
      
  
      // Generated Function Parameters
      
      bool PostServicePosttextRequest::Parameters::BuildRequest(CloudGemFramework::RequestBuilder& request)
      {
                  bool ok = true;
                  
                  
                  ok = ok && request.WriteJsonBodyParameter(*this);
                  return ok;
      }
  
      bool PostServicePosttextRequest::Parameters::WriteJson(CloudGemFramework::JsonWriter& writer) const
      {
          bool ok = true;
          
          ok = ok && CloudGemLex::ServiceAPI::WriteJson(writer, post_text);
          
          return ok;
      }
      
      bool GetServiceStatusRequest::Parameters::BuildRequest(CloudGemFramework::RequestBuilder& request)
      {
                  bool ok = true;
                  
                  
                  ok = ok && request.WriteJsonBodyParameter(*this);
                  return ok;
      }
  
      bool GetServiceStatusRequest::Parameters::WriteJson(CloudGemFramework::JsonWriter& writer) const
      {
          bool ok = true;
          
          return ok;
      }
      
      bool PutAdminBotdescRequest::Parameters::BuildRequest(CloudGemFramework::RequestBuilder& request)
      {
                  bool ok = true;
                  
                  
                  ok = ok && request.WriteJsonBodyParameter(*this);
                  return ok;
      }
  
      bool PutAdminBotdescRequest::Parameters::WriteJson(CloudGemFramework::JsonWriter& writer) const
      {
          bool ok = true;
          
          ok = ok && CloudGemLex::ServiceAPI::WriteJson(writer, bot_desc);
          
          return ok;
      }
      
      bool GetAdminBotdescRequest::Parameters::BuildRequest(CloudGemFramework::RequestBuilder& request)
      {
                  bool ok = true;
                  
                  ok = ok && request.SetPathParameter("{""name""}", name);
                  
                  
                  ok = ok && request.WriteJsonBodyParameter(*this);
                  return ok;
      }
  
      bool GetAdminBotdescRequest::Parameters::WriteJson(CloudGemFramework::JsonWriter& writer) const
      {
          bool ok = true;
          
          return ok;
      }
      
      bool DeleteAdminDeletebotRequest::Parameters::BuildRequest(CloudGemFramework::RequestBuilder& request)
      {
                  bool ok = true;
                  
                  ok = ok && request.SetPathParameter("{""name""}", name);
                  
                  
                  ok = ok && request.WriteJsonBodyParameter(*this);
                  return ok;
      }
  
      bool DeleteAdminDeletebotRequest::Parameters::WriteJson(CloudGemFramework::JsonWriter& writer) const
      {
          bool ok = true;
          
          return ok;
      }
      
      bool GetAdminBotstatusRequest::Parameters::BuildRequest(CloudGemFramework::RequestBuilder& request)
      {
                  bool ok = true;
                  
                  ok = ok && request.SetPathParameter("{""name""}", name);
                  
                  
                  ok = ok && request.WriteJsonBodyParameter(*this);
                  return ok;
      }
  
      bool GetAdminBotstatusRequest::Parameters::WriteJson(CloudGemFramework::JsonWriter& writer) const
      {
          bool ok = true;
          
          return ok;
      }
      
      bool GetAdminListbotsRequest::Parameters::BuildRequest(CloudGemFramework::RequestBuilder& request)
      {
                  bool ok = true;
                  
                  ok = ok && request.SetPathParameter("{""next_token""}", next_token);
                  
                  
                  ok = ok && request.WriteJsonBodyParameter(*this);
                  return ok;
      }
  
      bool GetAdminListbotsRequest::Parameters::WriteJson(CloudGemFramework::JsonWriter& writer) const
      {
          bool ok = true;
          
          return ok;
      }
      
      bool PutAdminPublishbotRequest::Parameters::BuildRequest(CloudGemFramework::RequestBuilder& request)
      {
                  bool ok = true;
                  
                  ok = ok && request.SetPathParameter("{""name""}", name);
                  
                  ok = ok && request.SetPathParameter("{""version""}", version);
                  
                  
                  ok = ok && request.WriteJsonBodyParameter(*this);
                  return ok;
      }
  
      bool PutAdminPublishbotRequest::Parameters::WriteJson(CloudGemFramework::JsonWriter& writer) const
      {
          bool ok = true;
          
          return ok;
      }
      
      bool PostServicePostaudioRequest::Parameters::BuildRequest(CloudGemFramework::RequestBuilder& request)
      {
                  bool ok = true;
                  
                  
                  ok = ok && request.WriteJsonBodyParameter(*this);
                  return ok;
      }
  
      bool PostServicePostaudioRequest::Parameters::WriteJson(CloudGemFramework::JsonWriter& writer) const
      {
          bool ok = true;
          
          ok = ok && CloudGemLex::ServiceAPI::WriteJson(writer, post_audio);
          
          return ok;
      }
      
  
  
  
  
      // CloudGemLexNotificationBus
      
      
      void CloudGemLexNotifications::OnPostServicePosttextRequestSuccess(const PostAudioResponse response) { }
      
      void CloudGemLexNotifications::OnPostServicePosttextRequestError(const CloudGemFramework::Error error) { }
      
      
      void CloudGemLexNotifications::OnGetServiceStatusRequestSuccess(const ServiceStatus response) { }
      
      void CloudGemLexNotifications::OnGetServiceStatusRequestError(const CloudGemFramework::Error error) { }
      
      
      void CloudGemLexNotifications::OnPutAdminBotdescRequestSuccess(const BotStatusResponse response) { }
      
      void CloudGemLexNotifications::OnPutAdminBotdescRequestError(const CloudGemFramework::Error error) { }
      
      
      void CloudGemLexNotifications::OnGetAdminBotdescRequestSuccess(const GetBotDescResponse response) { }
      
      void CloudGemLexNotifications::OnGetAdminBotdescRequestError(const CloudGemFramework::Error error) { }
      
      
      void CloudGemLexNotifications::OnDeleteAdminDeletebotRequestSuccess(const BotStatusResponse response) { }
      
      void CloudGemLexNotifications::OnDeleteAdminDeletebotRequestError(const CloudGemFramework::Error error) { }
      
      
      void CloudGemLexNotifications::OnGetAdminBotstatusRequestSuccess(const BotStatusResponse response) { }
      
      void CloudGemLexNotifications::OnGetAdminBotstatusRequestError(const CloudGemFramework::Error error) { }
      
      
      void CloudGemLexNotifications::OnGetAdminListbotsRequestSuccess(const GetListBotsResponse response) { }
      
      void CloudGemLexNotifications::OnGetAdminListbotsRequestError(const CloudGemFramework::Error error) { }
      
      
      void CloudGemLexNotifications::OnPutAdminPublishbotRequestSuccess(const BotStatusResponse response) { }
      
      void CloudGemLexNotifications::OnPutAdminPublishbotRequestError(const CloudGemFramework::Error error) { }
      
      
      void CloudGemLexNotifications::OnPostServicePostaudioRequestSuccess(const PostAudioResponse response) { }
      
      void CloudGemLexNotifications::OnPostServicePostaudioRequestError(const CloudGemFramework::Error error) { }
      
  
  
      // BehaviorContext CloudGemLexNotificationBus handler implementation
      
      
      void BehaviorCloudGemLexNotificationBusHandler::OnPostServicePosttextRequestSuccess(const PostAudioResponse response)
      {
          Call(FN_OnPostServicePosttextRequestSuccess, response);
      }
      
      void BehaviorCloudGemLexNotificationBusHandler::OnPostServicePosttextRequestError(const CloudGemFramework::Error error)
      {
          Call(FN_OnPostServicePosttextRequestError, error);
      }
      
      
      void BehaviorCloudGemLexNotificationBusHandler::OnGetServiceStatusRequestSuccess(const ServiceStatus response)
      {
          Call(FN_OnGetServiceStatusRequestSuccess, response);
      }
      
      void BehaviorCloudGemLexNotificationBusHandler::OnGetServiceStatusRequestError(const CloudGemFramework::Error error)
      {
          Call(FN_OnGetServiceStatusRequestError, error);
      }
      
      
      void BehaviorCloudGemLexNotificationBusHandler::OnPutAdminBotdescRequestSuccess(const BotStatusResponse response)
      {
          Call(FN_OnPutAdminBotdescRequestSuccess, response);
      }
      
      void BehaviorCloudGemLexNotificationBusHandler::OnPutAdminBotdescRequestError(const CloudGemFramework::Error error)
      {
          Call(FN_OnPutAdminBotdescRequestError, error);
      }
      
      
      void BehaviorCloudGemLexNotificationBusHandler::OnGetAdminBotdescRequestSuccess(const GetBotDescResponse response)
      {
          Call(FN_OnGetAdminBotdescRequestSuccess, response);
      }
      
      void BehaviorCloudGemLexNotificationBusHandler::OnGetAdminBotdescRequestError(const CloudGemFramework::Error error)
      {
          Call(FN_OnGetAdminBotdescRequestError, error);
      }
      
      
      void BehaviorCloudGemLexNotificationBusHandler::OnDeleteAdminDeletebotRequestSuccess(const BotStatusResponse response)
      {
          Call(FN_OnDeleteAdminDeletebotRequestSuccess, response);
      }
      
      void BehaviorCloudGemLexNotificationBusHandler::OnDeleteAdminDeletebotRequestError(const CloudGemFramework::Error error)
      {
          Call(FN_OnDeleteAdminDeletebotRequestError, error);
      }
      
      
      void BehaviorCloudGemLexNotificationBusHandler::OnGetAdminBotstatusRequestSuccess(const BotStatusResponse response)
      {
          Call(FN_OnGetAdminBotstatusRequestSuccess, response);
      }
      
      void BehaviorCloudGemLexNotificationBusHandler::OnGetAdminBotstatusRequestError(const CloudGemFramework::Error error)
      {
          Call(FN_OnGetAdminBotstatusRequestError, error);
      }
      
      
      void BehaviorCloudGemLexNotificationBusHandler::OnGetAdminListbotsRequestSuccess(const GetListBotsResponse response)
      {
          Call(FN_OnGetAdminListbotsRequestSuccess, response);
      }
      
      void BehaviorCloudGemLexNotificationBusHandler::OnGetAdminListbotsRequestError(const CloudGemFramework::Error error)
      {
          Call(FN_OnGetAdminListbotsRequestError, error);
      }
      
      
      void BehaviorCloudGemLexNotificationBusHandler::OnPutAdminPublishbotRequestSuccess(const BotStatusResponse response)
      {
          Call(FN_OnPutAdminPublishbotRequestSuccess, response);
      }
      
      void BehaviorCloudGemLexNotificationBusHandler::OnPutAdminPublishbotRequestError(const CloudGemFramework::Error error)
      {
          Call(FN_OnPutAdminPublishbotRequestError, error);
      }
      
      
      void BehaviorCloudGemLexNotificationBusHandler::OnPostServicePostaudioRequestSuccess(const PostAudioResponse response)
      {
          Call(FN_OnPostServicePostaudioRequestSuccess, response);
      }
      
      void BehaviorCloudGemLexNotificationBusHandler::OnPostServicePostaudioRequestError(const CloudGemFramework::Error error)
      {
          Call(FN_OnPostServicePostaudioRequestError, error);
      }
      
  
      // CloudGemLexRequestBus
      
      
      void CloudGemLexRequests::PostServicePosttext(const PostTextRequest& post_text, CloudGemLexResponseHandler* responseHandler) { }
      
      
      
      void CloudGemLexRequests::GetServiceStatus(CloudGemLexResponseHandler* responseHandler) { }
      
      
      
      void CloudGemLexRequests::PutAdminBotdesc(const PostBotDescRequest& bot_desc, CloudGemLexResponseHandler* responseHandler) { }
      
      
      
      void CloudGemLexRequests::GetAdminBotdesc(const AZStd::string& name, CloudGemLexResponseHandler* responseHandler) { }
      
      
      
      void CloudGemLexRequests::DeleteAdminDeletebot(const AZStd::string& name, CloudGemLexResponseHandler* responseHandler) { }
      
      
      
      void CloudGemLexRequests::GetAdminBotstatus(const AZStd::string& name, CloudGemLexResponseHandler* responseHandler) { }
      
      
      
      void CloudGemLexRequests::GetAdminListbots(const AZStd::string& next_token, CloudGemLexResponseHandler* responseHandler) { }
      
      
      
      void CloudGemLexRequests::PutAdminPublishbot(const AZStd::string& name, const AZStd::string& version, CloudGemLexResponseHandler* responseHandler) { }
      
      
      
      void CloudGemLexRequests::PostServicePostaudio(const PostAudioRequest& post_audio, CloudGemLexResponseHandler* responseHandler) { }
      
      
  
      // CloudGemLexResponseHandler
      
      void CloudGemLexResponseHandler::HandlePostServicePosttextSuccess(PostServicePosttextRequestJob* job, AZ::EntityId entityId)
      {
          
          EBUS_EVENT_ID(entityId, CloudGemLexNotificationBus, OnPostServicePosttextRequestSuccess, job->result);
          
      }
  
      void CloudGemLexResponseHandler::HandlePostServicePosttextError(PostServicePosttextRequestJob* job, AZ::EntityId entityId)
      {
          EBUS_EVENT_ID(entityId, CloudGemLexNotificationBus, OnPostServicePosttextRequestError, job->error);
      }
      
      void CloudGemLexResponseHandler::HandleGetServiceStatusSuccess(GetServiceStatusRequestJob* job, AZ::EntityId entityId)
      {
          
          EBUS_EVENT_ID(entityId, CloudGemLexNotificationBus, OnGetServiceStatusRequestSuccess, job->result);
          
      }
  
      void CloudGemLexResponseHandler::HandleGetServiceStatusError(GetServiceStatusRequestJob* job, AZ::EntityId entityId)
      {
          EBUS_EVENT_ID(entityId, CloudGemLexNotificationBus, OnGetServiceStatusRequestError, job->error);
      }
      
      void CloudGemLexResponseHandler::HandlePutAdminBotdescSuccess(PutAdminBotdescRequestJob* job, AZ::EntityId entityId)
      {
          
          EBUS_EVENT_ID(entityId, CloudGemLexNotificationBus, OnPutAdminBotdescRequestSuccess, job->result);
          
      }
  
      void CloudGemLexResponseHandler::HandlePutAdminBotdescError(PutAdminBotdescRequestJob* job, AZ::EntityId entityId)
      {
          EBUS_EVENT_ID(entityId, CloudGemLexNotificationBus, OnPutAdminBotdescRequestError, job->error);
      }
      
      void CloudGemLexResponseHandler::HandleGetAdminBotdescSuccess(GetAdminBotdescRequestJob* job, AZ::EntityId entityId)
      {
          
          EBUS_EVENT_ID(entityId, CloudGemLexNotificationBus, OnGetAdminBotdescRequestSuccess, job->result);
          
      }
  
      void CloudGemLexResponseHandler::HandleGetAdminBotdescError(GetAdminBotdescRequestJob* job, AZ::EntityId entityId)
      {
          EBUS_EVENT_ID(entityId, CloudGemLexNotificationBus, OnGetAdminBotdescRequestError, job->error);
      }
      
      void CloudGemLexResponseHandler::HandleDeleteAdminDeletebotSuccess(DeleteAdminDeletebotRequestJob* job, AZ::EntityId entityId)
      {
          
          EBUS_EVENT_ID(entityId, CloudGemLexNotificationBus, OnDeleteAdminDeletebotRequestSuccess, job->result);
          
      }
  
      void CloudGemLexResponseHandler::HandleDeleteAdminDeletebotError(DeleteAdminDeletebotRequestJob* job, AZ::EntityId entityId)
      {
          EBUS_EVENT_ID(entityId, CloudGemLexNotificationBus, OnDeleteAdminDeletebotRequestError, job->error);
      }
      
      void CloudGemLexResponseHandler::HandleGetAdminBotstatusSuccess(GetAdminBotstatusRequestJob* job, AZ::EntityId entityId)
      {
          
          EBUS_EVENT_ID(entityId, CloudGemLexNotificationBus, OnGetAdminBotstatusRequestSuccess, job->result);
          
      }
  
      void CloudGemLexResponseHandler::HandleGetAdminBotstatusError(GetAdminBotstatusRequestJob* job, AZ::EntityId entityId)
      {
          EBUS_EVENT_ID(entityId, CloudGemLexNotificationBus, OnGetAdminBotstatusRequestError, job->error);
      }
      
      void CloudGemLexResponseHandler::HandleGetAdminListbotsSuccess(GetAdminListbotsRequestJob* job, AZ::EntityId entityId)
      {
          
          EBUS_EVENT_ID(entityId, CloudGemLexNotificationBus, OnGetAdminListbotsRequestSuccess, job->result);
          
      }
  
      void CloudGemLexResponseHandler::HandleGetAdminListbotsError(GetAdminListbotsRequestJob* job, AZ::EntityId entityId)
      {
          EBUS_EVENT_ID(entityId, CloudGemLexNotificationBus, OnGetAdminListbotsRequestError, job->error);
      }
      
      void CloudGemLexResponseHandler::HandlePutAdminPublishbotSuccess(PutAdminPublishbotRequestJob* job, AZ::EntityId entityId)
      {
          
          EBUS_EVENT_ID(entityId, CloudGemLexNotificationBus, OnPutAdminPublishbotRequestSuccess, job->result);
          
      }
  
      void CloudGemLexResponseHandler::HandlePutAdminPublishbotError(PutAdminPublishbotRequestJob* job, AZ::EntityId entityId)
      {
          EBUS_EVENT_ID(entityId, CloudGemLexNotificationBus, OnPutAdminPublishbotRequestError, job->error);
      }
      
      void CloudGemLexResponseHandler::HandlePostServicePostaudioSuccess(PostServicePostaudioRequestJob* job, AZ::EntityId entityId)
      {
          
          EBUS_EVENT_ID(entityId, CloudGemLexNotificationBus, OnPostServicePostaudioRequestSuccess, job->result);
          
      }
  
      void CloudGemLexResponseHandler::HandlePostServicePostaudioError(PostServicePostaudioRequestJob* job, AZ::EntityId entityId)
      {
          EBUS_EVENT_ID(entityId, CloudGemLexNotificationBus, OnPostServicePostaudioRequestError, job->error);
      }
      
  
  
      // CloudGemLexClientComponent
      void CloudGemLexClientComponent::Init()
      {
          m_defaultResponseHandler = AZStd::make_shared<CloudGemLexResponseHandler>();
          CloudGemLex::ServiceAPI::Configure();
      }
  
      void CloudGemLexClientComponent::Activate()
      {
          CloudGemLexRequestBus::Handler::BusConnect(m_entity->GetId());
      }
  
      void CloudGemLexClientComponent::Deactivate()
      {
          CloudGemLexRequestBus::Handler::BusDisconnect();
      }
  
      
      
      void CloudGemLexClientComponent::PostServicePosttext(const PostTextRequest& post_text, CloudGemLexResponseHandler* responseHandler)
      
      {
          // Cache our entityId in case the entity goes away
          AZ::EntityId entityId;
          if (m_entity)
          {
              entityId = m_entity->GetId();
          }
  
          // Cache our default response handler in case this component goes away
          AZStd::shared_ptr < CloudGemLexResponseHandler > defaultResponseHandler = m_defaultResponseHandler;
  
          // Create job
          PostServicePosttextRequestJob* requestJob = PostServicePosttextRequestJob::Create(
              [responseHandler, defaultResponseHandler, entityId](PostServicePosttextRequestJob* successJob)
              {
                  // handle success
                  CloudGemLexResponseHandler* successHandler = responseHandler ? responseHandler : defaultResponseHandler.get();
                  if (successHandler)
                  {
                      successHandler->HandlePostServicePosttextSuccess(successJob, entityId);
                  }
              },
              [responseHandler, defaultResponseHandler, entityId](PostServicePosttextRequestJob* failedJob)
              {
                  // handle error
                  CloudGemLexResponseHandler* failureHandler = responseHandler ? responseHandler : defaultResponseHandler.get();
                  if (failureHandler)
                  {
                      failureHandler->HandlePostServicePosttextError(failedJob, entityId);
                  }
              }
          );
          
          requestJob->parameters.post_text = post_text;
          
          
          
          requestJob->Start();
      }
      
      
      void CloudGemLexClientComponent::GetServiceStatus(CloudGemLexResponseHandler* responseHandler)
      
      {
          // Cache our entityId in case the entity goes away
          AZ::EntityId entityId;
          if (m_entity)
          {
              entityId = m_entity->GetId();
          }
  
          // Cache our default response handler in case this component goes away
          AZStd::shared_ptr < CloudGemLexResponseHandler > defaultResponseHandler = m_defaultResponseHandler;
  
          // Create job
          GetServiceStatusRequestJob* requestJob = GetServiceStatusRequestJob::Create(
              [responseHandler, defaultResponseHandler, entityId](GetServiceStatusRequestJob* successJob)
              {
                  // handle success
                  CloudGemLexResponseHandler* successHandler = responseHandler ? responseHandler : defaultResponseHandler.get();
                  if (successHandler)
                  {
                      successHandler->HandleGetServiceStatusSuccess(successJob, entityId);
                  }
              },
              [responseHandler, defaultResponseHandler, entityId](GetServiceStatusRequestJob* failedJob)
              {
                  // handle error
                  CloudGemLexResponseHandler* failureHandler = responseHandler ? responseHandler : defaultResponseHandler.get();
                  if (failureHandler)
                  {
                      failureHandler->HandleGetServiceStatusError(failedJob, entityId);
                  }
              }
          );
          
          
          
          requestJob->Start();
      }
      
      
      void CloudGemLexClientComponent::PutAdminBotdesc(const PostBotDescRequest& bot_desc, CloudGemLexResponseHandler* responseHandler)
      
      {
          // Cache our entityId in case the entity goes away
          AZ::EntityId entityId;
          if (m_entity)
          {
              entityId = m_entity->GetId();
          }
  
          // Cache our default response handler in case this component goes away
          AZStd::shared_ptr < CloudGemLexResponseHandler > defaultResponseHandler = m_defaultResponseHandler;
  
          // Create job
          PutAdminBotdescRequestJob* requestJob = PutAdminBotdescRequestJob::Create(
              [responseHandler, defaultResponseHandler, entityId](PutAdminBotdescRequestJob* successJob)
              {
                  // handle success
                  CloudGemLexResponseHandler* successHandler = responseHandler ? responseHandler : defaultResponseHandler.get();
                  if (successHandler)
                  {
                      successHandler->HandlePutAdminBotdescSuccess(successJob, entityId);
                  }
              },
              [responseHandler, defaultResponseHandler, entityId](PutAdminBotdescRequestJob* failedJob)
              {
                  // handle error
                  CloudGemLexResponseHandler* failureHandler = responseHandler ? responseHandler : defaultResponseHandler.get();
                  if (failureHandler)
                  {
                      failureHandler->HandlePutAdminBotdescError(failedJob, entityId);
                  }
              }
          );
          
          requestJob->parameters.bot_desc = bot_desc;
          
          
          
          requestJob->Start();
      }
      
      
      void CloudGemLexClientComponent::GetAdminBotdesc(const AZStd::string& name, CloudGemLexResponseHandler* responseHandler)
      
      {
          // Cache our entityId in case the entity goes away
          AZ::EntityId entityId;
          if (m_entity)
          {
              entityId = m_entity->GetId();
          }
  
          // Cache our default response handler in case this component goes away
          AZStd::shared_ptr < CloudGemLexResponseHandler > defaultResponseHandler = m_defaultResponseHandler;
  
          // Create job
          GetAdminBotdescRequestJob* requestJob = GetAdminBotdescRequestJob::Create(
              [responseHandler, defaultResponseHandler, entityId](GetAdminBotdescRequestJob* successJob)
              {
                  // handle success
                  CloudGemLexResponseHandler* successHandler = responseHandler ? responseHandler : defaultResponseHandler.get();
                  if (successHandler)
                  {
                      successHandler->HandleGetAdminBotdescSuccess(successJob, entityId);
                  }
              },
              [responseHandler, defaultResponseHandler, entityId](GetAdminBotdescRequestJob* failedJob)
              {
                  // handle error
                  CloudGemLexResponseHandler* failureHandler = responseHandler ? responseHandler : defaultResponseHandler.get();
                  if (failureHandler)
                  {
                      failureHandler->HandleGetAdminBotdescError(failedJob, entityId);
                  }
              }
          );
          
          
          requestJob->parameters.name = name;
          
          
          requestJob->Start();
      }
      
      
      void CloudGemLexClientComponent::DeleteAdminDeletebot(const AZStd::string& name, CloudGemLexResponseHandler* responseHandler)
      
      {
          // Cache our entityId in case the entity goes away
          AZ::EntityId entityId;
          if (m_entity)
          {
              entityId = m_entity->GetId();
          }
  
          // Cache our default response handler in case this component goes away
          AZStd::shared_ptr < CloudGemLexResponseHandler > defaultResponseHandler = m_defaultResponseHandler;
  
          // Create job
          DeleteAdminDeletebotRequestJob* requestJob = DeleteAdminDeletebotRequestJob::Create(
              [responseHandler, defaultResponseHandler, entityId](DeleteAdminDeletebotRequestJob* successJob)
              {
                  // handle success
                  CloudGemLexResponseHandler* successHandler = responseHandler ? responseHandler : defaultResponseHandler.get();
                  if (successHandler)
                  {
                      successHandler->HandleDeleteAdminDeletebotSuccess(successJob, entityId);
                  }
              },
              [responseHandler, defaultResponseHandler, entityId](DeleteAdminDeletebotRequestJob* failedJob)
              {
                  // handle error
                  CloudGemLexResponseHandler* failureHandler = responseHandler ? responseHandler : defaultResponseHandler.get();
                  if (failureHandler)
                  {
                      failureHandler->HandleDeleteAdminDeletebotError(failedJob, entityId);
                  }
              }
          );
          
          
          requestJob->parameters.name = name;
          
          
          requestJob->Start();
      }
      
      
      void CloudGemLexClientComponent::GetAdminBotstatus(const AZStd::string& name, CloudGemLexResponseHandler* responseHandler)
      
      {
          // Cache our entityId in case the entity goes away
          AZ::EntityId entityId;
          if (m_entity)
          {
              entityId = m_entity->GetId();
          }
  
          // Cache our default response handler in case this component goes away
          AZStd::shared_ptr < CloudGemLexResponseHandler > defaultResponseHandler = m_defaultResponseHandler;
  
          // Create job
          GetAdminBotstatusRequestJob* requestJob = GetAdminBotstatusRequestJob::Create(
              [responseHandler, defaultResponseHandler, entityId](GetAdminBotstatusRequestJob* successJob)
              {
                  // handle success
                  CloudGemLexResponseHandler* successHandler = responseHandler ? responseHandler : defaultResponseHandler.get();
                  if (successHandler)
                  {
                      successHandler->HandleGetAdminBotstatusSuccess(successJob, entityId);
                  }
              },
              [responseHandler, defaultResponseHandler, entityId](GetAdminBotstatusRequestJob* failedJob)
              {
                  // handle error
                  CloudGemLexResponseHandler* failureHandler = responseHandler ? responseHandler : defaultResponseHandler.get();
                  if (failureHandler)
                  {
                      failureHandler->HandleGetAdminBotstatusError(failedJob, entityId);
                  }
              }
          );
          
          
          requestJob->parameters.name = name;
          
          
          requestJob->Start();
      }
      
      
      void CloudGemLexClientComponent::GetAdminListbots(const AZStd::string& next_token, CloudGemLexResponseHandler* responseHandler)
      
      {
          // Cache our entityId in case the entity goes away
          AZ::EntityId entityId;
          if (m_entity)
          {
              entityId = m_entity->GetId();
          }
  
          // Cache our default response handler in case this component goes away
          AZStd::shared_ptr < CloudGemLexResponseHandler > defaultResponseHandler = m_defaultResponseHandler;
  
          // Create job
          GetAdminListbotsRequestJob* requestJob = GetAdminListbotsRequestJob::Create(
              [responseHandler, defaultResponseHandler, entityId](GetAdminListbotsRequestJob* successJob)
              {
                  // handle success
                  CloudGemLexResponseHandler* successHandler = responseHandler ? responseHandler : defaultResponseHandler.get();
                  if (successHandler)
                  {
                      successHandler->HandleGetAdminListbotsSuccess(successJob, entityId);
                  }
              },
              [responseHandler, defaultResponseHandler, entityId](GetAdminListbotsRequestJob* failedJob)
              {
                  // handle error
                  CloudGemLexResponseHandler* failureHandler = responseHandler ? responseHandler : defaultResponseHandler.get();
                  if (failureHandler)
                  {
                      failureHandler->HandleGetAdminListbotsError(failedJob, entityId);
                  }
              }
          );
          
          
          requestJob->parameters.next_token = next_token;
          
          
          requestJob->Start();
      }
      
      
      void CloudGemLexClientComponent::PutAdminPublishbot(const AZStd::string& name, const AZStd::string& version, CloudGemLexResponseHandler* responseHandler)
      
      {
          // Cache our entityId in case the entity goes away
          AZ::EntityId entityId;
          if (m_entity)
          {
              entityId = m_entity->GetId();
          }
  
          // Cache our default response handler in case this component goes away
          AZStd::shared_ptr < CloudGemLexResponseHandler > defaultResponseHandler = m_defaultResponseHandler;
  
          // Create job
          PutAdminPublishbotRequestJob* requestJob = PutAdminPublishbotRequestJob::Create(
              [responseHandler, defaultResponseHandler, entityId](PutAdminPublishbotRequestJob* successJob)
              {
                  // handle success
                  CloudGemLexResponseHandler* successHandler = responseHandler ? responseHandler : defaultResponseHandler.get();
                  if (successHandler)
                  {
                      successHandler->HandlePutAdminPublishbotSuccess(successJob, entityId);
                  }
              },
              [responseHandler, defaultResponseHandler, entityId](PutAdminPublishbotRequestJob* failedJob)
              {
                  // handle error
                  CloudGemLexResponseHandler* failureHandler = responseHandler ? responseHandler : defaultResponseHandler.get();
                  if (failureHandler)
                  {
                      failureHandler->HandlePutAdminPublishbotError(failedJob, entityId);
                  }
              }
          );
          
          
          requestJob->parameters.name = name;
          
          requestJob->parameters.version = version;
          
          
          requestJob->Start();
      }
      
      
      void CloudGemLexClientComponent::PostServicePostaudio(const PostAudioRequest& post_audio, CloudGemLexResponseHandler* responseHandler)
      
      {
          // Cache our entityId in case the entity goes away
          AZ::EntityId entityId;
          if (m_entity)
          {
              entityId = m_entity->GetId();
          }
  
          // Cache our default response handler in case this component goes away
          AZStd::shared_ptr < CloudGemLexResponseHandler > defaultResponseHandler = m_defaultResponseHandler;
  
          // Create job
          PostServicePostaudioRequestJob* requestJob = PostServicePostaudioRequestJob::Create(
              [responseHandler, defaultResponseHandler, entityId](PostServicePostaudioRequestJob* successJob)
              {
                  // handle success
                  CloudGemLexResponseHandler* successHandler = responseHandler ? responseHandler : defaultResponseHandler.get();
                  if (successHandler)
                  {
                      successHandler->HandlePostServicePostaudioSuccess(successJob, entityId);
                  }
              },
              [responseHandler, defaultResponseHandler, entityId](PostServicePostaudioRequestJob* failedJob)
              {
                  // handle error
                  CloudGemLexResponseHandler* failureHandler = responseHandler ? responseHandler : defaultResponseHandler.get();
                  if (failureHandler)
                  {
                      failureHandler->HandlePostServicePostaudioError(failedJob, entityId);
                  }
              }
          );
          
          requestJob->parameters.post_audio = post_audio;
          
          
          
          requestJob->Start();
      }
      
  
      
      
      bool PostTextRequest::OnJsonKey(const char* key, CloudGemFramework::JsonReader& reader)
      {
          
          if (strcmp(key, "text") == 0) return reader.Accept(text);
          
          if (strcmp(key, "session_attributes") == 0) return reader.Accept(session_attributes);
          
          if (strcmp(key, "bot_alias") == 0) return reader.Accept(bot_alias);
          
          if (strcmp(key, "user_id") == 0) return reader.Accept(user_id);
          
          if (strcmp(key, "name") == 0) return reader.Accept(name);
          
          return reader.Ignore();
      }
  
      void PostTextRequest::Reflect(AZ::ReflectContext* reflection)
      {
          AZ::SerializeContext* serializeContext = azrtti_cast<AZ::SerializeContext*>(reflection);
  
          if (serializeContext)
          {
              serializeContext->Class<PostTextRequest>()
                  ->Version(1);
          }
  
          AZ::BehaviorContext* behaviorContext = azrtti_cast<AZ::BehaviorContext*>(reflection);
          if (behaviorContext)
          {
              behaviorContext->Class<PostTextRequest>("CloudGemLex_PostTextRequest")
                  ->Attribute(AZ::Script::Attributes::Storage, AZ::Script::Attributes::StorageType::Value)
              
                  ->Property("text", BehaviorValueProperty(&PostTextRequest::text))
              
                  ->Property("session_attributes", BehaviorValueProperty(&PostTextRequest::session_attributes))
              
                  ->Property("bot_alias", BehaviorValueProperty(&PostTextRequest::bot_alias))
              
                  ->Property("user_id", BehaviorValueProperty(&PostTextRequest::user_id))
              
                  ->Property("name", BehaviorValueProperty(&PostTextRequest::name))
              
              ;
          }
      }
      
      
      
      bool PostAudioResponse::OnJsonKey(const char* key, CloudGemFramework::JsonReader& reader)
      {
          
          if (strcmp(key, "slot_to_elicit") == 0) return reader.Accept(slot_to_elicit);
          
          if (strcmp(key, "session_attributes") == 0) return reader.Accept(session_attributes);
          
          if (strcmp(key, "intent") == 0) return reader.Accept(intent);
          
          if (strcmp(key, "input_transcript") == 0) return reader.Accept(input_transcript);
          
          if (strcmp(key, "dialog_state") == 0) return reader.Accept(dialog_state);
          
          if (strcmp(key, "slots") == 0) return reader.Accept(slots);
          
          if (strcmp(key, "message") == 0) return reader.Accept(message);
          
          return reader.Ignore();
      }
  
      void PostAudioResponse::Reflect(AZ::ReflectContext* reflection)
      {
          AZ::SerializeContext* serializeContext = azrtti_cast<AZ::SerializeContext*>(reflection);
  
          if (serializeContext)
          {
              serializeContext->Class<PostAudioResponse>()
                  ->Version(1);
          }
  
          AZ::BehaviorContext* behaviorContext = azrtti_cast<AZ::BehaviorContext*>(reflection);
          if (behaviorContext)
          {
              behaviorContext->Class<PostAudioResponse>("CloudGemLex_PostAudioResponse")
                  ->Attribute(AZ::Script::Attributes::Storage, AZ::Script::Attributes::StorageType::Value)
              
                  ->Property("slot_to_elicit", BehaviorValueProperty(&PostAudioResponse::slot_to_elicit))
              
                  ->Property("session_attributes", BehaviorValueProperty(&PostAudioResponse::session_attributes))
              
                  ->Property("intent", BehaviorValueProperty(&PostAudioResponse::intent))
              
                  ->Property("input_transcript", BehaviorValueProperty(&PostAudioResponse::input_transcript))
              
                  ->Property("dialog_state", BehaviorValueProperty(&PostAudioResponse::dialog_state))
              
                  ->Property("slots", BehaviorValueProperty(&PostAudioResponse::slots))
              
                  ->Property("message", BehaviorValueProperty(&PostAudioResponse::message))
              
              ;
          }
      }
      
      
      
      bool ServiceStatus::OnJsonKey(const char* key, CloudGemFramework::JsonReader& reader)
      {
          
          if (strcmp(key, "status") == 0) return reader.Accept(status);
          
          return reader.Ignore();
      }
  
      void ServiceStatus::Reflect(AZ::ReflectContext* reflection)
      {
          AZ::SerializeContext* serializeContext = azrtti_cast<AZ::SerializeContext*>(reflection);
  
          if (serializeContext)
          {
              serializeContext->Class<ServiceStatus>()
                  ->Version(1);
          }
  
          AZ::BehaviorContext* behaviorContext = azrtti_cast<AZ::BehaviorContext*>(reflection);
          if (behaviorContext)
          {
              behaviorContext->Class<ServiceStatus>("CloudGemLex_ServiceStatus")
                  ->Attribute(AZ::Script::Attributes::Storage, AZ::Script::Attributes::StorageType::Value)
              
                  ->Property("status", BehaviorValueProperty(&ServiceStatus::status))
              
              ;
          }
      }
      
      
      
      bool PostBotDescRequestPropertyDesc_file::OnJsonKey(const char* key, CloudGemFramework::JsonReader& reader)
      {
          
          return reader.Ignore();
      }
  
      void PostBotDescRequestPropertyDesc_file::Reflect(AZ::ReflectContext* reflection)
      {
          AZ::SerializeContext* serializeContext = azrtti_cast<AZ::SerializeContext*>(reflection);
  
          if (serializeContext)
          {
              serializeContext->Class<PostBotDescRequestPropertyDesc_file>()
                  ->Version(1);
          }
  
          AZ::BehaviorContext* behaviorContext = azrtti_cast<AZ::BehaviorContext*>(reflection);
          if (behaviorContext)
          {
              behaviorContext->Class<PostBotDescRequestPropertyDesc_file>("CloudGemLex_PostBotDescRequestPropertyDesc_file")
                  ->Attribute(AZ::Script::Attributes::Storage, AZ::Script::Attributes::StorageType::Value)
              
              ;
          }
      }
      
      
      
      bool PostBotDescRequest::OnJsonKey(const char* key, CloudGemFramework::JsonReader& reader)
      {
          
          if (strcmp(key, "desc_file") == 0) return reader.Accept(desc_file);
          
          return reader.Ignore();
      }
  
      void PostBotDescRequest::Reflect(AZ::ReflectContext* reflection)
      {
          AZ::SerializeContext* serializeContext = azrtti_cast<AZ::SerializeContext*>(reflection);
  
          if (serializeContext)
          {
              serializeContext->Class<PostBotDescRequest>()
                  ->Version(1);
          }
  
          AZ::BehaviorContext* behaviorContext = azrtti_cast<AZ::BehaviorContext*>(reflection);
          if (behaviorContext)
          {
              behaviorContext->Class<PostBotDescRequest>("CloudGemLex_PostBotDescRequest")
                  ->Attribute(AZ::Script::Attributes::Storage, AZ::Script::Attributes::StorageType::Value)
              
                  ->Property("desc_file", BehaviorValueProperty(&PostBotDescRequest::desc_file))
              
              ;
          }
      }
      
      
      
      bool BotStatusResponse::OnJsonKey(const char* key, CloudGemFramework::JsonReader& reader)
      {
          
          if (strcmp(key, "status") == 0) return reader.Accept(status);
          
          return reader.Ignore();
      }
  
      void BotStatusResponse::Reflect(AZ::ReflectContext* reflection)
      {
          AZ::SerializeContext* serializeContext = azrtti_cast<AZ::SerializeContext*>(reflection);
  
          if (serializeContext)
          {
              serializeContext->Class<BotStatusResponse>()
                  ->Version(1);
          }
  
          AZ::BehaviorContext* behaviorContext = azrtti_cast<AZ::BehaviorContext*>(reflection);
          if (behaviorContext)
          {
              behaviorContext->Class<BotStatusResponse>("CloudGemLex_BotStatusResponse")
                  ->Attribute(AZ::Script::Attributes::Storage, AZ::Script::Attributes::StorageType::Value)
              
                  ->Property("status", BehaviorValueProperty(&BotStatusResponse::status))
              
              ;
          }
      }
      
      
      
      bool GetBotDescResponsePropertyDesc_file::OnJsonKey(const char* key, CloudGemFramework::JsonReader& reader)
      {
          
          return reader.Ignore();
      }
  
      void GetBotDescResponsePropertyDesc_file::Reflect(AZ::ReflectContext* reflection)
      {
          AZ::SerializeContext* serializeContext = azrtti_cast<AZ::SerializeContext*>(reflection);
  
          if (serializeContext)
          {
              serializeContext->Class<GetBotDescResponsePropertyDesc_file>()
                  ->Version(1);
          }
  
          AZ::BehaviorContext* behaviorContext = azrtti_cast<AZ::BehaviorContext*>(reflection);
          if (behaviorContext)
          {
              behaviorContext->Class<GetBotDescResponsePropertyDesc_file>("CloudGemLex_GetBotDescResponsePropertyDesc_file")
                  ->Attribute(AZ::Script::Attributes::Storage, AZ::Script::Attributes::StorageType::Value)
              
              ;
          }
      }
      
      
      
      bool GetBotDescResponse::OnJsonKey(const char* key, CloudGemFramework::JsonReader& reader)
      {
          
          if (strcmp(key, "desc_file") == 0) return reader.Accept(desc_file);
          
          return reader.Ignore();
      }
  
      void GetBotDescResponse::Reflect(AZ::ReflectContext* reflection)
      {
          AZ::SerializeContext* serializeContext = azrtti_cast<AZ::SerializeContext*>(reflection);
  
          if (serializeContext)
          {
              serializeContext->Class<GetBotDescResponse>()
                  ->Version(1);
          }
  
          AZ::BehaviorContext* behaviorContext = azrtti_cast<AZ::BehaviorContext*>(reflection);
          if (behaviorContext)
          {
              behaviorContext->Class<GetBotDescResponse>("CloudGemLex_GetBotDescResponse")
                  ->Attribute(AZ::Script::Attributes::Storage, AZ::Script::Attributes::StorageType::Value)
              
                  ->Property("desc_file", BehaviorValueProperty(&GetBotDescResponse::desc_file))
              
              ;
          }
      }
      
      
      
      bool ListBotsEntry::OnJsonKey(const char* key, CloudGemFramework::JsonReader& reader)
      {
          
          if (strcmp(key, "status") == 0) return reader.Accept(status);
          
          if (strcmp(key, "version") == 0) return reader.Accept(version);
          
          if (strcmp(key, "updated") == 0) return reader.Accept(updated);
          
          if (strcmp(key, "created") == 0) return reader.Accept(created);
          
          if (strcmp(key, "name") == 0) return reader.Accept(name);
          
          return reader.Ignore();
      }
  
      void ListBotsEntry::Reflect(AZ::ReflectContext* reflection)
      {
          AZ::SerializeContext* serializeContext = azrtti_cast<AZ::SerializeContext*>(reflection);
  
          if (serializeContext)
          {
              serializeContext->Class<ListBotsEntry>()
                  ->Version(1);
          }
  
          AZ::BehaviorContext* behaviorContext = azrtti_cast<AZ::BehaviorContext*>(reflection);
          if (behaviorContext)
          {
              behaviorContext->Class<ListBotsEntry>("CloudGemLex_ListBotsEntry")
                  ->Attribute(AZ::Script::Attributes::Storage, AZ::Script::Attributes::StorageType::Value)
              
                  ->Property("status", BehaviorValueProperty(&ListBotsEntry::status))
              
                  ->Property("version", BehaviorValueProperty(&ListBotsEntry::version))
              
                  ->Property("updated", BehaviorValueProperty(&ListBotsEntry::updated))
              
                  ->Property("created", BehaviorValueProperty(&ListBotsEntry::created))
              
                  ->Property("name", BehaviorValueProperty(&ListBotsEntry::name))
              
              ;
          }
      }
      
      
      
      
      
      bool GetListBotsResponse::OnJsonKey(const char* key, CloudGemFramework::JsonReader& reader)
      {
          
          if (strcmp(key, "bots") == 0) return reader.Accept(bots);
          
          if (strcmp(key, "nextToken") == 0) return reader.Accept(nextToken);
          
          return reader.Ignore();
      }
  
      void GetListBotsResponse::Reflect(AZ::ReflectContext* reflection)
      {
          AZ::SerializeContext* serializeContext = azrtti_cast<AZ::SerializeContext*>(reflection);
  
          if (serializeContext)
          {
              serializeContext->Class<GetListBotsResponse>()
                  ->Version(1);
          }
  
          AZ::BehaviorContext* behaviorContext = azrtti_cast<AZ::BehaviorContext*>(reflection);
          if (behaviorContext)
          {
              behaviorContext->Class<GetListBotsResponse>("CloudGemLex_GetListBotsResponse")
                  ->Attribute(AZ::Script::Attributes::Storage, AZ::Script::Attributes::StorageType::Value)
              
                  ->Property("bots", BehaviorValueProperty(&GetListBotsResponse::bots))
              
                  ->Property("nextToken", BehaviorValueProperty(&GetListBotsResponse::nextToken))
              
              ;
          }
      }
      
      
      
      bool PostAudioRequest::OnJsonKey(const char* key, CloudGemFramework::JsonReader& reader)
      {
          
          if (strcmp(key, "audio") == 0) return reader.Accept(audio);
          
          if (strcmp(key, "session_attributes") == 0) return reader.Accept(session_attributes);
          
          if (strcmp(key, "bot_alias") == 0) return reader.Accept(bot_alias);
          
          if (strcmp(key, "user_id") == 0) return reader.Accept(user_id);
          
          if (strcmp(key, "name") == 0) return reader.Accept(name);
          
          return reader.Ignore();
      }
  
      void PostAudioRequest::Reflect(AZ::ReflectContext* reflection)
      {
          AZ::SerializeContext* serializeContext = azrtti_cast<AZ::SerializeContext*>(reflection);
  
          if (serializeContext)
          {
              serializeContext->Class<PostAudioRequest>()
                  ->Version(1);
          }
  
          AZ::BehaviorContext* behaviorContext = azrtti_cast<AZ::BehaviorContext*>(reflection);
          if (behaviorContext)
          {
              behaviorContext->Class<PostAudioRequest>("CloudGemLex_PostAudioRequest")
                  ->Attribute(AZ::Script::Attributes::Storage, AZ::Script::Attributes::StorageType::Value)
              
                  ->Property("audio", BehaviorValueProperty(&PostAudioRequest::audio))
              
                  ->Property("session_attributes", BehaviorValueProperty(&PostAudioRequest::session_attributes))
              
                  ->Property("bot_alias", BehaviorValueProperty(&PostAudioRequest::bot_alias))
              
                  ->Property("user_id", BehaviorValueProperty(&PostAudioRequest::user_id))
              
                  ->Property("name", BehaviorValueProperty(&PostAudioRequest::name))
              
              ;
          }
      }
      
      
  }
  }