/** * 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 namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace AppStream { namespace Model { /** *

Describes information about the usage report subscription.

See * Also:

AWS * API Reference

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

The Amazon S3 bucket where generated reports are stored.

If you * enabled on-instance session scripts and Amazon S3 logging for your session * script configuration, AppStream 2.0 created an S3 bucket to store the script * output. The bucket is unique to your account and Region. When you enable usage * reporting in this case, AppStream 2.0 uses the same bucket to store your usage * reports. If you haven't already enabled on-instance session scripts, when you * enable usage reports, AppStream 2.0 creates a new S3 bucket.

*/ inline const Aws::String& GetS3BucketName() const{ return m_s3BucketName; } /** *

The Amazon S3 bucket where generated reports are stored.

If you * enabled on-instance session scripts and Amazon S3 logging for your session * script configuration, AppStream 2.0 created an S3 bucket to store the script * output. The bucket is unique to your account and Region. When you enable usage * reporting in this case, AppStream 2.0 uses the same bucket to store your usage * reports. If you haven't already enabled on-instance session scripts, when you * enable usage reports, AppStream 2.0 creates a new S3 bucket.

*/ inline bool S3BucketNameHasBeenSet() const { return m_s3BucketNameHasBeenSet; } /** *

The Amazon S3 bucket where generated reports are stored.

If you * enabled on-instance session scripts and Amazon S3 logging for your session * script configuration, AppStream 2.0 created an S3 bucket to store the script * output. The bucket is unique to your account and Region. When you enable usage * reporting in this case, AppStream 2.0 uses the same bucket to store your usage * reports. If you haven't already enabled on-instance session scripts, when you * enable usage reports, AppStream 2.0 creates a new S3 bucket.

*/ inline void SetS3BucketName(const Aws::String& value) { m_s3BucketNameHasBeenSet = true; m_s3BucketName = value; } /** *

The Amazon S3 bucket where generated reports are stored.

If you * enabled on-instance session scripts and Amazon S3 logging for your session * script configuration, AppStream 2.0 created an S3 bucket to store the script * output. The bucket is unique to your account and Region. When you enable usage * reporting in this case, AppStream 2.0 uses the same bucket to store your usage * reports. If you haven't already enabled on-instance session scripts, when you * enable usage reports, AppStream 2.0 creates a new S3 bucket.

*/ inline void SetS3BucketName(Aws::String&& value) { m_s3BucketNameHasBeenSet = true; m_s3BucketName = std::move(value); } /** *

The Amazon S3 bucket where generated reports are stored.

If you * enabled on-instance session scripts and Amazon S3 logging for your session * script configuration, AppStream 2.0 created an S3 bucket to store the script * output. The bucket is unique to your account and Region. When you enable usage * reporting in this case, AppStream 2.0 uses the same bucket to store your usage * reports. If you haven't already enabled on-instance session scripts, when you * enable usage reports, AppStream 2.0 creates a new S3 bucket.

*/ inline void SetS3BucketName(const char* value) { m_s3BucketNameHasBeenSet = true; m_s3BucketName.assign(value); } /** *

The Amazon S3 bucket where generated reports are stored.

If you * enabled on-instance session scripts and Amazon S3 logging for your session * script configuration, AppStream 2.0 created an S3 bucket to store the script * output. The bucket is unique to your account and Region. When you enable usage * reporting in this case, AppStream 2.0 uses the same bucket to store your usage * reports. If you haven't already enabled on-instance session scripts, when you * enable usage reports, AppStream 2.0 creates a new S3 bucket.

*/ inline UsageReportSubscription& WithS3BucketName(const Aws::String& value) { SetS3BucketName(value); return *this;} /** *

The Amazon S3 bucket where generated reports are stored.

If you * enabled on-instance session scripts and Amazon S3 logging for your session * script configuration, AppStream 2.0 created an S3 bucket to store the script * output. The bucket is unique to your account and Region. When you enable usage * reporting in this case, AppStream 2.0 uses the same bucket to store your usage * reports. If you haven't already enabled on-instance session scripts, when you * enable usage reports, AppStream 2.0 creates a new S3 bucket.

*/ inline UsageReportSubscription& WithS3BucketName(Aws::String&& value) { SetS3BucketName(std::move(value)); return *this;} /** *

The Amazon S3 bucket where generated reports are stored.

If you * enabled on-instance session scripts and Amazon S3 logging for your session * script configuration, AppStream 2.0 created an S3 bucket to store the script * output. The bucket is unique to your account and Region. When you enable usage * reporting in this case, AppStream 2.0 uses the same bucket to store your usage * reports. If you haven't already enabled on-instance session scripts, when you * enable usage reports, AppStream 2.0 creates a new S3 bucket.

*/ inline UsageReportSubscription& WithS3BucketName(const char* value) { SetS3BucketName(value); return *this;} /** *

The schedule for generating usage reports.

*/ inline const UsageReportSchedule& GetSchedule() const{ return m_schedule; } /** *

The schedule for generating usage reports.

*/ inline bool ScheduleHasBeenSet() const { return m_scheduleHasBeenSet; } /** *

The schedule for generating usage reports.

*/ inline void SetSchedule(const UsageReportSchedule& value) { m_scheduleHasBeenSet = true; m_schedule = value; } /** *

The schedule for generating usage reports.

*/ inline void SetSchedule(UsageReportSchedule&& value) { m_scheduleHasBeenSet = true; m_schedule = std::move(value); } /** *

The schedule for generating usage reports.

*/ inline UsageReportSubscription& WithSchedule(const UsageReportSchedule& value) { SetSchedule(value); return *this;} /** *

The schedule for generating usage reports.

*/ inline UsageReportSubscription& WithSchedule(UsageReportSchedule&& value) { SetSchedule(std::move(value)); return *this;} /** *

The time when the last usage report was generated.

*/ inline const Aws::Utils::DateTime& GetLastGeneratedReportDate() const{ return m_lastGeneratedReportDate; } /** *

The time when the last usage report was generated.

*/ inline bool LastGeneratedReportDateHasBeenSet() const { return m_lastGeneratedReportDateHasBeenSet; } /** *

The time when the last usage report was generated.

*/ inline void SetLastGeneratedReportDate(const Aws::Utils::DateTime& value) { m_lastGeneratedReportDateHasBeenSet = true; m_lastGeneratedReportDate = value; } /** *

The time when the last usage report was generated.

*/ inline void SetLastGeneratedReportDate(Aws::Utils::DateTime&& value) { m_lastGeneratedReportDateHasBeenSet = true; m_lastGeneratedReportDate = std::move(value); } /** *

The time when the last usage report was generated.

*/ inline UsageReportSubscription& WithLastGeneratedReportDate(const Aws::Utils::DateTime& value) { SetLastGeneratedReportDate(value); return *this;} /** *

The time when the last usage report was generated.

*/ inline UsageReportSubscription& WithLastGeneratedReportDate(Aws::Utils::DateTime&& value) { SetLastGeneratedReportDate(std::move(value)); return *this;} /** *

The errors that were returned if usage reports couldn't be generated.

*/ inline const Aws::Vector& GetSubscriptionErrors() const{ return m_subscriptionErrors; } /** *

The errors that were returned if usage reports couldn't be generated.

*/ inline bool SubscriptionErrorsHasBeenSet() const { return m_subscriptionErrorsHasBeenSet; } /** *

The errors that were returned if usage reports couldn't be generated.

*/ inline void SetSubscriptionErrors(const Aws::Vector& value) { m_subscriptionErrorsHasBeenSet = true; m_subscriptionErrors = value; } /** *

The errors that were returned if usage reports couldn't be generated.

*/ inline void SetSubscriptionErrors(Aws::Vector&& value) { m_subscriptionErrorsHasBeenSet = true; m_subscriptionErrors = std::move(value); } /** *

The errors that were returned if usage reports couldn't be generated.

*/ inline UsageReportSubscription& WithSubscriptionErrors(const Aws::Vector& value) { SetSubscriptionErrors(value); return *this;} /** *

The errors that were returned if usage reports couldn't be generated.

*/ inline UsageReportSubscription& WithSubscriptionErrors(Aws::Vector&& value) { SetSubscriptionErrors(std::move(value)); return *this;} /** *

The errors that were returned if usage reports couldn't be generated.

*/ inline UsageReportSubscription& AddSubscriptionErrors(const LastReportGenerationExecutionError& value) { m_subscriptionErrorsHasBeenSet = true; m_subscriptionErrors.push_back(value); return *this; } /** *

The errors that were returned if usage reports couldn't be generated.

*/ inline UsageReportSubscription& AddSubscriptionErrors(LastReportGenerationExecutionError&& value) { m_subscriptionErrorsHasBeenSet = true; m_subscriptionErrors.push_back(std::move(value)); return *this; } private: Aws::String m_s3BucketName; bool m_s3BucketNameHasBeenSet = false; UsageReportSchedule m_schedule; bool m_scheduleHasBeenSet = false; Aws::Utils::DateTime m_lastGeneratedReportDate; bool m_lastGeneratedReportDateHasBeenSet = false; Aws::Vector m_subscriptionErrors; bool m_subscriptionErrorsHasBeenSet = false; }; } // namespace Model } // namespace AppStream } // namespace Aws