3#include <aws/core/utils/memory/stl/AWSString.h>
4#include <aws/crt/Optional.h>
5#include <smithy/Smithy_EXPORTS.h>
6#include <smithy/client/schema/TraitMap.h>
9#include <initializer_list>
45 std::shared_ptr<const Trait>
value;
56 virtual const char*
GetId()
const = 0;
58 virtual bool IsMember()
const {
return false; }
61 virtual Aws::Crt::Optional<std::shared_ptr<const Schema>>
GetMemberTarget()
const {
return {}; }
63 virtual Aws::Crt::Optional<std::shared_ptr<const Schema>>
GetMember(
const char* )
const {
return {}; }
64 virtual Aws::Crt::Optional<std::shared_ptr<const Schema>>
GetMember(
int )
const {
return {}; }
69 return m_traits.Get(key);
static std::shared_ptr< const Schema > CreateDocument(const char *id, TraitList traits={})
static std::shared_ptr< const Schema > CreateString(const char *id, TraitList traits={})
virtual ~Schema()=default
static SchemaBuilder ListBuilder(const char *id, TraitList traits={})
virtual ShapeType GetType() const =0
virtual Aws::Crt::Optional< std::shared_ptr< const Schema > > GetMemberTarget() const
virtual uint16_t GetMemberCount() const
static std::shared_ptr< const Schema > CreateBigDecimal(const char *id, TraitList traits={})
static std::shared_ptr< const Schema > CreateBlob(const char *id, TraitList traits={})
static std::shared_ptr< const Schema > CreateFloat(const char *id, TraitList traits={})
static std::shared_ptr< const Schema > CreateEnum(const char *id, TraitList traits={})
static std::shared_ptr< const Schema > CreateInteger(const char *id, TraitList traits={})
static std::shared_ptr< const Schema > CreateByte(const char *id, TraitList traits={})
virtual int GetMemberIndex() const
static std::shared_ptr< const Schema > CreateLong(const char *id, TraitList traits={})
virtual Aws::Crt::Optional< std::shared_ptr< const Schema > > GetMember(const char *) const
virtual const char * GetId() const =0
virtual Aws::String GetMemberName() const
std::shared_ptr< const T > GetTrait(const TraitKey< T > &key) const
static std::shared_ptr< const Schema > CreateTimestamp(const char *id, TraitList traits={})
static std::shared_ptr< const Schema > CreateBoolean(const char *id, TraitList traits={})
static SchemaBuilder MapBuilder(const char *id, TraitList traits={})
static SchemaBuilder UnionBuilder(const char *id, TraitList traits={})
static std::shared_ptr< const Schema > CreateIntEnum(const char *id, TraitList traits={})
static std::shared_ptr< const Schema > CreateMember(const char *name, ShapeType targetType, TraitList traits={})
static std::shared_ptr< const Schema > CreateBigInteger(const char *id, TraitList traits={})
static SchemaBuilder StructureBuilder(const char *id, TraitList traits={})
static std::shared_ptr< const Schema > CreateShort(const char *id, TraitList traits={})
virtual bool IsMember() const
static std::shared_ptr< const Schema > CreateDouble(const char *id, TraitList traits={})
virtual Aws::Crt::Optional< std::shared_ptr< const Schema > > GetMember(int) const
bool HasTrait(const TraitKeyBase &key) const
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
std::initializer_list< TraitEntry > TraitList
std::shared_ptr< const Trait > value