/* * 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 ///////////////////////////////////////////////////////// ///////////////////////////////////////////////////////// #pragma once #include #include #include #include #include #include #include #include #include #include #include #if defined (PLATFORM_SUPPORTS_AWS_NATIVE_SDK) // The AWS Native SDK AWSAllocator triggers a warning due to accessing members of std::allocator directly. // AWSAllocator.h(70): warning C4996: 'std::allocator::pointer': warning STL4010: Various members of std::allocator are deprecated in C++17. // Use std::allocator_traits instead of accessing these members directly. // You can define _SILENCE_CXX17_OLD_ALLOCATOR_MEMBERS_DEPRECATION_WARNING or _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS to acknowledge that you have received this warning. AZ_PUSH_DISABLE_WARNING(4251 4996, "-Wunknown-warning-option") #include #include AZ_POP_DISABLE_WARNING #endif // (PLATFORM_SUPPORTS_AWS_NATIVE_SDK) #include #include "CloudGemMessageOfTheDay_precompiled.h" namespace CloudGemMessageOfTheDay { namespace ServiceAPI { extern const char* LmbrAWS_CodeGen_MessageList_UUID; extern const char* LmbrAWS_CodeGen_PutAdminMessagesReturnType_UUID; extern const char* LmbrAWS_CodeGen_Component_UUID; extern const char* LmbrAWS_CodeGen_ResponseHandler_UUID; extern const char* LmbrAWS_CodeGen_NotificationBus1_UUID; extern const char* LmbrAWS_CodeGen_RequestBus1_UUID; extern const char* LmbrAWS_CodeGen_DeleteAdminMessagesReturnType_UUID; extern const char* LmbrAWS_CodeGen_DetailedMessageList_UUID; extern const char* LmbrAWS_CodeGen_ServiceStatus_UUID; extern const char* LmbrAWS_CodeGen_DetailedMessageData_UUID; extern const char* LmbrAWS_CodeGen_MessageData_UUID; // redefs bool WriteJson(CloudGemFramework::JsonWriter& writer, const int& item); bool WriteJson(CloudGemFramework::JsonWriter& writer, const AZStd::string& item); bool WriteJson(CloudGemFramework::JsonWriter& writer, const double& item); struct MessageData { AZ_TYPE_INFO(MessageData, LmbrAWS_CodeGen_MessageData_UUID) AZ_CLASS_ALLOCATOR(MessageData, AZ::SystemAllocator, 0) int priority; AZStd::string message; AZStd::string endTime; AZStd::string startTime; bool OnJsonKey(const char* key, CloudGemFramework::JsonReader& reader); static void Reflect(AZ::ReflectContext* reflection); }; bool WriteJson(CloudGemFramework::JsonWriter& writer, const MessageData& item); struct PutAdminMessagesReturnType { AZ_TYPE_INFO(PutAdminMessagesReturnType, LmbrAWS_CodeGen_PutAdminMessagesReturnType_UUID) AZ_CLASS_ALLOCATOR(PutAdminMessagesReturnType, AZ::SystemAllocator, 0) bool OnJsonKey(const char* key, CloudGemFramework::JsonReader& reader); static void Reflect(AZ::ReflectContext* reflection); }; bool WriteJson(CloudGemFramework::JsonWriter& writer, const PutAdminMessagesReturnType& item); struct DeleteAdminMessagesReturnType { AZ_TYPE_INFO(DeleteAdminMessagesReturnType, LmbrAWS_CodeGen_DeleteAdminMessagesReturnType_UUID) AZ_CLASS_ALLOCATOR(DeleteAdminMessagesReturnType, AZ::SystemAllocator, 0) bool OnJsonKey(const char* key, CloudGemFramework::JsonReader& reader); static void Reflect(AZ::ReflectContext* reflection); }; bool WriteJson(CloudGemFramework::JsonWriter& writer, const DeleteAdminMessagesReturnType& item); struct DetailedMessageData { AZ_TYPE_INFO(DetailedMessageData, LmbrAWS_CodeGen_DetailedMessageData_UUID) AZ_CLASS_ALLOCATOR(DetailedMessageData, AZ::SystemAllocator, 0) int priority; AZStd::string message; AZStd::string endTime; AZStd::string UniqueMsgID; AZStd::string startTime; bool OnJsonKey(const char* key, CloudGemFramework::JsonReader& reader); static void Reflect(AZ::ReflectContext* reflection); }; bool WriteJson(CloudGemFramework::JsonWriter& writer, const DetailedMessageData& item); using DetailedMessageListPropertyList = AZStd::vector; bool WriteJson(CloudGemFramework::JsonWriter& writer, const DetailedMessageListPropertyList& list); struct DetailedMessageList { AZ_TYPE_INFO(DetailedMessageList, LmbrAWS_CodeGen_DetailedMessageList_UUID) AZ_CLASS_ALLOCATOR(DetailedMessageList, AZ::SystemAllocator, 0) DetailedMessageListPropertyList list; bool OnJsonKey(const char* key, CloudGemFramework::JsonReader& reader); static void Reflect(AZ::ReflectContext* reflection); }; bool WriteJson(CloudGemFramework::JsonWriter& writer, const DetailedMessageList& item); struct ServiceStatus { AZ_TYPE_INFO(ServiceStatus, LmbrAWS_CodeGen_ServiceStatus_UUID) AZ_CLASS_ALLOCATOR(ServiceStatus, AZ::SystemAllocator, 0) AZStd::string status; bool OnJsonKey(const char* key, CloudGemFramework::JsonReader& reader); static void Reflect(AZ::ReflectContext* reflection); }; bool WriteJson(CloudGemFramework::JsonWriter& writer, const ServiceStatus& item); using MessageListPropertyList = AZStd::vector; bool WriteJson(CloudGemFramework::JsonWriter& writer, const MessageListPropertyList& list); struct MessageList { AZ_TYPE_INFO(MessageList, LmbrAWS_CodeGen_MessageList_UUID) AZ_CLASS_ALLOCATOR(MessageList, AZ::SystemAllocator, 0) MessageListPropertyList list; bool OnJsonKey(const char* key, CloudGemFramework::JsonReader& reader); static void Reflect(AZ::ReflectContext* reflection); }; bool WriteJson(CloudGemFramework::JsonWriter& writer, const MessageList& item); // Service RequestJobs CLOUD_GEM_SERVICE(CloudGemMessageOfTheDay); class PutAdminMessagesRequest : public CloudGemFramework::ServiceRequest { public: SERVICE_REQUEST(CloudGemMessageOfTheDay, HttpMethod::HTTP_PUT, "/admin/messages/{msg_id}"); struct Parameters { AZStd::string msg_id; MessageData msg; bool BuildRequest(CloudGemFramework::RequestBuilder& request); bool WriteJson(CloudGemFramework::JsonWriter& writer) const; }; PutAdminMessagesReturnType result; Parameters parameters; }; using PutAdminMessagesRequestJob = CloudGemFramework::ServiceRequestJob; class DeleteAdminMessagesRequest : public CloudGemFramework::ServiceRequest { public: SERVICE_REQUEST(CloudGemMessageOfTheDay, HttpMethod::HTTP_DELETE, "/admin/messages/{msg_id}"); struct Parameters { AZStd::string msg_id; bool BuildRequest(CloudGemFramework::RequestBuilder& request); bool WriteJson(CloudGemFramework::JsonWriter& writer) const; }; DeleteAdminMessagesReturnType result; Parameters parameters; }; using DeleteAdminMessagesRequestJob = CloudGemFramework::ServiceRequestJob; class PostAdminMessagesRequest : public CloudGemFramework::ServiceRequest { public: SERVICE_REQUEST(CloudGemMessageOfTheDay, HttpMethod::HTTP_POST, "/admin/messages"); struct Parameters { MessageData msg; bool BuildRequest(CloudGemFramework::RequestBuilder& request); bool WriteJson(CloudGemFramework::JsonWriter& writer) const; }; DetailedMessageData result; Parameters parameters; }; using PostAdminMessagesRequestJob = CloudGemFramework::ServiceRequestJob; class GetAdminMessagesRequest : public CloudGemFramework::ServiceRequest { public: SERVICE_REQUEST(CloudGemMessageOfTheDay, HttpMethod::HTTP_GET, "/admin/messages"); struct Parameters { int index; int count; AZStd::string filter; bool BuildRequest(CloudGemFramework::RequestBuilder& request); bool WriteJson(CloudGemFramework::JsonWriter& writer) const; }; DetailedMessageList result; Parameters parameters; }; using GetAdminMessagesRequestJob = CloudGemFramework::ServiceRequestJob; class get_service_statusRequest : public CloudGemFramework::ServiceRequest { public: SERVICE_REQUEST(CloudGemMessageOfTheDay, HttpMethod::HTTP_GET, "/service/status"); struct Parameters { bool BuildRequest(CloudGemFramework::RequestBuilder& request); bool WriteJson(CloudGemFramework::JsonWriter& writer) const; }; ServiceStatus result; Parameters parameters; }; using get_service_statusRequestJob = CloudGemFramework::ServiceRequestJob; class GetPlayerMessagesRequest : public CloudGemFramework::ServiceRequest { public: SERVICE_REQUEST(CloudGemMessageOfTheDay, HttpMethod::HTTP_GET, "/player/messages"); struct Parameters { AZStd::string time; AZStd::string lang; bool BuildRequest(CloudGemFramework::RequestBuilder& request); bool WriteJson(CloudGemFramework::JsonWriter& writer) const; }; MessageList result; Parameters parameters; }; using GetPlayerMessagesRequestJob = CloudGemFramework::ServiceRequestJob; // Notification bus for this component class CloudGemMessageOfTheDayNotifications : public AZ::ComponentBus { public: /** * Sent when the request is a success * * Params: * jsonOutput: The output receieved from the lambda call * request: The AWS Lambda request object */ virtual void OnPutAdminMessagesRequestSuccess(const PutAdminMessagesReturnType response); /** * Sent when the request fails * * Params: * error: The output receieved from the lambda call, * could be function error or an issue with the request * request: The AWS Lambda request object */ virtual void OnPutAdminMessagesRequestError(const CloudGemFramework::Error error); /** * Sent when the request is a success * * Params: * jsonOutput: The output receieved from the lambda call * request: The AWS Lambda request object */ virtual void OnDeleteAdminMessagesRequestSuccess(const DeleteAdminMessagesReturnType response); /** * Sent when the request fails * * Params: * error: The output receieved from the lambda call, * could be function error or an issue with the request * request: The AWS Lambda request object */ virtual void OnDeleteAdminMessagesRequestError(const CloudGemFramework::Error error); /** * Sent when the request is a success * * Params: * jsonOutput: The output receieved from the lambda call * request: The AWS Lambda request object */ virtual void OnPostAdminMessagesRequestSuccess(const DetailedMessageData response); /** * Sent when the request fails * * Params: * error: The output receieved from the lambda call, * could be function error or an issue with the request * request: The AWS Lambda request object */ virtual void OnPostAdminMessagesRequestError(const CloudGemFramework::Error error); /** * Sent when the request is a success * * Params: * jsonOutput: The output receieved from the lambda call * request: The AWS Lambda request object */ virtual void OnGetAdminMessagesRequestSuccess(const DetailedMessageList response); /** * Sent when the request fails * * Params: * error: The output receieved from the lambda call, * could be function error or an issue with the request * request: The AWS Lambda request object */ virtual void OnGetAdminMessagesRequestError(const CloudGemFramework::Error error); /** * Sent when the request is a success * * Params: * jsonOutput: The output receieved from the lambda call * request: The AWS Lambda request object */ virtual void Onget_service_statusRequestSuccess(const ServiceStatus response); /** * Sent when the request fails * * Params: * error: The output receieved from the lambda call, * could be function error or an issue with the request * request: The AWS Lambda request object */ virtual void Onget_service_statusRequestError(const CloudGemFramework::Error error); /** * Sent when the request is a success * * Params: * jsonOutput: The output receieved from the lambda call * request: The AWS Lambda request object */ virtual void OnGetPlayerMessagesRequestSuccess(const MessageList response); /** * Sent when the request fails * * Params: * error: The output receieved from the lambda call, * could be function error or an issue with the request * request: The AWS Lambda request object */ virtual void OnGetPlayerMessagesRequestError(const CloudGemFramework::Error error); }; using CloudGemMessageOfTheDayNotificationBus = AZ::EBus; class BehaviorCloudGemMessageOfTheDayNotificationBusHandler : public CloudGemMessageOfTheDayNotificationBus::Handler, public AZ::BehaviorEBusHandler { public: AZ_EBUS_BEHAVIOR_BINDER(BehaviorCloudGemMessageOfTheDayNotificationBusHandler, LmbrAWS_CodeGen_NotificationBus1_UUID, AZ::SystemAllocator , OnPutAdminMessagesRequestSuccess , OnPutAdminMessagesRequestError , OnDeleteAdminMessagesRequestSuccess , OnDeleteAdminMessagesRequestError , OnPostAdminMessagesRequestSuccess , OnPostAdminMessagesRequestError , OnGetAdminMessagesRequestSuccess , OnGetAdminMessagesRequestError , Onget_service_statusRequestSuccess , Onget_service_statusRequestError , OnGetPlayerMessagesRequestSuccess , OnGetPlayerMessagesRequestError ); void OnPutAdminMessagesRequestSuccess(const PutAdminMessagesReturnType response) override; void OnPutAdminMessagesRequestError(const CloudGemFramework::Error error) override; void OnDeleteAdminMessagesRequestSuccess(const DeleteAdminMessagesReturnType response) override; void OnDeleteAdminMessagesRequestError(const CloudGemFramework::Error error) override; void OnPostAdminMessagesRequestSuccess(const DetailedMessageData response) override; void OnPostAdminMessagesRequestError(const CloudGemFramework::Error error) override; void OnGetAdminMessagesRequestSuccess(const DetailedMessageList response) override; void OnGetAdminMessagesRequestError(const CloudGemFramework::Error error) override; void Onget_service_statusRequestSuccess(const ServiceStatus response) override; void Onget_service_statusRequestError(const CloudGemFramework::Error error) override; void OnGetPlayerMessagesRequestSuccess(const MessageList response) override; void OnGetPlayerMessagesRequestError(const CloudGemFramework::Error error) override; }; class CloudGemMessageOfTheDayResponseHandler; // Request bus for this component class CloudGemMessageOfTheDayRequests : public AZ::ComponentBus { public: virtual ~CloudGemMessageOfTheDayRequests() {} virtual void PutAdminMessages(const AZStd::string& msg_id, const MessageData& msg, CloudGemMessageOfTheDayResponseHandler* responseHandler); virtual void DeleteAdminMessages(const AZStd::string& msg_id, CloudGemMessageOfTheDayResponseHandler* responseHandler); virtual void PostAdminMessages(const MessageData& msg, CloudGemMessageOfTheDayResponseHandler* responseHandler); virtual void GetAdminMessages(const int& index, const int& count, const AZStd::string& filter, CloudGemMessageOfTheDayResponseHandler* responseHandler); virtual void get_service_status(CloudGemMessageOfTheDayResponseHandler* responseHandler); virtual void GetPlayerMessages(const AZStd::string& time, const AZStd::string& lang, CloudGemMessageOfTheDayResponseHandler* responseHandler); }; using CloudGemMessageOfTheDayRequestBus = AZ::EBus; // This class is used as a parameter for all requests and throws the response on the CloudGemMessageOfTheDayNotificationBus // Inherit from this to define custom behavior. class CloudGemMessageOfTheDayResponseHandler { public: AZ_TYPE_INFO(CloudGemMessageOfTheDayResponseHandler, LmbrAWS_CodeGen_ResponseHandler_UUID) AZ_CLASS_ALLOCATOR(CloudGemMessageOfTheDayResponseHandler, AZ::SystemAllocator, 0) virtual ~CloudGemMessageOfTheDayResponseHandler() {} virtual void HandlePutAdminMessagesSuccess(PutAdminMessagesRequestJob* job, AZ::EntityId entityId); virtual void HandlePutAdminMessagesError(PutAdminMessagesRequestJob* job, AZ::EntityId entityId); virtual void HandleDeleteAdminMessagesSuccess(DeleteAdminMessagesRequestJob* job, AZ::EntityId entityId); virtual void HandleDeleteAdminMessagesError(DeleteAdminMessagesRequestJob* job, AZ::EntityId entityId); virtual void HandlePostAdminMessagesSuccess(PostAdminMessagesRequestJob* job, AZ::EntityId entityId); virtual void HandlePostAdminMessagesError(PostAdminMessagesRequestJob* job, AZ::EntityId entityId); virtual void HandleGetAdminMessagesSuccess(GetAdminMessagesRequestJob* job, AZ::EntityId entityId); virtual void HandleGetAdminMessagesError(GetAdminMessagesRequestJob* job, AZ::EntityId entityId); virtual void Handleget_service_statusSuccess(get_service_statusRequestJob* job, AZ::EntityId entityId); virtual void Handleget_service_statusError(get_service_statusRequestJob* job, AZ::EntityId entityId); virtual void HandleGetPlayerMessagesSuccess(GetPlayerMessagesRequestJob* job, AZ::EntityId entityId); virtual void HandleGetPlayerMessagesError(GetPlayerMessagesRequestJob* job, AZ::EntityId entityId); }; class CloudGemMessageOfTheDayClientComponent : public AZ::Component , public CloudGemMessageOfTheDayRequestBus::Handler { public: AZ_COMPONENT(CloudGemMessageOfTheDayClientComponent, LmbrAWS_CodeGen_Component_UUID); virtual ~CloudGemMessageOfTheDayClientComponent() = default; AZStd::shared_ptr m_defaultResponseHandler; void Init() override; void Activate() override; void Deactivate() override; static void Reflect(AZ::ReflectContext* reflection) { MessageData::Reflect(reflection); PutAdminMessagesReturnType::Reflect(reflection); DeleteAdminMessagesReturnType::Reflect(reflection); DetailedMessageData::Reflect(reflection); DetailedMessageList::Reflect(reflection); ServiceStatus::Reflect(reflection); MessageList::Reflect(reflection); AZ::SerializeContext* serializeContext = azrtti_cast(reflection); if (serializeContext) { // we must include any fields we want to expose to the editor or lua in the serialize context serializeContext->Class() ->Version(1); AZ::EditContext* editContext = serializeContext->GetEditContext(); if (editContext) { editContext->Class("CloudGemMessageOfTheDayClientComponent", "CloudGemMessageOfTheDay Component") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Cloud Canvas Gems") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game")) ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/CloudGemMessageOfTheDay.svg") ; } } AZ::BehaviorContext* behaviorContext = azrtti_cast(reflection); if (behaviorContext) { behaviorContext->EBus("CloudGemMessageOfTheDayRequestBus") // one of these for each function ->Event("PutAdminMessages", &CloudGemMessageOfTheDayRequestBus::Events::PutAdminMessages) ->Event("DeleteAdminMessages", &CloudGemMessageOfTheDayRequestBus::Events::DeleteAdminMessages) ->Event("PostAdminMessages", &CloudGemMessageOfTheDayRequestBus::Events::PostAdminMessages) ->Event("GetAdminMessages", &CloudGemMessageOfTheDayRequestBus::Events::GetAdminMessages) ->Event("get_service_status", &CloudGemMessageOfTheDayRequestBus::Events::get_service_status) ->Event("GetPlayerMessages", &CloudGemMessageOfTheDayRequestBus::Events::GetPlayerMessages) ; behaviorContext->EBus("CloudGemMessageOfTheDayNotificationBus") ->Handler() ; } } // Functions from the swagger definitions void PutAdminMessages(const AZStd::string& msg_id, const MessageData& msg, CloudGemMessageOfTheDayResponseHandler* responseHandler) override; void DeleteAdminMessages(const AZStd::string& msg_id, CloudGemMessageOfTheDayResponseHandler* responseHandler) override; void PostAdminMessages(const MessageData& msg, CloudGemMessageOfTheDayResponseHandler* responseHandler) override; void GetAdminMessages(const int& index, const int& count, const AZStd::string& filter, CloudGemMessageOfTheDayResponseHandler* responseHandler) override; void get_service_status(CloudGemMessageOfTheDayResponseHandler* responseHandler) override; void GetPlayerMessages(const AZStd::string& time, const AZStd::string& lang, CloudGemMessageOfTheDayResponseHandler* responseHandler) override; }; } // ServiceAPI } // CloudGemMessageOfTheDay