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

Provides information about a classification job, including the current status * of the job.

See Also:

AWS * API Reference

*/ class JobSummary { public: AWS_MACIE2_API JobSummary(); AWS_MACIE2_API JobSummary(Aws::Utils::Json::JsonView jsonValue); AWS_MACIE2_API JobSummary& 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 are * included or excluded from the job's analysis. Each time the job runs, the job * uses these criteria to determine which buckets 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 are * included or excluded from the job's analysis. Each time the job runs, the job * uses these criteria to determine which buckets 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 are * included or excluded from the job's analysis. Each time the job runs, the job * uses these criteria to determine which buckets 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 are * included or excluded from the job's analysis. Each time the job runs, the job * uses these criteria to determine which buckets 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 are * included or excluded from the job's analysis. Each time the job runs, the job * uses these criteria to determine which buckets to analyze. A job's definition * can contain a bucketCriteria object or a bucketDefinitions array, not both.

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

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

*/ inline JobSummary& 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 for the job 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 for the job 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 for the job 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 for the job 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 for the job 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 JobSummary& 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 for the job 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 JobSummary& 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 for the job 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 JobSummary& 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 for the job 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 JobSummary& AddBucketDefinitions(S3BucketDefinitionForJob&& value) { m_bucketDefinitionsHasBeenSet = true; m_bucketDefinitions.push_back(std::move(value)); return *this; } /** *

The date and time, in UTC and extended ISO 8601 format, when the job was * created.

*/ inline const Aws::Utils::DateTime& GetCreatedAt() const{ return m_createdAt; } /** *

The date and time, in UTC and extended ISO 8601 format, when the job was * created.

*/ inline bool CreatedAtHasBeenSet() const { return m_createdAtHasBeenSet; } /** *

The date and time, in UTC and extended ISO 8601 format, when the job was * created.

*/ inline void SetCreatedAt(const Aws::Utils::DateTime& value) { m_createdAtHasBeenSet = true; m_createdAt = value; } /** *

The date and time, in UTC and extended ISO 8601 format, when the job was * created.

*/ inline void SetCreatedAt(Aws::Utils::DateTime&& value) { m_createdAtHasBeenSet = true; m_createdAt = std::move(value); } /** *

The date and time, in UTC and extended ISO 8601 format, when the job was * created.

*/ inline JobSummary& WithCreatedAt(const Aws::Utils::DateTime& value) { SetCreatedAt(value); return *this;} /** *

The date and time, in UTC and extended ISO 8601 format, when the job was * created.

*/ inline JobSummary& WithCreatedAt(Aws::Utils::DateTime&& value) { SetCreatedAt(std::move(value)); return *this;} /** *

The unique identifier for the job.

*/ inline const Aws::String& GetJobId() const{ return m_jobId; } /** *

The unique identifier for the job.

*/ inline bool JobIdHasBeenSet() const { return m_jobIdHasBeenSet; } /** *

The unique identifier for the job.

*/ inline void SetJobId(const Aws::String& value) { m_jobIdHasBeenSet = true; m_jobId = value; } /** *

The unique identifier for the job.

*/ inline void SetJobId(Aws::String&& value) { m_jobIdHasBeenSet = true; m_jobId = std::move(value); } /** *

The unique identifier for the job.

*/ inline void SetJobId(const char* value) { m_jobIdHasBeenSet = true; m_jobId.assign(value); } /** *

The unique identifier for the job.

*/ inline JobSummary& WithJobId(const Aws::String& value) { SetJobId(value); return *this;} /** *

The unique identifier for the job.

*/ inline JobSummary& WithJobId(Aws::String&& value) { SetJobId(std::move(value)); return *this;} /** *

The unique identifier for the job.

*/ inline JobSummary& WithJobId(const char* value) { SetJobId(value); return *this;} /** *

The current status of the job. Possible values are:

  • CANCELLED * - You cancelled the job or, if it's a one-time job, you paused the job and * didn't resume it within 30 days.

  • COMPLETE - For a one-time job, * Amazon Macie finished processing the data specified for the job. This value * doesn't apply to recurring jobs.

  • IDLE - For a recurring job, the * previous scheduled run is complete and the next scheduled run is pending. This * value doesn't apply to one-time jobs.

  • PAUSED - Macie started * running the job but additional processing would exceed the monthly sensitive * data discovery quota for your account or one or more member accounts that the * job analyzes data for.

  • RUNNING - For a one-time job, the job is * in progress. For a recurring job, a scheduled run is in progress.

  • *
  • USER_PAUSED - You paused the job. If you paused the job while it had a * status of RUNNING and you don't resume it within 30 days of pausing it, the job * or job run will expire and be cancelled, depending on the job's type. To check * the expiration date, refer to the UserPausedDetails.jobExpiresAt * property.

*/ inline const JobStatus& GetJobStatus() const{ return m_jobStatus; } /** *

The current status of the job. Possible values are:

  • CANCELLED * - You cancelled the job or, if it's a one-time job, you paused the job and * didn't resume it within 30 days.

  • COMPLETE - For a one-time job, * Amazon Macie finished processing the data specified for the job. This value * doesn't apply to recurring jobs.

  • IDLE - For a recurring job, the * previous scheduled run is complete and the next scheduled run is pending. This * value doesn't apply to one-time jobs.

  • PAUSED - Macie started * running the job but additional processing would exceed the monthly sensitive * data discovery quota for your account or one or more member accounts that the * job analyzes data for.

  • RUNNING - For a one-time job, the job is * in progress. For a recurring job, a scheduled run is in progress.

  • *
  • USER_PAUSED - You paused the job. If you paused the job while it had a * status of RUNNING and you don't resume it within 30 days of pausing it, the job * or job run will expire and be cancelled, depending on the job's type. To check * the expiration date, refer to the UserPausedDetails.jobExpiresAt * property.

*/ inline bool JobStatusHasBeenSet() const { return m_jobStatusHasBeenSet; } /** *

The current status of the job. Possible values are:

  • CANCELLED * - You cancelled the job or, if it's a one-time job, you paused the job and * didn't resume it within 30 days.

  • COMPLETE - For a one-time job, * Amazon Macie finished processing the data specified for the job. This value * doesn't apply to recurring jobs.

  • IDLE - For a recurring job, the * previous scheduled run is complete and the next scheduled run is pending. This * value doesn't apply to one-time jobs.

  • PAUSED - Macie started * running the job but additional processing would exceed the monthly sensitive * data discovery quota for your account or one or more member accounts that the * job analyzes data for.

  • RUNNING - For a one-time job, the job is * in progress. For a recurring job, a scheduled run is in progress.

  • *
  • USER_PAUSED - You paused the job. If you paused the job while it had a * status of RUNNING and you don't resume it within 30 days of pausing it, the job * or job run will expire and be cancelled, depending on the job's type. To check * the expiration date, refer to the UserPausedDetails.jobExpiresAt * property.

*/ inline void SetJobStatus(const JobStatus& value) { m_jobStatusHasBeenSet = true; m_jobStatus = value; } /** *

The current status of the job. Possible values are:

  • CANCELLED * - You cancelled the job or, if it's a one-time job, you paused the job and * didn't resume it within 30 days.

  • COMPLETE - For a one-time job, * Amazon Macie finished processing the data specified for the job. This value * doesn't apply to recurring jobs.

  • IDLE - For a recurring job, the * previous scheduled run is complete and the next scheduled run is pending. This * value doesn't apply to one-time jobs.

  • PAUSED - Macie started * running the job but additional processing would exceed the monthly sensitive * data discovery quota for your account or one or more member accounts that the * job analyzes data for.

  • RUNNING - For a one-time job, the job is * in progress. For a recurring job, a scheduled run is in progress.

  • *
  • USER_PAUSED - You paused the job. If you paused the job while it had a * status of RUNNING and you don't resume it within 30 days of pausing it, the job * or job run will expire and be cancelled, depending on the job's type. To check * the expiration date, refer to the UserPausedDetails.jobExpiresAt * property.

*/ inline void SetJobStatus(JobStatus&& value) { m_jobStatusHasBeenSet = true; m_jobStatus = std::move(value); } /** *

The current status of the job. Possible values are:

  • CANCELLED * - You cancelled the job or, if it's a one-time job, you paused the job and * didn't resume it within 30 days.

  • COMPLETE - For a one-time job, * Amazon Macie finished processing the data specified for the job. This value * doesn't apply to recurring jobs.

  • IDLE - For a recurring job, the * previous scheduled run is complete and the next scheduled run is pending. This * value doesn't apply to one-time jobs.

  • PAUSED - Macie started * running the job but additional processing would exceed the monthly sensitive * data discovery quota for your account or one or more member accounts that the * job analyzes data for.

  • RUNNING - For a one-time job, the job is * in progress. For a recurring job, a scheduled run is in progress.

  • *
  • USER_PAUSED - You paused the job. If you paused the job while it had a * status of RUNNING and you don't resume it within 30 days of pausing it, the job * or job run will expire and be cancelled, depending on the job's type. To check * the expiration date, refer to the UserPausedDetails.jobExpiresAt * property.

*/ inline JobSummary& WithJobStatus(const JobStatus& value) { SetJobStatus(value); return *this;} /** *

The current status of the job. Possible values are:

  • CANCELLED * - You cancelled the job or, if it's a one-time job, you paused the job and * didn't resume it within 30 days.

  • COMPLETE - For a one-time job, * Amazon Macie finished processing the data specified for the job. This value * doesn't apply to recurring jobs.

  • IDLE - For a recurring job, the * previous scheduled run is complete and the next scheduled run is pending. This * value doesn't apply to one-time jobs.

  • PAUSED - Macie started * running the job but additional processing would exceed the monthly sensitive * data discovery quota for your account or one or more member accounts that the * job analyzes data for.

  • RUNNING - For a one-time job, the job is * in progress. For a recurring job, a scheduled run is in progress.

  • *
  • USER_PAUSED - You paused the job. If you paused the job while it had a * status of RUNNING and you don't resume it within 30 days of pausing it, the job * or job run will expire and be cancelled, depending on the job's type. To check * the expiration date, refer to the UserPausedDetails.jobExpiresAt * property.

*/ inline JobSummary& WithJobStatus(JobStatus&& value) { SetJobStatus(std::move(value)); return *this;} /** *

The schedule for running the job. Possible values are:

*
  • ONE_TIME - The job runs only once.

  • SCHEDULED - The * job runs on a daily, weekly, or monthly basis.

*/ inline const JobType& GetJobType() const{ return m_jobType; } /** *

The schedule for running the job. Possible values are:

*
  • ONE_TIME - The job runs only once.

  • SCHEDULED - The * job runs on a daily, weekly, or monthly basis.

*/ inline bool JobTypeHasBeenSet() const { return m_jobTypeHasBeenSet; } /** *

The schedule for running the job. Possible values are:

*
  • ONE_TIME - The job runs only once.

  • SCHEDULED - The * job runs on a daily, weekly, or monthly basis.

*/ inline void SetJobType(const JobType& value) { m_jobTypeHasBeenSet = true; m_jobType = value; } /** *

The schedule for running the job. Possible values are:

*
  • ONE_TIME - The job runs only once.

  • SCHEDULED - The * job runs on a daily, weekly, or monthly basis.

*/ inline void SetJobType(JobType&& value) { m_jobTypeHasBeenSet = true; m_jobType = std::move(value); } /** *

The schedule for running the job. Possible values are:

*
  • ONE_TIME - The job runs only once.

  • SCHEDULED - The * job runs on a daily, weekly, or monthly basis.

*/ inline JobSummary& WithJobType(const JobType& value) { SetJobType(value); return *this;} /** *

The schedule for running the job. Possible values are:

*
  • ONE_TIME - The job runs only once.

  • SCHEDULED - The * job runs on a daily, weekly, or monthly basis.

*/ inline JobSummary& WithJobType(JobType&& value) { SetJobType(std::move(value)); return *this;} /** *

Specifies whether any account- or bucket-level access errors occurred when * the job ran. For a recurring job, this value indicates the error status of the * job's most recent run.

*/ inline const LastRunErrorStatus& GetLastRunErrorStatus() const{ return m_lastRunErrorStatus; } /** *

Specifies whether any account- or bucket-level access errors occurred when * the job ran. For a recurring job, this value indicates the error status of the * job's most recent run.

*/ inline bool LastRunErrorStatusHasBeenSet() const { return m_lastRunErrorStatusHasBeenSet; } /** *

Specifies whether any account- or bucket-level access errors occurred when * the job ran. For a recurring job, this value indicates the error status of the * job's most recent run.

*/ inline void SetLastRunErrorStatus(const LastRunErrorStatus& value) { m_lastRunErrorStatusHasBeenSet = true; m_lastRunErrorStatus = value; } /** *

Specifies whether any account- or bucket-level access errors occurred when * the job ran. For a recurring job, this value indicates the error status of the * job's most recent run.

*/ inline void SetLastRunErrorStatus(LastRunErrorStatus&& value) { m_lastRunErrorStatusHasBeenSet = true; m_lastRunErrorStatus = std::move(value); } /** *

Specifies whether any account- or bucket-level access errors occurred when * the job ran. For a recurring job, this value indicates the error status of the * job's most recent run.

*/ inline JobSummary& WithLastRunErrorStatus(const LastRunErrorStatus& value) { SetLastRunErrorStatus(value); return *this;} /** *

Specifies whether any account- or bucket-level access errors occurred when * the job ran. For a recurring job, this value indicates the error status of the * job's most recent run.

*/ inline JobSummary& WithLastRunErrorStatus(LastRunErrorStatus&& value) { SetLastRunErrorStatus(std::move(value)); return *this;} /** *

The custom name of the job.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The custom name of the job.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The custom name of the job.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The custom name of the job.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The custom name of the job.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The custom name of the job.

*/ inline JobSummary& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The custom name of the job.

*/ inline JobSummary& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The custom name of the job.

*/ inline JobSummary& WithName(const char* value) { SetName(value); return *this;} /** *

If the current status of the job is USER_PAUSED, specifies when the job was * paused and when the job or job run will expire and be cancelled if it isn't * resumed. This value is present only if the value for jobStatus is * USER_PAUSED.

*/ inline const UserPausedDetails& GetUserPausedDetails() const{ return m_userPausedDetails; } /** *

If the current status of the job is USER_PAUSED, specifies when the job was * paused and when the job or job run will expire and be cancelled if it isn't * resumed. This value is present only if the value for jobStatus is * USER_PAUSED.

*/ inline bool UserPausedDetailsHasBeenSet() const { return m_userPausedDetailsHasBeenSet; } /** *

If the current status of the job is USER_PAUSED, specifies when the job was * paused and when the job or job run will expire and be cancelled if it isn't * resumed. This value is present only if the value for jobStatus is * USER_PAUSED.

*/ inline void SetUserPausedDetails(const UserPausedDetails& value) { m_userPausedDetailsHasBeenSet = true; m_userPausedDetails = value; } /** *

If the current status of the job is USER_PAUSED, specifies when the job was * paused and when the job or job run will expire and be cancelled if it isn't * resumed. This value is present only if the value for jobStatus is * USER_PAUSED.

*/ inline void SetUserPausedDetails(UserPausedDetails&& value) { m_userPausedDetailsHasBeenSet = true; m_userPausedDetails = std::move(value); } /** *

If the current status of the job is USER_PAUSED, specifies when the job was * paused and when the job or job run will expire and be cancelled if it isn't * resumed. This value is present only if the value for jobStatus is * USER_PAUSED.

*/ inline JobSummary& WithUserPausedDetails(const UserPausedDetails& value) { SetUserPausedDetails(value); return *this;} /** *

If the current status of the job is USER_PAUSED, specifies when the job was * paused and when the job or job run will expire and be cancelled if it isn't * resumed. This value is present only if the value for jobStatus is * USER_PAUSED.

*/ inline JobSummary& WithUserPausedDetails(UserPausedDetails&& value) { SetUserPausedDetails(std::move(value)); return *this;} private: S3BucketCriteriaForJob m_bucketCriteria; bool m_bucketCriteriaHasBeenSet = false; Aws::Vector m_bucketDefinitions; bool m_bucketDefinitionsHasBeenSet = false; Aws::Utils::DateTime m_createdAt; bool m_createdAtHasBeenSet = false; Aws::String m_jobId; bool m_jobIdHasBeenSet = false; JobStatus m_jobStatus; bool m_jobStatusHasBeenSet = false; JobType m_jobType; bool m_jobTypeHasBeenSet = false; LastRunErrorStatus m_lastRunErrorStatus; bool m_lastRunErrorStatusHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; UserPausedDetails m_userPausedDetails; bool m_userPausedDetailsHasBeenSet = false; }; } // namespace Model } // namespace Macie2 } // namespace Aws