/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace MediaStore { namespace Model { /** *

A setting that enables metrics at the object level. Each rule contains an * object group and an object group name. If the policy includes the * MetricPolicyRules parameter, you must include at least one rule. Each metric * policy can include up to five rules by default. You can also request * a quota increase to allow up to 300 rules per policy.

See * Also:

AWS * API Reference

*/ class MetricPolicyRule { public: AWS_MEDIASTORE_API MetricPolicyRule(); AWS_MEDIASTORE_API MetricPolicyRule(Aws::Utils::Json::JsonView jsonValue); AWS_MEDIASTORE_API MetricPolicyRule& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_MEDIASTORE_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

A path or file name that defines which objects to include in the group. * Wildcards (*) are acceptable.

*/ inline const Aws::String& GetObjectGroup() const{ return m_objectGroup; } /** *

A path or file name that defines which objects to include in the group. * Wildcards (*) are acceptable.

*/ inline bool ObjectGroupHasBeenSet() const { return m_objectGroupHasBeenSet; } /** *

A path or file name that defines which objects to include in the group. * Wildcards (*) are acceptable.

*/ inline void SetObjectGroup(const Aws::String& value) { m_objectGroupHasBeenSet = true; m_objectGroup = value; } /** *

A path or file name that defines which objects to include in the group. * Wildcards (*) are acceptable.

*/ inline void SetObjectGroup(Aws::String&& value) { m_objectGroupHasBeenSet = true; m_objectGroup = std::move(value); } /** *

A path or file name that defines which objects to include in the group. * Wildcards (*) are acceptable.

*/ inline void SetObjectGroup(const char* value) { m_objectGroupHasBeenSet = true; m_objectGroup.assign(value); } /** *

A path or file name that defines which objects to include in the group. * Wildcards (*) are acceptable.

*/ inline MetricPolicyRule& WithObjectGroup(const Aws::String& value) { SetObjectGroup(value); return *this;} /** *

A path or file name that defines which objects to include in the group. * Wildcards (*) are acceptable.

*/ inline MetricPolicyRule& WithObjectGroup(Aws::String&& value) { SetObjectGroup(std::move(value)); return *this;} /** *

A path or file name that defines which objects to include in the group. * Wildcards (*) are acceptable.

*/ inline MetricPolicyRule& WithObjectGroup(const char* value) { SetObjectGroup(value); return *this;} /** *

A name that allows you to refer to the object group.

*/ inline const Aws::String& GetObjectGroupName() const{ return m_objectGroupName; } /** *

A name that allows you to refer to the object group.

*/ inline bool ObjectGroupNameHasBeenSet() const { return m_objectGroupNameHasBeenSet; } /** *

A name that allows you to refer to the object group.

*/ inline void SetObjectGroupName(const Aws::String& value) { m_objectGroupNameHasBeenSet = true; m_objectGroupName = value; } /** *

A name that allows you to refer to the object group.

*/ inline void SetObjectGroupName(Aws::String&& value) { m_objectGroupNameHasBeenSet = true; m_objectGroupName = std::move(value); } /** *

A name that allows you to refer to the object group.

*/ inline void SetObjectGroupName(const char* value) { m_objectGroupNameHasBeenSet = true; m_objectGroupName.assign(value); } /** *

A name that allows you to refer to the object group.

*/ inline MetricPolicyRule& WithObjectGroupName(const Aws::String& value) { SetObjectGroupName(value); return *this;} /** *

A name that allows you to refer to the object group.

*/ inline MetricPolicyRule& WithObjectGroupName(Aws::String&& value) { SetObjectGroupName(std::move(value)); return *this;} /** *

A name that allows you to refer to the object group.

*/ inline MetricPolicyRule& WithObjectGroupName(const char* value) { SetObjectGroupName(value); return *this;} private: Aws::String m_objectGroup; bool m_objectGroupHasBeenSet = false; Aws::String m_objectGroupName; bool m_objectGroupNameHasBeenSet = false; }; } // namespace Model } // namespace MediaStore } // namespace Aws