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

Represents a log group.

See Also:

AWS API * Reference

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

The name of the log group.

*/ inline const Aws::String& GetLogGroupName() const{ return m_logGroupName; } /** *

The name of the log group.

*/ inline bool LogGroupNameHasBeenSet() const { return m_logGroupNameHasBeenSet; } /** *

The name of the log group.

*/ inline void SetLogGroupName(const Aws::String& value) { m_logGroupNameHasBeenSet = true; m_logGroupName = value; } /** *

The name of the log group.

*/ inline void SetLogGroupName(Aws::String&& value) { m_logGroupNameHasBeenSet = true; m_logGroupName = std::move(value); } /** *

The name of the log group.

*/ inline void SetLogGroupName(const char* value) { m_logGroupNameHasBeenSet = true; m_logGroupName.assign(value); } /** *

The name of the log group.

*/ inline LogGroup& WithLogGroupName(const Aws::String& value) { SetLogGroupName(value); return *this;} /** *

The name of the log group.

*/ inline LogGroup& WithLogGroupName(Aws::String&& value) { SetLogGroupName(std::move(value)); return *this;} /** *

The name of the log group.

*/ inline LogGroup& WithLogGroupName(const char* value) { SetLogGroupName(value); return *this;} /** *

The creation time of the log group, expressed as the number of milliseconds * after Jan 1, 1970 00:00:00 UTC.

*/ inline long long GetCreationTime() const{ return m_creationTime; } /** *

The creation time of the log group, expressed as the number of milliseconds * after Jan 1, 1970 00:00:00 UTC.

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

The creation time of the log group, expressed as the number of milliseconds * after Jan 1, 1970 00:00:00 UTC.

*/ inline void SetCreationTime(long long value) { m_creationTimeHasBeenSet = true; m_creationTime = value; } /** *

The creation time of the log group, expressed as the number of milliseconds * after Jan 1, 1970 00:00:00 UTC.

*/ inline LogGroup& WithCreationTime(long long value) { SetCreationTime(value); return *this;} inline int GetRetentionInDays() const{ return m_retentionInDays; } inline bool RetentionInDaysHasBeenSet() const { return m_retentionInDaysHasBeenSet; } inline void SetRetentionInDays(int value) { m_retentionInDaysHasBeenSet = true; m_retentionInDays = value; } inline LogGroup& WithRetentionInDays(int value) { SetRetentionInDays(value); return *this;} /** *

The number of metric filters.

*/ inline int GetMetricFilterCount() const{ return m_metricFilterCount; } /** *

The number of metric filters.

*/ inline bool MetricFilterCountHasBeenSet() const { return m_metricFilterCountHasBeenSet; } /** *

The number of metric filters.

*/ inline void SetMetricFilterCount(int value) { m_metricFilterCountHasBeenSet = true; m_metricFilterCount = value; } /** *

The number of metric filters.

*/ inline LogGroup& WithMetricFilterCount(int value) { SetMetricFilterCount(value); return *this;} /** *

The Amazon Resource Name (ARN) of the log group. This version of the ARN * includes a trailing :* after the log group name.

Use this * version to refer to the ARN in IAM policies when specifying permissions for most * API actions. The exception is when specifying permissions for TagResource, * UntagResource, * and ListTagsForResource. * The permissions for those three actions require the ARN version that doesn't * include a trailing :*.

*/ inline const Aws::String& GetArn() const{ return m_arn; } /** *

The Amazon Resource Name (ARN) of the log group. This version of the ARN * includes a trailing :* after the log group name.

Use this * version to refer to the ARN in IAM policies when specifying permissions for most * API actions. The exception is when specifying permissions for TagResource, * UntagResource, * and ListTagsForResource. * The permissions for those three actions require the ARN version that doesn't * include a trailing :*.

*/ inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the log group. This version of the ARN * includes a trailing :* after the log group name.

Use this * version to refer to the ARN in IAM policies when specifying permissions for most * API actions. The exception is when specifying permissions for TagResource, * UntagResource, * and ListTagsForResource. * The permissions for those three actions require the ARN version that doesn't * include a trailing :*.

*/ inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; } /** *

The Amazon Resource Name (ARN) of the log group. This version of the ARN * includes a trailing :* after the log group name.

Use this * version to refer to the ARN in IAM policies when specifying permissions for most * API actions. The exception is when specifying permissions for TagResource, * UntagResource, * and ListTagsForResource. * The permissions for those three actions require the ARN version that doesn't * include a trailing :*.

*/ inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the log group. This version of the ARN * includes a trailing :* after the log group name.

