/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include <aws/macie2/Macie2_EXPORTS.h> #include <aws/macie2/model/SimpleScopeTerm.h> #include <aws/macie2/model/TagScopeTerm.h> #include <utility> namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace Macie2 { namespace Model { /** * <p>Specifies a property- or tag-based condition that defines criteria for * including or excluding S3 objects from a classification job. A JobScopeTerm * object can contain only one simpleScopeTerm object or one tagScopeTerm * object.</p><p><h3>See Also:</h3> <a * href="http://docs.aws.amazon.com/goto/WebAPI/macie2-2020-01-01/JobScopeTerm">AWS * API Reference</a></p> */ class JobScopeTerm { public: AWS_MACIE2_API JobScopeTerm(); AWS_MACIE2_API JobScopeTerm(Aws::Utils::Json::JsonView jsonValue); AWS_MACIE2_API JobScopeTerm& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_MACIE2_API Aws::Utils::Json::JsonValue Jsonize() const; /** * <p>A property-based condition that defines a property, operator, and one or more * values for including or excluding objects from the job.</p> */ inline const SimpleScopeTerm& GetSimpleScopeTerm() const{ return m_simpleScopeTerm; } /** * <p>A property-based condition that defines a property, operator, and one or more * values for including or excluding objects from the job.</p> */ inline bool SimpleScopeTermHasBeenSet() const { return m_simpleScopeTermHasBeenSet; } /** * <p>A property-based condition that defines a property, operator, and one or more * values for including or excluding objects from the job.</p> */ inline void SetSimpleScopeTerm(const SimpleScopeTerm& value) { m_simpleScopeTermHasBeenSet = true; m_simpleScopeTerm = value; } /** * <p>A property-based condition that defines a property, operator, and one or more * values for including or excluding objects from the job.</p> */ inline void SetSimpleScopeTerm(SimpleScopeTerm&& value) { m_simpleScopeTermHasBeenSet = true; m_simpleScopeTerm = std::move(value); } /** * <p>A property-based condition that defines a property, operator, and one or more * values for including or excluding objects from the job.</p> */ inline JobScopeTerm& WithSimpleScopeTerm(const SimpleScopeTerm& value) { SetSimpleScopeTerm(value); return *this;} /** * <p>A property-based condition that defines a property, operator, and one or more * values for including or excluding objects from the job.</p> */ inline JobScopeTerm& WithSimpleScopeTerm(SimpleScopeTerm&& value) { SetSimpleScopeTerm(std::move(value)); return *this;} /** * <p>A tag-based condition that defines the operator and tag keys or tag key and * value pairs for including or excluding objects from the job.</p> */ inline const TagScopeTerm& GetTagScopeTerm() const{ return m_tagScopeTerm; } /** * <p>A tag-based condition that defines the operator and tag keys or tag key and * value pairs for including or excluding objects from the job.</p> */ inline bool TagScopeTermHasBeenSet() const { return m_tagScopeTermHasBeenSet; } /** * <p>A tag-based condition that defines the operator and tag keys or tag key and * value pairs for including or excluding objects from the job.</p> */ inline void SetTagScopeTerm(const TagScopeTerm& value) { m_tagScopeTermHasBeenSet = true; m_tagScopeTerm = value; } /** * <p>A tag-based condition that defines the operator and tag keys or tag key and * value pairs for including or excluding objects from the job.</p> */ inline void SetTagScopeTerm(TagScopeTerm&& value) { m_tagScopeTermHasBeenSet = true; m_tagScopeTerm = std::move(value); } /** * <p>A tag-based condition that defines the operator and tag keys or tag key and * value pairs for including or excluding objects from the job.</p> */ inline JobScopeTerm& WithTagScopeTerm(const TagScopeTerm& value) { SetTagScopeTerm(value); return *this;} /** * <p>A tag-based condition that defines the operator and tag keys or tag key and * value pairs for including or excluding objects from the job.</p> */ inline JobScopeTerm& WithTagScopeTerm(TagScopeTerm&& value) { SetTagScopeTerm(std::move(value)); return *this;} private: SimpleScopeTerm m_simpleScopeTerm; bool m_simpleScopeTermHasBeenSet = false; TagScopeTerm m_tagScopeTerm; bool m_tagScopeTermHasBeenSet = false; }; } // namespace Model } // namespace Macie2 } // namespace Aws