-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Amazon OpsWorks SDK.
--   
--   The types from this library are intended to be used with
--   <a>amazonka</a>, which provides mechanisms for specifying AuthN/AuthZ
--   information, sending requests, and receiving responses.
--   
--   Lenses are used for constructing and manipulating types, due to the
--   depth of nesting of AWS types and transparency regarding
--   de/serialisation into more palatable Haskell values. The provided
--   lenses should be compatible with any of the major lens libraries such
--   as <a>lens</a> or <a>lens-family-core</a>.
--   
--   See <a>Network.AWS.OpsWorks</a> or <a>the AWS documentation</a> to get
--   started.
@package amazonka-opsworks
@version 1.4.5


module Network.AWS.OpsWorks.Types

-- | API version <tt>2013-02-18</tt> of the Amazon OpsWorks SDK
--   configuration.
opsWorks :: Service

-- | Indicates that a request was not valid.
_ValidationException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Indicates that a resource was not found.
_ResourceNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError
data AppAttributesKeys
AWSFlowRubySettings :: AppAttributesKeys
AutoBundleOnDeploy :: AppAttributesKeys
DocumentRoot :: AppAttributesKeys
RailsEnv :: AppAttributesKeys
data AppType
ATAWSFlowRuby :: AppType
ATJava :: AppType
ATNodejs :: AppType
ATOther :: AppType
ATPHP :: AppType
ATRails :: AppType
ATStatic :: AppType
data Architecture
I386 :: Architecture
X86_64 :: Architecture
data AutoScalingType
Load :: AutoScalingType
Timer :: AutoScalingType
data DeploymentCommandName
Configure :: DeploymentCommandName
Deploy :: DeploymentCommandName
ExecuteRecipes :: DeploymentCommandName
InstallDependencies :: DeploymentCommandName
Restart :: DeploymentCommandName
Rollback :: DeploymentCommandName
Setup :: DeploymentCommandName
Start :: DeploymentCommandName
Stop :: DeploymentCommandName
Undeploy :: DeploymentCommandName
UpdateCustomCookbooks :: DeploymentCommandName
UpdateDependencies :: DeploymentCommandName
data LayerAttributesKeys
BundlerVersion :: LayerAttributesKeys
EcsClusterARN :: LayerAttributesKeys
EnableHaproxyStats :: LayerAttributesKeys
GangliaPassword :: LayerAttributesKeys
GangliaURL :: LayerAttributesKeys
GangliaUser :: LayerAttributesKeys
HaproxyHealthCheckMethod :: LayerAttributesKeys
HaproxyHealthCheckURL :: LayerAttributesKeys
HaproxyStatsPassword :: LayerAttributesKeys
HaproxyStatsURL :: LayerAttributesKeys
HaproxyStatsUser :: LayerAttributesKeys
JVM :: LayerAttributesKeys
JVMOptions :: LayerAttributesKeys
JVMVersion :: LayerAttributesKeys
JavaAppServer :: LayerAttributesKeys
JavaAppServerVersion :: LayerAttributesKeys
ManageBundler :: LayerAttributesKeys
MemcachedMemory :: LayerAttributesKeys
MysqlRootPassword :: LayerAttributesKeys
MysqlRootPasswordUbiquitous :: LayerAttributesKeys
NodejsVersion :: LayerAttributesKeys
PassengerVersion :: LayerAttributesKeys
RailsStack :: LayerAttributesKeys
RubyVersion :: LayerAttributesKeys
RubygemsVersion :: LayerAttributesKeys
data LayerType
AWSFlowRuby :: LayerType
Custom :: LayerType
DBMaster :: LayerType
EcsCluster :: LayerType
JavaApp :: LayerType
LB :: LayerType
Memcached :: LayerType
MonitoringMaster :: LayerType
NodejsApp :: LayerType
PHPApp :: LayerType
RailsApp :: LayerType
Web :: LayerType
data RootDeviceType
EBS :: RootDeviceType
InstanceStore :: RootDeviceType
data SourceType
Archive :: SourceType
Git :: SourceType
S3 :: SourceType
SVN :: SourceType
data StackAttributesKeys
Color :: StackAttributesKeys
data VirtualizationType
HVM :: VirtualizationType
Paravirtual :: VirtualizationType
data VolumeType
GP2 :: VolumeType
IO1 :: VolumeType
Standard :: VolumeType

-- | Describes an agent version.
--   
--   <i>See:</i> <a>agentVersion</a> smart constructor.
data AgentVersion

-- | Creates a value of <a>AgentVersion</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>avVersion</a> - The agent version.</li>
--   <li><a>avConfigurationManager</a> - The configuration manager.</li>
--   </ul>
agentVersion :: AgentVersion

-- | The agent version.
avVersion :: Lens' AgentVersion (Maybe Text)

-- | The configuration manager.
avConfigurationManager :: Lens' AgentVersion (Maybe StackConfigurationManager)

-- | A description of the app.
--   
--   <i>See:</i> <a>app</a> smart constructor.
data App

-- | Creates a value of <a>App</a> with the minimum fields required to make
--   a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>appSSLConfiguration</a> - An <tt>SslConfiguration</tt> object
--   with the SSL configuration.</li>
--   <li><a>appEnvironment</a> - An array of <tt>EnvironmentVariable</tt>
--   objects that specify environment variables to be associated with the
--   app. After you deploy the app, these variables are defined on the
--   associated app server instances. For more information, see
--   <a>Environment Variables</a> .</li>
--   <li><a>appEnableSSL</a> - Whether to enable SSL for the app.</li>
--   <li><a>appCreatedAt</a> - When the app was created.</li>
--   <li><a>appShortname</a> - The app's short name.</li>
--   <li><a>appDataSources</a> - The app's data sources.</li>
--   <li><a>appAppSource</a> - A <tt>Source</tt> object that describes the
--   app repository.</li>
--   <li><a>appAppId</a> - The app ID.</li>
--   <li><a>appAttributes</a> - The stack attributes.</li>
--   <li><a>appName</a> - The app name.</li>
--   <li><a>appType</a> - The app type.</li>
--   <li><a>appStackId</a> - The app stack ID.</li>
--   <li><a>appDomains</a> - The app vhost settings with multiple domains
--   separated by commas. For example: <tt>'www.example.com,
--   example.com'</tt></li>
--   <li><a>appDescription</a> - A description of the app.</li>
--   </ul>
app :: App

-- | An <tt>SslConfiguration</tt> object with the SSL configuration.
appSSLConfiguration :: Lens' App (Maybe SSLConfiguration)

-- | An array of <tt>EnvironmentVariable</tt> objects that specify
--   environment variables to be associated with the app. After you deploy
--   the app, these variables are defined on the associated app server
--   instances. For more information, see <a>Environment Variables</a> .
appEnvironment :: Lens' App [EnvironmentVariable]

-- | Whether to enable SSL for the app.
appEnableSSL :: Lens' App (Maybe Bool)

-- | When the app was created.
appCreatedAt :: Lens' App (Maybe Text)

-- | The app's short name.
appShortname :: Lens' App (Maybe Text)

-- | The app's data sources.
appDataSources :: Lens' App [DataSource]

-- | A <tt>Source</tt> object that describes the app repository.
appAppSource :: Lens' App (Maybe Source)

-- | The app ID.
appAppId :: Lens' App (Maybe Text)

-- | The stack attributes.
appAttributes :: Lens' App (HashMap AppAttributesKeys Text)

-- | The app name.
appName :: Lens' App (Maybe Text)

-- | The app type.
appType :: Lens' App (Maybe AppType)

-- | The app stack ID.
appStackId :: Lens' App (Maybe Text)

-- | The app vhost settings with multiple domains separated by commas. For
--   example: <tt>'www.example.com, example.com'</tt>
appDomains :: Lens' App [Text]

-- | A description of the app.
appDescription :: Lens' App (Maybe Text)

-- | Describes a load-based auto scaling upscaling or downscaling threshold
--   configuration, which specifies when AWS OpsWorks starts or stops
--   load-based instances.
--   
--   <i>See:</i> <a>autoScalingThresholds</a> smart constructor.
data AutoScalingThresholds

-- | Creates a value of <a>AutoScalingThresholds</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>astInstanceCount</a> - The number of instances to add or remove
--   when the load exceeds a threshold.</li>
--   <li><a>astIgnoreMetricsTime</a> - The amount of time (in minutes)
--   after a scaling event occurs that AWS OpsWorks should ignore metrics
--   and suppress additional scaling events. For example, AWS OpsWorks adds
--   new instances following an upscaling event but the instances won't
--   start reducing the load until they have been booted and configured.
--   There is no point in raising additional scaling events during that
--   operation, which typically takes several minutes.
--   <tt>IgnoreMetricsTime</tt> allows you to direct AWS OpsWorks to
--   suppress scaling events long enough to get the new instances
--   online.</li>
--   <li><a>astLoadThreshold</a> - The load threshold. A value of -1
--   disables the threshold. For more information about how load is
--   computed, see <a>Load (computing)</a> .</li>
--   <li><a>astThresholdsWaitTime</a> - The amount of time, in minutes,
--   that the load must exceed a threshold before more instances are added
--   or removed.</li>
--   <li><a>astAlarms</a> - Custom Cloudwatch auto scaling alarms, to be
--   used as thresholds. This parameter takes a list of up to five alarm
--   names, which are case sensitive and must be in the same region as the
--   stack.</li>
--   <li><a>astMemoryThreshold</a> - The memory utilization threshold, as a
--   percent of the available memory. A value of -1 disables the
--   threshold.</li>
--   <li><a>astCPUThreshold</a> - The CPU utilization threshold, as a
--   percent of the available CPU. A value of -1 disables the
--   threshold.</li>
--   </ul>
autoScalingThresholds :: AutoScalingThresholds

-- | The number of instances to add or remove when the load exceeds a
--   threshold.
astInstanceCount :: Lens' AutoScalingThresholds (Maybe Int)

-- | The amount of time (in minutes) after a scaling event occurs that AWS
--   OpsWorks should ignore metrics and suppress additional scaling events.
--   For example, AWS OpsWorks adds new instances following an upscaling
--   event but the instances won't start reducing the load until they have
--   been booted and configured. There is no point in raising additional
--   scaling events during that operation, which typically takes several
--   minutes. <tt>IgnoreMetricsTime</tt> allows you to direct AWS OpsWorks
--   to suppress scaling events long enough to get the new instances
--   online.
astIgnoreMetricsTime :: Lens' AutoScalingThresholds (Maybe Natural)

-- | The load threshold. A value of -1 disables the threshold. For more
--   information about how load is computed, see <a>Load (computing)</a> .
astLoadThreshold :: Lens' AutoScalingThresholds (Maybe Double)

-- | The amount of time, in minutes, that the load must exceed a threshold
--   before more instances are added or removed.
astThresholdsWaitTime :: Lens' AutoScalingThresholds (Maybe Natural)

-- | Custom Cloudwatch auto scaling alarms, to be used as thresholds. This
--   parameter takes a list of up to five alarm names, which are case
--   sensitive and must be in the same region as the stack.
astAlarms :: Lens' AutoScalingThresholds [Text]

-- | The memory utilization threshold, as a percent of the available
--   memory. A value of -1 disables the threshold.
astMemoryThreshold :: Lens' AutoScalingThresholds (Maybe Double)

-- | The CPU utilization threshold, as a percent of the available CPU. A
--   value of -1 disables the threshold.
astCPUThreshold :: Lens' AutoScalingThresholds (Maybe Double)

-- | Describes a block device mapping. This data type maps directly to the
--   Amazon EC2 <a>BlockDeviceMapping</a> data type.
--   
--   <i>See:</i> <a>blockDeviceMapping</a> smart constructor.
data BlockDeviceMapping

-- | Creates a value of <a>BlockDeviceMapping</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bdmVirtualName</a> - The virtual device name. For more
--   information, see <a>BlockDeviceMapping</a> .</li>
--   <li><a>bdmNoDevice</a> - Suppresses the specified device included in
--   the AMI's block device mapping.</li>
--   <li><a>bdmEBS</a> - An <tt>EBSBlockDevice</tt> that defines how to
--   configure an Amazon EBS volume when the instance is launched.</li>
--   <li><a>bdmDeviceName</a> - The device name that is exposed to the
--   instance, such as <tt><i>dev</i>sdh</tt> . For the root device, you
--   can use the explicit device name or you can set this parameter to
--   <tt>ROOT_DEVICE</tt> and AWS OpsWorks will provide the correct device
--   name.</li>
--   </ul>
blockDeviceMapping :: BlockDeviceMapping

-- | The virtual device name. For more information, see
--   <a>BlockDeviceMapping</a> .
bdmVirtualName :: Lens' BlockDeviceMapping (Maybe Text)

-- | Suppresses the specified device included in the AMI's block device
--   mapping.
bdmNoDevice :: Lens' BlockDeviceMapping (Maybe Text)

-- | An <tt>EBSBlockDevice</tt> that defines how to configure an Amazon EBS
--   volume when the instance is launched.
bdmEBS :: Lens' BlockDeviceMapping (Maybe EBSBlockDevice)

-- | The device name that is exposed to the instance, such as
--   <tt><i>dev</i>sdh</tt> . For the root device, you can use the explicit
--   device name or you can set this parameter to <tt>ROOT_DEVICE</tt> and
--   AWS OpsWorks will provide the correct device name.
bdmDeviceName :: Lens' BlockDeviceMapping (Maybe Text)

-- | Describes the Chef configuration.
--   
--   <i>See:</i> <a>chefConfiguration</a> smart constructor.
data ChefConfiguration

-- | Creates a value of <a>ChefConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ccBerkshelfVersion</a> - The Berkshelf version.</li>
--   <li><a>ccManageBerkshelf</a> - Whether to enable Berkshelf.</li>
--   </ul>
chefConfiguration :: ChefConfiguration

-- | The Berkshelf version.
ccBerkshelfVersion :: Lens' ChefConfiguration (Maybe Text)

-- | Whether to enable Berkshelf.
ccManageBerkshelf :: Lens' ChefConfiguration (Maybe Bool)

-- | Describes a command.
--   
--   <i>See:</i> <a>command</a> smart constructor.
data Command

-- | Creates a value of <a>Command</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cDeploymentId</a> - The command deployment ID.</li>
--   <li><a>cInstanceId</a> - The ID of the instance where the command was
--   executed.</li>
--   <li><a>cStatus</a> - The command status: * failed * successful *
--   skipped * pending</li>
--   <li><a>cLogURL</a> - The URL of the command log.</li>
--   <li><a>cCreatedAt</a> - Date and time when the command was run.</li>
--   <li><a>cCommandId</a> - The command ID.</li>
--   <li><a>cExitCode</a> - The command exit code.</li>
--   <li><a>cType</a> - The command type: * <tt>deploy</tt> *
--   <tt>rollback</tt> * <tt>start</tt> * <tt>stop</tt> * <tt>restart</tt>
--   * <tt>undeploy</tt> * <tt>update_dependencies</tt> *
--   <tt>install_dependencies</tt> * <tt>update_custom_cookbooks</tt> *
--   <tt>execute_recipes</tt></li>
--   <li><a>cCompletedAt</a> - Date when the command completed.</li>
--   <li><a>cAcknowledgedAt</a> - Date and time when the command was
--   acknowledged.</li>
--   </ul>
command :: Command

-- | The command deployment ID.
cDeploymentId :: Lens' Command (Maybe Text)

-- | The ID of the instance where the command was executed.
cInstanceId :: Lens' Command (Maybe Text)

-- | The command status: * failed * successful * skipped * pending
cStatus :: Lens' Command (Maybe Text)

-- | The URL of the command log.
cLogURL :: Lens' Command (Maybe Text)

-- | Date and time when the command was run.
cCreatedAt :: Lens' Command (Maybe Text)

-- | The command ID.
cCommandId :: Lens' Command (Maybe Text)

-- | The command exit code.
cExitCode :: Lens' Command (Maybe Int)

-- | The command type: * <tt>deploy</tt> * <tt>rollback</tt> *
--   <tt>start</tt> * <tt>stop</tt> * <tt>restart</tt> * <tt>undeploy</tt>
--   * <tt>update_dependencies</tt> * <tt>install_dependencies</tt> *
--   <tt>update_custom_cookbooks</tt> * <tt>execute_recipes</tt>
cType :: Lens' Command (Maybe Text)

-- | Date when the command completed.
cCompletedAt :: Lens' Command (Maybe Text)

-- | Date and time when the command was acknowledged.
cAcknowledgedAt :: Lens' Command (Maybe Text)

-- | Describes an app's data source.
--   
--   <i>See:</i> <a>dataSource</a> smart constructor.
data DataSource

-- | Creates a value of <a>DataSource</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsARN</a> - The data source's ARN.</li>
--   <li><a>dsDatabaseName</a> - The database name.</li>
--   <li><a>dsType</a> - The data source's type,
--   <tt>AutoSelectOpsworksMysqlInstance</tt> ,
--   <tt>OpsworksMysqlInstance</tt> , or <tt>RdsDbInstance</tt> .</li>
--   </ul>
dataSource :: DataSource

-- | The data source's ARN.
dsARN :: Lens' DataSource (Maybe Text)

-- | The database name.
dsDatabaseName :: Lens' DataSource (Maybe Text)

-- | The data source's type, <tt>AutoSelectOpsworksMysqlInstance</tt> ,
--   <tt>OpsworksMysqlInstance</tt> , or <tt>RdsDbInstance</tt> .
dsType :: Lens' DataSource (Maybe Text)

-- | Describes a deployment of a stack or app.
--   
--   <i>See:</i> <a>deployment</a> smart constructor.
data Deployment

-- | Creates a value of <a>Deployment</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dDeploymentId</a> - The deployment ID.</li>
--   <li><a>dStatus</a> - The deployment status: * running * successful *
--   failed</li>
--   <li><a>dCommand</a> - Undocumented member.</li>
--   <li><a>dCreatedAt</a> - Date when the deployment was created.</li>
--   <li><a>dCustomJSON</a> - A string that contains user-defined custom
--   JSON. It can be used to override the corresponding default stack
--   configuration attribute values for stack or to pass data to recipes.
--   The string should be in the following format: <tt>"{"key1": "value1",
--   "key2": "value2",...}"</tt> For more information on custom JSON, see
--   <a>Use Custom JSON to Modify the Stack Configuration Attributes</a>
--   .</li>
--   <li><a>dIAMUserARN</a> - The user's IAM ARN.</li>
--   <li><a>dAppId</a> - The app ID.</li>
--   <li><a>dInstanceIds</a> - The IDs of the target instances.</li>
--   <li><a>dCompletedAt</a> - Date when the deployment completed.</li>
--   <li><a>dStackId</a> - The stack ID.</li>
--   <li><a>dComment</a> - A user-defined comment.</li>
--   <li><a>dDuration</a> - The deployment duration.</li>
--   </ul>
deployment :: Deployment

-- | The deployment ID.
dDeploymentId :: Lens' Deployment (Maybe Text)

-- | The deployment status: * running * successful * failed
dStatus :: Lens' Deployment (Maybe Text)

-- | Undocumented member.
dCommand :: Lens' Deployment (Maybe DeploymentCommand)

-- | Date when the deployment was created.
dCreatedAt :: Lens' Deployment (Maybe Text)

-- | A string that contains user-defined custom JSON. It can be used to
--   override the corresponding default stack configuration attribute
--   values for stack or to pass data to recipes. The string should be in
--   the following format: <tt>"{"key1": "value1", "key2":
--   "value2",...}"</tt> For more information on custom JSON, see <a>Use
--   Custom JSON to Modify the Stack Configuration Attributes</a> .
dCustomJSON :: Lens' Deployment (Maybe Text)

-- | The user's IAM ARN.
dIAMUserARN :: Lens' Deployment (Maybe Text)

-- | The app ID.
dAppId :: Lens' Deployment (Maybe Text)

-- | The IDs of the target instances.
dInstanceIds :: Lens' Deployment [Text]

-- | Date when the deployment completed.
dCompletedAt :: Lens' Deployment (Maybe Text)

-- | The stack ID.
dStackId :: Lens' Deployment (Maybe Text)

-- | A user-defined comment.
dComment :: Lens' Deployment (Maybe Text)

-- | The deployment duration.
dDuration :: Lens' Deployment (Maybe Int)

-- | Used to specify a stack or deployment command.
--   
--   <i>See:</i> <a>deploymentCommand</a> smart constructor.
data DeploymentCommand

-- | Creates a value of <a>DeploymentCommand</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcArgs</a> - The arguments of those commands that take
--   arguments. It should be set to a JSON object with the following
--   format: <tt>{"arg_name1" : ["value1", "value2", ...], "arg_name2" :
--   ["value1", "value2", ...], ...}</tt> The <tt>update_dependencies</tt>
--   command takes two arguments: * <tt>upgrade_os_to</tt> - Specifies the
--   desired Amazon Linux version for instances whose OS you want to
--   upgrade, such as <tt>Amazon Linux 2014.09</tt> . You must also set the
--   <tt>allow_reboot</tt> argument to true. * <tt>allow_reboot</tt> -
--   Specifies whether to allow AWS OpsWorks to reboot the instances if
--   necessary, after installing the updates. This argument can be set to
--   either <tt>true</tt> or <tt>false</tt> . The default value is
--   <tt>false</tt> . For example, to upgrade an instance to Amazon Linux
--   2014.09, set <tt>Args</tt> to the following. <tt>{
--   "upgrade_os_to":["Amazon Linux 2014.09"], "allow_reboot":["true"] }
--   </tt></li>
--   <li><a>dcName</a> - Specifies the operation. You can specify only one
--   command. For stacks, the following commands are available: *
--   <tt>execute_recipes</tt> : Execute one or more recipes. To specify the
--   recipes, set an <tt>Args</tt> parameter named <tt>recipes</tt> to the
--   list of recipes to be executed. For example, to execute
--   <tt>phpapp::appsetup</tt> , set <tt>Args</tt> to
--   <tt>{"recipes":["phpapp::appsetup"]}</tt> . *
--   <tt>install_dependencies</tt> : Install the stack's dependencies. *
--   <tt>update_custom_cookbooks</tt> : Update the stack's custom
--   cookbooks. * <tt>update_dependencies</tt> : Update the stack's
--   dependencies. For apps, the following commands are available: *
--   <tt>deploy</tt> : Deploy an app. Ruby on Rails apps have an optional
--   <tt>Args</tt> parameter named <tt>migrate</tt> . Set <tt>Args</tt> to
--   {"migrate":["true"]} to migrate the database. The default setting is
--   {"migrate":["false"]}. * <tt>rollback</tt> Roll the app back to the
--   previous version. When you update an app, AWS OpsWorks stores the
--   previous version, up to a maximum of five versions. You can use this
--   command to roll an app back as many as four versions. * <tt>start</tt>
--   : Start the app's web or application server. * <tt>stop</tt> : Stop
--   the app's web or application server. * <tt>restart</tt> : Restart the
--   app's web or application server. * <tt>undeploy</tt> : Undeploy the
--   app.</li>
--   </ul>
deploymentCommand :: DeploymentCommandName -> DeploymentCommand

-- | The arguments of those commands that take arguments. It should be set
--   to a JSON object with the following format: <tt>{"arg_name1" :
--   ["value1", "value2", ...], "arg_name2" : ["value1", "value2", ...],
--   ...}</tt> The <tt>update_dependencies</tt> command takes two
--   arguments: * <tt>upgrade_os_to</tt> - Specifies the desired Amazon
--   Linux version for instances whose OS you want to upgrade, such as
--   <tt>Amazon Linux 2014.09</tt> . You must also set the
--   <tt>allow_reboot</tt> argument to true. * <tt>allow_reboot</tt> -
--   Specifies whether to allow AWS OpsWorks to reboot the instances if
--   necessary, after installing the updates. This argument can be set to
--   either <tt>true</tt> or <tt>false</tt> . The default value is
--   <tt>false</tt> . For example, to upgrade an instance to Amazon Linux
--   2014.09, set <tt>Args</tt> to the following. <tt>{
--   "upgrade_os_to":["Amazon Linux 2014.09"], "allow_reboot":["true"] }
--   </tt>
dcArgs :: Lens' DeploymentCommand (HashMap Text [Text])

-- | Specifies the operation. You can specify only one command. For stacks,
--   the following commands are available: * <tt>execute_recipes</tt> :
--   Execute one or more recipes. To specify the recipes, set an
--   <tt>Args</tt> parameter named <tt>recipes</tt> to the list of recipes
--   to be executed. For example, to execute <tt>phpapp::appsetup</tt> ,
--   set <tt>Args</tt> to <tt>{"recipes":["phpapp::appsetup"]}</tt> . *
--   <tt>install_dependencies</tt> : Install the stack's dependencies. *
--   <tt>update_custom_cookbooks</tt> : Update the stack's custom
--   cookbooks. * <tt>update_dependencies</tt> : Update the stack's
--   dependencies. For apps, the following commands are available: *
--   <tt>deploy</tt> : Deploy an app. Ruby on Rails apps have an optional
--   <tt>Args</tt> parameter named <tt>migrate</tt> . Set <tt>Args</tt> to
--   {"migrate":["true"]} to migrate the database. The default setting is
--   {"migrate":["false"]}. * <tt>rollback</tt> Roll the app back to the
--   previous version. When you update an app, AWS OpsWorks stores the
--   previous version, up to a maximum of five versions. You can use this
--   command to roll an app back as many as four versions. * <tt>start</tt>
--   : Start the app's web or application server. * <tt>stop</tt> : Stop
--   the app's web or application server. * <tt>restart</tt> : Restart the
--   app's web or application server. * <tt>undeploy</tt> : Undeploy the
--   app.
dcName :: Lens' DeploymentCommand DeploymentCommandName

-- | Describes an Amazon EBS volume. This data type maps directly to the
--   Amazon EC2 <a>EbsBlockDevice</a> data type.
--   
--   <i>See:</i> <a>ebsBlockDevice</a> smart constructor.
data EBSBlockDevice

-- | Creates a value of <a>EBSBlockDevice</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ebdDeleteOnTermination</a> - Whether the volume is deleted on
--   instance termination.</li>
--   <li><a>ebdVolumeSize</a> - The volume size, in GiB. For more
--   information, see <a>EbsBlockDevice</a> .</li>
--   <li><a>ebdIOPS</a> - The number of I<i>O operations per second (IOPS)
--   that the volume supports. For more information, see
--   &lt;http:</i><i>docs.aws.amazon.com</i>AWSEC2<i>latest</i>APIReference/API_EbsBlockDevice.html
--   EbsBlockDevice&gt; .</li>
--   <li><a>ebdVolumeType</a> - The volume type. <tt>gp2</tt> for General
--   Purpose (SSD) volumes, <tt>io1</tt> for Provisioned IOPS (SSD)
--   volumes, and <tt>standard</tt> for Magnetic volumes.</li>
--   <li><a>ebdSnapshotId</a> - The snapshot ID.</li>
--   </ul>
ebsBlockDevice :: EBSBlockDevice

-- | Whether the volume is deleted on instance termination.
ebdDeleteOnTermination :: Lens' EBSBlockDevice (Maybe Bool)

-- | The volume size, in GiB. For more information, see
--   <a>EbsBlockDevice</a> .
ebdVolumeSize :: Lens' EBSBlockDevice (Maybe Int)

-- | The number of I<i>O operations per second (IOPS) that the volume
--   supports. For more information, see
--   &lt;http:</i><i>docs.aws.amazon.com</i>AWSEC2<i>latest</i>APIReference/API_EbsBlockDevice.html
--   EbsBlockDevice&gt; .
ebdIOPS :: Lens' EBSBlockDevice (Maybe Int)

-- | The volume type. <tt>gp2</tt> for General Purpose (SSD) volumes,
--   <tt>io1</tt> for Provisioned IOPS (SSD) volumes, and <tt>standard</tt>
--   for Magnetic volumes.
ebdVolumeType :: Lens' EBSBlockDevice (Maybe VolumeType)

-- | The snapshot ID.
ebdSnapshotId :: Lens' EBSBlockDevice (Maybe Text)

-- | Describes a registered Amazon ECS cluster.
--   
--   <i>See:</i> <a>ecsCluster</a> smart constructor.
data EcsCluster

-- | Creates a value of <a>EcsCluster</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ecEcsClusterARN</a> - The cluster's ARN.</li>
--   <li><a>ecEcsClusterName</a> - The cluster name.</li>
--   <li><a>ecRegisteredAt</a> - The time and date that the cluster was
--   registered with the stack.</li>
--   <li><a>ecStackId</a> - The stack ID.</li>
--   </ul>
ecsCluster :: EcsCluster

-- | The cluster's ARN.
ecEcsClusterARN :: Lens' EcsCluster (Maybe Text)

-- | The cluster name.
ecEcsClusterName :: Lens' EcsCluster (Maybe Text)

-- | The time and date that the cluster was registered with the stack.
ecRegisteredAt :: Lens' EcsCluster (Maybe Text)

-- | The stack ID.
ecStackId :: Lens' EcsCluster (Maybe Text)

-- | Describes an Elastic IP address.
--   
--   <i>See:</i> <a>elasticIP</a> smart constructor.
data ElasticIP

-- | Creates a value of <a>ElasticIP</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eiInstanceId</a> - The ID of the instance that the address is
--   attached to.</li>
--   <li><a>eiDomain</a> - The domain.</li>
--   <li><a>eiIP</a> - The IP address.</li>
--   <li><a>eiName</a> - The name.</li>
--   <li><a>eiRegion</a> - The AWS region. For more information, see
--   <a>Regions and Endpoints</a> .</li>
--   </ul>
elasticIP :: ElasticIP

-- | The ID of the instance that the address is attached to.
eiInstanceId :: Lens' ElasticIP (Maybe Text)

-- | The domain.
eiDomain :: Lens' ElasticIP (Maybe Text)

-- | The IP address.
eiIP :: Lens' ElasticIP (Maybe Text)

-- | The name.
eiName :: Lens' ElasticIP (Maybe Text)

-- | The AWS region. For more information, see <a>Regions and Endpoints</a>
--   .
eiRegion :: Lens' ElasticIP (Maybe Text)

-- | Describes an Elastic Load Balancing instance.
--   
--   <i>See:</i> <a>elasticLoadBalancer</a> smart constructor.
data ElasticLoadBalancer

-- | Creates a value of <a>ElasticLoadBalancer</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>elbSubnetIds</a> - A list of subnet IDs, if the stack is
--   running in a VPC.</li>
--   <li><a>elbVPCId</a> - The VPC ID.</li>
--   <li><a>elbAvailabilityZones</a> - A list of Availability Zones.</li>
--   <li><a>elbRegion</a> - The instance's AWS region.</li>
--   <li><a>elbElasticLoadBalancerName</a> - The Elastic Load Balancing
--   instance's name.</li>
--   <li><a>elbStackId</a> - The ID of the stack that the instance is
--   associated with.</li>
--   <li><a>elbEC2InstanceIds</a> - A list of the EC2 instances that the
--   Elastic Load Balancing instance is managing traffic for.</li>
--   <li><a>elbLayerId</a> - The ID of the layer that the instance is
--   attached to.</li>
--   <li><a>elbDNSName</a> - The instance's public DNS name.</li>
--   </ul>
elasticLoadBalancer :: ElasticLoadBalancer

-- | A list of subnet IDs, if the stack is running in a VPC.
elbSubnetIds :: Lens' ElasticLoadBalancer [Text]

-- | The VPC ID.
elbVPCId :: Lens' ElasticLoadBalancer (Maybe Text)

-- | A list of Availability Zones.
elbAvailabilityZones :: Lens' ElasticLoadBalancer [Text]

-- | The instance's AWS region.
elbRegion :: Lens' ElasticLoadBalancer (Maybe Text)

-- | The Elastic Load Balancing instance's name.
elbElasticLoadBalancerName :: Lens' ElasticLoadBalancer (Maybe Text)

-- | The ID of the stack that the instance is associated with.
elbStackId :: Lens' ElasticLoadBalancer (Maybe Text)

-- | A list of the EC2 instances that the Elastic Load Balancing instance
--   is managing traffic for.
elbEC2InstanceIds :: Lens' ElasticLoadBalancer [Text]

-- | The ID of the layer that the instance is attached to.
elbLayerId :: Lens' ElasticLoadBalancer (Maybe Text)

-- | The instance's public DNS name.
elbDNSName :: Lens' ElasticLoadBalancer (Maybe Text)

-- | Represents an app's environment variable.
--   
--   <i>See:</i> <a>environmentVariable</a> smart constructor.
data EnvironmentVariable

-- | Creates a value of <a>EnvironmentVariable</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>evSecure</a> - (Optional) Whether the variable's value will be
--   returned by the <tt>DescribeApps</tt> action. To conceal an
--   environment variable's value, set <tt>Secure</tt> to <tt>true</tt> .
--   <tt>DescribeApps</tt> then returns <tt>*****FILTERED*****</tt> instead
--   of the actual value. The default value for <tt>Secure</tt> is
--   <tt>false</tt> .</li>
--   <li><a>evKey</a> - (Required) The environment variable's name, which
--   can consist of up to 64 characters and must be specified. The name can
--   contain upper- and lowercase letters, numbers, and underscores (_),
--   but it must start with a letter or underscore.</li>
--   <li><a>evValue</a> - (Optional) The environment variable's value,
--   which can be left empty. If you specify a value, it can contain up to
--   256 characters, which must all be printable.</li>
--   </ul>
environmentVariable :: Text -> Text -> EnvironmentVariable

-- | (Optional) Whether the variable's value will be returned by the
--   <tt>DescribeApps</tt> action. To conceal an environment variable's
--   value, set <tt>Secure</tt> to <tt>true</tt> . <tt>DescribeApps</tt>
--   then returns <tt>*****FILTERED*****</tt> instead of the actual value.
--   The default value for <tt>Secure</tt> is <tt>false</tt> .
evSecure :: Lens' EnvironmentVariable (Maybe Bool)

-- | (Required) The environment variable's name, which can consist of up to
--   64 characters and must be specified. The name can contain upper- and
--   lowercase letters, numbers, and underscores (_), but it must start
--   with a letter or underscore.
evKey :: Lens' EnvironmentVariable Text

-- | (Optional) The environment variable's value, which can be left empty.
--   If you specify a value, it can contain up to 256 characters, which
--   must all be printable.
evValue :: Lens' EnvironmentVariable Text

-- | Describes an instance.
--   
--   <i>See:</i> <a>instance'</a> smart constructor.
data Instance

-- | Creates a value of <a>Instance</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iPrivateDNS</a> - The The instance's private DNS name.</li>
--   <li><a>iReportedAgentVersion</a> - The instance's reported AWS
--   OpsWorks agent version.</li>
--   <li><a>iInstanceId</a> - The instance ID.</li>
--   <li><a>iStatus</a> - The instance status: * <tt>booting</tt> *
--   <tt>connection_lost</tt> * <tt>online</tt> * <tt>pending</tt> *
--   <tt>rebooting</tt> * <tt>requested</tt> * <tt>running_setup</tt> *
--   <tt>setup_failed</tt> * <tt>shutting_down</tt> * <tt>start_failed</tt>
--   * <tt>stop_failed</tt> * <tt>stopped</tt> * <tt>stopping</tt> *
--   <tt>terminated</tt> * <tt>terminating</tt></li>
--   <li><a>iPrivateIP</a> - The instance's private IP address.</li>
--   <li><a>iInstallUpdatesOnBoot</a> - Whether to install operating system
--   and package updates when the instance boots. The default value is
--   <tt>true</tt> . If this value is set to <tt>false</tt> , you must then
--   update your instances manually by using <tt>CreateDeployment</tt> to
--   run the <tt>update_dependencies</tt> stack command or by manually
--   running <tt>yum</tt> (Amazon Linux) or <tt>apt-get</tt> (Ubuntu) on
--   the instances.</li>
--   <li><a>iVirtualizationType</a> - The instance's virtualization type:
--   <tt>paravirtual</tt> or <tt>hvm</tt> .</li>
--   <li><a>iInstanceProfileARN</a> - The ARN of the instance's IAM
--   profile. For more information about IAM ARNs, see <a>Using
--   Identifiers</a> .</li>
--   <li><a>iPlatform</a> - The instance's platform.</li>
--   <li><a>iHostname</a> - The instance host name.</li>
--   <li><a>iSSHHostRsaKeyFingerprint</a> - The SSH key's RSA
--   fingerprint.</li>
--   <li><a>iSecurityGroupIds</a> - An array containing the instance
--   security group IDs.</li>
--   <li><a>iEcsClusterARN</a> - For container instances, the Amazon ECS
--   cluster's ARN.</li>
--   <li><a>iCreatedAt</a> - The time that the instance was created.</li>
--   <li><a>iEC2InstanceId</a> - The ID of the associated Amazon EC2
--   instance.</li>
--   <li><a>iSSHKeyName</a> - The instance's Amazon EC2 key-pair name.</li>
--   <li><a>iAgentVersion</a> - The agent version. This parameter is set to
--   <tt>INHERIT</tt> if the instance inherits the default stack setting or
--   to a a version number for a fixed agent version.</li>
--   <li><a>iRootDeviceVolumeId</a> - The root device volume ID.</li>
--   <li><a>iSubnetId</a> - The instance's subnet ID; applicable only if
--   the stack is running in a VPC.</li>
--   <li><a>iInfrastructureClass</a> - For registered instances, the
--   infrastructure class: <tt>ec2</tt> or <tt>on-premises</tt> .</li>
--   <li><a>iSSHHostDsaKeyFingerprint</a> - The SSH key's Deep Security
--   Agent (DSA) fingerprint.</li>
--   <li><a>iInstanceType</a> - The instance type, such as
--   <tt>t2.micro</tt> .</li>
--   <li><a>iEBSOptimized</a> - Whether this is an Amazon EBS-optimized
--   instance.</li>
--   <li><a>iElasticIP</a> - The instance <a>Elastic IP address</a> .</li>
--   <li><a>iOS</a> - The instance's operating system.</li>
--   <li><a>iAvailabilityZone</a> - The instance Availability Zone. For
--   more information, see <a>Regions and Endpoints</a> .</li>
--   <li><a>iLastServiceErrorId</a> - The ID of the last service error. For
--   more information, call <tt>DescribeServiceErrors</tt> .</li>
--   <li><a>iTenancy</a> - The instance's tenancy option, such as
--   <tt>dedicated</tt> or <tt>host</tt> .</li>
--   <li><a>iAutoScalingType</a> - For load-based or time-based instances,
--   the type.</li>
--   <li><a>iLayerIds</a> - An array containing the instance layer
--   IDs.</li>
--   <li><a>iArchitecture</a> - The instance architecture: "i386" or
--   "x86_64".</li>
--   <li><a>iPublicDNS</a> - The instance public DNS name.</li>
--   <li><a>iAMIId</a> - A custom AMI ID to be used to create the instance.
--   For more information, see <a>Instances</a></li>
--   <li><a>iPublicIP</a> - The instance public IP address.</li>
--   <li><a>iReportedOS</a> - For registered instances, the reported
--   operating system.</li>
--   <li><a>iRegisteredBy</a> - For registered instances, who performed the
--   registration.</li>
--   <li><a>iStackId</a> - The stack ID.</li>
--   <li><a>iRootDeviceType</a> - The instance's root device type. For more
--   information, see <a>Storage for the Root Device</a> .</li>
--   <li><a>iEcsContainerInstanceARN</a> - For container instances, the
--   instance's ARN.</li>
--   <li><a>iBlockDeviceMappings</a> - An array of
--   <tt>BlockDeviceMapping</tt> objects that specify the instance's block
--   device mappings.</li>
--   </ul>
instance' :: Instance

-- | The The instance's private DNS name.
iPrivateDNS :: Lens' Instance (Maybe Text)

-- | The instance's reported AWS OpsWorks agent version.
iReportedAgentVersion :: Lens' Instance (Maybe Text)

-- | The instance ID.
iInstanceId :: Lens' Instance (Maybe Text)

-- | The instance status: * <tt>booting</tt> * <tt>connection_lost</tt> *
--   <tt>online</tt> * <tt>pending</tt> * <tt>rebooting</tt> *
--   <tt>requested</tt> * <tt>running_setup</tt> * <tt>setup_failed</tt> *
--   <tt>shutting_down</tt> * <tt>start_failed</tt> * <tt>stop_failed</tt>
--   * <tt>stopped</tt> * <tt>stopping</tt> * <tt>terminated</tt> *
--   <tt>terminating</tt>
iStatus :: Lens' Instance (Maybe Text)

-- | The instance's private IP address.
iPrivateIP :: Lens' Instance (Maybe Text)

-- | Whether to install operating system and package updates when the
--   instance boots. The default value is <tt>true</tt> . If this value is
--   set to <tt>false</tt> , you must then update your instances manually
--   by using <tt>CreateDeployment</tt> to run the
--   <tt>update_dependencies</tt> stack command or by manually running
--   <tt>yum</tt> (Amazon Linux) or <tt>apt-get</tt> (Ubuntu) on the
--   instances.
iInstallUpdatesOnBoot :: Lens' Instance (Maybe Bool)

-- | The instance's virtualization type: <tt>paravirtual</tt> or
--   <tt>hvm</tt> .
iVirtualizationType :: Lens' Instance (Maybe VirtualizationType)

-- | The ARN of the instance's IAM profile. For more information about IAM
--   ARNs, see <a>Using Identifiers</a> .
iInstanceProfileARN :: Lens' Instance (Maybe Text)

-- | The instance's platform.
iPlatform :: Lens' Instance (Maybe Text)

-- | The instance host name.
iHostname :: Lens' Instance (Maybe Text)

-- | The SSH key's RSA fingerprint.
iSSHHostRsaKeyFingerprint :: Lens' Instance (Maybe Text)

-- | An array containing the instance security group IDs.
iSecurityGroupIds :: Lens' Instance [Text]

-- | For container instances, the Amazon ECS cluster's ARN.
iEcsClusterARN :: Lens' Instance (Maybe Text)

-- | The time that the instance was created.
iCreatedAt :: Lens' Instance (Maybe Text)

-- | The ID of the associated Amazon EC2 instance.
iEC2InstanceId :: Lens' Instance (Maybe Text)

-- | The instance's Amazon EC2 key-pair name.
iSSHKeyName :: Lens' Instance (Maybe Text)

-- | The agent version. This parameter is set to <tt>INHERIT</tt> if the
--   instance inherits the default stack setting or to a a version number
--   for a fixed agent version.
iAgentVersion :: Lens' Instance (Maybe Text)

-- | The root device volume ID.
iRootDeviceVolumeId :: Lens' Instance (Maybe Text)

-- | The instance's subnet ID; applicable only if the stack is running in a
--   VPC.
iSubnetId :: Lens' Instance (Maybe Text)

-- | For registered instances, the infrastructure class: <tt>ec2</tt> or
--   <tt>on-premises</tt> .
iInfrastructureClass :: Lens' Instance (Maybe Text)

-- | The SSH key's Deep Security Agent (DSA) fingerprint.
iSSHHostDsaKeyFingerprint :: Lens' Instance (Maybe Text)

-- | The instance type, such as <tt>t2.micro</tt> .
iInstanceType :: Lens' Instance (Maybe Text)

-- | Whether this is an Amazon EBS-optimized instance.
iEBSOptimized :: Lens' Instance (Maybe Bool)

-- | The instance <a>Elastic IP address</a> .
iElasticIP :: Lens' Instance (Maybe Text)

-- | The instance's operating system.
iOS :: Lens' Instance (Maybe Text)

-- | The instance Availability Zone. For more information, see <a>Regions
--   and Endpoints</a> .
iAvailabilityZone :: Lens' Instance (Maybe Text)

-- | The ID of the last service error. For more information, call
--   <tt>DescribeServiceErrors</tt> .
iLastServiceErrorId :: Lens' Instance (Maybe Text)

-- | The instance's tenancy option, such as <tt>dedicated</tt> or
--   <tt>host</tt> .
iTenancy :: Lens' Instance (Maybe Text)

-- | For load-based or time-based instances, the type.
iAutoScalingType :: Lens' Instance (Maybe AutoScalingType)

-- | An array containing the instance layer IDs.
iLayerIds :: Lens' Instance [Text]

-- | The instance architecture: "i386" or "x86_64".
iArchitecture :: Lens' Instance (Maybe Architecture)

-- | The instance public DNS name.
iPublicDNS :: Lens' Instance (Maybe Text)

-- | A custom AMI ID to be used to create the instance. For more
--   information, see <a>Instances</a>
iAMIId :: Lens' Instance (Maybe Text)

-- | The instance public IP address.
iPublicIP :: Lens' Instance (Maybe Text)

-- | For registered instances, the reported operating system.
iReportedOS :: Lens' Instance (Maybe ReportedOS)

-- | For registered instances, who performed the registration.
iRegisteredBy :: Lens' Instance (Maybe Text)

-- | The stack ID.
iStackId :: Lens' Instance (Maybe Text)

-- | The instance's root device type. For more information, see <a>Storage
--   for the Root Device</a> .
iRootDeviceType :: Lens' Instance (Maybe RootDeviceType)

-- | For container instances, the instance's ARN.
iEcsContainerInstanceARN :: Lens' Instance (Maybe Text)

-- | An array of <tt>BlockDeviceMapping</tt> objects that specify the
--   instance's block device mappings.
iBlockDeviceMappings :: Lens' Instance [BlockDeviceMapping]

-- | Contains a description of an Amazon EC2 instance from the Amazon EC2
--   metadata service. For more information, see <a>Instance Metadata and
--   User Data</a> .
--   
--   <i>See:</i> <a>instanceIdentity</a> smart constructor.
data InstanceIdentity

-- | Creates a value of <a>InstanceIdentity</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iiSignature</a> - A signature that can be used to verify the
--   document's accuracy and authenticity.</li>
--   <li><a>iiDocument</a> - A JSON document that contains the
--   metadata.</li>
--   </ul>
instanceIdentity :: InstanceIdentity

-- | A signature that can be used to verify the document's accuracy and
--   authenticity.
iiSignature :: Lens' InstanceIdentity (Maybe Text)

-- | A JSON document that contains the metadata.
iiDocument :: Lens' InstanceIdentity (Maybe Text)

-- | Describes how many instances a stack has for each status.
--   
--   <i>See:</i> <a>instancesCount</a> smart constructor.
data InstancesCount

-- | Creates a value of <a>InstancesCount</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>icTerminating</a> - The number of instances with
--   <tt>terminating</tt> status.</li>
--   <li><a>icPending</a> - The number of instances with <tt>pending</tt>
--   status.</li>
--   <li><a>icOnline</a> - The number of instances with <tt>online</tt>
--   status.</li>
--   <li><a>icUnassigning</a> - The number of instances in the Unassigning
--   state.</li>
--   <li><a>icDeregistering</a> - The number of instances in the
--   Deregistering state.</li>
--   <li><a>icRunningSetup</a> - The number of instances with
--   <tt>running_setup</tt> status.</li>
--   <li><a>icRequested</a> - The number of instances with
--   <tt>requested</tt> status.</li>
--   <li><a>icBooting</a> - The number of instances with <tt>booting</tt>
--   status.</li>
--   <li><a>icStopped</a> - The number of instances with <tt>stopped</tt>
--   status.</li>
--   <li><a>icRebooting</a> - The number of instances with
--   <tt>rebooting</tt> status.</li>
--   <li><a>icAssigning</a> - The number of instances in the Assigning
--   state.</li>
--   <li><a>icShuttingDown</a> - The number of instances with
--   <tt>shutting_down</tt> status.</li>
--   <li><a>icSetupFailed</a> - The number of instances with
--   <tt>setup_failed</tt> status.</li>
--   <li><a>icConnectionLost</a> - The number of instances with
--   <tt>connection_lost</tt> status.</li>
--   <li><a>icTerminated</a> - The number of instances with
--   <tt>terminated</tt> status.</li>
--   <li><a>icStopping</a> - The number of instances with <tt>stopping</tt>
--   status.</li>
--   <li><a>icRegistered</a> - The number of instances in the Registered
--   state.</li>
--   <li><a>icStartFailed</a> - The number of instances with
--   <tt>start_failed</tt> status.</li>
--   <li><a>icRegistering</a> - The number of instances in the Registering
--   state.</li>
--   </ul>
instancesCount :: InstancesCount

-- | The number of instances with <tt>terminating</tt> status.
icTerminating :: Lens' InstancesCount (Maybe Int)

-- | The number of instances with <tt>pending</tt> status.
icPending :: Lens' InstancesCount (Maybe Int)

-- | The number of instances with <tt>online</tt> status.
icOnline :: Lens' InstancesCount (Maybe Int)

-- | The number of instances in the Unassigning state.
icUnassigning :: Lens' InstancesCount (Maybe Int)

-- | The number of instances in the Deregistering state.
icDeregistering :: Lens' InstancesCount (Maybe Int)

-- | The number of instances with <tt>running_setup</tt> status.
icRunningSetup :: Lens' InstancesCount (Maybe Int)

-- | The number of instances with <tt>requested</tt> status.
icRequested :: Lens' InstancesCount (Maybe Int)

-- | The number of instances with <tt>booting</tt> status.
icBooting :: Lens' InstancesCount (Maybe Int)

-- | The number of instances with <tt>stopped</tt> status.
icStopped :: Lens' InstancesCount (Maybe Int)

-- | The number of instances with <tt>rebooting</tt> status.
icRebooting :: Lens' InstancesCount (Maybe Int)

-- | The number of instances in the Assigning state.
icAssigning :: Lens' InstancesCount (Maybe Int)

-- | The number of instances with <tt>shutting_down</tt> status.
icShuttingDown :: Lens' InstancesCount (Maybe Int)

-- | The number of instances with <tt>setup_failed</tt> status.
icSetupFailed :: Lens' InstancesCount (Maybe Int)

-- | The number of instances with <tt>connection_lost</tt> status.
icConnectionLost :: Lens' InstancesCount (Maybe Int)

-- | The number of instances with <tt>terminated</tt> status.
icTerminated :: Lens' InstancesCount (Maybe Int)

-- | The number of instances with <tt>stopping</tt> status.
icStopping :: Lens' InstancesCount (Maybe Int)

-- | The number of instances in the Registered state.
icRegistered :: Lens' InstancesCount (Maybe Int)

-- | The number of instances with <tt>start_failed</tt> status.
icStartFailed :: Lens' InstancesCount (Maybe Int)

-- | The number of instances in the Registering state.
icRegistering :: Lens' InstancesCount (Maybe Int)

-- | Describes a layer.
--   
--   <i>See:</i> <a>layer</a> smart constructor.
data Layer

-- | Creates a value of <a>Layer</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lCustomInstanceProfileARN</a> - The ARN of the default IAM
--   profile to be used for the layer's EC2 instances. For more information
--   about IAM ARNs, see <a>Using Identifiers</a> .</li>
--   <li><a>lCustomSecurityGroupIds</a> - An array containing the layer's
--   custom security group IDs.</li>
--   <li><a>lInstallUpdatesOnBoot</a> - Whether to install operating system
--   and package updates when the instance boots. The default value is
--   <tt>true</tt> . If this value is set to <tt>false</tt> , you must then
--   update your instances manually by using <tt>CreateDeployment</tt> to
--   run the <tt>update_dependencies</tt> stack command or manually running
--   <tt>yum</tt> (Amazon Linux) or <tt>apt-get</tt> (Ubuntu) on the
--   instances.</li>
--   <li><a>lLifecycleEventConfiguration</a> - A
--   <tt>LifeCycleEventConfiguration</tt> object that specifies the
--   Shutdown event configuration.</li>
--   <li><a>lCreatedAt</a> - Date when the layer was created.</li>
--   <li><a>lShortname</a> - The layer short name.</li>
--   <li><a>lDefaultRecipes</a> - Undocumented member.</li>
--   <li><a>lCustomRecipes</a> - A <tt>LayerCustomRecipes</tt> object that
--   specifies the layer's custom recipes.</li>
--   <li><a>lCustomJSON</a> - A JSON formatted string containing the
--   layer's custom stack configuration and deployment attributes.</li>
--   <li><a>lVolumeConfigurations</a> - A <tt>VolumeConfigurations</tt>
--   object that describes the layer's Amazon EBS volumes.</li>
--   <li><a>lEnableAutoHealing</a> - Whether auto healing is disabled for
--   the layer.</li>
--   <li><a>lPackages</a> - An array of <tt>Package</tt> objects that
--   describe the layer's packages.</li>
--   <li><a>lAttributes</a> - The layer attributes. For the
--   <tt>HaproxyStatsPassword</tt> , <tt>MysqlRootPassword</tt> , and
--   <tt>GangliaPassword</tt> attributes, AWS OpsWorks returns
--   <tt>*****FILTERED*****</tt> instead of the actual value For an ECS
--   Cluster layer, AWS OpsWorks the <tt>EcsClusterArn</tt> attribute is
--   set to the cluster's ARN.</li>
--   <li><a>lName</a> - The layer name.</li>
--   <li><a>lAutoAssignPublicIPs</a> - 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 <a>How to Edit a
--   Layer</a> .</li>
--   <li><a>lType</a> - The layer type.</li>
--   <li><a>lUseEBSOptimizedInstances</a> - Whether the layer uses Amazon
--   EBS-optimized instances.</li>
--   <li><a>lStackId</a> - The layer stack ID.</li>
--   <li><a>lLayerId</a> - The layer ID.</li>
--   <li><a>lDefaultSecurityGroupNames</a> - An array containing the
--   layer's security group names.</li>
--   <li><a>lAutoAssignElasticIPs</a> - Whether to automatically assign an
--   <a>Elastic IP address</a> to the layer's instances. For more
--   information, see <a>How to Edit a Layer</a> .</li>
--   </ul>
layer :: Layer

-- | The ARN of the default IAM profile to be used for the layer's EC2
--   instances. For more information about IAM ARNs, see <a>Using
--   Identifiers</a> .
lCustomInstanceProfileARN :: Lens' Layer (Maybe Text)

-- | An array containing the layer's custom security group IDs.
lCustomSecurityGroupIds :: Lens' Layer [Text]

-- | Whether to install operating system and package updates when the
--   instance boots. The default value is <tt>true</tt> . If this value is
--   set to <tt>false</tt> , you must then update your instances manually
--   by using <tt>CreateDeployment</tt> to run the
--   <tt>update_dependencies</tt> stack command or manually running
--   <tt>yum</tt> (Amazon Linux) or <tt>apt-get</tt> (Ubuntu) on the
--   instances.
lInstallUpdatesOnBoot :: Lens' Layer (Maybe Bool)

-- | A <tt>LifeCycleEventConfiguration</tt> object that specifies the
--   Shutdown event configuration.
lLifecycleEventConfiguration :: Lens' Layer (Maybe LifecycleEventConfiguration)

-- | Date when the layer was created.
lCreatedAt :: Lens' Layer (Maybe Text)

-- | The layer short name.
lShortname :: Lens' Layer (Maybe Text)

-- | Undocumented member.
lDefaultRecipes :: Lens' Layer (Maybe Recipes)

-- | A <tt>LayerCustomRecipes</tt> object that specifies the layer's custom
--   recipes.
lCustomRecipes :: Lens' Layer (Maybe Recipes)

-- | A JSON formatted string containing the layer's custom stack
--   configuration and deployment attributes.
lCustomJSON :: Lens' Layer (Maybe Text)

-- | A <tt>VolumeConfigurations</tt> object that describes the layer's
--   Amazon EBS volumes.
lVolumeConfigurations :: Lens' Layer [VolumeConfiguration]

-- | Whether auto healing is disabled for the layer.
lEnableAutoHealing :: Lens' Layer (Maybe Bool)

-- | An array of <tt>Package</tt> objects that describe the layer's
--   packages.
lPackages :: Lens' Layer [Text]

-- | The layer attributes. For the <tt>HaproxyStatsPassword</tt> ,
--   <tt>MysqlRootPassword</tt> , and <tt>GangliaPassword</tt> attributes,
--   AWS OpsWorks returns <tt>*****FILTERED*****</tt> instead of the actual
--   value For an ECS Cluster layer, AWS OpsWorks the
--   <tt>EcsClusterArn</tt> attribute is set to the cluster's ARN.
lAttributes :: Lens' Layer (HashMap LayerAttributesKeys Text)

-- | The layer name.
lName :: Lens' Layer (Maybe Text)

-- | 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 <a>How to Edit a Layer</a> .
lAutoAssignPublicIPs :: Lens' Layer (Maybe Bool)

-- | The layer type.
lType :: Lens' Layer (Maybe LayerType)

-- | Whether the layer uses Amazon EBS-optimized instances.
lUseEBSOptimizedInstances :: Lens' Layer (Maybe Bool)

-- | The layer stack ID.
lStackId :: Lens' Layer (Maybe Text)

-- | The layer ID.
lLayerId :: Lens' Layer (Maybe Text)

-- | An array containing the layer's security group names.
lDefaultSecurityGroupNames :: Lens' Layer [Text]

-- | Whether to automatically assign an <a>Elastic IP address</a> to the
--   layer's instances. For more information, see <a>How to Edit a
--   Layer</a> .
lAutoAssignElasticIPs :: Lens' Layer (Maybe Bool)

-- | Specifies the lifecycle event configuration
--   
--   <i>See:</i> <a>lifecycleEventConfiguration</a> smart constructor.
data LifecycleEventConfiguration

-- | Creates a value of <a>LifecycleEventConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lecShutdown</a> - A <tt>ShutdownEventConfiguration</tt> object
--   that specifies the Shutdown event configuration.</li>
--   </ul>
lifecycleEventConfiguration :: LifecycleEventConfiguration

-- | A <tt>ShutdownEventConfiguration</tt> object that specifies the
--   Shutdown event configuration.
lecShutdown :: Lens' LifecycleEventConfiguration (Maybe ShutdownEventConfiguration)

-- | Describes a layer's load-based auto scaling configuration.
--   
--   <i>See:</i> <a>loadBasedAutoScalingConfiguration</a> smart
--   constructor.
data LoadBasedAutoScalingConfiguration

-- | Creates a value of <a>LoadBasedAutoScalingConfiguration</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbascUpScaling</a> - An <tt>AutoScalingThresholds</tt> object
--   that describes the upscaling configuration, which defines how and when
--   AWS OpsWorks increases the number of instances.</li>
--   <li><a>lbascEnable</a> - Whether load-based auto scaling is enabled
--   for the layer.</li>
--   <li><a>lbascDownScaling</a> - An <tt>AutoScalingThresholds</tt> object
--   that describes the downscaling configuration, which defines how and
--   when AWS OpsWorks reduces the number of instances.</li>
--   <li><a>lbascLayerId</a> - The layer ID.</li>
--   </ul>
loadBasedAutoScalingConfiguration :: LoadBasedAutoScalingConfiguration

-- | An <tt>AutoScalingThresholds</tt> object that describes the upscaling
--   configuration, which defines how and when AWS OpsWorks increases the
--   number of instances.
lbascUpScaling :: Lens' LoadBasedAutoScalingConfiguration (Maybe AutoScalingThresholds)

-- | Whether load-based auto scaling is enabled for the layer.
lbascEnable :: Lens' LoadBasedAutoScalingConfiguration (Maybe Bool)

-- | An <tt>AutoScalingThresholds</tt> object that describes the
--   downscaling configuration, which defines how and when AWS OpsWorks
--   reduces the number of instances.
lbascDownScaling :: Lens' LoadBasedAutoScalingConfiguration (Maybe AutoScalingThresholds)

-- | The layer ID.
lbascLayerId :: Lens' LoadBasedAutoScalingConfiguration (Maybe Text)

-- | Describes stack or user permissions.
--   
--   <i>See:</i> <a>permission</a> smart constructor.
data Permission

-- | Creates a value of <a>Permission</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pIAMUserARN</a> - The Amazon Resource Name (ARN) for an AWS
--   Identity and Access Management (IAM) role. For more information about
--   IAM ARNs, see <a>Using Identifiers</a> .</li>
--   <li><a>pAllowSudo</a> - Whether the user can use <b>sudo</b> .</li>
--   <li><a>pStackId</a> - A stack ID.</li>
--   <li><a>pLevel</a> - The user's permission level, which must be the
--   following: * <tt>deny</tt> * <tt>show</tt> * <tt>deploy</tt> *
--   <tt>manage</tt> * <tt>iam_only</tt> For more information on the
--   permissions associated with these levels, see <a>Managing User
--   Permissions</a></li>
--   <li><a>pAllowSSH</a> - Whether the user can use SSH.</li>
--   </ul>
permission :: Permission

-- | The Amazon Resource Name (ARN) for an AWS Identity and Access
--   Management (IAM) role. For more information about IAM ARNs, see
--   <a>Using Identifiers</a> .
pIAMUserARN :: Lens' Permission (Maybe Text)

-- | Whether the user can use <b>sudo</b> .
pAllowSudo :: Lens' Permission (Maybe Bool)

-- | A stack ID.
pStackId :: Lens' Permission (Maybe Text)

-- | The user's permission level, which must be the following: *
--   <tt>deny</tt> * <tt>show</tt> * <tt>deploy</tt> * <tt>manage</tt> *
--   <tt>iam_only</tt> For more information on the permissions associated
--   with these levels, see <a>Managing User Permissions</a>
pLevel :: Lens' Permission (Maybe Text)

-- | Whether the user can use SSH.
pAllowSSH :: Lens' Permission (Maybe Bool)

-- | Describes an instance's RAID array.
--   
--   <i>See:</i> <a>rAIdArray</a> smart constructor.
data RAIdArray

-- | Creates a value of <a>RAIdArray</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>raiaInstanceId</a> - The instance ID.</li>
--   <li><a>raiaSize</a> - The array's size.</li>
--   <li><a>raiaIOPS</a> - For PIOPS volumes, the IOPS per disk.</li>
--   <li><a>raiaCreatedAt</a> - When the RAID array was created.</li>
--   <li><a>raiaRAIdLevel</a> - The <a>RAID level</a> .</li>
--   <li><a>raiaDevice</a> - The array's Linux device. For example
--   <i>dev</i>mdadm0.</li>
--   <li><a>raiaNumberOfDisks</a> - The number of disks in the array.</li>
--   <li><a>raiaAvailabilityZone</a> - The array's Availability Zone. For
--   more information, see <a>Regions and Endpoints</a> .</li>
--   <li><a>raiaName</a> - The array name.</li>
--   <li><a>raiaRAIdArrayId</a> - The array ID.</li>
--   <li><a>raiaVolumeType</a> - The volume type, standard or PIOPS.</li>
--   <li><a>raiaStackId</a> - The stack ID.</li>
--   <li><a>raiaMountPoint</a> - The array's mount point.</li>
--   </ul>
rAIdArray :: RAIdArray

-- | The instance ID.
raiaInstanceId :: Lens' RAIdArray (Maybe Text)

-- | The array's size.
raiaSize :: Lens' RAIdArray (Maybe Int)

-- | For PIOPS volumes, the IOPS per disk.
raiaIOPS :: Lens' RAIdArray (Maybe Int)

-- | When the RAID array was created.
raiaCreatedAt :: Lens' RAIdArray (Maybe Text)

-- | The <a>RAID level</a> .
raiaRAIdLevel :: Lens' RAIdArray (Maybe Int)

-- | The array's Linux device. For example <i>dev</i>mdadm0.
raiaDevice :: Lens' RAIdArray (Maybe Text)

-- | The number of disks in the array.
raiaNumberOfDisks :: Lens' RAIdArray (Maybe Int)

-- | The array's Availability Zone. For more information, see <a>Regions
--   and Endpoints</a> .
raiaAvailabilityZone :: Lens' RAIdArray (Maybe Text)

-- | The array name.
raiaName :: Lens' RAIdArray (Maybe Text)

-- | The array ID.
raiaRAIdArrayId :: Lens' RAIdArray (Maybe Text)

-- | The volume type, standard or PIOPS.
raiaVolumeType :: Lens' RAIdArray (Maybe Text)

-- | The stack ID.
raiaStackId :: Lens' RAIdArray (Maybe Text)

-- | The array's mount point.
raiaMountPoint :: Lens' RAIdArray (Maybe Text)

-- | Describes an Amazon RDS instance.
--   
--   <i>See:</i> <a>rdsDBInstance</a> smart constructor.
data RDSDBInstance

-- | Creates a value of <a>RDSDBInstance</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rdiRDSDBInstanceARN</a> - The instance's ARN.</li>
--   <li><a>rdiDBUser</a> - The master user name.</li>
--   <li><a>rdiMissingOnRDS</a> - Set to <tt>true</tt> if AWS OpsWorks was
--   unable to discover the Amazon RDS instance. AWS OpsWorks attempts to
--   discover the instance only once. If this value is set to <tt>true</tt>
--   , you must deregister the instance and then register it again.</li>
--   <li><a>rdiEngine</a> - The instance's database engine.</li>
--   <li><a>rdiAddress</a> - The instance's address.</li>
--   <li><a>rdiDBInstanceIdentifier</a> - The DB instance identifier.</li>
--   <li><a>rdiRegion</a> - The instance's AWS region.</li>
--   <li><a>rdiStackId</a> - The ID of the stack that the instance is
--   registered with.</li>
--   <li><a>rdiDBPassword</a> - AWS OpsWorks returns
--   <tt>*****FILTERED*****</tt> instead of the actual value.</li>
--   </ul>
rdsDBInstance :: RDSDBInstance

-- | The instance's ARN.
rdiRDSDBInstanceARN :: Lens' RDSDBInstance (Maybe Text)

-- | The master user name.
rdiDBUser :: Lens' RDSDBInstance (Maybe Text)

-- | Set to <tt>true</tt> if AWS OpsWorks was unable to discover the Amazon
--   RDS instance. AWS OpsWorks attempts to discover the instance only
--   once. If this value is set to <tt>true</tt> , you must deregister the
--   instance and then register it again.
rdiMissingOnRDS :: Lens' RDSDBInstance (Maybe Bool)

-- | The instance's database engine.
rdiEngine :: Lens' RDSDBInstance (Maybe Text)

-- | The instance's address.
rdiAddress :: Lens' RDSDBInstance (Maybe Text)

-- | The DB instance identifier.
rdiDBInstanceIdentifier :: Lens' RDSDBInstance (Maybe Text)

-- | The instance's AWS region.
rdiRegion :: Lens' RDSDBInstance (Maybe Text)

-- | The ID of the stack that the instance is registered with.
rdiStackId :: Lens' RDSDBInstance (Maybe Text)

-- | AWS OpsWorks returns <tt>*****FILTERED*****</tt> instead of the actual
--   value.
rdiDBPassword :: Lens' RDSDBInstance (Maybe Text)

-- | AWS OpsWorks supports five lifecycle events: <b>setup</b> ,
--   <b>configuration</b> , <b>deploy</b> , <b>undeploy</b> , and
--   <b>shutdown</b> . For each layer, AWS OpsWorks runs a set of standard
--   recipes for each event. In addition, you can provide custom recipes
--   for any or all layers and events. AWS OpsWorks runs custom event
--   recipes after the standard recipes. <tt>LayerCustomRecipes</tt>
--   specifies the custom recipes for a particular layer to be run in
--   response to each of the five events.
--   
--   To specify a recipe, use the cookbook's directory name in the
--   repository followed by two colons and the recipe name, which is the
--   recipe's file name without the .rb extension. For example:
--   phpapp2::dbsetup specifies the dbsetup.rb recipe in the repository's
--   phpapp2 folder.
--   
--   <i>See:</i> <a>recipes</a> smart constructor.
data Recipes

-- | Creates a value of <a>Recipes</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rSetup</a> - An array of custom recipe names to be run
--   following a <tt>setup</tt> event.</li>
--   <li><a>rShutdown</a> - An array of custom recipe names to be run
--   following a <tt>shutdown</tt> event.</li>
--   <li><a>rUndeploy</a> - An array of custom recipe names to be run
--   following a <tt>undeploy</tt> event.</li>
--   <li><a>rConfigure</a> - An array of custom recipe names to be run
--   following a <tt>configure</tt> event.</li>
--   <li><a>rDeploy</a> - An array of custom recipe names to be run
--   following a <tt>deploy</tt> event.</li>
--   </ul>
recipes :: Recipes

-- | An array of custom recipe names to be run following a <tt>setup</tt>
--   event.
rSetup :: Lens' Recipes [Text]

-- | An array of custom recipe names to be run following a
--   <tt>shutdown</tt> event.
rShutdown :: Lens' Recipes [Text]

-- | An array of custom recipe names to be run following a
--   <tt>undeploy</tt> event.
rUndeploy :: Lens' Recipes [Text]

-- | An array of custom recipe names to be run following a
--   <tt>configure</tt> event.
rConfigure :: Lens' Recipes [Text]

-- | An array of custom recipe names to be run following a <tt>deploy</tt>
--   event.
rDeploy :: Lens' Recipes [Text]

-- | A registered instance's reported operating system.
--   
--   <i>See:</i> <a>reportedOS</a> smart constructor.
data ReportedOS

-- | Creates a value of <a>ReportedOS</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>roFamily</a> - The operating system family.</li>
--   <li><a>roName</a> - The operating system name.</li>
--   <li><a>roVersion</a> - The operating system version.</li>
--   </ul>
reportedOS :: ReportedOS

-- | The operating system family.
roFamily :: Lens' ReportedOS (Maybe Text)

-- | The operating system name.
roName :: Lens' ReportedOS (Maybe Text)

-- | The operating system version.
roVersion :: Lens' ReportedOS (Maybe Text)

-- | Describes an app's SSL configuration.
--   
--   <i>See:</i> <a>sslConfiguration</a> smart constructor.
data SSLConfiguration

-- | Creates a value of <a>SSLConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>scChain</a> - Optional. Can be used to specify an intermediate
--   certificate authority key or client authentication.</li>
--   <li><a>scCertificate</a> - The contents of the certificate's
--   domain.crt file.</li>
--   <li><a>scPrivateKey</a> - The private key; the contents of the
--   certificate's domain.kex file.</li>
--   </ul>
sslConfiguration :: Text -> Text -> SSLConfiguration

-- | Optional. Can be used to specify an intermediate certificate authority
--   key or client authentication.
scChain :: Lens' SSLConfiguration (Maybe Text)

-- | The contents of the certificate's domain.crt file.
scCertificate :: Lens' SSLConfiguration Text

-- | The private key; the contents of the certificate's domain.kex file.
scPrivateKey :: Lens' SSLConfiguration Text

-- | Describes a user's SSH information.
--   
--   <i>See:</i> <a>selfUserProfile</a> smart constructor.
data SelfUserProfile

-- | Creates a value of <a>SelfUserProfile</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>supSSHPublicKey</a> - The user's SSH public key.</li>
--   <li><a>supSSHUsername</a> - The user's SSH user name.</li>
--   <li><a>supIAMUserARN</a> - The user's IAM ARN.</li>
--   <li><a>supName</a> - The user's name.</li>
--   </ul>
selfUserProfile :: SelfUserProfile

-- | The user's SSH public key.
supSSHPublicKey :: Lens' SelfUserProfile (Maybe Text)

-- | The user's SSH user name.
supSSHUsername :: Lens' SelfUserProfile (Maybe Text)

-- | The user's IAM ARN.
supIAMUserARN :: Lens' SelfUserProfile (Maybe Text)

-- | The user's name.
supName :: Lens' SelfUserProfile (Maybe Text)

-- | Describes an AWS OpsWorks service error.
--   
--   <i>See:</i> <a>serviceError'</a> smart constructor.
data ServiceError'

-- | Creates a value of <a>ServiceError'</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>seInstanceId</a> - The instance ID.</li>
--   <li><a>seCreatedAt</a> - When the error occurred.</li>
--   <li><a>seServiceErrorId</a> - The error ID.</li>
--   <li><a>seType</a> - The error type.</li>
--   <li><a>seStackId</a> - The stack ID.</li>
--   <li><a>seMessage</a> - A message that describes the error.</li>
--   </ul>
serviceError' :: ServiceError'

-- | The instance ID.
seInstanceId :: Lens' ServiceError' (Maybe Text)

-- | When the error occurred.
seCreatedAt :: Lens' ServiceError' (Maybe Text)

-- | The error ID.
seServiceErrorId :: Lens' ServiceError' (Maybe Text)

-- | The error type.
seType :: Lens' ServiceError' (Maybe Text)

-- | The stack ID.
seStackId :: Lens' ServiceError' (Maybe Text)

-- | A message that describes the error.
seMessage :: Lens' ServiceError' (Maybe Text)

-- | The Shutdown event configuration.
--   
--   <i>See:</i> <a>shutdownEventConfiguration</a> smart constructor.
data ShutdownEventConfiguration

-- | Creates a value of <a>ShutdownEventConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>secExecutionTimeout</a> - The time, in seconds, that AWS
--   OpsWorks will wait after triggering a Shutdown event before shutting
--   down an instance.</li>
--   <li><a>secDelayUntilElbConnectionsDrained</a> - Whether to enable
--   Elastic Load Balancing connection draining. For more information, see
--   <a>Connection Draining</a></li>
--   </ul>
shutdownEventConfiguration :: ShutdownEventConfiguration

-- | The time, in seconds, that AWS OpsWorks will wait after triggering a
--   Shutdown event before shutting down an instance.
secExecutionTimeout :: Lens' ShutdownEventConfiguration (Maybe Int)

-- | Whether to enable Elastic Load Balancing connection draining. For more
--   information, see <a>Connection Draining</a>
secDelayUntilElbConnectionsDrained :: Lens' ShutdownEventConfiguration (Maybe Bool)

-- | Contains the information required to retrieve an app or cookbook from
--   a repository. For more information, see <a>Creating Apps</a> or
--   <a>Custom Recipes and Cookbooks</a> .
--   
--   <i>See:</i> <a>source</a> smart constructor.
data Source

-- | Creates a value of <a>Source</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sURL</a> - The source URL.</li>
--   <li><a>sUsername</a> - This parameter depends on the repository type.
--   * For Amazon S3 bundles, set <tt>Username</tt> to the appropriate IAM
--   access key ID. * For HTTP bundles, Git repositories, and Subversion
--   repositories, set <tt>Username</tt> to the user name.</li>
--   <li><a>sSSHKey</a> - In requests, the repository's SSH key. In
--   responses, AWS OpsWorks returns <tt>*****FILTERED*****</tt> instead of
--   the actual value.</li>
--   <li><a>sPassword</a> - When included in a request, the parameter
--   depends on the repository type. * For Amazon S3 bundles, set
--   <tt>Password</tt> to the appropriate IAM secret access key. * For HTTP
--   bundles and Subversion repositories, set <tt>Password</tt> to the
--   password. For more information on how to safely handle IAM
--   credentials, see
--   <a>http://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html</a>
--   . In responses, AWS OpsWorks returns <tt>*****FILTERED*****</tt>
--   instead of the actual value.</li>
--   <li><a>sType</a> - The repository type.</li>
--   <li><a>sRevision</a> - The application's version. AWS OpsWorks enables
--   you to easily deploy new versions of an application. One of the
--   simplest approaches is to have branches or revisions in your
--   repository that represent different versions that can potentially be
--   deployed.</li>
--   </ul>
source :: Source

-- | The source URL.
sURL :: Lens' Source (Maybe Text)

-- | This parameter depends on the repository type. * For Amazon S3
--   bundles, set <tt>Username</tt> to the appropriate IAM access key ID. *
--   For HTTP bundles, Git repositories, and Subversion repositories, set
--   <tt>Username</tt> to the user name.
sUsername :: Lens' Source (Maybe Text)

-- | In requests, the repository's SSH key. In responses, AWS OpsWorks
--   returns <tt>*****FILTERED*****</tt> instead of the actual value.
sSSHKey :: Lens' Source (Maybe Text)

-- | When included in a request, the parameter depends on the repository
--   type. * For Amazon S3 bundles, set <tt>Password</tt> to the
--   appropriate IAM secret access key. * For HTTP bundles and Subversion
--   repositories, set <tt>Password</tt> to the password. For more
--   information on how to safely handle IAM credentials, see
--   <a>http://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html</a>
--   . In responses, AWS OpsWorks returns <tt>*****FILTERED*****</tt>
--   instead of the actual value.
sPassword :: Lens' Source (Maybe Text)

-- | The repository type.
sType :: Lens' Source (Maybe SourceType)

-- | The application's version. AWS OpsWorks enables you to easily deploy
--   new versions of an application. One of the simplest approaches is to
--   have branches or revisions in your repository that represent different
--   versions that can potentially be deployed.
sRevision :: Lens' Source (Maybe Text)

-- | Describes a stack.
--   
--   <i>See:</i> <a>stack</a> smart constructor.
data Stack

-- | Creates a value of <a>Stack</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sDefaultInstanceProfileARN</a> - The ARN of an IAM profile that
--   is the default profile for all of the stack's EC2 instances. For more
--   information about IAM ARNs, see <a>Using Identifiers</a> .</li>
--   <li><a>sServiceRoleARN</a> - The stack AWS Identity and Access
--   Management (IAM) role.</li>
--   <li><a>sDefaultRootDeviceType</a> - The default root device type. This
--   value is used by default for all instances in the stack, but you can
--   override it when you create an instance. For more information, see
--   <a>Storage for the Root Device</a> .</li>
--   <li><a>sARN</a> - The stack's ARN.</li>
--   <li><a>sCreatedAt</a> - The date when the stack was created.</li>
--   <li><a>sVPCId</a> - The VPC ID; applicable only if the stack is
--   running in a VPC.</li>
--   <li><a>sChefConfiguration</a> - A <tt>ChefConfiguration</tt> object
--   that specifies whether to enable Berkshelf and the Berkshelf version.
--   For more information, see <a>Create a New Stack</a> .</li>
--   <li><a>sAgentVersion</a> - The agent version. This parameter is set to
--   <tt>LATEST</tt> for auto-update. or a version number for a fixed agent
--   version.</li>
--   <li><a>sDefaultSSHKeyName</a> - A default Amazon EC2 key pair for the
--   stack's instances. You can override this value when you create or
--   update an instance.</li>
--   <li><a>sCustomJSON</a> - A JSON object that contains user-defined
--   attributes to be added to the stack configuration and deployment
--   attributes. You can use custom JSON to override the corresponding
--   default stack configuration attribute values or to pass data to
--   recipes. The string should be in the following format: <tt>"{"key1":
--   "value1", "key2": "value2",...}"</tt> For more information on custom
--   JSON, see <a>Use Custom JSON to Modify the Stack Configuration
--   Attributes</a> .</li>
--   <li><a>sCustomCookbooksSource</a> - Undocumented member.</li>
--   <li><a>sDefaultAvailabilityZone</a> - The stack's default Availability
--   Zone. For more information, see <a>Regions and Endpoints</a> .</li>
--   <li><a>sAttributes</a> - The stack's attributes.</li>
--   <li><a>sName</a> - The stack name.</li>
--   <li><a>sDefaultOS</a> - The stack's default operating system.</li>
--   <li><a>sUseOpsworksSecurityGroups</a> - Whether the stack
--   automatically associates the AWS OpsWorks built-in security groups
--   with the stack's layers.</li>
--   <li><a>sUseCustomCookbooks</a> - Whether the stack uses custom
--   cookbooks.</li>
--   <li><a>sDefaultSubnetId</a> - The default subnet ID; applicable only
--   if the stack is running in a VPC.</li>
--   <li><a>sRegion</a> - The stack AWS region, such as "ap-northeast-2".
--   For more information about AWS regions, see <a>Regions and
--   Endpoints</a> .</li>
--   <li><a>sConfigurationManager</a> - The configuration manager.</li>
--   <li><a>sStackId</a> - The stack ID.</li>
--   <li><a>sHostnameTheme</a> - The stack host name theme, with spaces
--   replaced by underscores.</li>
--   </ul>
stack :: Stack

-- | The ARN of an IAM profile that is the default profile for all of the
--   stack's EC2 instances. For more information about IAM ARNs, see
--   <a>Using Identifiers</a> .
sDefaultInstanceProfileARN :: Lens' Stack (Maybe Text)

-- | The stack AWS Identity and Access Management (IAM) role.
sServiceRoleARN :: Lens' Stack (Maybe Text)

-- | The default root device type. This value is used by default for all
--   instances in the stack, but you can override it when you create an
--   instance. For more information, see <a>Storage for the Root Device</a>
--   .
sDefaultRootDeviceType :: Lens' Stack (Maybe RootDeviceType)

-- | The stack's ARN.
sARN :: Lens' Stack (Maybe Text)

-- | The date when the stack was created.
sCreatedAt :: Lens' Stack (Maybe Text)

-- | The VPC ID; applicable only if the stack is running in a VPC.
sVPCId :: Lens' Stack (Maybe Text)

-- | A <tt>ChefConfiguration</tt> object that specifies whether to enable
--   Berkshelf and the Berkshelf version. For more information, see
--   <a>Create a New Stack</a> .
sChefConfiguration :: Lens' Stack (Maybe ChefConfiguration)

-- | The agent version. This parameter is set to <tt>LATEST</tt> for
--   auto-update. or a version number for a fixed agent version.
sAgentVersion :: Lens' Stack (Maybe Text)

-- | A default Amazon EC2 key pair for the stack's instances. You can
--   override this value when you create or update an instance.
sDefaultSSHKeyName :: Lens' Stack (Maybe Text)

-- | A JSON object that contains user-defined attributes to be added to the
--   stack configuration and deployment attributes. You can use custom JSON
--   to override the corresponding default stack configuration attribute
--   values or to pass data to recipes. The string should be in the
--   following format: <tt>"{"key1": "value1", "key2": "value2",...}"</tt>
--   For more information on custom JSON, see <a>Use Custom JSON to Modify
--   the Stack Configuration Attributes</a> .
sCustomJSON :: Lens' Stack (Maybe Text)

-- | Undocumented member.
sCustomCookbooksSource :: Lens' Stack (Maybe Source)

-- | The stack's default Availability Zone. For more information, see
--   <a>Regions and Endpoints</a> .
sDefaultAvailabilityZone :: Lens' Stack (Maybe Text)

-- | The stack's attributes.
sAttributes :: Lens' Stack (HashMap StackAttributesKeys Text)

-- | The stack name.
sName :: Lens' Stack (Maybe Text)

-- | The stack's default operating system.
sDefaultOS :: Lens' Stack (Maybe Text)

-- | Whether the stack automatically associates the AWS OpsWorks built-in
--   security groups with the stack's layers.
sUseOpsworksSecurityGroups :: Lens' Stack (Maybe Bool)

-- | Whether the stack uses custom cookbooks.
sUseCustomCookbooks :: Lens' Stack (Maybe Bool)

-- | The default subnet ID; applicable only if the stack is running in a
--   VPC.
sDefaultSubnetId :: Lens' Stack (Maybe Text)

-- | The stack AWS region, such as "ap-northeast-2". For more information
--   about AWS regions, see <a>Regions and Endpoints</a> .
sRegion :: Lens' Stack (Maybe Text)

-- | The configuration manager.
sConfigurationManager :: Lens' Stack (Maybe StackConfigurationManager)

-- | The stack ID.
sStackId :: Lens' Stack (Maybe Text)

-- | The stack host name theme, with spaces replaced by underscores.
sHostnameTheme :: Lens' Stack (Maybe Text)

-- | Describes the configuration manager.
--   
--   <i>See:</i> <a>stackConfigurationManager</a> smart constructor.
data StackConfigurationManager

-- | Creates a value of <a>StackConfigurationManager</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>scmName</a> - The name. This parameter must be set to
--   <a>Chef</a>.</li>
--   <li><a>scmVersion</a> - The Chef version. This parameter must be set
--   to 12, 11.10, or 11.4 for Linux stacks, and to 12.2 for Windows
--   stacks. The default value for Linux stacks is 11.4.</li>
--   </ul>
stackConfigurationManager :: StackConfigurationManager

-- | The name. This parameter must be set to <a>Chef</a>.
scmName :: Lens' StackConfigurationManager (Maybe Text)

-- | The Chef version. This parameter must be set to 12, 11.10, or 11.4 for
--   Linux stacks, and to 12.2 for Windows stacks. The default value for
--   Linux stacks is 11.4.
scmVersion :: Lens' StackConfigurationManager (Maybe Text)

-- | Summarizes the number of layers, instances, and apps in a stack.
--   
--   <i>See:</i> <a>stackSummary</a> smart constructor.
data StackSummary

-- | Creates a value of <a>StackSummary</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ssARN</a> - The stack's ARN.</li>
--   <li><a>ssAppsCount</a> - The number of apps.</li>
--   <li><a>ssName</a> - The stack name.</li>
--   <li><a>ssStackId</a> - The stack ID.</li>
--   <li><a>ssLayersCount</a> - The number of layers.</li>
--   <li><a>ssInstancesCount</a> - An <tt>InstancesCount</tt> object with
--   the number of instances in each status.</li>
--   </ul>
stackSummary :: StackSummary

-- | The stack's ARN.
ssARN :: Lens' StackSummary (Maybe Text)

-- | The number of apps.
ssAppsCount :: Lens' StackSummary (Maybe Int)

-- | The stack name.
ssName :: Lens' StackSummary (Maybe Text)

-- | The stack ID.
ssStackId :: Lens' StackSummary (Maybe Text)

-- | The number of layers.
ssLayersCount :: Lens' StackSummary (Maybe Int)

-- | An <tt>InstancesCount</tt> object with the number of instances in each
--   status.
ssInstancesCount :: Lens' StackSummary (Maybe InstancesCount)

-- | Contains the data needed by RDP clients such as the Microsoft Remote
--   Desktop Connection to log in to the instance.
--   
--   <i>See:</i> <a>temporaryCredential</a> smart constructor.
data TemporaryCredential

-- | Creates a value of <a>TemporaryCredential</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tcInstanceId</a> - The instance's AWS OpsWorks ID.</li>
--   <li><a>tcUsername</a> - The user name.</li>
--   <li><a>tcPassword</a> - The password.</li>
--   <li><a>tcValidForInMinutes</a> - The length of time (in minutes) that
--   the grant is valid. When the grant expires, at the end of this period,
--   the user will no longer be able to use the credentials to log in. If
--   they are logged in at the time, they will be automatically logged
--   out.</li>
--   </ul>
temporaryCredential :: TemporaryCredential

-- | The instance's AWS OpsWorks ID.
tcInstanceId :: Lens' TemporaryCredential (Maybe Text)

-- | The user name.
tcUsername :: Lens' TemporaryCredential (Maybe Text)

-- | The password.
tcPassword :: Lens' TemporaryCredential (Maybe Text)

-- | The length of time (in minutes) that the grant is valid. When the
--   grant expires, at the end of this period, the user will no longer be
--   able to use the credentials to log in. If they are logged in at the
--   time, they will be automatically logged out.
tcValidForInMinutes :: Lens' TemporaryCredential (Maybe Int)

-- | Describes an instance's time-based auto scaling configuration.
--   
--   <i>See:</i> <a>timeBasedAutoScalingConfiguration</a> smart
--   constructor.
data TimeBasedAutoScalingConfiguration

-- | Creates a value of <a>TimeBasedAutoScalingConfiguration</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tbascInstanceId</a> - The instance ID.</li>
--   <li><a>tbascAutoScalingSchedule</a> - A
--   <tt>WeeklyAutoScalingSchedule</tt> object with the instance
--   schedule.</li>
--   </ul>
timeBasedAutoScalingConfiguration :: TimeBasedAutoScalingConfiguration

-- | The instance ID.
tbascInstanceId :: Lens' TimeBasedAutoScalingConfiguration (Maybe Text)

-- | A <tt>WeeklyAutoScalingSchedule</tt> object with the instance
--   schedule.
tbascAutoScalingSchedule :: Lens' TimeBasedAutoScalingConfiguration (Maybe WeeklyAutoScalingSchedule)

-- | Describes a user's SSH information.
--   
--   <i>See:</i> <a>userProfile</a> smart constructor.
data UserProfile

-- | Creates a value of <a>UserProfile</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>upAllowSelfManagement</a> - Whether users can specify their own
--   SSH public key through the My Settings page. For more information, see
--   <a>Managing User Permissions</a> .</li>
--   <li><a>upSSHPublicKey</a> - The user's SSH public key.</li>
--   <li><a>upSSHUsername</a> - The user's SSH user name.</li>
--   <li><a>upIAMUserARN</a> - The user's IAM ARN.</li>
--   <li><a>upName</a> - The user's name.</li>
--   </ul>
userProfile :: UserProfile

-- | Whether users can specify their own SSH public key through the My
--   Settings page. For more information, see <a>Managing User
--   Permissions</a> .
upAllowSelfManagement :: Lens' UserProfile (Maybe Bool)

-- | The user's SSH public key.
upSSHPublicKey :: Lens' UserProfile (Maybe Text)

-- | The user's SSH user name.
upSSHUsername :: Lens' UserProfile (Maybe Text)

-- | The user's IAM ARN.
upIAMUserARN :: Lens' UserProfile (Maybe Text)

-- | The user's name.
upName :: Lens' UserProfile (Maybe Text)

-- | Describes an instance's Amazon EBS volume.
--   
--   <i>See:</i> <a>volume</a> smart constructor.
data Volume

-- | Creates a value of <a>Volume</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vInstanceId</a> - The instance ID.</li>
--   <li><a>vStatus</a> - The value returned by <a>DescribeVolumes</a>
--   .</li>
--   <li><a>vSize</a> - The volume size.</li>
--   <li><a>vIOPS</a> - For PIOPS volumes, the IOPS per disk.</li>
--   <li><a>vDevice</a> - The device name.</li>
--   <li><a>vAvailabilityZone</a> - The volume Availability Zone. For more
--   information, see <a>Regions and Endpoints</a> .</li>
--   <li><a>vName</a> - The volume name.</li>
--   <li><a>vRAIdArrayId</a> - The RAID array ID.</li>
--   <li><a>vVolumeId</a> - The volume ID.</li>
--   <li><a>vRegion</a> - The AWS region. For more information about AWS
--   regions, see <a>Regions and Endpoints</a> .</li>
--   <li><a>vVolumeType</a> - The volume type, standard or PIOPS.</li>
--   <li><a>vEC2VolumeId</a> - The Amazon EC2 volume ID.</li>
--   <li><a>vMountPoint</a> - The volume mount point. For example,
--   "<i>mnt</i>disk1".</li>
--   </ul>
volume :: Volume

-- | The instance ID.
vInstanceId :: Lens' Volume (Maybe Text)

-- | The value returned by <a>DescribeVolumes</a> .
vStatus :: Lens' Volume (Maybe Text)

-- | The volume size.
vSize :: Lens' Volume (Maybe Int)

-- | For PIOPS volumes, the IOPS per disk.
vIOPS :: Lens' Volume (Maybe Int)

-- | The device name.
vDevice :: Lens' Volume (Maybe Text)

-- | The volume Availability Zone. For more information, see <a>Regions and
--   Endpoints</a> .
vAvailabilityZone :: Lens' Volume (Maybe Text)

-- | The volume name.
vName :: Lens' Volume (Maybe Text)

-- | The RAID array ID.
vRAIdArrayId :: Lens' Volume (Maybe Text)

-- | The volume ID.
vVolumeId :: Lens' Volume (Maybe Text)

-- | The AWS region. For more information about AWS regions, see <a>Regions
--   and Endpoints</a> .
vRegion :: Lens' Volume (Maybe Text)

-- | The volume type, standard or PIOPS.
vVolumeType :: Lens' Volume (Maybe Text)

-- | The Amazon EC2 volume ID.
vEC2VolumeId :: Lens' Volume (Maybe Text)

-- | The volume mount point. For example, "<i>mnt</i>disk1".
vMountPoint :: Lens' Volume (Maybe Text)

-- | Describes an Amazon EBS volume configuration.
--   
--   <i>See:</i> <a>volumeConfiguration</a> smart constructor.
data VolumeConfiguration

-- | Creates a value of <a>VolumeConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vcIOPS</a> - For PIOPS volumes, the IOPS per disk.</li>
--   <li><a>vcRAIdLevel</a> - The volume <a>RAID level</a> .</li>
--   <li><a>vcVolumeType</a> - The volume type: * <tt>standard</tt> -
--   Magnetic * <tt>io1</tt> - Provisioned IOPS (SSD) * <tt>gp2</tt> -
--   General Purpose (SSD)</li>
--   <li><a>vcMountPoint</a> - The volume mount point. For example
--   "<i>dev</i>sdh".</li>
--   <li><a>vcNumberOfDisks</a> - The number of disks in the volume.</li>
--   <li><a>vcSize</a> - The volume size.</li>
--   </ul>
volumeConfiguration :: Text -> Int -> Int -> VolumeConfiguration

-- | For PIOPS volumes, the IOPS per disk.
vcIOPS :: Lens' VolumeConfiguration (Maybe Int)

-- | The volume <a>RAID level</a> .
vcRAIdLevel :: Lens' VolumeConfiguration (Maybe Int)

-- | The volume type: * <tt>standard</tt> - Magnetic * <tt>io1</tt> -
--   Provisioned IOPS (SSD) * <tt>gp2</tt> - General Purpose (SSD)
vcVolumeType :: Lens' VolumeConfiguration (Maybe Text)

-- | The volume mount point. For example "<i>dev</i>sdh".
vcMountPoint :: Lens' VolumeConfiguration Text

-- | The number of disks in the volume.
vcNumberOfDisks :: Lens' VolumeConfiguration Int

-- | The volume size.
vcSize :: Lens' VolumeConfiguration Int

-- | Describes a time-based instance's auto scaling schedule. The schedule
--   consists of a set of key-value pairs.
--   
--   <ul>
--   <li>The key is the time period (a UTC hour) and must be an integer
--   from 0 - 23.</li>
--   <li>The value indicates whether the instance should be online or
--   offline for the specified period, and must be set to "on" or
--   "off"</li>
--   </ul>
--   
--   The default setting for all time periods is off, so you use the
--   following parameters primarily to specify the online periods. You
--   don't have to explicitly specify offline periods unless you want to
--   change an online period to an offline period.
--   
--   The following example specifies that the instance should be online for
--   four hours, from UTC 1200 - 1600. It will be off for the remainder of
--   the day.
--   
--   <pre>
--   { "12":"on", "13":"on", "14":"on", "15":"on" }
--   </pre>
--   
--   <i>See:</i> <a>weeklyAutoScalingSchedule</a> smart constructor.
data WeeklyAutoScalingSchedule

-- | Creates a value of <a>WeeklyAutoScalingSchedule</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>wassThursday</a> - The schedule for Thursday.</li>
--   <li><a>wassWednesday</a> - The schedule for Wednesday.</li>
--   <li><a>wassSaturday</a> - The schedule for Saturday.</li>
--   <li><a>wassMonday</a> - The schedule for Monday.</li>
--   <li><a>wassFriday</a> - The schedule for Friday.</li>
--   <li><a>wassSunday</a> - The schedule for Sunday.</li>
--   <li><a>wassTuesday</a> - The schedule for Tuesday.</li>
--   </ul>
weeklyAutoScalingSchedule :: WeeklyAutoScalingSchedule

-- | The schedule for Thursday.
wassThursday :: Lens' WeeklyAutoScalingSchedule (HashMap Text Text)

-- | The schedule for Wednesday.
wassWednesday :: Lens' WeeklyAutoScalingSchedule (HashMap Text Text)

-- | The schedule for Saturday.
wassSaturday :: Lens' WeeklyAutoScalingSchedule (HashMap Text Text)

-- | The schedule for Monday.
wassMonday :: Lens' WeeklyAutoScalingSchedule (HashMap Text Text)

-- | The schedule for Friday.
wassFriday :: Lens' WeeklyAutoScalingSchedule (HashMap Text Text)

-- | The schedule for Sunday.
wassSunday :: Lens' WeeklyAutoScalingSchedule (HashMap Text Text)

-- | The schedule for Tuesday.
wassTuesday :: Lens' WeeklyAutoScalingSchedule (HashMap Text Text)


-- | Unassigns a registered instance from all of it's layers. The instance
--   remains in the stack as an unassigned instance and can be assigned to
--   another layer, as needed. You cannot use this action with instances
--   that were created with AWS OpsWorks.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.UnassignInstance

-- | Creates a value of <a>UnassignInstance</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uInstanceId</a> - The instance ID.</li>
--   </ul>
unassignInstance :: Text -> UnassignInstance

-- | <i>See:</i> <a>unassignInstance</a> smart constructor.
data UnassignInstance

-- | The instance ID.
uInstanceId :: Lens' UnassignInstance Text

-- | Creates a value of <a>UnassignInstanceResponse</a> with the minimum
--   fields required to make a request.
unassignInstanceResponse :: UnassignInstanceResponse

-- | <i>See:</i> <a>unassignInstanceResponse</a> smart constructor.
data UnassignInstanceResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.UnassignInstance.UnassignInstanceResponse
instance Data.Data.Data Network.AWS.OpsWorks.UnassignInstance.UnassignInstanceResponse
instance GHC.Show.Show Network.AWS.OpsWorks.UnassignInstance.UnassignInstanceResponse
instance GHC.Read.Read Network.AWS.OpsWorks.UnassignInstance.UnassignInstanceResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.UnassignInstance.UnassignInstanceResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.UnassignInstance.UnassignInstance
instance Data.Data.Data Network.AWS.OpsWorks.UnassignInstance.UnassignInstance
instance GHC.Show.Show Network.AWS.OpsWorks.UnassignInstance.UnassignInstance
instance GHC.Read.Read Network.AWS.OpsWorks.UnassignInstance.UnassignInstance
instance GHC.Classes.Eq Network.AWS.OpsWorks.UnassignInstance.UnassignInstance
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.UnassignInstance.UnassignInstance
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.UnassignInstance.UnassignInstance
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.UnassignInstance.UnassignInstance
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.UnassignInstance.UnassignInstance
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.UnassignInstance.UnassignInstance
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.UnassignInstance.UnassignInstance
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.UnassignInstance.UnassignInstance
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.UnassignInstance.UnassignInstanceResponse


-- | Unassigns an assigned Amazon EBS volume. The volume remains registered
--   with the stack. For more information, see <a>Resource Management</a> .
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.UnassignVolume

-- | Creates a value of <a>UnassignVolume</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uvVolumeId</a> - The volume ID.</li>
--   </ul>
unassignVolume :: Text -> UnassignVolume

-- | <i>See:</i> <a>unassignVolume</a> smart constructor.
data UnassignVolume

-- | The volume ID.
uvVolumeId :: Lens' UnassignVolume Text

-- | Creates a value of <a>UnassignVolumeResponse</a> with the minimum
--   fields required to make a request.
unassignVolumeResponse :: UnassignVolumeResponse

-- | <i>See:</i> <a>unassignVolumeResponse</a> smart constructor.
data UnassignVolumeResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.UnassignVolume.UnassignVolumeResponse
instance Data.Data.Data Network.AWS.OpsWorks.UnassignVolume.UnassignVolumeResponse
instance GHC.Show.Show Network.AWS.OpsWorks.UnassignVolume.UnassignVolumeResponse
instance GHC.Read.Read Network.AWS.OpsWorks.UnassignVolume.UnassignVolumeResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.UnassignVolume.UnassignVolumeResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.UnassignVolume.UnassignVolume
instance Data.Data.Data Network.AWS.OpsWorks.UnassignVolume.UnassignVolume
instance GHC.Show.Show Network.AWS.OpsWorks.UnassignVolume.UnassignVolume
instance GHC.Read.Read Network.AWS.OpsWorks.UnassignVolume.UnassignVolume
instance GHC.Classes.Eq Network.AWS.OpsWorks.UnassignVolume.UnassignVolume
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.UnassignVolume.UnassignVolume
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.UnassignVolume.UnassignVolume
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.UnassignVolume.UnassignVolume
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.UnassignVolume.UnassignVolume
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.UnassignVolume.UnassignVolume
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.UnassignVolume.UnassignVolume
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.UnassignVolume.UnassignVolume
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.UnassignVolume.UnassignVolumeResponse


-- | Updates a specified app.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Deploy or Manage permissions level for the stack, or an
--   attached policy that explicitly grants permissions. For more
--   information on user permissions, see <a>Managing User Permissions</a>
--   .
module Network.AWS.OpsWorks.UpdateApp

-- | Creates a value of <a>UpdateApp</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uaSSLConfiguration</a> - An <tt>SslConfiguration</tt> object
--   with the SSL configuration.</li>
--   <li><a>uaEnvironment</a> - An array of <tt>EnvironmentVariable</tt>
--   objects that specify environment variables to be associated with the
--   app. After you deploy the app, these variables are defined on the
--   associated app server instances.For more information, see
--   <a>Environment Variables</a> . There is no specific limit on the
--   number of environment variables. However, the size of the associated
--   data structure - which includes the variables' names, values, and
--   protected flag values - cannot exceed 10 KB (10240 Bytes). This limit
--   should accommodate most if not all use cases. Exceeding it will cause
--   an exception with the message, "Environment: is too large (maximum is
--   10KB)."</li>
--   <li><a>uaEnableSSL</a> - Whether SSL is enabled for the app.</li>
--   <li><a>uaDataSources</a> - The app's data sources.</li>
--   <li><a>uaAppSource</a> - A <tt>Source</tt> object that specifies the
--   app repository.</li>
--   <li><a>uaAttributes</a> - One or more user-defined key/value pairs to
--   be added to the stack attributes.</li>
--   <li><a>uaName</a> - The app name.</li>
--   <li><a>uaType</a> - The app type.</li>
--   <li><a>uaDomains</a> - The app's virtual host settings, with multiple
--   domains separated by commas. For example: <tt>'www.example.com,
--   example.com'</tt></li>
--   <li><a>uaDescription</a> - A description of the app.</li>
--   <li><a>uaAppId</a> - The app ID.</li>
--   </ul>
updateApp :: Text -> UpdateApp

-- | <i>See:</i> <a>updateApp</a> smart constructor.
data UpdateApp

-- | An <tt>SslConfiguration</tt> object with the SSL configuration.
uaSSLConfiguration :: Lens' UpdateApp (Maybe SSLConfiguration)

-- | An array of <tt>EnvironmentVariable</tt> objects that specify
--   environment variables to be associated with the app. After you deploy
--   the app, these variables are defined on the associated app server
--   instances.For more information, see <a>Environment Variables</a> .
--   There is no specific limit on the number of environment variables.
--   However, the size of the associated data structure - which includes
--   the variables' names, values, and protected flag values - cannot
--   exceed 10 KB (10240 Bytes). This limit should accommodate most if not
--   all use cases. Exceeding it will cause an exception with the message,
--   "Environment: is too large (maximum is 10KB)."
uaEnvironment :: Lens' UpdateApp [EnvironmentVariable]

-- | Whether SSL is enabled for the app.
uaEnableSSL :: Lens' UpdateApp (Maybe Bool)

-- | The app's data sources.
uaDataSources :: Lens' UpdateApp [DataSource]

-- | A <tt>Source</tt> object that specifies the app repository.
uaAppSource :: Lens' UpdateApp (Maybe Source)

-- | One or more user-defined key/value pairs to be added to the stack
--   attributes.
uaAttributes :: Lens' UpdateApp (HashMap AppAttributesKeys Text)

-- | The app name.
uaName :: Lens' UpdateApp (Maybe Text)

-- | The app type.
uaType :: Lens' UpdateApp (Maybe AppType)

-- | The app's virtual host settings, with multiple domains separated by
--   commas. For example: <tt>'www.example.com, example.com'</tt>
uaDomains :: Lens' UpdateApp [Text]

-- | A description of the app.
uaDescription :: Lens' UpdateApp (Maybe Text)

-- | The app ID.
uaAppId :: Lens' UpdateApp Text

-- | Creates a value of <a>UpdateAppResponse</a> with the minimum fields
--   required to make a request.
updateAppResponse :: UpdateAppResponse

-- | <i>See:</i> <a>updateAppResponse</a> smart constructor.
data UpdateAppResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.UpdateApp.UpdateAppResponse
instance Data.Data.Data Network.AWS.OpsWorks.UpdateApp.UpdateAppResponse
instance GHC.Show.Show Network.AWS.OpsWorks.UpdateApp.UpdateAppResponse
instance GHC.Read.Read Network.AWS.OpsWorks.UpdateApp.UpdateAppResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.UpdateApp.UpdateAppResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.UpdateApp.UpdateApp
instance Data.Data.Data Network.AWS.OpsWorks.UpdateApp.UpdateApp
instance GHC.Show.Show Network.AWS.OpsWorks.UpdateApp.UpdateApp
instance GHC.Read.Read Network.AWS.OpsWorks.UpdateApp.UpdateApp
instance GHC.Classes.Eq Network.AWS.OpsWorks.UpdateApp.UpdateApp
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.UpdateApp.UpdateApp
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.UpdateApp.UpdateApp
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.UpdateApp.UpdateApp
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.UpdateApp.UpdateApp
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.UpdateApp.UpdateApp
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.UpdateApp.UpdateApp
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.UpdateApp.UpdateApp
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.UpdateApp.UpdateAppResponse


-- | Updates a registered Elastic IP address's name. For more information,
--   see <a>Resource Management</a> .
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.UpdateElasticIP

-- | Creates a value of <a>UpdateElasticIP</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ueiName</a> - The new name.</li>
--   <li><a>ueiElasticIP</a> - The address.</li>
--   </ul>
updateElasticIP :: Text -> UpdateElasticIP

-- | <i>See:</i> <a>updateElasticIP</a> smart constructor.
data UpdateElasticIP

-- | The new name.
ueiName :: Lens' UpdateElasticIP (Maybe Text)

-- | The address.
ueiElasticIP :: Lens' UpdateElasticIP Text

-- | Creates a value of <a>UpdateElasticIPResponse</a> with the minimum
--   fields required to make a request.
updateElasticIPResponse :: UpdateElasticIPResponse

-- | <i>See:</i> <a>updateElasticIPResponse</a> smart constructor.
data UpdateElasticIPResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.UpdateElasticIP.UpdateElasticIPResponse
instance Data.Data.Data Network.AWS.OpsWorks.UpdateElasticIP.UpdateElasticIPResponse
instance GHC.Show.Show Network.AWS.OpsWorks.UpdateElasticIP.UpdateElasticIPResponse
instance GHC.Read.Read Network.AWS.OpsWorks.UpdateElasticIP.UpdateElasticIPResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.UpdateElasticIP.UpdateElasticIPResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.UpdateElasticIP.UpdateElasticIP
instance Data.Data.Data Network.AWS.OpsWorks.UpdateElasticIP.UpdateElasticIP
instance GHC.Show.Show Network.AWS.OpsWorks.UpdateElasticIP.UpdateElasticIP
instance GHC.Read.Read Network.AWS.OpsWorks.UpdateElasticIP.UpdateElasticIP
instance GHC.Classes.Eq Network.AWS.OpsWorks.UpdateElasticIP.UpdateElasticIP
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.UpdateElasticIP.UpdateElasticIP
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.UpdateElasticIP.UpdateElasticIP
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.UpdateElasticIP.UpdateElasticIP
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.UpdateElasticIP.UpdateElasticIP
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.UpdateElasticIP.UpdateElasticIP
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.UpdateElasticIP.UpdateElasticIP
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.UpdateElasticIP.UpdateElasticIP
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.UpdateElasticIP.UpdateElasticIPResponse


-- | Updates a specified instance.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.UpdateInstance

-- | Creates a value of <a>UpdateInstance</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uiInstallUpdatesOnBoot</a> - Whether to install operating
--   system and package updates when the instance boots. The default value
--   is <tt>true</tt> . To control when updates are installed, set this
--   value to <tt>false</tt> . You must then update your instances manually
--   by using <tt>CreateDeployment</tt> to run the
--   <tt>update_dependencies</tt> stack command or by manually running
--   <tt>yum</tt> (Amazon Linux) or <tt>apt-get</tt> (Ubuntu) on the
--   instances.</li>
--   <li><a>uiHostname</a> - The instance host name.</li>
--   <li><a>uiSSHKeyName</a> - The instance's Amazon EC2 key name.</li>
--   <li><a>uiAgentVersion</a> - The default AWS OpsWorks agent version.
--   You have the following options: * <tt>INHERIT</tt> - Use the stack's
--   default agent version setting. * <i>version_number</i> - Use the
--   specified agent version. This value overrides the stack's default
--   setting. To update the agent version, you must edit the instance
--   configuration and specify a new version. AWS OpsWorks then
--   automatically installs that version on the instance. The default
--   setting is <tt>INHERIT</tt> . To specify an agent version, you must
--   use the complete version number, not the abbreviated number shown on
--   the console. For a list of available agent version numbers, call
--   <tt>DescribeAgentVersions</tt> .</li>
--   <li><a>uiInstanceType</a> - The instance type, such as
--   <tt>t2.micro</tt> . For a list of supported instance types, open the
--   stack in the console, choose <b>Instances</b> , and choose <b>+
--   Instance</b> . The <b>Size</b> list contains the currently supported
--   types. For more information, see <a>Instance Families and Types</a> .
--   The parameter values that you use to specify the various types are in
--   the <b>API Name</b> column of the <b>Available Instance Types</b>
--   table.</li>
--   <li><a>uiEBSOptimized</a> - This property cannot be updated.</li>
--   <li><a>uiOS</a> - The instance's operating system, which must be set
--   to one of the following. You cannot update an instance that is using a
--   custom AMI. * A supported Linux operating system: An Amazon Linux
--   version, such as <tt>Amazon Linux 2016.03</tt> , <tt>Amazon Linux
--   2015.09</tt> , or <tt>Amazon Linux 2015.03</tt> . * A supported Ubuntu
--   operating system, such as <tt>Ubuntu 16.04 LTS</tt> , <tt>Ubuntu 14.04
--   LTS</tt> , or <tt>Ubuntu 12.04 LTS</tt> . * <tt>CentOS 7</tt> *
--   <tt>Red Hat Enterprise Linux 7</tt> * A supported Windows operating
--   system, such as <tt>Microsoft Windows Server 2012 R2 Base</tt> ,
--   <tt>Microsoft Windows Server 2012 R2 with SQL Server Express</tt> ,
--   <tt>Microsoft Windows Server 2012 R2 with SQL Server Standard</tt> ,
--   or <tt>Microsoft Windows Server 2012 R2 with SQL Server Web</tt> . For
--   more information on the supported operating systems, see <a>AWS
--   OpsWorks Operating Systems</a> . The default option is the current
--   Amazon Linux version. If you set this parameter to <tt>Custom</tt> ,
--   you must use the AmiId parameter to specify the custom AMI that you
--   want to use. For more information on the supported operating systems,
--   see <a>Operating Systems</a> . For more information on how to use
--   custom AMIs with OpsWorks, see <a>Using Custom AMIs</a> .</li>
--   <li><a>uiAutoScalingType</a> - For load-based or time-based instances,
--   the type. Windows stacks can use only time-based instances.</li>
--   <li><a>uiLayerIds</a> - The instance's layer IDs.</li>
--   <li><a>uiArchitecture</a> - The instance architecture. Instance types
--   do not necessarily support both architectures. For a list of the
--   architectures that are supported by the different instance types, see
--   <a>Instance Families and Types</a> .</li>
--   <li><a>uiAMIId</a> - The ID of the AMI that was used to create the
--   instance. The value of this parameter must be the same AMI ID that the
--   instance is already using. You cannot apply a new AMI to an instance
--   by running UpdateInstance. UpdateInstance does not work on instances
--   that are using custom AMIs.</li>
--   <li><a>uiInstanceId</a> - The instance ID.</li>
--   </ul>
updateInstance :: Text -> UpdateInstance

-- | <i>See:</i> <a>updateInstance</a> smart constructor.
data UpdateInstance

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

-- | The instance host name.
uiHostname :: Lens' UpdateInstance (Maybe Text)

-- | The instance's Amazon EC2 key name.
uiSSHKeyName :: Lens' UpdateInstance (Maybe Text)

-- | The default AWS OpsWorks agent version. You have the following
--   options: * <tt>INHERIT</tt> - Use the stack's default agent version
--   setting. * <i>version_number</i> - Use the specified agent version.
--   This value overrides the stack's default setting. To update the agent
--   version, you must edit the instance configuration and specify a new
--   version. AWS OpsWorks then automatically installs that version on the
--   instance. The default setting is <tt>INHERIT</tt> . To specify an
--   agent version, you must use the complete version number, not the
--   abbreviated number shown on the console. For a list of available agent
--   version numbers, call <tt>DescribeAgentVersions</tt> .
uiAgentVersion :: Lens' UpdateInstance (Maybe Text)

-- | The instance type, such as <tt>t2.micro</tt> . For a list of supported
--   instance types, open the stack in the console, choose <b>Instances</b>
--   , and choose <b>+ Instance</b> . The <b>Size</b> list contains the
--   currently supported types. For more information, see <a>Instance
--   Families and Types</a> . The parameter values that you use to specify
--   the various types are in the <b>API Name</b> column of the
--   <b>Available Instance Types</b> table.
uiInstanceType :: Lens' UpdateInstance (Maybe Text)

-- | This property cannot be updated.
uiEBSOptimized :: Lens' UpdateInstance (Maybe Bool)

-- | The instance's operating system, which must be set to one of the
--   following. You cannot update an instance that is using a custom AMI. *
--   A supported Linux operating system: An Amazon Linux version, such as
--   <tt>Amazon Linux 2016.03</tt> , <tt>Amazon Linux 2015.09</tt> , or
--   <tt>Amazon Linux 2015.03</tt> . * A supported Ubuntu operating system,
--   such as <tt>Ubuntu 16.04 LTS</tt> , <tt>Ubuntu 14.04 LTS</tt> , or
--   <tt>Ubuntu 12.04 LTS</tt> . * <tt>CentOS 7</tt> * <tt>Red Hat
--   Enterprise Linux 7</tt> * A supported Windows operating system, such
--   as <tt>Microsoft Windows Server 2012 R2 Base</tt> , <tt>Microsoft
--   Windows Server 2012 R2 with SQL Server Express</tt> , <tt>Microsoft
--   Windows Server 2012 R2 with SQL Server Standard</tt> , or
--   <tt>Microsoft Windows Server 2012 R2 with SQL Server Web</tt> . For
--   more information on the supported operating systems, see <a>AWS
--   OpsWorks Operating Systems</a> . The default option is the current
--   Amazon Linux version. If you set this parameter to <tt>Custom</tt> ,
--   you must use the AmiId parameter to specify the custom AMI that you
--   want to use. For more information on the supported operating systems,
--   see <a>Operating Systems</a> . For more information on how to use
--   custom AMIs with OpsWorks, see <a>Using Custom AMIs</a> .
uiOS :: Lens' UpdateInstance (Maybe Text)

-- | For load-based or time-based instances, the type. Windows stacks can
--   use only time-based instances.
uiAutoScalingType :: Lens' UpdateInstance (Maybe AutoScalingType)

-- | The instance's layer IDs.
uiLayerIds :: Lens' UpdateInstance [Text]

-- | The instance architecture. Instance types do not necessarily support
--   both architectures. For a list of the architectures that are supported
--   by the different instance types, see <a>Instance Families and
--   Types</a> .
uiArchitecture :: Lens' UpdateInstance (Maybe Architecture)

-- | The ID of the AMI that was used to create the instance. The value of
--   this parameter must be the same AMI ID that the instance is already
--   using. You cannot apply a new AMI to an instance by running
--   UpdateInstance. UpdateInstance does not work on instances that are
--   using custom AMIs.
uiAMIId :: Lens' UpdateInstance (Maybe Text)

-- | The instance ID.
uiInstanceId :: Lens' UpdateInstance Text

-- | Creates a value of <a>UpdateInstanceResponse</a> with the minimum
--   fields required to make a request.
updateInstanceResponse :: UpdateInstanceResponse

-- | <i>See:</i> <a>updateInstanceResponse</a> smart constructor.
data UpdateInstanceResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.UpdateInstance.UpdateInstanceResponse
instance Data.Data.Data Network.AWS.OpsWorks.UpdateInstance.UpdateInstanceResponse
instance GHC.Show.Show Network.AWS.OpsWorks.UpdateInstance.UpdateInstanceResponse
instance GHC.Read.Read Network.AWS.OpsWorks.UpdateInstance.UpdateInstanceResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.UpdateInstance.UpdateInstanceResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.UpdateInstance.UpdateInstance
instance Data.Data.Data Network.AWS.OpsWorks.UpdateInstance.UpdateInstance
instance GHC.Show.Show Network.AWS.OpsWorks.UpdateInstance.UpdateInstance
instance GHC.Read.Read Network.AWS.OpsWorks.UpdateInstance.UpdateInstance
instance GHC.Classes.Eq Network.AWS.OpsWorks.UpdateInstance.UpdateInstance
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.UpdateInstance.UpdateInstance
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.UpdateInstance.UpdateInstance
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.UpdateInstance.UpdateInstance
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.UpdateInstance.UpdateInstance
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.UpdateInstance.UpdateInstance
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.UpdateInstance.UpdateInstance
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.UpdateInstance.UpdateInstance
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.UpdateInstance.UpdateInstanceResponse


-- | Updates a specified layer.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.UpdateLayer

-- | Creates a value of <a>UpdateLayer</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ulCustomInstanceProfileARN</a> - The ARN of an IAM profile to
--   be used for all of the layer's EC2 instances. For more information
--   about IAM ARNs, see <a>Using Identifiers</a> .</li>
--   <li><a>ulCustomSecurityGroupIds</a> - An array containing the layer's
--   custom security group IDs.</li>
--   <li><a>ulInstallUpdatesOnBoot</a> - Whether to install operating
--   system and package updates when the instance boots. The default value
--   is <tt>true</tt> . To control when updates are installed, set this
--   value to <tt>false</tt> . You must then update your instances manually
--   by using <tt>CreateDeployment</tt> to run the
--   <tt>update_dependencies</tt> stack command or manually running
--   <tt>yum</tt> (Amazon Linux) or <tt>apt-get</tt> (Ubuntu) on the
--   instances.</li>
--   <li><a>ulLifecycleEventConfiguration</a> -</li>
--   <li><a>ulShortname</a> - For custom layers only, use this parameter to
--   specify the layer's short name, which is used internally by AWS
--   OpsWorksand by Chef. 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 and must be in the following format:
--   <i>A[a-z0-9-_.]+Z</i>. The built-in layers' short names are defined by
--   AWS OpsWorks. For more information, see the <a>Layer
--   Reference</a></li>
--   <li><a>ulCustomRecipes</a> - A <tt>LayerCustomRecipes</tt> object that
--   specifies the layer's custom recipes.</li>
--   <li><a>ulCustomJSON</a> - A JSON-formatted string containing custom
--   stack configuration and deployment attributes to be installed on the
--   layer's instances. For more information, see <a>Using Custom JSON</a>
--   .</li>
--   <li><a>ulVolumeConfigurations</a> - A <tt>VolumeConfigurations</tt>
--   object that describes the layer's Amazon EBS volumes.</li>
--   <li><a>ulEnableAutoHealing</a> - Whether to disable auto healing for
--   the layer.</li>
--   <li><a>ulPackages</a> - An array of <tt>Package</tt> objects that
--   describe the layer's packages.</li>
--   <li><a>ulAttributes</a> - One or more user-defined key/value pairs to
--   be added to the stack attributes.</li>
--   <li><a>ulName</a> - The layer name, which is used by the console.</li>
--   <li><a>ulAutoAssignPublicIPs</a> - 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 <a>How to Edit a
--   Layer</a> .</li>
--   <li><a>ulUseEBSOptimizedInstances</a> - Whether to use Amazon
--   EBS-optimized instances.</li>
--   <li><a>ulAutoAssignElasticIPs</a> - Whether to automatically assign an
--   <a>Elastic IP address</a> to the layer's instances. For more
--   information, see <a>How to Edit a Layer</a> .</li>
--   <li><a>ulLayerId</a> - The layer ID.</li>
--   </ul>
updateLayer :: Text -> UpdateLayer

-- | <i>See:</i> <a>updateLayer</a> smart constructor.
data UpdateLayer

-- | The ARN of an IAM profile to be used for all of the layer's EC2
--   instances. For more information about IAM ARNs, see <a>Using
--   Identifiers</a> .
ulCustomInstanceProfileARN :: Lens' UpdateLayer (Maybe Text)

-- | An array containing the layer's custom security group IDs.
ulCustomSecurityGroupIds :: Lens' UpdateLayer [Text]

-- | Whether to install operating system and package updates when the
--   instance boots. The default value is <tt>true</tt> . To control when
--   updates are installed, set this value to <tt>false</tt> . You must
--   then update your instances manually by using <tt>CreateDeployment</tt>
--   to run the <tt>update_dependencies</tt> stack command or manually
--   running <tt>yum</tt> (Amazon Linux) or <tt>apt-get</tt> (Ubuntu) on
--   the instances.
ulInstallUpdatesOnBoot :: Lens' UpdateLayer (Maybe Bool)
ulLifecycleEventConfiguration :: Lens' UpdateLayer (Maybe LifecycleEventConfiguration)

-- | For custom layers only, use this parameter to specify the layer's
--   short name, which is used internally by AWS OpsWorksand by Chef. 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 and must
--   be in the following format: <i>A[a-z0-9-_.]+Z</i>. The built-in
--   layers' short names are defined by AWS OpsWorks. For more information,
--   see the <a>Layer Reference</a>
ulShortname :: Lens' UpdateLayer (Maybe Text)

-- | A <tt>LayerCustomRecipes</tt> object that specifies the layer's custom
--   recipes.
ulCustomRecipes :: Lens' UpdateLayer (Maybe Recipes)

-- | A JSON-formatted string containing custom stack configuration and
--   deployment attributes to be installed on the layer's instances. For
--   more information, see <a>Using Custom JSON</a> .
ulCustomJSON :: Lens' UpdateLayer (Maybe Text)

-- | A <tt>VolumeConfigurations</tt> object that describes the layer's
--   Amazon EBS volumes.
ulVolumeConfigurations :: Lens' UpdateLayer [VolumeConfiguration]

-- | Whether to disable auto healing for the layer.
ulEnableAutoHealing :: Lens' UpdateLayer (Maybe Bool)

-- | An array of <tt>Package</tt> objects that describe the layer's
--   packages.
ulPackages :: Lens' UpdateLayer [Text]

-- | One or more user-defined key/value pairs to be added to the stack
--   attributes.
ulAttributes :: Lens' UpdateLayer (HashMap LayerAttributesKeys Text)

-- | The layer name, which is used by the console.
ulName :: Lens' UpdateLayer (Maybe Text)

-- | 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 <a>How to Edit a Layer</a> .
ulAutoAssignPublicIPs :: Lens' UpdateLayer (Maybe Bool)

-- | Whether to use Amazon EBS-optimized instances.
ulUseEBSOptimizedInstances :: Lens' UpdateLayer (Maybe Bool)

-- | Whether to automatically assign an <a>Elastic IP address</a> to the
--   layer's instances. For more information, see <a>How to Edit a
--   Layer</a> .
ulAutoAssignElasticIPs :: Lens' UpdateLayer (Maybe Bool)

-- | The layer ID.
ulLayerId :: Lens' UpdateLayer Text

-- | Creates a value of <a>UpdateLayerResponse</a> with the minimum fields
--   required to make a request.
updateLayerResponse :: UpdateLayerResponse

-- | <i>See:</i> <a>updateLayerResponse</a> smart constructor.
data UpdateLayerResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.UpdateLayer.UpdateLayerResponse
instance Data.Data.Data Network.AWS.OpsWorks.UpdateLayer.UpdateLayerResponse
instance GHC.Show.Show Network.AWS.OpsWorks.UpdateLayer.UpdateLayerResponse
instance GHC.Read.Read Network.AWS.OpsWorks.UpdateLayer.UpdateLayerResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.UpdateLayer.UpdateLayerResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.UpdateLayer.UpdateLayer
instance Data.Data.Data Network.AWS.OpsWorks.UpdateLayer.UpdateLayer
instance GHC.Show.Show Network.AWS.OpsWorks.UpdateLayer.UpdateLayer
instance GHC.Read.Read Network.AWS.OpsWorks.UpdateLayer.UpdateLayer
instance GHC.Classes.Eq Network.AWS.OpsWorks.UpdateLayer.UpdateLayer
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.UpdateLayer.UpdateLayer
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.UpdateLayer.UpdateLayer
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.UpdateLayer.UpdateLayer
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.UpdateLayer.UpdateLayer
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.UpdateLayer.UpdateLayer
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.UpdateLayer.UpdateLayer
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.UpdateLayer.UpdateLayer
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.UpdateLayer.UpdateLayerResponse


-- | Updates a user's SSH public key.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have self-management enabled or an attached policy that explicitly
--   grants permissions. For more information on user permissions, see
--   <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.UpdateMyUserProfile

-- | Creates a value of <a>UpdateMyUserProfile</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>umupSSHPublicKey</a> - The user's SSH public key.</li>
--   </ul>
updateMyUserProfile :: UpdateMyUserProfile

-- | <i>See:</i> <a>updateMyUserProfile</a> smart constructor.
data UpdateMyUserProfile

-- | The user's SSH public key.
umupSSHPublicKey :: Lens' UpdateMyUserProfile (Maybe Text)

-- | Creates a value of <a>UpdateMyUserProfileResponse</a> with the minimum
--   fields required to make a request.
updateMyUserProfileResponse :: UpdateMyUserProfileResponse

-- | <i>See:</i> <a>updateMyUserProfileResponse</a> smart constructor.
data UpdateMyUserProfileResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.UpdateMyUserProfile.UpdateMyUserProfileResponse
instance Data.Data.Data Network.AWS.OpsWorks.UpdateMyUserProfile.UpdateMyUserProfileResponse
instance GHC.Show.Show Network.AWS.OpsWorks.UpdateMyUserProfile.UpdateMyUserProfileResponse
instance GHC.Read.Read Network.AWS.OpsWorks.UpdateMyUserProfile.UpdateMyUserProfileResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.UpdateMyUserProfile.UpdateMyUserProfileResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.UpdateMyUserProfile.UpdateMyUserProfile
instance Data.Data.Data Network.AWS.OpsWorks.UpdateMyUserProfile.UpdateMyUserProfile
instance GHC.Show.Show Network.AWS.OpsWorks.UpdateMyUserProfile.UpdateMyUserProfile
instance GHC.Read.Read Network.AWS.OpsWorks.UpdateMyUserProfile.UpdateMyUserProfile
instance GHC.Classes.Eq Network.AWS.OpsWorks.UpdateMyUserProfile.UpdateMyUserProfile
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.UpdateMyUserProfile.UpdateMyUserProfile
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.UpdateMyUserProfile.UpdateMyUserProfile
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.UpdateMyUserProfile.UpdateMyUserProfile
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.UpdateMyUserProfile.UpdateMyUserProfile
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.UpdateMyUserProfile.UpdateMyUserProfile
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.UpdateMyUserProfile.UpdateMyUserProfile
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.UpdateMyUserProfile.UpdateMyUserProfile
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.UpdateMyUserProfile.UpdateMyUserProfileResponse


-- | Updates an Amazon RDS instance.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.UpdateRDSDBInstance

-- | Creates a value of <a>UpdateRDSDBInstance</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>urdiDBUser</a> - The master user name.</li>
--   <li><a>urdiDBPassword</a> - The database password.</li>
--   <li><a>urdiRDSDBInstanceARN</a> - The Amazon RDS instance's ARN.</li>
--   </ul>
updateRDSDBInstance :: Text -> UpdateRDSDBInstance

-- | <i>See:</i> <a>updateRDSDBInstance</a> smart constructor.
data UpdateRDSDBInstance

-- | The master user name.
urdiDBUser :: Lens' UpdateRDSDBInstance (Maybe Text)

-- | The database password.
urdiDBPassword :: Lens' UpdateRDSDBInstance (Maybe Text)

-- | The Amazon RDS instance's ARN.
urdiRDSDBInstanceARN :: Lens' UpdateRDSDBInstance Text

-- | Creates a value of <a>UpdateRDSDBInstanceResponse</a> with the minimum
--   fields required to make a request.
updateRDSDBInstanceResponse :: UpdateRDSDBInstanceResponse

-- | <i>See:</i> <a>updateRDSDBInstanceResponse</a> smart constructor.
data UpdateRDSDBInstanceResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.UpdateRDSDBInstance.UpdateRDSDBInstanceResponse
instance Data.Data.Data Network.AWS.OpsWorks.UpdateRDSDBInstance.UpdateRDSDBInstanceResponse
instance GHC.Show.Show Network.AWS.OpsWorks.UpdateRDSDBInstance.UpdateRDSDBInstanceResponse
instance GHC.Read.Read Network.AWS.OpsWorks.UpdateRDSDBInstance.UpdateRDSDBInstanceResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.UpdateRDSDBInstance.UpdateRDSDBInstanceResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.UpdateRDSDBInstance.UpdateRDSDBInstance
instance Data.Data.Data Network.AWS.OpsWorks.UpdateRDSDBInstance.UpdateRDSDBInstance
instance GHC.Show.Show Network.AWS.OpsWorks.UpdateRDSDBInstance.UpdateRDSDBInstance
instance GHC.Read.Read Network.AWS.OpsWorks.UpdateRDSDBInstance.UpdateRDSDBInstance
instance GHC.Classes.Eq Network.AWS.OpsWorks.UpdateRDSDBInstance.UpdateRDSDBInstance
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.UpdateRDSDBInstance.UpdateRDSDBInstance
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.UpdateRDSDBInstance.UpdateRDSDBInstance
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.UpdateRDSDBInstance.UpdateRDSDBInstance
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.UpdateRDSDBInstance.UpdateRDSDBInstance
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.UpdateRDSDBInstance.UpdateRDSDBInstance
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.UpdateRDSDBInstance.UpdateRDSDBInstance
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.UpdateRDSDBInstance.UpdateRDSDBInstance
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.UpdateRDSDBInstance.UpdateRDSDBInstanceResponse


-- | Updates a specified stack.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.UpdateStack

-- | Creates a value of <a>UpdateStack</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>usDefaultInstanceProfileARN</a> - The ARN of an IAM profile
--   that is the default profile for all of the stack's EC2 instances. For
--   more information about IAM ARNs, see <a>Using Identifiers</a> .</li>
--   <li><a>usServiceRoleARN</a> - Do not use this parameter. You cannot
--   update a stack's service role.</li>
--   <li><a>usDefaultRootDeviceType</a> - The default root device type.
--   This value is used by default for all instances in the stack, but you
--   can override it when you create an instance. For more information, see
--   <a>Storage for the Root Device</a> .</li>
--   <li><a>usChefConfiguration</a> - A <tt>ChefConfiguration</tt> object
--   that specifies whether to enable Berkshelf and the Berkshelf version
--   on Chef 11.10 stacks. For more information, see <a>Create a New
--   Stack</a> .</li>
--   <li><a>usAgentVersion</a> - The default AWS OpsWorks agent version.
--   You have the following options: * Auto-update - Set this parameter to
--   <tt>LATEST</tt> . AWS OpsWorks automatically installs new agent
--   versions on the stack's instances as soon as they are available. *
--   Fixed version - Set this parameter to your preferred agent version. To
--   update the agent version, you must edit the stack configuration and
--   specify a new version. AWS OpsWorks then automatically installs that
--   version on the stack's instances. The default setting is
--   <tt>LATEST</tt> . To specify an agent version, you must use the
--   complete version number, not the abbreviated number shown on the
--   console. For a list of available agent version numbers, call
--   <tt>DescribeAgentVersions</tt> .</li>
--   <li><a>usDefaultSSHKeyName</a> - A default Amazon EC2 key-pair name.
--   The default value is <tt>none</tt> . If you specify a key-pair name,
--   AWS OpsWorks installs the public key on the instance and you can use
--   the private key with an SSH client to log in to the instance. For more
--   information, see <a>Using SSH to Communicate with an Instance</a> and
--   <a>Managing SSH Access</a> . You can override this setting by
--   specifying a different key pair, or no key pair, when you <a>create an
--   instance</a> .</li>
--   <li><a>usCustomJSON</a> - A string that contains user-defined, custom
--   JSON. It can be used to override the corresponding default stack
--   configuration JSON values or to pass data to recipes. The string
--   should be in the following format: <tt>"{"key1": "value1", "key2":
--   "value2",...}"</tt> For more information on custom JSON, see <a>Use
--   Custom JSON to Modify the Stack Configuration Attributes</a> .</li>
--   <li><a>usCustomCookbooksSource</a> - Undocumented member.</li>
--   <li><a>usDefaultAvailabilityZone</a> - The stack's default
--   Availability Zone, which must be in the stack's region. For more
--   information, see <a>Regions and Endpoints</a> . If you also specify a
--   value for <tt>DefaultSubnetId</tt> , the subnet must be in the same
--   zone. For more information, see <tt>CreateStack</tt> .</li>
--   <li><a>usAttributes</a> - One or more user-defined key-value pairs to
--   be added to the stack attributes.</li>
--   <li><a>usName</a> - The stack's new name.</li>
--   <li><a>usDefaultOS</a> - The stack's operating system, which must be
--   set to one of the following: * A supported Linux operating system: An
--   Amazon Linux version, such as <tt>Amazon Linux 2016.03</tt> ,
--   <tt>Amazon Linux 2015.09</tt> , or <tt>Amazon Linux 2015.03</tt> . * A
--   supported Ubuntu operating system, such as <tt>Ubuntu 16.04 LTS</tt> ,
--   <tt>Ubuntu 14.04 LTS</tt> , or <tt>Ubuntu 12.04 LTS</tt> . *
--   <tt>CentOS 7</tt> * <tt>Red Hat Enterprise Linux 7</tt> * A supported
--   Windows operating system, such as <tt>Microsoft Windows Server 2012 R2
--   Base</tt> , <tt>Microsoft Windows Server 2012 R2 with SQL Server
--   Express</tt> , <tt>Microsoft Windows Server 2012 R2 with SQL Server
--   Standard</tt> , or <tt>Microsoft Windows Server 2012 R2 with SQL
--   Server Web</tt> . * A custom AMI: <tt>Custom</tt> . You specify the
--   custom AMI you want to use when you create instances. For more
--   information on how to use custom AMIs with OpsWorks, see <a>Using
--   Custom AMIs</a> . The default option is the stack's current operating
--   system. For more information on the supported operating systems, see
--   <a>AWS OpsWorks Operating Systems</a> .</li>
--   <li><a>usUseOpsworksSecurityGroups</a> - Whether to associate the AWS
--   OpsWorks built-in security groups with the stack's layers. AWS
--   OpsWorks provides a standard set of built-in security groups, one for
--   each layer, which are associated with layers by default.
--   <tt>UseOpsworksSecurityGroups</tt> allows you to provide your own
--   custom security groups instead of using the built-in groups.
--   <tt>UseOpsworksSecurityGroups</tt> has the following settings: * True
--   - AWS OpsWorks automatically associates the appropriate built-in
--   security group with each layer (default setting). You can associate
--   additional security groups with a layer after you create it, but you
--   cannot delete the built-in security group. * False - AWS OpsWorks does
--   not associate built-in security groups with layers. You must create
--   appropriate EC2 security groups and associate a security group with
--   each layer that you create. However, you can still manually associate
--   a built-in security group with a layer on. Custom security groups are
--   required only for those layers that need custom settings. For more
--   information, see <a>Create a New Stack</a> .</li>
--   <li><a>usUseCustomCookbooks</a> - Whether the stack uses custom
--   cookbooks.</li>
--   <li><a>usDefaultSubnetId</a> - The stack's default VPC subnet ID. This
--   parameter is required if you specify a value for the <tt>VpcId</tt>
--   parameter. All instances are launched into this subnet unless you
--   specify otherwise when you create the instance. If you also specify a
--   value for <tt>DefaultAvailabilityZone</tt> , the subnet must be in
--   that zone. For information on default values and when this parameter
--   is required, see the <tt>VpcId</tt> parameter description.</li>
--   <li><a>usConfigurationManager</a> - The configuration manager. When
--   you update a stack, we recommend that you use the configuration
--   manager to specify the Chef version: 12, 11.10, or 11.4 for Linux
--   stacks, or 12.2 for Windows stacks. The default value for Linux stacks
--   is currently 11.4.</li>
--   <li><a>usHostnameTheme</a> - The stack's new host name theme, with
--   spaces replaced by underscores. The theme is used to generate host
--   names for the stack's instances. By default, <tt>HostnameTheme</tt> is
--   set to <tt>Layer_Dependent</tt> , which creates host names by
--   appending integers to the layer's short name. The other themes are: *
--   <tt>Baked_Goods</tt> * <tt>Clouds</tt> * <tt>Europe_Cities</tt> *
--   <tt>Fruits</tt> * <tt>Greek_Deities</tt> *
--   <tt>Legendary_creatures_from_Japan</tt> * <tt>Planets_and_Moons</tt> *
--   <tt>Roman_Deities</tt> * <tt>Scottish_Islands</tt> *
--   <tt>US_Cities</tt> * <tt>Wild_Cats</tt> To obtain a generated host
--   name, call <tt>GetHostNameSuggestion</tt> , which returns a host name
--   based on the current theme.</li>
--   <li><a>usStackId</a> - The stack ID.</li>
--   </ul>
updateStack :: Text -> UpdateStack

-- | <i>See:</i> <a>updateStack</a> smart constructor.
data UpdateStack

-- | The ARN of an IAM profile that is the default profile for all of the
--   stack's EC2 instances. For more information about IAM ARNs, see
--   <a>Using Identifiers</a> .
usDefaultInstanceProfileARN :: Lens' UpdateStack (Maybe Text)

-- | Do not use this parameter. You cannot update a stack's service role.
usServiceRoleARN :: Lens' UpdateStack (Maybe Text)

-- | The default root device type. This value is used by default for all
--   instances in the stack, but you can override it when you create an
--   instance. For more information, see <a>Storage for the Root Device</a>
--   .
usDefaultRootDeviceType :: Lens' UpdateStack (Maybe RootDeviceType)

-- | A <tt>ChefConfiguration</tt> object that specifies whether to enable
--   Berkshelf and the Berkshelf version on Chef 11.10 stacks. For more
--   information, see <a>Create a New Stack</a> .
usChefConfiguration :: Lens' UpdateStack (Maybe ChefConfiguration)

-- | The default AWS OpsWorks agent version. You have the following
--   options: * Auto-update - Set this parameter to <tt>LATEST</tt> . AWS
--   OpsWorks automatically installs new agent versions on the stack's
--   instances as soon as they are available. * Fixed version - Set this
--   parameter to your preferred agent version. To update the agent
--   version, you must edit the stack configuration and specify a new
--   version. AWS OpsWorks then automatically installs that version on the
--   stack's instances. The default setting is <tt>LATEST</tt> . To specify
--   an agent version, you must use the complete version number, not the
--   abbreviated number shown on the console. For a list of available agent
--   version numbers, call <tt>DescribeAgentVersions</tt> .
usAgentVersion :: Lens' UpdateStack (Maybe Text)

-- | A default Amazon EC2 key-pair name. The default value is <tt>none</tt>
--   . If you specify a key-pair name, AWS OpsWorks installs the public key
--   on the instance and you can use the private key with an SSH client to
--   log in to the instance. For more information, see <a>Using SSH to
--   Communicate with an Instance</a> and <a>Managing SSH Access</a> . You
--   can override this setting by specifying a different key pair, or no
--   key pair, when you <a>create an instance</a> .
usDefaultSSHKeyName :: Lens' UpdateStack (Maybe Text)

-- | A string that contains user-defined, custom JSON. It can be used to
--   override the corresponding default stack configuration JSON values or
--   to pass data to recipes. The string should be in the following format:
--   <tt>"{"key1": "value1", "key2": "value2",...}"</tt> For more
--   information on custom JSON, see <a>Use Custom JSON to Modify the Stack
--   Configuration Attributes</a> .
usCustomJSON :: Lens' UpdateStack (Maybe Text)

-- | Undocumented member.
usCustomCookbooksSource :: Lens' UpdateStack (Maybe Source)

-- | The stack's default Availability Zone, which must be in the stack's
--   region. For more information, see <a>Regions and Endpoints</a> . If
--   you also specify a value for <tt>DefaultSubnetId</tt> , the subnet
--   must be in the same zone. For more information, see
--   <tt>CreateStack</tt> .
usDefaultAvailabilityZone :: Lens' UpdateStack (Maybe Text)

-- | One or more user-defined key-value pairs to be added to the stack
--   attributes.
usAttributes :: Lens' UpdateStack (HashMap StackAttributesKeys Text)

-- | The stack's new name.
usName :: Lens' UpdateStack (Maybe Text)

-- | The stack's operating system, which must be set to one of the
--   following: * A supported Linux operating system: An Amazon Linux
--   version, such as <tt>Amazon Linux 2016.03</tt> , <tt>Amazon Linux
--   2015.09</tt> , or <tt>Amazon Linux 2015.03</tt> . * A supported Ubuntu
--   operating system, such as <tt>Ubuntu 16.04 LTS</tt> , <tt>Ubuntu 14.04
--   LTS</tt> , or <tt>Ubuntu 12.04 LTS</tt> . * <tt>CentOS 7</tt> *
--   <tt>Red Hat Enterprise Linux 7</tt> * A supported Windows operating
--   system, such as <tt>Microsoft Windows Server 2012 R2 Base</tt> ,
--   <tt>Microsoft Windows Server 2012 R2 with SQL Server Express</tt> ,
--   <tt>Microsoft Windows Server 2012 R2 with SQL Server Standard</tt> ,
--   or <tt>Microsoft Windows Server 2012 R2 with SQL Server Web</tt> . * A
--   custom AMI: <tt>Custom</tt> . You specify the custom AMI you want to
--   use when you create instances. For more information on how to use
--   custom AMIs with OpsWorks, see <a>Using Custom AMIs</a> . The default
--   option is the stack's current operating system. For more information
--   on the supported operating systems, see <a>AWS OpsWorks Operating
--   Systems</a> .
usDefaultOS :: Lens' UpdateStack (Maybe Text)

-- | Whether to associate the AWS OpsWorks built-in security groups with
--   the stack's layers. AWS OpsWorks provides a standard set of built-in
--   security groups, one for each layer, which are associated with layers
--   by default. <tt>UseOpsworksSecurityGroups</tt> allows you to provide
--   your own custom security groups instead of using the built-in groups.
--   <tt>UseOpsworksSecurityGroups</tt> has the following settings: * True
--   - AWS OpsWorks automatically associates the appropriate built-in
--   security group with each layer (default setting). You can associate
--   additional security groups with a layer after you create it, but you
--   cannot delete the built-in security group. * False - AWS OpsWorks does
--   not associate built-in security groups with layers. You must create
--   appropriate EC2 security groups and associate a security group with
--   each layer that you create. However, you can still manually associate
--   a built-in security group with a layer on. Custom security groups are
--   required only for those layers that need custom settings. For more
--   information, see <a>Create a New Stack</a> .
usUseOpsworksSecurityGroups :: Lens' UpdateStack (Maybe Bool)

-- | Whether the stack uses custom cookbooks.
usUseCustomCookbooks :: Lens' UpdateStack (Maybe Bool)

-- | The stack's default VPC subnet ID. This parameter is required if you
--   specify a value for the <tt>VpcId</tt> parameter. All instances are
--   launched into this subnet unless you specify otherwise when you create
--   the instance. If you also specify a value for
--   <tt>DefaultAvailabilityZone</tt> , the subnet must be in that zone.
--   For information on default values and when this parameter is required,
--   see the <tt>VpcId</tt> parameter description.
usDefaultSubnetId :: Lens' UpdateStack (Maybe Text)

-- | The configuration manager. When you update a stack, we recommend that
--   you use the configuration manager to specify the Chef version: 12,
--   11.10, or 11.4 for Linux stacks, or 12.2 for Windows stacks. The
--   default value for Linux stacks is currently 11.4.
usConfigurationManager :: Lens' UpdateStack (Maybe StackConfigurationManager)

-- | The stack's new host name theme, with spaces replaced by underscores.
--   The theme is used to generate host names for the stack's instances. By
--   default, <tt>HostnameTheme</tt> is set to <tt>Layer_Dependent</tt> ,
--   which creates host names by appending integers to the layer's short
--   name. The other themes are: * <tt>Baked_Goods</tt> * <tt>Clouds</tt> *
--   <tt>Europe_Cities</tt> * <tt>Fruits</tt> * <tt>Greek_Deities</tt> *
--   <tt>Legendary_creatures_from_Japan</tt> * <tt>Planets_and_Moons</tt> *
--   <tt>Roman_Deities</tt> * <tt>Scottish_Islands</tt> *
--   <tt>US_Cities</tt> * <tt>Wild_Cats</tt> To obtain a generated host
--   name, call <tt>GetHostNameSuggestion</tt> , which returns a host name
--   based on the current theme.
usHostnameTheme :: Lens' UpdateStack (Maybe Text)

-- | The stack ID.
usStackId :: Lens' UpdateStack Text

-- | Creates a value of <a>UpdateStackResponse</a> with the minimum fields
--   required to make a request.
updateStackResponse :: UpdateStackResponse

-- | <i>See:</i> <a>updateStackResponse</a> smart constructor.
data UpdateStackResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.UpdateStack.UpdateStackResponse
instance Data.Data.Data Network.AWS.OpsWorks.UpdateStack.UpdateStackResponse
instance GHC.Show.Show Network.AWS.OpsWorks.UpdateStack.UpdateStackResponse
instance GHC.Read.Read Network.AWS.OpsWorks.UpdateStack.UpdateStackResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.UpdateStack.UpdateStackResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.UpdateStack.UpdateStack
instance Data.Data.Data Network.AWS.OpsWorks.UpdateStack.UpdateStack
instance GHC.Show.Show Network.AWS.OpsWorks.UpdateStack.UpdateStack
instance GHC.Read.Read Network.AWS.OpsWorks.UpdateStack.UpdateStack
instance GHC.Classes.Eq Network.AWS.OpsWorks.UpdateStack.UpdateStack
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.UpdateStack.UpdateStack
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.UpdateStack.UpdateStack
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.UpdateStack.UpdateStack
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.UpdateStack.UpdateStack
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.UpdateStack.UpdateStack
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.UpdateStack.UpdateStack
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.UpdateStack.UpdateStack
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.UpdateStack.UpdateStackResponse


-- | Updates a specified user profile.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have an attached policy that explicitly grants permissions. For more
--   information on user permissions, see <a>Managing User Permissions</a>
--   .
module Network.AWS.OpsWorks.UpdateUserProfile

-- | Creates a value of <a>UpdateUserProfile</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uupAllowSelfManagement</a> - Whether users can specify their
--   own SSH public key through the My Settings page. For more information,
--   see <a>Managing User Permissions</a> .</li>
--   <li><a>uupSSHPublicKey</a> - The user's new SSH public key.</li>
--   <li><a>uupSSHUsername</a> - The user's SSH user name. The allowable
--   characters are [a-z], [A-Z], [0-9], <a>-</a>, and '_'. If the
--   specified name includes other punctuation marks, AWS OpsWorks removes
--   them. For example, <tt>my.name</tt> will be changed to <tt>myname</tt>
--   . If you do not specify an SSH user name, AWS OpsWorks generates one
--   from the IAM user name.</li>
--   <li><a>uupIAMUserARN</a> - The user IAM ARN. This can also be a
--   federated user's ARN.</li>
--   </ul>
updateUserProfile :: Text -> UpdateUserProfile

-- | <i>See:</i> <a>updateUserProfile</a> smart constructor.
data UpdateUserProfile

-- | Whether users can specify their own SSH public key through the My
--   Settings page. For more information, see <a>Managing User
--   Permissions</a> .
uupAllowSelfManagement :: Lens' UpdateUserProfile (Maybe Bool)

-- | The user's new SSH public key.
uupSSHPublicKey :: Lens' UpdateUserProfile (Maybe Text)

-- | The user's SSH user name. The allowable characters are [a-z], [A-Z],
--   [0-9], <a>-</a>, and '_'. If the specified name includes other
--   punctuation marks, AWS OpsWorks removes them. For example,
--   <tt>my.name</tt> will be changed to <tt>myname</tt> . If you do not
--   specify an SSH user name, AWS OpsWorks generates one from the IAM user
--   name.
uupSSHUsername :: Lens' UpdateUserProfile (Maybe Text)

-- | The user IAM ARN. This can also be a federated user's ARN.
uupIAMUserARN :: Lens' UpdateUserProfile Text

-- | Creates a value of <a>UpdateUserProfileResponse</a> with the minimum
--   fields required to make a request.
updateUserProfileResponse :: UpdateUserProfileResponse

-- | <i>See:</i> <a>updateUserProfileResponse</a> smart constructor.
data UpdateUserProfileResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.UpdateUserProfile.UpdateUserProfileResponse
instance Data.Data.Data Network.AWS.OpsWorks.UpdateUserProfile.UpdateUserProfileResponse
instance GHC.Show.Show Network.AWS.OpsWorks.UpdateUserProfile.UpdateUserProfileResponse
instance GHC.Read.Read Network.AWS.OpsWorks.UpdateUserProfile.UpdateUserProfileResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.UpdateUserProfile.UpdateUserProfileResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.UpdateUserProfile.UpdateUserProfile
instance Data.Data.Data Network.AWS.OpsWorks.UpdateUserProfile.UpdateUserProfile
instance GHC.Show.Show Network.AWS.OpsWorks.UpdateUserProfile.UpdateUserProfile
instance GHC.Read.Read Network.AWS.OpsWorks.UpdateUserProfile.UpdateUserProfile
instance GHC.Classes.Eq Network.AWS.OpsWorks.UpdateUserProfile.UpdateUserProfile
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.UpdateUserProfile.UpdateUserProfile
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.UpdateUserProfile.UpdateUserProfile
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.UpdateUserProfile.UpdateUserProfile
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.UpdateUserProfile.UpdateUserProfile
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.UpdateUserProfile.UpdateUserProfile
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.UpdateUserProfile.UpdateUserProfile
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.UpdateUserProfile.UpdateUserProfile
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.UpdateUserProfile.UpdateUserProfileResponse


-- | Updates an Amazon EBS volume's name or mount point. For more
--   information, see <a>Resource Management</a> .
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.UpdateVolume

-- | Creates a value of <a>UpdateVolume</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uName</a> - The new name.</li>
--   <li><a>uMountPoint</a> - The new mount point.</li>
--   <li><a>uVolumeId</a> - The volume ID.</li>
--   </ul>
updateVolume :: Text -> UpdateVolume

-- | <i>See:</i> <a>updateVolume</a> smart constructor.
data UpdateVolume

-- | The new name.
uName :: Lens' UpdateVolume (Maybe Text)

-- | The new mount point.
uMountPoint :: Lens' UpdateVolume (Maybe Text)

-- | The volume ID.
uVolumeId :: Lens' UpdateVolume Text

-- | Creates a value of <a>UpdateVolumeResponse</a> with the minimum fields
--   required to make a request.
updateVolumeResponse :: UpdateVolumeResponse

-- | <i>See:</i> <a>updateVolumeResponse</a> smart constructor.
data UpdateVolumeResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.UpdateVolume.UpdateVolumeResponse
instance Data.Data.Data Network.AWS.OpsWorks.UpdateVolume.UpdateVolumeResponse
instance GHC.Show.Show Network.AWS.OpsWorks.UpdateVolume.UpdateVolumeResponse
instance GHC.Read.Read Network.AWS.OpsWorks.UpdateVolume.UpdateVolumeResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.UpdateVolume.UpdateVolumeResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.UpdateVolume.UpdateVolume
instance Data.Data.Data Network.AWS.OpsWorks.UpdateVolume.UpdateVolume
instance GHC.Show.Show Network.AWS.OpsWorks.UpdateVolume.UpdateVolume
instance GHC.Read.Read Network.AWS.OpsWorks.UpdateVolume.UpdateVolume
instance GHC.Classes.Eq Network.AWS.OpsWorks.UpdateVolume.UpdateVolume
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.UpdateVolume.UpdateVolume
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.UpdateVolume.UpdateVolume
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.UpdateVolume.UpdateVolume
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.UpdateVolume.UpdateVolume
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.UpdateVolume.UpdateVolume
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.UpdateVolume.UpdateVolume
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.UpdateVolume.UpdateVolume
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.UpdateVolume.UpdateVolumeResponse


-- | Stops a specified stack.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.StopStack

-- | Creates a value of <a>StopStack</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>stoStackId</a> - The stack ID.</li>
--   </ul>
stopStack :: Text -> StopStack

-- | <i>See:</i> <a>stopStack</a> smart constructor.
data StopStack

-- | The stack ID.
stoStackId :: Lens' StopStack Text

-- | Creates a value of <a>StopStackResponse</a> with the minimum fields
--   required to make a request.
stopStackResponse :: StopStackResponse

-- | <i>See:</i> <a>stopStackResponse</a> smart constructor.
data StopStackResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.StopStack.StopStackResponse
instance Data.Data.Data Network.AWS.OpsWorks.StopStack.StopStackResponse
instance GHC.Show.Show Network.AWS.OpsWorks.StopStack.StopStackResponse
instance GHC.Read.Read Network.AWS.OpsWorks.StopStack.StopStackResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.StopStack.StopStackResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.StopStack.StopStack
instance Data.Data.Data Network.AWS.OpsWorks.StopStack.StopStack
instance GHC.Show.Show Network.AWS.OpsWorks.StopStack.StopStack
instance GHC.Read.Read Network.AWS.OpsWorks.StopStack.StopStack
instance GHC.Classes.Eq Network.AWS.OpsWorks.StopStack.StopStack
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.StopStack.StopStack
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.StopStack.StopStack
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.StopStack.StopStack
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.StopStack.StopStack
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.StopStack.StopStack
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.StopStack.StopStack
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.StopStack.StopStack
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.StopStack.StopStackResponse


-- | Stops a specified instance. When you stop a standard instance, the
--   data disappears and must be reinstalled when you restart the instance.
--   You can stop an Amazon EBS-backed instance without losing data. For
--   more information, see <a>Starting, Stopping, and Rebooting
--   Instances</a> .
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.StopInstance

-- | Creates a value of <a>StopInstance</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>siInstanceId</a> - The instance ID.</li>
--   </ul>
stopInstance :: Text -> StopInstance

-- | <i>See:</i> <a>stopInstance</a> smart constructor.
data StopInstance

-- | The instance ID.
siInstanceId :: Lens' StopInstance Text

-- | Creates a value of <a>StopInstanceResponse</a> with the minimum fields
--   required to make a request.
stopInstanceResponse :: StopInstanceResponse

-- | <i>See:</i> <a>stopInstanceResponse</a> smart constructor.
data StopInstanceResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.StopInstance.StopInstanceResponse
instance Data.Data.Data Network.AWS.OpsWorks.StopInstance.StopInstanceResponse
instance GHC.Show.Show Network.AWS.OpsWorks.StopInstance.StopInstanceResponse
instance GHC.Read.Read Network.AWS.OpsWorks.StopInstance.StopInstanceResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.StopInstance.StopInstanceResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.StopInstance.StopInstance
instance Data.Data.Data Network.AWS.OpsWorks.StopInstance.StopInstance
instance GHC.Show.Show Network.AWS.OpsWorks.StopInstance.StopInstance
instance GHC.Read.Read Network.AWS.OpsWorks.StopInstance.StopInstance
instance GHC.Classes.Eq Network.AWS.OpsWorks.StopInstance.StopInstance
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.StopInstance.StopInstance
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.StopInstance.StopInstance
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.StopInstance.StopInstance
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.StopInstance.StopInstance
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.StopInstance.StopInstance
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.StopInstance.StopInstance
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.StopInstance.StopInstance
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.StopInstance.StopInstanceResponse


-- | Starts a stack's instances.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.StartStack

-- | Creates a value of <a>StartStack</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>staStackId</a> - The stack ID.</li>
--   </ul>
startStack :: Text -> StartStack

-- | <i>See:</i> <a>startStack</a> smart constructor.
data StartStack

-- | The stack ID.
staStackId :: Lens' StartStack Text

-- | Creates a value of <a>StartStackResponse</a> with the minimum fields
--   required to make a request.
startStackResponse :: StartStackResponse

-- | <i>See:</i> <a>startStackResponse</a> smart constructor.
data StartStackResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.StartStack.StartStackResponse
instance Data.Data.Data Network.AWS.OpsWorks.StartStack.StartStackResponse
instance GHC.Show.Show Network.AWS.OpsWorks.StartStack.StartStackResponse
instance GHC.Read.Read Network.AWS.OpsWorks.StartStack.StartStackResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.StartStack.StartStackResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.StartStack.StartStack
instance Data.Data.Data Network.AWS.OpsWorks.StartStack.StartStack
instance GHC.Show.Show Network.AWS.OpsWorks.StartStack.StartStack
instance GHC.Read.Read Network.AWS.OpsWorks.StartStack.StartStack
instance GHC.Classes.Eq Network.AWS.OpsWorks.StartStack.StartStack
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.StartStack.StartStack
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.StartStack.StartStack
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.StartStack.StartStack
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.StartStack.StartStack
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.StartStack.StartStack
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.StartStack.StartStack
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.StartStack.StartStack
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.StartStack.StartStackResponse


-- | Starts a specified instance. For more information, see <a>Starting,
--   Stopping, and Rebooting Instances</a> .
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.StartInstance

-- | Creates a value of <a>StartInstance</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sInstanceId</a> - The instance ID.</li>
--   </ul>
startInstance :: Text -> StartInstance

-- | <i>See:</i> <a>startInstance</a> smart constructor.
data StartInstance

-- | The instance ID.
sInstanceId :: Lens' StartInstance Text

-- | Creates a value of <a>StartInstanceResponse</a> with the minimum
--   fields required to make a request.
startInstanceResponse :: StartInstanceResponse

-- | <i>See:</i> <a>startInstanceResponse</a> smart constructor.
data StartInstanceResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.StartInstance.StartInstanceResponse
instance Data.Data.Data Network.AWS.OpsWorks.StartInstance.StartInstanceResponse
instance GHC.Show.Show Network.AWS.OpsWorks.StartInstance.StartInstanceResponse
instance GHC.Read.Read Network.AWS.OpsWorks.StartInstance.StartInstanceResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.StartInstance.StartInstanceResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.StartInstance.StartInstance
instance Data.Data.Data Network.AWS.OpsWorks.StartInstance.StartInstance
instance GHC.Show.Show Network.AWS.OpsWorks.StartInstance.StartInstance
instance GHC.Read.Read Network.AWS.OpsWorks.StartInstance.StartInstance
instance GHC.Classes.Eq Network.AWS.OpsWorks.StartInstance.StartInstance
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.StartInstance.StartInstance
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.StartInstance.StartInstance
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.StartInstance.StartInstance
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.StartInstance.StartInstance
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.StartInstance.StartInstance
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.StartInstance.StartInstance
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.StartInstance.StartInstance
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.StartInstance.StartInstanceResponse


-- | Specify the time-based auto scaling configuration for a specified
--   instance. For more information, see <a>Managing Load with Time-based
--   and Load-based Instances</a> .
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.SetTimeBasedAutoScaling

-- | Creates a value of <a>SetTimeBasedAutoScaling</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>stbasAutoScalingSchedule</a> - An <tt>AutoScalingSchedule</tt>
--   with the instance schedule.</li>
--   <li><a>stbasInstanceId</a> - The instance ID.</li>
--   </ul>
setTimeBasedAutoScaling :: Text -> SetTimeBasedAutoScaling

-- | <i>See:</i> <a>setTimeBasedAutoScaling</a> smart constructor.
data SetTimeBasedAutoScaling

-- | An <tt>AutoScalingSchedule</tt> with the instance schedule.
stbasAutoScalingSchedule :: Lens' SetTimeBasedAutoScaling (Maybe WeeklyAutoScalingSchedule)

-- | The instance ID.
stbasInstanceId :: Lens' SetTimeBasedAutoScaling Text

-- | Creates a value of <a>SetTimeBasedAutoScalingResponse</a> with the
--   minimum fields required to make a request.
setTimeBasedAutoScalingResponse :: SetTimeBasedAutoScalingResponse

-- | <i>See:</i> <a>setTimeBasedAutoScalingResponse</a> smart constructor.
data SetTimeBasedAutoScalingResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.SetTimeBasedAutoScaling.SetTimeBasedAutoScalingResponse
instance Data.Data.Data Network.AWS.OpsWorks.SetTimeBasedAutoScaling.SetTimeBasedAutoScalingResponse
instance GHC.Show.Show Network.AWS.OpsWorks.SetTimeBasedAutoScaling.SetTimeBasedAutoScalingResponse
instance GHC.Read.Read Network.AWS.OpsWorks.SetTimeBasedAutoScaling.SetTimeBasedAutoScalingResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.SetTimeBasedAutoScaling.SetTimeBasedAutoScalingResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.SetTimeBasedAutoScaling.SetTimeBasedAutoScaling
instance Data.Data.Data Network.AWS.OpsWorks.SetTimeBasedAutoScaling.SetTimeBasedAutoScaling
instance GHC.Show.Show Network.AWS.OpsWorks.SetTimeBasedAutoScaling.SetTimeBasedAutoScaling
instance GHC.Read.Read Network.AWS.OpsWorks.SetTimeBasedAutoScaling.SetTimeBasedAutoScaling
instance GHC.Classes.Eq Network.AWS.OpsWorks.SetTimeBasedAutoScaling.SetTimeBasedAutoScaling
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.SetTimeBasedAutoScaling.SetTimeBasedAutoScaling
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.SetTimeBasedAutoScaling.SetTimeBasedAutoScaling
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.SetTimeBasedAutoScaling.SetTimeBasedAutoScaling
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.SetTimeBasedAutoScaling.SetTimeBasedAutoScaling
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.SetTimeBasedAutoScaling.SetTimeBasedAutoScaling
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.SetTimeBasedAutoScaling.SetTimeBasedAutoScaling
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.SetTimeBasedAutoScaling.SetTimeBasedAutoScaling
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.SetTimeBasedAutoScaling.SetTimeBasedAutoScalingResponse


-- | Specifies a user's permissions. For more information, see <a>Security
--   and Permissions</a> .
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.SetPermission

-- | Creates a value of <a>SetPermission</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>spAllowSudo</a> - The user is allowed to use <b>sudo</b> to
--   elevate privileges.</li>
--   <li><a>spLevel</a> - The user's permission level, which must be set to
--   one of the following strings. You cannot set your own permissions
--   level. * <tt>deny</tt> * <tt>show</tt> * <tt>deploy</tt> *
--   <tt>manage</tt> * <tt>iam_only</tt> For more information on the
--   permissions associated with these levels, see <a>Managing User
--   Permissions</a> .</li>
--   <li><a>spAllowSSH</a> - The user is allowed to use SSH to communicate
--   with the instance.</li>
--   <li><a>spStackId</a> - The stack ID.</li>
--   <li><a>spIAMUserARN</a> - The user's IAM ARN. This can also be a
--   federated user's ARN.</li>
--   </ul>
setPermission :: Text -> Text -> SetPermission

-- | <i>See:</i> <a>setPermission</a> smart constructor.
data SetPermission

-- | The user is allowed to use <b>sudo</b> to elevate privileges.
spAllowSudo :: Lens' SetPermission (Maybe Bool)

-- | The user's permission level, which must be set to one of the following
--   strings. You cannot set your own permissions level. * <tt>deny</tt> *
--   <tt>show</tt> * <tt>deploy</tt> * <tt>manage</tt> * <tt>iam_only</tt>
--   For more information on the permissions associated with these levels,
--   see <a>Managing User Permissions</a> .
spLevel :: Lens' SetPermission (Maybe Text)

-- | The user is allowed to use SSH to communicate with the instance.
spAllowSSH :: Lens' SetPermission (Maybe Bool)

-- | The stack ID.
spStackId :: Lens' SetPermission Text

-- | The user's IAM ARN. This can also be a federated user's ARN.
spIAMUserARN :: Lens' SetPermission Text

-- | Creates a value of <a>SetPermissionResponse</a> with the minimum
--   fields required to make a request.
setPermissionResponse :: SetPermissionResponse

-- | <i>See:</i> <a>setPermissionResponse</a> smart constructor.
data SetPermissionResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.SetPermission.SetPermissionResponse
instance Data.Data.Data Network.AWS.OpsWorks.SetPermission.SetPermissionResponse
instance GHC.Show.Show Network.AWS.OpsWorks.SetPermission.SetPermissionResponse
instance GHC.Read.Read Network.AWS.OpsWorks.SetPermission.SetPermissionResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.SetPermission.SetPermissionResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.SetPermission.SetPermission
instance Data.Data.Data Network.AWS.OpsWorks.SetPermission.SetPermission
instance GHC.Show.Show Network.AWS.OpsWorks.SetPermission.SetPermission
instance GHC.Read.Read Network.AWS.OpsWorks.SetPermission.SetPermission
instance GHC.Classes.Eq Network.AWS.OpsWorks.SetPermission.SetPermission
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.SetPermission.SetPermission
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.SetPermission.SetPermission
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.SetPermission.SetPermission
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.SetPermission.SetPermission
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.SetPermission.SetPermission
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.SetPermission.SetPermission
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.SetPermission.SetPermission
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.SetPermission.SetPermissionResponse


-- | Specify the load-based auto scaling configuration for a specified
--   layer. For more information, see <a>Managing Load with Time-based and
--   Load-based Instances</a> .
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.SetLoadBasedAutoScaling

-- | Creates a value of <a>SetLoadBasedAutoScaling</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>slbasUpScaling</a> - An <tt>AutoScalingThresholds</tt> object
--   with the upscaling threshold configuration. If the load exceeds these
--   thresholds for a specified amount of time, AWS OpsWorks starts a
--   specified number of instances.</li>
--   <li><a>slbasEnable</a> - Enables load-based auto scaling for the
--   layer.</li>
--   <li><a>slbasDownScaling</a> - An <tt>AutoScalingThresholds</tt> object
--   with the downscaling threshold configuration. If the load falls below
--   these thresholds for a specified amount of time, AWS OpsWorks stops a
--   specified number of instances.</li>
--   <li><a>slbasLayerId</a> - The layer ID.</li>
--   </ul>
setLoadBasedAutoScaling :: Text -> SetLoadBasedAutoScaling

-- | <i>See:</i> <a>setLoadBasedAutoScaling</a> smart constructor.
data SetLoadBasedAutoScaling

-- | An <tt>AutoScalingThresholds</tt> object with the upscaling threshold
--   configuration. If the load exceeds these thresholds for a specified
--   amount of time, AWS OpsWorks starts a specified number of instances.
slbasUpScaling :: Lens' SetLoadBasedAutoScaling (Maybe AutoScalingThresholds)

-- | Enables load-based auto scaling for the layer.
slbasEnable :: Lens' SetLoadBasedAutoScaling (Maybe Bool)

-- | An <tt>AutoScalingThresholds</tt> object with the downscaling
--   threshold configuration. If the load falls below these thresholds for
--   a specified amount of time, AWS OpsWorks stops a specified number of
--   instances.
slbasDownScaling :: Lens' SetLoadBasedAutoScaling (Maybe AutoScalingThresholds)

-- | The layer ID.
slbasLayerId :: Lens' SetLoadBasedAutoScaling Text

-- | Creates a value of <a>SetLoadBasedAutoScalingResponse</a> with the
--   minimum fields required to make a request.
setLoadBasedAutoScalingResponse :: SetLoadBasedAutoScalingResponse

-- | <i>See:</i> <a>setLoadBasedAutoScalingResponse</a> smart constructor.
data SetLoadBasedAutoScalingResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.SetLoadBasedAutoScaling.SetLoadBasedAutoScalingResponse
instance Data.Data.Data Network.AWS.OpsWorks.SetLoadBasedAutoScaling.SetLoadBasedAutoScalingResponse
instance GHC.Show.Show Network.AWS.OpsWorks.SetLoadBasedAutoScaling.SetLoadBasedAutoScalingResponse
instance GHC.Read.Read Network.AWS.OpsWorks.SetLoadBasedAutoScaling.SetLoadBasedAutoScalingResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.SetLoadBasedAutoScaling.SetLoadBasedAutoScalingResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.SetLoadBasedAutoScaling.SetLoadBasedAutoScaling
instance Data.Data.Data Network.AWS.OpsWorks.SetLoadBasedAutoScaling.SetLoadBasedAutoScaling
instance GHC.Show.Show Network.AWS.OpsWorks.SetLoadBasedAutoScaling.SetLoadBasedAutoScaling
instance GHC.Read.Read Network.AWS.OpsWorks.SetLoadBasedAutoScaling.SetLoadBasedAutoScaling
instance GHC.Classes.Eq Network.AWS.OpsWorks.SetLoadBasedAutoScaling.SetLoadBasedAutoScaling
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.SetLoadBasedAutoScaling.SetLoadBasedAutoScaling
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.SetLoadBasedAutoScaling.SetLoadBasedAutoScaling
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.SetLoadBasedAutoScaling.SetLoadBasedAutoScaling
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.SetLoadBasedAutoScaling.SetLoadBasedAutoScaling
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.SetLoadBasedAutoScaling.SetLoadBasedAutoScaling
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.SetLoadBasedAutoScaling.SetLoadBasedAutoScaling
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.SetLoadBasedAutoScaling.SetLoadBasedAutoScaling
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.SetLoadBasedAutoScaling.SetLoadBasedAutoScalingResponse


-- | Registers an Amazon EBS volume with a specified stack. A volume can be
--   registered with only one stack at a time. If the volume is already
--   registered, you must first deregister it by calling
--   <tt>DeregisterVolume</tt> . For more information, see <a>Resource
--   Management</a> .
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.RegisterVolume

-- | Creates a value of <a>RegisterVolume</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rvEC2VolumeId</a> - The Amazon EBS volume ID.</li>
--   <li><a>rvStackId</a> - The stack ID.</li>
--   </ul>
registerVolume :: Text -> RegisterVolume

-- | <i>See:</i> <a>registerVolume</a> smart constructor.
data RegisterVolume

-- | The Amazon EBS volume ID.
rvEC2VolumeId :: Lens' RegisterVolume (Maybe Text)

-- | The stack ID.
rvStackId :: Lens' RegisterVolume Text

-- | Creates a value of <a>RegisterVolumeResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rvrsVolumeId</a> - The volume ID.</li>
--   <li><a>rvrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
registerVolumeResponse :: Int -> RegisterVolumeResponse

-- | Contains the response to a <tt>RegisterVolume</tt> request.
--   
--   <i>See:</i> <a>registerVolumeResponse</a> smart constructor.
data RegisterVolumeResponse

-- | The volume ID.
rvrsVolumeId :: Lens' RegisterVolumeResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
rvrsResponseStatus :: Lens' RegisterVolumeResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.RegisterVolume.RegisterVolumeResponse
instance Data.Data.Data Network.AWS.OpsWorks.RegisterVolume.RegisterVolumeResponse
instance GHC.Show.Show Network.AWS.OpsWorks.RegisterVolume.RegisterVolumeResponse
instance GHC.Read.Read Network.AWS.OpsWorks.RegisterVolume.RegisterVolumeResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.RegisterVolume.RegisterVolumeResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.RegisterVolume.RegisterVolume
instance Data.Data.Data Network.AWS.OpsWorks.RegisterVolume.RegisterVolume
instance GHC.Show.Show Network.AWS.OpsWorks.RegisterVolume.RegisterVolume
instance GHC.Read.Read Network.AWS.OpsWorks.RegisterVolume.RegisterVolume
instance GHC.Classes.Eq Network.AWS.OpsWorks.RegisterVolume.RegisterVolume
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.RegisterVolume.RegisterVolume
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.RegisterVolume.RegisterVolume
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.RegisterVolume.RegisterVolume
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.RegisterVolume.RegisterVolume
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.RegisterVolume.RegisterVolume
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.RegisterVolume.RegisterVolume
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.RegisterVolume.RegisterVolume
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.RegisterVolume.RegisterVolumeResponse


-- | Registers an Amazon RDS instance with a stack.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.RegisterRDSDBInstance

-- | Creates a value of <a>RegisterRDSDBInstance</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rrdiStackId</a> - The stack ID.</li>
--   <li><a>rrdiRDSDBInstanceARN</a> - The Amazon RDS instance's ARN.</li>
--   <li><a>rrdiDBUser</a> - The database's master user name.</li>
--   <li><a>rrdiDBPassword</a> - The database password.</li>
--   </ul>
registerRDSDBInstance :: Text -> Text -> Text -> Text -> RegisterRDSDBInstance

-- | <i>See:</i> <a>registerRDSDBInstance</a> smart constructor.
data RegisterRDSDBInstance

-- | The stack ID.
rrdiStackId :: Lens' RegisterRDSDBInstance Text

-- | The Amazon RDS instance's ARN.
rrdiRDSDBInstanceARN :: Lens' RegisterRDSDBInstance Text

-- | The database's master user name.
rrdiDBUser :: Lens' RegisterRDSDBInstance Text

-- | The database password.
rrdiDBPassword :: Lens' RegisterRDSDBInstance Text

-- | Creates a value of <a>RegisterRDSDBInstanceResponse</a> with the
--   minimum fields required to make a request.
registerRDSDBInstanceResponse :: RegisterRDSDBInstanceResponse

-- | <i>See:</i> <a>registerRDSDBInstanceResponse</a> smart constructor.
data RegisterRDSDBInstanceResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.RegisterRDSDBInstance.RegisterRDSDBInstanceResponse
instance Data.Data.Data Network.AWS.OpsWorks.RegisterRDSDBInstance.RegisterRDSDBInstanceResponse
instance GHC.Show.Show Network.AWS.OpsWorks.RegisterRDSDBInstance.RegisterRDSDBInstanceResponse
instance GHC.Read.Read Network.AWS.OpsWorks.RegisterRDSDBInstance.RegisterRDSDBInstanceResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.RegisterRDSDBInstance.RegisterRDSDBInstanceResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.RegisterRDSDBInstance.RegisterRDSDBInstance
instance Data.Data.Data Network.AWS.OpsWorks.RegisterRDSDBInstance.RegisterRDSDBInstance
instance GHC.Show.Show Network.AWS.OpsWorks.RegisterRDSDBInstance.RegisterRDSDBInstance
instance GHC.Read.Read Network.AWS.OpsWorks.RegisterRDSDBInstance.RegisterRDSDBInstance
instance GHC.Classes.Eq Network.AWS.OpsWorks.RegisterRDSDBInstance.RegisterRDSDBInstance
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.RegisterRDSDBInstance.RegisterRDSDBInstance
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.RegisterRDSDBInstance.RegisterRDSDBInstance
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.RegisterRDSDBInstance.RegisterRDSDBInstance
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.RegisterRDSDBInstance.RegisterRDSDBInstance
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.RegisterRDSDBInstance.RegisterRDSDBInstance
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.RegisterRDSDBInstance.RegisterRDSDBInstance
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.RegisterRDSDBInstance.RegisterRDSDBInstance
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.RegisterRDSDBInstance.RegisterRDSDBInstanceResponse


-- | Registers instances with a specified stack that were created outside
--   of AWS OpsWorks.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.RegisterInstance

-- | Creates a value of <a>RegisterInstance</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>riPrivateIP</a> - The instance's private IP address.</li>
--   <li><a>riHostname</a> - The instance's hostname.</li>
--   <li><a>riInstanceIdentity</a> - An InstanceIdentity object that
--   contains the instance's identity.</li>
--   <li><a>riPublicIP</a> - The instance's public IP address.</li>
--   <li><a>riRsaPublicKeyFingerprint</a> - The instances public RSA key
--   fingerprint.</li>
--   <li><a>riRsaPublicKey</a> - The instances public RSA key. This key is
--   used to encrypt communication between the instance and the
--   service.</li>
--   <li><a>riStackId</a> - The ID of the stack that the instance is to be
--   registered with.</li>
--   </ul>
registerInstance :: Text -> RegisterInstance

-- | <i>See:</i> <a>registerInstance</a> smart constructor.
data RegisterInstance

-- | The instance's private IP address.
riPrivateIP :: Lens' RegisterInstance (Maybe Text)

-- | The instance's hostname.
riHostname :: Lens' RegisterInstance (Maybe Text)

-- | An InstanceIdentity object that contains the instance's identity.
riInstanceIdentity :: Lens' RegisterInstance (Maybe InstanceIdentity)

-- | The instance's public IP address.
riPublicIP :: Lens' RegisterInstance (Maybe Text)

-- | The instances public RSA key fingerprint.
riRsaPublicKeyFingerprint :: Lens' RegisterInstance (Maybe Text)

-- | The instances public RSA key. This key is used to encrypt
--   communication between the instance and the service.
riRsaPublicKey :: Lens' RegisterInstance (Maybe Text)

-- | The ID of the stack that the instance is to be registered with.
riStackId :: Lens' RegisterInstance Text

-- | Creates a value of <a>RegisterInstanceResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rirsInstanceId</a> - The registered instance's AWS OpsWorks
--   ID.</li>
--   <li><a>rirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
registerInstanceResponse :: Int -> RegisterInstanceResponse

-- | Contains the response to a <tt>RegisterInstanceResult</tt> request.
--   
--   <i>See:</i> <a>registerInstanceResponse</a> smart constructor.
data RegisterInstanceResponse

-- | The registered instance's AWS OpsWorks ID.
rirsInstanceId :: Lens' RegisterInstanceResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
rirsResponseStatus :: Lens' RegisterInstanceResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.RegisterInstance.RegisterInstanceResponse
instance Data.Data.Data Network.AWS.OpsWorks.RegisterInstance.RegisterInstanceResponse
instance GHC.Show.Show Network.AWS.OpsWorks.RegisterInstance.RegisterInstanceResponse
instance GHC.Read.Read Network.AWS.OpsWorks.RegisterInstance.RegisterInstanceResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.RegisterInstance.RegisterInstanceResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.RegisterInstance.RegisterInstance
instance Data.Data.Data Network.AWS.OpsWorks.RegisterInstance.RegisterInstance
instance GHC.Show.Show Network.AWS.OpsWorks.RegisterInstance.RegisterInstance
instance GHC.Read.Read Network.AWS.OpsWorks.RegisterInstance.RegisterInstance
instance GHC.Classes.Eq Network.AWS.OpsWorks.RegisterInstance.RegisterInstance
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.RegisterInstance.RegisterInstance
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.RegisterInstance.RegisterInstance
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.RegisterInstance.RegisterInstance
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.RegisterInstance.RegisterInstance
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.RegisterInstance.RegisterInstance
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.RegisterInstance.RegisterInstance
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.RegisterInstance.RegisterInstance
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.RegisterInstance.RegisterInstanceResponse


-- | Registers an Elastic IP address with a specified stack. An address can
--   be registered with only one stack at a time. If the address is already
--   registered, you must first deregister it by calling
--   <tt>DeregisterElasticIp</tt> . For more information, see <a>Resource
--   Management</a> .
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.RegisterElasticIP

-- | Creates a value of <a>RegisterElasticIP</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>reiElasticIP</a> - The Elastic IP address.</li>
--   <li><a>reiStackId</a> - The stack ID.</li>
--   </ul>
registerElasticIP :: Text -> Text -> RegisterElasticIP

-- | <i>See:</i> <a>registerElasticIP</a> smart constructor.
data RegisterElasticIP

-- | The Elastic IP address.
reiElasticIP :: Lens' RegisterElasticIP Text

-- | The stack ID.
reiStackId :: Lens' RegisterElasticIP Text

-- | Creates a value of <a>RegisterElasticIPResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>reirsElasticIP</a> - The Elastic IP address.</li>
--   <li><a>reirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
registerElasticIPResponse :: Int -> RegisterElasticIPResponse

-- | Contains the response to a <tt>RegisterElasticIp</tt> request.
--   
--   <i>See:</i> <a>registerElasticIPResponse</a> smart constructor.
data RegisterElasticIPResponse

-- | The Elastic IP address.
reirsElasticIP :: Lens' RegisterElasticIPResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
reirsResponseStatus :: Lens' RegisterElasticIPResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.RegisterElasticIP.RegisterElasticIPResponse
instance Data.Data.Data Network.AWS.OpsWorks.RegisterElasticIP.RegisterElasticIPResponse
instance GHC.Show.Show Network.AWS.OpsWorks.RegisterElasticIP.RegisterElasticIPResponse
instance GHC.Read.Read Network.AWS.OpsWorks.RegisterElasticIP.RegisterElasticIPResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.RegisterElasticIP.RegisterElasticIPResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.RegisterElasticIP.RegisterElasticIP
instance Data.Data.Data Network.AWS.OpsWorks.RegisterElasticIP.RegisterElasticIP
instance GHC.Show.Show Network.AWS.OpsWorks.RegisterElasticIP.RegisterElasticIP
instance GHC.Read.Read Network.AWS.OpsWorks.RegisterElasticIP.RegisterElasticIP
instance GHC.Classes.Eq Network.AWS.OpsWorks.RegisterElasticIP.RegisterElasticIP
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.RegisterElasticIP.RegisterElasticIP
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.RegisterElasticIP.RegisterElasticIP
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.RegisterElasticIP.RegisterElasticIP
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.RegisterElasticIP.RegisterElasticIP
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.RegisterElasticIP.RegisterElasticIP
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.RegisterElasticIP.RegisterElasticIP
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.RegisterElasticIP.RegisterElasticIP
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.RegisterElasticIP.RegisterElasticIPResponse


-- | Registers a specified Amazon ECS cluster with a stack. You can
--   register only one cluster with a stack. A cluster can be registered
--   with only one stack. For more information, see <a>Resource
--   Management</a> .
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.RegisterEcsCluster

-- | Creates a value of <a>RegisterEcsCluster</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>recEcsClusterARN</a> - The cluster's ARN.</li>
--   <li><a>recStackId</a> - The stack ID.</li>
--   </ul>
registerEcsCluster :: Text -> Text -> RegisterEcsCluster

-- | <i>See:</i> <a>registerEcsCluster</a> smart constructor.
data RegisterEcsCluster

-- | The cluster's ARN.
recEcsClusterARN :: Lens' RegisterEcsCluster Text

-- | The stack ID.
recStackId :: Lens' RegisterEcsCluster Text

-- | Creates a value of <a>RegisterEcsClusterResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>recrsEcsClusterARN</a> - The cluster's ARN.</li>
--   <li><a>recrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
registerEcsClusterResponse :: Int -> RegisterEcsClusterResponse

-- | Contains the response to a <tt>RegisterEcsCluster</tt> request.
--   
--   <i>See:</i> <a>registerEcsClusterResponse</a> smart constructor.
data RegisterEcsClusterResponse

-- | The cluster's ARN.
recrsEcsClusterARN :: Lens' RegisterEcsClusterResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
recrsResponseStatus :: Lens' RegisterEcsClusterResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.RegisterEcsCluster.RegisterEcsClusterResponse
instance Data.Data.Data Network.AWS.OpsWorks.RegisterEcsCluster.RegisterEcsClusterResponse
instance GHC.Show.Show Network.AWS.OpsWorks.RegisterEcsCluster.RegisterEcsClusterResponse
instance GHC.Read.Read Network.AWS.OpsWorks.RegisterEcsCluster.RegisterEcsClusterResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.RegisterEcsCluster.RegisterEcsClusterResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.RegisterEcsCluster.RegisterEcsCluster
instance Data.Data.Data Network.AWS.OpsWorks.RegisterEcsCluster.RegisterEcsCluster
instance GHC.Show.Show Network.AWS.OpsWorks.RegisterEcsCluster.RegisterEcsCluster
instance GHC.Read.Read Network.AWS.OpsWorks.RegisterEcsCluster.RegisterEcsCluster
instance GHC.Classes.Eq Network.AWS.OpsWorks.RegisterEcsCluster.RegisterEcsCluster
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.RegisterEcsCluster.RegisterEcsCluster
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.RegisterEcsCluster.RegisterEcsCluster
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.RegisterEcsCluster.RegisterEcsCluster
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.RegisterEcsCluster.RegisterEcsCluster
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.RegisterEcsCluster.RegisterEcsCluster
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.RegisterEcsCluster.RegisterEcsCluster
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.RegisterEcsCluster.RegisterEcsCluster
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.RegisterEcsCluster.RegisterEcsClusterResponse


-- | Reboots a specified instance. For more information, see <a>Starting,
--   Stopping, and Rebooting Instances</a> .
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.RebootInstance

-- | Creates a value of <a>RebootInstance</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>riInstanceId</a> - The instance ID.</li>
--   </ul>
rebootInstance :: Text -> RebootInstance

-- | <i>See:</i> <a>rebootInstance</a> smart constructor.
data RebootInstance

-- | The instance ID.
riInstanceId :: Lens' RebootInstance Text

-- | Creates a value of <a>RebootInstanceResponse</a> with the minimum
--   fields required to make a request.
rebootInstanceResponse :: RebootInstanceResponse

-- | <i>See:</i> <a>rebootInstanceResponse</a> smart constructor.
data RebootInstanceResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.RebootInstance.RebootInstanceResponse
instance Data.Data.Data Network.AWS.OpsWorks.RebootInstance.RebootInstanceResponse
instance GHC.Show.Show Network.AWS.OpsWorks.RebootInstance.RebootInstanceResponse
instance GHC.Read.Read Network.AWS.OpsWorks.RebootInstance.RebootInstanceResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.RebootInstance.RebootInstanceResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.RebootInstance.RebootInstance
instance Data.Data.Data Network.AWS.OpsWorks.RebootInstance.RebootInstance
instance GHC.Show.Show Network.AWS.OpsWorks.RebootInstance.RebootInstance
instance GHC.Read.Read Network.AWS.OpsWorks.RebootInstance.RebootInstance
instance GHC.Classes.Eq Network.AWS.OpsWorks.RebootInstance.RebootInstance
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.RebootInstance.RebootInstance
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.RebootInstance.RebootInstance
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.RebootInstance.RebootInstance
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.RebootInstance.RebootInstance
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.RebootInstance.RebootInstance
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.RebootInstance.RebootInstance
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.RebootInstance.RebootInstance
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.RebootInstance.RebootInstanceResponse


-- | Grants RDP access to a Windows instance for a specified time period.
module Network.AWS.OpsWorks.GrantAccess

-- | Creates a value of <a>GrantAccess</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gaValidForInMinutes</a> - The length of time (in minutes) that
--   the grant is valid. When the grant expires at the end of this period,
--   the user will no longer be able to use the credentials to log in. If
--   the user is logged in at the time, he or she automatically will be
--   logged out.</li>
--   <li><a>gaInstanceId</a> - The instance's AWS OpsWorks ID.</li>
--   </ul>
grantAccess :: Text -> GrantAccess

-- | <i>See:</i> <a>grantAccess</a> smart constructor.
data GrantAccess

-- | The length of time (in minutes) that the grant is valid. When the
--   grant expires at the end of this period, the user will no longer be
--   able to use the credentials to log in. If the user is logged in at the
--   time, he or she automatically will be logged out.
gaValidForInMinutes :: Lens' GrantAccess (Maybe Natural)

-- | The instance's AWS OpsWorks ID.
gaInstanceId :: Lens' GrantAccess Text

-- | Creates a value of <a>GrantAccessResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>garsTemporaryCredential</a> - A <tt>TemporaryCredential</tt>
--   object that contains the data needed to log in to the instance by RDP
--   clients, such as the Microsoft Remote Desktop Connection.</li>
--   <li><a>garsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
grantAccessResponse :: Int -> GrantAccessResponse

-- | Contains the response to a <tt>GrantAccess</tt> request.
--   
--   <i>See:</i> <a>grantAccessResponse</a> smart constructor.
data GrantAccessResponse

-- | A <tt>TemporaryCredential</tt> object that contains the data needed to
--   log in to the instance by RDP clients, such as the Microsoft Remote
--   Desktop Connection.
garsTemporaryCredential :: Lens' GrantAccessResponse (Maybe TemporaryCredential)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
garsResponseStatus :: Lens' GrantAccessResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.GrantAccess.GrantAccessResponse
instance Data.Data.Data Network.AWS.OpsWorks.GrantAccess.GrantAccessResponse
instance GHC.Show.Show Network.AWS.OpsWorks.GrantAccess.GrantAccessResponse
instance GHC.Read.Read Network.AWS.OpsWorks.GrantAccess.GrantAccessResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.GrantAccess.GrantAccessResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.GrantAccess.GrantAccess
instance Data.Data.Data Network.AWS.OpsWorks.GrantAccess.GrantAccess
instance GHC.Show.Show Network.AWS.OpsWorks.GrantAccess.GrantAccess
instance GHC.Read.Read Network.AWS.OpsWorks.GrantAccess.GrantAccess
instance GHC.Classes.Eq Network.AWS.OpsWorks.GrantAccess.GrantAccess
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.GrantAccess.GrantAccess
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.GrantAccess.GrantAccess
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.GrantAccess.GrantAccess
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.GrantAccess.GrantAccess
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.GrantAccess.GrantAccess
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.GrantAccess.GrantAccess
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.GrantAccess.GrantAccess
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.GrantAccess.GrantAccessResponse


-- | Gets a generated host name for the specified layer, based on the
--   current host name theme.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.GetHostnameSuggestion

-- | Creates a value of <a>GetHostnameSuggestion</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ghsLayerId</a> - The layer ID.</li>
--   </ul>
getHostnameSuggestion :: Text -> GetHostnameSuggestion

-- | <i>See:</i> <a>getHostnameSuggestion</a> smart constructor.
data GetHostnameSuggestion

-- | The layer ID.
ghsLayerId :: Lens' GetHostnameSuggestion Text

-- | Creates a value of <a>GetHostnameSuggestionResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ghsrsHostname</a> - The generated host name.</li>
--   <li><a>ghsrsLayerId</a> - The layer ID.</li>
--   <li><a>ghsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getHostnameSuggestionResponse :: Int -> GetHostnameSuggestionResponse

-- | Contains the response to a <tt>GetHostnameSuggestion</tt> request.
--   
--   <i>See:</i> <a>getHostnameSuggestionResponse</a> smart constructor.
data GetHostnameSuggestionResponse

-- | The generated host name.
ghsrsHostname :: Lens' GetHostnameSuggestionResponse (Maybe Text)

-- | The layer ID.
ghsrsLayerId :: Lens' GetHostnameSuggestionResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ghsrsResponseStatus :: Lens' GetHostnameSuggestionResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.GetHostnameSuggestion.GetHostnameSuggestionResponse
instance Data.Data.Data Network.AWS.OpsWorks.GetHostnameSuggestion.GetHostnameSuggestionResponse
instance GHC.Show.Show Network.AWS.OpsWorks.GetHostnameSuggestion.GetHostnameSuggestionResponse
instance GHC.Read.Read Network.AWS.OpsWorks.GetHostnameSuggestion.GetHostnameSuggestionResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.GetHostnameSuggestion.GetHostnameSuggestionResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.GetHostnameSuggestion.GetHostnameSuggestion
instance Data.Data.Data Network.AWS.OpsWorks.GetHostnameSuggestion.GetHostnameSuggestion
instance GHC.Show.Show Network.AWS.OpsWorks.GetHostnameSuggestion.GetHostnameSuggestion
instance GHC.Read.Read Network.AWS.OpsWorks.GetHostnameSuggestion.GetHostnameSuggestion
instance GHC.Classes.Eq Network.AWS.OpsWorks.GetHostnameSuggestion.GetHostnameSuggestion
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.GetHostnameSuggestion.GetHostnameSuggestion
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.GetHostnameSuggestion.GetHostnameSuggestion
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.GetHostnameSuggestion.GetHostnameSuggestion
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.GetHostnameSuggestion.GetHostnameSuggestion
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.GetHostnameSuggestion.GetHostnameSuggestion
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.GetHostnameSuggestion.GetHostnameSuggestion
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.GetHostnameSuggestion.GetHostnameSuggestion
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.GetHostnameSuggestion.GetHostnameSuggestionResponse


-- | Disassociates an Elastic IP address from its instance. The address
--   remains registered with the stack. For more information, see
--   <a>Resource Management</a> .
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.DisassociateElasticIP

-- | Creates a value of <a>DisassociateElasticIP</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>deiElasticIP</a> - The Elastic IP address.</li>
--   </ul>
disassociateElasticIP :: Text -> DisassociateElasticIP

-- | <i>See:</i> <a>disassociateElasticIP</a> smart constructor.
data DisassociateElasticIP

-- | The Elastic IP address.
deiElasticIP :: Lens' DisassociateElasticIP Text

-- | Creates a value of <a>DisassociateElasticIPResponse</a> with the
--   minimum fields required to make a request.
disassociateElasticIPResponse :: DisassociateElasticIPResponse

-- | <i>See:</i> <a>disassociateElasticIPResponse</a> smart constructor.
data DisassociateElasticIPResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DisassociateElasticIP.DisassociateElasticIPResponse
instance Data.Data.Data Network.AWS.OpsWorks.DisassociateElasticIP.DisassociateElasticIPResponse
instance GHC.Show.Show Network.AWS.OpsWorks.DisassociateElasticIP.DisassociateElasticIPResponse
instance GHC.Read.Read Network.AWS.OpsWorks.DisassociateElasticIP.DisassociateElasticIPResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.DisassociateElasticIP.DisassociateElasticIPResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DisassociateElasticIP.DisassociateElasticIP
instance Data.Data.Data Network.AWS.OpsWorks.DisassociateElasticIP.DisassociateElasticIP
instance GHC.Show.Show Network.AWS.OpsWorks.DisassociateElasticIP.DisassociateElasticIP
instance GHC.Read.Read Network.AWS.OpsWorks.DisassociateElasticIP.DisassociateElasticIP
instance GHC.Classes.Eq Network.AWS.OpsWorks.DisassociateElasticIP.DisassociateElasticIP
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.DisassociateElasticIP.DisassociateElasticIP
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.DisassociateElasticIP.DisassociateElasticIP
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DisassociateElasticIP.DisassociateElasticIP
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.DisassociateElasticIP.DisassociateElasticIP
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.DisassociateElasticIP.DisassociateElasticIP
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.DisassociateElasticIP.DisassociateElasticIP
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.DisassociateElasticIP.DisassociateElasticIP
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DisassociateElasticIP.DisassociateElasticIPResponse


-- | Detaches a specified Elastic Load Balancing instance from its layer.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.DetachElasticLoadBalancer

-- | Creates a value of <a>DetachElasticLoadBalancer</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>delbElasticLoadBalancerName</a> - The Elastic Load Balancing
--   instance's name.</li>
--   <li><a>delbLayerId</a> - The ID of the layer that the Elastic Load
--   Balancing instance is attached to.</li>
--   </ul>
detachElasticLoadBalancer :: Text -> Text -> DetachElasticLoadBalancer

-- | <i>See:</i> <a>detachElasticLoadBalancer</a> smart constructor.
data DetachElasticLoadBalancer

-- | The Elastic Load Balancing instance's name.
delbElasticLoadBalancerName :: Lens' DetachElasticLoadBalancer Text

-- | The ID of the layer that the Elastic Load Balancing instance is
--   attached to.
delbLayerId :: Lens' DetachElasticLoadBalancer Text

-- | Creates a value of <a>DetachElasticLoadBalancerResponse</a> with the
--   minimum fields required to make a request.
detachElasticLoadBalancerResponse :: DetachElasticLoadBalancerResponse

-- | <i>See:</i> <a>detachElasticLoadBalancerResponse</a> smart
--   constructor.
data DetachElasticLoadBalancerResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DetachElasticLoadBalancer.DetachElasticLoadBalancerResponse
instance Data.Data.Data Network.AWS.OpsWorks.DetachElasticLoadBalancer.DetachElasticLoadBalancerResponse
instance GHC.Show.Show Network.AWS.OpsWorks.DetachElasticLoadBalancer.DetachElasticLoadBalancerResponse
instance GHC.Read.Read Network.AWS.OpsWorks.DetachElasticLoadBalancer.DetachElasticLoadBalancerResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.DetachElasticLoadBalancer.DetachElasticLoadBalancerResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DetachElasticLoadBalancer.DetachElasticLoadBalancer
instance Data.Data.Data Network.AWS.OpsWorks.DetachElasticLoadBalancer.DetachElasticLoadBalancer
instance GHC.Show.Show Network.AWS.OpsWorks.DetachElasticLoadBalancer.DetachElasticLoadBalancer
instance GHC.Read.Read Network.AWS.OpsWorks.DetachElasticLoadBalancer.DetachElasticLoadBalancer
instance GHC.Classes.Eq Network.AWS.OpsWorks.DetachElasticLoadBalancer.DetachElasticLoadBalancer
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.DetachElasticLoadBalancer.DetachElasticLoadBalancer
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.DetachElasticLoadBalancer.DetachElasticLoadBalancer
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DetachElasticLoadBalancer.DetachElasticLoadBalancer
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.DetachElasticLoadBalancer.DetachElasticLoadBalancer
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.DetachElasticLoadBalancer.DetachElasticLoadBalancer
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.DetachElasticLoadBalancer.DetachElasticLoadBalancer
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.DetachElasticLoadBalancer.DetachElasticLoadBalancer
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DetachElasticLoadBalancer.DetachElasticLoadBalancerResponse


-- | Describes an instance's Amazon EBS volumes.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Show, Deploy, or Manage permissions level for the stack, or an
--   attached policy that explicitly grants permissions. For more
--   information on user permissions, see <a>Managing User Permissions</a>
--   .
module Network.AWS.OpsWorks.DescribeVolumes

-- | Creates a value of <a>DescribeVolumes</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvInstanceId</a> - The instance ID. If you use this parameter,
--   <tt>DescribeVolumes</tt> returns descriptions of the volumes
--   associated with the specified instance.</li>
--   <li><a>dvVolumeIds</a> - Am array of volume IDs. If you use this
--   parameter, <tt>DescribeVolumes</tt> returns descriptions of the
--   specified volumes. Otherwise, it returns a description of every
--   volume.</li>
--   <li><a>dvRAIdArrayId</a> - The RAID array ID. If you use this
--   parameter, <tt>DescribeVolumes</tt> returns descriptions of the
--   volumes associated with the specified RAID array.</li>
--   <li><a>dvStackId</a> - A stack ID. The action describes the stack's
--   registered Amazon EBS volumes.</li>
--   </ul>
describeVolumes :: DescribeVolumes

-- | <i>See:</i> <a>describeVolumes</a> smart constructor.
data DescribeVolumes

-- | The instance ID. If you use this parameter, <tt>DescribeVolumes</tt>
--   returns descriptions of the volumes associated with the specified
--   instance.
dvInstanceId :: Lens' DescribeVolumes (Maybe Text)

-- | Am array of volume IDs. If you use this parameter,
--   <tt>DescribeVolumes</tt> returns descriptions of the specified
--   volumes. Otherwise, it returns a description of every volume.
dvVolumeIds :: Lens' DescribeVolumes [Text]

-- | The RAID array ID. If you use this parameter, <tt>DescribeVolumes</tt>
--   returns descriptions of the volumes associated with the specified RAID
--   array.
dvRAIdArrayId :: Lens' DescribeVolumes (Maybe Text)

-- | A stack ID. The action describes the stack's registered Amazon EBS
--   volumes.
dvStackId :: Lens' DescribeVolumes (Maybe Text)

-- | Creates a value of <a>DescribeVolumesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvrsVolumes</a> - An array of volume IDs.</li>
--   <li><a>dvrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeVolumesResponse :: Int -> DescribeVolumesResponse

-- | Contains the response to a <tt>DescribeVolumes</tt> request.
--   
--   <i>See:</i> <a>describeVolumesResponse</a> smart constructor.
data DescribeVolumesResponse

-- | An array of volume IDs.
dvrsVolumes :: Lens' DescribeVolumesResponse [Volume]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dvrsResponseStatus :: Lens' DescribeVolumesResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeVolumes.DescribeVolumesResponse
instance Data.Data.Data Network.AWS.OpsWorks.DescribeVolumes.DescribeVolumesResponse
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeVolumes.DescribeVolumesResponse
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeVolumes.DescribeVolumesResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeVolumes.DescribeVolumesResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeVolumes.DescribeVolumes
instance Data.Data.Data Network.AWS.OpsWorks.DescribeVolumes.DescribeVolumes
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeVolumes.DescribeVolumes
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeVolumes.DescribeVolumes
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeVolumes.DescribeVolumes
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.DescribeVolumes.DescribeVolumes
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.DescribeVolumes.DescribeVolumes
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeVolumes.DescribeVolumes
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.DescribeVolumes.DescribeVolumes
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.DescribeVolumes.DescribeVolumes
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.DescribeVolumes.DescribeVolumes
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.DescribeVolumes.DescribeVolumes
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeVolumes.DescribeVolumesResponse


-- | Describe specified users.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have an attached policy that explicitly grants permissions. For more
--   information on user permissions, see <a>Managing User Permissions</a>
--   .
module Network.AWS.OpsWorks.DescribeUserProfiles

-- | Creates a value of <a>DescribeUserProfiles</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dupIAMUserARNs</a> - An array of IAM or federated user ARNs
--   that identify the users to be described.</li>
--   </ul>
describeUserProfiles :: DescribeUserProfiles

-- | <i>See:</i> <a>describeUserProfiles</a> smart constructor.
data DescribeUserProfiles

-- | An array of IAM or federated user ARNs that identify the users to be
--   described.
dupIAMUserARNs :: Lens' DescribeUserProfiles [Text]

-- | Creates a value of <a>DescribeUserProfilesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>duprsUserProfiles</a> - A <tt>Users</tt> object that describes
--   the specified users.</li>
--   <li><a>duprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeUserProfilesResponse :: Int -> DescribeUserProfilesResponse

-- | Contains the response to a <tt>DescribeUserProfiles</tt> request.
--   
--   <i>See:</i> <a>describeUserProfilesResponse</a> smart constructor.
data DescribeUserProfilesResponse

-- | A <tt>Users</tt> object that describes the specified users.
duprsUserProfiles :: Lens' DescribeUserProfilesResponse [UserProfile]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
duprsResponseStatus :: Lens' DescribeUserProfilesResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeUserProfiles.DescribeUserProfilesResponse
instance Data.Data.Data Network.AWS.OpsWorks.DescribeUserProfiles.DescribeUserProfilesResponse
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeUserProfiles.DescribeUserProfilesResponse
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeUserProfiles.DescribeUserProfilesResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeUserProfiles.DescribeUserProfilesResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeUserProfiles.DescribeUserProfiles
instance Data.Data.Data Network.AWS.OpsWorks.DescribeUserProfiles.DescribeUserProfiles
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeUserProfiles.DescribeUserProfiles
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeUserProfiles.DescribeUserProfiles
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeUserProfiles.DescribeUserProfiles
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.DescribeUserProfiles.DescribeUserProfiles
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.DescribeUserProfiles.DescribeUserProfiles
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeUserProfiles.DescribeUserProfiles
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.DescribeUserProfiles.DescribeUserProfiles
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.DescribeUserProfiles.DescribeUserProfiles
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.DescribeUserProfiles.DescribeUserProfiles
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.DescribeUserProfiles.DescribeUserProfiles
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeUserProfiles.DescribeUserProfilesResponse


-- | Describes time-based auto scaling configurations for specified
--   instances.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Show, Deploy, or Manage permissions level for the stack, or an
--   attached policy that explicitly grants permissions. For more
--   information on user permissions, see <a>Managing User Permissions</a>
--   .
module Network.AWS.OpsWorks.DescribeTimeBasedAutoScaling

-- | Creates a value of <a>DescribeTimeBasedAutoScaling</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dtbasInstanceIds</a> - An array of instance IDs.</li>
--   </ul>
describeTimeBasedAutoScaling :: DescribeTimeBasedAutoScaling

-- | <i>See:</i> <a>describeTimeBasedAutoScaling</a> smart constructor.
data DescribeTimeBasedAutoScaling

-- | An array of instance IDs.
dtbasInstanceIds :: Lens' DescribeTimeBasedAutoScaling [Text]

-- | Creates a value of <a>DescribeTimeBasedAutoScalingResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dtbasrsTimeBasedAutoScalingConfigurations</a> - An array of
--   <tt>TimeBasedAutoScalingConfiguration</tt> objects that describe the
--   configuration for the specified instances.</li>
--   <li><a>dtbasrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeTimeBasedAutoScalingResponse :: Int -> DescribeTimeBasedAutoScalingResponse

-- | Contains the response to a <tt>DescribeTimeBasedAutoScaling</tt>
--   request.
--   
--   <i>See:</i> <a>describeTimeBasedAutoScalingResponse</a> smart
--   constructor.
data DescribeTimeBasedAutoScalingResponse

-- | An array of <tt>TimeBasedAutoScalingConfiguration</tt> objects that
--   describe the configuration for the specified instances.
dtbasrsTimeBasedAutoScalingConfigurations :: Lens' DescribeTimeBasedAutoScalingResponse [TimeBasedAutoScalingConfiguration]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dtbasrsResponseStatus :: Lens' DescribeTimeBasedAutoScalingResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeTimeBasedAutoScaling.DescribeTimeBasedAutoScalingResponse
instance Data.Data.Data Network.AWS.OpsWorks.DescribeTimeBasedAutoScaling.DescribeTimeBasedAutoScalingResponse
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeTimeBasedAutoScaling.DescribeTimeBasedAutoScalingResponse
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeTimeBasedAutoScaling.DescribeTimeBasedAutoScalingResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeTimeBasedAutoScaling.DescribeTimeBasedAutoScalingResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeTimeBasedAutoScaling.DescribeTimeBasedAutoScaling
instance Data.Data.Data Network.AWS.OpsWorks.DescribeTimeBasedAutoScaling.DescribeTimeBasedAutoScaling
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeTimeBasedAutoScaling.DescribeTimeBasedAutoScaling
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeTimeBasedAutoScaling.DescribeTimeBasedAutoScaling
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeTimeBasedAutoScaling.DescribeTimeBasedAutoScaling
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.DescribeTimeBasedAutoScaling.DescribeTimeBasedAutoScaling
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.DescribeTimeBasedAutoScaling.DescribeTimeBasedAutoScaling
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeTimeBasedAutoScaling.DescribeTimeBasedAutoScaling
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.DescribeTimeBasedAutoScaling.DescribeTimeBasedAutoScaling
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.DescribeTimeBasedAutoScaling.DescribeTimeBasedAutoScaling
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.DescribeTimeBasedAutoScaling.DescribeTimeBasedAutoScaling
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.DescribeTimeBasedAutoScaling.DescribeTimeBasedAutoScaling
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeTimeBasedAutoScaling.DescribeTimeBasedAutoScalingResponse


-- | Requests a description of one or more stacks.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Show, Deploy, or Manage permissions level for the stack, or an
--   attached policy that explicitly grants permissions. For more
--   information on user permissions, see <a>Managing User Permissions</a>
--   .
module Network.AWS.OpsWorks.DescribeStacks

-- | Creates a value of <a>DescribeStacks</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsStackIds</a> - An array of stack IDs that specify the stacks
--   to be described. If you omit this parameter, <tt>DescribeStacks</tt>
--   returns a description of every stack.</li>
--   </ul>
describeStacks :: DescribeStacks

-- | <i>See:</i> <a>describeStacks</a> smart constructor.
data DescribeStacks

-- | An array of stack IDs that specify the stacks to be described. If you
--   omit this parameter, <tt>DescribeStacks</tt> returns a description of
--   every stack.
dsStackIds :: Lens' DescribeStacks [Text]

-- | Creates a value of <a>DescribeStacksResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsrsStacks</a> - An array of <tt>Stack</tt> objects that
--   describe the stacks.</li>
--   <li><a>dsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeStacksResponse :: Int -> DescribeStacksResponse

-- | Contains the response to a <tt>DescribeStacks</tt> request.
--   
--   <i>See:</i> <a>describeStacksResponse</a> smart constructor.
data DescribeStacksResponse

-- | An array of <tt>Stack</tt> objects that describe the stacks.
dsrsStacks :: Lens' DescribeStacksResponse [Stack]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dsrsResponseStatus :: Lens' DescribeStacksResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeStacks.DescribeStacksResponse
instance Data.Data.Data Network.AWS.OpsWorks.DescribeStacks.DescribeStacksResponse
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeStacks.DescribeStacksResponse
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeStacks.DescribeStacksResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeStacks.DescribeStacksResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeStacks.DescribeStacks
instance Data.Data.Data Network.AWS.OpsWorks.DescribeStacks.DescribeStacks
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeStacks.DescribeStacks
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeStacks.DescribeStacks
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeStacks.DescribeStacks
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.DescribeStacks.DescribeStacks
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.DescribeStacks.DescribeStacks
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeStacks.DescribeStacks
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.DescribeStacks.DescribeStacks
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.DescribeStacks.DescribeStacks
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.DescribeStacks.DescribeStacks
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.DescribeStacks.DescribeStacks
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeStacks.DescribeStacksResponse


-- | Describes the number of layers and apps in a specified stack, and the
--   number of instances in each state, such as <tt>running_setup</tt> or
--   <tt>online</tt> .
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Show, Deploy, or Manage permissions level for the stack, or an
--   attached policy that explicitly grants permissions. For more
--   information on user permissions, see <a>Managing User Permissions</a>
--   .
module Network.AWS.OpsWorks.DescribeStackSummary

-- | Creates a value of <a>DescribeStackSummary</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dssStackId</a> - The stack ID.</li>
--   </ul>
describeStackSummary :: Text -> DescribeStackSummary

-- | <i>See:</i> <a>describeStackSummary</a> smart constructor.
data DescribeStackSummary

-- | The stack ID.
dssStackId :: Lens' DescribeStackSummary Text

-- | Creates a value of <a>DescribeStackSummaryResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dssrsStackSummary</a> - A <tt>StackSummary</tt> object that
--   contains the results.</li>
--   <li><a>dssrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeStackSummaryResponse :: Int -> DescribeStackSummaryResponse

-- | Contains the response to a <tt>DescribeStackSummary</tt> request.
--   
--   <i>See:</i> <a>describeStackSummaryResponse</a> smart constructor.
data DescribeStackSummaryResponse

-- | A <tt>StackSummary</tt> object that contains the results.
dssrsStackSummary :: Lens' DescribeStackSummaryResponse (Maybe StackSummary)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dssrsResponseStatus :: Lens' DescribeStackSummaryResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeStackSummary.DescribeStackSummaryResponse
instance Data.Data.Data Network.AWS.OpsWorks.DescribeStackSummary.DescribeStackSummaryResponse
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeStackSummary.DescribeStackSummaryResponse
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeStackSummary.DescribeStackSummaryResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeStackSummary.DescribeStackSummaryResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeStackSummary.DescribeStackSummary
instance Data.Data.Data Network.AWS.OpsWorks.DescribeStackSummary.DescribeStackSummary
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeStackSummary.DescribeStackSummary
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeStackSummary.DescribeStackSummary
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeStackSummary.DescribeStackSummary
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.DescribeStackSummary.DescribeStackSummary
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.DescribeStackSummary.DescribeStackSummary
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeStackSummary.DescribeStackSummary
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.DescribeStackSummary.DescribeStackSummary
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.DescribeStackSummary.DescribeStackSummary
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.DescribeStackSummary.DescribeStackSummary
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.DescribeStackSummary.DescribeStackSummary
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeStackSummary.DescribeStackSummaryResponse


-- | Requests a description of a stack's provisioning parameters.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Show, Deploy, or Manage permissions level for the stack or an
--   attached policy that explicitly grants permissions. For more
--   information on user permissions, see <a>Managing User Permissions</a>
--   .
module Network.AWS.OpsWorks.DescribeStackProvisioningParameters

-- | Creates a value of <a>DescribeStackProvisioningParameters</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsppStackId</a> - The stack ID</li>
--   </ul>
describeStackProvisioningParameters :: Text -> DescribeStackProvisioningParameters

-- | <i>See:</i> <a>describeStackProvisioningParameters</a> smart
--   constructor.
data DescribeStackProvisioningParameters

-- | The stack ID
dsppStackId :: Lens' DescribeStackProvisioningParameters Text

-- | Creates a value of <a>DescribeStackProvisioningParametersResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dspprsAgentInstallerURL</a> - The AWS OpsWorks agent
--   installer's URL.</li>
--   <li><a>dspprsParameters</a> - An embedded object that contains the
--   provisioning parameters.</li>
--   <li><a>dspprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeStackProvisioningParametersResponse :: Int -> DescribeStackProvisioningParametersResponse

-- | Contains the response to a
--   <tt>DescribeStackProvisioningParameters</tt> request.
--   
--   <i>See:</i> <a>describeStackProvisioningParametersResponse</a> smart
--   constructor.
data DescribeStackProvisioningParametersResponse

-- | The AWS OpsWorks agent installer's URL.
dspprsAgentInstallerURL :: Lens' DescribeStackProvisioningParametersResponse (Maybe Text)

-- | An embedded object that contains the provisioning parameters.
dspprsParameters :: Lens' DescribeStackProvisioningParametersResponse (HashMap Text Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dspprsResponseStatus :: Lens' DescribeStackProvisioningParametersResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeStackProvisioningParameters.DescribeStackProvisioningParametersResponse
instance Data.Data.Data Network.AWS.OpsWorks.DescribeStackProvisioningParameters.DescribeStackProvisioningParametersResponse
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeStackProvisioningParameters.DescribeStackProvisioningParametersResponse
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeStackProvisioningParameters.DescribeStackProvisioningParametersResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeStackProvisioningParameters.DescribeStackProvisioningParametersResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeStackProvisioningParameters.DescribeStackProvisioningParameters
instance Data.Data.Data Network.AWS.OpsWorks.DescribeStackProvisioningParameters.DescribeStackProvisioningParameters
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeStackProvisioningParameters.DescribeStackProvisioningParameters
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeStackProvisioningParameters.DescribeStackProvisioningParameters
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeStackProvisioningParameters.DescribeStackProvisioningParameters
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.DescribeStackProvisioningParameters.DescribeStackProvisioningParameters
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.DescribeStackProvisioningParameters.DescribeStackProvisioningParameters
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeStackProvisioningParameters.DescribeStackProvisioningParameters
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.DescribeStackProvisioningParameters.DescribeStackProvisioningParameters
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.DescribeStackProvisioningParameters.DescribeStackProvisioningParameters
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.DescribeStackProvisioningParameters.DescribeStackProvisioningParameters
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.DescribeStackProvisioningParameters.DescribeStackProvisioningParameters
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeStackProvisioningParameters.DescribeStackProvisioningParametersResponse


-- | Describes AWS OpsWorks service errors.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Show, Deploy, or Manage permissions level for the stack, or an
--   attached policy that explicitly grants permissions. For more
--   information on user permissions, see <a>Managing User Permissions</a>
--   .
module Network.AWS.OpsWorks.DescribeServiceErrors

-- | Creates a value of <a>DescribeServiceErrors</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dseInstanceId</a> - The instance ID. If you use this parameter,
--   <tt>DescribeServiceErrors</tt> returns descriptions of the errors
--   associated with the specified instance.</li>
--   <li><a>dseStackId</a> - The stack ID. If you use this parameter,
--   <tt>DescribeServiceErrors</tt> returns descriptions of the errors
--   associated with the specified stack.</li>
--   <li><a>dseServiceErrorIds</a> - An array of service error IDs. If you
--   use this parameter, <tt>DescribeServiceErrors</tt> returns
--   descriptions of the specified errors. Otherwise, it returns a
--   description of every error.</li>
--   </ul>
describeServiceErrors :: DescribeServiceErrors

-- | <i>See:</i> <a>describeServiceErrors</a> smart constructor.
data DescribeServiceErrors

-- | The instance ID. If you use this parameter,
--   <tt>DescribeServiceErrors</tt> returns descriptions of the errors
--   associated with the specified instance.
dseInstanceId :: Lens' DescribeServiceErrors (Maybe Text)

-- | The stack ID. If you use this parameter,
--   <tt>DescribeServiceErrors</tt> returns descriptions of the errors
--   associated with the specified stack.
dseStackId :: Lens' DescribeServiceErrors (Maybe Text)

-- | An array of service error IDs. If you use this parameter,
--   <tt>DescribeServiceErrors</tt> returns descriptions of the specified
--   errors. Otherwise, it returns a description of every error.
dseServiceErrorIds :: Lens' DescribeServiceErrors [Text]

-- | Creates a value of <a>DescribeServiceErrorsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsersServiceErrors</a> - An array of <tt>ServiceError</tt>
--   objects that describe the specified service errors.</li>
--   <li><a>dsersResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeServiceErrorsResponse :: Int -> DescribeServiceErrorsResponse

-- | Contains the response to a <tt>DescribeServiceErrors</tt> request.
--   
--   <i>See:</i> <a>describeServiceErrorsResponse</a> smart constructor.
data DescribeServiceErrorsResponse

-- | An array of <tt>ServiceError</tt> objects that describe the specified
--   service errors.
dsersServiceErrors :: Lens' DescribeServiceErrorsResponse [ServiceError']

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dsersResponseStatus :: Lens' DescribeServiceErrorsResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeServiceErrors.DescribeServiceErrorsResponse
instance Data.Data.Data Network.AWS.OpsWorks.DescribeServiceErrors.DescribeServiceErrorsResponse
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeServiceErrors.DescribeServiceErrorsResponse
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeServiceErrors.DescribeServiceErrorsResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeServiceErrors.DescribeServiceErrorsResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeServiceErrors.DescribeServiceErrors
instance Data.Data.Data Network.AWS.OpsWorks.DescribeServiceErrors.DescribeServiceErrors
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeServiceErrors.DescribeServiceErrors
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeServiceErrors.DescribeServiceErrors
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeServiceErrors.DescribeServiceErrors
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.DescribeServiceErrors.DescribeServiceErrors
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.DescribeServiceErrors.DescribeServiceErrors
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeServiceErrors.DescribeServiceErrors
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.DescribeServiceErrors.DescribeServiceErrors
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.DescribeServiceErrors.DescribeServiceErrors
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.DescribeServiceErrors.DescribeServiceErrors
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.DescribeServiceErrors.DescribeServiceErrors
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeServiceErrors.DescribeServiceErrorsResponse


-- | Describes Amazon RDS instances.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Show, Deploy, or Manage permissions level for the stack, or an
--   attached policy that explicitly grants permissions. For more
--   information on user permissions, see <a>Managing User Permissions</a>
--   .
module Network.AWS.OpsWorks.DescribeRDSDBInstances

-- | Creates a value of <a>DescribeRDSDBInstances</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drdiRDSDBInstanceARNs</a> - An array containing the ARNs of the
--   instances to be described.</li>
--   <li><a>drdiStackId</a> - The stack ID that the instances are
--   registered with. The operation returns descriptions of all registered
--   Amazon RDS instances.</li>
--   </ul>
describeRDSDBInstances :: Text -> DescribeRDSDBInstances

-- | <i>See:</i> <a>describeRDSDBInstances</a> smart constructor.
data DescribeRDSDBInstances

-- | An array containing the ARNs of the instances to be described.
drdiRDSDBInstanceARNs :: Lens' DescribeRDSDBInstances [Text]

-- | The stack ID that the instances are registered with. The operation
--   returns descriptions of all registered Amazon RDS instances.
drdiStackId :: Lens' DescribeRDSDBInstances Text

-- | Creates a value of <a>DescribeRDSDBInstancesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drdirsRDSDBInstances</a> - An a array of <tt>RdsDbInstance</tt>
--   objects that describe the instances.</li>
--   <li><a>drdirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeRDSDBInstancesResponse :: Int -> DescribeRDSDBInstancesResponse

-- | Contains the response to a <tt>DescribeRdsDbInstances</tt> request.
--   
--   <i>See:</i> <a>describeRDSDBInstancesResponse</a> smart constructor.
data DescribeRDSDBInstancesResponse

-- | An a array of <tt>RdsDbInstance</tt> objects that describe the
--   instances.
drdirsRDSDBInstances :: Lens' DescribeRDSDBInstancesResponse [RDSDBInstance]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
drdirsResponseStatus :: Lens' DescribeRDSDBInstancesResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeRDSDBInstances.DescribeRDSDBInstancesResponse
instance Data.Data.Data Network.AWS.OpsWorks.DescribeRDSDBInstances.DescribeRDSDBInstancesResponse
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeRDSDBInstances.DescribeRDSDBInstancesResponse
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeRDSDBInstances.DescribeRDSDBInstancesResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeRDSDBInstances.DescribeRDSDBInstancesResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeRDSDBInstances.DescribeRDSDBInstances
instance Data.Data.Data Network.AWS.OpsWorks.DescribeRDSDBInstances.DescribeRDSDBInstances
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeRDSDBInstances.DescribeRDSDBInstances
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeRDSDBInstances.DescribeRDSDBInstances
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeRDSDBInstances.DescribeRDSDBInstances
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.DescribeRDSDBInstances.DescribeRDSDBInstances
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.DescribeRDSDBInstances.DescribeRDSDBInstances
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeRDSDBInstances.DescribeRDSDBInstances
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.DescribeRDSDBInstances.DescribeRDSDBInstances
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.DescribeRDSDBInstances.DescribeRDSDBInstances
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.DescribeRDSDBInstances.DescribeRDSDBInstances
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.DescribeRDSDBInstances.DescribeRDSDBInstances
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeRDSDBInstances.DescribeRDSDBInstancesResponse


-- | Describe an instance's RAID arrays.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Show, Deploy, or Manage permissions level for the stack, or an
--   attached policy that explicitly grants permissions. For more
--   information on user permissions, see <a>Managing User Permissions</a>
--   .
module Network.AWS.OpsWorks.DescribeRAIdArrays

-- | Creates a value of <a>DescribeRAIdArrays</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>draiaInstanceId</a> - The instance ID. If you use this
--   parameter, <tt>DescribeRaidArrays</tt> returns descriptions of the
--   RAID arrays associated with the specified instance.</li>
--   <li><a>draiaRAIdArrayIds</a> - An array of RAID array IDs. If you use
--   this parameter, <tt>DescribeRaidArrays</tt> returns descriptions of
--   the specified arrays. Otherwise, it returns a description of every
--   array.</li>
--   <li><a>draiaStackId</a> - The stack ID.</li>
--   </ul>
describeRAIdArrays :: DescribeRAIdArrays

-- | <i>See:</i> <a>describeRAIdArrays</a> smart constructor.
data DescribeRAIdArrays

-- | The instance ID. If you use this parameter,
--   <tt>DescribeRaidArrays</tt> returns descriptions of the RAID arrays
--   associated with the specified instance.
draiaInstanceId :: Lens' DescribeRAIdArrays (Maybe Text)

-- | An array of RAID array IDs. If you use this parameter,
--   <tt>DescribeRaidArrays</tt> returns descriptions of the specified
--   arrays. Otherwise, it returns a description of every array.
draiaRAIdArrayIds :: Lens' DescribeRAIdArrays [Text]

-- | The stack ID.
draiaStackId :: Lens' DescribeRAIdArrays (Maybe Text)

-- | Creates a value of <a>DescribeRAIdArraysResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>draiarsRAIdArrays</a> - A <tt>RaidArrays</tt> object that
--   describes the specified RAID arrays.</li>
--   <li><a>draiarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeRAIdArraysResponse :: Int -> DescribeRAIdArraysResponse

-- | Contains the response to a <tt>DescribeRaidArrays</tt> request.
--   
--   <i>See:</i> <a>describeRAIdArraysResponse</a> smart constructor.
data DescribeRAIdArraysResponse

-- | A <tt>RaidArrays</tt> object that describes the specified RAID arrays.
draiarsRAIdArrays :: Lens' DescribeRAIdArraysResponse [RAIdArray]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
draiarsResponseStatus :: Lens' DescribeRAIdArraysResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeRAIdArrays.DescribeRAIdArraysResponse
instance Data.Data.Data Network.AWS.OpsWorks.DescribeRAIdArrays.DescribeRAIdArraysResponse
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeRAIdArrays.DescribeRAIdArraysResponse
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeRAIdArrays.DescribeRAIdArraysResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeRAIdArrays.DescribeRAIdArraysResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeRAIdArrays.DescribeRAIdArrays
instance Data.Data.Data Network.AWS.OpsWorks.DescribeRAIdArrays.DescribeRAIdArrays
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeRAIdArrays.DescribeRAIdArrays
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeRAIdArrays.DescribeRAIdArrays
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeRAIdArrays.DescribeRAIdArrays
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.DescribeRAIdArrays.DescribeRAIdArrays
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.DescribeRAIdArrays.DescribeRAIdArrays
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeRAIdArrays.DescribeRAIdArrays
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.DescribeRAIdArrays.DescribeRAIdArrays
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.DescribeRAIdArrays.DescribeRAIdArrays
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.DescribeRAIdArrays.DescribeRAIdArrays
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.DescribeRAIdArrays.DescribeRAIdArrays
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeRAIdArrays.DescribeRAIdArraysResponse


-- | Describes the permissions for a specified stack.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.DescribePermissions

-- | Creates a value of <a>DescribePermissions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dpIAMUserARN</a> - The user's IAM ARN. This can also be a
--   federated user's ARN. For more information about IAM ARNs, see
--   <a>Using Identifiers</a> .</li>
--   <li><a>dpStackId</a> - The stack ID.</li>
--   </ul>
describePermissions :: DescribePermissions

-- | <i>See:</i> <a>describePermissions</a> smart constructor.
data DescribePermissions

-- | The user's IAM ARN. This can also be a federated user's ARN. For more
--   information about IAM ARNs, see <a>Using Identifiers</a> .
dpIAMUserARN :: Lens' DescribePermissions (Maybe Text)

-- | The stack ID.
dpStackId :: Lens' DescribePermissions (Maybe Text)

-- | Creates a value of <a>DescribePermissionsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dprsPermissions</a> - An array of <tt>Permission</tt> objects
--   that describe the stack permissions. * If the request object contains
--   only a stack ID, the array contains a <tt>Permission</tt> object with
--   permissions for each of the stack IAM ARNs. * If the request object
--   contains only an IAM ARN, the array contains a <tt>Permission</tt>
--   object with permissions for each of the user's stack IDs. * If the
--   request contains a stack ID and an IAM ARN, the array contains a
--   single <tt>Permission</tt> object with permissions for the specified
--   stack and IAM ARN.</li>
--   <li><a>dprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describePermissionsResponse :: Int -> DescribePermissionsResponse

-- | Contains the response to a <tt>DescribePermissions</tt> request.
--   
--   <i>See:</i> <a>describePermissionsResponse</a> smart constructor.
data DescribePermissionsResponse

-- | An array of <tt>Permission</tt> objects that describe the stack
--   permissions. * If the request object contains only a stack ID, the
--   array contains a <tt>Permission</tt> object with permissions for each
--   of the stack IAM ARNs. * If the request object contains only an IAM
--   ARN, the array contains a <tt>Permission</tt> object with permissions
--   for each of the user's stack IDs. * If the request contains a stack ID
--   and an IAM ARN, the array contains a single <tt>Permission</tt> object
--   with permissions for the specified stack and IAM ARN.
dprsPermissions :: Lens' DescribePermissionsResponse [Permission]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dprsResponseStatus :: Lens' DescribePermissionsResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribePermissions.DescribePermissionsResponse
instance Data.Data.Data Network.AWS.OpsWorks.DescribePermissions.DescribePermissionsResponse
instance GHC.Show.Show Network.AWS.OpsWorks.DescribePermissions.DescribePermissionsResponse
instance GHC.Read.Read Network.AWS.OpsWorks.DescribePermissions.DescribePermissionsResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribePermissions.DescribePermissionsResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribePermissions.DescribePermissions
instance Data.Data.Data Network.AWS.OpsWorks.DescribePermissions.DescribePermissions
instance GHC.Show.Show Network.AWS.OpsWorks.DescribePermissions.DescribePermissions
instance GHC.Read.Read Network.AWS.OpsWorks.DescribePermissions.DescribePermissions
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribePermissions.DescribePermissions
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.DescribePermissions.DescribePermissions
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.DescribePermissions.DescribePermissions
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribePermissions.DescribePermissions
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.DescribePermissions.DescribePermissions
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.DescribePermissions.DescribePermissions
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.DescribePermissions.DescribePermissions
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.DescribePermissions.DescribePermissions
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribePermissions.DescribePermissionsResponse


-- | Describes a user's SSH information.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have self-management enabled or an attached policy that explicitly
--   grants permissions. For more information on user permissions, see
--   <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.DescribeMyUserProfile

-- | Creates a value of <a>DescribeMyUserProfile</a> with the minimum
--   fields required to make a request.
describeMyUserProfile :: DescribeMyUserProfile

-- | <i>See:</i> <a>describeMyUserProfile</a> smart constructor.
data DescribeMyUserProfile

-- | Creates a value of <a>DescribeMyUserProfileResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dmuprsUserProfile</a> - A <tt>UserProfile</tt> object that
--   describes the user's SSH information.</li>
--   <li><a>dmuprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeMyUserProfileResponse :: Int -> DescribeMyUserProfileResponse

-- | Contains the response to a <tt>DescribeMyUserProfile</tt> request.
--   
--   <i>See:</i> <a>describeMyUserProfileResponse</a> smart constructor.
data DescribeMyUserProfileResponse

-- | A <tt>UserProfile</tt> object that describes the user's SSH
--   information.
dmuprsUserProfile :: Lens' DescribeMyUserProfileResponse (Maybe SelfUserProfile)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dmuprsResponseStatus :: Lens' DescribeMyUserProfileResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeMyUserProfile.DescribeMyUserProfileResponse
instance Data.Data.Data Network.AWS.OpsWorks.DescribeMyUserProfile.DescribeMyUserProfileResponse
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeMyUserProfile.DescribeMyUserProfileResponse
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeMyUserProfile.DescribeMyUserProfileResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeMyUserProfile.DescribeMyUserProfileResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeMyUserProfile.DescribeMyUserProfile
instance Data.Data.Data Network.AWS.OpsWorks.DescribeMyUserProfile.DescribeMyUserProfile
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeMyUserProfile.DescribeMyUserProfile
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeMyUserProfile.DescribeMyUserProfile
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeMyUserProfile.DescribeMyUserProfile
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.DescribeMyUserProfile.DescribeMyUserProfile
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.DescribeMyUserProfile.DescribeMyUserProfile
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeMyUserProfile.DescribeMyUserProfile
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.DescribeMyUserProfile.DescribeMyUserProfile
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.DescribeMyUserProfile.DescribeMyUserProfile
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.DescribeMyUserProfile.DescribeMyUserProfile
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.DescribeMyUserProfile.DescribeMyUserProfile
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeMyUserProfile.DescribeMyUserProfileResponse


-- | Describes load-based auto scaling configurations for specified layers.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Show, Deploy, or Manage permissions level for the stack, or an
--   attached policy that explicitly grants permissions. For more
--   information on user permissions, see <a>Managing User Permissions</a>
--   .
module Network.AWS.OpsWorks.DescribeLoadBasedAutoScaling

-- | Creates a value of <a>DescribeLoadBasedAutoScaling</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dlbasLayerIds</a> - An array of layer IDs.</li>
--   </ul>
describeLoadBasedAutoScaling :: DescribeLoadBasedAutoScaling

-- | <i>See:</i> <a>describeLoadBasedAutoScaling</a> smart constructor.
data DescribeLoadBasedAutoScaling

-- | An array of layer IDs.
dlbasLayerIds :: Lens' DescribeLoadBasedAutoScaling [Text]

-- | Creates a value of <a>DescribeLoadBasedAutoScalingResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dlbasrsLoadBasedAutoScalingConfigurations</a> - An array of
--   <tt>LoadBasedAutoScalingConfiguration</tt> objects that describe each
--   layer's configuration.</li>
--   <li><a>dlbasrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeLoadBasedAutoScalingResponse :: Int -> DescribeLoadBasedAutoScalingResponse

-- | Contains the response to a <tt>DescribeLoadBasedAutoScaling</tt>
--   request.
--   
--   <i>See:</i> <a>describeLoadBasedAutoScalingResponse</a> smart
--   constructor.
data DescribeLoadBasedAutoScalingResponse

-- | An array of <tt>LoadBasedAutoScalingConfiguration</tt> objects that
--   describe each layer's configuration.
dlbasrsLoadBasedAutoScalingConfigurations :: Lens' DescribeLoadBasedAutoScalingResponse [LoadBasedAutoScalingConfiguration]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dlbasrsResponseStatus :: Lens' DescribeLoadBasedAutoScalingResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeLoadBasedAutoScaling.DescribeLoadBasedAutoScalingResponse
instance Data.Data.Data Network.AWS.OpsWorks.DescribeLoadBasedAutoScaling.DescribeLoadBasedAutoScalingResponse
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeLoadBasedAutoScaling.DescribeLoadBasedAutoScalingResponse
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeLoadBasedAutoScaling.DescribeLoadBasedAutoScalingResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeLoadBasedAutoScaling.DescribeLoadBasedAutoScalingResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeLoadBasedAutoScaling.DescribeLoadBasedAutoScaling
instance Data.Data.Data Network.AWS.OpsWorks.DescribeLoadBasedAutoScaling.DescribeLoadBasedAutoScaling
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeLoadBasedAutoScaling.DescribeLoadBasedAutoScaling
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeLoadBasedAutoScaling.DescribeLoadBasedAutoScaling
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeLoadBasedAutoScaling.DescribeLoadBasedAutoScaling
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.DescribeLoadBasedAutoScaling.DescribeLoadBasedAutoScaling
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.DescribeLoadBasedAutoScaling.DescribeLoadBasedAutoScaling
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeLoadBasedAutoScaling.DescribeLoadBasedAutoScaling
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.DescribeLoadBasedAutoScaling.DescribeLoadBasedAutoScaling
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.DescribeLoadBasedAutoScaling.DescribeLoadBasedAutoScaling
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.DescribeLoadBasedAutoScaling.DescribeLoadBasedAutoScaling
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.DescribeLoadBasedAutoScaling.DescribeLoadBasedAutoScaling
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeLoadBasedAutoScaling.DescribeLoadBasedAutoScalingResponse


-- | Requests a description of one or more layers in a specified stack.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Show, Deploy, or Manage permissions level for the stack, or an
--   attached policy that explicitly grants permissions. For more
--   information on user permissions, see <a>Managing User Permissions</a>
--   .
module Network.AWS.OpsWorks.DescribeLayers

-- | Creates a value of <a>DescribeLayers</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dlLayerIds</a> - An array of layer IDs that specify the layers
--   to be described. If you omit this parameter, <tt>DescribeLayers</tt>
--   returns a description of every layer in the specified stack.</li>
--   <li><a>dlStackId</a> - The stack ID.</li>
--   </ul>
describeLayers :: DescribeLayers

-- | <i>See:</i> <a>describeLayers</a> smart constructor.
data DescribeLayers

-- | An array of layer IDs that specify the layers to be described. If you
--   omit this parameter, <tt>DescribeLayers</tt> returns a description of
--   every layer in the specified stack.
dlLayerIds :: Lens' DescribeLayers [Text]

-- | The stack ID.
dlStackId :: Lens' DescribeLayers (Maybe Text)

-- | Creates a value of <a>DescribeLayersResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dlrsLayers</a> - An array of <tt>Layer</tt> objects that
--   describe the layers.</li>
--   <li><a>dlrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeLayersResponse :: Int -> DescribeLayersResponse

-- | Contains the response to a <tt>DescribeLayers</tt> request.
--   
--   <i>See:</i> <a>describeLayersResponse</a> smart constructor.
data DescribeLayersResponse

-- | An array of <tt>Layer</tt> objects that describe the layers.
dlrsLayers :: Lens' DescribeLayersResponse [Layer]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dlrsResponseStatus :: Lens' DescribeLayersResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeLayers.DescribeLayersResponse
instance Data.Data.Data Network.AWS.OpsWorks.DescribeLayers.DescribeLayersResponse
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeLayers.DescribeLayersResponse
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeLayers.DescribeLayersResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeLayers.DescribeLayersResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeLayers.DescribeLayers
instance Data.Data.Data Network.AWS.OpsWorks.DescribeLayers.DescribeLayers
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeLayers.DescribeLayers
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeLayers.DescribeLayers
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeLayers.DescribeLayers
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.DescribeLayers.DescribeLayers
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.DescribeLayers.DescribeLayers
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeLayers.DescribeLayers
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.DescribeLayers.DescribeLayers
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.DescribeLayers.DescribeLayers
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.DescribeLayers.DescribeLayers
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.DescribeLayers.DescribeLayers
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeLayers.DescribeLayersResponse


-- | Requests a description of a set of instances.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Show, Deploy, or Manage permissions level for the stack, or an
--   attached policy that explicitly grants permissions. For more
--   information on user permissions, see <a>Managing User Permissions</a>
--   .
module Network.AWS.OpsWorks.DescribeInstances

-- | Creates a value of <a>DescribeInstances</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>diInstanceIds</a> - An array of instance IDs to be described.
--   If you use this parameter, <tt>DescribeInstances</tt> returns a
--   description of the specified instances. Otherwise, it returns a
--   description of every instance.</li>
--   <li><a>diStackId</a> - A stack ID. If you use this parameter,
--   <tt>DescribeInstances</tt> returns descriptions of the instances
--   associated with the specified stack.</li>
--   <li><a>diLayerId</a> - A layer ID. If you use this parameter,
--   <tt>DescribeInstances</tt> returns descriptions of the instances
--   associated with the specified layer.</li>
--   </ul>
describeInstances :: DescribeInstances

-- | <i>See:</i> <a>describeInstances</a> smart constructor.
data DescribeInstances

-- | An array of instance IDs to be described. If you use this parameter,
--   <tt>DescribeInstances</tt> returns a description of the specified
--   instances. Otherwise, it returns a description of every instance.
diInstanceIds :: Lens' DescribeInstances [Text]

-- | A stack ID. If you use this parameter, <tt>DescribeInstances</tt>
--   returns descriptions of the instances associated with the specified
--   stack.
diStackId :: Lens' DescribeInstances (Maybe Text)

-- | A layer ID. If you use this parameter, <tt>DescribeInstances</tt>
--   returns descriptions of the instances associated with the specified
--   layer.
diLayerId :: Lens' DescribeInstances (Maybe Text)

-- | Creates a value of <a>DescribeInstancesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dirsInstances</a> - An array of <tt>Instance</tt> objects that
--   describe the instances.</li>
--   <li><a>dirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeInstancesResponse :: Int -> DescribeInstancesResponse

-- | Contains the response to a <tt>DescribeInstances</tt> request.
--   
--   <i>See:</i> <a>describeInstancesResponse</a> smart constructor.
data DescribeInstancesResponse

-- | An array of <tt>Instance</tt> objects that describe the instances.
dirsInstances :: Lens' DescribeInstancesResponse [Instance]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dirsResponseStatus :: Lens' DescribeInstancesResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeInstances.DescribeInstancesResponse
instance Data.Data.Data Network.AWS.OpsWorks.DescribeInstances.DescribeInstancesResponse
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeInstances.DescribeInstancesResponse
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeInstances.DescribeInstancesResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeInstances.DescribeInstancesResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeInstances.DescribeInstances
instance Data.Data.Data Network.AWS.OpsWorks.DescribeInstances.DescribeInstances
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeInstances.DescribeInstances
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeInstances.DescribeInstances
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeInstances.DescribeInstances
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.DescribeInstances.DescribeInstances
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.DescribeInstances.DescribeInstances
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeInstances.DescribeInstances
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.DescribeInstances.DescribeInstances
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.DescribeInstances.DescribeInstances
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.DescribeInstances.DescribeInstances
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.DescribeInstances.DescribeInstances
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeInstances.DescribeInstancesResponse


-- | Describes a stack's Elastic Load Balancing instances.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Show, Deploy, or Manage permissions level for the stack, or an
--   attached policy that explicitly grants permissions. For more
--   information on user permissions, see <a>Managing User Permissions</a>
--   .
module Network.AWS.OpsWorks.DescribeElasticLoadBalancers

-- | Creates a value of <a>DescribeElasticLoadBalancers</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>delbLayerIds</a> - A list of layer IDs. The action describes
--   the Elastic Load Balancing instances for the specified layers.</li>
--   <li><a>delbStackId</a> - A stack ID. The action describes the stack's
--   Elastic Load Balancing instances.</li>
--   </ul>
describeElasticLoadBalancers :: DescribeElasticLoadBalancers

-- | <i>See:</i> <a>describeElasticLoadBalancers</a> smart constructor.
data DescribeElasticLoadBalancers

-- | A list of layer IDs. The action describes the Elastic Load Balancing
--   instances for the specified layers.
delbLayerIds :: Lens' DescribeElasticLoadBalancers [Text]

-- | A stack ID. The action describes the stack's Elastic Load Balancing
--   instances.
delbStackId :: Lens' DescribeElasticLoadBalancers (Maybe Text)

-- | Creates a value of <a>DescribeElasticLoadBalancersResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>delbrsElasticLoadBalancers</a> - A list of
--   <tt>ElasticLoadBalancer</tt> objects that describe the specified
--   Elastic Load Balancing instances.</li>
--   <li><a>delbrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeElasticLoadBalancersResponse :: Int -> DescribeElasticLoadBalancersResponse

-- | Contains the response to a <tt>DescribeElasticLoadBalancers</tt>
--   request.
--   
--   <i>See:</i> <a>describeElasticLoadBalancersResponse</a> smart
--   constructor.
data DescribeElasticLoadBalancersResponse

-- | A list of <tt>ElasticLoadBalancer</tt> objects that describe the
--   specified Elastic Load Balancing instances.
delbrsElasticLoadBalancers :: Lens' DescribeElasticLoadBalancersResponse [ElasticLoadBalancer]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
delbrsResponseStatus :: Lens' DescribeElasticLoadBalancersResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeElasticLoadBalancers.DescribeElasticLoadBalancersResponse
instance Data.Data.Data Network.AWS.OpsWorks.DescribeElasticLoadBalancers.DescribeElasticLoadBalancersResponse
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeElasticLoadBalancers.DescribeElasticLoadBalancersResponse
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeElasticLoadBalancers.DescribeElasticLoadBalancersResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeElasticLoadBalancers.DescribeElasticLoadBalancersResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeElasticLoadBalancers.DescribeElasticLoadBalancers
instance Data.Data.Data Network.AWS.OpsWorks.DescribeElasticLoadBalancers.DescribeElasticLoadBalancers
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeElasticLoadBalancers.DescribeElasticLoadBalancers
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeElasticLoadBalancers.DescribeElasticLoadBalancers
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeElasticLoadBalancers.DescribeElasticLoadBalancers
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.DescribeElasticLoadBalancers.DescribeElasticLoadBalancers
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.DescribeElasticLoadBalancers.DescribeElasticLoadBalancers
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeElasticLoadBalancers.DescribeElasticLoadBalancers
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.DescribeElasticLoadBalancers.DescribeElasticLoadBalancers
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.DescribeElasticLoadBalancers.DescribeElasticLoadBalancers
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.DescribeElasticLoadBalancers.DescribeElasticLoadBalancers
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.DescribeElasticLoadBalancers.DescribeElasticLoadBalancers
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeElasticLoadBalancers.DescribeElasticLoadBalancersResponse


-- | Describes <a>Elastic IP addresses</a> .
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Show, Deploy, or Manage permissions level for the stack, or an
--   attached policy that explicitly grants permissions. For more
--   information on user permissions, see <a>Managing User Permissions</a>
--   .
module Network.AWS.OpsWorks.DescribeElasticIPs

-- | Creates a value of <a>DescribeElasticIPs</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>deiInstanceId</a> - The instance ID. If you include this
--   parameter, <tt>DescribeElasticIps</tt> returns a description of the
--   Elastic IP addresses associated with the specified instance.</li>
--   <li><a>deiIPs</a> - An array of Elastic IP addresses to be described.
--   If you include this parameter, <tt>DescribeElasticIps</tt> returns a
--   description of the specified Elastic IP addresses. Otherwise, it
--   returns a description of every Elastic IP address.</li>
--   <li><a>deiStackId</a> - A stack ID. If you include this parameter,
--   <tt>DescribeElasticIps</tt> returns a description of the Elastic IP
--   addresses that are registered with the specified stack.</li>
--   </ul>
describeElasticIPs :: DescribeElasticIPs

-- | <i>See:</i> <a>describeElasticIPs</a> smart constructor.
data DescribeElasticIPs

-- | The instance ID. If you include this parameter,
--   <tt>DescribeElasticIps</tt> returns a description of the Elastic IP
--   addresses associated with the specified instance.
deiInstanceId :: Lens' DescribeElasticIPs (Maybe Text)

-- | An array of Elastic IP addresses to be described. If you include this
--   parameter, <tt>DescribeElasticIps</tt> returns a description of the
--   specified Elastic IP addresses. Otherwise, it returns a description of
--   every Elastic IP address.
deiIPs :: Lens' DescribeElasticIPs [Text]

-- | A stack ID. If you include this parameter, <tt>DescribeElasticIps</tt>
--   returns a description of the Elastic IP addresses that are registered
--   with the specified stack.
deiStackId :: Lens' DescribeElasticIPs (Maybe Text)

-- | Creates a value of <a>DescribeElasticIPsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>deirsElasticIPs</a> - An <tt>ElasticIps</tt> object that
--   describes the specified Elastic IP addresses.</li>
--   <li><a>deirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeElasticIPsResponse :: Int -> DescribeElasticIPsResponse

-- | Contains the response to a <tt>DescribeElasticIps</tt> request.
--   
--   <i>See:</i> <a>describeElasticIPsResponse</a> smart constructor.
data DescribeElasticIPsResponse

-- | An <tt>ElasticIps</tt> object that describes the specified Elastic IP
--   addresses.
deirsElasticIPs :: Lens' DescribeElasticIPsResponse [ElasticIP]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
deirsResponseStatus :: Lens' DescribeElasticIPsResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeElasticIPs.DescribeElasticIPsResponse
instance Data.Data.Data Network.AWS.OpsWorks.DescribeElasticIPs.DescribeElasticIPsResponse
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeElasticIPs.DescribeElasticIPsResponse
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeElasticIPs.DescribeElasticIPsResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeElasticIPs.DescribeElasticIPsResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeElasticIPs.DescribeElasticIPs
instance Data.Data.Data Network.AWS.OpsWorks.DescribeElasticIPs.DescribeElasticIPs
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeElasticIPs.DescribeElasticIPs
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeElasticIPs.DescribeElasticIPs
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeElasticIPs.DescribeElasticIPs
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.DescribeElasticIPs.DescribeElasticIPs
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.DescribeElasticIPs.DescribeElasticIPs
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeElasticIPs.DescribeElasticIPs
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.DescribeElasticIPs.DescribeElasticIPs
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.DescribeElasticIPs.DescribeElasticIPs
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.DescribeElasticIPs.DescribeElasticIPs
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.DescribeElasticIPs.DescribeElasticIPs
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeElasticIPs.DescribeElasticIPsResponse


-- | Describes Amazon ECS clusters that are registered with a stack. If you
--   specify only a stack ID, you can use the <tt>MaxResults</tt> and
--   <tt>NextToken</tt> parameters to paginate the response. However, AWS
--   OpsWorks currently supports only one cluster per layer, so the result
--   set has a maximum of one element.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Show, Deploy, or Manage permissions level for the stack or an
--   attached policy that explicitly grants permission. For more
--   information on user permissions, see <a>Managing User Permissions</a>
--   .
module Network.AWS.OpsWorks.DescribeEcsClusters

-- | Creates a value of <a>DescribeEcsClusters</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>decNextToken</a> - If the previous paginated request did not
--   return all of the remaining results, the response
--   object's<tt>NextToken</tt> parameter value is set to a token. To
--   retrieve the next set of results, call <tt>DescribeEcsClusters</tt>
--   again and assign that token to the request object's <tt>NextToken</tt>
--   parameter. If there are no remaining results, the previous response
--   object's <tt>NextToken</tt> parameter is set to <tt>null</tt> .</li>
--   <li><a>decStackId</a> - A stack ID. <tt>DescribeEcsClusters</tt>
--   returns a description of the cluster that is registered with the
--   stack.</li>
--   <li><a>decMaxResults</a> - To receive a paginated response, use this
--   parameter to specify the maximum number of results to be returned with
--   a single call. If the number of available results exceeds this
--   maximum, the response includes a <tt>NextToken</tt> value that you can
--   assign to the <tt>NextToken</tt> request parameter to get the next set
--   of results.</li>
--   <li><a>decEcsClusterARNs</a> - A list of ARNs, one for each cluster to
--   be described.</li>
--   </ul>
describeEcsClusters :: DescribeEcsClusters

-- | <i>See:</i> <a>describeEcsClusters</a> smart constructor.
data DescribeEcsClusters

-- | If the previous paginated request did not return all of the remaining
--   results, the response object's<tt>NextToken</tt> parameter value is
--   set to a token. To retrieve the next set of results, call
--   <tt>DescribeEcsClusters</tt> again and assign that token to the
--   request object's <tt>NextToken</tt> parameter. If there are no
--   remaining results, the previous response object's <tt>NextToken</tt>
--   parameter is set to <tt>null</tt> .
decNextToken :: Lens' DescribeEcsClusters (Maybe Text)

-- | A stack ID. <tt>DescribeEcsClusters</tt> returns a description of the
--   cluster that is registered with the stack.
decStackId :: Lens' DescribeEcsClusters (Maybe Text)

-- | To receive a paginated response, use this parameter to specify the
--   maximum number of results to be returned with a single call. If the
--   number of available results exceeds this maximum, the response
--   includes a <tt>NextToken</tt> value that you can assign to the
--   <tt>NextToken</tt> request parameter to get the next set of results.
decMaxResults :: Lens' DescribeEcsClusters (Maybe Int)

-- | A list of ARNs, one for each cluster to be described.
decEcsClusterARNs :: Lens' DescribeEcsClusters [Text]

-- | Creates a value of <a>DescribeEcsClustersResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>decrsNextToken</a> - If a paginated request does not return all
--   of the remaining results, this parameter is set to a token that you
--   can assign to the request object's <tt>NextToken</tt> parameter to
--   retrieve the next set of results. If the previous paginated request
--   returned all of the remaining results, this parameter is set to
--   <tt>null</tt> .</li>
--   <li><a>decrsEcsClusters</a> - A list of <tt>EcsCluster</tt> objects
--   containing the cluster descriptions.</li>
--   <li><a>decrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeEcsClustersResponse :: Int -> DescribeEcsClustersResponse

-- | Contains the response to a <tt>DescribeEcsClusters</tt> request.
--   
--   <i>See:</i> <a>describeEcsClustersResponse</a> smart constructor.
data DescribeEcsClustersResponse

-- | If a paginated request does not return all of the remaining results,
--   this parameter is set to a token that you can assign to the request
--   object's <tt>NextToken</tt> parameter to retrieve the next set of
--   results. If the previous paginated request returned all of the
--   remaining results, this parameter is set to <tt>null</tt> .
decrsNextToken :: Lens' DescribeEcsClustersResponse (Maybe Text)

-- | A list of <tt>EcsCluster</tt> objects containing the cluster
--   descriptions.
decrsEcsClusters :: Lens' DescribeEcsClustersResponse [EcsCluster]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
decrsResponseStatus :: Lens' DescribeEcsClustersResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeEcsClusters.DescribeEcsClustersResponse
instance Data.Data.Data Network.AWS.OpsWorks.DescribeEcsClusters.DescribeEcsClustersResponse
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeEcsClusters.DescribeEcsClustersResponse
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeEcsClusters.DescribeEcsClustersResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeEcsClusters.DescribeEcsClustersResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeEcsClusters.DescribeEcsClusters
instance Data.Data.Data Network.AWS.OpsWorks.DescribeEcsClusters.DescribeEcsClusters
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeEcsClusters.DescribeEcsClusters
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeEcsClusters.DescribeEcsClusters
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeEcsClusters.DescribeEcsClusters
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.DescribeEcsClusters.DescribeEcsClusters
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.DescribeEcsClusters.DescribeEcsClusters
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeEcsClusters.DescribeEcsClusters
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.DescribeEcsClusters.DescribeEcsClusters
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.DescribeEcsClusters.DescribeEcsClusters
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.DescribeEcsClusters.DescribeEcsClusters
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.DescribeEcsClusters.DescribeEcsClusters
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeEcsClusters.DescribeEcsClustersResponse


-- | Requests a description of a specified set of deployments.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Show, Deploy, or Manage permissions level for the stack, or an
--   attached policy that explicitly grants permissions. For more
--   information on user permissions, see <a>Managing User Permissions</a>
--   .
module Network.AWS.OpsWorks.DescribeDeployments

-- | Creates a value of <a>DescribeDeployments</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ddAppId</a> - The app ID. If you include this parameter,
--   <tt>DescribeDeployments</tt> returns a description of the commands
--   associated with the specified app.</li>
--   <li><a>ddDeploymentIds</a> - An array of deployment IDs to be
--   described. If you include this parameter, <tt>DescribeDeployments</tt>
--   returns a description of the specified deployments. Otherwise, it
--   returns a description of every deployment.</li>
--   <li><a>ddStackId</a> - The stack ID. If you include this parameter,
--   <tt>DescribeDeployments</tt> returns a description of the commands
--   associated with the specified stack.</li>
--   </ul>
describeDeployments :: DescribeDeployments

-- | <i>See:</i> <a>describeDeployments</a> smart constructor.
data DescribeDeployments

-- | The app ID. If you include this parameter,
--   <tt>DescribeDeployments</tt> returns a description of the commands
--   associated with the specified app.
ddAppId :: Lens' DescribeDeployments (Maybe Text)

-- | An array of deployment IDs to be described. If you include this
--   parameter, <tt>DescribeDeployments</tt> returns a description of the
--   specified deployments. Otherwise, it returns a description of every
--   deployment.
ddDeploymentIds :: Lens' DescribeDeployments [Text]

-- | The stack ID. If you include this parameter,
--   <tt>DescribeDeployments</tt> returns a description of the commands
--   associated with the specified stack.
ddStackId :: Lens' DescribeDeployments (Maybe Text)

-- | Creates a value of <a>DescribeDeploymentsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ddrsDeployments</a> - An array of <tt>Deployment</tt> objects
--   that describe the deployments.</li>
--   <li><a>ddrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeDeploymentsResponse :: Int -> DescribeDeploymentsResponse

-- | Contains the response to a <tt>DescribeDeployments</tt> request.
--   
--   <i>See:</i> <a>describeDeploymentsResponse</a> smart constructor.
data DescribeDeploymentsResponse

-- | An array of <tt>Deployment</tt> objects that describe the deployments.
ddrsDeployments :: Lens' DescribeDeploymentsResponse [Deployment]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ddrsResponseStatus :: Lens' DescribeDeploymentsResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeDeployments.DescribeDeploymentsResponse
instance Data.Data.Data Network.AWS.OpsWorks.DescribeDeployments.DescribeDeploymentsResponse
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeDeployments.DescribeDeploymentsResponse
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeDeployments.DescribeDeploymentsResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeDeployments.DescribeDeploymentsResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeDeployments.DescribeDeployments
instance Data.Data.Data Network.AWS.OpsWorks.DescribeDeployments.DescribeDeployments
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeDeployments.DescribeDeployments
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeDeployments.DescribeDeployments
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeDeployments.DescribeDeployments
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.DescribeDeployments.DescribeDeployments
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.DescribeDeployments.DescribeDeployments
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeDeployments.DescribeDeployments
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.DescribeDeployments.DescribeDeployments
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.DescribeDeployments.DescribeDeployments
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.DescribeDeployments.DescribeDeployments
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.DescribeDeployments.DescribeDeployments
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeDeployments.DescribeDeploymentsResponse


-- | Describes the results of specified commands.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Show, Deploy, or Manage permissions level for the stack, or an
--   attached policy that explicitly grants permissions. For more
--   information on user permissions, see <a>Managing User Permissions</a>
--   .
module Network.AWS.OpsWorks.DescribeCommands

-- | Creates a value of <a>DescribeCommands</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcDeploymentId</a> - The deployment ID. If you include this
--   parameter, <tt>DescribeCommands</tt> returns a description of the
--   commands associated with the specified deployment.</li>
--   <li><a>dcInstanceId</a> - The instance ID. If you include this
--   parameter, <tt>DescribeCommands</tt> returns a description of the
--   commands associated with the specified instance.</li>
--   <li><a>dcCommandIds</a> - An array of command IDs. If you include this
--   parameter, <tt>DescribeCommands</tt> returns a description of the
--   specified commands. Otherwise, it returns a description of every
--   command.</li>
--   </ul>
describeCommands :: DescribeCommands

-- | <i>See:</i> <a>describeCommands</a> smart constructor.
data DescribeCommands

-- | The deployment ID. If you include this parameter,
--   <tt>DescribeCommands</tt> returns a description of the commands
--   associated with the specified deployment.
dcDeploymentId :: Lens' DescribeCommands (Maybe Text)

-- | The instance ID. If you include this parameter,
--   <tt>DescribeCommands</tt> returns a description of the commands
--   associated with the specified instance.
dcInstanceId :: Lens' DescribeCommands (Maybe Text)

-- | An array of command IDs. If you include this parameter,
--   <tt>DescribeCommands</tt> returns a description of the specified
--   commands. Otherwise, it returns a description of every command.
dcCommandIds :: Lens' DescribeCommands [Text]

-- | Creates a value of <a>DescribeCommandsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcrsCommands</a> - An array of <tt>Command</tt> objects that
--   describe each of the specified commands.</li>
--   <li><a>dcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeCommandsResponse :: Int -> DescribeCommandsResponse

-- | Contains the response to a <tt>DescribeCommands</tt> request.
--   
--   <i>See:</i> <a>describeCommandsResponse</a> smart constructor.
data DescribeCommandsResponse

-- | An array of <tt>Command</tt> objects that describe each of the
--   specified commands.
dcrsCommands :: Lens' DescribeCommandsResponse [Command]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dcrsResponseStatus :: Lens' DescribeCommandsResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeCommands.DescribeCommandsResponse
instance Data.Data.Data Network.AWS.OpsWorks.DescribeCommands.DescribeCommandsResponse
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeCommands.DescribeCommandsResponse
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeCommands.DescribeCommandsResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeCommands.DescribeCommandsResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeCommands.DescribeCommands
instance Data.Data.Data Network.AWS.OpsWorks.DescribeCommands.DescribeCommands
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeCommands.DescribeCommands
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeCommands.DescribeCommands
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeCommands.DescribeCommands
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.DescribeCommands.DescribeCommands
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.DescribeCommands.DescribeCommands
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeCommands.DescribeCommands
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.DescribeCommands.DescribeCommands
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.DescribeCommands.DescribeCommands
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.DescribeCommands.DescribeCommands
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.DescribeCommands.DescribeCommands
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeCommands.DescribeCommandsResponse


-- | Requests a description of a specified set of apps.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Show, Deploy, or Manage permissions level for the stack, or an
--   attached policy that explicitly grants permissions. For more
--   information on user permissions, see <a>Managing User Permissions</a>
--   .
module Network.AWS.OpsWorks.DescribeApps

-- | Creates a value of <a>DescribeApps</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>daAppIds</a> - An array of app IDs for the apps to be
--   described. If you use this parameter, <tt>DescribeApps</tt> returns a
--   description of the specified apps. Otherwise, it returns a description
--   of every app.</li>
--   <li><a>daStackId</a> - The app stack ID. If you use this parameter,
--   <tt>DescribeApps</tt> returns a description of the apps in the
--   specified stack.</li>
--   </ul>
describeApps :: DescribeApps

-- | <i>See:</i> <a>describeApps</a> smart constructor.
data DescribeApps

-- | An array of app IDs for the apps to be described. If you use this
--   parameter, <tt>DescribeApps</tt> returns a description of the
--   specified apps. Otherwise, it returns a description of every app.
daAppIds :: Lens' DescribeApps [Text]

-- | The app stack ID. If you use this parameter, <tt>DescribeApps</tt>
--   returns a description of the apps in the specified stack.
daStackId :: Lens' DescribeApps (Maybe Text)

-- | Creates a value of <a>DescribeAppsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>darsApps</a> - An array of <tt>App</tt> objects that describe
--   the specified apps.</li>
--   <li><a>darsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeAppsResponse :: Int -> DescribeAppsResponse

-- | Contains the response to a <tt>DescribeApps</tt> request.
--   
--   <i>See:</i> <a>describeAppsResponse</a> smart constructor.
data DescribeAppsResponse

-- | An array of <tt>App</tt> objects that describe the specified apps.
darsApps :: Lens' DescribeAppsResponse [App]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
darsResponseStatus :: Lens' DescribeAppsResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeApps.DescribeAppsResponse
instance Data.Data.Data Network.AWS.OpsWorks.DescribeApps.DescribeAppsResponse
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeApps.DescribeAppsResponse
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeApps.DescribeAppsResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeApps.DescribeAppsResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeApps.DescribeApps
instance Data.Data.Data Network.AWS.OpsWorks.DescribeApps.DescribeApps
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeApps.DescribeApps
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeApps.DescribeApps
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeApps.DescribeApps
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.DescribeApps.DescribeApps
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.DescribeApps.DescribeApps
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeApps.DescribeApps
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.DescribeApps.DescribeApps
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.DescribeApps.DescribeApps
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.DescribeApps.DescribeApps
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.DescribeApps.DescribeApps
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeApps.DescribeAppsResponse


module Network.AWS.OpsWorks.Waiters

-- | Polls <a>DescribeInstances</a> every 15 seconds until a successful
--   state is reached. An error is returned after 40 failed checks.
instanceTerminated :: Wait DescribeInstances

-- | Polls <a>DescribeDeployments</a> every 15 seconds until a successful
--   state is reached. An error is returned after 40 failed checks.
deploymentSuccessful :: Wait DescribeDeployments

-- | Polls <a>DescribeInstances</a> every 15 seconds until a successful
--   state is reached. An error is returned after 40 failed checks.
instanceStopped :: Wait DescribeInstances

-- | Polls <a>DescribeInstances</a> every 15 seconds until a successful
--   state is reached. An error is returned after 40 failed checks.
instanceOnline :: Wait DescribeInstances

-- | Polls <a>DescribeApps</a> every 1 seconds until a successful state is
--   reached. An error is returned after 40 failed checks.
appExists :: Wait DescribeApps

-- | Polls <a>DescribeInstances</a> every 15 seconds until a successful
--   state is reached. An error is returned after 40 failed checks.
instanceRegistered :: Wait DescribeInstances


-- | Describes the available AWS OpsWorks agent versions. You must specify
--   a stack ID or a configuration manager. <tt>DescribeAgentVersions</tt>
--   returns a list of available agent versions for the specified stack or
--   configuration manager.
module Network.AWS.OpsWorks.DescribeAgentVersions

-- | Creates a value of <a>DescribeAgentVersions</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>davConfigurationManager</a> - The configuration manager.</li>
--   <li><a>davStackId</a> - The stack ID.</li>
--   </ul>
describeAgentVersions :: DescribeAgentVersions

-- | <i>See:</i> <a>describeAgentVersions</a> smart constructor.
data DescribeAgentVersions

-- | The configuration manager.
davConfigurationManager :: Lens' DescribeAgentVersions (Maybe StackConfigurationManager)

-- | The stack ID.
davStackId :: Lens' DescribeAgentVersions (Maybe Text)

-- | Creates a value of <a>DescribeAgentVersionsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>davrsAgentVersions</a> - The agent versions for the specified
--   stack or configuration manager. Note that this value is the complete
--   version number, not the abbreviated number used by the console.</li>
--   <li><a>davrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeAgentVersionsResponse :: Int -> DescribeAgentVersionsResponse

-- | Contains the response to a <tt>DescribeAgentVersions</tt> request.
--   
--   <i>See:</i> <a>describeAgentVersionsResponse</a> smart constructor.
data DescribeAgentVersionsResponse

-- | The agent versions for the specified stack or configuration manager.
--   Note that this value is the complete version number, not the
--   abbreviated number used by the console.
davrsAgentVersions :: Lens' DescribeAgentVersionsResponse [AgentVersion]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
davrsResponseStatus :: Lens' DescribeAgentVersionsResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeAgentVersions.DescribeAgentVersionsResponse
instance Data.Data.Data Network.AWS.OpsWorks.DescribeAgentVersions.DescribeAgentVersionsResponse
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeAgentVersions.DescribeAgentVersionsResponse
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeAgentVersions.DescribeAgentVersionsResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeAgentVersions.DescribeAgentVersionsResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DescribeAgentVersions.DescribeAgentVersions
instance Data.Data.Data Network.AWS.OpsWorks.DescribeAgentVersions.DescribeAgentVersions
instance GHC.Show.Show Network.AWS.OpsWorks.DescribeAgentVersions.DescribeAgentVersions
instance GHC.Read.Read Network.AWS.OpsWorks.DescribeAgentVersions.DescribeAgentVersions
instance GHC.Classes.Eq Network.AWS.OpsWorks.DescribeAgentVersions.DescribeAgentVersions
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.DescribeAgentVersions.DescribeAgentVersions
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.DescribeAgentVersions.DescribeAgentVersions
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeAgentVersions.DescribeAgentVersions
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.DescribeAgentVersions.DescribeAgentVersions
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.DescribeAgentVersions.DescribeAgentVersions
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.DescribeAgentVersions.DescribeAgentVersions
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.DescribeAgentVersions.DescribeAgentVersions
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DescribeAgentVersions.DescribeAgentVersionsResponse


-- | Deregisters an Amazon EBS volume. The volume can then be registered by
--   another stack. For more information, see <a>Resource Management</a> .
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.DeregisterVolume

-- | Creates a value of <a>DeregisterVolume</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvVolumeId</a> - The AWS OpsWorks volume ID, which is the GUID
--   that AWS OpsWorks assigned to the instance when you registered the
--   volume with the stack, not the Amazon EC2 volume ID.</li>
--   </ul>
deregisterVolume :: Text -> DeregisterVolume

-- | <i>See:</i> <a>deregisterVolume</a> smart constructor.
data DeregisterVolume

-- | The AWS OpsWorks volume ID, which is the GUID that AWS OpsWorks
--   assigned to the instance when you registered the volume with the
--   stack, not the Amazon EC2 volume ID.
dvVolumeId :: Lens' DeregisterVolume Text

-- | Creates a value of <a>DeregisterVolumeResponse</a> with the minimum
--   fields required to make a request.
deregisterVolumeResponse :: DeregisterVolumeResponse

-- | <i>See:</i> <a>deregisterVolumeResponse</a> smart constructor.
data DeregisterVolumeResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DeregisterVolume.DeregisterVolumeResponse
instance Data.Data.Data Network.AWS.OpsWorks.DeregisterVolume.DeregisterVolumeResponse
instance GHC.Show.Show Network.AWS.OpsWorks.DeregisterVolume.DeregisterVolumeResponse
instance GHC.Read.Read Network.AWS.OpsWorks.DeregisterVolume.DeregisterVolumeResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.DeregisterVolume.DeregisterVolumeResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DeregisterVolume.DeregisterVolume
instance Data.Data.Data Network.AWS.OpsWorks.DeregisterVolume.DeregisterVolume
instance GHC.Show.Show Network.AWS.OpsWorks.DeregisterVolume.DeregisterVolume
instance GHC.Read.Read Network.AWS.OpsWorks.DeregisterVolume.DeregisterVolume
instance GHC.Classes.Eq Network.AWS.OpsWorks.DeregisterVolume.DeregisterVolume
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.DeregisterVolume.DeregisterVolume
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.DeregisterVolume.DeregisterVolume
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DeregisterVolume.DeregisterVolume
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.DeregisterVolume.DeregisterVolume
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.DeregisterVolume.DeregisterVolume
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.DeregisterVolume.DeregisterVolume
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.DeregisterVolume.DeregisterVolume
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DeregisterVolume.DeregisterVolumeResponse


-- | Deregisters an Amazon RDS instance.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.DeregisterRDSDBInstance

-- | Creates a value of <a>DeregisterRDSDBInstance</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drdiRDSDBInstanceARN</a> - The Amazon RDS instance's ARN.</li>
--   </ul>
deregisterRDSDBInstance :: Text -> DeregisterRDSDBInstance

-- | <i>See:</i> <a>deregisterRDSDBInstance</a> smart constructor.
data DeregisterRDSDBInstance

-- | The Amazon RDS instance's ARN.
drdiRDSDBInstanceARN :: Lens' DeregisterRDSDBInstance Text

-- | Creates a value of <a>DeregisterRDSDBInstanceResponse</a> with the
--   minimum fields required to make a request.
deregisterRDSDBInstanceResponse :: DeregisterRDSDBInstanceResponse

-- | <i>See:</i> <a>deregisterRDSDBInstanceResponse</a> smart constructor.
data DeregisterRDSDBInstanceResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DeregisterRDSDBInstance.DeregisterRDSDBInstanceResponse
instance Data.Data.Data Network.AWS.OpsWorks.DeregisterRDSDBInstance.DeregisterRDSDBInstanceResponse
instance GHC.Show.Show Network.AWS.OpsWorks.DeregisterRDSDBInstance.DeregisterRDSDBInstanceResponse
instance GHC.Read.Read Network.AWS.OpsWorks.DeregisterRDSDBInstance.DeregisterRDSDBInstanceResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.DeregisterRDSDBInstance.DeregisterRDSDBInstanceResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DeregisterRDSDBInstance.DeregisterRDSDBInstance
instance Data.Data.Data Network.AWS.OpsWorks.DeregisterRDSDBInstance.DeregisterRDSDBInstance
instance GHC.Show.Show Network.AWS.OpsWorks.DeregisterRDSDBInstance.DeregisterRDSDBInstance
instance GHC.Read.Read Network.AWS.OpsWorks.DeregisterRDSDBInstance.DeregisterRDSDBInstance
instance GHC.Classes.Eq Network.AWS.OpsWorks.DeregisterRDSDBInstance.DeregisterRDSDBInstance
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.DeregisterRDSDBInstance.DeregisterRDSDBInstance
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.DeregisterRDSDBInstance.DeregisterRDSDBInstance
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DeregisterRDSDBInstance.DeregisterRDSDBInstance
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.DeregisterRDSDBInstance.DeregisterRDSDBInstance
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.DeregisterRDSDBInstance.DeregisterRDSDBInstance
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.DeregisterRDSDBInstance.DeregisterRDSDBInstance
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.DeregisterRDSDBInstance.DeregisterRDSDBInstance
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DeregisterRDSDBInstance.DeregisterRDSDBInstanceResponse


-- | Deregister a registered Amazon EC2 or on-premises instance. This
--   action removes the instance from the stack and returns it to your
--   control. This action can not be used with instances that were created
--   with AWS OpsWorks.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.DeregisterInstance

-- | Creates a value of <a>DeregisterInstance</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dInstanceId</a> - The instance ID.</li>
--   </ul>
deregisterInstance :: Text -> DeregisterInstance

-- | <i>See:</i> <a>deregisterInstance</a> smart constructor.
data DeregisterInstance

-- | The instance ID.
dInstanceId :: Lens' DeregisterInstance Text

-- | Creates a value of <a>DeregisterInstanceResponse</a> with the minimum
--   fields required to make a request.
deregisterInstanceResponse :: DeregisterInstanceResponse

-- | <i>See:</i> <a>deregisterInstanceResponse</a> smart constructor.
data DeregisterInstanceResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DeregisterInstance.DeregisterInstanceResponse
instance Data.Data.Data Network.AWS.OpsWorks.DeregisterInstance.DeregisterInstanceResponse
instance GHC.Show.Show Network.AWS.OpsWorks.DeregisterInstance.DeregisterInstanceResponse
instance GHC.Read.Read Network.AWS.OpsWorks.DeregisterInstance.DeregisterInstanceResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.DeregisterInstance.DeregisterInstanceResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DeregisterInstance.DeregisterInstance
instance Data.Data.Data Network.AWS.OpsWorks.DeregisterInstance.DeregisterInstance
instance GHC.Show.Show Network.AWS.OpsWorks.DeregisterInstance.DeregisterInstance
instance GHC.Read.Read Network.AWS.OpsWorks.DeregisterInstance.DeregisterInstance
instance GHC.Classes.Eq Network.AWS.OpsWorks.DeregisterInstance.DeregisterInstance
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.DeregisterInstance.DeregisterInstance
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.DeregisterInstance.DeregisterInstance
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DeregisterInstance.DeregisterInstance
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.DeregisterInstance.DeregisterInstance
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.DeregisterInstance.DeregisterInstance
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.DeregisterInstance.DeregisterInstance
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.DeregisterInstance.DeregisterInstance
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DeregisterInstance.DeregisterInstanceResponse


-- | Deregisters a specified Elastic IP address. The address can then be
--   registered by another stack. For more information, see <a>Resource
--   Management</a> .
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.DeregisterElasticIP

-- | Creates a value of <a>DeregisterElasticIP</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>deipElasticIP</a> - The Elastic IP address.</li>
--   </ul>
deregisterElasticIP :: Text -> DeregisterElasticIP

-- | <i>See:</i> <a>deregisterElasticIP</a> smart constructor.
data DeregisterElasticIP

-- | The Elastic IP address.
deipElasticIP :: Lens' DeregisterElasticIP Text

-- | Creates a value of <a>DeregisterElasticIPResponse</a> with the minimum
--   fields required to make a request.
deregisterElasticIPResponse :: DeregisterElasticIPResponse

-- | <i>See:</i> <a>deregisterElasticIPResponse</a> smart constructor.
data DeregisterElasticIPResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DeregisterElasticIP.DeregisterElasticIPResponse
instance Data.Data.Data Network.AWS.OpsWorks.DeregisterElasticIP.DeregisterElasticIPResponse
instance GHC.Show.Show Network.AWS.OpsWorks.DeregisterElasticIP.DeregisterElasticIPResponse
instance GHC.Read.Read Network.AWS.OpsWorks.DeregisterElasticIP.DeregisterElasticIPResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.DeregisterElasticIP.DeregisterElasticIPResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DeregisterElasticIP.DeregisterElasticIP
instance Data.Data.Data Network.AWS.OpsWorks.DeregisterElasticIP.DeregisterElasticIP
instance GHC.Show.Show Network.AWS.OpsWorks.DeregisterElasticIP.DeregisterElasticIP
instance GHC.Read.Read Network.AWS.OpsWorks.DeregisterElasticIP.DeregisterElasticIP
instance GHC.Classes.Eq Network.AWS.OpsWorks.DeregisterElasticIP.DeregisterElasticIP
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.DeregisterElasticIP.DeregisterElasticIP
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.DeregisterElasticIP.DeregisterElasticIP
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DeregisterElasticIP.DeregisterElasticIP
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.DeregisterElasticIP.DeregisterElasticIP
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.DeregisterElasticIP.DeregisterElasticIP
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.DeregisterElasticIP.DeregisterElasticIP
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.DeregisterElasticIP.DeregisterElasticIP
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DeregisterElasticIP.DeregisterElasticIPResponse


-- | Deregisters a specified Amazon ECS cluster from a stack. For more
--   information, see <a>Resource Management</a> .
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see
--   <a>http://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html</a>
--   .
module Network.AWS.OpsWorks.DeregisterEcsCluster

-- | Creates a value of <a>DeregisterEcsCluster</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>decEcsClusterARN</a> - The cluster's ARN.</li>
--   </ul>
deregisterEcsCluster :: Text -> DeregisterEcsCluster

-- | <i>See:</i> <a>deregisterEcsCluster</a> smart constructor.
data DeregisterEcsCluster

-- | The cluster's ARN.
decEcsClusterARN :: Lens' DeregisterEcsCluster Text

-- | Creates a value of <a>DeregisterEcsClusterResponse</a> with the
--   minimum fields required to make a request.
deregisterEcsClusterResponse :: DeregisterEcsClusterResponse

-- | <i>See:</i> <a>deregisterEcsClusterResponse</a> smart constructor.
data DeregisterEcsClusterResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DeregisterEcsCluster.DeregisterEcsClusterResponse
instance Data.Data.Data Network.AWS.OpsWorks.DeregisterEcsCluster.DeregisterEcsClusterResponse
instance GHC.Show.Show Network.AWS.OpsWorks.DeregisterEcsCluster.DeregisterEcsClusterResponse
instance GHC.Read.Read Network.AWS.OpsWorks.DeregisterEcsCluster.DeregisterEcsClusterResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.DeregisterEcsCluster.DeregisterEcsClusterResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DeregisterEcsCluster.DeregisterEcsCluster
instance Data.Data.Data Network.AWS.OpsWorks.DeregisterEcsCluster.DeregisterEcsCluster
instance GHC.Show.Show Network.AWS.OpsWorks.DeregisterEcsCluster.DeregisterEcsCluster
instance GHC.Read.Read Network.AWS.OpsWorks.DeregisterEcsCluster.DeregisterEcsCluster
instance GHC.Classes.Eq Network.AWS.OpsWorks.DeregisterEcsCluster.DeregisterEcsCluster
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.DeregisterEcsCluster.DeregisterEcsCluster
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.DeregisterEcsCluster.DeregisterEcsCluster
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DeregisterEcsCluster.DeregisterEcsCluster
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.DeregisterEcsCluster.DeregisterEcsCluster
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.DeregisterEcsCluster.DeregisterEcsCluster
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.DeregisterEcsCluster.DeregisterEcsCluster
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.DeregisterEcsCluster.DeregisterEcsCluster
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DeregisterEcsCluster.DeregisterEcsClusterResponse


-- | Deletes a user profile.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have an attached policy that explicitly grants permissions. For more
--   information on user permissions, see <a>Managing User Permissions</a>
--   .
module Network.AWS.OpsWorks.DeleteUserProfile

-- | Creates a value of <a>DeleteUserProfile</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dupIAMUserARN</a> - The user's IAM ARN. This can also be a
--   federated user's ARN.</li>
--   </ul>
deleteUserProfile :: Text -> DeleteUserProfile

-- | <i>See:</i> <a>deleteUserProfile</a> smart constructor.
data DeleteUserProfile

-- | The user's IAM ARN. This can also be a federated user's ARN.
dupIAMUserARN :: Lens' DeleteUserProfile Text

-- | Creates a value of <a>DeleteUserProfileResponse</a> with the minimum
--   fields required to make a request.
deleteUserProfileResponse :: DeleteUserProfileResponse

-- | <i>See:</i> <a>deleteUserProfileResponse</a> smart constructor.
data DeleteUserProfileResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DeleteUserProfile.DeleteUserProfileResponse
instance Data.Data.Data Network.AWS.OpsWorks.DeleteUserProfile.DeleteUserProfileResponse
instance GHC.Show.Show Network.AWS.OpsWorks.DeleteUserProfile.DeleteUserProfileResponse
instance GHC.Read.Read Network.AWS.OpsWorks.DeleteUserProfile.DeleteUserProfileResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.DeleteUserProfile.DeleteUserProfileResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DeleteUserProfile.DeleteUserProfile
instance Data.Data.Data Network.AWS.OpsWorks.DeleteUserProfile.DeleteUserProfile
instance GHC.Show.Show Network.AWS.OpsWorks.DeleteUserProfile.DeleteUserProfile
instance GHC.Read.Read Network.AWS.OpsWorks.DeleteUserProfile.DeleteUserProfile
instance GHC.Classes.Eq Network.AWS.OpsWorks.DeleteUserProfile.DeleteUserProfile
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.DeleteUserProfile.DeleteUserProfile
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.DeleteUserProfile.DeleteUserProfile
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DeleteUserProfile.DeleteUserProfile
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.DeleteUserProfile.DeleteUserProfile
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.DeleteUserProfile.DeleteUserProfile
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.DeleteUserProfile.DeleteUserProfile
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.DeleteUserProfile.DeleteUserProfile
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DeleteUserProfile.DeleteUserProfileResponse


-- | Deletes a specified stack. You must first delete all instances,
--   layers, and apps or deregister registered instances. For more
--   information, see <a>Shut Down a Stack</a> .
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.DeleteStack

-- | Creates a value of <a>DeleteStack</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsStackId</a> - The stack ID.</li>
--   </ul>
deleteStack :: Text -> DeleteStack

-- | <i>See:</i> <a>deleteStack</a> smart constructor.
data DeleteStack

-- | The stack ID.
dsStackId :: Lens' DeleteStack Text

-- | Creates a value of <a>DeleteStackResponse</a> with the minimum fields
--   required to make a request.
deleteStackResponse :: DeleteStackResponse

-- | <i>See:</i> <a>deleteStackResponse</a> smart constructor.
data DeleteStackResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DeleteStack.DeleteStackResponse
instance Data.Data.Data Network.AWS.OpsWorks.DeleteStack.DeleteStackResponse
instance GHC.Show.Show Network.AWS.OpsWorks.DeleteStack.DeleteStackResponse
instance GHC.Read.Read Network.AWS.OpsWorks.DeleteStack.DeleteStackResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.DeleteStack.DeleteStackResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DeleteStack.DeleteStack
instance Data.Data.Data Network.AWS.OpsWorks.DeleteStack.DeleteStack
instance GHC.Show.Show Network.AWS.OpsWorks.DeleteStack.DeleteStack
instance GHC.Read.Read Network.AWS.OpsWorks.DeleteStack.DeleteStack
instance GHC.Classes.Eq Network.AWS.OpsWorks.DeleteStack.DeleteStack
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.DeleteStack.DeleteStack
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.DeleteStack.DeleteStack
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DeleteStack.DeleteStack
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.DeleteStack.DeleteStack
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.DeleteStack.DeleteStack
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.DeleteStack.DeleteStack
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.DeleteStack.DeleteStack
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DeleteStack.DeleteStackResponse


-- | Deletes a specified layer. You must first stop and then delete all
--   associated instances or unassign registered instances. For more
--   information, see <a>How to Delete a Layer</a> .
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.DeleteLayer

-- | Creates a value of <a>DeleteLayer</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dlLayerId</a> - The layer ID.</li>
--   </ul>
deleteLayer :: Text -> DeleteLayer

-- | <i>See:</i> <a>deleteLayer</a> smart constructor.
data DeleteLayer

-- | The layer ID.
dlLayerId :: Lens' DeleteLayer Text

-- | Creates a value of <a>DeleteLayerResponse</a> with the minimum fields
--   required to make a request.
deleteLayerResponse :: DeleteLayerResponse

-- | <i>See:</i> <a>deleteLayerResponse</a> smart constructor.
data DeleteLayerResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DeleteLayer.DeleteLayerResponse
instance Data.Data.Data Network.AWS.OpsWorks.DeleteLayer.DeleteLayerResponse
instance GHC.Show.Show Network.AWS.OpsWorks.DeleteLayer.DeleteLayerResponse
instance GHC.Read.Read Network.AWS.OpsWorks.DeleteLayer.DeleteLayerResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.DeleteLayer.DeleteLayerResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DeleteLayer.DeleteLayer
instance Data.Data.Data Network.AWS.OpsWorks.DeleteLayer.DeleteLayer
instance GHC.Show.Show Network.AWS.OpsWorks.DeleteLayer.DeleteLayer
instance GHC.Read.Read Network.AWS.OpsWorks.DeleteLayer.DeleteLayer
instance GHC.Classes.Eq Network.AWS.OpsWorks.DeleteLayer.DeleteLayer
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.DeleteLayer.DeleteLayer
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.DeleteLayer.DeleteLayer
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DeleteLayer.DeleteLayer
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.DeleteLayer.DeleteLayer
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.DeleteLayer.DeleteLayer
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.DeleteLayer.DeleteLayer
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.DeleteLayer.DeleteLayer
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DeleteLayer.DeleteLayerResponse


-- | Deletes a specified instance, which terminates the associated Amazon
--   EC2 instance. You must stop an instance before you can delete it.
--   
--   For more information, see <a>Deleting Instances</a> .
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.DeleteInstance

-- | Creates a value of <a>DeleteInstance</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>diDeleteVolumes</a> - Whether to delete the instance's Amazon
--   EBS volumes.</li>
--   <li><a>diDeleteElasticIP</a> - Whether to delete the instance Elastic
--   IP address.</li>
--   <li><a>diInstanceId</a> - The instance ID.</li>
--   </ul>
deleteInstance :: Text -> DeleteInstance

-- | <i>See:</i> <a>deleteInstance</a> smart constructor.
data DeleteInstance

-- | Whether to delete the instance's Amazon EBS volumes.
diDeleteVolumes :: Lens' DeleteInstance (Maybe Bool)

-- | Whether to delete the instance Elastic IP address.
diDeleteElasticIP :: Lens' DeleteInstance (Maybe Bool)

-- | The instance ID.
diInstanceId :: Lens' DeleteInstance Text

-- | Creates a value of <a>DeleteInstanceResponse</a> with the minimum
--   fields required to make a request.
deleteInstanceResponse :: DeleteInstanceResponse

-- | <i>See:</i> <a>deleteInstanceResponse</a> smart constructor.
data DeleteInstanceResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DeleteInstance.DeleteInstanceResponse
instance Data.Data.Data Network.AWS.OpsWorks.DeleteInstance.DeleteInstanceResponse
instance GHC.Show.Show Network.AWS.OpsWorks.DeleteInstance.DeleteInstanceResponse
instance GHC.Read.Read Network.AWS.OpsWorks.DeleteInstance.DeleteInstanceResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.DeleteInstance.DeleteInstanceResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DeleteInstance.DeleteInstance
instance Data.Data.Data Network.AWS.OpsWorks.DeleteInstance.DeleteInstance
instance GHC.Show.Show Network.AWS.OpsWorks.DeleteInstance.DeleteInstance
instance GHC.Read.Read Network.AWS.OpsWorks.DeleteInstance.DeleteInstance
instance GHC.Classes.Eq Network.AWS.OpsWorks.DeleteInstance.DeleteInstance
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.DeleteInstance.DeleteInstance
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.DeleteInstance.DeleteInstance
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DeleteInstance.DeleteInstance
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.DeleteInstance.DeleteInstance
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.DeleteInstance.DeleteInstance
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.DeleteInstance.DeleteInstance
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.DeleteInstance.DeleteInstance
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DeleteInstance.DeleteInstanceResponse


-- | Deletes a specified app.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.DeleteApp

-- | Creates a value of <a>DeleteApp</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>daAppId</a> - The app ID.</li>
--   </ul>
deleteApp :: Text -> DeleteApp

-- | <i>See:</i> <a>deleteApp</a> smart constructor.
data DeleteApp

-- | The app ID.
daAppId :: Lens' DeleteApp Text

-- | Creates a value of <a>DeleteAppResponse</a> with the minimum fields
--   required to make a request.
deleteAppResponse :: DeleteAppResponse

-- | <i>See:</i> <a>deleteAppResponse</a> smart constructor.
data DeleteAppResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DeleteApp.DeleteAppResponse
instance Data.Data.Data Network.AWS.OpsWorks.DeleteApp.DeleteAppResponse
instance GHC.Show.Show Network.AWS.OpsWorks.DeleteApp.DeleteAppResponse
instance GHC.Read.Read Network.AWS.OpsWorks.DeleteApp.DeleteAppResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.DeleteApp.DeleteAppResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.DeleteApp.DeleteApp
instance Data.Data.Data Network.AWS.OpsWorks.DeleteApp.DeleteApp
instance GHC.Show.Show Network.AWS.OpsWorks.DeleteApp.DeleteApp
instance GHC.Read.Read Network.AWS.OpsWorks.DeleteApp.DeleteApp
instance GHC.Classes.Eq Network.AWS.OpsWorks.DeleteApp.DeleteApp
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.DeleteApp.DeleteApp
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.DeleteApp.DeleteApp
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DeleteApp.DeleteApp
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.DeleteApp.DeleteApp
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.DeleteApp.DeleteApp
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.DeleteApp.DeleteApp
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.DeleteApp.DeleteApp
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.DeleteApp.DeleteAppResponse


-- | Creates a new user profile.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have an attached policy that explicitly grants permissions. For more
--   information on user permissions, see <a>Managing User Permissions</a>
--   .
module Network.AWS.OpsWorks.CreateUserProfile

-- | Creates a value of <a>CreateUserProfile</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cupAllowSelfManagement</a> - Whether users can specify their
--   own SSH public key through the My Settings page. For more information,
--   see <a>Setting an IAM User's Public SSH Key</a> .</li>
--   <li><a>cupSSHPublicKey</a> - The user's public SSH key.</li>
--   <li><a>cupSSHUsername</a> - The user's SSH user name. The allowable
--   characters are [a-z], [A-Z], [0-9], <a>-</a>, and '_'. If the
--   specified name includes other punctuation marks, AWS OpsWorks removes
--   them. For example, <tt>my.name</tt> will be changed to <tt>myname</tt>
--   . If you do not specify an SSH user name, AWS OpsWorks generates one
--   from the IAM user name.</li>
--   <li><a>cupIAMUserARN</a> - The user's IAM ARN; this can also be a
--   federated user's ARN.</li>
--   </ul>
createUserProfile :: Text -> CreateUserProfile

-- | <i>See:</i> <a>createUserProfile</a> smart constructor.
data CreateUserProfile

-- | Whether users can specify their own SSH public key through the My
--   Settings page. For more information, see <a>Setting an IAM User's
--   Public SSH Key</a> .
cupAllowSelfManagement :: Lens' CreateUserProfile (Maybe Bool)

-- | The user's public SSH key.
cupSSHPublicKey :: Lens' CreateUserProfile (Maybe Text)

-- | The user's SSH user name. The allowable characters are [a-z], [A-Z],
--   [0-9], <a>-</a>, and '_'. If the specified name includes other
--   punctuation marks, AWS OpsWorks removes them. For example,
--   <tt>my.name</tt> will be changed to <tt>myname</tt> . If you do not
--   specify an SSH user name, AWS OpsWorks generates one from the IAM user
--   name.
cupSSHUsername :: Lens' CreateUserProfile (Maybe Text)

-- | The user's IAM ARN; this can also be a federated user's ARN.
cupIAMUserARN :: Lens' CreateUserProfile Text

-- | Creates a value of <a>CreateUserProfileResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cuprsIAMUserARN</a> - The user's IAM ARN.</li>
--   <li><a>cuprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createUserProfileResponse :: Int -> CreateUserProfileResponse

-- | Contains the response to a <tt>CreateUserProfile</tt> request.
--   
--   <i>See:</i> <a>createUserProfileResponse</a> smart constructor.
data CreateUserProfileResponse

-- | The user's IAM ARN.
cuprsIAMUserARN :: Lens' CreateUserProfileResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
cuprsResponseStatus :: Lens' CreateUserProfileResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.CreateUserProfile.CreateUserProfileResponse
instance Data.Data.Data Network.AWS.OpsWorks.CreateUserProfile.CreateUserProfileResponse
instance GHC.Show.Show Network.AWS.OpsWorks.CreateUserProfile.CreateUserProfileResponse
instance GHC.Read.Read Network.AWS.OpsWorks.CreateUserProfile.CreateUserProfileResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.CreateUserProfile.CreateUserProfileResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.CreateUserProfile.CreateUserProfile
instance Data.Data.Data Network.AWS.OpsWorks.CreateUserProfile.CreateUserProfile
instance GHC.Show.Show Network.AWS.OpsWorks.CreateUserProfile.CreateUserProfile
instance GHC.Read.Read Network.AWS.OpsWorks.CreateUserProfile.CreateUserProfile
instance GHC.Classes.Eq Network.AWS.OpsWorks.CreateUserProfile.CreateUserProfile
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.CreateUserProfile.CreateUserProfile
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.CreateUserProfile.CreateUserProfile
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.CreateUserProfile.CreateUserProfile
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.CreateUserProfile.CreateUserProfile
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.CreateUserProfile.CreateUserProfile
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.CreateUserProfile.CreateUserProfile
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.CreateUserProfile.CreateUserProfile
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.CreateUserProfile.CreateUserProfileResponse


-- | Creates a new stack. For more information, see <a>Create a New
--   Stack</a> .
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have an attached policy that explicitly grants permissions. For more
--   information on user permissions, see <a>Managing User Permissions</a>
--   .
module Network.AWS.OpsWorks.CreateStack

-- | Creates a value of <a>CreateStack</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csDefaultRootDeviceType</a> - The default root device type.
--   This value is the default for all instances in the stack, but you can
--   override it when you create an instance. The default option is
--   <tt>instance-store</tt> . For more information, see <a>Storage for the
--   Root Device</a> .</li>
--   <li><a>csVPCId</a> - The ID of the VPC that the stack is to be
--   launched into. The VPC must be in the stack's region. All instances
--   are launched into this VPC. You cannot change the ID later. * If your
--   account supports EC2-Classic, the default value is <tt>no VPC</tt> . *
--   If your account does not support EC2-Classic, the default value is the
--   default VPC for the specified region. If the VPC ID corresponds to a
--   default VPC and you have specified either the
--   <tt>DefaultAvailabilityZone</tt> or the <tt>DefaultSubnetId</tt>
--   parameter only, AWS OpsWorks infers the value of the other parameter.
--   If you specify neither parameter, AWS OpsWorks sets these parameters
--   to the first valid Availability Zone for the specified region and the
--   corresponding default VPC subnet ID, respectively. If you specify a
--   nondefault VPC ID, note the following: * It must belong to a VPC in
--   your account that is in the specified region. * You must specify a
--   value for <tt>DefaultSubnetId</tt> . For more information on how to
--   use AWS OpsWorks with a VPC, see <a>Running a Stack in a VPC</a> . For
--   more information on default VPC and EC2-Classic, see <a>Supported
--   Platforms</a> .</li>
--   <li><a>csChefConfiguration</a> - A <tt>ChefConfiguration</tt> object
--   that specifies whether to enable Berkshelf and the Berkshelf version
--   on Chef 11.10 stacks. For more information, see <a>Create a New
--   Stack</a> .</li>
--   <li><a>csAgentVersion</a> - The default AWS OpsWorks agent version.
--   You have the following options: * Auto-update - Set this parameter to
--   <tt>LATEST</tt> . AWS OpsWorks automatically installs new agent
--   versions on the stack's instances as soon as they are available. *
--   Fixed version - Set this parameter to your preferred agent version. To
--   update the agent version, you must edit the stack configuration and
--   specify a new version. AWS OpsWorks then automatically installs that
--   version on the stack's instances. The default setting is the most
--   recent release of the agent. To specify an agent version, you must use
--   the complete version number, not the abbreviated number shown on the
--   console. For a list of available agent version numbers, call
--   <tt>DescribeAgentVersions</tt> .</li>
--   <li><a>csDefaultSSHKeyName</a> - A default Amazon EC2 key pair name.
--   The default value is none. If you specify a key pair name, AWS
--   OpsWorks installs the public key on the instance and you can use the
--   private key with an SSH client to log in to the instance. For more
--   information, see <a>Using SSH to Communicate with an Instance</a> and
--   <a>Managing SSH Access</a> . You can override this setting by
--   specifying a different key pair, or no key pair, when you <a>create an
--   instance</a> .</li>
--   <li><a>csCustomJSON</a> - A string that contains user-defined, custom
--   JSON. It can be used to override the corresponding default stack
--   configuration attribute values or to pass data to recipes. The string
--   should be in the following format: <tt>"{"key1": "value1", "key2":
--   "value2",...}"</tt> For more information on custom JSON, see <a>Use
--   Custom JSON to Modify the Stack Configuration Attributes</a> .</li>
--   <li><a>csCustomCookbooksSource</a> - Undocumented member.</li>
--   <li><a>csDefaultAvailabilityZone</a> - The stack's default
--   Availability Zone, which must be in the specified region. For more
--   information, see <a>Regions and Endpoints</a> . If you also specify a
--   value for <tt>DefaultSubnetId</tt> , the subnet must be in the same
--   zone. For more information, see the <tt>VpcId</tt> parameter
--   description.</li>
--   <li><a>csAttributes</a> - One or more user-defined key-value pairs to
--   be added to the stack attributes.</li>
--   <li><a>csDefaultOS</a> - The stack's default operating system, which
--   is installed on every instance unless you specify a different
--   operating system when you create the instance. You can specify one of
--   the following. * A supported Linux operating system: An Amazon Linux
--   version, such as <tt>Amazon Linux 2016.03</tt> , <tt>Amazon Linux
--   2015.09</tt> , or <tt>Amazon Linux 2015.03</tt> . * A supported Ubuntu
--   operating system, such as <tt>Ubuntu 16.04 LTS</tt> , <tt>Ubuntu 14.04
--   LTS</tt> , or <tt>Ubuntu 12.04 LTS</tt> . * <tt>CentOS 7</tt> *
--   <tt>Red Hat Enterprise Linux 7</tt> * A supported Windows operating
--   system, such as <tt>Microsoft Windows Server 2012 R2 Base</tt> ,
--   <tt>Microsoft Windows Server 2012 R2 with SQL Server Express</tt> ,
--   <tt>Microsoft Windows Server 2012 R2 with SQL Server Standard</tt> ,
--   or <tt>Microsoft Windows Server 2012 R2 with SQL Server Web</tt> . * A
--   custom AMI: <tt>Custom</tt> . You specify the custom AMI you want to
--   use when you create instances. For more information, see <a>Using
--   Custom AMIs</a> . The default option is the current Amazon Linux
--   version. For more information on the supported operating systems, see
--   <a>AWS OpsWorks Operating Systems</a> .</li>
--   <li><a>csUseOpsworksSecurityGroups</a> - Whether to associate the AWS
--   OpsWorks built-in security groups with the stack's layers. AWS
--   OpsWorks provides a standard set of built-in security groups, one for
--   each layer, which are associated with layers by default. With
--   <tt>UseOpsworksSecurityGroups</tt> you can instead provide your own
--   custom security groups. <tt>UseOpsworksSecurityGroups</tt> has the
--   following settings: * True - AWS OpsWorks automatically associates the
--   appropriate built-in security group with each layer (default setting).
--   You can associate additional security groups with a layer after you
--   create it, but you cannot delete the built-in security group. * False
--   - AWS OpsWorks does not associate built-in security groups with
--   layers. You must create appropriate EC2 security groups and associate
--   a security group with each layer that you create. However, you can
--   still manually associate a built-in security group with a layer on
--   creation; custom security groups are required only for those layers
--   that need custom settings. For more information, see <a>Create a New
--   Stack</a> .</li>
--   <li><a>csUseCustomCookbooks</a> - Whether the stack uses custom
--   cookbooks.</li>
--   <li><a>csDefaultSubnetId</a> - The stack's default VPC subnet ID. This
--   parameter is required if you specify a value for the <tt>VpcId</tt>
--   parameter. All instances are launched into this subnet unless you
--   specify otherwise when you create the instance. If you also specify a
--   value for <tt>DefaultAvailabilityZone</tt> , the subnet must be in
--   that zone. For information on default values and when this parameter
--   is required, see the <tt>VpcId</tt> parameter description.</li>
--   <li><a>csConfigurationManager</a> - The configuration manager. When
--   you create a stack we recommend that you use the configuration manager
--   to specify the Chef version: 12, 11.10, or 11.4 for Linux stacks, or
--   12.2 for Windows stacks. The default value for Linux stacks is
--   currently 11.4.</li>
--   <li><a>csHostnameTheme</a> - The stack's host name theme, with spaces
--   replaced by underscores. The theme is used to generate host names for
--   the stack's instances. By default, <tt>HostnameTheme</tt> is set to
--   <tt>Layer_Dependent</tt> , which creates host names by appending
--   integers to the layer's short name. The other themes are: *
--   <tt>Baked_Goods</tt> * <tt>Clouds</tt> * <tt>Europe_Cities</tt> *
--   <tt>Fruits</tt> * <tt>Greek_Deities</tt> *
--   <tt>Legendary_creatures_from_Japan</tt> * <tt>Planets_and_Moons</tt> *
--   <tt>Roman_Deities</tt> * <tt>Scottish_Islands</tt> *
--   <tt>US_Cities</tt> * <tt>Wild_Cats</tt> To obtain a generated host
--   name, call <tt>GetHostNameSuggestion</tt> , which returns a host name
--   based on the current theme.</li>
--   <li><a>csName</a> - The stack name.</li>
--   <li><a>csRegion</a> - The stack's AWS region, such as "ap-south-1".
--   For more information about Amazon regions, see <a>Regions and
--   Endpoints</a> .</li>
--   <li><a>csServiceRoleARN</a> - The stack's AWS Identity and Access
--   Management (IAM) role, which allows AWS OpsWorks to work with AWS
--   resources on your behalf. You must set this parameter to the Amazon
--   Resource Name (ARN) for an existing IAM role. For more information
--   about IAM ARNs, see <a>Using Identifiers</a> .</li>
--   <li><a>csDefaultInstanceProfileARN</a> - The Amazon Resource Name
--   (ARN) of an IAM profile that is the default profile for all of the
--   stack's EC2 instances. For more information about IAM ARNs, see
--   <a>Using Identifiers</a> .</li>
--   </ul>
createStack :: Text -> Text -> Text -> Text -> CreateStack

-- | <i>See:</i> <a>createStack</a> smart constructor.
data CreateStack

-- | The default root device type. This value is the default for all
--   instances in the stack, but you can override it when you create an
--   instance. The default option is <tt>instance-store</tt> . For more
--   information, see <a>Storage for the Root Device</a> .
csDefaultRootDeviceType :: Lens' CreateStack (Maybe RootDeviceType)

-- | The ID of the VPC that the stack is to be launched into. The VPC must
--   be in the stack's region. All instances are launched into this VPC.
--   You cannot change the ID later. * If your account supports
--   EC2-Classic, the default value is <tt>no VPC</tt> . * If your account
--   does not support EC2-Classic, the default value is the default VPC for
--   the specified region. If the VPC ID corresponds to a default VPC and
--   you have specified either the <tt>DefaultAvailabilityZone</tt> or the
--   <tt>DefaultSubnetId</tt> parameter only, AWS OpsWorks infers the value
--   of the other parameter. If you specify neither parameter, AWS OpsWorks
--   sets these parameters to the first valid Availability Zone for the
--   specified region and the corresponding default VPC subnet ID,
--   respectively. If you specify a nondefault VPC ID, note the following:
--   * It must belong to a VPC in your account that is in the specified
--   region. * You must specify a value for <tt>DefaultSubnetId</tt> . For
--   more information on how to use AWS OpsWorks with a VPC, see <a>Running
--   a Stack in a VPC</a> . For more information on default VPC and
--   EC2-Classic, see <a>Supported Platforms</a> .
csVPCId :: Lens' CreateStack (Maybe Text)

-- | A <tt>ChefConfiguration</tt> object that specifies whether to enable
--   Berkshelf and the Berkshelf version on Chef 11.10 stacks. For more
--   information, see <a>Create a New Stack</a> .
csChefConfiguration :: Lens' CreateStack (Maybe ChefConfiguration)

-- | The default AWS OpsWorks agent version. You have the following
--   options: * Auto-update - Set this parameter to <tt>LATEST</tt> . AWS
--   OpsWorks automatically installs new agent versions on the stack's
--   instances as soon as they are available. * Fixed version - Set this
--   parameter to your preferred agent version. To update the agent
--   version, you must edit the stack configuration and specify a new
--   version. AWS OpsWorks then automatically installs that version on the
--   stack's instances. The default setting is the most recent release of
--   the agent. To specify an agent version, you must use the complete
--   version number, not the abbreviated number shown on the console. For a
--   list of available agent version numbers, call
--   <tt>DescribeAgentVersions</tt> .
csAgentVersion :: Lens' CreateStack (Maybe Text)

-- | A default Amazon EC2 key pair name. The default value is none. If you
--   specify a key pair name, AWS OpsWorks installs the public key on the
--   instance and you can use the private key with an SSH client to log in
--   to the instance. For more information, see <a>Using SSH to Communicate
--   with an Instance</a> and <a>Managing SSH Access</a> . You can override
--   this setting by specifying a different key pair, or no key pair, when
--   you <a>create an instance</a> .
csDefaultSSHKeyName :: Lens' CreateStack (Maybe Text)

-- | A string that contains user-defined, custom JSON. It can be used to
--   override the corresponding default stack configuration attribute
--   values or to pass data to recipes. The string should be in the
--   following format: <tt>"{"key1": "value1", "key2": "value2",...}"</tt>
--   For more information on custom JSON, see <a>Use Custom JSON to Modify
--   the Stack Configuration Attributes</a> .
csCustomJSON :: Lens' CreateStack (Maybe Text)

-- | Undocumented member.
csCustomCookbooksSource :: Lens' CreateStack (Maybe Source)

-- | The stack's default Availability Zone, which must be in the specified
--   region. For more information, see <a>Regions and Endpoints</a> . If
--   you also specify a value for <tt>DefaultSubnetId</tt> , the subnet
--   must be in the same zone. For more information, see the <tt>VpcId</tt>
--   parameter description.
csDefaultAvailabilityZone :: Lens' CreateStack (Maybe Text)

-- | One or more user-defined key-value pairs to be added to the stack
--   attributes.
csAttributes :: Lens' CreateStack (HashMap StackAttributesKeys Text)

-- | The stack's default operating system, which is installed on every
--   instance unless you specify a different operating system when you
--   create the instance. You can specify one of the following. * A
--   supported Linux operating system: An Amazon Linux version, such as
--   <tt>Amazon Linux 2016.03</tt> , <tt>Amazon Linux 2015.09</tt> , or
--   <tt>Amazon Linux 2015.03</tt> . * A supported Ubuntu operating system,
--   such as <tt>Ubuntu 16.04 LTS</tt> , <tt>Ubuntu 14.04 LTS</tt> , or
--   <tt>Ubuntu 12.04 LTS</tt> . * <tt>CentOS 7</tt> * <tt>Red Hat
--   Enterprise Linux 7</tt> * A supported Windows operating system, such
--   as <tt>Microsoft Windows Server 2012 R2 Base</tt> , <tt>Microsoft
--   Windows Server 2012 R2 with SQL Server Express</tt> , <tt>Microsoft
--   Windows Server 2012 R2 with SQL Server Standard</tt> , or
--   <tt>Microsoft Windows Server 2012 R2 with SQL Server Web</tt> . * A
--   custom AMI: <tt>Custom</tt> . You specify the custom AMI you want to
--   use when you create instances. For more information, see <a>Using
--   Custom AMIs</a> . The default option is the current Amazon Linux
--   version. For more information on the supported operating systems, see
--   <a>AWS OpsWorks Operating Systems</a> .
csDefaultOS :: Lens' CreateStack (Maybe Text)

-- | Whether to associate the AWS OpsWorks built-in security groups with
--   the stack's layers. AWS OpsWorks provides a standard set of built-in
--   security groups, one for each layer, which are associated with layers
--   by default. With <tt>UseOpsworksSecurityGroups</tt> you can instead
--   provide your own custom security groups.
--   <tt>UseOpsworksSecurityGroups</tt> has the following settings: * True
--   - AWS OpsWorks automatically associates the appropriate built-in
--   security group with each layer (default setting). You can associate
--   additional security groups with a layer after you create it, but you
--   cannot delete the built-in security group. * False - AWS OpsWorks does
--   not associate built-in security groups with layers. You must create
--   appropriate EC2 security groups and associate a security group with
--   each layer that you create. However, you can still manually associate
--   a built-in security group with a layer on creation; custom security
--   groups are required only for those layers that need custom settings.
--   For more information, see <a>Create a New Stack</a> .
csUseOpsworksSecurityGroups :: Lens' CreateStack (Maybe Bool)

-- | Whether the stack uses custom cookbooks.
csUseCustomCookbooks :: Lens' CreateStack (Maybe Bool)

-- | The stack's default VPC subnet ID. This parameter is required if you
--   specify a value for the <tt>VpcId</tt> parameter. All instances are
--   launched into this subnet unless you specify otherwise when you create
--   the instance. If you also specify a value for
--   <tt>DefaultAvailabilityZone</tt> , the subnet must be in that zone.
--   For information on default values and when this parameter is required,
--   see the <tt>VpcId</tt> parameter description.
csDefaultSubnetId :: Lens' CreateStack (Maybe Text)

-- | The configuration manager. When you create a stack we recommend that
--   you use the configuration manager to specify the Chef version: 12,
--   11.10, or 11.4 for Linux stacks, or 12.2 for Windows stacks. The
--   default value for Linux stacks is currently 11.4.
csConfigurationManager :: Lens' CreateStack (Maybe StackConfigurationManager)

-- | The stack's host name theme, with spaces replaced by underscores. The
--   theme is used to generate host names for the stack's instances. By
--   default, <tt>HostnameTheme</tt> is set to <tt>Layer_Dependent</tt> ,
--   which creates host names by appending integers to the layer's short
--   name. The other themes are: * <tt>Baked_Goods</tt> * <tt>Clouds</tt> *
--   <tt>Europe_Cities</tt> * <tt>Fruits</tt> * <tt>Greek_Deities</tt> *
--   <tt>Legendary_creatures_from_Japan</tt> * <tt>Planets_and_Moons</tt> *
--   <tt>Roman_Deities</tt> * <tt>Scottish_Islands</tt> *
--   <tt>US_Cities</tt> * <tt>Wild_Cats</tt> To obtain a generated host
--   name, call <tt>GetHostNameSuggestion</tt> , which returns a host name
--   based on the current theme.
csHostnameTheme :: Lens' CreateStack (Maybe Text)

-- | The stack name.
csName :: Lens' CreateStack Text

-- | The stack's AWS region, such as "ap-south-1". For more information
--   about Amazon regions, see <a>Regions and Endpoints</a> .
csRegion :: Lens' CreateStack Text

-- | The stack's AWS Identity and Access Management (IAM) role, which
--   allows AWS OpsWorks to work with AWS resources on your behalf. You
--   must set this parameter to the Amazon Resource Name (ARN) for an
--   existing IAM role. For more information about IAM ARNs, see <a>Using
--   Identifiers</a> .
csServiceRoleARN :: Lens' CreateStack Text

-- | The Amazon Resource Name (ARN) of an IAM profile that is the default
--   profile for all of the stack's EC2 instances. For more information
--   about IAM ARNs, see <a>Using Identifiers</a> .
csDefaultInstanceProfileARN :: Lens' CreateStack Text

-- | Creates a value of <a>CreateStackResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>crsStackId</a> - The stack ID, which is an opaque string that
--   you use to identify the stack when performing actions such as
--   <tt>DescribeStacks</tt> .</li>
--   <li><a>crsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createStackResponse :: Int -> CreateStackResponse

-- | Contains the response to a <tt>CreateStack</tt> request.
--   
--   <i>See:</i> <a>createStackResponse</a> smart constructor.
data CreateStackResponse

-- | The stack ID, which is an opaque string that you use to identify the
--   stack when performing actions such as <tt>DescribeStacks</tt> .
crsStackId :: Lens' CreateStackResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
crsResponseStatus :: Lens' CreateStackResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.CreateStack.CreateStackResponse
instance Data.Data.Data Network.AWS.OpsWorks.CreateStack.CreateStackResponse
instance GHC.Show.Show Network.AWS.OpsWorks.CreateStack.CreateStackResponse
instance GHC.Read.Read Network.AWS.OpsWorks.CreateStack.CreateStackResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.CreateStack.CreateStackResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.CreateStack.CreateStack
instance Data.Data.Data Network.AWS.OpsWorks.CreateStack.CreateStack
instance GHC.Show.Show Network.AWS.OpsWorks.CreateStack.CreateStack
instance GHC.Read.Read Network.AWS.OpsWorks.CreateStack.CreateStack
instance GHC.Classes.Eq Network.AWS.OpsWorks.CreateStack.CreateStack
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.CreateStack.CreateStack
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.CreateStack.CreateStack
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.CreateStack.CreateStack
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.CreateStack.CreateStack
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.CreateStack.CreateStack
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.CreateStack.CreateStack
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.CreateStack.CreateStack
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.CreateStack.CreateStackResponse


-- | Creates a layer. For more information, see <a>How to Create a
--   Layer</a> .
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.CreateLayer

-- | Creates a value of <a>CreateLayer</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>clCustomInstanceProfileARN</a> - The ARN of an IAM profile to
--   be used for the layer's EC2 instances. For more information about IAM
--   ARNs, see <a>Using Identifiers</a> .</li>
--   <li><a>clCustomSecurityGroupIds</a> - An array containing the layer
--   custom security group IDs.</li>
--   <li><a>clInstallUpdatesOnBoot</a> - Whether to install operating
--   system and package updates when the instance boots. The default value
--   is <tt>true</tt> . To control when updates are installed, set this
--   value to <tt>false</tt> . You must then update your instances manually
--   by using <tt>CreateDeployment</tt> to run the
--   <tt>update_dependencies</tt> stack command or by manually running
--   <tt>yum</tt> (Amazon Linux) or <tt>apt-get</tt> (Ubuntu) on the
--   instances.</li>
--   <li><a>clLifecycleEventConfiguration</a> - A
--   <tt>LifeCycleEventConfiguration</tt> object that you can use to
--   configure the Shutdown event to specify an execution timeout and
--   enable or disable Elastic Load Balancer connection draining.</li>
--   <li><a>clCustomRecipes</a> - A <tt>LayerCustomRecipes</tt> object that
--   specifies the layer custom recipes.</li>
--   <li><a>clCustomJSON</a> - A JSON-formatted string containing custom
--   stack configuration and deployment attributes to be installed on the
--   layer's instances. For more information, see <a>Using Custom JSON</a>
--   . This feature is supported as of version 1.7.42 of the AWS CLI.</li>
--   <li><a>clVolumeConfigurations</a> - A <tt>VolumeConfigurations</tt>
--   object that describes the layer's Amazon EBS volumes.</li>
--   <li><a>clEnableAutoHealing</a> - Whether to disable auto healing for
--   the layer.</li>
--   <li><a>clPackages</a> - An array of <tt>Package</tt> objects that
--   describes the layer packages.</li>
--   <li><a>clAttributes</a> - One or more user-defined key-value pairs to
--   be added to the stack attributes. To create a cluster layer, set the
--   <tt>EcsClusterArn</tt> attribute to the cluster's ARN.</li>
--   <li><a>clAutoAssignPublicIPs</a> - 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 <a>How to Edit a
--   Layer</a> .</li>
--   <li><a>clUseEBSOptimizedInstances</a> - Whether to use Amazon
--   EBS-optimized instances.</li>
--   <li><a>clAutoAssignElasticIPs</a> - Whether to automatically assign an
--   <a>Elastic IP address</a> to the layer's instances. For more
--   information, see <a>How to Edit a Layer</a> .</li>
--   <li><a>clStackId</a> - The layer stack ID.</li>
--   <li><a>clType</a> - 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.</li>
--   <li><a>clName</a> - The layer name, which is used by the console.</li>
--   <li><a>clShortname</a> - For custom layers only, use this parameter to
--   specify the layer's short name, which is used internally by AWS
--   OpsWorks 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, <a>-</a>, '_', and <a>.</a>. The built-in layers' short
--   names are defined by AWS OpsWorks. For more information, see the
--   <a>Layer Reference</a> .</li>
--   </ul>
createLayer :: Text -> LayerType -> Text -> Text -> CreateLayer

-- | <i>See:</i> <a>createLayer</a> smart constructor.
data CreateLayer

-- | The ARN of an IAM profile to be used for the layer's EC2 instances.
--   For more information about IAM ARNs, see <a>Using Identifiers</a> .
clCustomInstanceProfileARN :: Lens' CreateLayer (Maybe Text)

-- | An array containing the layer custom security group IDs.
clCustomSecurityGroupIds :: Lens' CreateLayer [Text]

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

-- | A <tt>LifeCycleEventConfiguration</tt> object that you can use to
--   configure the Shutdown event to specify an execution timeout and
--   enable or disable Elastic Load Balancer connection draining.
clLifecycleEventConfiguration :: Lens' CreateLayer (Maybe LifecycleEventConfiguration)

-- | A <tt>LayerCustomRecipes</tt> object that specifies the layer custom
--   recipes.
clCustomRecipes :: Lens' CreateLayer (Maybe Recipes)

-- | A JSON-formatted string containing custom stack configuration and
--   deployment attributes to be installed on the layer's instances. For
--   more information, see <a>Using Custom JSON</a> . This feature is
--   supported as of version 1.7.42 of the AWS CLI.
clCustomJSON :: Lens' CreateLayer (Maybe Text)

-- | A <tt>VolumeConfigurations</tt> object that describes the layer's
--   Amazon EBS volumes.
clVolumeConfigurations :: Lens' CreateLayer [VolumeConfiguration]

-- | Whether to disable auto healing for the layer.
clEnableAutoHealing :: Lens' CreateLayer (Maybe Bool)

-- | An array of <tt>Package</tt> objects that describes the layer
--   packages.
clPackages :: Lens' CreateLayer [Text]

-- | One or more user-defined key-value pairs to be added to the stack
--   attributes. To create a cluster layer, set the <tt>EcsClusterArn</tt>
--   attribute to the cluster's ARN.
clAttributes :: Lens' CreateLayer (HashMap LayerAttributesKeys Text)

-- | 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 <a>How to Edit a Layer</a> .
clAutoAssignPublicIPs :: Lens' CreateLayer (Maybe Bool)

-- | Whether to use Amazon EBS-optimized instances.
clUseEBSOptimizedInstances :: Lens' CreateLayer (Maybe Bool)

-- | Whether to automatically assign an <a>Elastic IP address</a> to the
--   layer's instances. For more information, see <a>How to Edit a
--   Layer</a> .
clAutoAssignElasticIPs :: Lens' CreateLayer (Maybe Bool)

-- | The layer stack ID.
clStackId :: Lens' CreateLayer Text

-- | 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.
clType :: Lens' CreateLayer LayerType

-- | The layer name, which is used by the console.
clName :: Lens' CreateLayer Text

-- | For custom layers only, use this parameter to specify the layer's
--   short name, which is used internally by AWS OpsWorks 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,
--   <a>-</a>, '_', and <a>.</a>. The built-in layers' short names are
--   defined by AWS OpsWorks. For more information, see the <a>Layer
--   Reference</a> .
clShortname :: Lens' CreateLayer Text

-- | Creates a value of <a>CreateLayerResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>clrsLayerId</a> - The layer ID.</li>
--   <li><a>clrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createLayerResponse :: Int -> CreateLayerResponse

-- | Contains the response to a <tt>CreateLayer</tt> request.
--   
--   <i>See:</i> <a>createLayerResponse</a> smart constructor.
data CreateLayerResponse

-- | The layer ID.
clrsLayerId :: Lens' CreateLayerResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
clrsResponseStatus :: Lens' CreateLayerResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.CreateLayer.CreateLayerResponse
instance Data.Data.Data Network.AWS.OpsWorks.CreateLayer.CreateLayerResponse
instance GHC.Show.Show Network.AWS.OpsWorks.CreateLayer.CreateLayerResponse
instance GHC.Read.Read Network.AWS.OpsWorks.CreateLayer.CreateLayerResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.CreateLayer.CreateLayerResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.CreateLayer.CreateLayer
instance Data.Data.Data Network.AWS.OpsWorks.CreateLayer.CreateLayer
instance GHC.Show.Show Network.AWS.OpsWorks.CreateLayer.CreateLayer
instance GHC.Read.Read Network.AWS.OpsWorks.CreateLayer.CreateLayer
instance GHC.Classes.Eq Network.AWS.OpsWorks.CreateLayer.CreateLayer
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.CreateLayer.CreateLayer
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.CreateLayer.CreateLayer
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.CreateLayer.CreateLayer
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.CreateLayer.CreateLayer
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.CreateLayer.CreateLayer
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.CreateLayer.CreateLayer
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.CreateLayer.CreateLayer
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.CreateLayer.CreateLayerResponse


-- | Creates an instance in a specified stack. For more information, see
--   <a>Adding an Instance to a Layer</a> .
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.CreateInstance

-- | Creates a value of <a>CreateInstance</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ciInstallUpdatesOnBoot</a> - Whether to install operating
--   system and package updates when the instance boots. The default value
--   is <tt>true</tt> . To control when updates are installed, set this
--   value to <tt>false</tt> . You must then update your instances manually
--   by using <tt>CreateDeployment</tt> to run the
--   <tt>update_dependencies</tt> stack command or by manually running
--   <tt>yum</tt> (Amazon Linux) or <tt>apt-get</tt> (Ubuntu) on the
--   instances.</li>
--   <li><a>ciVirtualizationType</a> - The instance's virtualization type,
--   <tt>paravirtual</tt> or <tt>hvm</tt> .</li>
--   <li><a>ciHostname</a> - The instance host name.</li>
--   <li><a>ciSSHKeyName</a> - The instance's Amazon EC2 key-pair
--   name.</li>
--   <li><a>ciAgentVersion</a> - The default AWS OpsWorks agent version.
--   You have the following options: * <tt>INHERIT</tt> - Use the stack's
--   default agent version setting. * <i>version_number</i> - Use the
--   specified agent version. This value overrides the stack's default
--   setting. To update the agent version, edit the instance configuration
--   and specify a new version. AWS OpsWorks then automatically installs
--   that version on the instance. The default setting is <tt>INHERIT</tt>
--   . To specify an agent version, you must use the complete version
--   number, not the abbreviated number shown on the console. For a list of
--   available agent version numbers, call <tt>DescribeAgentVersions</tt>
--   .</li>
--   <li><a>ciSubnetId</a> - The ID of the instance's subnet. If the stack
--   is running in a VPC, you can use this parameter to override the
--   stack's default subnet ID value and direct AWS OpsWorks to launch the
--   instance in a different subnet.</li>
--   <li><a>ciEBSOptimized</a> - Whether to create an Amazon EBS-optimized
--   instance.</li>
--   <li><a>ciOS</a> - The instance's operating system, which must be set
--   to one of the following. * A supported Linux operating system: An
--   Amazon Linux version, such as <tt>Amazon Linux 2016.03</tt> ,
--   <tt>Amazon Linux 2015.09</tt> , or <tt>Amazon Linux 2015.03</tt> . * A
--   supported Ubuntu operating system, such as <tt>Ubuntu 16.04 LTS</tt> ,
--   <tt>Ubuntu 14.04 LTS</tt> , or <tt>Ubuntu 12.04 LTS</tt> . *
--   <tt>CentOS 7</tt> * <tt>Red Hat Enterprise Linux 7</tt> * A supported
--   Windows operating system, such as <tt>Microsoft Windows Server 2012 R2
--   Base</tt> , <tt>Microsoft Windows Server 2012 R2 with SQL Server
--   Express</tt> , <tt>Microsoft Windows Server 2012 R2 with SQL Server
--   Standard</tt> , or <tt>Microsoft Windows Server 2012 R2 with SQL
--   Server Web</tt> . * A custom AMI: <tt>Custom</tt> . For more
--   information on the supported operating systems, see <a>AWS OpsWorks
--   Operating Systems</a> . The default option is the current Amazon Linux
--   version. If you set this parameter to <tt>Custom</tt> , you must use
--   the <a>CreateInstance</a> action's AmiId parameter to specify the
--   custom AMI that you want to use. Block device mappings are not
--   supported if the value is <tt>Custom</tt> . For more information on
--   the supported operating systems, see <a>Operating Systems</a> For more
--   information on how to use custom AMIs with AWS OpsWorks, see <a>Using
--   Custom AMIs</a> .</li>
--   <li><a>ciAvailabilityZone</a> - The instance Availability Zone. For
--   more information, see <a>Regions and Endpoints</a> .</li>
--   <li><a>ciTenancy</a> - The instance's tenancy option. The default
--   option is no tenancy, or if the instance is running in a VPC, inherit
--   tenancy settings from the VPC. The following are valid values for this
--   parameter: <tt>dedicated</tt> , <tt>default</tt> , or <tt>host</tt> .
--   Because there are costs associated with changes in tenancy options, we
--   recommend that you research tenancy options before choosing them for
--   your instances. For more information about dedicated hosts, see
--   <a>Dedicated Hosts Overview</a> and <a>Amazon EC2 Dedicated Hosts</a>
--   . For more information about dedicated instances, see <a>Dedicated
--   Instances</a> and <a>Amazon EC2 Dedicated Instances</a> .</li>
--   <li><a>ciAutoScalingType</a> - For load-based or time-based instances,
--   the type. Windows stacks can use only time-based instances.</li>
--   <li><a>ciArchitecture</a> - The instance architecture. The default
--   option is <tt>x86_64</tt> . Instance types do not necessarily support
--   both architectures. For a list of the architectures that are supported
--   by the different instance types, see <a>Instance Families and
--   Types</a> .</li>
--   <li><a>ciAMIId</a> - A custom AMI ID to be used to create the
--   instance. The AMI should be based on one of the supported operating
--   systems. For more information, see <a>Using Custom AMIs</a> .</li>
--   <li><a>ciRootDeviceType</a> - The instance root device type. For more
--   information, see <a>Storage for the Root Device</a> .</li>
--   <li><a>ciBlockDeviceMappings</a> - An array of
--   <tt>BlockDeviceMapping</tt> objects that specify the instance's block
--   devices. For more information, see <a>Block Device Mapping</a> . Note
--   that block device mappings are not supported for custom AMIs.</li>
--   <li><a>ciStackId</a> - The stack ID.</li>
--   <li><a>ciLayerIds</a> - An array that contains the instance's layer
--   IDs.</li>
--   <li><a>ciInstanceType</a> - The instance type, such as
--   <tt>t2.micro</tt> . For a list of supported instance types, open the
--   stack in the console, choose <b>Instances</b> , and choose <b>+
--   Instance</b> . The <b>Size</b> list contains the currently supported
--   types. For more information, see <a>Instance Families and Types</a> .
--   The parameter values that you use to specify the various types are in
--   the <b>API Name</b> column of the <b>Available Instance Types</b>
--   table.</li>
--   </ul>
createInstance :: Text -> Text -> CreateInstance

-- | <i>See:</i> <a>createInstance</a> smart constructor.
data CreateInstance

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

-- | The instance's virtualization type, <tt>paravirtual</tt> or
--   <tt>hvm</tt> .
ciVirtualizationType :: Lens' CreateInstance (Maybe Text)

-- | The instance host name.
ciHostname :: Lens' CreateInstance (Maybe Text)

-- | The instance's Amazon EC2 key-pair name.
ciSSHKeyName :: Lens' CreateInstance (Maybe Text)

-- | The default AWS OpsWorks agent version. You have the following
--   options: * <tt>INHERIT</tt> - Use the stack's default agent version
--   setting. * <i>version_number</i> - Use the specified agent version.
--   This value overrides the stack's default setting. To update the agent
--   version, edit the instance configuration and specify a new version.
--   AWS OpsWorks then automatically installs that version on the instance.
--   The default setting is <tt>INHERIT</tt> . To specify an agent version,
--   you must use the complete version number, not the abbreviated number
--   shown on the console. For a list of available agent version numbers,
--   call <tt>DescribeAgentVersions</tt> .
ciAgentVersion :: Lens' CreateInstance (Maybe Text)

-- | The ID of the instance's subnet. If the stack is running in a VPC, you
--   can use this parameter to override the stack's default subnet ID value
--   and direct AWS OpsWorks to launch the instance in a different subnet.
ciSubnetId :: Lens' CreateInstance (Maybe Text)

-- | Whether to create an Amazon EBS-optimized instance.
ciEBSOptimized :: Lens' CreateInstance (Maybe Bool)

-- | The instance's operating system, which must be set to one of the
--   following. * A supported Linux operating system: An Amazon Linux
--   version, such as <tt>Amazon Linux 2016.03</tt> , <tt>Amazon Linux
--   2015.09</tt> , or <tt>Amazon Linux 2015.03</tt> . * A supported Ubuntu
--   operating system, such as <tt>Ubuntu 16.04 LTS</tt> , <tt>Ubuntu 14.04
--   LTS</tt> , or <tt>Ubuntu 12.04 LTS</tt> . * <tt>CentOS 7</tt> *
--   <tt>Red Hat Enterprise Linux 7</tt> * A supported Windows operating
--   system, such as <tt>Microsoft Windows Server 2012 R2 Base</tt> ,
--   <tt>Microsoft Windows Server 2012 R2 with SQL Server Express</tt> ,
--   <tt>Microsoft Windows Server 2012 R2 with SQL Server Standard</tt> ,
--   or <tt>Microsoft Windows Server 2012 R2 with SQL Server Web</tt> . * A
--   custom AMI: <tt>Custom</tt> . For more information on the supported
--   operating systems, see <a>AWS OpsWorks Operating Systems</a> . The
--   default option is the current Amazon Linux version. If you set this
--   parameter to <tt>Custom</tt> , you must use the <a>CreateInstance</a>
--   action's AmiId parameter to specify the custom AMI that you want to
--   use. Block device mappings are not supported if the value is
--   <tt>Custom</tt> . For more information on the supported operating
--   systems, see <a>Operating Systems</a> For more information on how to
--   use custom AMIs with AWS OpsWorks, see <a>Using Custom AMIs</a> .
ciOS :: Lens' CreateInstance (Maybe Text)

-- | The instance Availability Zone. For more information, see <a>Regions
--   and Endpoints</a> .
ciAvailabilityZone :: Lens' CreateInstance (Maybe Text)

-- | The instance's tenancy option. The default option is no tenancy, or if
--   the instance is running in a VPC, inherit tenancy settings from the
--   VPC. The following are valid values for this parameter:
--   <tt>dedicated</tt> , <tt>default</tt> , or <tt>host</tt> . Because
--   there are costs associated with changes in tenancy options, we
--   recommend that you research tenancy options before choosing them for
--   your instances. For more information about dedicated hosts, see
--   <a>Dedicated Hosts Overview</a> and <a>Amazon EC2 Dedicated Hosts</a>
--   . For more information about dedicated instances, see <a>Dedicated
--   Instances</a> and <a>Amazon EC2 Dedicated Instances</a> .
ciTenancy :: Lens' CreateInstance (Maybe Text)

-- | For load-based or time-based instances, the type. Windows stacks can
--   use only time-based instances.
ciAutoScalingType :: Lens' CreateInstance (Maybe AutoScalingType)

-- | The instance architecture. The default option is <tt>x86_64</tt> .
--   Instance types do not necessarily support both architectures. For a
--   list of the architectures that are supported by the different instance
--   types, see <a>Instance Families and Types</a> .
ciArchitecture :: Lens' CreateInstance (Maybe Architecture)

-- | A custom AMI ID to be used to create the instance. The AMI should be
--   based on one of the supported operating systems. For more information,
--   see <a>Using Custom AMIs</a> .
ciAMIId :: Lens' CreateInstance (Maybe Text)

-- | The instance root device type. For more information, see <a>Storage
--   for the Root Device</a> .
ciRootDeviceType :: Lens' CreateInstance (Maybe RootDeviceType)

-- | An array of <tt>BlockDeviceMapping</tt> objects that specify the
--   instance's block devices. For more information, see <a>Block Device
--   Mapping</a> . Note that block device mappings are not supported for
--   custom AMIs.
ciBlockDeviceMappings :: Lens' CreateInstance [BlockDeviceMapping]

-- | The stack ID.
ciStackId :: Lens' CreateInstance Text

-- | An array that contains the instance's layer IDs.
ciLayerIds :: Lens' CreateInstance [Text]

-- | The instance type, such as <tt>t2.micro</tt> . For a list of supported
--   instance types, open the stack in the console, choose <b>Instances</b>
--   , and choose <b>+ Instance</b> . The <b>Size</b> list contains the
--   currently supported types. For more information, see <a>Instance
--   Families and Types</a> . The parameter values that you use to specify
--   the various types are in the <b>API Name</b> column of the
--   <b>Available Instance Types</b> table.
ciInstanceType :: Lens' CreateInstance Text

-- | Creates a value of <a>CreateInstanceResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cirsInstanceId</a> - The instance ID.</li>
--   <li><a>cirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createInstanceResponse :: Int -> CreateInstanceResponse

-- | Contains the response to a <tt>CreateInstance</tt> request.
--   
--   <i>See:</i> <a>createInstanceResponse</a> smart constructor.
data CreateInstanceResponse

-- | The instance ID.
cirsInstanceId :: Lens' CreateInstanceResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
cirsResponseStatus :: Lens' CreateInstanceResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.CreateInstance.CreateInstanceResponse
instance Data.Data.Data Network.AWS.OpsWorks.CreateInstance.CreateInstanceResponse
instance GHC.Show.Show Network.AWS.OpsWorks.CreateInstance.CreateInstanceResponse
instance GHC.Read.Read Network.AWS.OpsWorks.CreateInstance.CreateInstanceResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.CreateInstance.CreateInstanceResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.CreateInstance.CreateInstance
instance Data.Data.Data Network.AWS.OpsWorks.CreateInstance.CreateInstance
instance GHC.Show.Show Network.AWS.OpsWorks.CreateInstance.CreateInstance
instance GHC.Read.Read Network.AWS.OpsWorks.CreateInstance.CreateInstance
instance GHC.Classes.Eq Network.AWS.OpsWorks.CreateInstance.CreateInstance
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.CreateInstance.CreateInstance
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.CreateInstance.CreateInstance
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.CreateInstance.CreateInstance
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.CreateInstance.CreateInstance
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.CreateInstance.CreateInstance
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.CreateInstance.CreateInstance
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.CreateInstance.CreateInstance
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.CreateInstance.CreateInstanceResponse


-- | Runs deployment or stack commands. For more information, see
--   <a>Deploying Apps</a> and <a>Run Stack Commands</a> .
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Deploy or Manage permissions level for the stack, or an
--   attached policy that explicitly grants permissions. For more
--   information on user permissions, see <a>Managing User Permissions</a>
--   .
module Network.AWS.OpsWorks.CreateDeployment

-- | Creates a value of <a>CreateDeployment</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdCustomJSON</a> - A string that contains user-defined, custom
--   JSON. It is used to override the corresponding default stack
--   configuration JSON values. The string should be in the following
--   format: <tt>"{"key1": "value1", "key2": "value2",...}"</tt> For more
--   information on custom JSON, see <a>Use Custom JSON to Modify the Stack
--   Configuration Attributes</a> .</li>
--   <li><a>cdAppId</a> - The app ID. This parameter is required for app
--   deployments, but not for other deployment commands.</li>
--   <li><a>cdInstanceIds</a> - The instance IDs for the deployment
--   targets.</li>
--   <li><a>cdLayerIds</a> - The layer IDs for the deployment targets.</li>
--   <li><a>cdComment</a> - A user-defined comment.</li>
--   <li><a>cdStackId</a> - The stack ID.</li>
--   <li><a>cdCommand</a> - A <tt>DeploymentCommand</tt> object that
--   specifies the deployment command and any associated arguments.</li>
--   </ul>
createDeployment :: Text -> DeploymentCommand -> CreateDeployment

-- | <i>See:</i> <a>createDeployment</a> smart constructor.
data CreateDeployment

-- | A string that contains user-defined, custom JSON. It is used to
--   override the corresponding default stack configuration JSON values.
--   The string should be in the following format: <tt>"{"key1": "value1",
--   "key2": "value2",...}"</tt> For more information on custom JSON, see
--   <a>Use Custom JSON to Modify the Stack Configuration Attributes</a> .
cdCustomJSON :: Lens' CreateDeployment (Maybe Text)

-- | The app ID. This parameter is required for app deployments, but not
--   for other deployment commands.
cdAppId :: Lens' CreateDeployment (Maybe Text)

-- | The instance IDs for the deployment targets.
cdInstanceIds :: Lens' CreateDeployment [Text]

-- | The layer IDs for the deployment targets.
cdLayerIds :: Lens' CreateDeployment [Text]

-- | A user-defined comment.
cdComment :: Lens' CreateDeployment (Maybe Text)

-- | The stack ID.
cdStackId :: Lens' CreateDeployment Text

-- | A <tt>DeploymentCommand</tt> object that specifies the deployment
--   command and any associated arguments.
cdCommand :: Lens' CreateDeployment DeploymentCommand

-- | Creates a value of <a>CreateDeploymentResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdrsDeploymentId</a> - The deployment ID, which can be used
--   with other requests to identify the deployment.</li>
--   <li><a>cdrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createDeploymentResponse :: Int -> CreateDeploymentResponse

-- | Contains the response to a <tt>CreateDeployment</tt> request.
--   
--   <i>See:</i> <a>createDeploymentResponse</a> smart constructor.
data CreateDeploymentResponse

-- | The deployment ID, which can be used with other requests to identify
--   the deployment.
cdrsDeploymentId :: Lens' CreateDeploymentResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
cdrsResponseStatus :: Lens' CreateDeploymentResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.CreateDeployment.CreateDeploymentResponse
instance Data.Data.Data Network.AWS.OpsWorks.CreateDeployment.CreateDeploymentResponse
instance GHC.Show.Show Network.AWS.OpsWorks.CreateDeployment.CreateDeploymentResponse
instance GHC.Read.Read Network.AWS.OpsWorks.CreateDeployment.CreateDeploymentResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.CreateDeployment.CreateDeploymentResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.CreateDeployment.CreateDeployment
instance Data.Data.Data Network.AWS.OpsWorks.CreateDeployment.CreateDeployment
instance GHC.Show.Show Network.AWS.OpsWorks.CreateDeployment.CreateDeployment
instance GHC.Read.Read Network.AWS.OpsWorks.CreateDeployment.CreateDeployment
instance GHC.Classes.Eq Network.AWS.OpsWorks.CreateDeployment.CreateDeployment
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.CreateDeployment.CreateDeployment
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.CreateDeployment.CreateDeployment
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.CreateDeployment.CreateDeployment
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.CreateDeployment.CreateDeployment
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.CreateDeployment.CreateDeployment
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.CreateDeployment.CreateDeployment
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.CreateDeployment.CreateDeployment
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.CreateDeployment.CreateDeploymentResponse


-- | Creates an app for a specified stack. For more information, see
--   <a>Creating Apps</a> .
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.CreateApp

-- | Creates a value of <a>CreateApp</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>caSSLConfiguration</a> - An <tt>SslConfiguration</tt> object
--   with the SSL configuration.</li>
--   <li><a>caEnvironment</a> - An array of <tt>EnvironmentVariable</tt>
--   objects that specify environment variables to be associated with the
--   app. After you deploy the app, these variables are defined on the
--   associated app server instance. For more information, see
--   <a>Environment Variables</a> . There is no specific limit on the
--   number of environment variables. However, the size of the associated
--   data structure - which includes the variables' names, values, and
--   protected flag values - cannot exceed 10 KB (10240 Bytes). This limit
--   should accommodate most if not all use cases. Exceeding it will cause
--   an exception with the message, "Environment: is too large (maximum is
--   10KB)."</li>
--   <li><a>caEnableSSL</a> - Whether to enable SSL for the app.</li>
--   <li><a>caShortname</a> - The app's short name.</li>
--   <li><a>caDataSources</a> - The app's data source.</li>
--   <li><a>caAppSource</a> - A <tt>Source</tt> object that specifies the
--   app repository.</li>
--   <li><a>caAttributes</a> - One or more user-defined key/value pairs to
--   be added to the stack attributes.</li>
--   <li><a>caDomains</a> - The app virtual host settings, with multiple
--   domains separated by commas. For example: <tt>'www.example.com,
--   example.com'</tt></li>
--   <li><a>caDescription</a> - A description of the app.</li>
--   <li><a>caStackId</a> - The stack ID.</li>
--   <li><a>caName</a> - The app name.</li>
--   <li><a>caType</a> - The app type. Each supported type is associated
--   with a particular layer. For example, PHP applications are associated
--   with a PHP layer. AWS OpsWorks deploys an application to those
--   instances that are members of the corresponding layer. If your app
--   isn't one of the standard types, or you prefer to implement your own
--   Deploy recipes, specify <tt>other</tt> .</li>
--   </ul>
createApp :: Text -> Text -> AppType -> CreateApp

-- | <i>See:</i> <a>createApp</a> smart constructor.
data CreateApp

-- | An <tt>SslConfiguration</tt> object with the SSL configuration.
caSSLConfiguration :: Lens' CreateApp (Maybe SSLConfiguration)

-- | An array of <tt>EnvironmentVariable</tt> objects that specify
--   environment variables to be associated with the app. After you deploy
--   the app, these variables are defined on the associated app server
--   instance. For more information, see <a>Environment Variables</a> .
--   There is no specific limit on the number of environment variables.
--   However, the size of the associated data structure - which includes
--   the variables' names, values, and protected flag values - cannot
--   exceed 10 KB (10240 Bytes). This limit should accommodate most if not
--   all use cases. Exceeding it will cause an exception with the message,
--   "Environment: is too large (maximum is 10KB)."
caEnvironment :: Lens' CreateApp [EnvironmentVariable]

-- | Whether to enable SSL for the app.
caEnableSSL :: Lens' CreateApp (Maybe Bool)

-- | The app's short name.
caShortname :: Lens' CreateApp (Maybe Text)

-- | The app's data source.
caDataSources :: Lens' CreateApp [DataSource]

-- | A <tt>Source</tt> object that specifies the app repository.
caAppSource :: Lens' CreateApp (Maybe Source)

-- | One or more user-defined key/value pairs to be added to the stack
--   attributes.
caAttributes :: Lens' CreateApp (HashMap AppAttributesKeys Text)

-- | The app virtual host settings, with multiple domains separated by
--   commas. For example: <tt>'www.example.com, example.com'</tt>
caDomains :: Lens' CreateApp [Text]

-- | A description of the app.
caDescription :: Lens' CreateApp (Maybe Text)

-- | The stack ID.
caStackId :: Lens' CreateApp Text

-- | The app name.
caName :: Lens' CreateApp Text

-- | The app type. Each supported type is associated with a particular
--   layer. For example, PHP applications are associated with a PHP layer.
--   AWS OpsWorks deploys an application to those instances that are
--   members of the corresponding layer. If your app isn't one of the
--   standard types, or you prefer to implement your own Deploy recipes,
--   specify <tt>other</tt> .
caType :: Lens' CreateApp AppType

-- | Creates a value of <a>CreateAppResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>carsAppId</a> - The app ID.</li>
--   <li><a>carsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createAppResponse :: Int -> CreateAppResponse

-- | Contains the response to a <tt>CreateApp</tt> request.
--   
--   <i>See:</i> <a>createAppResponse</a> smart constructor.
data CreateAppResponse

-- | The app ID.
carsAppId :: Lens' CreateAppResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
carsResponseStatus :: Lens' CreateAppResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.CreateApp.CreateAppResponse
instance Data.Data.Data Network.AWS.OpsWorks.CreateApp.CreateAppResponse
instance GHC.Show.Show Network.AWS.OpsWorks.CreateApp.CreateAppResponse
instance GHC.Read.Read Network.AWS.OpsWorks.CreateApp.CreateAppResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.CreateApp.CreateAppResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.CreateApp.CreateApp
instance Data.Data.Data Network.AWS.OpsWorks.CreateApp.CreateApp
instance GHC.Show.Show Network.AWS.OpsWorks.CreateApp.CreateApp
instance GHC.Read.Read Network.AWS.OpsWorks.CreateApp.CreateApp
instance GHC.Classes.Eq Network.AWS.OpsWorks.CreateApp.CreateApp
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.CreateApp.CreateApp
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.CreateApp.CreateApp
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.CreateApp.CreateApp
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.CreateApp.CreateApp
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.CreateApp.CreateApp
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.CreateApp.CreateApp
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.CreateApp.CreateApp
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.CreateApp.CreateAppResponse


-- | Creates a clone of a specified stack. For more information, see
--   <a>Clone a Stack</a> . By default, all parameters are set to the
--   values used by the parent stack.
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have an attached policy that explicitly grants permissions. For more
--   information on user permissions, see <a>Managing User Permissions</a>
--   .
module Network.AWS.OpsWorks.CloneStack

-- | Creates a value of <a>CloneStack</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cDefaultInstanceProfileARN</a> - The Amazon Resource Name (ARN)
--   of an IAM profile that is the default profile for all of the stack's
--   EC2 instances. For more information about IAM ARNs, see <a>Using
--   Identifiers</a> .</li>
--   <li><a>cCloneAppIds</a> - A list of source stack app IDs to be
--   included in the cloned stack.</li>
--   <li><a>cDefaultRootDeviceType</a> - The default root device type. This
--   value is used by default for all instances in the cloned stack, but
--   you can override it when you create an instance. For more information,
--   see <a>Storage for the Root Device</a> .</li>
--   <li><a>cVPCId</a> - The ID of the VPC that the cloned stack is to be
--   launched into. It must be in the specified region. All instances are
--   launched into this VPC, and you cannot change the ID later. * If your
--   account supports EC2 Classic, the default value is no VPC. * If your
--   account does not support EC2 Classic, the default value is the default
--   VPC for the specified region. If the VPC ID corresponds to a default
--   VPC and you have specified either the <tt>DefaultAvailabilityZone</tt>
--   or the <tt>DefaultSubnetId</tt> parameter only, AWS OpsWorks infers
--   the value of the other parameter. If you specify neither parameter,
--   AWS OpsWorks sets these parameters to the first valid Availability
--   Zone for the specified region and the corresponding default VPC subnet
--   ID, respectively. If you specify a nondefault VPC ID, note the
--   following: * It must belong to a VPC in your account that is in the
--   specified region. * You must specify a value for
--   <tt>DefaultSubnetId</tt> . For more information on how to use AWS
--   OpsWorks with a VPC, see <a>Running a Stack in a VPC</a> . For more
--   information on default VPC and EC2 Classic, see <a>Supported
--   Platforms</a> .</li>
--   <li><a>cChefConfiguration</a> - A <tt>ChefConfiguration</tt> object
--   that specifies whether to enable Berkshelf and the Berkshelf version
--   on Chef 11.10 stacks. For more information, see <a>Create a New
--   Stack</a> .</li>
--   <li><a>cAgentVersion</a> - The default AWS OpsWorks agent version. You
--   have the following options: * Auto-update - Set this parameter to
--   <tt>LATEST</tt> . AWS OpsWorks automatically installs new agent
--   versions on the stack's instances as soon as they are available. *
--   Fixed version - Set this parameter to your preferred agent version. To
--   update the agent version, you must edit the stack configuration and
--   specify a new version. AWS OpsWorks then automatically installs that
--   version on the stack's instances. The default setting is
--   <tt>LATEST</tt> . To specify an agent version, you must use the
--   complete version number, not the abbreviated number shown on the
--   console. For a list of available agent version numbers, call
--   <tt>DescribeAgentVersions</tt> .</li>
--   <li><a>cDefaultSSHKeyName</a> - A default Amazon EC2 key pair name.
--   The default value is none. If you specify a key pair name, AWS
--   OpsWorks installs the public key on the instance and you can use the
--   private key with an SSH client to log in to the instance. For more
--   information, see <a>Using SSH to Communicate with an Instance</a> and
--   <a>Managing SSH Access</a> . You can override this setting by
--   specifying a different key pair, or no key pair, when you <a>create an
--   instance</a> .</li>
--   <li><a>cCustomJSON</a> - A string that contains user-defined, custom
--   JSON. It is used to override the corresponding default stack
--   configuration JSON values. The string should be in the following
--   format: <tt>"{"key1": "value1", "key2": "value2",...}"</tt> For more
--   information on custom JSON, see <a>Use Custom JSON to Modify the Stack
--   Configuration Attributes</a></li>
--   <li><a>cClonePermissions</a> - Whether to clone the source stack's
--   permissions.</li>
--   <li><a>cCustomCookbooksSource</a> - Undocumented member.</li>
--   <li><a>cDefaultAvailabilityZone</a> - The cloned stack's default
--   Availability Zone, which must be in the specified region. For more
--   information, see <a>Regions and Endpoints</a> . If you also specify a
--   value for <tt>DefaultSubnetId</tt> , the subnet must be in the same
--   zone. For more information, see the <tt>VpcId</tt> parameter
--   description.</li>
--   <li><a>cAttributes</a> - A list of stack attributes and values as
--   key/value pairs to be added to the cloned stack.</li>
--   <li><a>cName</a> - The cloned stack name.</li>
--   <li><a>cDefaultOS</a> - The stack's operating system, which must be
--   set to one of the following. * A supported Linux operating system: An
--   Amazon Linux version, such as <tt>Amazon Linux 2016.03</tt> ,
--   <tt>Amazon Linux 2015.09</tt> , or <tt>Amazon Linux 2015.03</tt> . * A
--   supported Ubuntu operating system, such as <tt>Ubuntu 16.04 LTS</tt> ,
--   <tt>Ubuntu 14.04 LTS</tt> , or <tt>Ubuntu 12.04 LTS</tt> . *
--   <tt>CentOS 7</tt> * <tt>Red Hat Enterprise Linux 7</tt> *
--   <tt>Microsoft Windows Server 2012 R2 Base</tt> , <tt>Microsoft Windows
--   Server 2012 R2 with SQL Server Express</tt> , <tt>Microsoft Windows
--   Server 2012 R2 with SQL Server Standard</tt> , or <tt>Microsoft
--   Windows Server 2012 R2 with SQL Server Web</tt> . * A custom AMI:
--   <tt>Custom</tt> . You specify the custom AMI you want to use when you
--   create instances. For more information on how to use custom AMIs with
--   OpsWorks, see <a>Using Custom AMIs</a> . The default option is the
--   parent stack's operating system. For more information on the supported
--   operating systems, see <a>AWS OpsWorks Operating Systems</a> .</li>
--   <li><a>cUseOpsworksSecurityGroups</a> - Whether to associate the AWS
--   OpsWorks built-in security groups with the stack's layers. AWS
--   OpsWorks provides a standard set of built-in security groups, one for
--   each layer, which are associated with layers by default. With
--   <tt>UseOpsworksSecurityGroups</tt> you can instead provide your own
--   custom security groups. <tt>UseOpsworksSecurityGroups</tt> has the
--   following settings: * True - AWS OpsWorks automatically associates the
--   appropriate built-in security group with each layer (default setting).
--   You can associate additional security groups with a layer after you
--   create it but you cannot delete the built-in security group. * False -
--   AWS OpsWorks does not associate built-in security groups with layers.
--   You must create appropriate Amazon Elastic Compute Cloud (Amazon EC2)
--   security groups and associate a security group with each layer that
--   you create. However, you can still manually associate a built-in
--   security group with a layer on creation; custom security groups are
--   required only for those layers that need custom settings. For more
--   information, see <a>Create a New Stack</a> .</li>
--   <li><a>cUseCustomCookbooks</a> - Whether to use custom cookbooks.</li>
--   <li><a>cDefaultSubnetId</a> - The stack's default VPC subnet ID. This
--   parameter is required if you specify a value for the <tt>VpcId</tt>
--   parameter. All instances are launched into this subnet unless you
--   specify otherwise when you create the instance. If you also specify a
--   value for <tt>DefaultAvailabilityZone</tt> , the subnet must be in
--   that zone. For information on default values and when this parameter
--   is required, see the <tt>VpcId</tt> parameter description.</li>
--   <li><a>cRegion</a> - The cloned stack AWS region, such as
--   "ap-northeast-2". For more information about AWS regions, see
--   <a>Regions and Endpoints</a> .</li>
--   <li><a>cConfigurationManager</a> - The configuration manager. When you
--   clone a stack we recommend that you use the configuration manager to
--   specify the Chef version: 12, 11.10, or 11.4 for Linux stacks, or 12.2
--   for Windows stacks. The default value for Linux stacks is currently
--   12.</li>
--   <li><a>cHostnameTheme</a> - The stack's host name theme, with spaces
--   are replaced by underscores. The theme is used to generate host names
--   for the stack's instances. By default, <tt>HostnameTheme</tt> is set
--   to <tt>Layer_Dependent</tt> , which creates host names by appending
--   integers to the layer's short name. The other themes are: *
--   <tt>Baked_Goods</tt> * <tt>Clouds</tt> * <tt>Europe_Cities</tt> *
--   <tt>Fruits</tt> * <tt>Greek_Deities</tt> *
--   <tt>Legendary_creatures_from_Japan</tt> * <tt>Planets_and_Moons</tt> *
--   <tt>Roman_Deities</tt> * <tt>Scottish_Islands</tt> *
--   <tt>US_Cities</tt> * <tt>Wild_Cats</tt> To obtain a generated host
--   name, call <tt>GetHostNameSuggestion</tt> , which returns a host name
--   based on the current theme.</li>
--   <li><a>cSourceStackId</a> - The source stack ID.</li>
--   <li><a>cServiceRoleARN</a> - The stack AWS Identity and Access
--   Management (IAM) role, which allows AWS OpsWorks to work with AWS
--   resources on your behalf. You must set this parameter to the Amazon
--   Resource Name (ARN) for an existing IAM role. If you create a stack by
--   using the AWS OpsWorks console, it creates the role for you. You can
--   obtain an existing stack's IAM ARN programmatically by calling
--   <tt>DescribePermissions</tt> . For more information about IAM ARNs,
--   see <a>Using Identifiers</a> .</li>
--   </ul>
cloneStack :: Text -> Text -> CloneStack

-- | <i>See:</i> <a>cloneStack</a> smart constructor.
data CloneStack

-- | The Amazon Resource Name (ARN) of an IAM profile that is the default
--   profile for all of the stack's EC2 instances. For more information
--   about IAM ARNs, see <a>Using Identifiers</a> .
cDefaultInstanceProfileARN :: Lens' CloneStack (Maybe Text)

-- | A list of source stack app IDs to be included in the cloned stack.
cCloneAppIds :: Lens' CloneStack [Text]

-- | The default root device type. This value is used by default for all
--   instances in the cloned stack, but you can override it when you create
--   an instance. For more information, see <a>Storage for the Root
--   Device</a> .
cDefaultRootDeviceType :: Lens' CloneStack (Maybe RootDeviceType)

-- | The ID of the VPC that the cloned stack is to be launched into. It
--   must be in the specified region. All instances are launched into this
--   VPC, and you cannot change the ID later. * If your account supports
--   EC2 Classic, the default value is no VPC. * If your account does not
--   support EC2 Classic, the default value is the default VPC for the
--   specified region. If the VPC ID corresponds to a default VPC and you
--   have specified either the <tt>DefaultAvailabilityZone</tt> or the
--   <tt>DefaultSubnetId</tt> parameter only, AWS OpsWorks infers the value
--   of the other parameter. If you specify neither parameter, AWS OpsWorks
--   sets these parameters to the first valid Availability Zone for the
--   specified region and the corresponding default VPC subnet ID,
--   respectively. If you specify a nondefault VPC ID, note the following:
--   * It must belong to a VPC in your account that is in the specified
--   region. * You must specify a value for <tt>DefaultSubnetId</tt> . For
--   more information on how to use AWS OpsWorks with a VPC, see <a>Running
--   a Stack in a VPC</a> . For more information on default VPC and EC2
--   Classic, see <a>Supported Platforms</a> .
cVPCId :: Lens' CloneStack (Maybe Text)

-- | A <tt>ChefConfiguration</tt> object that specifies whether to enable
--   Berkshelf and the Berkshelf version on Chef 11.10 stacks. For more
--   information, see <a>Create a New Stack</a> .
cChefConfiguration :: Lens' CloneStack (Maybe ChefConfiguration)

-- | The default AWS OpsWorks agent version. You have the following
--   options: * Auto-update - Set this parameter to <tt>LATEST</tt> . AWS
--   OpsWorks automatically installs new agent versions on the stack's
--   instances as soon as they are available. * Fixed version - Set this
--   parameter to your preferred agent version. To update the agent
--   version, you must edit the stack configuration and specify a new
--   version. AWS OpsWorks then automatically installs that version on the
--   stack's instances. The default setting is <tt>LATEST</tt> . To specify
--   an agent version, you must use the complete version number, not the
--   abbreviated number shown on the console. For a list of available agent
--   version numbers, call <tt>DescribeAgentVersions</tt> .
cAgentVersion :: Lens' CloneStack (Maybe Text)

-- | A default Amazon EC2 key pair name. The default value is none. If you
--   specify a key pair name, AWS OpsWorks installs the public key on the
--   instance and you can use the private key with an SSH client to log in
--   to the instance. For more information, see <a>Using SSH to Communicate
--   with an Instance</a> and <a>Managing SSH Access</a> . You can override
--   this setting by specifying a different key pair, or no key pair, when
--   you <a>create an instance</a> .
cDefaultSSHKeyName :: Lens' CloneStack (Maybe Text)

-- | A string that contains user-defined, custom JSON. It is used to
--   override the corresponding default stack configuration JSON values.
--   The string should be in the following format: <tt>"{"key1": "value1",
--   "key2": "value2",...}"</tt> For more information on custom JSON, see
--   <a>Use Custom JSON to Modify the Stack Configuration Attributes</a>
cCustomJSON :: Lens' CloneStack (Maybe Text)

-- | Whether to clone the source stack's permissions.
cClonePermissions :: Lens' CloneStack (Maybe Bool)

-- | Undocumented member.
cCustomCookbooksSource :: Lens' CloneStack (Maybe Source)

-- | The cloned stack's default Availability Zone, which must be in the
--   specified region. For more information, see <a>Regions and
--   Endpoints</a> . If you also specify a value for
--   <tt>DefaultSubnetId</tt> , the subnet must be in the same zone. For
--   more information, see the <tt>VpcId</tt> parameter description.
cDefaultAvailabilityZone :: Lens' CloneStack (Maybe Text)

-- | A list of stack attributes and values as key/value pairs to be added
--   to the cloned stack.
cAttributes :: Lens' CloneStack (HashMap StackAttributesKeys Text)

-- | The cloned stack name.
cName :: Lens' CloneStack (Maybe Text)

-- | The stack's operating system, which must be set to one of the
--   following. * A supported Linux operating system: An Amazon Linux
--   version, such as <tt>Amazon Linux 2016.03</tt> , <tt>Amazon Linux
--   2015.09</tt> , or <tt>Amazon Linux 2015.03</tt> . * A supported Ubuntu
--   operating system, such as <tt>Ubuntu 16.04 LTS</tt> , <tt>Ubuntu 14.04
--   LTS</tt> , or <tt>Ubuntu 12.04 LTS</tt> . * <tt>CentOS 7</tt> *
--   <tt>Red Hat Enterprise Linux 7</tt> * <tt>Microsoft Windows Server
--   2012 R2 Base</tt> , <tt>Microsoft Windows Server 2012 R2 with SQL
--   Server Express</tt> , <tt>Microsoft Windows Server 2012 R2 with SQL
--   Server Standard</tt> , or <tt>Microsoft Windows Server 2012 R2 with
--   SQL Server Web</tt> . * A custom AMI: <tt>Custom</tt> . You specify
--   the custom AMI you want to use when you create instances. For more
--   information on how to use custom AMIs with OpsWorks, see <a>Using
--   Custom AMIs</a> . The default option is the parent stack's operating
--   system. For more information on the supported operating systems, see
--   <a>AWS OpsWorks Operating Systems</a> .
cDefaultOS :: Lens' CloneStack (Maybe Text)

-- | Whether to associate the AWS OpsWorks built-in security groups with
--   the stack's layers. AWS OpsWorks provides a standard set of built-in
--   security groups, one for each layer, which are associated with layers
--   by default. With <tt>UseOpsworksSecurityGroups</tt> you can instead
--   provide your own custom security groups.
--   <tt>UseOpsworksSecurityGroups</tt> has the following settings: * True
--   - AWS OpsWorks automatically associates the appropriate built-in
--   security group with each layer (default setting). You can associate
--   additional security groups with a layer after you create it but you
--   cannot delete the built-in security group. * False - AWS OpsWorks does
--   not associate built-in security groups with layers. You must create
--   appropriate Amazon Elastic Compute Cloud (Amazon EC2) security groups
--   and associate a security group with each layer that you create.
--   However, you can still manually associate a built-in security group
--   with a layer on creation; custom security groups are required only for
--   those layers that need custom settings. For more information, see
--   <a>Create a New Stack</a> .
cUseOpsworksSecurityGroups :: Lens' CloneStack (Maybe Bool)

-- | Whether to use custom cookbooks.
cUseCustomCookbooks :: Lens' CloneStack (Maybe Bool)

-- | The stack's default VPC subnet ID. This parameter is required if you
--   specify a value for the <tt>VpcId</tt> parameter. All instances are
--   launched into this subnet unless you specify otherwise when you create
--   the instance. If you also specify a value for
--   <tt>DefaultAvailabilityZone</tt> , the subnet must be in that zone.
--   For information on default values and when this parameter is required,
--   see the <tt>VpcId</tt> parameter description.
cDefaultSubnetId :: Lens' CloneStack (Maybe Text)

-- | The cloned stack AWS region, such as "ap-northeast-2". For more
--   information about AWS regions, see <a>Regions and Endpoints</a> .
cRegion :: Lens' CloneStack (Maybe Text)

-- | The configuration manager. When you clone a stack we recommend that
--   you use the configuration manager to specify the Chef version: 12,
--   11.10, or 11.4 for Linux stacks, or 12.2 for Windows stacks. The
--   default value for Linux stacks is currently 12.
cConfigurationManager :: Lens' CloneStack (Maybe StackConfigurationManager)

-- | The stack's host name theme, with spaces are replaced by underscores.
--   The theme is used to generate host names for the stack's instances. By
--   default, <tt>HostnameTheme</tt> is set to <tt>Layer_Dependent</tt> ,
--   which creates host names by appending integers to the layer's short
--   name. The other themes are: * <tt>Baked_Goods</tt> * <tt>Clouds</tt> *
--   <tt>Europe_Cities</tt> * <tt>Fruits</tt> * <tt>Greek_Deities</tt> *
--   <tt>Legendary_creatures_from_Japan</tt> * <tt>Planets_and_Moons</tt> *
--   <tt>Roman_Deities</tt> * <tt>Scottish_Islands</tt> *
--   <tt>US_Cities</tt> * <tt>Wild_Cats</tt> To obtain a generated host
--   name, call <tt>GetHostNameSuggestion</tt> , which returns a host name
--   based on the current theme.
cHostnameTheme :: Lens' CloneStack (Maybe Text)

-- | The source stack ID.
cSourceStackId :: Lens' CloneStack Text

-- | The stack AWS Identity and Access Management (IAM) role, which allows
--   AWS OpsWorks to work with AWS resources on your behalf. You must set
--   this parameter to the Amazon Resource Name (ARN) for an existing IAM
--   role. If you create a stack by using the AWS OpsWorks console, it
--   creates the role for you. You can obtain an existing stack's IAM ARN
--   programmatically by calling <tt>DescribePermissions</tt> . For more
--   information about IAM ARNs, see <a>Using Identifiers</a> .
cServiceRoleARN :: Lens' CloneStack Text

-- | Creates a value of <a>CloneStackResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csrsStackId</a> - The cloned stack ID.</li>
--   <li><a>csrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
cloneStackResponse :: Int -> CloneStackResponse

-- | Contains the response to a <tt>CloneStack</tt> request.
--   
--   <i>See:</i> <a>cloneStackResponse</a> smart constructor.
data CloneStackResponse

-- | The cloned stack ID.
csrsStackId :: Lens' CloneStackResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
csrsResponseStatus :: Lens' CloneStackResponse Int
instance GHC.Generics.Generic Network.AWS.OpsWorks.CloneStack.CloneStackResponse
instance Data.Data.Data Network.AWS.OpsWorks.CloneStack.CloneStackResponse
instance GHC.Show.Show Network.AWS.OpsWorks.CloneStack.CloneStackResponse
instance GHC.Read.Read Network.AWS.OpsWorks.CloneStack.CloneStackResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.CloneStack.CloneStackResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.CloneStack.CloneStack
instance Data.Data.Data Network.AWS.OpsWorks.CloneStack.CloneStack
instance GHC.Show.Show Network.AWS.OpsWorks.CloneStack.CloneStack
instance GHC.Read.Read Network.AWS.OpsWorks.CloneStack.CloneStack
instance GHC.Classes.Eq Network.AWS.OpsWorks.CloneStack.CloneStack
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.CloneStack.CloneStack
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.CloneStack.CloneStack
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.CloneStack.CloneStack
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.CloneStack.CloneStack
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.CloneStack.CloneStack
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.CloneStack.CloneStack
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.CloneStack.CloneStack
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.CloneStack.CloneStackResponse


-- | Attaches an Elastic Load Balancing load balancer to a specified layer.
--   For more information, see <a>Elastic Load Balancing</a> .
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.AttachElasticLoadBalancer

-- | Creates a value of <a>AttachElasticLoadBalancer</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aelbElasticLoadBalancerName</a> - The Elastic Load Balancing
--   instance's name.</li>
--   <li><a>aelbLayerId</a> - The ID of the layer that the Elastic Load
--   Balancing instance is to be attached to.</li>
--   </ul>
attachElasticLoadBalancer :: Text -> Text -> AttachElasticLoadBalancer

-- | <i>See:</i> <a>attachElasticLoadBalancer</a> smart constructor.
data AttachElasticLoadBalancer

-- | The Elastic Load Balancing instance's name.
aelbElasticLoadBalancerName :: Lens' AttachElasticLoadBalancer Text

-- | The ID of the layer that the Elastic Load Balancing instance is to be
--   attached to.
aelbLayerId :: Lens' AttachElasticLoadBalancer Text

-- | Creates a value of <a>AttachElasticLoadBalancerResponse</a> with the
--   minimum fields required to make a request.
attachElasticLoadBalancerResponse :: AttachElasticLoadBalancerResponse

-- | <i>See:</i> <a>attachElasticLoadBalancerResponse</a> smart
--   constructor.
data AttachElasticLoadBalancerResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.AttachElasticLoadBalancer.AttachElasticLoadBalancerResponse
instance Data.Data.Data Network.AWS.OpsWorks.AttachElasticLoadBalancer.AttachElasticLoadBalancerResponse
instance GHC.Show.Show Network.AWS.OpsWorks.AttachElasticLoadBalancer.AttachElasticLoadBalancerResponse
instance GHC.Read.Read Network.AWS.OpsWorks.AttachElasticLoadBalancer.AttachElasticLoadBalancerResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.AttachElasticLoadBalancer.AttachElasticLoadBalancerResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.AttachElasticLoadBalancer.AttachElasticLoadBalancer
instance Data.Data.Data Network.AWS.OpsWorks.AttachElasticLoadBalancer.AttachElasticLoadBalancer
instance GHC.Show.Show Network.AWS.OpsWorks.AttachElasticLoadBalancer.AttachElasticLoadBalancer
instance GHC.Read.Read Network.AWS.OpsWorks.AttachElasticLoadBalancer.AttachElasticLoadBalancer
instance GHC.Classes.Eq Network.AWS.OpsWorks.AttachElasticLoadBalancer.AttachElasticLoadBalancer
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.AttachElasticLoadBalancer.AttachElasticLoadBalancer
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.AttachElasticLoadBalancer.AttachElasticLoadBalancer
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.AttachElasticLoadBalancer.AttachElasticLoadBalancer
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.AttachElasticLoadBalancer.AttachElasticLoadBalancer
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.AttachElasticLoadBalancer.AttachElasticLoadBalancer
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.AttachElasticLoadBalancer.AttachElasticLoadBalancer
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.AttachElasticLoadBalancer.AttachElasticLoadBalancer
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.AttachElasticLoadBalancer.AttachElasticLoadBalancerResponse


-- | Associates one of the stack's registered Elastic IP addresses with a
--   specified instance. The address must first be registered with the
--   stack by calling <tt>RegisterElasticIp</tt> . For more information,
--   see <a>Resource Management</a> .
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.AssociateElasticIP

-- | Creates a value of <a>AssociateElasticIP</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aeiInstanceId</a> - The instance ID.</li>
--   <li><a>aeiElasticIP</a> - The Elastic IP address.</li>
--   </ul>
associateElasticIP :: Text -> AssociateElasticIP

-- | <i>See:</i> <a>associateElasticIP</a> smart constructor.
data AssociateElasticIP

-- | The instance ID.
aeiInstanceId :: Lens' AssociateElasticIP (Maybe Text)

-- | The Elastic IP address.
aeiElasticIP :: Lens' AssociateElasticIP Text

-- | Creates a value of <a>AssociateElasticIPResponse</a> with the minimum
--   fields required to make a request.
associateElasticIPResponse :: AssociateElasticIPResponse

-- | <i>See:</i> <a>associateElasticIPResponse</a> smart constructor.
data AssociateElasticIPResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.AssociateElasticIP.AssociateElasticIPResponse
instance Data.Data.Data Network.AWS.OpsWorks.AssociateElasticIP.AssociateElasticIPResponse
instance GHC.Show.Show Network.AWS.OpsWorks.AssociateElasticIP.AssociateElasticIPResponse
instance GHC.Read.Read Network.AWS.OpsWorks.AssociateElasticIP.AssociateElasticIPResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.AssociateElasticIP.AssociateElasticIPResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.AssociateElasticIP.AssociateElasticIP
instance Data.Data.Data Network.AWS.OpsWorks.AssociateElasticIP.AssociateElasticIP
instance GHC.Show.Show Network.AWS.OpsWorks.AssociateElasticIP.AssociateElasticIP
instance GHC.Read.Read Network.AWS.OpsWorks.AssociateElasticIP.AssociateElasticIP
instance GHC.Classes.Eq Network.AWS.OpsWorks.AssociateElasticIP.AssociateElasticIP
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.AssociateElasticIP.AssociateElasticIP
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.AssociateElasticIP.AssociateElasticIP
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.AssociateElasticIP.AssociateElasticIP
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.AssociateElasticIP.AssociateElasticIP
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.AssociateElasticIP.AssociateElasticIP
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.AssociateElasticIP.AssociateElasticIP
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.AssociateElasticIP.AssociateElasticIP
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.AssociateElasticIP.AssociateElasticIPResponse


-- | Assigns one of the stack's registered Amazon EBS volumes to a
--   specified instance. The volume must first be registered with the stack
--   by calling <tt>RegisterVolume</tt> . After you register the volume,
--   you must call <tt>UpdateVolume</tt> to specify a mount point before
--   calling <tt>AssignVolume</tt> . For more information, see <a>Resource
--   Management</a> .
--   
--   <b>Required Permissions</b> : To use this action, an IAM user must
--   have a Manage permissions level for the stack, or an attached policy
--   that explicitly grants permissions. For more information on user
--   permissions, see <a>Managing User Permissions</a> .
module Network.AWS.OpsWorks.AssignVolume

-- | Creates a value of <a>AssignVolume</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>avInstanceId</a> - The instance ID.</li>
--   <li><a>avVolumeId</a> - The volume ID.</li>
--   </ul>
assignVolume :: Text -> AssignVolume

-- | <i>See:</i> <a>assignVolume</a> smart constructor.
data AssignVolume

-- | The instance ID.
avInstanceId :: Lens' AssignVolume (Maybe Text)

-- | The volume ID.
avVolumeId :: Lens' AssignVolume Text

-- | Creates a value of <a>AssignVolumeResponse</a> with the minimum fields
--   required to make a request.
assignVolumeResponse :: AssignVolumeResponse

-- | <i>See:</i> <a>assignVolumeResponse</a> smart constructor.
data AssignVolumeResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.AssignVolume.AssignVolumeResponse
instance Data.Data.Data Network.AWS.OpsWorks.AssignVolume.AssignVolumeResponse
instance GHC.Show.Show Network.AWS.OpsWorks.AssignVolume.AssignVolumeResponse
instance GHC.Read.Read Network.AWS.OpsWorks.AssignVolume.AssignVolumeResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.AssignVolume.AssignVolumeResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.AssignVolume.AssignVolume
instance Data.Data.Data Network.AWS.OpsWorks.AssignVolume.AssignVolume
instance GHC.Show.Show Network.AWS.OpsWorks.AssignVolume.AssignVolume
instance GHC.Read.Read Network.AWS.OpsWorks.AssignVolume.AssignVolume
instance GHC.Classes.Eq Network.AWS.OpsWorks.AssignVolume.AssignVolume
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.AssignVolume.AssignVolume
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.AssignVolume.AssignVolume
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.AssignVolume.AssignVolume
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.AssignVolume.AssignVolume
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.AssignVolume.AssignVolume
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.AssignVolume.AssignVolume
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.AssignVolume.AssignVolume
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.AssignVolume.AssignVolumeResponse


-- | Assign a registered instance to a layer.
--   
--   <ul>
--   <li>You can assign registered on-premises instances to any layer
--   type.</li>
--   <li>You can assign registered Amazon EC2 instances only to custom
--   layers.</li>
--   <li>You cannot use this action with instances that were created with
--   AWS OpsWorks.</li>
--   </ul>
--   
--   <b>Required Permissions</b> : To use this action, an AWS Identity and
--   Access Management (IAM) user must have a Manage permissions level for
--   the stack or an attached policy that explicitly grants permissions.
--   For more information on user permissions, see <a>Managing User
--   Permissions</a> .
module Network.AWS.OpsWorks.AssignInstance

-- | Creates a value of <a>AssignInstance</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aiInstanceId</a> - The instance ID.</li>
--   <li><a>aiLayerIds</a> - The layer ID, which must correspond to a
--   custom layer. You cannot assign a registered instance to a built-in
--   layer.</li>
--   </ul>
assignInstance :: Text -> AssignInstance

-- | <i>See:</i> <a>assignInstance</a> smart constructor.
data AssignInstance

-- | The instance ID.
aiInstanceId :: Lens' AssignInstance Text

-- | The layer ID, which must correspond to a custom layer. You cannot
--   assign a registered instance to a built-in layer.
aiLayerIds :: Lens' AssignInstance [Text]

-- | Creates a value of <a>AssignInstanceResponse</a> with the minimum
--   fields required to make a request.
assignInstanceResponse :: AssignInstanceResponse

-- | <i>See:</i> <a>assignInstanceResponse</a> smart constructor.
data AssignInstanceResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.AssignInstance.AssignInstanceResponse
instance Data.Data.Data Network.AWS.OpsWorks.AssignInstance.AssignInstanceResponse
instance GHC.Show.Show Network.AWS.OpsWorks.AssignInstance.AssignInstanceResponse
instance GHC.Read.Read Network.AWS.OpsWorks.AssignInstance.AssignInstanceResponse
instance GHC.Classes.Eq Network.AWS.OpsWorks.AssignInstance.AssignInstanceResponse
instance GHC.Generics.Generic Network.AWS.OpsWorks.AssignInstance.AssignInstance
instance Data.Data.Data Network.AWS.OpsWorks.AssignInstance.AssignInstance
instance GHC.Show.Show Network.AWS.OpsWorks.AssignInstance.AssignInstance
instance GHC.Read.Read Network.AWS.OpsWorks.AssignInstance.AssignInstance
instance GHC.Classes.Eq Network.AWS.OpsWorks.AssignInstance.AssignInstance
instance Network.AWS.Types.AWSRequest Network.AWS.OpsWorks.AssignInstance.AssignInstance
instance Data.Hashable.Class.Hashable Network.AWS.OpsWorks.AssignInstance.AssignInstance
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.AssignInstance.AssignInstance
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.OpsWorks.AssignInstance.AssignInstance
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.OpsWorks.AssignInstance.AssignInstance
instance Network.AWS.Data.Path.ToPath Network.AWS.OpsWorks.AssignInstance.AssignInstance
instance Network.AWS.Data.Query.ToQuery Network.AWS.OpsWorks.AssignInstance.AssignInstance
instance Control.DeepSeq.NFData Network.AWS.OpsWorks.AssignInstance.AssignInstanceResponse


-- | <b>AWS OpsWorks</b>
--   
--   Welcome to the <i>AWS OpsWorks API Reference</i> . This guide provides
--   descriptions, syntax, and usage examples for AWS OpsWorks actions and
--   data types, including common parameters and error codes.
--   
--   AWS OpsWorks is an application management service that provides an
--   integrated experience for overseeing the complete application
--   lifecycle. For information about this product, go to the <a>AWS
--   OpsWorks</a> details page.
--   
--   <b>SDKs and CLI</b>
--   
--   The most common way to use the AWS OpsWorks API is by using the AWS
--   Command Line Interface (CLI) or by using one of the AWS SDKs to
--   implement applications in your preferred language. For more
--   information, see:
--   
--   <ul>
--   <li><a>AWS CLI</a></li>
--   <li><a>AWS SDK for Java</a></li>
--   <li><a>AWS SDK for .NET</a></li>
--   <li><a>AWS SDK for PHP 2</a></li>
--   <li><a>AWS SDK for Ruby</a></li>
--   <li><a>AWS SDK for Node.js</a></li>
--   <li><a>AWS SDK for Python(Boto)</a></li>
--   </ul>
--   
--   <b>Endpoints</b>
--   
--   AWS OpsWorks supports the following endpoints, all HTTPS. You must
--   connect to one of the following endpoints. Stacks can only be accessed
--   or managed within the endpoint in which they are created.
--   
--   <ul>
--   <li>opsworks.us-east-1.amazonaws.com</li>
--   <li>opsworks.us-west-1.amazonaws.com</li>
--   <li>opsworks.us-west-2.amazonaws.com</li>
--   <li>opsworks.eu-west-1.amazonaws.com</li>
--   <li>opsworks.eu-central-1.amazonaws.com</li>
--   <li>opsworks.ap-northeast-1.amazonaws.com</li>
--   <li>opsworks.ap-northeast-2.amazonaws.com</li>
--   <li>opsworks.ap-south-1.amazonaws.com</li>
--   <li>opsworks.ap-southeast-1.amazonaws.com</li>
--   <li>opsworks.ap-southeast-2.amazonaws.com</li>
--   <li>opsworks.sa-east-1.amazonaws.com</li>
--   </ul>
--   
--   <b>Chef Versions</b>
--   
--   When you call <a>CreateStack</a> , <a>CloneStack</a> , or
--   <a>UpdateStack</a> we recommend you use the
--   <tt>ConfigurationManager</tt> parameter to specify the Chef version.
--   The recommended and default value for Linux stacks is currently 12.
--   Windows stacks use Chef 12.2. For more information, see <a>Chef
--   Versions</a> .
module Network.AWS.OpsWorks

-- | API version <tt>2013-02-18</tt> of the Amazon OpsWorks SDK
--   configuration.
opsWorks :: Service

-- | Indicates that a request was not valid.
_ValidationException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Indicates that a resource was not found.
_ResourceNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Polls <a>DescribeInstances</a> every 15 seconds until a successful
--   state is reached. An error is returned after 40 failed checks.
instanceTerminated :: Wait DescribeInstances

-- | Polls <a>DescribeDeployments</a> every 15 seconds until a successful
--   state is reached. An error is returned after 40 failed checks.
deploymentSuccessful :: Wait DescribeDeployments

-- | Polls <a>DescribeInstances</a> every 15 seconds until a successful
--   state is reached. An error is returned after 40 failed checks.
instanceStopped :: Wait DescribeInstances

-- | Polls <a>DescribeInstances</a> every 15 seconds until a successful
--   state is reached. An error is returned after 40 failed checks.
instanceOnline :: Wait DescribeInstances

-- | Polls <a>DescribeApps</a> every 1 seconds until a successful state is
--   reached. An error is returned after 40 failed checks.
appExists :: Wait DescribeApps

-- | Polls <a>DescribeInstances</a> every 15 seconds until a successful
--   state is reached. An error is returned after 40 failed checks.
instanceRegistered :: Wait DescribeInstances
data AppAttributesKeys
AWSFlowRubySettings :: AppAttributesKeys
AutoBundleOnDeploy :: AppAttributesKeys
DocumentRoot :: AppAttributesKeys
RailsEnv :: AppAttributesKeys
data AppType
ATAWSFlowRuby :: AppType
ATJava :: AppType
ATNodejs :: AppType
ATOther :: AppType
ATPHP :: AppType
ATRails :: AppType
ATStatic :: AppType
data Architecture
I386 :: Architecture
X86_64 :: Architecture
data AutoScalingType
Load :: AutoScalingType
Timer :: AutoScalingType
data DeploymentCommandName
Configure :: DeploymentCommandName
Deploy :: DeploymentCommandName
ExecuteRecipes :: DeploymentCommandName
InstallDependencies :: DeploymentCommandName
Restart :: DeploymentCommandName
Rollback :: DeploymentCommandName
Setup :: DeploymentCommandName
Start :: DeploymentCommandName
Stop :: DeploymentCommandName
Undeploy :: DeploymentCommandName
UpdateCustomCookbooks :: DeploymentCommandName
UpdateDependencies :: DeploymentCommandName
data LayerAttributesKeys
BundlerVersion :: LayerAttributesKeys
EcsClusterARN :: LayerAttributesKeys
EnableHaproxyStats :: LayerAttributesKeys
GangliaPassword :: LayerAttributesKeys
GangliaURL :: LayerAttributesKeys
GangliaUser :: LayerAttributesKeys
HaproxyHealthCheckMethod :: LayerAttributesKeys
HaproxyHealthCheckURL :: LayerAttributesKeys
HaproxyStatsPassword :: LayerAttributesKeys
HaproxyStatsURL :: LayerAttributesKeys
HaproxyStatsUser :: LayerAttributesKeys
JVM :: LayerAttributesKeys
JVMOptions :: LayerAttributesKeys
JVMVersion :: LayerAttributesKeys
JavaAppServer :: LayerAttributesKeys
JavaAppServerVersion :: LayerAttributesKeys
ManageBundler :: LayerAttributesKeys
MemcachedMemory :: LayerAttributesKeys
MysqlRootPassword :: LayerAttributesKeys
MysqlRootPasswordUbiquitous :: LayerAttributesKeys
NodejsVersion :: LayerAttributesKeys
PassengerVersion :: LayerAttributesKeys
RailsStack :: LayerAttributesKeys
RubyVersion :: LayerAttributesKeys
RubygemsVersion :: LayerAttributesKeys
data LayerType
AWSFlowRuby :: LayerType
Custom :: LayerType
DBMaster :: LayerType
EcsCluster :: LayerType
JavaApp :: LayerType
LB :: LayerType
Memcached :: LayerType
MonitoringMaster :: LayerType
NodejsApp :: LayerType
PHPApp :: LayerType
RailsApp :: LayerType
Web :: LayerType
data RootDeviceType
EBS :: RootDeviceType
InstanceStore :: RootDeviceType
data SourceType
Archive :: SourceType
Git :: SourceType
S3 :: SourceType
SVN :: SourceType
data StackAttributesKeys
Color :: StackAttributesKeys
data VirtualizationType
HVM :: VirtualizationType
Paravirtual :: VirtualizationType
data VolumeType
GP2 :: VolumeType
IO1 :: VolumeType
Standard :: VolumeType

-- | Describes an agent version.
--   
--   <i>See:</i> <a>agentVersion</a> smart constructor.
data AgentVersion

-- | Creates a value of <a>AgentVersion</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>avVersion</a> - The agent version.</li>
--   <li><a>avConfigurationManager</a> - The configuration manager.</li>
--   </ul>
agentVersion :: AgentVersion

-- | The agent version.
avVersion :: Lens' AgentVersion (Maybe Text)

-- | The configuration manager.
avConfigurationManager :: Lens' AgentVersion (Maybe StackConfigurationManager)

-- | A description of the app.
--   
--   <i>See:</i> <a>app</a> smart constructor.
data App

-- | Creates a value of <a>App</a> with the minimum fields required to make
--   a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>appSSLConfiguration</a> - An <tt>SslConfiguration</tt> object
--   with the SSL configuration.</li>
--   <li><a>appEnvironment</a> - An array of <tt>EnvironmentVariable</tt>
--   objects that specify environment variables to be associated with the
--   app. After you deploy the app, these variables are defined on the
--   associated app server instances. For more information, see
--   <a>Environment Variables</a> .</li>
--   <li><a>appEnableSSL</a> - Whether to enable SSL for the app.</li>
--   <li><a>appCreatedAt</a> - When the app was created.</li>
--   <li><a>appShortname</a> - The app's short name.</li>
--   <li><a>appDataSources</a> - The app's data sources.</li>
--   <li><a>appAppSource</a> - A <tt>Source</tt> object that describes the
--   app repository.</li>
--   <li><a>appAppId</a> - The app ID.</li>
--   <li><a>appAttributes</a> - The stack attributes.</li>
--   <li><a>appName</a> - The app name.</li>
--   <li><a>appType</a> - The app type.</li>
--   <li><a>appStackId</a> - The app stack ID.</li>
--   <li><a>appDomains</a> - The app vhost settings with multiple domains
--   separated by commas. For example: <tt>'www.example.com,
--   example.com'</tt></li>
--   <li><a>appDescription</a> - A description of the app.</li>
--   </ul>
app :: App

-- | An <tt>SslConfiguration</tt> object with the SSL configuration.
appSSLConfiguration :: Lens' App (Maybe SSLConfiguration)

-- | An array of <tt>EnvironmentVariable</tt> objects that specify
--   environment variables to be associated with the app. After you deploy
--   the app, these variables are defined on the associated app server
--   instances. For more information, see <a>Environment Variables</a> .
appEnvironment :: Lens' App [EnvironmentVariable]

-- | Whether to enable SSL for the app.
appEnableSSL :: Lens' App (Maybe Bool)

-- | When the app was created.
appCreatedAt :: Lens' App (Maybe Text)

-- | The app's short name.
appShortname :: Lens' App (Maybe Text)

-- | The app's data sources.
appDataSources :: Lens' App [DataSource]

-- | A <tt>Source</tt> object that describes the app repository.
appAppSource :: Lens' App (Maybe Source)

-- | The app ID.
appAppId :: Lens' App (Maybe Text)

-- | The stack attributes.
appAttributes :: Lens' App (HashMap AppAttributesKeys Text)

-- | The app name.
appName :: Lens' App (Maybe Text)

-- | The app type.
appType :: Lens' App (Maybe AppType)

-- | The app stack ID.
appStackId :: Lens' App (Maybe Text)

-- | The app vhost settings with multiple domains separated by commas. For
--   example: <tt>'www.example.com, example.com'</tt>
appDomains :: Lens' App [Text]

-- | A description of the app.
appDescription :: Lens' App (Maybe Text)

-- | Describes a load-based auto scaling upscaling or downscaling threshold
--   configuration, which specifies when AWS OpsWorks starts or stops
--   load-based instances.
--   
--   <i>See:</i> <a>autoScalingThresholds</a> smart constructor.
data AutoScalingThresholds

-- | Creates a value of <a>AutoScalingThresholds</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>astInstanceCount</a> - The number of instances to add or remove
--   when the load exceeds a threshold.</li>
--   <li><a>astIgnoreMetricsTime</a> - The amount of time (in minutes)
--   after a scaling event occurs that AWS OpsWorks should ignore metrics
--   and suppress additional scaling events. For example, AWS OpsWorks adds
--   new instances following an upscaling event but the instances won't
--   start reducing the load until they have been booted and configured.
--   There is no point in raising additional scaling events during that
--   operation, which typically takes several minutes.
--   <tt>IgnoreMetricsTime</tt> allows you to direct AWS OpsWorks to
--   suppress scaling events long enough to get the new instances
--   online.</li>
--   <li><a>astLoadThreshold</a> - The load threshold. A value of -1
--   disables the threshold. For more information about how load is
--   computed, see <a>Load (computing)</a> .</li>
--   <li><a>astThresholdsWaitTime</a> - The amount of time, in minutes,
--   that the load must exceed a threshold before more instances are added
--   or removed.</li>
--   <li><a>astAlarms</a> - Custom Cloudwatch auto scaling alarms, to be
--   used as thresholds. This parameter takes a list of up to five alarm
--   names, which are case sensitive and must be in the same region as the
--   stack.</li>
--   <li><a>astMemoryThreshold</a> - The memory utilization threshold, as a
--   percent of the available memory. A value of -1 disables the
--   threshold.</li>
--   <li><a>astCPUThreshold</a> - The CPU utilization threshold, as a
--   percent of the available CPU. A value of -1 disables the
--   threshold.</li>
--   </ul>
autoScalingThresholds :: AutoScalingThresholds

-- | The number of instances to add or remove when the load exceeds a
--   threshold.
astInstanceCount :: Lens' AutoScalingThresholds (Maybe Int)

-- | The amount of time (in minutes) after a scaling event occurs that AWS
--   OpsWorks should ignore metrics and suppress additional scaling events.
--   For example, AWS OpsWorks adds new instances following an upscaling
--   event but the instances won't start reducing the load until they have
--   been booted and configured. There is no point in raising additional
--   scaling events during that operation, which typically takes several
--   minutes. <tt>IgnoreMetricsTime</tt> allows you to direct AWS OpsWorks
--   to suppress scaling events long enough to get the new instances
--   online.
astIgnoreMetricsTime :: Lens' AutoScalingThresholds (Maybe Natural)

-- | The load threshold. A value of -1 disables the threshold. For more
--   information about how load is computed, see <a>Load (computing)</a> .
astLoadThreshold :: Lens' AutoScalingThresholds (Maybe Double)

-- | The amount of time, in minutes, that the load must exceed a threshold
--   before more instances are added or removed.
astThresholdsWaitTime :: Lens' AutoScalingThresholds (Maybe Natural)

-- | Custom Cloudwatch auto scaling alarms, to be used as thresholds. This
--   parameter takes a list of up to five alarm names, which are case
--   sensitive and must be in the same region as the stack.
astAlarms :: Lens' AutoScalingThresholds [Text]

-- | The memory utilization threshold, as a percent of the available
--   memory. A value of -1 disables the threshold.
astMemoryThreshold :: Lens' AutoScalingThresholds (Maybe Double)

-- | The CPU utilization threshold, as a percent of the available CPU. A
--   value of -1 disables the threshold.
astCPUThreshold :: Lens' AutoScalingThresholds (Maybe Double)

-- | Describes a block device mapping. This data type maps directly to the
--   Amazon EC2 <a>BlockDeviceMapping</a> data type.
--   
--   <i>See:</i> <a>blockDeviceMapping</a> smart constructor.
data BlockDeviceMapping

-- | Creates a value of <a>BlockDeviceMapping</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bdmVirtualName</a> - The virtual device name. For more
--   information, see <a>BlockDeviceMapping</a> .</li>
--   <li><a>bdmNoDevice</a> - Suppresses the specified device included in
--   the AMI's block device mapping.</li>
--   <li><a>bdmEBS</a> - An <tt>EBSBlockDevice</tt> that defines how to
--   configure an Amazon EBS volume when the instance is launched.</li>
--   <li><a>bdmDeviceName</a> - The device name that is exposed to the
--   instance, such as <tt><i>dev</i>sdh</tt> . For the root device, you
--   can use the explicit device name or you can set this parameter to
--   <tt>ROOT_DEVICE</tt> and AWS OpsWorks will provide the correct device
--   name.</li>
--   </ul>
blockDeviceMapping :: BlockDeviceMapping

-- | The virtual device name. For more information, see
--   <a>BlockDeviceMapping</a> .
bdmVirtualName :: Lens' BlockDeviceMapping (Maybe Text)

-- | Suppresses the specified device included in the AMI's block device
--   mapping.
bdmNoDevice :: Lens' BlockDeviceMapping (Maybe Text)

-- | An <tt>EBSBlockDevice</tt> that defines how to configure an Amazon EBS
--   volume when the instance is launched.
bdmEBS :: Lens' BlockDeviceMapping (Maybe EBSBlockDevice)

-- | The device name that is exposed to the instance, such as
--   <tt><i>dev</i>sdh</tt> . For the root device, you can use the explicit
--   device name or you can set this parameter to <tt>ROOT_DEVICE</tt> and
--   AWS OpsWorks will provide the correct device name.
bdmDeviceName :: Lens' BlockDeviceMapping (Maybe Text)

-- | Describes the Chef configuration.
--   
--   <i>See:</i> <a>chefConfiguration</a> smart constructor.
data ChefConfiguration

-- | Creates a value of <a>ChefConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ccBerkshelfVersion</a> - The Berkshelf version.</li>
--   <li><a>ccManageBerkshelf</a> - Whether to enable Berkshelf.</li>
--   </ul>
chefConfiguration :: ChefConfiguration

-- | The Berkshelf version.
ccBerkshelfVersion :: Lens' ChefConfiguration (Maybe Text)

-- | Whether to enable Berkshelf.
ccManageBerkshelf :: Lens' ChefConfiguration (Maybe Bool)

-- | Describes a command.
--   
--   <i>See:</i> <a>command</a> smart constructor.
data Command

-- | Creates a value of <a>Command</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cDeploymentId</a> - The command deployment ID.</li>
--   <li><a>cInstanceId</a> - The ID of the instance where the command was
--   executed.</li>
--   <li><a>cStatus</a> - The command status: * failed * successful *
--   skipped * pending</li>
--   <li><a>cLogURL</a> - The URL of the command log.</li>
--   <li><a>cCreatedAt</a> - Date and time when the command was run.</li>
--   <li><a>cCommandId</a> - The command ID.</li>
--   <li><a>cExitCode</a> - The command exit code.</li>
--   <li><a>cType</a> - The command type: * <tt>deploy</tt> *
--   <tt>rollback</tt> * <tt>start</tt> * <tt>stop</tt> * <tt>restart</tt>
--   * <tt>undeploy</tt> * <tt>update_dependencies</tt> *
--   <tt>install_dependencies</tt> * <tt>update_custom_cookbooks</tt> *
--   <tt>execute_recipes</tt></li>
--   <li><a>cCompletedAt</a> - Date when the command completed.</li>
--   <li><a>cAcknowledgedAt</a> - Date and time when the command was
--   acknowledged.</li>
--   </ul>
command :: Command

-- | The command deployment ID.
cDeploymentId :: Lens' Command (Maybe Text)

-- | The ID of the instance where the command was executed.
cInstanceId :: Lens' Command (Maybe Text)

-- | The command status: * failed * successful * skipped * pending
cStatus :: Lens' Command (Maybe Text)

-- | The URL of the command log.
cLogURL :: Lens' Command (Maybe Text)

-- | Date and time when the command was run.
cCreatedAt :: Lens' Command (Maybe Text)

-- | The command ID.
cCommandId :: Lens' Command (Maybe Text)

-- | The command exit code.
cExitCode :: Lens' Command (Maybe Int)

-- | The command type: * <tt>deploy</tt> * <tt>rollback</tt> *
--   <tt>start</tt> * <tt>stop</tt> * <tt>restart</tt> * <tt>undeploy</tt>
--   * <tt>update_dependencies</tt> * <tt>install_dependencies</tt> *
--   <tt>update_custom_cookbooks</tt> * <tt>execute_recipes</tt>
cType :: Lens' Command (Maybe Text)

-- | Date when the command completed.
cCompletedAt :: Lens' Command (Maybe Text)

-- | Date and time when the command was acknowledged.
cAcknowledgedAt :: Lens' Command (Maybe Text)

-- | Describes an app's data source.
--   
--   <i>See:</i> <a>dataSource</a> smart constructor.
data DataSource

-- | Creates a value of <a>DataSource</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsARN</a> - The data source's ARN.</li>
--   <li><a>dsDatabaseName</a> - The database name.</li>
--   <li><a>dsType</a> - The data source's type,
--   <tt>AutoSelectOpsworksMysqlInstance</tt> ,
--   <tt>OpsworksMysqlInstance</tt> , or <tt>RdsDbInstance</tt> .</li>
--   </ul>
dataSource :: DataSource

-- | The data source's ARN.
dsARN :: Lens' DataSource (Maybe Text)

-- | The database name.
dsDatabaseName :: Lens' DataSource (Maybe Text)

-- | The data source's type, <tt>AutoSelectOpsworksMysqlInstance</tt> ,
--   <tt>OpsworksMysqlInstance</tt> , or <tt>RdsDbInstance</tt> .
dsType :: Lens' DataSource (Maybe Text)

-- | Describes a deployment of a stack or app.
--   
--   <i>See:</i> <a>deployment</a> smart constructor.
data Deployment

-- | Creates a value of <a>Deployment</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dDeploymentId</a> - The deployment ID.</li>
--   <li><a>dStatus</a> - The deployment status: * running * successful *
--   failed</li>
--   <li><a>dCommand</a> - Undocumented member.</li>
--   <li><a>dCreatedAt</a> - Date when the deployment was created.</li>
--   <li><a>dCustomJSON</a> - A string that contains user-defined custom
--   JSON. It can be used to override the corresponding default stack
--   configuration attribute values for stack or to pass data to recipes.
--   The string should be in the following format: <tt>"{"key1": "value1",
--   "key2": "value2",...}"</tt> For more information on custom JSON, see
--   <a>Use Custom JSON to Modify the Stack Configuration Attributes</a>
--   .</li>
--   <li><a>dIAMUserARN</a> - The user's IAM ARN.</li>
--   <li><a>dAppId</a> - The app ID.</li>
--   <li><a>dInstanceIds</a> - The IDs of the target instances.</li>
--   <li><a>dCompletedAt</a> - Date when the deployment completed.</li>
--   <li><a>dStackId</a> - The stack ID.</li>
--   <li><a>dComment</a> - A user-defined comment.</li>
--   <li><a>dDuration</a> - The deployment duration.</li>
--   </ul>
deployment :: Deployment

-- | The deployment ID.
dDeploymentId :: Lens' Deployment (Maybe Text)

-- | The deployment status: * running * successful * failed
dStatus :: Lens' Deployment (Maybe Text)

-- | Undocumented member.
dCommand :: Lens' Deployment (Maybe DeploymentCommand)

-- | Date when the deployment was created.
dCreatedAt :: Lens' Deployment (Maybe Text)

-- | A string that contains user-defined custom JSON. It can be used to
--   override the corresponding default stack configuration attribute
--   values for stack or to pass data to recipes. The string should be in
--   the following format: <tt>"{"key1": "value1", "key2":
--   "value2",...}"</tt> For more information on custom JSON, see <a>Use
--   Custom JSON to Modify the Stack Configuration Attributes</a> .
dCustomJSON :: Lens' Deployment (Maybe Text)

-- | The user's IAM ARN.
dIAMUserARN :: Lens' Deployment (Maybe Text)

-- | The app ID.
dAppId :: Lens' Deployment (Maybe Text)

-- | The IDs of the target instances.
dInstanceIds :: Lens' Deployment [Text]

-- | Date when the deployment completed.
dCompletedAt :: Lens' Deployment (Maybe Text)

-- | The stack ID.
dStackId :: Lens' Deployment (Maybe Text)

-- | A user-defined comment.
dComment :: Lens' Deployment (Maybe Text)

-- | The deployment duration.
dDuration :: Lens' Deployment (Maybe Int)

-- | Used to specify a stack or deployment command.
--   
--   <i>See:</i> <a>deploymentCommand</a> smart constructor.
data DeploymentCommand

-- | Creates a value of <a>DeploymentCommand</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcArgs</a> - The arguments of those commands that take
--   arguments. It should be set to a JSON object with the following
--   format: <tt>{"arg_name1" : ["value1", "value2", ...], "arg_name2" :
--   ["value1", "value2", ...], ...}</tt> The <tt>update_dependencies</tt>
--   command takes two arguments: * <tt>upgrade_os_to</tt> - Specifies the
--   desired Amazon Linux version for instances whose OS you want to
--   upgrade, such as <tt>Amazon Linux 2014.09</tt> . You must also set the
--   <tt>allow_reboot</tt> argument to true. * <tt>allow_reboot</tt> -
--   Specifies whether to allow AWS OpsWorks to reboot the instances if
--   necessary, after installing the updates. This argument can be set to
--   either <tt>true</tt> or <tt>false</tt> . The default value is
--   <tt>false</tt> . For example, to upgrade an instance to Amazon Linux
--   2014.09, set <tt>Args</tt> to the following. <tt>{
--   "upgrade_os_to":["Amazon Linux 2014.09"], "allow_reboot":["true"] }
--   </tt></li>
--   <li><a>dcName</a> - Specifies the operation. You can specify only one
--   command. For stacks, the following commands are available: *
--   <tt>execute_recipes</tt> : Execute one or more recipes. To specify the
--   recipes, set an <tt>Args</tt> parameter named <tt>recipes</tt> to the
--   list of recipes to be executed. For example, to execute
--   <tt>phpapp::appsetup</tt> , set <tt>Args</tt> to
--   <tt>{"recipes":["phpapp::appsetup"]}</tt> . *
--   <tt>install_dependencies</tt> : Install the stack's dependencies. *
--   <tt>update_custom_cookbooks</tt> : Update the stack's custom
--   cookbooks. * <tt>update_dependencies</tt> : Update the stack's
--   dependencies. For apps, the following commands are available: *
--   <tt>deploy</tt> : Deploy an app. Ruby on Rails apps have an optional
--   <tt>Args</tt> parameter named <tt>migrate</tt> . Set <tt>Args</tt> to
--   {"migrate":["true"]} to migrate the database. The default setting is
--   {"migrate":["false"]}. * <tt>rollback</tt> Roll the app back to the
--   previous version. When you update an app, AWS OpsWorks stores the
--   previous version, up to a maximum of five versions. You can use this
--   command to roll an app back as many as four versions. * <tt>start</tt>
--   : Start the app's web or application server. * <tt>stop</tt> : Stop
--   the app's web or application server. * <tt>restart</tt> : Restart the
--   app's web or application server. * <tt>undeploy</tt> : Undeploy the
--   app.</li>
--   </ul>
deploymentCommand :: DeploymentCommandName -> DeploymentCommand

-- | The arguments of those commands that take arguments. It should be set
--   to a JSON object with the following format: <tt>{"arg_name1" :
--   ["value1", "value2", ...], "arg_name2" : ["value1", "value2", ...],
--   ...}</tt> The <tt>update_dependencies</tt> command takes two
--   arguments: * <tt>upgrade_os_to</tt> - Specifies the desired Amazon
--   Linux version for instances whose OS you want to upgrade, such as
--   <tt>Amazon Linux 2014.09</tt> . You must also set the
--   <tt>allow_reboot</tt> argument to true. * <tt>allow_reboot</tt> -
--   Specifies whether to allow AWS OpsWorks to reboot the instances if
--   necessary, after installing the updates. This argument can be set to
--   either <tt>true</tt> or <tt>false</tt> . The default value is
--   <tt>false</tt> . For example, to upgrade an instance to Amazon Linux
--   2014.09, set <tt>Args</tt> to the following. <tt>{
--   "upgrade_os_to":["Amazon Linux 2014.09"], "allow_reboot":["true"] }
--   </tt>
dcArgs :: Lens' DeploymentCommand (HashMap Text [Text])

-- | Specifies the operation. You can specify only one command. For stacks,
--   the following commands are available: * <tt>execute_recipes</tt> :
--   Execute one or more recipes. To specify the recipes, set an
--   <tt>Args</tt> parameter named <tt>recipes</tt> to the list of recipes
--   to be executed. For example, to execute <tt>phpapp::appsetup</tt> ,
--   set <tt>Args</tt> to <tt>{"recipes":["phpapp::appsetup"]}</tt> . *
--   <tt>install_dependencies</tt> : Install the stack's dependencies. *
--   <tt>update_custom_cookbooks</tt> : Update the stack's custom
--   cookbooks. * <tt>update_dependencies</tt> : Update the stack's
--   dependencies. For apps, the following commands are available: *
--   <tt>deploy</tt> : Deploy an app. Ruby on Rails apps have an optional
--   <tt>Args</tt> parameter named <tt>migrate</tt> . Set <tt>Args</tt> to
--   {"migrate":["true"]} to migrate the database. The default setting is
--   {"migrate":["false"]}. * <tt>rollback</tt> Roll the app back to the
--   previous version. When you update an app, AWS OpsWorks stores the
--   previous version, up to a maximum of five versions. You can use this
--   command to roll an app back as many as four versions. * <tt>start</tt>
--   : Start the app's web or application server. * <tt>stop</tt> : Stop
--   the app's web or application server. * <tt>restart</tt> : Restart the
--   app's web or application server. * <tt>undeploy</tt> : Undeploy the
--   app.
dcName :: Lens' DeploymentCommand DeploymentCommandName

-- | Describes an Amazon EBS volume. This data type maps directly to the
--   Amazon EC2 <a>EbsBlockDevice</a> data type.
--   
--   <i>See:</i> <a>ebsBlockDevice</a> smart constructor.
data EBSBlockDevice

-- | Creates a value of <a>EBSBlockDevice</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ebdDeleteOnTermination</a> - Whether the volume is deleted on
--   instance termination.</li>
--   <li><a>ebdVolumeSize</a> - The volume size, in GiB. For more
--   information, see <a>EbsBlockDevice</a> .</li>
--   <li><a>ebdIOPS</a> - The number of I<i>O operations per second (IOPS)
--   that the volume supports. For more information, see
--   &lt;http:</i><i>docs.aws.amazon.com</i>AWSEC2<i>latest</i>APIReference/API_EbsBlockDevice.html
--   EbsBlockDevice&gt; .</li>
--   <li><a>ebdVolumeType</a> - The volume type. <tt>gp2</tt> for General
--   Purpose (SSD) volumes, <tt>io1</tt> for Provisioned IOPS (SSD)
--   volumes, and <tt>standard</tt> for Magnetic volumes.</li>
--   <li><a>ebdSnapshotId</a> - The snapshot ID.</li>
--   </ul>
ebsBlockDevice :: EBSBlockDevice

-- | Whether the volume is deleted on instance termination.
ebdDeleteOnTermination :: Lens' EBSBlockDevice (Maybe Bool)

-- | The volume size, in GiB. For more information, see
--   <a>EbsBlockDevice</a> .
ebdVolumeSize :: Lens' EBSBlockDevice (Maybe Int)

-- | The number of I<i>O operations per second (IOPS) that the volume
--   supports. For more information, see
--   &lt;http:</i><i>docs.aws.amazon.com</i>AWSEC2<i>latest</i>APIReference/API_EbsBlockDevice.html
--   EbsBlockDevice&gt; .
ebdIOPS :: Lens' EBSBlockDevice (Maybe Int)

-- | The volume type. <tt>gp2</tt> for General Purpose (SSD) volumes,
--   <tt>io1</tt> for Provisioned IOPS (SSD) volumes, and <tt>standard</tt>
--   for Magnetic volumes.
ebdVolumeType :: Lens' EBSBlockDevice (Maybe VolumeType)

-- | The snapshot ID.
ebdSnapshotId :: Lens' EBSBlockDevice (Maybe Text)

-- | Describes a registered Amazon ECS cluster.
--   
--   <i>See:</i> <a>ecsCluster</a> smart constructor.
data EcsCluster

-- | Creates a value of <a>EcsCluster</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ecEcsClusterARN</a> - The cluster's ARN.</li>
--   <li><a>ecEcsClusterName</a> - The cluster name.</li>
--   <li><a>ecRegisteredAt</a> - The time and date that the cluster was
--   registered with the stack.</li>
--   <li><a>ecStackId</a> - The stack ID.</li>
--   </ul>
ecsCluster :: EcsCluster

-- | The cluster's ARN.
ecEcsClusterARN :: Lens' EcsCluster (Maybe Text)

-- | The cluster name.
ecEcsClusterName :: Lens' EcsCluster (Maybe Text)

-- | The time and date that the cluster was registered with the stack.
ecRegisteredAt :: Lens' EcsCluster (Maybe Text)

-- | The stack ID.
ecStackId :: Lens' EcsCluster (Maybe Text)

-- | Describes an Elastic IP address.
--   
--   <i>See:</i> <a>elasticIP</a> smart constructor.
data ElasticIP

-- | Creates a value of <a>ElasticIP</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eiInstanceId</a> - The ID of the instance that the address is
--   attached to.</li>
--   <li><a>eiDomain</a> - The domain.</li>
--   <li><a>eiIP</a> - The IP address.</li>
--   <li><a>eiName</a> - The name.</li>
--   <li><a>eiRegion</a> - The AWS region. For more information, see
--   <a>Regions and Endpoints</a> .</li>
--   </ul>
elasticIP :: ElasticIP

-- | The ID of the instance that the address is attached to.
eiInstanceId :: Lens' ElasticIP (Maybe Text)

-- | The domain.
eiDomain :: Lens' ElasticIP (Maybe Text)

-- | The IP address.
eiIP :: Lens' ElasticIP (Maybe Text)

-- | The name.
eiName :: Lens' ElasticIP (Maybe Text)

-- | The AWS region. For more information, see <a>Regions and Endpoints</a>
--   .
eiRegion :: Lens' ElasticIP (Maybe Text)

-- | Describes an Elastic Load Balancing instance.
--   
--   <i>See:</i> <a>elasticLoadBalancer</a> smart constructor.
data ElasticLoadBalancer

-- | Creates a value of <a>ElasticLoadBalancer</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>elbSubnetIds</a> - A list of subnet IDs, if the stack is
--   running in a VPC.</li>
--   <li><a>elbVPCId</a> - The VPC ID.</li>
--   <li><a>elbAvailabilityZones</a> - A list of Availability Zones.</li>
--   <li><a>elbRegion</a> - The instance's AWS region.</li>
--   <li><a>elbElasticLoadBalancerName</a> - The Elastic Load Balancing
--   instance's name.</li>
--   <li><a>elbStackId</a> - The ID of the stack that the instance is
--   associated with.</li>
--   <li><a>elbEC2InstanceIds</a> - A list of the EC2 instances that the
--   Elastic Load Balancing instance is managing traffic for.</li>
--   <li><a>elbLayerId</a> - The ID of the layer that the instance is
--   attached to.</li>
--   <li><a>elbDNSName</a> - The instance's public DNS name.</li>
--   </ul>
elasticLoadBalancer :: ElasticLoadBalancer

-- | A list of subnet IDs, if the stack is running in a VPC.
elbSubnetIds :: Lens' ElasticLoadBalancer [Text]

-- | The VPC ID.
elbVPCId :: Lens' ElasticLoadBalancer (Maybe Text)

-- | A list of Availability Zones.
elbAvailabilityZones :: Lens' ElasticLoadBalancer [Text]

-- | The instance's AWS region.
elbRegion :: Lens' ElasticLoadBalancer (Maybe Text)

-- | The Elastic Load Balancing instance's name.
elbElasticLoadBalancerName :: Lens' ElasticLoadBalancer (Maybe Text)

-- | The ID of the stack that the instance is associated with.
elbStackId :: Lens' ElasticLoadBalancer (Maybe Text)

-- | A list of the EC2 instances that the Elastic Load Balancing instance
--   is managing traffic for.
elbEC2InstanceIds :: Lens' ElasticLoadBalancer [Text]

-- | The ID of the layer that the instance is attached to.
elbLayerId :: Lens' ElasticLoadBalancer (Maybe Text)

-- | The instance's public DNS name.
elbDNSName :: Lens' ElasticLoadBalancer (Maybe Text)

-- | Represents an app's environment variable.
--   
--   <i>See:</i> <a>environmentVariable</a> smart constructor.
data EnvironmentVariable

-- | Creates a value of <a>EnvironmentVariable</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>evSecure</a> - (Optional) Whether the variable's value will be
--   returned by the <tt>DescribeApps</tt> action. To conceal an
--   environment variable's value, set <tt>Secure</tt> to <tt>true</tt> .
--   <tt>DescribeApps</tt> then returns <tt>*****FILTERED*****</tt> instead
--   of the actual value. The default value for <tt>Secure</tt> is
--   <tt>false</tt> .</li>
--   <li><a>evKey</a> - (Required) The environment variable's name, which
--   can consist of up to 64 characters and must be specified. The name can
--   contain upper- and lowercase letters, numbers, and underscores (_),
--   but it must start with a letter or underscore.</li>
--   <li><a>evValue</a> - (Optional) The environment variable's value,
--   which can be left empty. If you specify a value, it can contain up to
--   256 characters, which must all be printable.</li>
--   </ul>
environmentVariable :: Text -> Text -> EnvironmentVariable

-- | (Optional) Whether the variable's value will be returned by the
--   <tt>DescribeApps</tt> action. To conceal an environment variable's
--   value, set <tt>Secure</tt> to <tt>true</tt> . <tt>DescribeApps</tt>
--   then returns <tt>*****FILTERED*****</tt> instead of the actual value.
--   The default value for <tt>Secure</tt> is <tt>false</tt> .
evSecure :: Lens' EnvironmentVariable (Maybe Bool)

-- | (Required) The environment variable's name, which can consist of up to
--   64 characters and must be specified. The name can contain upper- and
--   lowercase letters, numbers, and underscores (_), but it must start
--   with a letter or underscore.
evKey :: Lens' EnvironmentVariable Text

-- | (Optional) The environment variable's value, which can be left empty.
--   If you specify a value, it can contain up to 256 characters, which
--   must all be printable.
evValue :: Lens' EnvironmentVariable Text

-- | Describes an instance.
--   
--   <i>See:</i> <a>instance'</a> smart constructor.
data Instance

-- | Creates a value of <a>Instance</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iPrivateDNS</a> - The The instance's private DNS name.</li>
--   <li><a>iReportedAgentVersion</a> - The instance's reported AWS
--   OpsWorks agent version.</li>
--   <li><a>iInstanceId</a> - The instance ID.</li>
--   <li><a>iStatus</a> - The instance status: * <tt>booting</tt> *
--   <tt>connection_lost</tt> * <tt>online</tt> * <tt>pending</tt> *
--   <tt>rebooting</tt> * <tt>requested</tt> * <tt>running_setup</tt> *
--   <tt>setup_failed</tt> * <tt>shutting_down</tt> * <tt>start_failed</tt>
--   * <tt>stop_failed</tt> * <tt>stopped</tt> * <tt>stopping</tt> *
--   <tt>terminated</tt> * <tt>terminating</tt></li>
--   <li><a>iPrivateIP</a> - The instance's private IP address.</li>
--   <li><a>iInstallUpdatesOnBoot</a> - Whether to install operating system
--   and package updates when the instance boots. The default value is
--   <tt>true</tt> . If this value is set to <tt>false</tt> , you must then
--   update your instances manually by using <tt>CreateDeployment</tt> to
--   run the <tt>update_dependencies</tt> stack command or by manually
--   running <tt>yum</tt> (Amazon Linux) or <tt>apt-get</tt> (Ubuntu) on
--   the instances.</li>
--   <li><a>iVirtualizationType</a> - The instance's virtualization type:
--   <tt>paravirtual</tt> or <tt>hvm</tt> .</li>
--   <li><a>iInstanceProfileARN</a> - The ARN of the instance's IAM
--   profile. For more information about IAM ARNs, see <a>Using
--   Identifiers</a> .</li>
--   <li><a>iPlatform</a> - The instance's platform.</li>
--   <li><a>iHostname</a> - The instance host name.</li>
--   <li><a>iSSHHostRsaKeyFingerprint</a> - The SSH key's RSA
--   fingerprint.</li>
--   <li><a>iSecurityGroupIds</a> - An array containing the instance
--   security group IDs.</li>
--   <li><a>iEcsClusterARN</a> - For container instances, the Amazon ECS
--   cluster's ARN.</li>
--   <li><a>iCreatedAt</a> - The time that the instance was created.</li>
--   <li><a>iEC2InstanceId</a> - The ID of the associated Amazon EC2
--   instance.</li>
--   <li><a>iSSHKeyName</a> - The instance's Amazon EC2 key-pair name.</li>
--   <li><a>iAgentVersion</a> - The agent version. This parameter is set to
--   <tt>INHERIT</tt> if the instance inherits the default stack setting or
--   to a a version number for a fixed agent version.</li>
--   <li><a>iRootDeviceVolumeId</a> - The root device volume ID.</li>
--   <li><a>iSubnetId</a> - The instance's subnet ID; applicable only if
--   the stack is running in a VPC.</li>
--   <li><a>iInfrastructureClass</a> - For registered instances, the
--   infrastructure class: <tt>ec2</tt> or <tt>on-premises</tt> .</li>
--   <li><a>iSSHHostDsaKeyFingerprint</a> - The SSH key's Deep Security
--   Agent (DSA) fingerprint.</li>
--   <li><a>iInstanceType</a> - The instance type, such as
--   <tt>t2.micro</tt> .</li>
--   <li><a>iEBSOptimized</a> - Whether this is an Amazon EBS-optimized
--   instance.</li>
--   <li><a>iElasticIP</a> - The instance <a>Elastic IP address</a> .</li>
--   <li><a>iOS</a> - The instance's operating system.</li>
--   <li><a>iAvailabilityZone</a> - The instance Availability Zone. For
--   more information, see <a>Regions and Endpoints</a> .</li>
--   <li><a>iLastServiceErrorId</a> - The ID of the last service error. For
--   more information, call <tt>DescribeServiceErrors</tt> .</li>
--   <li><a>iTenancy</a> - The instance's tenancy option, such as
--   <tt>dedicated</tt> or <tt>host</tt> .</li>
--   <li><a>iAutoScalingType</a> - For load-based or time-based instances,
--   the type.</li>
--   <li><a>iLayerIds</a> - An array containing the instance layer
--   IDs.</li>
--   <li><a>iArchitecture</a> - The instance architecture: "i386" or
--   "x86_64".</li>
--   <li><a>iPublicDNS</a> - The instance public DNS name.</li>
--   <li><a>iAMIId</a> - A custom AMI ID to be used to create the instance.
--   For more information, see <a>Instances</a></li>
--   <li><a>iPublicIP</a> - The instance public IP address.</li>
--   <li><a>iReportedOS</a> - For registered instances, the reported
--   operating system.</li>
--   <li><a>iRegisteredBy</a> - For registered instances, who performed the
--   registration.</li>
--   <li><a>iStackId</a> - The stack ID.</li>
--   <li><a>iRootDeviceType</a> - The instance's root device type. For more
--   information, see <a>Storage for the Root Device</a> .</li>
--   <li><a>iEcsContainerInstanceARN</a> - For container instances, the
--   instance's ARN.</li>
--   <li><a>iBlockDeviceMappings</a> - An array of
--   <tt>BlockDeviceMapping</tt> objects that specify the instance's block
--   device mappings.</li>
--   </ul>
instance' :: Instance

-- | The The instance's private DNS name.
iPrivateDNS :: Lens' Instance (Maybe Text)

-- | The instance's reported AWS OpsWorks agent version.
iReportedAgentVersion :: Lens' Instance (Maybe Text)

-- | The instance ID.
iInstanceId :: Lens' Instance (Maybe Text)

-- | The instance status: * <tt>booting</tt> * <tt>connection_lost</tt> *
--   <tt>online</tt> * <tt>pending</tt> * <tt>rebooting</tt> *
--   <tt>requested</tt> * <tt>running_setup</tt> * <tt>setup_failed</tt> *
--   <tt>shutting_down</tt> * <tt>start_failed</tt> * <tt>stop_failed</tt>
--   * <tt>stopped</tt> * <tt>stopping</tt> * <tt>terminated</tt> *
--   <tt>terminating</tt>
iStatus :: Lens' Instance (Maybe Text)

-- | The instance's private IP address.
iPrivateIP :: Lens' Instance (Maybe Text)

-- | Whether to install operating system and package updates when the
--   instance boots. The default value is <tt>true</tt> . If this value is
--   set to <tt>false</tt> , you must then update your instances manually
--   by using <tt>CreateDeployment</tt> to run the
--   <tt>update_dependencies</tt> stack command or by manually running
--   <tt>yum</tt> (Amazon Linux) or <tt>apt-get</tt> (Ubuntu) on the
--   instances.
iInstallUpdatesOnBoot :: Lens' Instance (Maybe Bool)

-- | The instance's virtualization type: <tt>paravirtual</tt> or
--   <tt>hvm</tt> .
iVirtualizationType :: Lens' Instance (Maybe VirtualizationType)

-- | The ARN of the instance's IAM profile. For more information about IAM
--   ARNs, see <a>Using Identifiers</a> .
iInstanceProfileARN :: Lens' Instance (Maybe Text)

-- | The instance's platform.
iPlatform :: Lens' Instance (Maybe Text)

-- | The instance host name.
iHostname :: Lens' Instance (Maybe Text)

-- | The SSH key's RSA fingerprint.
iSSHHostRsaKeyFingerprint :: Lens' Instance (Maybe Text)

-- | An array containing the instance security group IDs.
iSecurityGroupIds :: Lens' Instance [Text]

-- | For container instances, the Amazon ECS cluster's ARN.
iEcsClusterARN :: Lens' Instance (Maybe Text)

-- | The time that the instance was created.
iCreatedAt :: Lens' Instance (Maybe Text)

-- | The ID of the associated Amazon EC2 instance.
iEC2InstanceId :: Lens' Instance (Maybe Text)

-- | The instance's Amazon EC2 key-pair name.
iSSHKeyName :: Lens' Instance (Maybe Text)

-- | The agent version. This parameter is set to <tt>INHERIT</tt> if the
--   instance inherits the default stack setting or to a a version number
--   for a fixed agent version.
iAgentVersion :: Lens' Instance (Maybe Text)

-- | The root device volume ID.
iRootDeviceVolumeId :: Lens' Instance (Maybe Text)

-- | The instance's subnet ID; applicable only if the stack is running in a
--   VPC.
iSubnetId :: Lens' Instance (Maybe Text)

-- | For registered instances, the infrastructure class: <tt>ec2</tt> or
--   <tt>on-premises</tt> .
iInfrastructureClass :: Lens' Instance (Maybe Text)

-- | The SSH key's Deep Security Agent (DSA) fingerprint.
iSSHHostDsaKeyFingerprint :: Lens' Instance (Maybe Text)

-- | The instance type, such as <tt>t2.micro</tt> .
iInstanceType :: Lens' Instance (Maybe Text)

-- | Whether this is an Amazon EBS-optimized instance.
iEBSOptimized :: Lens' Instance (Maybe Bool)

-- | The instance <a>Elastic IP address</a> .
iElasticIP :: Lens' Instance (Maybe Text)

-- | The instance's operating system.
iOS :: Lens' Instance (Maybe Text)

-- | The instance Availability Zone. For more information, see <a>Regions
--   and Endpoints</a> .
iAvailabilityZone :: Lens' Instance (Maybe Text)

-- | The ID of the last service error. For more information, call
--   <tt>DescribeServiceErrors</tt> .
iLastServiceErrorId :: Lens' Instance (Maybe Text)

-- | The instance's tenancy option, such as <tt>dedicated</tt> or
--   <tt>host</tt> .
iTenancy :: Lens' Instance (Maybe Text)

-- | For load-based or time-based instances, the type.
iAutoScalingType :: Lens' Instance (Maybe AutoScalingType)

-- | An array containing the instance layer IDs.
iLayerIds :: Lens' Instance [Text]

-- | The instance architecture: "i386" or "x86_64".
iArchitecture :: Lens' Instance (Maybe Architecture)

-- | The instance public DNS name.
iPublicDNS :: Lens' Instance (Maybe Text)

-- | A custom AMI ID to be used to create the instance. For more
--   information, see <a>Instances</a>
iAMIId :: Lens' Instance (Maybe Text)

-- | The instance public IP address.
iPublicIP :: Lens' Instance (Maybe Text)

-- | For registered instances, the reported operating system.
iReportedOS :: Lens' Instance (Maybe ReportedOS)

-- | For registered instances, who performed the registration.
iRegisteredBy :: Lens' Instance (Maybe Text)

-- | The stack ID.
iStackId :: Lens' Instance (Maybe Text)

-- | The instance's root device type. For more information, see <a>Storage
--   for the Root Device</a> .
iRootDeviceType :: Lens' Instance (Maybe RootDeviceType)

-- | For container instances, the instance's ARN.
iEcsContainerInstanceARN :: Lens' Instance (Maybe Text)

-- | An array of <tt>BlockDeviceMapping</tt> objects that specify the
--   instance's block device mappings.
iBlockDeviceMappings :: Lens' Instance [BlockDeviceMapping]

-- | Contains a description of an Amazon EC2 instance from the Amazon EC2
--   metadata service. For more information, see <a>Instance Metadata and
--   User Data</a> .
--   
--   <i>See:</i> <a>instanceIdentity</a> smart constructor.
data InstanceIdentity

-- | Creates a value of <a>InstanceIdentity</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iiSignature</a> - A signature that can be used to verify the
--   document's accuracy and authenticity.</li>
--   <li><a>iiDocument</a> - A JSON document that contains the
--   metadata.</li>
--   </ul>
instanceIdentity :: InstanceIdentity

-- | A signature that can be used to verify the document's accuracy and
--   authenticity.
iiSignature :: Lens' InstanceIdentity (Maybe Text)

-- | A JSON document that contains the metadata.
iiDocument :: Lens' InstanceIdentity (Maybe Text)

-- | Describes how many instances a stack has for each status.
--   
--   <i>See:</i> <a>instancesCount</a> smart constructor.
data InstancesCount

-- | Creates a value of <a>InstancesCount</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>icTerminating</a> - The number of instances with
--   <tt>terminating</tt> status.</li>
--   <li><a>icPending</a> - The number of instances with <tt>pending</tt>
--   status.</li>
--   <li><a>icOnline</a> - The number of instances with <tt>online</tt>
--   status.</li>
--   <li><a>icUnassigning</a> - The number of instances in the Unassigning
--   state.</li>
--   <li><a>icDeregistering</a> - The number of instances in the
--   Deregistering state.</li>
--   <li><a>icRunningSetup</a> - The number of instances with
--   <tt>running_setup</tt> status.</li>
--   <li><a>icRequested</a> - The number of instances with
--   <tt>requested</tt> status.</li>
--   <li><a>icBooting</a> - The number of instances with <tt>booting</tt>
--   status.</li>
--   <li><a>icStopped</a> - The number of instances with <tt>stopped</tt>
--   status.</li>
--   <li><a>icRebooting</a> - The number of instances with
--   <tt>rebooting</tt> status.</li>
--   <li><a>icAssigning</a> - The number of instances in the Assigning
--   state.</li>
--   <li><a>icShuttingDown</a> - The number of instances with
--   <tt>shutting_down</tt> status.</li>
--   <li><a>icSetupFailed</a> - The number of instances with
--   <tt>setup_failed</tt> status.</li>
--   <li><a>icConnectionLost</a> - The number of instances with
--   <tt>connection_lost</tt> status.</li>
--   <li><a>icTerminated</a> - The number of instances with
--   <tt>terminated</tt> status.</li>
--   <li><a>icStopping</a> - The number of instances with <tt>stopping</tt>
--   status.</li>
--   <li><a>icRegistered</a> - The number of instances in the Registered
--   state.</li>
--   <li><a>icStartFailed</a> - The number of instances with
--   <tt>start_failed</tt> status.</li>
--   <li><a>icRegistering</a> - The number of instances in the Registering
--   state.</li>
--   </ul>
instancesCount :: InstancesCount

-- | The number of instances with <tt>terminating</tt> status.
icTerminating :: Lens' InstancesCount (Maybe Int)

-- | The number of instances with <tt>pending</tt> status.
icPending :: Lens' InstancesCount (Maybe Int)

-- | The number of instances with <tt>online</tt> status.
icOnline :: Lens' InstancesCount (Maybe Int)

-- | The number of instances in the Unassigning state.
icUnassigning :: Lens' InstancesCount (Maybe Int)

-- | The number of instances in the Deregistering state.
icDeregistering :: Lens' InstancesCount (Maybe Int)

-- | The number of instances with <tt>running_setup</tt> status.
icRunningSetup :: Lens' InstancesCount (Maybe Int)

-- | The number of instances with <tt>requested</tt> status.
icRequested :: Lens' InstancesCount (Maybe Int)

-- | The number of instances with <tt>booting</tt> status.
icBooting :: Lens' InstancesCount (Maybe Int)

-- | The number of instances with <tt>stopped</tt> status.
icStopped :: Lens' InstancesCount (Maybe Int)

-- | The number of instances with <tt>rebooting</tt> status.
icRebooting :: Lens' InstancesCount (Maybe Int)

-- | The number of instances in the Assigning state.
icAssigning :: Lens' InstancesCount (Maybe Int)

-- | The number of instances with <tt>shutting_down</tt> status.
icShuttingDown :: Lens' InstancesCount (Maybe Int)

-- | The number of instances with <tt>setup_failed</tt> status.
icSetupFailed :: Lens' InstancesCount (Maybe Int)

-- | The number of instances with <tt>connection_lost</tt> status.
icConnectionLost :: Lens' InstancesCount (Maybe Int)

-- | The number of instances with <tt>terminated</tt> status.
icTerminated :: Lens' InstancesCount (Maybe Int)

-- | The number of instances with <tt>stopping</tt> status.
icStopping :: Lens' InstancesCount (Maybe Int)

-- | The number of instances in the Registered state.
icRegistered :: Lens' InstancesCount (Maybe Int)

-- | The number of instances with <tt>start_failed</tt> status.
icStartFailed :: Lens' InstancesCount (Maybe Int)

-- | The number of instances in the Registering state.
icRegistering :: Lens' InstancesCount (Maybe Int)

-- | Describes a layer.
--   
--   <i>See:</i> <a>layer</a> smart constructor.
data Layer

-- | Creates a value of <a>Layer</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lCustomInstanceProfileARN</a> - The ARN of the default IAM
--   profile to be used for the layer's EC2 instances. For more information
--   about IAM ARNs, see <a>Using Identifiers</a> .</li>
--   <li><a>lCustomSecurityGroupIds</a> - An array containing the layer's
--   custom security group IDs.</li>
--   <li><a>lInstallUpdatesOnBoot</a> - Whether to install operating system
--   and package updates when the instance boots. The default value is
--   <tt>true</tt> . If this value is set to <tt>false</tt> , you must then
--   update your instances manually by using <tt>CreateDeployment</tt> to
--   run the <tt>update_dependencies</tt> stack command or manually running
--   <tt>yum</tt> (Amazon Linux) or <tt>apt-get</tt> (Ubuntu) on the
--   instances.</li>
--   <li><a>lLifecycleEventConfiguration</a> - A
--   <tt>LifeCycleEventConfiguration</tt> object that specifies the
--   Shutdown event configuration.</li>
--   <li><a>lCreatedAt</a> - Date when the layer was created.</li>
--   <li><a>lShortname</a> - The layer short name.</li>
--   <li><a>lDefaultRecipes</a> - Undocumented member.</li>
--   <li><a>lCustomRecipes</a> - A <tt>LayerCustomRecipes</tt> object that
--   specifies the layer's custom recipes.</li>
--   <li><a>lCustomJSON</a> - A JSON formatted string containing the
--   layer's custom stack configuration and deployment attributes.</li>
--   <li><a>lVolumeConfigurations</a> - A <tt>VolumeConfigurations</tt>
--   object that describes the layer's Amazon EBS volumes.</li>
--   <li><a>lEnableAutoHealing</a> - Whether auto healing is disabled for
--   the layer.</li>
--   <li><a>lPackages</a> - An array of <tt>Package</tt> objects that
--   describe the layer's packages.</li>
--   <li><a>lAttributes</a> - The layer attributes. For the
--   <tt>HaproxyStatsPassword</tt> , <tt>MysqlRootPassword</tt> , and
--   <tt>GangliaPassword</tt> attributes, AWS OpsWorks returns
--   <tt>*****FILTERED*****</tt> instead of the actual value For an ECS
--   Cluster layer, AWS OpsWorks the <tt>EcsClusterArn</tt> attribute is
--   set to the cluster's ARN.</li>
--   <li><a>lName</a> - The layer name.</li>
--   <li><a>lAutoAssignPublicIPs</a> - 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 <a>How to Edit a
--   Layer</a> .</li>
--   <li><a>lType</a> - The layer type.</li>
--   <li><a>lUseEBSOptimizedInstances</a> - Whether the layer uses Amazon
--   EBS-optimized instances.</li>
--   <li><a>lStackId</a> - The layer stack ID.</li>
--   <li><a>lLayerId</a> - The layer ID.</li>
--   <li><a>lDefaultSecurityGroupNames</a> - An array containing the
--   layer's security group names.</li>
--   <li><a>lAutoAssignElasticIPs</a> - Whether to automatically assign an
--   <a>Elastic IP address</a> to the layer's instances. For more
--   information, see <a>How to Edit a Layer</a> .</li>
--   </ul>
layer :: Layer

-- | The ARN of the default IAM profile to be used for the layer's EC2
--   instances. For more information about IAM ARNs, see <a>Using
--   Identifiers</a> .
lCustomInstanceProfileARN :: Lens' Layer (Maybe Text)

-- | An array containing the layer's custom security group IDs.
lCustomSecurityGroupIds :: Lens' Layer [Text]

-- | Whether to install operating system and package updates when the
--   instance boots. The default value is <tt>true</tt> . If this value is
--   set to <tt>false</tt> , you must then update your instances manually
--   by using <tt>CreateDeployment</tt> to run the
--   <tt>update_dependencies</tt> stack command or manually running
--   <tt>yum</tt> (Amazon Linux) or <tt>apt-get</tt> (Ubuntu) on the
--   instances.
lInstallUpdatesOnBoot :: Lens' Layer (Maybe Bool)

-- | A <tt>LifeCycleEventConfiguration</tt> object that specifies the
--   Shutdown event configuration.
lLifecycleEventConfiguration :: Lens' Layer (Maybe LifecycleEventConfiguration)

-- | Date when the layer was created.
lCreatedAt :: Lens' Layer (Maybe Text)

-- | The layer short name.
lShortname :: Lens' Layer (Maybe Text)

-- | Undocumented member.
lDefaultRecipes :: Lens' Layer (Maybe Recipes)

-- | A <tt>LayerCustomRecipes</tt> object that specifies the layer's custom
--   recipes.
lCustomRecipes :: Lens' Layer (Maybe Recipes)

-- | A JSON formatted string containing the layer's custom stack
--   configuration and deployment attributes.
lCustomJSON :: Lens' Layer (Maybe Text)

-- | A <tt>VolumeConfigurations</tt> object that describes the layer's
--   Amazon EBS volumes.
lVolumeConfigurations :: Lens' Layer [VolumeConfiguration]

-- | Whether auto healing is disabled for the layer.
lEnableAutoHealing :: Lens' Layer (Maybe Bool)

-- | An array of <tt>Package</tt> objects that describe the layer's
--   packages.
lPackages :: Lens' Layer [Text]

-- | The layer attributes. For the <tt>HaproxyStatsPassword</tt> ,
--   <tt>MysqlRootPassword</tt> , and <tt>GangliaPassword</tt> attributes,
--   AWS OpsWorks returns <tt>*****FILTERED*****</tt> instead of the actual
--   value For an ECS Cluster layer, AWS OpsWorks the
--   <tt>EcsClusterArn</tt> attribute is set to the cluster's ARN.
lAttributes :: Lens' Layer (HashMap LayerAttributesKeys Text)

-- | The layer name.
lName :: Lens' Layer (Maybe Text)

-- | 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 <a>How to Edit a Layer</a> .
lAutoAssignPublicIPs :: Lens' Layer (Maybe Bool)

-- | The layer type.
lType :: Lens' Layer (Maybe LayerType)

-- | Whether the layer uses Amazon EBS-optimized instances.
lUseEBSOptimizedInstances :: Lens' Layer (Maybe Bool)

-- | The layer stack ID.
lStackId :: Lens' Layer (Maybe Text)

-- | The layer ID.
lLayerId :: Lens' Layer (Maybe Text)

-- | An array containing the layer's security group names.
lDefaultSecurityGroupNames :: Lens' Layer [Text]

-- | Whether to automatically assign an <a>Elastic IP address</a> to the
--   layer's instances. For more information, see <a>How to Edit a
--   Layer</a> .
lAutoAssignElasticIPs :: Lens' Layer (Maybe Bool)

-- | Specifies the lifecycle event configuration
--   
--   <i>See:</i> <a>lifecycleEventConfiguration</a> smart constructor.
data LifecycleEventConfiguration

-- | Creates a value of <a>LifecycleEventConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lecShutdown</a> - A <tt>ShutdownEventConfiguration</tt> object
--   that specifies the Shutdown event configuration.</li>
--   </ul>
lifecycleEventConfiguration :: LifecycleEventConfiguration

-- | A <tt>ShutdownEventConfiguration</tt> object that specifies the
--   Shutdown event configuration.
lecShutdown :: Lens' LifecycleEventConfiguration (Maybe ShutdownEventConfiguration)

-- | Describes a layer's load-based auto scaling configuration.
--   
--   <i>See:</i> <a>loadBasedAutoScalingConfiguration</a> smart
--   constructor.
data LoadBasedAutoScalingConfiguration

-- | Creates a value of <a>LoadBasedAutoScalingConfiguration</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbascUpScaling</a> - An <tt>AutoScalingThresholds</tt> object
--   that describes the upscaling configuration, which defines how and when
--   AWS OpsWorks increases the number of instances.</li>
--   <li><a>lbascEnable</a> - Whether load-based auto scaling is enabled
--   for the layer.</li>
--   <li><a>lbascDownScaling</a> - An <tt>AutoScalingThresholds</tt> object
--   that describes the downscaling configuration, which defines how and
--   when AWS OpsWorks reduces the number of instances.</li>
--   <li><a>lbascLayerId</a> - The layer ID.</li>
--   </ul>
loadBasedAutoScalingConfiguration :: LoadBasedAutoScalingConfiguration

-- | An <tt>AutoScalingThresholds</tt> object that describes the upscaling
--   configuration, which defines how and when AWS OpsWorks increases the
--   number of instances.
lbascUpScaling :: Lens' LoadBasedAutoScalingConfiguration (Maybe AutoScalingThresholds)

-- | Whether load-based auto scaling is enabled for the layer.
lbascEnable :: Lens' LoadBasedAutoScalingConfiguration (Maybe Bool)

-- | An <tt>AutoScalingThresholds</tt> object that describes the
--   downscaling configuration, which defines how and when AWS OpsWorks
--   reduces the number of instances.
lbascDownScaling :: Lens' LoadBasedAutoScalingConfiguration (Maybe AutoScalingThresholds)

-- | The layer ID.
lbascLayerId :: Lens' LoadBasedAutoScalingConfiguration (Maybe Text)

-- | Describes stack or user permissions.
--   
--   <i>See:</i> <a>permission</a> smart constructor.
data Permission

-- | Creates a value of <a>Permission</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pIAMUserARN</a> - The Amazon Resource Name (ARN) for an AWS
--   Identity and Access Management (IAM) role. For more information about
--   IAM ARNs, see <a>Using Identifiers</a> .</li>
--   <li><a>pAllowSudo</a> - Whether the user can use <b>sudo</b> .</li>
--   <li><a>pStackId</a> - A stack ID.</li>
--   <li><a>pLevel</a> - The user's permission level, which must be the
--   following: * <tt>deny</tt> * <tt>show</tt> * <tt>deploy</tt> *
--   <tt>manage</tt> * <tt>iam_only</tt> For more information on the
--   permissions associated with these levels, see <a>Managing User
--   Permissions</a></li>
--   <li><a>pAllowSSH</a> - Whether the user can use SSH.</li>
--   </ul>
permission :: Permission

-- | The Amazon Resource Name (ARN) for an AWS Identity and Access
--   Management (IAM) role. For more information about IAM ARNs, see
--   <a>Using Identifiers</a> .
pIAMUserARN :: Lens' Permission (Maybe Text)

-- | Whether the user can use <b>sudo</b> .
pAllowSudo :: Lens' Permission (Maybe Bool)

-- | A stack ID.
pStackId :: Lens' Permission (Maybe Text)

-- | The user's permission level, which must be the following: *
--   <tt>deny</tt> * <tt>show</tt> * <tt>deploy</tt> * <tt>manage</tt> *
--   <tt>iam_only</tt> For more information on the permissions associated
--   with these levels, see <a>Managing User Permissions</a>
pLevel :: Lens' Permission (Maybe Text)

-- | Whether the user can use SSH.
pAllowSSH :: Lens' Permission (Maybe Bool)

-- | Describes an instance's RAID array.
--   
--   <i>See:</i> <a>rAIdArray</a> smart constructor.
data RAIdArray

-- | Creates a value of <a>RAIdArray</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>raiaInstanceId</a> - The instance ID.</li>
--   <li><a>raiaSize</a> - The array's size.</li>
--   <li><a>raiaIOPS</a> - For PIOPS volumes, the IOPS per disk.</li>
--   <li><a>raiaCreatedAt</a> - When the RAID array was created.</li>
--   <li><a>raiaRAIdLevel</a> - The <a>RAID level</a> .</li>
--   <li><a>raiaDevice</a> - The array's Linux device. For example
--   <i>dev</i>mdadm0.</li>
--   <li><a>raiaNumberOfDisks</a> - The number of disks in the array.</li>
--   <li><a>raiaAvailabilityZone</a> - The array's Availability Zone. For
--   more information, see <a>Regions and Endpoints</a> .</li>
--   <li><a>raiaName</a> - The array name.</li>
--   <li><a>raiaRAIdArrayId</a> - The array ID.</li>
--   <li><a>raiaVolumeType</a> - The volume type, standard or PIOPS.</li>
--   <li><a>raiaStackId</a> - The stack ID.</li>
--   <li><a>raiaMountPoint</a> - The array's mount point.</li>
--   </ul>
rAIdArray :: RAIdArray

-- | The instance ID.
raiaInstanceId :: Lens' RAIdArray (Maybe Text)

-- | The array's size.
raiaSize :: Lens' RAIdArray (Maybe Int)

-- | For PIOPS volumes, the IOPS per disk.
raiaIOPS :: Lens' RAIdArray (Maybe Int)

-- | When the RAID array was created.
raiaCreatedAt :: Lens' RAIdArray (Maybe Text)

-- | The <a>RAID level</a> .
raiaRAIdLevel :: Lens' RAIdArray (Maybe Int)

-- | The array's Linux device. For example <i>dev</i>mdadm0.
raiaDevice :: Lens' RAIdArray (Maybe Text)

-- | The number of disks in the array.
raiaNumberOfDisks :: Lens' RAIdArray (Maybe Int)

-- | The array's Availability Zone. For more information, see <a>Regions
--   and Endpoints</a> .
raiaAvailabilityZone :: Lens' RAIdArray (Maybe Text)

-- | The array name.
raiaName :: Lens' RAIdArray (Maybe Text)

-- | The array ID.
raiaRAIdArrayId :: Lens' RAIdArray (Maybe Text)

-- | The volume type, standard or PIOPS.
raiaVolumeType :: Lens' RAIdArray (Maybe Text)

-- | The stack ID.
raiaStackId :: Lens' RAIdArray (Maybe Text)

-- | The array's mount point.
raiaMountPoint :: Lens' RAIdArray (Maybe Text)

-- | Describes an Amazon RDS instance.
--   
--   <i>See:</i> <a>rdsDBInstance</a> smart constructor.
data RDSDBInstance

-- | Creates a value of <a>RDSDBInstance</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rdiRDSDBInstanceARN</a> - The instance's ARN.</li>
--   <li><a>rdiDBUser</a> - The master user name.</li>
--   <li><a>rdiMissingOnRDS</a> - Set to <tt>true</tt> if AWS OpsWorks was
--   unable to discover the Amazon RDS instance. AWS OpsWorks attempts to
--   discover the instance only once. If this value is set to <tt>true</tt>
--   , you must deregister the instance and then register it again.</li>
--   <li><a>rdiEngine</a> - The instance's database engine.</li>
--   <li><a>rdiAddress</a> - The instance's address.</li>
--   <li><a>rdiDBInstanceIdentifier</a> - The DB instance identifier.</li>
--   <li><a>rdiRegion</a> - The instance's AWS region.</li>
--   <li><a>rdiStackId</a> - The ID of the stack that the instance is
--   registered with.</li>
--   <li><a>rdiDBPassword</a> - AWS OpsWorks returns
--   <tt>*****FILTERED*****</tt> instead of the actual value.</li>
--   </ul>
rdsDBInstance :: RDSDBInstance

-- | The instance's ARN.
rdiRDSDBInstanceARN :: Lens' RDSDBInstance (Maybe Text)

-- | The master user name.
rdiDBUser :: Lens' RDSDBInstance (Maybe Text)

-- | Set to <tt>true</tt> if AWS OpsWorks was unable to discover the Amazon
--   RDS instance. AWS OpsWorks attempts to discover the instance only
--   once. If this value is set to <tt>true</tt> , you must deregister the
--   instance and then register it again.
rdiMissingOnRDS :: Lens' RDSDBInstance (Maybe Bool)

-- | The instance's database engine.
rdiEngine :: Lens' RDSDBInstance (Maybe Text)

-- | The instance's address.
rdiAddress :: Lens' RDSDBInstance (Maybe Text)

-- | The DB instance identifier.
rdiDBInstanceIdentifier :: Lens' RDSDBInstance (Maybe Text)

-- | The instance's AWS region.
rdiRegion :: Lens' RDSDBInstance (Maybe Text)

-- | The ID of the stack that the instance is registered with.
rdiStackId :: Lens' RDSDBInstance (Maybe Text)

-- | AWS OpsWorks returns <tt>*****FILTERED*****</tt> instead of the actual
--   value.
rdiDBPassword :: Lens' RDSDBInstance (Maybe Text)

-- | AWS OpsWorks supports five lifecycle events: <b>setup</b> ,
--   <b>configuration</b> , <b>deploy</b> , <b>undeploy</b> , and
--   <b>shutdown</b> . For each layer, AWS OpsWorks runs a set of standard
--   recipes for each event. In addition, you can provide custom recipes
--   for any or all layers and events. AWS OpsWorks runs custom event
--   recipes after the standard recipes. <tt>LayerCustomRecipes</tt>
--   specifies the custom recipes for a particular layer to be run in
--   response to each of the five events.
--   
--   To specify a recipe, use the cookbook's directory name in the
--   repository followed by two colons and the recipe name, which is the
--   recipe's file name without the .rb extension. For example:
--   phpapp2::dbsetup specifies the dbsetup.rb recipe in the repository's
--   phpapp2 folder.
--   
--   <i>See:</i> <a>recipes</a> smart constructor.
data Recipes

-- | Creates a value of <a>Recipes</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rSetup</a> - An array of custom recipe names to be run
--   following a <tt>setup</tt> event.</li>
--   <li><a>rShutdown</a> - An array of custom recipe names to be run
--   following a <tt>shutdown</tt> event.</li>
--   <li><a>rUndeploy</a> - An array of custom recipe names to be run
--   following a <tt>undeploy</tt> event.</li>
--   <li><a>rConfigure</a> - An array of custom recipe names to be run
--   following a <tt>configure</tt> event.</li>
--   <li><a>rDeploy</a> - An array of custom recipe names to be run
--   following a <tt>deploy</tt> event.</li>
--   </ul>
recipes :: Recipes

-- | An array of custom recipe names to be run following a <tt>setup</tt>
--   event.
rSetup :: Lens' Recipes [Text]

-- | An array of custom recipe names to be run following a
--   <tt>shutdown</tt> event.
rShutdown :: Lens' Recipes [Text]

-- | An array of custom recipe names to be run following a
--   <tt>undeploy</tt> event.
rUndeploy :: Lens' Recipes [Text]

-- | An array of custom recipe names to be run following a
--   <tt>configure</tt> event.
rConfigure :: Lens' Recipes [Text]

-- | An array of custom recipe names to be run following a <tt>deploy</tt>
--   event.
rDeploy :: Lens' Recipes [Text]

-- | A registered instance's reported operating system.
--   
--   <i>See:</i> <a>reportedOS</a> smart constructor.
data ReportedOS

-- | Creates a value of <a>ReportedOS</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>roFamily</a> - The operating system family.</li>
--   <li><a>roName</a> - The operating system name.</li>
--   <li><a>roVersion</a> - The operating system version.</li>
--   </ul>
reportedOS :: ReportedOS

-- | The operating system family.
roFamily :: Lens' ReportedOS (Maybe Text)

-- | The operating system name.
roName :: Lens' ReportedOS (Maybe Text)

-- | The operating system version.
roVersion :: Lens' ReportedOS (Maybe Text)

-- | Describes an app's SSL configuration.
--   
--   <i>See:</i> <a>sslConfiguration</a> smart constructor.
data SSLConfiguration

-- | Creates a value of <a>SSLConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>scChain</a> - Optional. Can be used to specify an intermediate
--   certificate authority key or client authentication.</li>
--   <li><a>scCertificate</a> - The contents of the certificate's
--   domain.crt file.</li>
--   <li><a>scPrivateKey</a> - The private key; the contents of the
--   certificate's domain.kex file.</li>
--   </ul>
sslConfiguration :: Text -> Text -> SSLConfiguration

-- | Optional. Can be used to specify an intermediate certificate authority
--   key or client authentication.
scChain :: Lens' SSLConfiguration (Maybe Text)

-- | The contents of the certificate's domain.crt file.
scCertificate :: Lens' SSLConfiguration Text

-- | The private key; the contents of the certificate's domain.kex file.
scPrivateKey :: Lens' SSLConfiguration Text

-- | Describes a user's SSH information.
--   
--   <i>See:</i> <a>selfUserProfile</a> smart constructor.
data SelfUserProfile

-- | Creates a value of <a>SelfUserProfile</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>supSSHPublicKey</a> - The user's SSH public key.</li>
--   <li><a>supSSHUsername</a> - The user's SSH user name.</li>
--   <li><a>supIAMUserARN</a> - The user's IAM ARN.</li>
--   <li><a>supName</a> - The user's name.</li>
--   </ul>
selfUserProfile :: SelfUserProfile

-- | The user's SSH public key.
supSSHPublicKey :: Lens' SelfUserProfile (Maybe Text)

-- | The user's SSH user name.
supSSHUsername :: Lens' SelfUserProfile (Maybe Text)

-- | The user's IAM ARN.
supIAMUserARN :: Lens' SelfUserProfile (Maybe Text)

-- | The user's name.
supName :: Lens' SelfUserProfile (Maybe Text)

-- | Describes an AWS OpsWorks service error.
--   
--   <i>See:</i> <a>serviceError'</a> smart constructor.
data ServiceError'

-- | Creates a value of <a>ServiceError'</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>seInstanceId</a> - The instance ID.</li>
--   <li><a>seCreatedAt</a> - When the error occurred.</li>
--   <li><a>seServiceErrorId</a> - The error ID.</li>
--   <li><a>seType</a> - The error type.</li>
--   <li><a>seStackId</a> - The stack ID.</li>
--   <li><a>seMessage</a> - A message that describes the error.</li>
--   </ul>
serviceError' :: ServiceError'

-- | The instance ID.
seInstanceId :: Lens' ServiceError' (Maybe Text)

-- | When the error occurred.
seCreatedAt :: Lens' ServiceError' (Maybe Text)

-- | The error ID.
seServiceErrorId :: Lens' ServiceError' (Maybe Text)

-- | The error type.
seType :: Lens' ServiceError' (Maybe Text)

-- | The stack ID.
seStackId :: Lens' ServiceError' (Maybe Text)

-- | A message that describes the error.
seMessage :: Lens' ServiceError' (Maybe Text)

-- | The Shutdown event configuration.
--   
--   <i>See:</i> <a>shutdownEventConfiguration</a> smart constructor.
data ShutdownEventConfiguration

-- | Creates a value of <a>ShutdownEventConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>secExecutionTimeout</a> - The time, in seconds, that AWS
--   OpsWorks will wait after triggering a Shutdown event before shutting
--   down an instance.</li>
--   <li><a>secDelayUntilElbConnectionsDrained</a> - Whether to enable
--   Elastic Load Balancing connection draining. For more information, see
--   <a>Connection Draining</a></li>
--   </ul>
shutdownEventConfiguration :: ShutdownEventConfiguration

-- | The time, in seconds, that AWS OpsWorks will wait after triggering a
--   Shutdown event before shutting down an instance.
secExecutionTimeout :: Lens' ShutdownEventConfiguration (Maybe Int)

-- | Whether to enable Elastic Load Balancing connection draining. For more
--   information, see <a>Connection Draining</a>
secDelayUntilElbConnectionsDrained :: Lens' ShutdownEventConfiguration (Maybe Bool)

-- | Contains the information required to retrieve an app or cookbook from
--   a repository. For more information, see <a>Creating Apps</a> or
--   <a>Custom Recipes and Cookbooks</a> .
--   
--   <i>See:</i> <a>source</a> smart constructor.
data Source

-- | Creates a value of <a>Source</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sURL</a> - The source URL.</li>
--   <li><a>sUsername</a> - This parameter depends on the repository type.
--   * For Amazon S3 bundles, set <tt>Username</tt> to the appropriate IAM
--   access key ID. * For HTTP bundles, Git repositories, and Subversion
--   repositories, set <tt>Username</tt> to the user name.</li>
--   <li><a>sSSHKey</a> - In requests, the repository's SSH key. In
--   responses, AWS OpsWorks returns <tt>*****FILTERED*****</tt> instead of
--   the actual value.</li>
--   <li><a>sPassword</a> - When included in a request, the parameter
--   depends on the repository type. * For Amazon S3 bundles, set
--   <tt>Password</tt> to the appropriate IAM secret access key. * For HTTP
--   bundles and Subversion repositories, set <tt>Password</tt> to the
--   password. For more information on how to safely handle IAM
--   credentials, see
--   <a>http://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html</a>
--   . In responses, AWS OpsWorks returns <tt>*****FILTERED*****</tt>
--   instead of the actual value.</li>
--   <li><a>sType</a> - The repository type.</li>
--   <li><a>sRevision</a> - The application's version. AWS OpsWorks enables
--   you to easily deploy new versions of an application. One of the
--   simplest approaches is to have branches or revisions in your
--   repository that represent different versions that can potentially be
--   deployed.</li>
--   </ul>
source :: Source

-- | The source URL.
sURL :: Lens' Source (Maybe Text)

-- | This parameter depends on the repository type. * For Amazon S3
--   bundles, set <tt>Username</tt> to the appropriate IAM access key ID. *
--   For HTTP bundles, Git repositories, and Subversion repositories, set
--   <tt>Username</tt> to the user name.
sUsername :: Lens' Source (Maybe Text)

-- | In requests, the repository's SSH key. In responses, AWS OpsWorks
--   returns <tt>*****FILTERED*****</tt> instead of the actual value.
sSSHKey :: Lens' Source (Maybe Text)

-- | When included in a request, the parameter depends on the repository
--   type. * For Amazon S3 bundles, set <tt>Password</tt> to the
--   appropriate IAM secret access key. * For HTTP bundles and Subversion
--   repositories, set <tt>Password</tt> to the password. For more
--   information on how to safely handle IAM credentials, see
--   <a>http://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html</a>
--   . In responses, AWS OpsWorks returns <tt>*****FILTERED*****</tt>
--   instead of the actual value.
sPassword :: Lens' Source (Maybe Text)

-- | The repository type.
sType :: Lens' Source (Maybe SourceType)

-- | The application's version. AWS OpsWorks enables you to easily deploy
--   new versions of an application. One of the simplest approaches is to
--   have branches or revisions in your repository that represent different
--   versions that can potentially be deployed.
sRevision :: Lens' Source (Maybe Text)

-- | Describes a stack.
--   
--   <i>See:</i> <a>stack</a> smart constructor.
data Stack

-- | Creates a value of <a>Stack</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sDefaultInstanceProfileARN</a> - The ARN of an IAM profile that
--   is the default profile for all of the stack's EC2 instances. For more
--   information about IAM ARNs, see <a>Using Identifiers</a> .</li>
--   <li><a>sServiceRoleARN</a> - The stack AWS Identity and Access
--   Management (IAM) role.</li>
--   <li><a>sDefaultRootDeviceType</a> - The default root device type. This
--   value is used by default for all instances in the stack, but you can
--   override it when you create an instance. For more information, see
--   <a>Storage for the Root Device</a> .</li>
--   <li><a>sARN</a> - The stack's ARN.</li>
--   <li><a>sCreatedAt</a> - The date when the stack was created.</li>
--   <li><a>sVPCId</a> - The VPC ID; applicable only if the stack is
--   running in a VPC.</li>
--   <li><a>sChefConfiguration</a> - A <tt>ChefConfiguration</tt> object
--   that specifies whether to enable Berkshelf and the Berkshelf version.
--   For more information, see <a>Create a New Stack</a> .</li>
--   <li><a>sAgentVersion</a> - The agent version. This parameter is set to
--   <tt>LATEST</tt> for auto-update. or a version number for a fixed agent
--   version.</li>
--   <li><a>sDefaultSSHKeyName</a> - A default Amazon EC2 key pair for the
--   stack's instances. You can override this value when you create or
--   update an instance.</li>
--   <li><a>sCustomJSON</a> - A JSON object that contains user-defined
--   attributes to be added to the stack configuration and deployment
--   attributes. You can use custom JSON to override the corresponding
--   default stack configuration attribute values or to pass data to
--   recipes. The string should be in the following format: <tt>"{"key1":
--   "value1", "key2": "value2",...}"</tt> For more information on custom
--   JSON, see <a>Use Custom JSON to Modify the Stack Configuration
--   Attributes</a> .</li>
--   <li><a>sCustomCookbooksSource</a> - Undocumented member.</li>
--   <li><a>sDefaultAvailabilityZone</a> - The stack's default Availability
--   Zone. For more information, see <a>Regions and Endpoints</a> .</li>
--   <li><a>sAttributes</a> - The stack's attributes.</li>
--   <li><a>sName</a> - The stack name.</li>
--   <li><a>sDefaultOS</a> - The stack's default operating system.</li>
--   <li><a>sUseOpsworksSecurityGroups</a> - Whether the stack
--   automatically associates the AWS OpsWorks built-in security groups
--   with the stack's layers.</li>
--   <li><a>sUseCustomCookbooks</a> - Whether the stack uses custom
--   cookbooks.</li>
--   <li><a>sDefaultSubnetId</a> - The default subnet ID; applicable only
--   if the stack is running in a VPC.</li>
--   <li><a>sRegion</a> - The stack AWS region, such as "ap-northeast-2".
--   For more information about AWS regions, see <a>Regions and
--   Endpoints</a> .</li>
--   <li><a>sConfigurationManager</a> - The configuration manager.</li>
--   <li><a>sStackId</a> - The stack ID.</li>
--   <li><a>sHostnameTheme</a> - The stack host name theme, with spaces
--   replaced by underscores.</li>
--   </ul>
stack :: Stack

-- | The ARN of an IAM profile that is the default profile for all of the
--   stack's EC2 instances. For more information about IAM ARNs, see
--   <a>Using Identifiers</a> .
sDefaultInstanceProfileARN :: Lens' Stack (Maybe Text)

-- | The stack AWS Identity and Access Management (IAM) role.
sServiceRoleARN :: Lens' Stack (Maybe Text)

-- | The default root device type. This value is used by default for all
--   instances in the stack, but you can override it when you create an
--   instance. For more information, see <a>Storage for the Root Device</a>
--   .
sDefaultRootDeviceType :: Lens' Stack (Maybe RootDeviceType)

-- | The stack's ARN.
sARN :: Lens' Stack (Maybe Text)

-- | The date when the stack was created.
sCreatedAt :: Lens' Stack (Maybe Text)

-- | The VPC ID; applicable only if the stack is running in a VPC.
sVPCId :: Lens' Stack (Maybe Text)

-- | A <tt>ChefConfiguration</tt> object that specifies whether to enable
--   Berkshelf and the Berkshelf version. For more information, see
--   <a>Create a New Stack</a> .
sChefConfiguration :: Lens' Stack (Maybe ChefConfiguration)

-- | The agent version. This parameter is set to <tt>LATEST</tt> for
--   auto-update. or a version number for a fixed agent version.
sAgentVersion :: Lens' Stack (Maybe Text)

-- | A default Amazon EC2 key pair for the stack's instances. You can
--   override this value when you create or update an instance.
sDefaultSSHKeyName :: Lens' Stack (Maybe Text)

-- | A JSON object that contains user-defined attributes to be added to the
--   stack configuration and deployment attributes. You can use custom JSON
--   to override the corresponding default stack configuration attribute
--   values or to pass data to recipes. The string should be in the
--   following format: <tt>"{"key1": "value1", "key2": "value2",...}"</tt>
--   For more information on custom JSON, see <a>Use Custom JSON to Modify
--   the Stack Configuration Attributes</a> .
sCustomJSON :: Lens' Stack (Maybe Text)

-- | Undocumented member.
sCustomCookbooksSource :: Lens' Stack (Maybe Source)

-- | The stack's default Availability Zone. For more information, see
--   <a>Regions and Endpoints</a> .
sDefaultAvailabilityZone :: Lens' Stack (Maybe Text)

-- | The stack's attributes.
sAttributes :: Lens' Stack (HashMap StackAttributesKeys Text)

-- | The stack name.
sName :: Lens' Stack (Maybe Text)

-- | The stack's default operating system.
sDefaultOS :: Lens' Stack (Maybe Text)

-- | Whether the stack automatically associates the AWS OpsWorks built-in
--   security groups with the stack's layers.
sUseOpsworksSecurityGroups :: Lens' Stack (Maybe Bool)

-- | Whether the stack uses custom cookbooks.
sUseCustomCookbooks :: Lens' Stack (Maybe Bool)

-- | The default subnet ID; applicable only if the stack is running in a
--   VPC.
sDefaultSubnetId :: Lens' Stack (Maybe Text)

-- | The stack AWS region, such as "ap-northeast-2". For more information
--   about AWS regions, see <a>Regions and Endpoints</a> .
sRegion :: Lens' Stack (Maybe Text)

-- | The configuration manager.
sConfigurationManager :: Lens' Stack (Maybe StackConfigurationManager)

-- | The stack ID.
sStackId :: Lens' Stack (Maybe Text)

-- | The stack host name theme, with spaces replaced by underscores.
sHostnameTheme :: Lens' Stack (Maybe Text)

-- | Describes the configuration manager.
--   
--   <i>See:</i> <a>stackConfigurationManager</a> smart constructor.
data StackConfigurationManager

-- | Creates a value of <a>StackConfigurationManager</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>scmName</a> - The name. This parameter must be set to
--   <a>Chef</a>.</li>
--   <li><a>scmVersion</a> - The Chef version. This parameter must be set
--   to 12, 11.10, or 11.4 for Linux stacks, and to 12.2 for Windows
--   stacks. The default value for Linux stacks is 11.4.</li>
--   </ul>
stackConfigurationManager :: StackConfigurationManager

-- | The name. This parameter must be set to <a>Chef</a>.
scmName :: Lens' StackConfigurationManager (Maybe Text)

-- | The Chef version. This parameter must be set to 12, 11.10, or 11.4 for
--   Linux stacks, and to 12.2 for Windows stacks. The default value for
--   Linux stacks is 11.4.
scmVersion :: Lens' StackConfigurationManager (Maybe Text)

-- | Summarizes the number of layers, instances, and apps in a stack.
--   
--   <i>See:</i> <a>stackSummary</a> smart constructor.
data StackSummary

-- | Creates a value of <a>StackSummary</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ssARN</a> - The stack's ARN.</li>
--   <li><a>ssAppsCount</a> - The number of apps.</li>
--   <li><a>ssName</a> - The stack name.</li>
--   <li><a>ssStackId</a> - The stack ID.</li>
--   <li><a>ssLayersCount</a> - The number of layers.</li>
--   <li><a>ssInstancesCount</a> - An <tt>InstancesCount</tt> object with
--   the number of instances in each status.</li>
--   </ul>
stackSummary :: StackSummary

-- | The stack's ARN.
ssARN :: Lens' StackSummary (Maybe Text)

-- | The number of apps.
ssAppsCount :: Lens' StackSummary (Maybe Int)

-- | The stack name.
ssName :: Lens' StackSummary (Maybe Text)

-- | The stack ID.
ssStackId :: Lens' StackSummary (Maybe Text)

-- | The number of layers.
ssLayersCount :: Lens' StackSummary (Maybe Int)

-- | An <tt>InstancesCount</tt> object with the number of instances in each
--   status.
ssInstancesCount :: Lens' StackSummary (Maybe InstancesCount)

-- | Contains the data needed by RDP clients such as the Microsoft Remote
--   Desktop Connection to log in to the instance.
--   
--   <i>See:</i> <a>temporaryCredential</a> smart constructor.
data TemporaryCredential

-- | Creates a value of <a>TemporaryCredential</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tcInstanceId</a> - The instance's AWS OpsWorks ID.</li>
--   <li><a>tcUsername</a> - The user name.</li>
--   <li><a>tcPassword</a> - The password.</li>
--   <li><a>tcValidForInMinutes</a> - The length of time (in minutes) that
--   the grant is valid. When the grant expires, at the end of this period,
--   the user will no longer be able to use the credentials to log in. If
--   they are logged in at the time, they will be automatically logged
--   out.</li>
--   </ul>
temporaryCredential :: TemporaryCredential

-- | The instance's AWS OpsWorks ID.
tcInstanceId :: Lens' TemporaryCredential (Maybe Text)

-- | The user name.
tcUsername :: Lens' TemporaryCredential (Maybe Text)

-- | The password.
tcPassword :: Lens' TemporaryCredential (Maybe Text)

-- | The length of time (in minutes) that the grant is valid. When the
--   grant expires, at the end of this period, the user will no longer be
--   able to use the credentials to log in. If they are logged in at the
--   time, they will be automatically logged out.
tcValidForInMinutes :: Lens' TemporaryCredential (Maybe Int)

-- | Describes an instance's time-based auto scaling configuration.
--   
--   <i>See:</i> <a>timeBasedAutoScalingConfiguration</a> smart
--   constructor.
data TimeBasedAutoScalingConfiguration

-- | Creates a value of <a>TimeBasedAutoScalingConfiguration</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tbascInstanceId</a> - The instance ID.</li>
--   <li><a>tbascAutoScalingSchedule</a> - A
--   <tt>WeeklyAutoScalingSchedule</tt> object with the instance
--   schedule.</li>
--   </ul>
timeBasedAutoScalingConfiguration :: TimeBasedAutoScalingConfiguration

-- | The instance ID.
tbascInstanceId :: Lens' TimeBasedAutoScalingConfiguration (Maybe Text)

-- | A <tt>WeeklyAutoScalingSchedule</tt> object with the instance
--   schedule.
tbascAutoScalingSchedule :: Lens' TimeBasedAutoScalingConfiguration (Maybe WeeklyAutoScalingSchedule)

-- | Describes a user's SSH information.
--   
--   <i>See:</i> <a>userProfile</a> smart constructor.
data UserProfile

-- | Creates a value of <a>UserProfile</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>upAllowSelfManagement</a> - Whether users can specify their own
--   SSH public key through the My Settings page. For more information, see
--   <a>Managing User Permissions</a> .</li>
--   <li><a>upSSHPublicKey</a> - The user's SSH public key.</li>
--   <li><a>upSSHUsername</a> - The user's SSH user name.</li>
--   <li><a>upIAMUserARN</a> - The user's IAM ARN.</li>
--   <li><a>upName</a> - The user's name.</li>
--   </ul>
userProfile :: UserProfile

-- | Whether users can specify their own SSH public key through the My
--   Settings page. For more information, see <a>Managing User
--   Permissions</a> .
upAllowSelfManagement :: Lens' UserProfile (Maybe Bool)

-- | The user's SSH public key.
upSSHPublicKey :: Lens' UserProfile (Maybe Text)

-- | The user's SSH user name.
upSSHUsername :: Lens' UserProfile (Maybe Text)

-- | The user's IAM ARN.
upIAMUserARN :: Lens' UserProfile (Maybe Text)

-- | The user's name.
upName :: Lens' UserProfile (Maybe Text)

-- | Describes an instance's Amazon EBS volume.
--   
--   <i>See:</i> <a>volume</a> smart constructor.
data Volume

-- | Creates a value of <a>Volume</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vInstanceId</a> - The instance ID.</li>
--   <li><a>vStatus</a> - The value returned by <a>DescribeVolumes</a>
--   .</li>
--   <li><a>vSize</a> - The volume size.</li>
--   <li><a>vIOPS</a> - For PIOPS volumes, the IOPS per disk.</li>
--   <li><a>vDevice</a> - The device name.</li>
--   <li><a>vAvailabilityZone</a> - The volume Availability Zone. For more
--   information, see <a>Regions and Endpoints</a> .</li>
--   <li><a>vName</a> - The volume name.</li>
--   <li><a>vRAIdArrayId</a> - The RAID array ID.</li>
--   <li><a>vVolumeId</a> - The volume ID.</li>
--   <li><a>vRegion</a> - The AWS region. For more information about AWS
--   regions, see <a>Regions and Endpoints</a> .</li>
--   <li><a>vVolumeType</a> - The volume type, standard or PIOPS.</li>
--   <li><a>vEC2VolumeId</a> - The Amazon EC2 volume ID.</li>
--   <li><a>vMountPoint</a> - The volume mount point. For example,
--   "<i>mnt</i>disk1".</li>
--   </ul>
volume :: Volume

-- | The instance ID.
vInstanceId :: Lens' Volume (Maybe Text)

-- | The value returned by <a>DescribeVolumes</a> .
vStatus :: Lens' Volume (Maybe Text)

-- | The volume size.
vSize :: Lens' Volume (Maybe Int)

-- | For PIOPS volumes, the IOPS per disk.
vIOPS :: Lens' Volume (Maybe Int)

-- | The device name.
vDevice :: Lens' Volume (Maybe Text)

-- | The volume Availability Zone. For more information, see <a>Regions and
--   Endpoints</a> .
vAvailabilityZone :: Lens' Volume (Maybe Text)

-- | The volume name.
vName :: Lens' Volume (Maybe Text)

-- | The RAID array ID.
vRAIdArrayId :: Lens' Volume (Maybe Text)

-- | The volume ID.
vVolumeId :: Lens' Volume (Maybe Text)

-- | The AWS region. For more information about AWS regions, see <a>Regions
--   and Endpoints</a> .
vRegion :: Lens' Volume (Maybe Text)

-- | The volume type, standard or PIOPS.
vVolumeType :: Lens' Volume (Maybe Text)

-- | The Amazon EC2 volume ID.
vEC2VolumeId :: Lens' Volume (Maybe Text)

-- | The volume mount point. For example, "<i>mnt</i>disk1".
vMountPoint :: Lens' Volume (Maybe Text)

-- | Describes an Amazon EBS volume configuration.
--   
--   <i>See:</i> <a>volumeConfiguration</a> smart constructor.
data VolumeConfiguration

-- | Creates a value of <a>VolumeConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vcIOPS</a> - For PIOPS volumes, the IOPS per disk.</li>
--   <li><a>vcRAIdLevel</a> - The volume <a>RAID level</a> .</li>
--   <li><a>vcVolumeType</a> - The volume type: * <tt>standard</tt> -
--   Magnetic * <tt>io1</tt> - Provisioned IOPS (SSD) * <tt>gp2</tt> -
--   General Purpose (SSD)</li>
--   <li><a>vcMountPoint</a> - The volume mount point. For example
--   "<i>dev</i>sdh".</li>
--   <li><a>vcNumberOfDisks</a> - The number of disks in the volume.</li>
--   <li><a>vcSize</a> - The volume size.</li>
--   </ul>
volumeConfiguration :: Text -> Int -> Int -> VolumeConfiguration

-- | For PIOPS volumes, the IOPS per disk.
vcIOPS :: Lens' VolumeConfiguration (Maybe Int)

-- | The volume <a>RAID level</a> .
vcRAIdLevel :: Lens' VolumeConfiguration (Maybe Int)

-- | The volume type: * <tt>standard</tt> - Magnetic * <tt>io1</tt> -
--   Provisioned IOPS (SSD) * <tt>gp2</tt> - General Purpose (SSD)
vcVolumeType :: Lens' VolumeConfiguration (Maybe Text)

-- | The volume mount point. For example "<i>dev</i>sdh".
vcMountPoint :: Lens' VolumeConfiguration Text

-- | The number of disks in the volume.
vcNumberOfDisks :: Lens' VolumeConfiguration Int

-- | The volume size.
vcSize :: Lens' VolumeConfiguration Int

-- | Describes a time-based instance's auto scaling schedule. The schedule
--   consists of a set of key-value pairs.
--   
--   <ul>
--   <li>The key is the time period (a UTC hour) and must be an integer
--   from 0 - 23.</li>
--   <li>The value indicates whether the instance should be online or
--   offline for the specified period, and must be set to "on" or
--   "off"</li>
--   </ul>
--   
--   The default setting for all time periods is off, so you use the
--   following parameters primarily to specify the online periods. You
--   don't have to explicitly specify offline periods unless you want to
--   change an online period to an offline period.
--   
--   The following example specifies that the instance should be online for
--   four hours, from UTC 1200 - 1600. It will be off for the remainder of
--   the day.
--   
--   <pre>
--   { "12":"on", "13":"on", "14":"on", "15":"on" }
--   </pre>
--   
--   <i>See:</i> <a>weeklyAutoScalingSchedule</a> smart constructor.
data WeeklyAutoScalingSchedule

-- | Creates a value of <a>WeeklyAutoScalingSchedule</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>wassThursday</a> - The schedule for Thursday.</li>
--   <li><a>wassWednesday</a> - The schedule for Wednesday.</li>
--   <li><a>wassSaturday</a> - The schedule for Saturday.</li>
--   <li><a>wassMonday</a> - The schedule for Monday.</li>
--   <li><a>wassFriday</a> - The schedule for Friday.</li>
--   <li><a>wassSunday</a> - The schedule for Sunday.</li>
--   <li><a>wassTuesday</a> - The schedule for Tuesday.</li>
--   </ul>
weeklyAutoScalingSchedule :: WeeklyAutoScalingSchedule

-- | The schedule for Thursday.
wassThursday :: Lens' WeeklyAutoScalingSchedule (HashMap Text Text)

-- | The schedule for Wednesday.
wassWednesday :: Lens' WeeklyAutoScalingSchedule (HashMap Text Text)

-- | The schedule for Saturday.
wassSaturday :: Lens' WeeklyAutoScalingSchedule (HashMap Text Text)

-- | The schedule for Monday.
wassMonday :: Lens' WeeklyAutoScalingSchedule (HashMap Text Text)

-- | The schedule for Friday.
wassFriday :: Lens' WeeklyAutoScalingSchedule (HashMap Text Text)

-- | The schedule for Sunday.
wassSunday :: Lens' WeeklyAutoScalingSchedule (HashMap Text Text)

-- | The schedule for Tuesday.
wassTuesday :: Lens' WeeklyAutoScalingSchedule (HashMap Text Text)
