/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include The definition of AWS Cost and Usage Report. You can specify the report name,
* time unit, report format, compression format, S3 bucket, additional artifacts,
* and schema elements in the definition. See Also:
AWS
* API Reference
A list of strings that indicate additional content that Amazon Web Services * includes in the report, such as individual resource IDs.
*/ inline const Aws::VectorA list of strings that indicate additional content that Amazon Web Services * includes in the report, such as individual resource IDs.
*/ inline bool AdditionalSchemaElementsHasBeenSet() const { return m_additionalSchemaElementsHasBeenSet; } /** *A list of strings that indicate additional content that Amazon Web Services * includes in the report, such as individual resource IDs.
*/ inline void SetAdditionalSchemaElements(const Aws::VectorA list of strings that indicate additional content that Amazon Web Services * includes in the report, such as individual resource IDs.
*/ inline void SetAdditionalSchemaElements(Aws::VectorA list of strings that indicate additional content that Amazon Web Services * includes in the report, such as individual resource IDs.
*/ inline ReportDefinition& WithAdditionalSchemaElements(const Aws::VectorA list of strings that indicate additional content that Amazon Web Services * includes in the report, such as individual resource IDs.
*/ inline ReportDefinition& WithAdditionalSchemaElements(Aws::VectorA list of strings that indicate additional content that Amazon Web Services * includes in the report, such as individual resource IDs.
*/ inline ReportDefinition& AddAdditionalSchemaElements(const SchemaElement& value) { m_additionalSchemaElementsHasBeenSet = true; m_additionalSchemaElements.push_back(value); return *this; } /** *A list of strings that indicate additional content that Amazon Web Services * includes in the report, such as individual resource IDs.
*/ inline ReportDefinition& AddAdditionalSchemaElements(SchemaElement&& value) { m_additionalSchemaElementsHasBeenSet = true; m_additionalSchemaElements.push_back(std::move(value)); return *this; } inline const Aws::String& GetS3Bucket() const{ return m_s3Bucket; } inline bool S3BucketHasBeenSet() const { return m_s3BucketHasBeenSet; } inline void SetS3Bucket(const Aws::String& value) { m_s3BucketHasBeenSet = true; m_s3Bucket = value; } inline void SetS3Bucket(Aws::String&& value) { m_s3BucketHasBeenSet = true; m_s3Bucket = std::move(value); } inline void SetS3Bucket(const char* value) { m_s3BucketHasBeenSet = true; m_s3Bucket.assign(value); } inline ReportDefinition& WithS3Bucket(const Aws::String& value) { SetS3Bucket(value); return *this;} inline ReportDefinition& WithS3Bucket(Aws::String&& value) { SetS3Bucket(std::move(value)); return *this;} inline ReportDefinition& WithS3Bucket(const char* value) { SetS3Bucket(value); return *this;} inline const Aws::String& GetS3Prefix() const{ return m_s3Prefix; } inline bool S3PrefixHasBeenSet() const { return m_s3PrefixHasBeenSet; } inline void SetS3Prefix(const Aws::String& value) { m_s3PrefixHasBeenSet = true; m_s3Prefix = value; } inline void SetS3Prefix(Aws::String&& value) { m_s3PrefixHasBeenSet = true; m_s3Prefix = std::move(value); } inline void SetS3Prefix(const char* value) { m_s3PrefixHasBeenSet = true; m_s3Prefix.assign(value); } inline ReportDefinition& WithS3Prefix(const Aws::String& value) { SetS3Prefix(value); return *this;} inline ReportDefinition& WithS3Prefix(Aws::String&& value) { SetS3Prefix(std::move(value)); return *this;} inline ReportDefinition& WithS3Prefix(const char* value) { SetS3Prefix(value); return *this;} inline const AWSRegion& GetS3Region() const{ return m_s3Region; } inline bool S3RegionHasBeenSet() const { return m_s3RegionHasBeenSet; } inline void SetS3Region(const AWSRegion& value) { m_s3RegionHasBeenSet = true; m_s3Region = value; } inline void SetS3Region(AWSRegion&& value) { m_s3RegionHasBeenSet = true; m_s3Region = std::move(value); } inline ReportDefinition& WithS3Region(const AWSRegion& value) { SetS3Region(value); return *this;} inline ReportDefinition& WithS3Region(AWSRegion&& value) { SetS3Region(std::move(value)); return *this;} /** *A list of manifests that you want Amazon Web Services to create for this * report.
*/ inline const Aws::VectorA list of manifests that you want Amazon Web Services to create for this * report.
*/ inline bool AdditionalArtifactsHasBeenSet() const { return m_additionalArtifactsHasBeenSet; } /** *A list of manifests that you want Amazon Web Services to create for this * report.
*/ inline void SetAdditionalArtifacts(const Aws::VectorA list of manifests that you want Amazon Web Services to create for this * report.
*/ inline void SetAdditionalArtifacts(Aws::VectorA list of manifests that you want Amazon Web Services to create for this * report.
*/ inline ReportDefinition& WithAdditionalArtifacts(const Aws::VectorA list of manifests that you want Amazon Web Services to create for this * report.
*/ inline ReportDefinition& WithAdditionalArtifacts(Aws::VectorA list of manifests that you want Amazon Web Services to create for this * report.
*/ inline ReportDefinition& AddAdditionalArtifacts(const AdditionalArtifact& value) { m_additionalArtifactsHasBeenSet = true; m_additionalArtifacts.push_back(value); return *this; } /** *A list of manifests that you want Amazon Web Services to create for this * report.
*/ inline ReportDefinition& AddAdditionalArtifacts(AdditionalArtifact&& value) { m_additionalArtifactsHasBeenSet = true; m_additionalArtifacts.push_back(std::move(value)); return *this; } /** *Whether you want Amazon Web Services to update your reports after they have * been finalized if Amazon Web Services detects charges related to previous * months. These charges can include refunds, credits, or support fees.
*/ inline bool GetRefreshClosedReports() const{ return m_refreshClosedReports; } /** *Whether you want Amazon Web Services to update your reports after they have * been finalized if Amazon Web Services detects charges related to previous * months. These charges can include refunds, credits, or support fees.
*/ inline bool RefreshClosedReportsHasBeenSet() const { return m_refreshClosedReportsHasBeenSet; } /** *Whether you want Amazon Web Services to update your reports after they have * been finalized if Amazon Web Services detects charges related to previous * months. These charges can include refunds, credits, or support fees.
*/ inline void SetRefreshClosedReports(bool value) { m_refreshClosedReportsHasBeenSet = true; m_refreshClosedReports = value; } /** *Whether you want Amazon Web Services to update your reports after they have * been finalized if Amazon Web Services detects charges related to previous * months. These charges can include refunds, credits, or support fees.
*/ inline ReportDefinition& WithRefreshClosedReports(bool value) { SetRefreshClosedReports(value); return *this;} /** *Whether you want Amazon Web Services to overwrite the previous version of * each report or to deliver the report in addition to the previous versions.
*/ inline const ReportVersioning& GetReportVersioning() const{ return m_reportVersioning; } /** *Whether you want Amazon Web Services to overwrite the previous version of * each report or to deliver the report in addition to the previous versions.
*/ inline bool ReportVersioningHasBeenSet() const { return m_reportVersioningHasBeenSet; } /** *Whether you want Amazon Web Services to overwrite the previous version of * each report or to deliver the report in addition to the previous versions.
*/ inline void SetReportVersioning(const ReportVersioning& value) { m_reportVersioningHasBeenSet = true; m_reportVersioning = value; } /** *Whether you want Amazon Web Services to overwrite the previous version of * each report or to deliver the report in addition to the previous versions.
*/ inline void SetReportVersioning(ReportVersioning&& value) { m_reportVersioningHasBeenSet = true; m_reportVersioning = std::move(value); } /** *Whether you want Amazon Web Services to overwrite the previous version of * each report or to deliver the report in addition to the previous versions.
*/ inline ReportDefinition& WithReportVersioning(const ReportVersioning& value) { SetReportVersioning(value); return *this;} /** *Whether you want Amazon Web Services to overwrite the previous version of * each report or to deliver the report in addition to the previous versions.
*/ inline ReportDefinition& WithReportVersioning(ReportVersioning&& value) { SetReportVersioning(std::move(value)); return *this;} /** *The Amazon resource name of the billing view. You can get this value by * using the billing view service public APIs.
*/ inline const Aws::String& GetBillingViewArn() const{ return m_billingViewArn; } /** *The Amazon resource name of the billing view. You can get this value by * using the billing view service public APIs.
*/ inline bool BillingViewArnHasBeenSet() const { return m_billingViewArnHasBeenSet; } /** *The Amazon resource name of the billing view. You can get this value by * using the billing view service public APIs.
*/ inline void SetBillingViewArn(const Aws::String& value) { m_billingViewArnHasBeenSet = true; m_billingViewArn = value; } /** *The Amazon resource name of the billing view. You can get this value by * using the billing view service public APIs.
*/ inline void SetBillingViewArn(Aws::String&& value) { m_billingViewArnHasBeenSet = true; m_billingViewArn = std::move(value); } /** *The Amazon resource name of the billing view. You can get this value by * using the billing view service public APIs.
*/ inline void SetBillingViewArn(const char* value) { m_billingViewArnHasBeenSet = true; m_billingViewArn.assign(value); } /** *The Amazon resource name of the billing view. You can get this value by * using the billing view service public APIs.
*/ inline ReportDefinition& WithBillingViewArn(const Aws::String& value) { SetBillingViewArn(value); return *this;} /** *The Amazon resource name of the billing view. You can get this value by * using the billing view service public APIs.
*/ inline ReportDefinition& WithBillingViewArn(Aws::String&& value) { SetBillingViewArn(std::move(value)); return *this;} /** *The Amazon resource name of the billing view. You can get this value by * using the billing view service public APIs.
*/ inline ReportDefinition& WithBillingViewArn(const char* value) { SetBillingViewArn(value); return *this;} private: Aws::String m_reportName; bool m_reportNameHasBeenSet = false; TimeUnit m_timeUnit; bool m_timeUnitHasBeenSet = false; ReportFormat m_format; bool m_formatHasBeenSet = false; CompressionFormat m_compression; bool m_compressionHasBeenSet = false; Aws::Vector