Program Listing for File ServerInstance.h

Return to documentation for file (axr.sdk/models/ServerInstance.h)

// Copyright (C) AcceleratXR, Inc. All rights reserved.
#pragma once

#include "axr.sdk/EntityBase.h"
#include "axr.sdk/StringEnum.h"

#include <cpprest/details/basic_types.h>
#include <vector>

namespace axr {
namespace sdk {
namespace models {

class AssignServerInstance : public Object
{
public:

    AssignServerInstance() {}
    AssignServerInstance(const AssignServerInstance& value) : Object(value) {}
    AssignServerInstance(AssignServerInstance&& value) : Object(value) {}
    virtual ~AssignServerInstance() {}

    // Object overrides

    virtual AssignServerInstance& SetProperties(const std::map<utility::string_t, Variant>& value) override
    {
        Object::SetProperties(value);
        return *this;
    }

    virtual AssignServerInstance& SetProperties(std::map<utility::string_t, Variant>&& value) override
    {
        Object::SetProperties(value);
        return *this;
    }

    virtual AssignServerInstance& SetProperty(const utility::char_t* name, const Variant& value) override
    {
        Object::SetProperty(name, value);
        return*this;
    }

    virtual AssignServerInstance& SetProperty(const utility::string_t& name, const Variant& value) override
    {
        Object::SetProperty(name, value);
        return*this;
    }

    // AssignServerInstance members

    utility::string_t GetAssignmentId() const;

    AssignServerInstance& SetAssignmentId(const utility::string_t& value);

    utility::string_t GetBuildVersion() const;

    AssignServerInstance& SetBuildVersion(const utility::string_t& value);

    std::vector<utility::string_t> GetInitOptions() const;

    AssignServerInstance& SetInitOptions(std::vector<utility::string_t> value);

    std::vector<utility::string_t> GetRegions() const;

    AssignServerInstance& SetRegions(std::vector<utility::string_t> value);

    std::vector<utility::string_t> GetTags() const;

    AssignServerInstance& SetTags(std::vector<utility::string_t> value);
};

class ServerInstance : public EntityBase
{
public:
    class Status : public StringEnum<Status>
    {
    public:
        static const Status* INVALID;
        static const Status* STARTING;
        static const Status* AWAITING_CONNECTIONS;
        static const Status* IN_PROGRESS;
        static const Status* STOPPED;
        static const Status* COMPLETED;
        static const Status* ABORTED;

    private:
        Status(const utility::char_t* value)
            : StringEnum(value)
        {
        }
    };

    ServerInstance() {}
    ServerInstance(const ServerInstance& value) : EntityBase(value) {}
    ServerInstance(ServerInstance&& value) : EntityBase(value) {}
    virtual ~ServerInstance() {}

    // Object overrides

    virtual ServerInstance& SetProperties(const std::map<utility::string_t, Variant>& value) override
    {
        Object::SetProperties(value);
        return *this;
    }

    virtual ServerInstance& SetProperties(std::map<utility::string_t, Variant>&& value) override
    {
        Object::SetProperties(value);
        return *this;
    }

    virtual ServerInstance& SetProperty(const utility::char_t* name, const Variant& value) override
    {
        Object::SetProperty(name, value);
        return*this;
    }

    virtual ServerInstance& SetProperty(const utility::string_t& name, const Variant& value) override
    {
        Object::SetProperty(name, value);
        return*this;
    }

    virtual ServerInstance& SetRemoteUrl(const utility::string_t& url) override
    {
        Object::SetRemoteUrl(url);
        return *this;
    }

    // EntityBase overrides

    virtual ServerInstance& SetUid(const utility::string_t& value) override
    {
        EntityBase::SetUid(value);
        return *this;
    }

    virtual ServerInstance& SetDateCreated(const datetime& value) override
    {
        EntityBase::SetDateCreated(value);
        return *this;
    }

    virtual ServerInstance& SetDateModified(const datetime& value) override
    {
        EntityBase::SetDateModified(value);
        return *this;
    }

    virtual ServerInstance& SetVersion(const uint64_t value) override
    {
        EntityBase::SetVersion(value);
        return *this;
    }

    static const utility::char_t* ClassName()
    {
        return _XPLATSTR("axr::sdk::models::ServerInstance");
    }

    void Validate() override;

    // ServerInstance members

    utility::string_t GetAssignmentId() const;

    ServerInstance& SetAssignmentId(const utility::string_t& value);

    utility::string_t GetBuildVersion() const;

    ServerInstance& SetBuildVersion(const utility::string_t& value);

    std::vector<utility::string_t> GetInitOptions() const;

    ServerInstance& SetInitOptions(std::vector<utility::string_t> value);

    datetime GetLastHeartbeat() const;

    ServerInstance& SetLastHeartbeat(const datetime value);

    utility::string_t GetOwnerUid() const;

    ServerInstance& SetOwnerUid(const utility::string_t& value);

    utility::string_t GetRegion() const;

    ServerInstance& SetRegion(const utility::string_t& value);

    utility::string_t GetProductUid() const;

    ServerInstance& SetProductUid(const utility::string_t& value);

    const Status* GetStatus() const;

    ServerInstance& SetStatus(const Status* value);

    std::vector<utility::string_t> GetTags() const;

    ServerInstance& SetTags(std::vector<utility::string_t> value);

    utility::string_t GetURL() const;

    ServerInstance& SetURL(const utility::string_t& value);
};

} // namespace models
} // namespace axr
} // namespace sdk