/** * 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 #include namespace Aws { namespace OpsWorks { namespace Model { /** */ class CreateLayerRequest : public OpsWorksRequest { public: AWS_OPSWORKS_API CreateLayerRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateLayer"; } AWS_OPSWORKS_API Aws::String SerializePayload() const override; AWS_OPSWORKS_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The layer stack ID.

*/ inline const Aws::String& GetStackId() const{ return m_stackId; } /** *

The layer stack ID.

*/ inline bool StackIdHasBeenSet() const { return m_stackIdHasBeenSet; } /** *

The layer stack ID.

*/ inline void SetStackId(const Aws::String& value) { m_stackIdHasBeenSet = true; m_stackId = value; } /** *

The layer stack ID.

*/ inline void SetStackId(Aws::String&& value) { m_stackIdHasBeenSet = true; m_stackId = std::move(value); } /** *

The layer stack ID.

*/ inline void SetStackId(const char* value) { m_stackIdHasBeenSet = true; m_stackId.assign(value); } /** *

The layer stack ID.

*/ inline CreateLayerRequest& WithStackId(const Aws::String& value) { SetStackId(value); return *this;} /** *

The layer stack ID.

*/ inline CreateLayerRequest& WithStackId(Aws::String&& value) { SetStackId(std::move(value)); return *this;} /** *

The layer stack ID.

*/ inline CreateLayerRequest& WithStackId(const char* value) { SetStackId(value); return *this;} /** *

The layer type. A stack cannot have more than one built-in layer of the same * type. It can have any number of custom layers. Built-in layers are not available * in Chef 12 stacks.

*/ inline const LayerType& GetType() const{ return m_type; } /** *

The layer type. A stack cannot have more than one built-in layer of the same * type. It can have any number of custom layers. Built-in layers are not available * in Chef 12 stacks.

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

The layer type. A stack cannot have more than one built-in layer of the same * type. It can have any number of custom layers. Built-in layers are not available * in Chef 12 stacks.

*/ inline void SetType(const LayerType& value) { m_typeHasBeenSet = true; m_type = value; } /** *

The layer type. A stack cannot have more than one built-in layer of the same * type. It can have any number of custom layers. Built-in layers are not available * in Chef 12 stacks.

*/ inline void SetType(LayerType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

The layer type. A stack cannot have more than one built-in layer of the same * type. It can have any number of custom layers. Built-in layers are not available * in Chef 12 stacks.

*/ inline CreateLayerRequest& WithType(const LayerType& value) { SetType(value); return *this;} /** *

The layer type. A stack cannot have more than one built-in layer of the same * type. It can have any number of custom layers. Built-in layers are not available * in Chef 12 stacks.

*/ inline CreateLayerRequest& WithType(LayerType&& value) { SetType(std::move(value)); return *this;} /** *

The layer name, which is used by the console.

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

The layer name, which is used by the console.

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

The layer name, which is used by the console.

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

The layer name, which is used by the console.

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

The layer name, which is used by the console.

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

The layer name, which is used by the console.

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

The layer name, which is used by the console.

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

The layer name, which is used by the console.

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

For custom layers only, use this parameter to specify the layer's short name, * which is used internally by AWS OpsWorks Stacks and by Chef recipes. The short * name is also used as the name for the directory where your app files are * installed. It can have a maximum of 200 characters, which are limited to the * alphanumeric characters, '-', '_', and '.'.

The built-in layers' short * names are defined by AWS OpsWorks Stacks. For more information, see the Layer * Reference.

*/ inline const Aws::String& GetShortname() const{ return m_shortname; } /** *

For custom layers only, use this parameter to specify the layer's short name, * which is used internally by AWS OpsWorks Stacks and by Chef recipes. The short * name is also used as the name for the directory where your app files are * installed. It can have a maximum of 200 characters, which are limited to the * alphanumeric characters, '-', '_', and '.'.

The built-in layers' short * names are defined by AWS OpsWorks Stacks. For more information, see the Layer * Reference.

*/ inline bool ShortnameHasBeenSet() const { return m_shortnameHasBeenSet; } /** *

For custom layers only, use this parameter to specify the layer's short name, * which is used internally by AWS OpsWorks Stacks and by Chef recipes. The short * name is also used as the name for the directory where your app files are * installed. It can have a maximum of 200 characters, which are limited to the * alphanumeric characters, '-', '_', and '.'.

The built-in layers' short * names are defined by AWS OpsWorks Stacks. For more information, see the Layer * Reference.

*/ inline void SetShortname(const Aws::String& value) { m_shortnameHasBeenSet = true; m_shortname = value; } /** *

For custom layers only, use this parameter to specify the layer's short name, * which is used internally by AWS OpsWorks Stacks and by Chef recipes. The short * name is also used as the name for the directory where your app files are * installed. It can have a maximum of 200 characters, which are limited to the * alphanumeric characters, '-', '_', and '.'.

The built-in layers' short * names are defined by AWS OpsWorks Stacks. For more information, see the Layer * Reference.

*/ inline void SetShortname(Aws::String&& value) { m_shortnameHasBeenSet = true; m_shortname = std::move(value); } /** *

For custom layers only, use this parameter to specify the layer's short name, * which is used internally by AWS OpsWorks Stacks and by Chef recipes. The short * name is also used as the name for the directory where your app files are * installed. It can have a maximum of 200 characters, which are limited to the * alphanumeric characters, '-', '_', and '.'.

The built-in layers' short * names are defined by AWS OpsWorks Stacks. For more information, see the Layer * Reference.

*/ inline void SetShortname(const char* value) { m_shortnameHasBeenSet = true; m_shortname.assign(value); } /** *

For custom layers only, use this parameter to specify the layer's short name, * which is used internally by AWS OpsWorks Stacks and by Chef recipes. The short * name is also used as the name for the directory where your app files are * installed. It can have a maximum of 200 characters, which are limited to the * alphanumeric characters, '-', '_', and '.'.

The built-in layers' short * names are defined by AWS OpsWorks Stacks. For more information, see the Layer * Reference.

*/ inline CreateLayerRequest& WithShortname(const Aws::String& value) { SetShortname(value); return *this;} /** *

For custom layers only, use this parameter to specify the layer's short name, * which is used internally by AWS OpsWorks Stacks and by Chef recipes. The short * name is also used as the name for the directory where your app files are * installed. It can have a maximum of 200 characters, which are limited to the * alphanumeric characters, '-', '_', and '.'.

The built-in layers' short * names are defined by AWS OpsWorks Stacks. For more information, see the Layer * Reference.

*/ inline CreateLayerRequest& WithShortname(Aws::String&& value) { SetShortname(std::move(value)); return *this;} /** *

For custom layers only, use this parameter to specify the layer's short name, * which is used internally by AWS OpsWorks Stacks and by Chef recipes. The short * name is also used as the name for the directory where your app files are * installed. It can have a maximum of 200 characters, which are limited to the * alphanumeric characters, '-', '_', and '.'.

The built-in layers' short * names are defined by AWS OpsWorks Stacks. For more information, see the Layer * Reference.

*/ inline CreateLayerRequest& WithShortname(const char* value) { SetShortname(value); return *this;} /** *

One or more user-defined key-value pairs to be added to the stack * attributes.

To create a cluster layer, set the EcsClusterArn * attribute to the cluster's ARN.

*/ inline const Aws::Map& GetAttributes() const{ return m_attributes; } /** *

One or more user-defined key-value pairs to be added to the stack * attributes.

To create a cluster layer, set the EcsClusterArn * attribute to the cluster's ARN.

*/ inline bool AttributesHasBeenSet() const { return m_attributesHasBeenSet; } /** *

One or more user-defined key-value pairs to be added to the stack * attributes.

To create a cluster layer, set the EcsClusterArn * attribute to the cluster's ARN.

*/ inline void SetAttributes(const Aws::Map& value) { m_attributesHasBeenSet = true; m_attributes = value; } /** *

One or more user-defined key-value pairs to be added to the stack * attributes.

To create a cluster layer, set the EcsClusterArn * attribute to the cluster's ARN.

*/ inline void SetAttributes(Aws::Map&& value) { m_attributesHasBeenSet = true; m_attributes = std::move(value); } /** *

One or more user-defined key-value pairs to be added to the stack * attributes.

To create a cluster layer, set the EcsClusterArn * attribute to the cluster's ARN.

*/ inline CreateLayerRequest& WithAttributes(const Aws::Map& value) { SetAttributes(value); return *this;} /** *

One or more user-defined key-value pairs to be added to the stack * attributes.

To create a cluster layer, set the EcsClusterArn * attribute to the cluster's ARN.

*/ inline CreateLayerRequest& WithAttributes(Aws::Map&& value) { SetAttributes(std::move(value)); return *this;} /** *

One or more user-defined key-value pairs to be added to the stack * attributes.

To create a cluster layer, set the EcsClusterArn * attribute to the cluster's ARN.

*/ inline CreateLayerRequest& AddAttributes(const LayerAttributesKeys& key, const Aws::String& value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, value); return *this; } /** *

One or more user-defined key-value pairs to be added to the stack * attributes.

To create a cluster layer, set the EcsClusterArn * attribute to the cluster's ARN.

*/ inline CreateLayerRequest& AddAttributes(LayerAttributesKeys&& key, const Aws::String& value) { m_attributesHasBeenSet = true; m_attributes.emplace(std::move(key), value); return *this; } /** *

One or more user-defined key-value pairs to be added to the stack * attributes.

To create a cluster layer, set the EcsClusterArn * attribute to the cluster's ARN.

*/ inline CreateLayerRequest& AddAttributes(const LayerAttributesKeys& key, Aws::String&& value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, std::move(value)); return *this; } /** *

One or more user-defined key-value pairs to be added to the stack * attributes.

To create a cluster layer, set the EcsClusterArn * attribute to the cluster's ARN.

*/ inline CreateLayerRequest& AddAttributes(LayerAttributesKeys&& key, Aws::String&& value) { m_attributesHasBeenSet = true; m_attributes.emplace(std::move(key), std::move(value)); return *this; } /** *

One or more user-defined key-value pairs to be added to the stack * attributes.

To create a cluster layer, set the EcsClusterArn * attribute to the cluster's ARN.

*/ inline CreateLayerRequest& AddAttributes(LayerAttributesKeys&& key, const char* value) { m_attributesHasBeenSet = true; m_attributes.emplace(std::move(key), value); return *this; } /** *

One or more user-defined key-value pairs to be added to the stack * attributes.

To create a cluster layer, set the EcsClusterArn * attribute to the cluster's ARN.

*/ inline CreateLayerRequest& AddAttributes(const LayerAttributesKeys& key, const char* value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, value); return *this; } /** *

Specifies CloudWatch Logs configuration options for the layer. For more * information, see CloudWatchLogsLogStream.

*/ inline const CloudWatchLogsConfiguration& GetCloudWatchLogsConfiguration() const{ return m_cloudWatchLogsConfiguration; } /** *

Specifies CloudWatch Logs configuration options for the layer. For more * information, see CloudWatchLogsLogStream.

*/ inline bool CloudWatchLogsConfigurationHasBeenSet() const { return m_cloudWatchLogsConfigurationHasBeenSet; } /** *

Specifies CloudWatch Logs configuration options for the layer. For more * information, see CloudWatchLogsLogStream.

*/ inline void SetCloudWatchLogsConfiguration(const CloudWatchLogsConfiguration& value) { m_cloudWatchLogsConfigurationHasBeenSet = true; m_cloudWatchLogsConfiguration = value; } /** *

Specifies CloudWatch Logs configuration options for the layer. For more * information, see CloudWatchLogsLogStream.

*/ inline void SetCloudWatchLogsConfiguration(CloudWatchLogsConfiguration&& value) { m_cloudWatchLogsConfigurationHasBeenSet = true; m_cloudWatchLogsConfiguration = std::move(value); } /** *

Specifies CloudWatch Logs configuration options for the layer. For more * information, see CloudWatchLogsLogStream.

*/ inline CreateLayerRequest& WithCloudWatchLogsConfiguration(const CloudWatchLogsConfiguration& value) { SetCloudWatchLogsConfiguration(value); return *this;} /** *

Specifies CloudWatch Logs configuration options for the layer. For more * information, see CloudWatchLogsLogStream.

*/ inline CreateLayerRequest& WithCloudWatchLogsConfiguration(CloudWatchLogsConfiguration&& value) { SetCloudWatchLogsConfiguration(std::move(value)); return *this;} /** *

The ARN of an IAM profile to be used for the layer's EC2 instances. For more * information about IAM ARNs, see Using * Identifiers.

*/ inline const Aws::String& GetCustomInstanceProfileArn() const{ return m_customInstanceProfileArn; } /** *

The ARN of an IAM profile to be used for the layer's EC2 instances. For more * information about IAM ARNs, see Using * Identifiers.

*/ inline bool CustomInstanceProfileArnHasBeenSet() const { return m_customInstanceProfileArnHasBeenSet; } /** *

The ARN of an IAM profile to be used for the layer's EC2 instances. For more * information about IAM ARNs, see Using * Identifiers.

*/ inline void SetCustomInstanceProfileArn(const Aws::String& value) { m_customInstanceProfileArnHasBeenSet = true; m_customInstanceProfileArn = value; } /** *

The ARN of an IAM profile to be used for the layer's EC2 instances. For more * information about IAM ARNs, see Using * Identifiers.

*/ inline void SetCustomInstanceProfileArn(Aws::String&& value) { m_customInstanceProfileArnHasBeenSet = true; m_customInstanceProfileArn = std::move(value); } /** *

The ARN of an IAM profile to be used for the layer's EC2 instances. For more * information about IAM ARNs, see Using * Identifiers.

*/ inline void SetCustomInstanceProfileArn(const char* value) { m_customInstanceProfileArnHasBeenSet = true; m_customInstanceProfileArn.assign(value); } /** *

The ARN of an IAM profile to be used for the layer's EC2 instances. For more * information about IAM ARNs, see Using * Identifiers.

*/ inline CreateLayerRequest& WithCustomInstanceProfileArn(const Aws::String& value) { SetCustomInstanceProfileArn(value); return *this;} /** *

The ARN of an IAM profile to be used for the layer's EC2 instances. For more * information about IAM ARNs, see Using * Identifiers.

*/ inline CreateLayerRequest& WithCustomInstanceProfileArn(Aws::String&& value) { SetCustomInstanceProfileArn(std::move(value)); return *this;} /** *

The ARN of an IAM profile to be used for the layer's EC2 instances. For more * information about IAM ARNs, see Using * Identifiers.

*/ inline CreateLayerRequest& WithCustomInstanceProfileArn(const char* value) { SetCustomInstanceProfileArn(value); return *this;} /** *

A JSON-formatted string containing custom stack configuration and deployment * attributes to be installed on the layer's instances. For more information, see * * Using Custom JSON. This feature is supported as of version 1.7.42 of the AWS * CLI.

*/ inline const Aws::String& GetCustomJson() const{ return m_customJson; } /** *

A JSON-formatted string containing custom stack configuration and deployment * attributes to be installed on the layer's instances. For more information, see * * Using Custom JSON. This feature is supported as of version 1.7.42 of the AWS * CLI.

*/ inline bool CustomJsonHasBeenSet() const { return m_customJsonHasBeenSet; } /** *

A JSON-formatted string containing custom stack configuration and deployment * attributes to be installed on the layer's instances. For more information, see * * Using Custom JSON. This feature is supported as of version 1.7.42 of the AWS * CLI.

*/ inline void SetCustomJson(const Aws::String& value) { m_customJsonHasBeenSet = true; m_customJson = value; } /** *

A JSON-formatted string containing custom stack configuration and deployment * attributes to be installed on the layer's instances. For more information, see * * Using Custom JSON. This feature is supported as of version 1.7.42 of the AWS * CLI.

*/ inline void SetCustomJson(Aws::String&& value) { m_customJsonHasBeenSet = true; m_customJson = std::move(value); } /** *

A JSON-formatted string containing custom stack configuration and deployment * attributes to be installed on the layer's instances. For more information, see * * Using Custom JSON. This feature is supported as of version 1.7.42 of the AWS * CLI.

*/ inline void SetCustomJson(const char* value) { m_customJsonHasBeenSet = true; m_customJson.assign(value); } /** *

A JSON-formatted string containing custom stack configuration and deployment * attributes to be installed on the layer's instances. For more information, see * * Using Custom JSON. This feature is supported as of version 1.7.42 of the AWS * CLI.

*/ inline CreateLayerRequest& WithCustomJson(const Aws::String& value) { SetCustomJson(value); return *this;} /** *

A JSON-formatted string containing custom stack configuration and deployment * attributes to be installed on the layer's instances. For more information, see * * Using Custom JSON. This feature is supported as of version 1.7.42 of the AWS * CLI.

*/ inline CreateLayerRequest& WithCustomJson(Aws::String&& value) { SetCustomJson(std::move(value)); return *this;} /** *

A JSON-formatted string containing custom stack configuration and deployment * attributes to be installed on the layer's instances. For more information, see * * Using Custom JSON. This feature is supported as of version 1.7.42 of the AWS * CLI.

*/ inline CreateLayerRequest& WithCustomJson(const char* value) { SetCustomJson(value); return *this;} /** *

An array containing the layer custom security group IDs.

*/ inline const Aws::Vector& GetCustomSecurityGroupIds() const{ return m_customSecurityGroupIds; } /** *

An array containing the layer custom security group IDs.

*/ inline bool CustomSecurityGroupIdsHasBeenSet() const { return m_customSecurityGroupIdsHasBeenSet; } /** *

An array containing the layer custom security group IDs.

*/ inline void SetCustomSecurityGroupIds(const Aws::Vector& value) { m_customSecurityGroupIdsHasBeenSet = true; m_customSecurityGroupIds = value; } /** *

An array containing the layer custom security group IDs.

*/ inline void SetCustomSecurityGroupIds(Aws::Vector&& value) { m_customSecurityGroupIdsHasBeenSet = true; m_customSecurityGroupIds = std::move(value); } /** *

An array containing the layer custom security group IDs.

*/ inline CreateLayerRequest& WithCustomSecurityGroupIds(const Aws::Vector& value) { SetCustomSecurityGroupIds(value); return *this;} /** *

An array containing the layer custom security group IDs.

*/ inline CreateLayerRequest& WithCustomSecurityGroupIds(Aws::Vector&& value) { SetCustomSecurityGroupIds(std::move(value)); return *this;} /** *

An array containing the layer custom security group IDs.

*/ inline CreateLayerRequest& AddCustomSecurityGroupIds(const Aws::String& value) { m_customSecurityGroupIdsHasBeenSet = true; m_customSecurityGroupIds.push_back(value); return *this; } /** *

An array containing the layer custom security group IDs.

*/ inline CreateLayerRequest& AddCustomSecurityGroupIds(Aws::String&& value) { m_customSecurityGroupIdsHasBeenSet = true; m_customSecurityGroupIds.push_back(std::move(value)); return *this; } /** *

An array containing the layer custom security group IDs.

*/ inline CreateLayerRequest& AddCustomSecurityGroupIds(const char* value) { m_customSecurityGroupIdsHasBeenSet = true; m_customSecurityGroupIds.push_back(value); return *this; } /** *

An array of Package objects that describes the layer * packages.

*/ inline const Aws::Vector& GetPackages() const{ return m_packages; } /** *

An array of Package objects that describes the layer * packages.

*/ inline bool PackagesHasBeenSet() const { return m_packagesHasBeenSet; } /** *

An array of Package objects that describes the layer * packages.

*/ inline void SetPackages(const Aws::Vector& value) { m_packagesHasBeenSet = true; m_packages = value; } /** *

An array of Package objects that describes the layer * packages.

*/ inline void SetPackages(Aws::Vector&& value) { m_packagesHasBeenSet = true; m_packages = std::move(value); } /** *

An array of Package objects that describes the layer * packages.

*/ inline CreateLayerRequest& WithPackages(const Aws::Vector& value) { SetPackages(value); return *this;} /** *

An array of Package objects that describes the layer * packages.

*/ inline CreateLayerRequest& WithPackages(Aws::Vector&& value) { SetPackages(std::move(value)); return *this;} /** *

An array of Package objects that describes the layer * packages.

*/ inline CreateLayerRequest& AddPackages(const Aws::String& value) { m_packagesHasBeenSet = true; m_packages.push_back(value); return *this; } /** *

An array of Package objects that describes the layer * packages.

*/ inline CreateLayerRequest& AddPackages(Aws::String&& value) { m_packagesHasBeenSet = true; m_packages.push_back(std::move(value)); return *this; } /** *

An array of Package objects that describes the layer * packages.

*/ inline CreateLayerRequest& AddPackages(const char* value) { m_packagesHasBeenSet = true; m_packages.push_back(value); return *this; } /** *

A VolumeConfigurations object that describes the layer's Amazon * EBS volumes.

*/ inline const Aws::Vector& GetVolumeConfigurations() const{ return m_volumeConfigurations; } /** *

A VolumeConfigurations object that describes the layer's Amazon * EBS volumes.

*/ inline bool VolumeConfigurationsHasBeenSet() const { return m_volumeConfigurationsHasBeenSet; } /** *

A VolumeConfigurations object that describes the layer's Amazon * EBS volumes.

*/ inline void SetVolumeConfigurations(const Aws::Vector& value) { m_volumeConfigurationsHasBeenSet = true; m_volumeConfigurations = value; } /** *

A VolumeConfigurations object that describes the layer's Amazon * EBS volumes.

*/ inline void SetVolumeConfigurations(Aws::Vector&& value) { m_volumeConfigurationsHasBeenSet = true; m_volumeConfigurations = std::move(value); } /** *

A VolumeConfigurations object that describes the layer's Amazon * EBS volumes.

*/ inline CreateLayerRequest& WithVolumeConfigurations(const Aws::Vector& value) { SetVolumeConfigurations(value); return *this;} /** *

A VolumeConfigurations object that describes the layer's Amazon * EBS volumes.

*/ inline CreateLayerRequest& WithVolumeConfigurations(Aws::Vector&& value) { SetVolumeConfigurations(std::move(value)); return *this;} /** *

A VolumeConfigurations object that describes the layer's Amazon * EBS volumes.

*/ inline CreateLayerRequest& AddVolumeConfigurations(const VolumeConfiguration& value) { m_volumeConfigurationsHasBeenSet = true; m_volumeConfigurations.push_back(value); return *this; } /** *

A VolumeConfigurations object that describes the layer's Amazon * EBS volumes.

*/ inline CreateLayerRequest& AddVolumeConfigurations(VolumeConfiguration&& value) { m_volumeConfigurationsHasBeenSet = true; m_volumeConfigurations.push_back(std::move(value)); return *this; } /** *

Whether to disable auto healing for the layer.

*/ inline bool GetEnableAutoHealing() const{ return m_enableAutoHealing; } /** *

Whether to disable auto healing for the layer.

*/ inline bool EnableAutoHealingHasBeenSet() const { return m_enableAutoHealingHasBeenSet; } /** *

Whether to disable auto healing for the layer.

*/ inline void SetEnableAutoHealing(bool value) { m_enableAutoHealingHasBeenSet = true; m_enableAutoHealing = value; } /** *

Whether to disable auto healing for the layer.

*/ inline CreateLayerRequest& WithEnableAutoHealing(bool value) { SetEnableAutoHealing(value); return *this;} /** *

Whether to automatically assign an Elastic * IP address to the layer's instances. For more information, see How * to Edit a Layer.

*/ inline bool GetAutoAssignElasticIps() const{ return m_autoAssignElasticIps; } /** *

Whether to automatically assign an Elastic * IP address to the layer's instances. For more information, see How * to Edit a Layer.

*/ inline bool AutoAssignElasticIpsHasBeenSet() const { return m_autoAssignElasticIpsHasBeenSet; } /** *

Whether to automatically assign an Elastic * IP address to the layer's instances. For more information, see How * to Edit a Layer.

*/ inline void SetAutoAssignElasticIps(bool value) { m_autoAssignElasticIpsHasBeenSet = true; m_autoAssignElasticIps = value; } /** *

Whether to automatically assign an Elastic * IP address to the layer's instances. For more information, see How * to Edit a Layer.

*/ inline CreateLayerRequest& WithAutoAssignElasticIps(bool value) { SetAutoAssignElasticIps(value); return *this;} /** *

For stacks that are running in a VPC, whether to automatically assign a * public IP address to the layer's instances. For more information, see How * to Edit a Layer.

*/ inline bool GetAutoAssignPublicIps() const{ return m_autoAssignPublicIps; } /** *

For stacks that are running in a VPC, whether to automatically assign a * public IP address to the layer's instances. For more information, see How * to Edit a Layer.

*/ inline bool AutoAssignPublicIpsHasBeenSet() const { return m_autoAssignPublicIpsHasBeenSet; } /** *

For stacks that are running in a VPC, whether to automatically assign a * public IP address to the layer's instances. For more information, see How * to Edit a Layer.

*/ inline void SetAutoAssignPublicIps(bool value) { m_autoAssignPublicIpsHasBeenSet = true; m_autoAssignPublicIps = value; } /** *

For stacks that are running in a VPC, whether to automatically assign a * public IP address to the layer's instances. For more information, see How * to Edit a Layer.

*/ inline CreateLayerRequest& WithAutoAssignPublicIps(bool value) { SetAutoAssignPublicIps(value); return *this;} /** *

A LayerCustomRecipes object that specifies the layer custom * recipes.

*/ inline const Recipes& GetCustomRecipes() const{ return m_customRecipes; } /** *

A LayerCustomRecipes object that specifies the layer custom * recipes.

*/ inline bool CustomRecipesHasBeenSet() const { return m_customRecipesHasBeenSet; } /** *

A LayerCustomRecipes object that specifies the layer custom * recipes.

*/ inline void SetCustomRecipes(const Recipes& value) { m_customRecipesHasBeenSet = true; m_customRecipes = value; } /** *

A LayerCustomRecipes object that specifies the layer custom * recipes.

*/ inline void SetCustomRecipes(Recipes&& value) { m_customRecipesHasBeenSet = true; m_customRecipes = std::move(value); } /** *

A LayerCustomRecipes object that specifies the layer custom * recipes.

*/ inline CreateLayerRequest& WithCustomRecipes(const Recipes& value) { SetCustomRecipes(value); return *this;} /** *

A LayerCustomRecipes object that specifies the layer custom * recipes.

*/ inline CreateLayerRequest& WithCustomRecipes(Recipes&& value) { SetCustomRecipes(std::move(value)); return *this;} /** *

Whether to install operating system and package updates when the instance * boots. The default value is true. To control when updates are * installed, set this value to false. You must then update your * instances manually by using CreateDeployment to run the * update_dependencies stack command or by manually running * yum (Amazon Linux) or apt-get (Ubuntu) on the * instances.

To ensure that your instances have the latest security * updates, we strongly recommend using the default value of true.

* */ inline bool GetInstallUpdatesOnBoot() const{ return m_installUpdatesOnBoot; } /** *

Whether to install operating system and package updates when the instance * boots. The default value is true. To control when updates are * installed, set this value to false. You must then update your * instances manually by using CreateDeployment to run the * update_dependencies stack command or by manually running * yum (Amazon Linux) or apt-get (Ubuntu) on the * instances.

To ensure that your instances have the latest security * updates, we strongly recommend using the default value of true.

* */ inline bool InstallUpdatesOnBootHasBeenSet() const { return m_installUpdatesOnBootHasBeenSet; } /** *

Whether to install operating system and package updates when the instance * boots. The default value is true. To control when updates are * installed, set this value to false. You must then update your * instances manually by using CreateDeployment to run the * update_dependencies stack command or by manually running * yum (Amazon Linux) or apt-get (Ubuntu) on the * instances.

To ensure that your instances have the latest security * updates, we strongly recommend using the default value of true.

* */ inline void SetInstallUpdatesOnBoot(bool value) { m_installUpdatesOnBootHasBeenSet = true; m_installUpdatesOnBoot = value; } /** *

Whether to install operating system and package updates when the instance * boots. The default value is true. To control when updates are * installed, set this value to false. You must then update your * instances manually by using CreateDeployment to run the * update_dependencies stack command or by manually running * yum (Amazon Linux) or apt-get (Ubuntu) on the * instances.

To ensure that your instances have the latest security * updates, we strongly recommend using the default value of true.

* */ inline CreateLayerRequest& WithInstallUpdatesOnBoot(bool value) { SetInstallUpdatesOnBoot(value); return *this;} /** *

Whether to use Amazon EBS-optimized instances.

*/ inline bool GetUseEbsOptimizedInstances() const{ return m_useEbsOptimizedInstances; } /** *

Whether to use Amazon EBS-optimized instances.

*/ inline bool UseEbsOptimizedInstancesHasBeenSet() const { return m_useEbsOptimizedInstancesHasBeenSet; } /** *

Whether to use Amazon EBS-optimized instances.

*/ inline void SetUseEbsOptimizedInstances(bool value) { m_useEbsOptimizedInstancesHasBeenSet = true; m_useEbsOptimizedInstances = value; } /** *

Whether to use Amazon EBS-optimized instances.

*/ inline CreateLayerRequest& WithUseEbsOptimizedInstances(bool value) { SetUseEbsOptimizedInstances(value); return *this;} /** *

A LifeCycleEventConfiguration object that you can use to * configure the Shutdown event to specify an execution timeout and enable or * disable Elastic Load Balancer connection draining.

*/ inline const LifecycleEventConfiguration& GetLifecycleEventConfiguration() const{ return m_lifecycleEventConfiguration; } /** *

A LifeCycleEventConfiguration object that you can use to * configure the Shutdown event to specify an execution timeout and enable or * disable Elastic Load Balancer connection draining.

*/ inline bool LifecycleEventConfigurationHasBeenSet() const { return m_lifecycleEventConfigurationHasBeenSet; } /** *

A LifeCycleEventConfiguration object that you can use to * configure the Shutdown event to specify an execution timeout and enable or * disable Elastic Load Balancer connection draining.

*/ inline void SetLifecycleEventConfiguration(const LifecycleEventConfiguration& value) { m_lifecycleEventConfigurationHasBeenSet = true; m_lifecycleEventConfiguration = value; } /** *

A LifeCycleEventConfiguration object that you can use to * configure the Shutdown event to specify an execution timeout and enable or * disable Elastic Load Balancer connection draining.

*/ inline void SetLifecycleEventConfiguration(LifecycleEventConfiguration&& value) { m_lifecycleEventConfigurationHasBeenSet = true; m_lifecycleEventConfiguration = std::move(value); } /** *

A LifeCycleEventConfiguration object that you can use to * configure the Shutdown event to specify an execution timeout and enable or * disable Elastic Load Balancer connection draining.

*/ inline CreateLayerRequest& WithLifecycleEventConfiguration(const LifecycleEventConfiguration& value) { SetLifecycleEventConfiguration(value); return *this;} /** *

A LifeCycleEventConfiguration object that you can use to * configure the Shutdown event to specify an execution timeout and enable or * disable Elastic Load Balancer connection draining.

*/ inline CreateLayerRequest& WithLifecycleEventConfiguration(LifecycleEventConfiguration&& value) { SetLifecycleEventConfiguration(std::move(value)); return *this;} private: Aws::String m_stackId; bool m_stackIdHasBeenSet = false; LayerType m_type; bool m_typeHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_shortname; bool m_shortnameHasBeenSet = false; Aws::Map m_attributes; bool m_attributesHasBeenSet = false; CloudWatchLogsConfiguration m_cloudWatchLogsConfiguration; bool m_cloudWatchLogsConfigurationHasBeenSet = false; Aws::String m_customInstanceProfileArn; bool m_customInstanceProfileArnHasBeenSet = false; Aws::String m_customJson; bool m_customJsonHasBeenSet = false; Aws::Vector m_customSecurityGroupIds; bool m_customSecurityGroupIdsHasBeenSet = false; Aws::Vector m_packages; bool m_packagesHasBeenSet = false; Aws::Vector m_volumeConfigurations; bool m_volumeConfigurationsHasBeenSet = false; bool m_enableAutoHealing; bool m_enableAutoHealingHasBeenSet = false; bool m_autoAssignElasticIps; bool m_autoAssignElasticIpsHasBeenSet = false; bool m_autoAssignPublicIps; bool m_autoAssignPublicIpsHasBeenSet = false; Recipes m_customRecipes; bool m_customRecipesHasBeenSet = false; bool m_installUpdatesOnBoot; bool m_installUpdatesOnBootHasBeenSet = false; bool m_useEbsOptimizedInstances; bool m_useEbsOptimizedInstancesHasBeenSet = false; LifecycleEventConfiguration m_lifecycleEventConfiguration; bool m_lifecycleEventConfigurationHasBeenSet = false; }; } // namespace Model } // namespace OpsWorks } // namespace Aws