blob: f099472da2208ed59a9a0f2c6dad143749b4339b [file] [log] [blame]
#pragma once
#include "types/collection_duration.hpp"
#include "types/collection_time_scope.hpp"
#include "types/operation_type.hpp"
#include <string>
class MetricParams final
{
public:
MetricParams& operationType(OperationType val)
{
operationTypeProperty = val;
return *this;
}
const OperationType& operationType() const
{
return operationTypeProperty;
}
MetricParams& id(std::string val)
{
idProperty = std::move(val);
return *this;
}
const std::string& id() const
{
return idProperty;
}
MetricParams& metadata(std::string val)
{
metadataProperty = std::move(val);
return *this;
}
const std::string& metadata() const
{
return metadataProperty;
}
MetricParams& collectionTimeScope(CollectionTimeScope val)
{
collectionTimeScopeProperty = val;
return *this;
}
const CollectionTimeScope& collectionTimeScope() const
{
return collectionTimeScopeProperty;
}
MetricParams& collectionDuration(CollectionDuration val)
{
collectionDurationProperty = val;
return *this;
}
const CollectionDuration& collectionDuration() const
{
return collectionDurationProperty;
}
private:
OperationType operationTypeProperty = {};
std::string idProperty = "MetricId";
std::string metadataProperty = "MetricMetadata";
CollectionTimeScope collectionTimeScopeProperty = {};
CollectionDuration collectionDurationProperty =
CollectionDuration(Milliseconds(0u));
};