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

Specifies which S3 buckets contain the objects that a classification job * analyzes, and the scope of that analysis. The bucket specification can be static * (bucketDefinitions) or dynamic (bucketCriteria). If it's static, the job * analyzes objects in the same predefined set of buckets each time the job runs. * If it's dynamic, the job analyzes objects in any buckets that match the * specified criteria each time the job starts to run.

See Also:

* AWS * API Reference

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

The property- and tag-based conditions that determine which S3 buckets to * include or exclude from the analysis. Each time the job runs, the job uses these * criteria to determine which buckets contain objects to analyze. A job's * definition can contain a bucketCriteria object or a bucketDefinitions array, not * both.

*/ inline const S3BucketCriteriaForJob& GetBucketCriteria() const{ return m_bucketCriteria; } /** *

The property- and tag-based conditions that determine which S3 buckets to * include or exclude from the analysis. Each time the job runs, the job uses these * criteria to determine which buckets contain objects to analyze. A job's * definition can contain a bucketCriteria object or a bucketDefinitions array, not * both.

*/ inline bool BucketCriteriaHasBeenSet() const { return m_bucketCriteriaHasBeenSet; } /** *

The property- and tag-based conditions that determine which S3 buckets to * include or exclude from the analysis. Each time the job runs, the job uses these * criteria to determine which buckets contain objects to analyze. A job's * definition can contain a bucketCriteria object or a bucketDefinitions array, not * both.

*/ inline void SetBucketCriteria(const S3BucketCriteriaForJob& value) { m_bucketCriteriaHasBeenSet = true; m_bucketCriteria = value; } /** *

The property- and tag-based conditions that determine which S3 buckets to * include or exclude from the analysis. Each time the job runs, the job uses these * criteria to determine which buckets contain objects to analyze. A job's * definition can contain a bucketCriteria object or a bucketDefinitions array, not * both.

*/ inline void SetBucketCriteria(S3BucketCriteriaForJob&& value) { m_bucketCriteriaHasBeenSet = true; m_bucketCriteria = std::move(value); } /** *

The property- and tag-based conditions that determine which S3 buckets to * include or exclude from the analysis. Each time the job runs, the job uses these * criteria to determine which buckets contain objects to analyze. A job's * definition can contain a bucketCriteria object or a bucketDefinitions array, not * both.

*/ inline S3JobDefinition& WithBucketCriteria(const S3BucketCriteriaForJob& value) { SetBucketCriteria(value); return *this;} /** *

The property- and tag-based conditions that determine which S3 buckets to * include or exclude from the analysis. Each time the job runs, the job uses these * criteria to determine which buckets contain objects to analyze. A job's * definition can contain a bucketCriteria object or a bucketDefinitions array, not * both.

*/ inline S3JobDefinition& WithBucketCriteria(S3BucketCriteriaForJob&& value) { SetBucketCriteria(std::move(value)); return *this;} /** *

An array of objects, one for each Amazon Web Services account that owns * specific S3 buckets to analyze. Each object specifies the account ID for an * account and one or more buckets to analyze for that account. A job's definition * can contain a bucketDefinitions array or a bucketCriteria object, not both.

*/ inline const Aws::Vector& GetBucketDefinitions() const{ return m_bucketDefinitions; } /** *

An array of objects, one for each Amazon Web Services account that owns * specific S3 buckets to analyze. Each object specifies the account ID for an * account and one or more buckets to analyze for that account. A job's definition * can contain a bucketDefinitions array or a bucketCriteria object, not both.

*/ inline bool BucketDefinitionsHasBeenSet() const { return m_bucketDefinitionsHasBeenSet; } /** *

An array of objects, one for each Amazon Web Services account that owns * specific S3 buckets to analyze. Each object specifies the account ID for an * account and one or more buckets to analyze for that account. A job's definition * can contain a bucketDefinitions array or a bucketCriteria object, not both.

*/ inline void SetBucketDefinitions(const Aws::Vector& value) { m_bucketDefinitionsHasBeenSet = true; m_bucketDefinitions = value; } /** *

An array of objects, one for each Amazon Web Services account that owns * specific S3 buckets to analyze. Each object specifies the account ID for an * account and one or more buckets to analyze for that account. A job's definition * can contain a bucketDefinitions array or a bucketCriteria object, not both.

*/ inline void SetBucketDefinitions(Aws::Vector&& value) { m_bucketDefinitionsHasBeenSet = true; m_bucketDefinitions = std::move(value); } /** *

An array of objects, one for each Amazon Web Services account that owns * specific S3 buckets to analyze. Each object specifies the account ID for an * account and one or more buckets to analyze for that account. A job's definition * can contain a bucketDefinitions array or a bucketCriteria object, not both.

*/ inline S3JobDefinition& WithBucketDefinitions(const Aws::Vector& value) { SetBucketDefinitions(value); return *this;} /** *

An array of objects, one for each Amazon Web Services account that owns * specific S3 buckets to analyze. Each object specifies the account ID for an * account and one or more buckets to analyze for that account. A job's definition * can contain a bucketDefinitions array or a bucketCriteria object, not both.

*/ inline S3JobDefinition& WithBucketDefinitions(Aws::Vector&& value) { SetBucketDefinitions(std::move(value)); return *this;} /** *

An array of objects, one for each Amazon Web Services account that owns * specific S3 buckets to analyze. Each object specifies the account ID for an * account and one or more buckets to analyze for that account. A job's definition * can contain a bucketDefinitions array or a bucketCriteria object, not both.

*/ inline S3JobDefinition& AddBucketDefinitions(const S3BucketDefinitionForJob& value) { m_bucketDefinitionsHasBeenSet = true; m_bucketDefinitions.push_back(value); return *this; } /** *

An array of objects, one for each Amazon Web Services account that owns * specific S3 buckets to analyze. Each object specifies the account ID for an * account and one or more buckets to analyze for that account. A job's definition * can contain a bucketDefinitions array or a bucketCriteria object, not both.

*/ inline S3JobDefinition& AddBucketDefinitions(S3BucketDefinitionForJob&& value) { m_bucketDefinitionsHasBeenSet = true; m_bucketDefinitions.push_back(std::move(value)); return *this; } /** *

The property- and tag-based conditions that determine which S3 objects to * include or exclude from the analysis. Each time the job runs, the job uses these * criteria to determine which objects to analyze.

*/ inline const Scoping& GetScoping() const{ return m_scoping; } /** *

The property- and tag-based conditions that determine which S3 objects to * include or exclude from the analysis. Each time the job runs, the job uses these * criteria to determine which objects to analyze.

*/ inline bool ScopingHasBeenSet() const { return m_scopingHasBeenSet; } /** *

The property- and tag-based conditions that determine which S3 objects to * include or exclude from the analysis. Each time the job runs, the job uses these * criteria to determine which objects to analyze.

*/ inline void SetScoping(const Scoping& value) { m_scopingHasBeenSet = true; m_scoping = value; } /** *

The property- and tag-based conditions that determine which S3 objects to * include or exclude from the analysis. Each time the job runs, the job uses these * criteria to determine which objects to analyze.

*/ inline void SetScoping(Scoping&& value) { m_scopingHasBeenSet = true; m_scoping = std::move(value); } /** *

The property- and tag-based conditions that determine which S3 objects to * include or exclude from the analysis. Each time the job runs, the job uses these * criteria to determine which objects to analyze.

*/ inline S3JobDefinition& WithScoping(const Scoping& value) { SetScoping(value); return *this;} /** *

The property- and tag-based conditions that determine which S3 objects to * include or exclude from the analysis. Each time the job runs, the job uses these * criteria to determine which objects to analyze.

*/ inline S3JobDefinition& WithScoping(Scoping&& value) { SetScoping(std::move(value)); return *this;} private: S3BucketCriteriaForJob m_bucketCriteria; bool m_bucketCriteriaHasBeenSet = false; Aws::Vector m_bucketDefinitions; bool m_bucketDefinitionsHasBeenSet = false; Scoping m_scoping; bool m_scopingHasBeenSet = false; }; } // namespace Model } // namespace Macie2 } // namespace Aws