Use this * version to refer to the ARN in IAM policies when specifying permissions for most * API actions. The exception is when specifying permissions for TagResource, * UntagResource, * and ListTagsForResource. * The permissions for those three actions require the ARN version that doesn't * include a trailing :*.

*/ inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); } /** *

The Amazon Resource Name (ARN) of the log group. This version of the ARN * includes a trailing :* after the log group name.

Use this * version to refer to the ARN in IAM policies when specifying permissions for most * API actions. The exception is when specifying permissions for TagResource, * UntagResource, * and ListTagsForResource. * The permissions for those three actions require the ARN version that doesn't * include a trailing :*.

*/ inline LogGroup& WithArn(const Aws::String& value) { SetArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the log group. This version of the ARN * includes a trailing :* after the log group name.

Use this * version to refer to the ARN in IAM policies when specifying permissions for most * API actions. The exception is when specifying permissions for TagResource, * UntagResource, * and ListTagsForResource. * The permissions for those three actions require the ARN version that doesn't * include a trailing :*.

*/ inline LogGroup& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the log group. This version of the ARN * includes a trailing :* after the log group name.

Use this * version to refer to the ARN in IAM policies when specifying permissions for most * API actions. The exception is when specifying permissions for TagResource, * UntagResource, * and ListTagsForResource. * The permissions for those three actions require the ARN version that doesn't * include a trailing :*.

*/ inline LogGroup& WithArn(const char* value) { SetArn(value); return *this;} /** *

The number of bytes stored.

*/ inline long long GetStoredBytes() const{ return m_storedBytes; } /** *

The number of bytes stored.

*/ inline bool StoredBytesHasBeenSet() const { return m_storedBytesHasBeenSet; } /** *

The number of bytes stored.

*/ inline void SetStoredBytes(long long value) { m_storedBytesHasBeenSet = true; m_storedBytes = value; } /** *

The number of bytes stored.

*/ inline LogGroup& WithStoredBytes(long long value) { SetStoredBytes(value); return *this;} /** *

The Amazon Resource Name (ARN) of the KMS key to use when encrypting log * data.

*/ inline const Aws::String& GetKmsKeyId() const{ return m_kmsKeyId; } /** *

The Amazon Resource Name (ARN) of the KMS key to use when encrypting log * data.

*/ inline bool KmsKeyIdHasBeenSet() const { return m_kmsKeyIdHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the KMS key to use when encrypting log * data.

*/ inline void SetKmsKeyId(const Aws::String& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = value; } /** *

The Amazon Resource Name (ARN) of the KMS key to use when encrypting log * data.

*/ inline void SetKmsKeyId(Aws::String&& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = std::move(value); } /** *

The Amazon Resource Name (ARN) of the KMS key to use when encrypting log * data.

*/ inline void SetKmsKeyId(const char* value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId.assign(value); } /** *

The Amazon Resource Name (ARN) of the KMS key to use when encrypting log * data.

*/ inline LogGroup& WithKmsKeyId(const Aws::String& value) { SetKmsKeyId(value); return *this;} /** *

The Amazon Resource Name (ARN) of the KMS key to use when encrypting log * data.

*/ inline LogGroup& WithKmsKeyId(Aws::String&& value) { SetKmsKeyId(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the KMS key to use when encrypting log * data.

*/ inline LogGroup& WithKmsKeyId(const char* value) { SetKmsKeyId(value); return *this;} /** *

Displays whether this log group has a protection policy, or whether it had * one in the past. For more information, see PutDataProtectionPolicy.

*/ inline const DataProtectionStatus& GetDataProtectionStatus() const{ return m_dataProtectionStatus; } /** *

Displays whether this log group has a protection policy, or whether it had * one in the past. For more information, see PutDataProtectionPolicy.

*/ inline bool DataProtectionStatusHasBeenSet() const { return m_dataProtectionStatusHasBeenSet; } /** *

Displays whether this log group has a protection policy, or whether it had * one in the past. For more information, see PutDataProtectionPolicy.

*/ inline void SetDataProtectionStatus(const DataProtectionStatus& value) { m_dataProtectionStatusHasBeenSet = true; m_dataProtectionStatus = value; } /** *

Displays whether this log group has a protection policy, or whether it had * one in the past. For more information, see PutDataProtectionPolicy.

*/ inline void SetDataProtectionStatus(DataProtectionStatus&& value) { m_dataProtectionStatusHasBeenSet = true; m_dataProtectionStatus = std::move(value); } /** *

Displays whether this log group has a protection policy, or whether it had * one in the past. For more information, see PutDataProtectionPolicy.

*/ inline LogGroup& WithDataProtectionStatus(const DataProtectionStatus& value) { SetDataProtectionStatus(value); return *this;} /** *

Displays whether this log group has a protection policy, or whether it had * one in the past. For more information, see PutDataProtectionPolicy.

*/ inline LogGroup& WithDataProtectionStatus(DataProtectionStatus&& value) { SetDataProtectionStatus(std::move(value)); return *this;} /** *

Displays all the properties that this log group has inherited from * account-level settings.

*/ inline const Aws::Vector& GetInheritedProperties() const{ return m_inheritedProperties; } /** *

Displays all the properties that this log group has inherited from * account-level settings.

*/ inline bool InheritedPropertiesHasBeenSet() const { return m_inheritedPropertiesHasBeenSet; } /** *

Displays all the properties that this log group has inherited from * account-level settings.

*/ inline void SetInheritedProperties(const Aws::Vector& value) { m_inheritedPropertiesHasBeenSet = true; m_inheritedProperties = value; } /** *

Displays all the properties that this log group has inherited from * account-level settings.

*/ inline void SetInheritedProperties(Aws::Vector&& value) { m_inheritedPropertiesHasBeenSet = true; m_inheritedProperties = std::move(value); } /** *

Displays all the properties that this log group has inherited from * account-level settings.

*/ inline LogGroup& WithInheritedProperties(const Aws::Vector& value) { SetInheritedProperties(value); return *this;} /** *

Displays all the properties that this log group has inherited from * account-level settings.

*/ inline LogGroup& WithInheritedProperties(Aws::Vector&& value) { SetInheritedProperties(std::move(value)); return *this;} /** *

Displays all the properties that this log group has inherited from * account-level settings.

*/ inline LogGroup& AddInheritedProperties(const InheritedProperty& value) { m_inheritedPropertiesHasBeenSet = true; m_inheritedProperties.push_back(value); return *this; } /** *

Displays all the properties that this log group has inherited from * account-level settings.

*/ inline LogGroup& AddInheritedProperties(InheritedProperty&& value) { m_inheritedPropertiesHasBeenSet = true; m_inheritedProperties.push_back(std::move(value)); return *this; } /** *

This specifies the log group class for this log group. There are two * classes:

  • The Standard log class supports all * CloudWatch Logs features.

  • The Infrequent Access * log class supports a subset of CloudWatch Logs features and incurs lower * costs.

For details about the features supported by each * class, see Log * classes

*/ inline const LogGroupClass& GetLogGroupClass() const{ return m_logGroupClass; } /** *

This specifies the log group class for this log group. There are two * classes:

  • The Standard log class supports all * CloudWatch Logs features.

  • The Infrequent Access * log class supports a subset of CloudWatch Logs features and incurs lower * costs.

For details about the features supported by each * class, see Log * classes

*/ inline bool LogGroupClassHasBeenSet() const { return m_logGroupClassHasBeenSet; } /** *

This specifies the log group class for this log group. There are two * classes:

  • The Standard log class supports all * CloudWatch Logs features.

  • The Infrequent Access * log class supports a subset of CloudWatch Logs features and incurs lower * costs.

For details about the features supported by each * class, see Log * classes

*/ inline void SetLogGroupClass(const LogGroupClass& value) { m_logGroupClassHasBeenSet = true; m_logGroupClass = value; } /** *

This specifies the log group class for this log group. There are two * classes:

  • The Standard log class supports all * CloudWatch Logs features.

  • The Infrequent Access * log class supports a subset of CloudWatch Logs features and incurs lower * costs.

For details about the features supported by each * class, see Log * classes

*/ inline void SetLogGroupClass(LogGroupClass&& value) { m_logGroupClassHasBeenSet = true; m_logGroupClass = std::move(value); } /** *

This specifies the log group class for this log group. There are two * classes:

  • The Standard log class supports all * CloudWatch Logs features.

  • The Infrequent Access * log class supports a subset of CloudWatch Logs features and incurs lower * costs.

For details about the features supported by each * class, see Log * classes

*/ inline LogGroup& WithLogGroupClass(const LogGroupClass& value) { SetLogGroupClass(value); return *this;} /** *

This specifies the log group class for this log group. There are two * classes:

  • The Standard log class supports all * CloudWatch Logs features.

  • The Infrequent Access * log class supports a subset of CloudWatch Logs features and incurs lower * costs.

For details about the features supported by each * class, see Log * classes

*/ inline LogGroup& WithLogGroupClass(LogGroupClass&& value) { SetLogGroupClass(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the log group. This version of the ARN * doesn't include a trailing :* after the log group name.

Use * this version to refer to the ARN in the following situations:

  • *

    In the logGroupIdentifier input field in many CloudWatch Logs * APIs.

  • In the resourceArn field in tagging * APIs

  • In IAM policies, when specifying permissions for TagResource, * UntagResource, * and ListTagsForResource.

    *
*/ inline const Aws::String& GetLogGroupArn() const{ return m_logGroupArn; } /** *

The Amazon Resource Name (ARN) of the log group. This version of the ARN * doesn't include a trailing :* after the log group name.

Use * this version to refer to the ARN in the following situations:

  • *

    In the logGroupIdentifier input field in many CloudWatch Logs * APIs.

  • In the resourceArn field in tagging * APIs

  • In IAM policies, when specifying permissions for TagResource, * UntagResource, * and ListTagsForResource.

    *
*/ inline bool LogGroupArnHasBeenSet() const { return m_logGroupArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the log group. This version of the ARN * doesn't include a trailing :* after the log group name.

Use * this version to refer to the ARN in the following situations:

  • *

    In the logGroupIdentifier input field in many CloudWatch Logs * APIs.

  • In the resourceArn field in tagging * APIs

  • In IAM policies, when specifying permissions for TagResource, * UntagResource, * and ListTagsForResource.

    *
*/ inline void SetLogGroupArn(const Aws::String& value) { m_logGroupArnHasBeenSet = true; m_logGroupArn = value; } /** *

The Amazon Resource Name (ARN) of the log group. This version of the ARN * doesn't include a trailing :* after the log group name.

Use * this version to refer to the ARN in the following situations:

  • *

    In the logGroupIdentifier input field in many CloudWatch Logs * APIs.

  • In the resourceArn field in tagging * APIs

  • In IAM policies, when specifying permissions for TagResource, * UntagResource, * and ListTagsForResource.

    *
*/ inline void SetLogGroupArn(Aws::String&& value) { m_logGroupArnHasBeenSet = true; m_logGroupArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the log group. This version of the ARN * doesn't include a trailing :* after the log group name.

Use * this version to refer to the ARN in the following situations:

  • *

    In the logGroupIdentifier input field in many CloudWatch Logs * APIs.

  • In the resourceArn field in tagging * APIs

  • In IAM policies, when specifying permissions for TagResource, * UntagResource, * and ListTagsForResource.

    *
*/ inline void SetLogGroupArn(const char* value) { m_logGroupArnHasBeenSet = true; m_logGroupArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the log group. This version of the ARN * doesn't include a trailing :* after the log group name.

Use * this version to refer to the ARN in the following situations:

  • *

    In the logGroupIdentifier input field in many CloudWatch Logs * APIs.

  • In the resourceArn field in tagging * APIs

  • In IAM policies, when specifying permissions for TagResource, * UntagResource, * and ListTagsForResource.

    *
*/ inline LogGroup& WithLogGroupArn(const Aws::String& value) { SetLogGroupArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the log group. This version of the ARN * doesn't include a trailing :* after the log group name.

Use * this version to refer to the ARN in the following situations:

  • *

    In the logGroupIdentifier input field in many CloudWatch Logs * APIs.

  • In the resourceArn field in tagging * APIs

  • In IAM policies, when specifying permissions for TagResource, * UntagResource, * and ListTagsForResource.

    *
*/ inline LogGroup& WithLogGroupArn(Aws::String&& value) { SetLogGroupArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the log group. This version of the ARN * doesn't include a trailing :* after the log group name.

Use * this version to refer to the ARN in the following situations:

  • *

    In the logGroupIdentifier input field in many CloudWatch Logs * APIs.

  • In the resourceArn field in tagging * APIs

  • In IAM policies, when specifying permissions for TagResource, * UntagResource, * and ListTagsForResource.

    *
*/ inline LogGroup& WithLogGroupArn(const char* value) { SetLogGroupArn(value); return *this;} private: Aws::String m_logGroupName; bool m_logGroupNameHasBeenSet = false; long long m_creationTime; bool m_creationTimeHasBeenSet = false; int m_retentionInDays; bool m_retentionInDaysHasBeenSet = false; int m_metricFilterCount; bool m_metricFilterCountHasBeenSet = false; Aws::String m_arn; bool m_arnHasBeenSet = false; long long m_storedBytes; bool m_storedBytesHasBeenSet = false; Aws::String m_kmsKeyId; bool m_kmsKeyIdHasBeenSet = false; DataProtectionStatus m_dataProtectionStatus; bool m_dataProtectionStatusHasBeenSet = false; Aws::Vector m_inheritedProperties; bool m_inheritedPropertiesHasBeenSet = false; LogGroupClass m_logGroupClass; bool m_logGroupClassHasBeenSet = false; Aws::String m_logGroupArn; bool m_logGroupArnHasBeenSet = false; }; } // namespace Model } // namespace CloudWatchLogs } // namespace Aws