/** * 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 Backup { namespace Model { /** *

Contains detailed information about a report plan.

See Also:

* AWS * API Reference

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

An Amazon Resource Name (ARN) that uniquely identifies a resource. The format * of the ARN depends on the resource type.

*/ inline const Aws::String& GetReportPlanArn() const{ return m_reportPlanArn; } /** *

An Amazon Resource Name (ARN) that uniquely identifies a resource. The format * of the ARN depends on the resource type.

*/ inline bool ReportPlanArnHasBeenSet() const { return m_reportPlanArnHasBeenSet; } /** *

An Amazon Resource Name (ARN) that uniquely identifies a resource. The format * of the ARN depends on the resource type.

*/ inline void SetReportPlanArn(const Aws::String& value) { m_reportPlanArnHasBeenSet = true; m_reportPlanArn = value; } /** *

An Amazon Resource Name (ARN) that uniquely identifies a resource. The format * of the ARN depends on the resource type.

*/ inline void SetReportPlanArn(Aws::String&& value) { m_reportPlanArnHasBeenSet = true; m_reportPlanArn = std::move(value); } /** *

An Amazon Resource Name (ARN) that uniquely identifies a resource. The format * of the ARN depends on the resource type.

*/ inline void SetReportPlanArn(const char* value) { m_reportPlanArnHasBeenSet = true; m_reportPlanArn.assign(value); } /** *

An Amazon Resource Name (ARN) that uniquely identifies a resource. The format * of the ARN depends on the resource type.

*/ inline ReportPlan& WithReportPlanArn(const Aws::String& value) { SetReportPlanArn(value); return *this;} /** *

An Amazon Resource Name (ARN) that uniquely identifies a resource. The format * of the ARN depends on the resource type.

*/ inline ReportPlan& WithReportPlanArn(Aws::String&& value) { SetReportPlanArn(std::move(value)); return *this;} /** *

An Amazon Resource Name (ARN) that uniquely identifies a resource. The format * of the ARN depends on the resource type.

*/ inline ReportPlan& WithReportPlanArn(const char* value) { SetReportPlanArn(value); return *this;} /** *

The unique name of the report plan. This name is between 1 and 256 characters * starting with a letter, and consisting of letters (a-z, A-Z), numbers (0-9), and * underscores (_).

*/ inline const Aws::String& GetReportPlanName() const{ return m_reportPlanName; } /** *

The unique name of the report plan. This name is between 1 and 256 characters * starting with a letter, and consisting of letters (a-z, A-Z), numbers (0-9), and * underscores (_).

*/ inline bool ReportPlanNameHasBeenSet() const { return m_reportPlanNameHasBeenSet; } /** *

The unique name of the report plan. This name is between 1 and 256 characters * starting with a letter, and consisting of letters (a-z, A-Z), numbers (0-9), and * underscores (_).

*/ inline void SetReportPlanName(const Aws::String& value) { m_reportPlanNameHasBeenSet = true; m_reportPlanName = value; } /** *

The unique name of the report plan. This name is between 1 and 256 characters * starting with a letter, and consisting of letters (a-z, A-Z), numbers (0-9), and * underscores (_).

*/ inline void SetReportPlanName(Aws::String&& value) { m_reportPlanNameHasBeenSet = true; m_reportPlanName = std::move(value); } /** *

The unique name of the report plan. This name is between 1 and 256 characters * starting with a letter, and consisting of letters (a-z, A-Z), numbers (0-9), and * underscores (_).

*/ inline void SetReportPlanName(const char* value) { m_reportPlanNameHasBeenSet = true; m_reportPlanName.assign(value); } /** *

The unique name of the report plan. This name is between 1 and 256 characters * starting with a letter, and consisting of letters (a-z, A-Z), numbers (0-9), and * underscores (_).

*/ inline ReportPlan& WithReportPlanName(const Aws::String& value) { SetReportPlanName(value); return *this;} /** *

The unique name of the report plan. This name is between 1 and 256 characters * starting with a letter, and consisting of letters (a-z, A-Z), numbers (0-9), and * underscores (_).

*/ inline ReportPlan& WithReportPlanName(Aws::String&& value) { SetReportPlanName(std::move(value)); return *this;} /** *

The unique name of the report plan. This name is between 1 and 256 characters * starting with a letter, and consisting of letters (a-z, A-Z), numbers (0-9), and * underscores (_).

*/ inline ReportPlan& WithReportPlanName(const char* value) { SetReportPlanName(value); return *this;} /** *

An optional description of the report plan with a maximum 1,024 * characters.

*/ inline const Aws::String& GetReportPlanDescription() const{ return m_reportPlanDescription; } /** *

An optional description of the report plan with a maximum 1,024 * characters.

*/ inline bool ReportPlanDescriptionHasBeenSet() const { return m_reportPlanDescriptionHasBeenSet; } /** *

An optional description of the report plan with a maximum 1,024 * characters.

*/ inline void SetReportPlanDescription(const Aws::String& value) { m_reportPlanDescriptionHasBeenSet = true; m_reportPlanDescription = value; } /** *

An optional description of the report plan with a maximum 1,024 * characters.

*/ inline void SetReportPlanDescription(Aws::String&& value) { m_reportPlanDescriptionHasBeenSet = true; m_reportPlanDescription = std::move(value); } /** *

An optional description of the report plan with a maximum 1,024 * characters.

*/ inline void SetReportPlanDescription(const char* value) { m_reportPlanDescriptionHasBeenSet = true; m_reportPlanDescription.assign(value); } /** *

An optional description of the report plan with a maximum 1,024 * characters.

*/ inline ReportPlan& WithReportPlanDescription(const Aws::String& value) { SetReportPlanDescription(value); return *this;} /** *

An optional description of the report plan with a maximum 1,024 * characters.

*/ inline ReportPlan& WithReportPlanDescription(Aws::String&& value) { SetReportPlanDescription(std::move(value)); return *this;} /** *

An optional description of the report plan with a maximum 1,024 * characters.

*/ inline ReportPlan& WithReportPlanDescription(const char* value) { SetReportPlanDescription(value); return *this;} /** *

Identifies the report template for the report. Reports are built using a * report template. The report templates are:

* RESOURCE_COMPLIANCE_REPORT | CONTROL_COMPLIANCE_REPORT | BACKUP_JOB_REPORT * | COPY_JOB_REPORT | RESTORE_JOB_REPORT

If the report template is * RESOURCE_COMPLIANCE_REPORT or * CONTROL_COMPLIANCE_REPORT, this API resource also describes the * report coverage by Amazon Web Services Regions and frameworks.

*/ inline const ReportSetting& GetReportSetting() const{ return m_reportSetting; } /** *

Identifies the report template for the report. Reports are built using a * report template. The report templates are:

* RESOURCE_COMPLIANCE_REPORT | CONTROL_COMPLIANCE_REPORT | BACKUP_JOB_REPORT * | COPY_JOB_REPORT | RESTORE_JOB_REPORT

If the report template is * RESOURCE_COMPLIANCE_REPORT or * CONTROL_COMPLIANCE_REPORT, this API resource also describes the * report coverage by Amazon Web Services Regions and frameworks.

*/ inline bool ReportSettingHasBeenSet() const { return m_reportSettingHasBeenSet; } /** *

Identifies the report template for the report. Reports are built using a * report template. The report templates are:

* RESOURCE_COMPLIANCE_REPORT | CONTROL_COMPLIANCE_REPORT | BACKUP_JOB_REPORT * | COPY_JOB_REPORT | RESTORE_JOB_REPORT

If the report template is * RESOURCE_COMPLIANCE_REPORT or * CONTROL_COMPLIANCE_REPORT, this API resource also describes the * report coverage by Amazon Web Services Regions and frameworks.

*/ inline void SetReportSetting(const ReportSetting& value) { m_reportSettingHasBeenSet = true; m_reportSetting = value; } /** *

Identifies the report template for the report. Reports are built using a * report template. The report templates are:

* RESOURCE_COMPLIANCE_REPORT | CONTROL_COMPLIANCE_REPORT | BACKUP_JOB_REPORT * | COPY_JOB_REPORT | RESTORE_JOB_REPORT

If the report template is * RESOURCE_COMPLIANCE_REPORT or * CONTROL_COMPLIANCE_REPORT, this API resource also describes the * report coverage by Amazon Web Services Regions and frameworks.

*/ inline void SetReportSetting(ReportSetting&& value) { m_reportSettingHasBeenSet = true; m_reportSetting = std::move(value); } /** *

Identifies the report template for the report. Reports are built using a * report template. The report templates are:

* RESOURCE_COMPLIANCE_REPORT | CONTROL_COMPLIANCE_REPORT | BACKUP_JOB_REPORT * | COPY_JOB_REPORT | RESTORE_JOB_REPORT

If the report template is * RESOURCE_COMPLIANCE_REPORT or * CONTROL_COMPLIANCE_REPORT, this API resource also describes the * report coverage by Amazon Web Services Regions and frameworks.

*/ inline ReportPlan& WithReportSetting(const ReportSetting& value) { SetReportSetting(value); return *this;} /** *

Identifies the report template for the report. Reports are built using a * report template. The report templates are:

* RESOURCE_COMPLIANCE_REPORT | CONTROL_COMPLIANCE_REPORT | BACKUP_JOB_REPORT * | COPY_JOB_REPORT | RESTORE_JOB_REPORT

If the report template is * RESOURCE_COMPLIANCE_REPORT or * CONTROL_COMPLIANCE_REPORT, this API resource also describes the * report coverage by Amazon Web Services Regions and frameworks.

*/ inline ReportPlan& WithReportSetting(ReportSetting&& value) { SetReportSetting(std::move(value)); return *this;} /** *

Contains information about where and how to deliver your reports, * specifically your Amazon S3 bucket name, S3 key prefix, and the formats of your * reports.

*/ inline const ReportDeliveryChannel& GetReportDeliveryChannel() const{ return m_reportDeliveryChannel; } /** *

Contains information about where and how to deliver your reports, * specifically your Amazon S3 bucket name, S3 key prefix, and the formats of your * reports.

*/ inline bool ReportDeliveryChannelHasBeenSet() const { return m_reportDeliveryChannelHasBeenSet; } /** *

Contains information about where and how to deliver your reports, * specifically your Amazon S3 bucket name, S3 key prefix, and the formats of your * reports.

*/ inline void SetReportDeliveryChannel(const ReportDeliveryChannel& value) { m_reportDeliveryChannelHasBeenSet = true; m_reportDeliveryChannel = value; } /** *

Contains information about where and how to deliver your reports, * specifically your Amazon S3 bucket name, S3 key prefix, and the formats of your * reports.

*/ inline void SetReportDeliveryChannel(ReportDeliveryChannel&& value) { m_reportDeliveryChannelHasBeenSet = true; m_reportDeliveryChannel = std::move(value); } /** *

Contains information about where and how to deliver your reports, * specifically your Amazon S3 bucket name, S3 key prefix, and the formats of your * reports.

*/ inline ReportPlan& WithReportDeliveryChannel(const ReportDeliveryChannel& value) { SetReportDeliveryChannel(value); return *this;} /** *

Contains information about where and how to deliver your reports, * specifically your Amazon S3 bucket name, S3 key prefix, and the formats of your * reports.

*/ inline ReportPlan& WithReportDeliveryChannel(ReportDeliveryChannel&& value) { SetReportDeliveryChannel(std::move(value)); return *this;} /** *

The deployment status of a report plan. The statuses are:

* CREATE_IN_PROGRESS | UPDATE_IN_PROGRESS | DELETE_IN_PROGRESS | * COMPLETED

*/ inline const Aws::String& GetDeploymentStatus() const{ return m_deploymentStatus; } /** *

The deployment status of a report plan. The statuses are:

* CREATE_IN_PROGRESS | UPDATE_IN_PROGRESS | DELETE_IN_PROGRESS | * COMPLETED

*/ inline bool DeploymentStatusHasBeenSet() const { return m_deploymentStatusHasBeenSet; } /** *

The deployment status of a report plan. The statuses are:

* CREATE_IN_PROGRESS | UPDATE_IN_PROGRESS | DELETE_IN_PROGRESS | * COMPLETED

*/ inline void SetDeploymentStatus(const Aws::String& value) { m_deploymentStatusHasBeenSet = true; m_deploymentStatus = value; } /** *

The deployment status of a report plan. The statuses are:

* CREATE_IN_PROGRESS | UPDATE_IN_PROGRESS | DELETE_IN_PROGRESS | * COMPLETED

*/ inline void SetDeploymentStatus(Aws::String&& value) { m_deploymentStatusHasBeenSet = true; m_deploymentStatus = std::move(value); } /** *

The deployment status of a report plan. The statuses are:

* CREATE_IN_PROGRESS | UPDATE_IN_PROGRESS | DELETE_IN_PROGRESS | * COMPLETED

*/ inline void SetDeploymentStatus(const char* value) { m_deploymentStatusHasBeenSet = true; m_deploymentStatus.assign(value); } /** *

The deployment status of a report plan. The statuses are:

* CREATE_IN_PROGRESS | UPDATE_IN_PROGRESS | DELETE_IN_PROGRESS | * COMPLETED

*/ inline ReportPlan& WithDeploymentStatus(const Aws::String& value) { SetDeploymentStatus(value); return *this;} /** *

The deployment status of a report plan. The statuses are:

* CREATE_IN_PROGRESS | UPDATE_IN_PROGRESS | DELETE_IN_PROGRESS | * COMPLETED

*/ inline ReportPlan& WithDeploymentStatus(Aws::String&& value) { SetDeploymentStatus(std::move(value)); return *this;} /** *

The deployment status of a report plan. The statuses are:

* CREATE_IN_PROGRESS | UPDATE_IN_PROGRESS | DELETE_IN_PROGRESS | * COMPLETED

*/ inline ReportPlan& WithDeploymentStatus(const char* value) { SetDeploymentStatus(value); return *this;} /** *

The date and time that a report plan is created, in Unix format and * Coordinated Universal Time (UTC). The value of CreationTime is * accurate to milliseconds. For example, the value 1516925490.087 represents * Friday, January 26, 2018 12:11:30.087 AM.

*/ inline const Aws::Utils::DateTime& GetCreationTime() const{ return m_creationTime; } /** *

The date and time that a report plan is created, in Unix format and * Coordinated Universal Time (UTC). The value of CreationTime is * accurate to milliseconds. For example, the value 1516925490.087 represents * Friday, January 26, 2018 12:11:30.087 AM.

*/ inline bool CreationTimeHasBeenSet() const { return m_creationTimeHasBeenSet; } /** *

The date and time that a report plan is created, in Unix format and * Coordinated Universal Time (UTC). The value of CreationTime is * accurate to milliseconds. For example, the value 1516925490.087 represents * Friday, January 26, 2018 12:11:30.087 AM.

*/ inline void SetCreationTime(const Aws::Utils::DateTime& value) { m_creationTimeHasBeenSet = true; m_creationTime = value; } /** *

The date and time that a report plan is created, in Unix format and * Coordinated Universal Time (UTC). The value of CreationTime is * accurate to milliseconds. For example, the value 1516925490.087 represents * Friday, January 26, 2018 12:11:30.087 AM.

*/ inline void SetCreationTime(Aws::Utils::DateTime&& value) { m_creationTimeHasBeenSet = true; m_creationTime = std::move(value); } /** *

The date and time that a report plan is created, in Unix format and * Coordinated Universal Time (UTC). The value of CreationTime is * accurate to milliseconds. For example, the value 1516925490.087 represents * Friday, January 26, 2018 12:11:30.087 AM.

*/ inline ReportPlan& WithCreationTime(const Aws::Utils::DateTime& value) { SetCreationTime(value); return *this;} /** *

The date and time that a report plan is created, in Unix format and * Coordinated Universal Time (UTC). The value of CreationTime is * accurate to milliseconds. For example, the value 1516925490.087 represents * Friday, January 26, 2018 12:11:30.087 AM.

*/ inline ReportPlan& WithCreationTime(Aws::Utils::DateTime&& value) { SetCreationTime(std::move(value)); return *this;} /** *

The date and time that a report job associated with this report plan last * attempted to run, in Unix format and Coordinated Universal Time (UTC). The value * of LastAttemptedExecutionTime is accurate to milliseconds. For * example, the value 1516925490.087 represents Friday, January 26, 2018 * 12:11:30.087 AM.

*/ inline const Aws::Utils::DateTime& GetLastAttemptedExecutionTime() const{ return m_lastAttemptedExecutionTime; } /** *

The date and time that a report job associated with this report plan last * attempted to run, in Unix format and Coordinated Universal Time (UTC). The value * of LastAttemptedExecutionTime is accurate to milliseconds. For * example, the value 1516925490.087 represents Friday, January 26, 2018 * 12:11:30.087 AM.

*/ inline bool LastAttemptedExecutionTimeHasBeenSet() const { return m_lastAttemptedExecutionTimeHasBeenSet; } /** *

The date and time that a report job associated with this report plan last * attempted to run, in Unix format and Coordinated Universal Time (UTC). The value * of LastAttemptedExecutionTime is accurate to milliseconds. For * example, the value 1516925490.087 represents Friday, January 26, 2018 * 12:11:30.087 AM.

*/ inline void SetLastAttemptedExecutionTime(const Aws::Utils::DateTime& value) { m_lastAttemptedExecutionTimeHasBeenSet = true; m_lastAttemptedExecutionTime = value; } /** *

The date and time that a report job associated with this report plan last * attempted to run, in Unix format and Coordinated Universal Time (UTC). The value * of LastAttemptedExecutionTime is accurate to milliseconds. For * example, the value 1516925490.087 represents Friday, January 26, 2018 * 12:11:30.087 AM.

*/ inline void SetLastAttemptedExecutionTime(Aws::Utils::DateTime&& value) { m_lastAttemptedExecutionTimeHasBeenSet = true; m_lastAttemptedExecutionTime = std::move(value); } /** *

The date and time that a report job associated with this report plan last * attempted to run, in Unix format and Coordinated Universal Time (UTC). The value * of LastAttemptedExecutionTime is accurate to milliseconds. For * example, the value 1516925490.087 represents Friday, January 26, 2018 * 12:11:30.087 AM.

*/ inline ReportPlan& WithLastAttemptedExecutionTime(const Aws::Utils::DateTime& value) { SetLastAttemptedExecutionTime(value); return *this;} /** *

The date and time that a report job associated with this report plan last * attempted to run, in Unix format and Coordinated Universal Time (UTC). The value * of LastAttemptedExecutionTime is accurate to milliseconds. For * example, the value 1516925490.087 represents Friday, January 26, 2018 * 12:11:30.087 AM.

*/ inline ReportPlan& WithLastAttemptedExecutionTime(Aws::Utils::DateTime&& value) { SetLastAttemptedExecutionTime(std::move(value)); return *this;} /** *

The date and time that a report job associated with this report plan last * successfully ran, in Unix format and Coordinated Universal Time (UTC). The value * of LastSuccessfulExecutionTime is accurate to milliseconds. For * example, the value 1516925490.087 represents Friday, January 26, 2018 * 12:11:30.087 AM.

*/ inline const Aws::Utils::DateTime& GetLastSuccessfulExecutionTime() const{ return m_lastSuccessfulExecutionTime; } /** *

The date and time that a report job associated with this report plan last * successfully ran, in Unix format and Coordinated Universal Time (UTC). The value * of LastSuccessfulExecutionTime is accurate to milliseconds. For * example, the value 1516925490.087 represents Friday, January 26, 2018 * 12:11:30.087 AM.

*/ inline bool LastSuccessfulExecutionTimeHasBeenSet() const { return m_lastSuccessfulExecutionTimeHasBeenSet; } /** *

The date and time that a report job associated with this report plan last * successfully ran, in Unix format and Coordinated Universal Time (UTC). The value * of LastSuccessfulExecutionTime is accurate to milliseconds. For * example, the value 1516925490.087 represents Friday, January 26, 2018 * 12:11:30.087 AM.

*/ inline void SetLastSuccessfulExecutionTime(const Aws::Utils::DateTime& value) { m_lastSuccessfulExecutionTimeHasBeenSet = true; m_lastSuccessfulExecutionTime = value; } /** *

The date and time that a report job associated with this report plan last * successfully ran, in Unix format and Coordinated Universal Time (UTC). The value * of LastSuccessfulExecutionTime is accurate to milliseconds. For * example, the value 1516925490.087 represents Friday, January 26, 2018 * 12:11:30.087 AM.

*/ inline void SetLastSuccessfulExecutionTime(Aws::Utils::DateTime&& value) { m_lastSuccessfulExecutionTimeHasBeenSet = true; m_lastSuccessfulExecutionTime = std::move(value); } /** *

The date and time that a report job associated with this report plan last * successfully ran, in Unix format and Coordinated Universal Time (UTC). The value * of LastSuccessfulExecutionTime is accurate to milliseconds. For * example, the value 1516925490.087 represents Friday, January 26, 2018 * 12:11:30.087 AM.

*/ inline ReportPlan& WithLastSuccessfulExecutionTime(const Aws::Utils::DateTime& value) { SetLastSuccessfulExecutionTime(value); return *this;} /** *

The date and time that a report job associated with this report plan last * successfully ran, in Unix format and Coordinated Universal Time (UTC). The value * of LastSuccessfulExecutionTime is accurate to milliseconds. For * example, the value 1516925490.087 represents Friday, January 26, 2018 * 12:11:30.087 AM.

*/ inline ReportPlan& WithLastSuccessfulExecutionTime(Aws::Utils::DateTime&& value) { SetLastSuccessfulExecutionTime(std::move(value)); return *this;} private: Aws::String m_reportPlanArn; bool m_reportPlanArnHasBeenSet = false; Aws::String m_reportPlanName; bool m_reportPlanNameHasBeenSet = false; Aws::String m_reportPlanDescription; bool m_reportPlanDescriptionHasBeenSet = false; ReportSetting m_reportSetting; bool m_reportSettingHasBeenSet = false; ReportDeliveryChannel m_reportDeliveryChannel; bool m_reportDeliveryChannelHasBeenSet = false; Aws::String m_deploymentStatus; bool m_deploymentStatusHasBeenSet = false; Aws::Utils::DateTime m_creationTime; bool m_creationTimeHasBeenSet = false; Aws::Utils::DateTime m_lastAttemptedExecutionTime; bool m_lastAttemptedExecutionTimeHasBeenSet = false; Aws::Utils::DateTime m_lastSuccessfulExecutionTime; bool m_lastSuccessfulExecutionTimeHasBeenSet = false; }; } // namespace Model } // namespace Backup } // namespace Aws