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

Describes an Amazon Lightsail bucket.

See Also:

AWS * API Reference

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

The Lightsail resource type of the bucket (for example, * Bucket).

*/ inline const Aws::String& GetResourceType() const{ return m_resourceType; } /** *

The Lightsail resource type of the bucket (for example, * Bucket).

*/ inline bool ResourceTypeHasBeenSet() const { return m_resourceTypeHasBeenSet; } /** *

The Lightsail resource type of the bucket (for example, * Bucket).

*/ inline void SetResourceType(const Aws::String& value) { m_resourceTypeHasBeenSet = true; m_resourceType = value; } /** *

The Lightsail resource type of the bucket (for example, * Bucket).

*/ inline void SetResourceType(Aws::String&& value) { m_resourceTypeHasBeenSet = true; m_resourceType = std::move(value); } /** *

The Lightsail resource type of the bucket (for example, * Bucket).

*/ inline void SetResourceType(const char* value) { m_resourceTypeHasBeenSet = true; m_resourceType.assign(value); } /** *

The Lightsail resource type of the bucket (for example, * Bucket).

*/ inline Bucket& WithResourceType(const Aws::String& value) { SetResourceType(value); return *this;} /** *

The Lightsail resource type of the bucket (for example, * Bucket).

*/ inline Bucket& WithResourceType(Aws::String&& value) { SetResourceType(std::move(value)); return *this;} /** *

The Lightsail resource type of the bucket (for example, * Bucket).

*/ inline Bucket& WithResourceType(const char* value) { SetResourceType(value); return *this;} /** *

An object that describes the access rules of the bucket.

*/ inline const AccessRules& GetAccessRules() const{ return m_accessRules; } /** *

An object that describes the access rules of the bucket.

*/ inline bool AccessRulesHasBeenSet() const { return m_accessRulesHasBeenSet; } /** *

An object that describes the access rules of the bucket.

*/ inline void SetAccessRules(const AccessRules& value) { m_accessRulesHasBeenSet = true; m_accessRules = value; } /** *

An object that describes the access rules of the bucket.

*/ inline void SetAccessRules(AccessRules&& value) { m_accessRulesHasBeenSet = true; m_accessRules = std::move(value); } /** *

An object that describes the access rules of the bucket.

*/ inline Bucket& WithAccessRules(const AccessRules& value) { SetAccessRules(value); return *this;} /** *

An object that describes the access rules of the bucket.

*/ inline Bucket& WithAccessRules(AccessRules&& value) { SetAccessRules(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the bucket.

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

The Amazon Resource Name (ARN) of the bucket.

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

The Amazon Resource Name (ARN) of the bucket.

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

The Amazon Resource Name (ARN) of the bucket.

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

The Amazon Resource Name (ARN) of the bucket.

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

The Amazon Resource Name (ARN) of the bucket.

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

The Amazon Resource Name (ARN) of the bucket.

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

The Amazon Resource Name (ARN) of the bucket.

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

The ID of the bundle currently applied to the bucket.

A bucket bundle * specifies the monthly cost, storage space, and data transfer quota for a * bucket.

Use the UpdateBucketBundle * action to change the bundle of a bucket.

*/ inline const Aws::String& GetBundleId() const{ return m_bundleId; } /** *

The ID of the bundle currently applied to the bucket.

A bucket bundle * specifies the monthly cost, storage space, and data transfer quota for a * bucket.

Use the UpdateBucketBundle * action to change the bundle of a bucket.

*/ inline bool BundleIdHasBeenSet() const { return m_bundleIdHasBeenSet; } /** *

The ID of the bundle currently applied to the bucket.

A bucket bundle * specifies the monthly cost, storage space, and data transfer quota for a * bucket.

Use the UpdateBucketBundle * action to change the bundle of a bucket.

*/ inline void SetBundleId(const Aws::String& value) { m_bundleIdHasBeenSet = true; m_bundleId = value; } /** *

The ID of the bundle currently applied to the bucket.

A bucket bundle * specifies the monthly cost, storage space, and data transfer quota for a * bucket.

Use the UpdateBucketBundle * action to change the bundle of a bucket.

*/ inline void SetBundleId(Aws::String&& value) { m_bundleIdHasBeenSet = true; m_bundleId = std::move(value); } /** *

The ID of the bundle currently applied to the bucket.

A bucket bundle * specifies the monthly cost, storage space, and data transfer quota for a * bucket.

Use the UpdateBucketBundle * action to change the bundle of a bucket.

*/ inline void SetBundleId(const char* value) { m_bundleIdHasBeenSet = true; m_bundleId.assign(value); } /** *

The ID of the bundle currently applied to the bucket.

A bucket bundle * specifies the monthly cost, storage space, and data transfer quota for a * bucket.

Use the UpdateBucketBundle * action to change the bundle of a bucket.

*/ inline Bucket& WithBundleId(const Aws::String& value) { SetBundleId(value); return *this;} /** *

The ID of the bundle currently applied to the bucket.

A bucket bundle * specifies the monthly cost, storage space, and data transfer quota for a * bucket.

Use the UpdateBucketBundle * action to change the bundle of a bucket.

*/ inline Bucket& WithBundleId(Aws::String&& value) { SetBundleId(std::move(value)); return *this;} /** *

The ID of the bundle currently applied to the bucket.

A bucket bundle * specifies the monthly cost, storage space, and data transfer quota for a * bucket.

Use the UpdateBucketBundle * action to change the bundle of a bucket.

*/ inline Bucket& WithBundleId(const char* value) { SetBundleId(value); return *this;} /** *

The timestamp when the distribution was created.

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

The timestamp when the distribution was created.

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

The timestamp when the distribution was created.

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

The timestamp when the distribution was created.

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

The timestamp when the distribution was created.

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

The timestamp when the distribution was created.

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

The URL of the bucket.

*/ inline const Aws::String& GetUrl() const{ return m_url; } /** *

The URL of the bucket.

*/ inline bool UrlHasBeenSet() const { return m_urlHasBeenSet; } /** *

The URL of the bucket.

*/ inline void SetUrl(const Aws::String& value) { m_urlHasBeenSet = true; m_url = value; } /** *

The URL of the bucket.

*/ inline void SetUrl(Aws::String&& value) { m_urlHasBeenSet = true; m_url = std::move(value); } /** *

The URL of the bucket.

*/ inline void SetUrl(const char* value) { m_urlHasBeenSet = true; m_url.assign(value); } /** *

The URL of the bucket.

*/ inline Bucket& WithUrl(const Aws::String& value) { SetUrl(value); return *this;} /** *

The URL of the bucket.

*/ inline Bucket& WithUrl(Aws::String&& value) { SetUrl(std::move(value)); return *this;} /** *

The URL of the bucket.

*/ inline Bucket& WithUrl(const char* value) { SetUrl(value); return *this;} /** *

An object that describes the location of the bucket, such as the Amazon Web * Services Region and Availability Zone.

*/ inline const ResourceLocation& GetLocation() const{ return m_location; } /** *

An object that describes the location of the bucket, such as the Amazon Web * Services Region and Availability Zone.

*/ inline bool LocationHasBeenSet() const { return m_locationHasBeenSet; } /** *

An object that describes the location of the bucket, such as the Amazon Web * Services Region and Availability Zone.

*/ inline void SetLocation(const ResourceLocation& value) { m_locationHasBeenSet = true; m_location = value; } /** *

An object that describes the location of the bucket, such as the Amazon Web * Services Region and Availability Zone.

*/ inline void SetLocation(ResourceLocation&& value) { m_locationHasBeenSet = true; m_location = std::move(value); } /** *

An object that describes the location of the bucket, such as the Amazon Web * Services Region and Availability Zone.

*/ inline Bucket& WithLocation(const ResourceLocation& value) { SetLocation(value); return *this;} /** *

An object that describes the location of the bucket, such as the Amazon Web * Services Region and Availability Zone.

*/ inline Bucket& WithLocation(ResourceLocation&& value) { SetLocation(std::move(value)); return *this;} /** *

The name of the bucket.

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

The name of the bucket.

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

The name of the bucket.

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

The name of the bucket.

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

The name of the bucket.

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

The name of the bucket.

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

The name of the bucket.

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

The name of the bucket.

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

The support code for a bucket. Include this code in your email to support * when you have questions about a Lightsail bucket. This code enables our support * team to look up your Lightsail information more easily.

*/ inline const Aws::String& GetSupportCode() const{ return m_supportCode; } /** *

The support code for a bucket. Include this code in your email to support * when you have questions about a Lightsail bucket. This code enables our support * team to look up your Lightsail information more easily.

*/ inline bool SupportCodeHasBeenSet() const { return m_supportCodeHasBeenSet; } /** *

The support code for a bucket. Include this code in your email to support * when you have questions about a Lightsail bucket. This code enables our support * team to look up your Lightsail information more easily.

*/ inline void SetSupportCode(const Aws::String& value) { m_supportCodeHasBeenSet = true; m_supportCode = value; } /** *

The support code for a bucket. Include this code in your email to support * when you have questions about a Lightsail bucket. This code enables our support * team to look up your Lightsail information more easily.

*/ inline void SetSupportCode(Aws::String&& value) { m_supportCodeHasBeenSet = true; m_supportCode = std::move(value); } /** *

The support code for a bucket. Include this code in your email to support * when you have questions about a Lightsail bucket. This code enables our support * team to look up your Lightsail information more easily.

*/ inline void SetSupportCode(const char* value) { m_supportCodeHasBeenSet = true; m_supportCode.assign(value); } /** *

The support code for a bucket. Include this code in your email to support * when you have questions about a Lightsail bucket. This code enables our support * team to look up your Lightsail information more easily.

*/ inline Bucket& WithSupportCode(const Aws::String& value) { SetSupportCode(value); return *this;} /** *

The support code for a bucket. Include this code in your email to support * when you have questions about a Lightsail bucket. This code enables our support * team to look up your Lightsail information more easily.

*/ inline Bucket& WithSupportCode(Aws::String&& value) { SetSupportCode(std::move(value)); return *this;} /** *

The support code for a bucket. Include this code in your email to support * when you have questions about a Lightsail bucket. This code enables our support * team to look up your Lightsail information more easily.

*/ inline Bucket& WithSupportCode(const char* value) { SetSupportCode(value); return *this;} /** *

The tag keys and optional values for the bucket. For more information, see Tags * in Amazon Lightsail in the Amazon Lightsail Developer Guide.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

The tag keys and optional values for the bucket. For more information, see Tags * in Amazon Lightsail in the Amazon Lightsail Developer Guide.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

The tag keys and optional values for the bucket. For more information, see Tags * in Amazon Lightsail in the Amazon Lightsail Developer Guide.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

The tag keys and optional values for the bucket. For more information, see Tags * in Amazon Lightsail in the Amazon Lightsail Developer Guide.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

The tag keys and optional values for the bucket. For more information, see Tags * in Amazon Lightsail in the Amazon Lightsail Developer Guide.

*/ inline Bucket& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

The tag keys and optional values for the bucket. For more information, see Tags * in Amazon Lightsail in the Amazon Lightsail Developer Guide.

*/ inline Bucket& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

The tag keys and optional values for the bucket. For more information, see Tags * in Amazon Lightsail in the Amazon Lightsail Developer Guide.

*/ inline Bucket& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

The tag keys and optional values for the bucket. For more information, see Tags * in Amazon Lightsail in the Amazon Lightsail Developer Guide.

*/ inline Bucket& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *

Indicates whether object versioning is enabled for the bucket.

The * following options can be configured:

  • Enabled - * Object versioning is enabled.

  • Suspended - Object * versioning was previously enabled but is currently suspended. Existing object * versions are retained.

  • NeverEnabled - Object * versioning has never been enabled.

*/ inline const Aws::String& GetObjectVersioning() const{ return m_objectVersioning; } /** *

Indicates whether object versioning is enabled for the bucket.

The * following options can be configured:

  • Enabled - * Object versioning is enabled.

  • Suspended - Object * versioning was previously enabled but is currently suspended. Existing object * versions are retained.

  • NeverEnabled - Object * versioning has never been enabled.

*/ inline bool ObjectVersioningHasBeenSet() const { return m_objectVersioningHasBeenSet; } /** *

Indicates whether object versioning is enabled for the bucket.

The * following options can be configured:

  • Enabled - * Object versioning is enabled.

  • Suspended - Object * versioning was previously enabled but is currently suspended. Existing object * versions are retained.

  • NeverEnabled - Object * versioning has never been enabled.

*/ inline void SetObjectVersioning(const Aws::String& value) { m_objectVersioningHasBeenSet = true; m_objectVersioning = value; } /** *

Indicates whether object versioning is enabled for the bucket.

The * following options can be configured:

  • Enabled - * Object versioning is enabled.

  • Suspended - Object * versioning was previously enabled but is currently suspended. Existing object * versions are retained.

  • NeverEnabled - Object * versioning has never been enabled.

*/ inline void SetObjectVersioning(Aws::String&& value) { m_objectVersioningHasBeenSet = true; m_objectVersioning = std::move(value); } /** *

Indicates whether object versioning is enabled for the bucket.

The * following options can be configured:

  • Enabled - * Object versioning is enabled.

  • Suspended - Object * versioning was previously enabled but is currently suspended. Existing object * versions are retained.

  • NeverEnabled - Object * versioning has never been enabled.

*/ inline void SetObjectVersioning(const char* value) { m_objectVersioningHasBeenSet = true; m_objectVersioning.assign(value); } /** *

Indicates whether object versioning is enabled for the bucket.

The * following options can be configured:

  • Enabled - * Object versioning is enabled.

  • Suspended - Object * versioning was previously enabled but is currently suspended. Existing object * versions are retained.

  • NeverEnabled - Object * versioning has never been enabled.

*/ inline Bucket& WithObjectVersioning(const Aws::String& value) { SetObjectVersioning(value); return *this;} /** *

Indicates whether object versioning is enabled for the bucket.

The * following options can be configured:

  • Enabled - * Object versioning is enabled.

  • Suspended - Object * versioning was previously enabled but is currently suspended. Existing object * versions are retained.

  • NeverEnabled - Object * versioning has never been enabled.

*/ inline Bucket& WithObjectVersioning(Aws::String&& value) { SetObjectVersioning(std::move(value)); return *this;} /** *

Indicates whether object versioning is enabled for the bucket.

The * following options can be configured:

  • Enabled - * Object versioning is enabled.

  • Suspended - Object * versioning was previously enabled but is currently suspended. Existing object * versions are retained.

  • NeverEnabled - Object * versioning has never been enabled.

*/ inline Bucket& WithObjectVersioning(const char* value) { SetObjectVersioning(value); return *this;} /** *

Indicates whether the bundle that is currently applied to a bucket can be * changed to another bundle.

You can update a bucket's bundle only one time * within a monthly Amazon Web Services billing cycle.

Use the UpdateBucketBundle * action to change a bucket's bundle.

*/ inline bool GetAbleToUpdateBundle() const{ return m_ableToUpdateBundle; } /** *

Indicates whether the bundle that is currently applied to a bucket can be * changed to another bundle.

You can update a bucket's bundle only one time * within a monthly Amazon Web Services billing cycle.

Use the UpdateBucketBundle * action to change a bucket's bundle.

*/ inline bool AbleToUpdateBundleHasBeenSet() const { return m_ableToUpdateBundleHasBeenSet; } /** *

Indicates whether the bundle that is currently applied to a bucket can be * changed to another bundle.

You can update a bucket's bundle only one time * within a monthly Amazon Web Services billing cycle.

Use the UpdateBucketBundle * action to change a bucket's bundle.

*/ inline void SetAbleToUpdateBundle(bool value) { m_ableToUpdateBundleHasBeenSet = true; m_ableToUpdateBundle = value; } /** *

Indicates whether the bundle that is currently applied to a bucket can be * changed to another bundle.

You can update a bucket's bundle only one time * within a monthly Amazon Web Services billing cycle.

Use the UpdateBucketBundle * action to change a bucket's bundle.

*/ inline Bucket& WithAbleToUpdateBundle(bool value) { SetAbleToUpdateBundle(value); return *this;} /** *

An array of strings that specify the Amazon Web Services account IDs that * have read-only access to the bucket.

*/ inline const Aws::Vector& GetReadonlyAccessAccounts() const{ return m_readonlyAccessAccounts; } /** *

An array of strings that specify the Amazon Web Services account IDs that * have read-only access to the bucket.

*/ inline bool ReadonlyAccessAccountsHasBeenSet() const { return m_readonlyAccessAccountsHasBeenSet; } /** *

An array of strings that specify the Amazon Web Services account IDs that * have read-only access to the bucket.

*/ inline void SetReadonlyAccessAccounts(const Aws::Vector& value) { m_readonlyAccessAccountsHasBeenSet = true; m_readonlyAccessAccounts = value; } /** *

An array of strings that specify the Amazon Web Services account IDs that * have read-only access to the bucket.

*/ inline void SetReadonlyAccessAccounts(Aws::Vector&& value) { m_readonlyAccessAccountsHasBeenSet = true; m_readonlyAccessAccounts = std::move(value); } /** *

An array of strings that specify the Amazon Web Services account IDs that * have read-only access to the bucket.

*/ inline Bucket& WithReadonlyAccessAccounts(const Aws::Vector& value) { SetReadonlyAccessAccounts(value); return *this;} /** *

An array of strings that specify the Amazon Web Services account IDs that * have read-only access to the bucket.

*/ inline Bucket& WithReadonlyAccessAccounts(Aws::Vector&& value) { SetReadonlyAccessAccounts(std::move(value)); return *this;} /** *

An array of strings that specify the Amazon Web Services account IDs that * have read-only access to the bucket.

*/ inline Bucket& AddReadonlyAccessAccounts(const Aws::String& value) { m_readonlyAccessAccountsHasBeenSet = true; m_readonlyAccessAccounts.push_back(value); return *this; } /** *

An array of strings that specify the Amazon Web Services account IDs that * have read-only access to the bucket.

*/ inline Bucket& AddReadonlyAccessAccounts(Aws::String&& value) { m_readonlyAccessAccountsHasBeenSet = true; m_readonlyAccessAccounts.push_back(std::move(value)); return *this; } /** *

An array of strings that specify the Amazon Web Services account IDs that * have read-only access to the bucket.

*/ inline Bucket& AddReadonlyAccessAccounts(const char* value) { m_readonlyAccessAccountsHasBeenSet = true; m_readonlyAccessAccounts.push_back(value); return *this; } /** *

An array of objects that describe Lightsail instances that have access to the * bucket.

Use the SetResourceAccessForBucket * action to update the instances that have access to a bucket.

*/ inline const Aws::Vector& GetResourcesReceivingAccess() const{ return m_resourcesReceivingAccess; } /** *

An array of objects that describe Lightsail instances that have access to the * bucket.

Use the SetResourceAccessForBucket * action to update the instances that have access to a bucket.

*/ inline bool ResourcesReceivingAccessHasBeenSet() const { return m_resourcesReceivingAccessHasBeenSet; } /** *

An array of objects that describe Lightsail instances that have access to the * bucket.

Use the SetResourceAccessForBucket * action to update the instances that have access to a bucket.

*/ inline void SetResourcesReceivingAccess(const Aws::Vector& value) { m_resourcesReceivingAccessHasBeenSet = true; m_resourcesReceivingAccess = value; } /** *

An array of objects that describe Lightsail instances that have access to the * bucket.

Use the SetResourceAccessForBucket * action to update the instances that have access to a bucket.

*/ inline void SetResourcesReceivingAccess(Aws::Vector&& value) { m_resourcesReceivingAccessHasBeenSet = true; m_resourcesReceivingAccess = std::move(value); } /** *

An array of objects that describe Lightsail instances that have access to the * bucket.

Use the SetResourceAccessForBucket * action to update the instances that have access to a bucket.

*/ inline Bucket& WithResourcesReceivingAccess(const Aws::Vector& value) { SetResourcesReceivingAccess(value); return *this;} /** *

An array of objects that describe Lightsail instances that have access to the * bucket.

Use the SetResourceAccessForBucket * action to update the instances that have access to a bucket.

*/ inline Bucket& WithResourcesReceivingAccess(Aws::Vector&& value) { SetResourcesReceivingAccess(std::move(value)); return *this;} /** *

An array of objects that describe Lightsail instances that have access to the * bucket.

Use the SetResourceAccessForBucket * action to update the instances that have access to a bucket.

*/ inline Bucket& AddResourcesReceivingAccess(const ResourceReceivingAccess& value) { m_resourcesReceivingAccessHasBeenSet = true; m_resourcesReceivingAccess.push_back(value); return *this; } /** *

An array of objects that describe Lightsail instances that have access to the * bucket.

Use the SetResourceAccessForBucket * action to update the instances that have access to a bucket.

*/ inline Bucket& AddResourcesReceivingAccess(ResourceReceivingAccess&& value) { m_resourcesReceivingAccessHasBeenSet = true; m_resourcesReceivingAccess.push_back(std::move(value)); return *this; } /** *

An object that describes the state of the bucket.

*/ inline const BucketState& GetState() const{ return m_state; } /** *

An object that describes the state of the bucket.

*/ inline bool StateHasBeenSet() const { return m_stateHasBeenSet; } /** *

An object that describes the state of the bucket.

*/ inline void SetState(const BucketState& value) { m_stateHasBeenSet = true; m_state = value; } /** *

An object that describes the state of the bucket.

*/ inline void SetState(BucketState&& value) { m_stateHasBeenSet = true; m_state = std::move(value); } /** *

An object that describes the state of the bucket.

*/ inline Bucket& WithState(const BucketState& value) { SetState(value); return *this;} /** *

An object that describes the state of the bucket.

*/ inline Bucket& WithState(BucketState&& value) { SetState(std::move(value)); return *this;} /** *

An object that describes the access log configuration for the bucket.

*/ inline const BucketAccessLogConfig& GetAccessLogConfig() const{ return m_accessLogConfig; } /** *

An object that describes the access log configuration for the bucket.

*/ inline bool AccessLogConfigHasBeenSet() const { return m_accessLogConfigHasBeenSet; } /** *

An object that describes the access log configuration for the bucket.

*/ inline void SetAccessLogConfig(const BucketAccessLogConfig& value) { m_accessLogConfigHasBeenSet = true; m_accessLogConfig = value; } /** *

An object that describes the access log configuration for the bucket.

*/ inline void SetAccessLogConfig(BucketAccessLogConfig&& value) { m_accessLogConfigHasBeenSet = true; m_accessLogConfig = std::move(value); } /** *

An object that describes the access log configuration for the bucket.

*/ inline Bucket& WithAccessLogConfig(const BucketAccessLogConfig& value) { SetAccessLogConfig(value); return *this;} /** *

An object that describes the access log configuration for the bucket.

*/ inline Bucket& WithAccessLogConfig(BucketAccessLogConfig&& value) { SetAccessLogConfig(std::move(value)); return *this;} private: Aws::String m_resourceType; bool m_resourceTypeHasBeenSet = false; AccessRules m_accessRules; bool m_accessRulesHasBeenSet = false; Aws::String m_arn; bool m_arnHasBeenSet = false; Aws::String m_bundleId; bool m_bundleIdHasBeenSet = false; Aws::Utils::DateTime m_createdAt; bool m_createdAtHasBeenSet = false; Aws::String m_url; bool m_urlHasBeenSet = false; ResourceLocation m_location; bool m_locationHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_supportCode; bool m_supportCodeHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; Aws::String m_objectVersioning; bool m_objectVersioningHasBeenSet = false; bool m_ableToUpdateBundle; bool m_ableToUpdateBundleHasBeenSet = false; Aws::Vector m_readonlyAccessAccounts; bool m_readonlyAccessAccountsHasBeenSet = false; Aws::Vector m_resourcesReceivingAccess; bool m_resourcesReceivingAccessHasBeenSet = false; BucketState m_state; bool m_stateHasBeenSet = false; BucketAccessLogConfig m_accessLogConfig; bool m_accessLogConfigHasBeenSet = false; }; } // namespace Model } // namespace Lightsail } // namespace Aws