Program Listing for File AssetStorageLocation.h

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

// Copyright (C) AcceleratXR, Inc. All rights reserved.
//
// Author: Jean-Philippe Steinmetz <info@acceleratxr.com>
#pragma once
#pragma once

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

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

namespace axr {
namespace sdk {
namespace models {

class AssetStorageLocation : public EntityBase
{
public:
    AssetStorageLocation() {}
    AssetStorageLocation(const AssetStorageLocation& value) : EntityBase(value) {}
    AssetStorageLocation(AssetStorageLocation&& value) : EntityBase(value) {}
    virtual ~AssetStorageLocation() {}

    // Object overrides

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

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

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

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

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

    // EntityBase overrides

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

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

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

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

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

    void Validate() override;

    // AssetStorageLocation members

    utility::string_t GetName() const;

    AssetStorageLocation& SetName(const utility::string_t& value);

    utility::string_t GetDescription() const;

    AssetStorageLocation& SetDescription(const utility::string_t& value);

    utility::string_t GetAccessKey() const;

    AssetStorageLocation& SetAccessKey(const utility::string_t& value);

    bool IsActive() const;

    AssetStorageLocation& SetActive(bool value);

    utility::string_t GetBucket() const;

    AssetStorageLocation& SetBucket(const utility::string_t& value);

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

    AssetStorageLocation& SetExcludes(std::vector<utility::string_t> value);

    utility::string_t GetHost() const;

    AssetStorageLocation& SetHost(const utility::string_t& value);

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

    AssetStorageLocation& SetIncludes(std::vector<utility::string_t> value);

    std::shared_ptr<Object> GetOptions() const;

    AssetStorageLocation& SetOptions(std::shared_ptr<Object> value);

    utility::string_t GetPath() const;

    AssetStorageLocation& SetPath(const utility::string_t& value);

    const StorageProvider* GetProvider() const;

    AssetStorageLocation& SetProvider(const StorageProvider* value);

    utility::string_t GetRegion() const;

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

    utility::string_t GetSecret() const;

    AssetStorageLocation& SetSecret(const utility::string_t& value);

    utility::string_t GetUrl() const;

    AssetStorageLocation& SetUrl(const utility::string_t& value);
};

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