
Opsworks
********


boto.opsworks
=============

boto.opsworks.connect_to_region(region_name, **kw_params)

boto.opsworks.regions()

   Get all available regions for the Amazon Kinesis service.

   Return type:
      list

   Returns:
      A list of "boto.regioninfo.RegionInfo"


boto.opsworks.layer1
====================

class class boto.opsworks.layer1.OpsWorksConnection(**kwargs)

   AWS OpsWorks Welcome to the AWS OpsWorks API Reference . This guide
   provides descriptions, syntax, and usage examples about 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 >>`AWS
   OpsWorks`_<< details page.

   **SDKs and CLI**

   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:

   * >>`AWS CLI`_<<

   * >>`AWS SDK for Java`_<<

   * >>`AWS SDK for .NET`_<<

   * >>`AWS SDK for PHP 2`_<<

   * >>`AWS SDK for Ruby`_<<

   * >>`AWS SDK for Node.js`_<<

   * >>`AWS SDK for Python(Boto)`_<<

   **Endpoints**

   AWS OpsWorks supports only one endpoint, opsworks.us-
   east-1.amazonaws.com (HTTPS), so you must connect to that endpoint.
   You can then use the API to direct AWS OpsWorks to create stacks in
   any AWS Region.

   **Chef Version**

   When you call CreateStack, CloneStack, or UpdateStack we recommend
   you use the *ConfigurationManager* parameter to specify the Chef
   version, 0.9 or 11.4. The default value is currently 0.9. However,
   we expect to change the default value to 11.4 in October 2013. For
   more information, see >>`Using AWS OpsWorks with Chef 11`_<<.

   APIVersion = '2013-02-18'

   DefaultRegionEndpoint = 'opsworks.us-east-1.amazonaws.com'

   DefaultRegionName = 'us-east-1'

   ResponseError

      alias of "JSONResponseError"

   ServiceName = 'OpsWorks'

   TargetPrefix = 'OpsWorks_20130218'

   assign_volume(volume_id, instance_id=None)

      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 RegisterVolume. For more information, see
      >>`Resource Management`_<<.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

      Parameters:
         * **volume_id** (*string*) -- The volume ID.

         * **instance_id** (*string*) -- The instance ID.

   associate_elastic_ip(elastic_ip, instance_id=None)

      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 RegisterElasticIp. For more
      information, see >>`Resource Management`_<<.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

      Parameters:
         * **elastic_ip** (*string*) -- The Elastic IP address.

         * **instance_id** (*string*) -- The instance ID.

   attach_elastic_load_balancer(elastic_load_balancer_name, layer_id)

      Attaches an Elastic Load Balancing load balancer to a specified
      layer.

      You must create the Elastic Load Balancing instance separately,
      by using the Elastic Load Balancing console, API, or CLI. For
      more information, see ` Elastic Load Balancing Developer
      Guide`_.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

      Parameters:
         * **elastic_load_balancer_name** (*string*) -- The Elastic
           Load Balancing instance's name.

         * **layer_id** (*string*) -- The ID of the layer that the
           Elastic Load Balancing instance is to be attached to.

   clone_stack(source_stack_id, service_role_arn, name=None, region=None, vpc_id=None, attributes=None, default_instance_profile_arn=None, default_os=None, hostname_theme=None, default_availability_zone=None, default_subnet_id=None, custom_json=None, configuration_manager=None, use_custom_cookbooks=None, custom_cookbooks_source=None, default_ssh_key_name=None, clone_permissions=None, clone_app_ids=None, default_root_device_type=None)

      Creates a clone of a specified stack. For more information, see
      >>`Clone a Stack`_<<.

      **Required Permissions**: To use this action, an IAM user must
      have an attached policy that explicitly grants permissions. For
      more information on user permissions, see >>`Managing User
      Permissions`_<<.

      Parameters:
         * **source_stack_id** (*string*) -- The source stack ID.

         * **name** (*string*) -- The cloned stack name.

         * **region** (*string*) -- The cloned stack AWS region, such
           as "us-east-1". For more information about AWS regions, see
           >>`Regions and Endpoints`_<<.

         * **vpc_id** (*string*) -- The ID of the VPC that the cloned
           stack is to be launched into. It must be in the specified
           region. All instances will be 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 *DefaultAvailabilityZone* or the *DefaultSubnetId*
         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 *DefaultSubnetId*.

      For more information on how to use AWS OpsWorks with a VPC, see
         >>`Running a Stack in a VPC`_<<. For more information on
         default VPC and EC2 Classic, see >>`Supported Platforms`_<<.

      Parameters:
         * **attributes** (*map*) -- A list of stack attributes and
           values as key/value pairs to be added to the cloned stack.

         * **service_role_arn** (*string*) --

      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
         DescribePermissions. For more information about IAM ARNs, see
         >>`Using Identifiers`_<<.

      You must set this parameter to a valid service role ARN or the
      action
         will fail; there is no default value. You can specify the
         source stack's service role ARN, if you prefer, but you must
         do so explicitly.

      Parameters:
         * **default_instance_profile_arn** (*string*) -- 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 >>`Using Identifiers`_<<.

         * **default_os** (*string*) -- The cloned stack's default
           operating system, which must be set to *Amazon Linux* or
           *Ubuntu 12.04 LTS*. The default option is *Amazon Linux*.

         * **hostname_theme** (*string*) -- 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, *HostnameTheme* is set to *Layer_Dependent*,
           which creates host names by appending integers to the
           layer's short name. The other themes are:

      * *Baked_Goods*

      * *Clouds*

      * *European_Cities*

      * *Fruits*

      * *Greek_Deities*

      * *Legendary_Creatures_from_Japan*

      * *Planets_and_Moons*

      * *Roman_Deities*

      * *Scottish_Islands*

      * *US_Cities*

      * *Wild_Cats*

      To obtain a generated host name, call *GetHostNameSuggestion*,
      which
         returns a host name based on the current theme.

      Parameters:
         * **default_availability_zone** (*string*) -- The cloned
           stack's default Availability Zone, which must be in the
           specified region. For more information, see >>`Regions and
           Endpoints`_<<. If you also specify a value for
           *DefaultSubnetId*, the subnet must be in the same zone. For
           more information, see the *VpcId* parameter description.

         * **default_subnet_id** (*string*) -- The stack's default
           subnet ID. All instances will be launched into this subnet
           unless you specify otherwise when you create the instance.
           If you also specify a value for *DefaultAvailabilityZone*,
           the subnet must be in the same zone. For information on
           default values and when this parameter is required, see the
           *VpcId* parameter description.

         * **custom_json** (*string*) -- 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 and must escape
           characters such as '"'.: *"{"key1": "value1", "key2":
           "value2",...}"*

      For more information on custom JSON, see >>`<<Use Custom JSON to
      Modify the
         Stack Configuration JSON`_

      Parameters:
         * **configuration_manager** (*dict*) -- The configuration
           manager. When you clone a stack we recommend that you use
           the configuration manager to specify the Chef version, 0.9
           or 11.4. The default value is currently 0.9. However, we
           expect to change the default value to 11.4 in September
           2013.

         * **use_custom_cookbooks** (*boolean*) -- Whether to use
           custom cookbooks.

         * **custom_cookbooks_source** (*dict*) -- Contains the
           information required to retrieve an app or cookbook from a
           repository. For more information, see >>`Creating Apps`_<<
           or >>`Custom Recipes and Cookbooks`_<<.

         * **default_ssh_key_name** (*string*) -- A default SSH key
           for the stack instances. You can override this value when
           you create or update an instance.

         * **clone_permissions** (*boolean*) -- Whether to clone the
           source stack's permissions.

         * **clone_app_ids** (*list*) -- A list of source stack app
           IDs to be included in the cloned stack.

         * **default_root_device_type** (*string*) -- 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
           >>`Storage for the Root Device`_<<.

   create_app(stack_id, name, type, shortname=None, description=None, app_source=None, domains=None, enable_ssl=None, ssl_configuration=None, attributes=None)

      Creates an app for a specified stack. For more information, see
      >>`Creating Apps`_<<.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

      Parameters:
         * **stack_id** (*string*) -- The stack ID.

         * **shortname** (*string*) -- The app's short name.

         * **name** (*string*) -- The app name.

         * **description** (*string*) -- A description of the app.

         * **type** (*string*) -- 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.

         * **app_source** (*dict*) -- A *Source* object that specifies
           the app repository.

         * **domains** (*list*) -- The app virtual host settings, with
           multiple domains separated by commas. For example:
           *'www.example.com, example.com'*

         * **enable_ssl** (*boolean*) -- Whether to enable SSL for the
           app.

         * **ssl_configuration** (*dict*) -- An *SslConfiguration*
           object with the SSL configuration.

         * **attributes** (*map*) -- One or more user-defined
           key/value pairs to be added to the stack attributes bag.

   create_deployment(stack_id, command, app_id=None, instance_ids=None, comment=None, custom_json=None)

      Deploys a stack or app.

      * App deployment generates a *deploy* event, which runs the
        associated recipes and passes them a JSON stack configuration
        object that includes information about the app.

      * Stack deployment runs the *deploy* recipes but does not raise
        an event.

      For more information, see >>`Deploying Apps`_<< and >>`Run Stack
      Commands`_<<.

      **Required Permissions**: 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 >>`Managing User
      Permissions`_<<.

      Parameters:
         * **stack_id** (*string*) -- The stack ID.

         * **app_id** (*string*) -- The app ID. This parameter is
           required for app deployments, but not for other deployment
           commands.

         * **instance_ids** (*list*) -- The instance IDs for the
           deployment targets.

         * **command** (*dict*) -- A *DeploymentCommand* object that
           specifies the deployment command and any associated
           arguments.

         * **comment** (*string*) -- A user-defined comment.

         * **custom_json** (*string*) -- 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 and must escape
           characters such as '"'.: *"{"key1": "value1", "key2":
           "value2",...}"*

      For more information on custom JSON, see >>`<<Use Custom JSON to
      Modify the
         Stack Configuration JSON`_.

   create_instance(stack_id, layer_ids, instance_type, auto_scaling_type=None, hostname=None, os=None, ami_id=None, ssh_key_name=None, availability_zone=None, subnet_id=None, architecture=None, root_device_type=None, install_updates_on_boot=None)

      Creates an instance in a specified stack. For more information,
      see >>`Adding an Instance to a Layer`_<<.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

      Parameters:
         * **stack_id** (*string*) -- The stack ID.

         * **layer_ids** (*list*) -- An array that contains the
           instance layer IDs.

         * **instance_type** (*string*) -- The instance type. AWS
           OpsWorks supports all instance types except Cluster
           Compute, Cluster GPU, and High Memory Cluster. For more
           information, see >>`Instance Families and Types`_<<. The
           parameter values that you use to specify the various types
           are in the API Name column of the Available Instance Types
           table.

         * **auto_scaling_type** (*string*) --

      The instance auto scaling type, which has three possible values:

      * **AlwaysRunning**: A 24/7 instance, which is not affected by
        auto
           scaling.

      * **TimeBasedAutoScaling**: A time-based auto scaling instance,
        which
           is started and stopped based on a specified schedule. To
           specify the schedule, call SetTimeBasedAutoScaling.

      * **LoadBasedAutoScaling**: A load-based auto scaling instance,
        which
           is started and stopped based on load metrics. To use load-
           based auto scaling, you must enable it for the instance
           layer and configure the thresholds by calling
           SetLoadBasedAutoScaling.

      Parameters:
         * **hostname** (*string*) -- The instance host name.

         * **os** (*string*) -- The instance operating system, which
           must be set to one of the following.

      * Standard operating systems: *Amazon Linux* or *Ubuntu 12.04
        LTS*

      * Custom AMIs: *Custom*

      The default option is *Amazon Linux*. If you set this parameter
      to
         *Custom*, you must use the CreateInstance action's AmiId
         parameter to specify the custom AMI that you want to use. For
         more information on the standard operating systems, see
         >>`Operating Systems`_For more information on how to use
         custom AMIs with OpsWorks, see `Using Custom AMIs`_<<.

      Parameters:
         * **ami_id** (*string*) -- A custom AMI ID to be used to
           create the instance. The AMI should be based on one of the
           standard AWS OpsWorks APIs: Amazon Linux or Ubuntu 12.04
           LTS. For more information, see >>`Instances`_<<

         * **ssh_key_name** (*string*) -- The instance SSH key name.

         * **availability_zone** (*string*) -- The instance
           Availability Zone. For more information, see >>`Regions and
           Endpoints`_<<.

         * **subnet_id** (*string*) -- 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.

         * **architecture** (*string*) -- 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 >>`Instance
           Families and Types`_<<.

         * **root_device_type** (*string*) -- The instance root device
           type. For more information, see >>`Storage for the Root
           Device`_<<.

         * **install_updates_on_boot** (*boolean*) --

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

      We strongly recommend using the default value of *True*, to
      ensure that
         your instances have the latest security updates.

   create_layer(stack_id, type, name, shortname, attributes=None, custom_instance_profile_arn=None, custom_security_group_ids=None, packages=None, volume_configurations=None, enable_auto_healing=None, auto_assign_elastic_ips=None, auto_assign_public_ips=None, custom_recipes=None, install_updates_on_boot=None)

      Creates a layer. For more information, see >>`How to Create a
      Layer`_<<.

      You should use **CreateLayer** for noncustom layer types such as
      PHP App Server only if the stack does not have an existing layer
      of that type. A stack can have at most one instance of each
      noncustom layer; if you attempt to create a second instance,
      **CreateLayer** fails. A stack can have an arbitrary number of
      custom layers, so you can call **CreateLayer** as many times as
      you like for that layer type.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

      Parameters:
         * **stack_id** (*string*) -- The layer stack ID.

         * **type** (*string*) --

      The layer type. A stack cannot have more than one layer of the
      same
         type. This parameter must be set to one of the following:

      * lb: An HAProxy layer

      * web: A Static Web Server layer

      * rails-app: A Rails App Server layer

      * php-app: A PHP App Server layer

      * nodejs-app: A Node.js App Server layer

      * memcached: A Memcached layer

      * db-master: A MySQL layer

      * monitoring-master: A Ganglia layer

      * custom: A custom layer

      Parameters:
         * **name** (*string*) -- The layer name, which is used by the
           console.

         * **shortname** (*string*) -- The layer 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, '-', '_', and '.'.

         * **attributes** (*map*) -- One or more user-defined
           key/value pairs to be added to the stack attributes bag.

         * **custom_instance_profile_arn** (*string*) -- The ARN of an
           IAM profile that to be used for the layer's EC2 instances.
           For more information about IAM ARNs, see >>`Using
           Identifiers`_<<.

         * **custom_security_group_ids** (*list*) -- An array
           containing the layer custom security group IDs.

         * **packages** (*list*) -- An array of *Package* objects that
           describe the layer packages.

         * **volume_configurations** (*list*) -- A
           *VolumeConfigurations* object that describes the layer
           Amazon EBS volumes.

         * **enable_auto_healing** (*boolean*) -- Whether to disable
           auto healing for the layer.

         * **auto_assign_elastic_ips** (*boolean*) -- Whether to
           automatically assign an >>`Elastic IP address`_<< to the
           layer's instances. For more information, see >>`How to Edit
           a Layer`_<<.

         * **auto_assign_public_ips** (*boolean*) -- For stacks that
           are running in a VPC, whether to automatically assign a
           public IP address to the layer's instances. For more
           information, see >>`How to Edit a Layer`_<<.

         * **custom_recipes** (*dict*) -- A *LayerCustomRecipes*
           object that specifies the layer custom recipes.

         * **install_updates_on_boot** (*boolean*) --

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

      We strongly recommend using the default value of *True*, to
      ensure that
         your instances have the latest security updates.

   create_stack(name, region, service_role_arn, default_instance_profile_arn, vpc_id=None, attributes=None, default_os=None, hostname_theme=None, default_availability_zone=None, default_subnet_id=None, custom_json=None, configuration_manager=None, use_custom_cookbooks=None, custom_cookbooks_source=None, default_ssh_key_name=None, default_root_device_type=None)

      Creates a new stack. For more information, see >>`Create a New
      Stack`_<<.

      **Required Permissions**: To use this action, an IAM user must
      have an attached policy that explicitly grants permissions. For
      more information on user permissions, see >>`Managing User
      Permissions`_<<.

      Parameters:
         * **name** (*string*) -- The stack name.

         * **region** (*string*) -- The stack AWS region, such as "us-
           east-1". For more information about Amazon regions, see
           >>`Regions and Endpoints`_<<.

         * **vpc_id** (*string*) -- The ID of the VPC that the stack
           is to be launched into. It must be in the specified region.
           All instances will be 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 *DefaultAvailabilityZone* or the *DefaultSubnetId*
         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 *DefaultSubnetId*.

      For more information on how to use AWS OpsWorks with a VPC, see
         >>`Running a Stack in a VPC`_<<. For more information on
         default VPC and EC2 Classic, see >>`Supported Platforms`_<<.

      Parameters:
         * **attributes** (*map*) -- One or more user-defined
           key/value pairs to be added to the stack attributes bag.

         * **service_role_arn** (*string*) -- 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. For more information about IAM ARNs, see
           >>`Using Identifiers`_<<.

         * **default_instance_profile_arn** (*string*) -- 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 >>`Using Identifiers`_<<.

         * **default_os** (*string*) -- The stack's default operating
           system, which must be set to *Amazon Linux* or *Ubuntu
           12.04 LTS*. The default option is *Amazon Linux*.

         * **hostname_theme** (*string*) -- 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, *HostnameTheme* is set to *Layer_Dependent*,
           which creates host names by appending integers to the
           layer's short name. The other themes are:

      * *Baked_Goods*

      * *Clouds*

      * *European_Cities*

      * *Fruits*

      * *Greek_Deities*

      * *Legendary_Creatures_from_Japan*

      * *Planets_and_Moons*

      * *Roman_Deities*

      * *Scottish_Islands*

      * *US_Cities*

      * *Wild_Cats*

      To obtain a generated host name, call *GetHostNameSuggestion*,
      which
         returns a host name based on the current theme.

      Parameters:
         * **default_availability_zone** (*string*) -- The stack's
           default Availability Zone, which must be in the specified
           region. For more information, see >>`Regions and
           Endpoints`_<<. If you also specify a value for
           *DefaultSubnetId*, the subnet must be in the same zone. For
           more information, see the *VpcId* parameter description.

         * **default_subnet_id** (*string*) -- The stack's default
           subnet ID. All instances will be launched into this subnet
           unless you specify otherwise when you create the instance.
           If you also specify a value for *DefaultAvailabilityZone*,
           the subnet must be in that zone. For information on default
           values and when this parameter is required, see the *VpcId*
           parameter description.

         * **custom_json** (*string*) -- 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 and must escape
           characters such as '"'.: *"{"key1": "value1", "key2":
           "value2",...}"*

      For more information on custom JSON, see >>`<<Use Custom JSON to
      Modify the
         Stack Configuration JSON`_.

      Parameters:
         * **configuration_manager** (*dict*) -- The configuration
           manager. When you create a stack we recommend that you use
           the configuration manager to specify the Chef version, 0.9
           or 11.4. The default value is currently 0.9. However, we
           expect to change the default value to 11.4 in September
           2013.

         * **use_custom_cookbooks** (*boolean*) -- Whether the stack
           uses custom cookbooks.

         * **custom_cookbooks_source** (*dict*) -- Contains the
           information required to retrieve an app or cookbook from a
           repository. For more information, see >>`Creating Apps`_<<
           or >>`Custom Recipes and Cookbooks`_<<.

         * **default_ssh_key_name** (*string*) -- A default SSH key
           for the stack instances. You can override this value when
           you create or update an instance.

         * **default_root_device_type** (*string*) -- 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
           >>`Storage for the Root Device`_<<.

   create_user_profile(iam_user_arn, ssh_username=None, ssh_public_key=None, allow_self_management=None)

      Creates a new user profile.

      **Required Permissions**: To use this action, an IAM user must
      have an attached policy that explicitly grants permissions. For
      more information on user permissions, see >>`Managing User
      Permissions`_<<.

      Parameters:
         * **iam_user_arn** (*string*) -- The user's IAM ARN.

         * **ssh_username** (*string*) -- The user's SSH user name.

         * **ssh_public_key** (*string*) -- The user's public SSH key.

         * **allow_self_management** (*boolean*) -- Whether users can
           specify their own SSH public key through the My Settings
           page. For more information, see >>``<<_.

   delete_app(app_id)

      Deletes a specified app.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

      Parameters:
         **app_id** (*string*) -- The app ID.

   delete_instance(instance_id, delete_elastic_ip=None, delete_volumes=None)

      Deletes a specified instance. You must stop an instance before
      you can delete it. For more information, see >>`Deleting
      Instances`_<<.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

      Parameters:
         * **instance_id** (*string*) -- The instance ID.

         * **delete_elastic_ip** (*boolean*) -- Whether to delete the
           instance Elastic IP address.

         * **delete_volumes** (*boolean*) -- Whether to delete the
           instance Amazon EBS volumes.

   delete_layer(layer_id)

      Deletes a specified layer. You must first stop and then delete
      all associated instances. For more information, see >>`How to
      Delete a Layer`_<<.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

      Parameters:
         **layer_id** (*string*) -- The layer ID.

   delete_stack(stack_id)

      Deletes a specified stack. You must first delete all instances,
      layers, and apps. For more information, see >>`Shut Down a
      Stack`_<<.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

      Parameters:
         **stack_id** (*string*) -- The stack ID.

   delete_user_profile(iam_user_arn)

      Deletes a user profile.

      **Required Permissions**: To use this action, an IAM user must
      have an attached policy that explicitly grants permissions. For
      more information on user permissions, see >>`Managing User
      Permissions`_<<.

      Parameters:
         **iam_user_arn** (*string*) -- The user's IAM ARN.

   deregister_elastic_ip(elastic_ip)

      Deregisters a specified Elastic IP address. The address can then
      be registered by another stack. For more information, see
      >>`Resource Management`_<<.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

      Parameters:
         **elastic_ip** (*string*) -- The Elastic IP address.

   deregister_volume(volume_id)

      Deregisters an Amazon EBS volume. The volume can then be
      registered by another stack. For more information, see
      >>`Resource Management`_<<.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

      Parameters:
         **volume_id** (*string*) -- The volume ID.

   describe_apps(stack_id=None, app_ids=None)

      Requests a description of a specified set of apps.

      You must specify at least one of the parameters.

      **Required Permissions**: 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 >>`Managing User
      Permissions`_<<.

      Parameters:
         * **stack_id** (*string*) -- The app stack ID. If you use
           this parameter, *DescribeApps* returns a description of the
           apps in the specified stack.

         * **app_ids** (*list*) -- An array of app IDs for the apps to
           be described. If you use this parameter, *DescribeApps*
           returns a description of the specified apps. Otherwise, it
           returns a description of every app.

   describe_commands(deployment_id=None, instance_id=None, command_ids=None)

      Describes the results of specified commands.

      You must specify at least one of the parameters.

      **Required Permissions**: 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 >>`Managing User
      Permissions`_<<.

      Parameters:
         * **deployment_id** (*string*) -- The deployment ID. If you
           include this parameter, *DescribeCommands* returns a
           description of the commands associated with the specified
           deployment.

         * **instance_id** (*string*) -- The instance ID. If you
           include this parameter, *DescribeCommands* returns a
           description of the commands associated with the specified
           instance.

         * **command_ids** (*list*) -- An array of command IDs. If you
           include this parameter, *DescribeCommands* returns a
           description of the specified commands. Otherwise, it
           returns a description of every command.

   describe_deployments(stack_id=None, app_id=None, deployment_ids=None)

      Requests a description of a specified set of deployments.

      You must specify at least one of the parameters.

      **Required Permissions**: 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 >>`Managing User
      Permissions`_<<.

      Parameters:
         * **stack_id** (*string*) -- The stack ID. If you include
           this parameter, *DescribeDeployments* returns a description
           of the commands associated with the specified stack.

         * **app_id** (*string*) -- The app ID. If you include this
           parameter, *DescribeDeployments* returns a description of
           the commands associated with the specified app.

         * **deployment_ids** (*list*) -- An array of deployment IDs
           to be described. If you include this parameter,
           *DescribeDeployments* returns a description of the
           specified deployments. Otherwise, it returns a description
           of every deployment.

   describe_elastic_ips(instance_id=None, stack_id=None, ips=None)

      Describes >>`Elastic IP addresses`_<<.

      You must specify at least one of the parameters.

      **Required Permissions**: 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 >>`Managing User
      Permissions`_<<.

      Parameters:
         * **instance_id** (*string*) -- The instance ID. If you
           include this parameter, *DescribeElasticIps* returns a
           description of the Elastic IP addresses associated with the
           specified instance.

         * **stack_id** (*string*) -- A stack ID. If you include this
           parameter, *DescribeElasticIps* returns a description of
           the Elastic IP addresses that are registered with the
           specified stack.

         * **ips** (*list*) -- An array of Elastic IP addresses to be
           described. If you include this parameter,
           *DescribeElasticIps* returns a description of the specified
           Elastic IP addresses. Otherwise, it returns a description
           of every Elastic IP address.

   describe_elastic_load_balancers(stack_id=None, layer_ids=None)

      Describes a stack's Elastic Load Balancing instances.

      You must specify at least one of the parameters.

      **Required Permissions**: 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 >>`Managing User
      Permissions`_<<.

      Parameters:
         * **stack_id** (*string*) -- A stack ID. The action describes
           the stack's Elastic Load Balancing instances.

         * **layer_ids** (*list*) -- A list of layer IDs. The action
           describes the Elastic Load Balancing instances for the
           specified layers.

   describe_instances(stack_id=None, layer_id=None, instance_ids=None)

      Requests a description of a set of instances.

      You must specify at least one of the parameters.

      **Required Permissions**: 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 >>`Managing User
      Permissions`_<<.

      Parameters:
         * **stack_id** (*string*) -- A stack ID. If you use this
           parameter, *DescribeInstances* returns descriptions of the
           instances associated with the specified stack.

         * **layer_id** (*string*) -- A layer ID. If you use this
           parameter, *DescribeInstances* returns descriptions of the
           instances associated with the specified layer.

         * **instance_ids** (*list*) -- An array of instance IDs to be
           described. If you use this parameter, *DescribeInstances*
           returns a description of the specified instances.
           Otherwise, it returns a description of every instance.

   describe_layers(stack_id=None, layer_ids=None)

      Requests a description of one or more layers in a specified
      stack.

      You must specify at least one of the parameters.

      **Required Permissions**: 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 >>`Managing User
      Permissions`_<<.

      Parameters:
         * **stack_id** (*string*) -- The stack ID.

         * **layer_ids** (*list*) -- An array of layer IDs that
           specify the layers to be described. If you omit this
           parameter, *DescribeLayers* returns a description of every
           layer in the specified stack.

   describe_load_based_auto_scaling(layer_ids)

      Describes load-based auto scaling configurations for specified
      layers.

      You must specify at least one of the parameters.

      **Required Permissions**: 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 >>`Managing User
      Permissions`_<<.

      Parameters:
         **layer_ids** (*list*) -- An array of layer IDs.

   describe_my_user_profile()

      Describes a user's SSH information.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

   describe_permissions(iam_user_arn=None, stack_id=None)

      Describes the permissions for a specified stack.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

      Parameters:
         * **iam_user_arn** (*string*) -- The user's IAM ARN. For more
           information about IAM ARNs, see >>`Using Identifiers`_<<.

         * **stack_id** (*string*) -- The stack ID.

   describe_raid_arrays(instance_id=None, raid_array_ids=None)

      Describe an instance's RAID arrays.

      You must specify at least one of the parameters.

      **Required Permissions**: 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 >>`Managing User
      Permissions`_<<.

      Parameters:
         * **instance_id** (*string*) -- The instance ID. If you use
           this parameter, *DescribeRaidArrays* returns descriptions
           of the RAID arrays associated with the specified instance.

         * **raid_array_ids** (*list*) -- An array of RAID array IDs.
           If you use this parameter, *DescribeRaidArrays* returns
           descriptions of the specified arrays. Otherwise, it returns
           a description of every array.

   describe_service_errors(stack_id=None, instance_id=None, service_error_ids=None)

      Describes AWS OpsWorks service errors.

      **Required Permissions**: 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 >>`Managing User
      Permissions`_<<.

      Parameters:
         * **stack_id** (*string*) -- The stack ID. If you use this
           parameter, *DescribeServiceErrors* returns descriptions of
           the errors associated with the specified stack.

         * **instance_id** (*string*) -- The instance ID. If you use
           this parameter, *DescribeServiceErrors* returns
           descriptions of the errors associated with the specified
           instance.

         * **service_error_ids** (*list*) -- An array of service error
           IDs. If you use this parameter, *DescribeServiceErrors*
           returns descriptions of the specified errors. Otherwise, it
           returns a description of every error.

   describe_stack_summary(stack_id)

      Describes the number of layers and apps in a specified stack,
      and the number of instances in each state, such as
      *running_setup* or *online*.

      **Required Permissions**: 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 >>`Managing User
      Permissions`_<<.

      Parameters:
         **stack_id** (*string*) -- The stack ID.

   describe_stacks(stack_ids=None)

      Requests a description of one or more stacks.

      **Required Permissions**: 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 >>`Managing User
      Permissions`_<<.

      Parameters:
         **stack_ids** (*list*) -- An array of stack IDs that specify
         the stacks to be described. If you omit this parameter,
         *DescribeStacks* returns a description of every stack.

   describe_time_based_auto_scaling(instance_ids)

      Describes time-based auto scaling configurations for specified
      instances.

      You must specify at least one of the parameters.

      **Required Permissions**: 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 >>`Managing User
      Permissions`_<<.

      Parameters:
         **instance_ids** (*list*) -- An array of instance IDs.

   describe_user_profiles(iam_user_arns=None)

      Describe specified users.

      **Required Permissions**: To use this action, an IAM user must
      have an attached policy that explicitly grants permissions. For
      more information on user permissions, see >>`Managing User
      Permissions`_<<.

      Parameters:
         **iam_user_arns** (*list*) -- An array of IAM user ARNs that
         identify the users to be described.

   describe_volumes(instance_id=None, stack_id=None, raid_array_id=None, volume_ids=None)

      Describes an instance's Amazon EBS volumes.

      You must specify at least one of the parameters.

      **Required Permissions**: 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 >>`Managing User
      Permissions`_<<.

      Parameters:
         * **instance_id** (*string*) -- The instance ID. If you use
           this parameter, *DescribeVolumes* returns descriptions of
           the volumes associated with the specified instance.

         * **stack_id** (*string*) -- A stack ID. The action describes
           the stack's registered Amazon EBS volumes.

         * **raid_array_id** (*string*) -- The RAID array ID. If you
           use this parameter, *DescribeVolumes* returns descriptions
           of the volumes associated with the specified RAID array.

         * **volume_ids** (*list*) -- Am array of volume IDs. If you
           use this parameter, *DescribeVolumes* returns descriptions
           of the specified volumes. Otherwise, it returns a
           description of every volume.

   detach_elastic_load_balancer(elastic_load_balancer_name, layer_id)

      Detaches a specified Elastic Load Balancing instance from its
      layer.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

      Parameters:
         * **elastic_load_balancer_name** (*string*) -- The Elastic
           Load Balancing instance's name.

         * **layer_id** (*string*) -- The ID of the layer that the
           Elastic Load Balancing instance is attached to.

   disassociate_elastic_ip(elastic_ip)

      Disassociates an Elastic IP address from its instance. The
      address remains registered with the stack. For more information,
      see >>`Resource Management`_<<.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

      Parameters:
         **elastic_ip** (*string*) -- The Elastic IP address.

   get_hostname_suggestion(layer_id)

      Gets a generated host name for the specified layer, based on the
      current host name theme.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

      Parameters:
         **layer_id** (*string*) -- The layer ID.

   make_request(action, body)

   reboot_instance(instance_id)

      Reboots a specified instance. For more information, see
      >>`Starting, Stopping, and Rebooting Instances`_<<.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

      Parameters:
         **instance_id** (*string*) -- The instance ID.

   register_elastic_ip(elastic_ip, stack_id)

      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 DeregisterElasticIp. For more information, see
      >>`Resource Management`_<<.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

      Parameters:
         * **elastic_ip** (*string*) -- The Elastic IP address.

         * **stack_id** (*string*) -- The stack ID.

   register_volume(stack_id, ec_2_volume_id=None)

      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
      DeregisterVolume. For more information, see >>`Resource
      Management`_<<.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

      Parameters:
         * **ec_2_volume_id** (*string*) -- The Amazon EBS volume ID.

         * **stack_id** (*string*) -- The stack ID.

   set_load_based_auto_scaling(layer_id, enable=None, up_scaling=None, down_scaling=None)

      Specify the load-based auto scaling configuration for a
      specified layer. For more information, see >>`Managing Load with
      Time-based and Load-based Instances`_<<.

      To use load-based auto scaling, you must create a set of load-
      based auto scaling instances. Load-based auto scaling operates
      only on the instances from that set, so you must ensure that you
      have created enough instances to handle the maximum anticipated
      load.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

      Parameters:
         * **layer_id** (*string*) -- The layer ID.

         * **enable** (*boolean*) -- Enables load-based auto scaling
           for the layer.

         * **up_scaling** (*dict*) -- An *AutoScalingThresholds*
           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.

         * **down_scaling** (*dict*) -- An *AutoScalingThresholds*
           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.

   set_permission(stack_id, iam_user_arn, allow_ssh=None, allow_sudo=None, level=None)

      Specifies a stack's permissions. For more information, see
      >>`Security and Permissions`_<<.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

      Parameters:
         * **stack_id** (*string*) -- The stack ID.

         * **iam_user_arn** (*string*) -- The user's IAM ARN.

         * **allow_ssh** (*boolean*) -- The user is allowed to use SSH
           to communicate with the instance.

         * **allow_sudo** (*boolean*) -- The user is allowed to use
           **sudo** to elevate privileges.

         * **level** (*string*) -- The user's permission level, which
           must be set to one of the following strings. You cannot set
           your own permissions level.

      * *deny*

      * *show*

      * *deploy*

      * *manage*

      * *iam_only*

      For more information on the permissions associated with these
      levels,
         see >>`Managing User Permissions`_<<

   set_time_based_auto_scaling(instance_id, auto_scaling_schedule=None)

      Specify the time-based auto scaling configuration for a
      specified instance. For more information, see >>`Managing Load
      with Time-based and Load-based Instances`_<<.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

      Parameters:
         * **instance_id** (*string*) -- The instance ID.

         * **auto_scaling_schedule** (*dict*) -- An
           *AutoScalingSchedule* with the instance schedule.

   start_instance(instance_id)

      Starts a specified instance. For more information, see
      >>`Starting, Stopping, and Rebooting Instances`_<<.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

      Parameters:
         **instance_id** (*string*) -- The instance ID.

   start_stack(stack_id)

      Starts stack's instances.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

      Parameters:
         **stack_id** (*string*) -- The stack ID.

   stop_instance(instance_id)

      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 >>`Starting, Stopping,
      and Rebooting Instances`_<<.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

      Parameters:
         **instance_id** (*string*) -- The instance ID.

   stop_stack(stack_id)

      Stops a specified stack.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

      Parameters:
         **stack_id** (*string*) -- The stack ID.

   unassign_volume(volume_id)

      Unassigns an assigned Amazon EBS volume. The volume remains
      registered with the stack. For more information, see >>`Resource
      Management`_<<.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

      Parameters:
         **volume_id** (*string*) -- The volume ID.

   update_app(app_id, name=None, description=None, type=None, app_source=None, domains=None, enable_ssl=None, ssl_configuration=None, attributes=None)

      Updates a specified app.

      **Required Permissions**: 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 >>`Managing User
      Permissions`_<<.

      Parameters:
         * **app_id** (*string*) -- The app ID.

         * **name** (*string*) -- The app name.

         * **description** (*string*) -- A description of the app.

         * **type** (*string*) -- The app type.

         * **app_source** (*dict*) -- A *Source* object that specifies
           the app repository.

         * **domains** (*list*) -- The app's virtual host settings,
           with multiple domains separated by commas. For example:
           *'www.example.com, example.com'*

         * **enable_ssl** (*boolean*) -- Whether SSL is enabled for
           the app.

         * **ssl_configuration** (*dict*) -- An *SslConfiguration*
           object with the SSL configuration.

         * **attributes** (*map*) -- One or more user-defined
           key/value pairs to be added to the stack attributes bag.

   update_elastic_ip(elastic_ip, name=None)

      Updates a registered Elastic IP address's name. For more
      information, see >>`Resource Management`_<<.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

      Parameters:
         * **elastic_ip** (*string*) -- The address.

         * **name** (*string*) -- The new name.

   update_instance(instance_id, layer_ids=None, instance_type=None, auto_scaling_type=None, hostname=None, os=None, ami_id=None, ssh_key_name=None, architecture=None, install_updates_on_boot=None)

      Updates a specified instance.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

      Parameters:
         * **instance_id** (*string*) -- The instance ID.

         * **layer_ids** (*list*) -- The instance's layer IDs.

         * **instance_type** (*string*) -- The instance type. AWS
           OpsWorks supports all instance types except Cluster
           Compute, Cluster GPU, and High Memory Cluster. For more
           information, see >>`Instance Families and Types`_<<. The
           parameter values that you use to specify the various types
           are in the API Name column of the Available Instance Types
           table.

         * **auto_scaling_type** (*string*) --

      The instance's auto scaling type, which has three possible
      values:

      * **AlwaysRunning**: A 24/7 instance, which is not affected by
        auto
           scaling.

      * **TimeBasedAutoScaling**: A time-based auto scaling instance,
        which
           is started and stopped based on a specified schedule.

      * **LoadBasedAutoScaling**: A load-based auto scaling instance,
        which
           is started and stopped based on load metrics.

      Parameters:
         * **hostname** (*string*) -- The instance host name.

         * **os** (*string*) -- The instance operating system, which
           must be set to one of the following.

      * Standard operating systems: *Amazon Linux* or *Ubuntu 12.04
        LTS*

      * Custom AMIs: *Custom*

      The default option is *Amazon Linux*. If you set this parameter
      to
         *Custom*, you must use the CreateInstance action's AmiId
         parameter to specify the custom AMI that you want to use. For
         more information on the standard operating systems, see
         >>`Operating Systems`_For more information on how to use
         custom AMIs with OpsWorks, see `Using Custom AMIs`_<<.

      Parameters:
         * **ami_id** (*string*) -- A custom AMI ID to be used to
           create the instance. The AMI should be based on one of the
           standard AWS OpsWorks APIs: Amazon Linux or Ubuntu 12.04
           LTS. For more information, see >>`Instances`_<<

         * **ssh_key_name** (*string*) -- The instance SSH key name.

         * **architecture** (*string*) -- 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 >>`Instance
           Families and Types`_<<.

         * **install_updates_on_boot** (*boolean*) --

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

      We strongly recommend using the default value of *True*, to
      ensure that
         your instances have the latest security updates.

   update_layer(layer_id, name=None, shortname=None, attributes=None, custom_instance_profile_arn=None, custom_security_group_ids=None, packages=None, volume_configurations=None, enable_auto_healing=None, auto_assign_elastic_ips=None, auto_assign_public_ips=None, custom_recipes=None, install_updates_on_boot=None)

      Updates a specified layer.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

      Parameters:
         * **layer_id** (*string*) -- The layer ID.

         * **name** (*string*) -- The layer name, which is used by the
           console.

         * **shortname** (*string*) -- The layer 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:
           /A[a-z0-9-_.]+Z/.

         * **attributes** (*map*) -- One or more user-defined
           key/value pairs to be added to the stack attributes bag.

         * **custom_instance_profile_arn** (*string*) -- The ARN of an
           IAM profile to be used for all of the layer's EC2
           instances. For more information about IAM ARNs, see
           >>`Using Identifiers`_<<.

         * **custom_security_group_ids** (*list*) -- An array
           containing the layer's custom security group IDs.

         * **packages** (*list*) -- An array of *Package* objects that
           describe the layer's packages.

         * **volume_configurations** (*list*) -- A
           *VolumeConfigurations* object that describes the layer's
           Amazon EBS volumes.

         * **enable_auto_healing** (*boolean*) -- Whether to disable
           auto healing for the layer.

         * **auto_assign_elastic_ips** (*boolean*) -- Whether to
           automatically assign an >>`Elastic IP address`_<< to the
           layer's instances. For more information, see >>`How to Edit
           a Layer`_<<.

         * **auto_assign_public_ips** (*boolean*) -- For stacks that
           are running in a VPC, whether to automatically assign a
           public IP address to the layer's instances. For more
           information, see >>`How to Edit a Layer`_<<.

         * **custom_recipes** (*dict*) -- A *LayerCustomRecipes*
           object that specifies the layer's custom recipes.

         * **install_updates_on_boot** (*boolean*) --

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

      We strongly recommend using the default value of *True*, to
      ensure that
         your instances have the latest security updates.

   update_my_user_profile(ssh_public_key=None)

      Updates a user's SSH public key.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

      Parameters:
         **ssh_public_key** (*string*) -- The user's SSH public key.

   update_stack(stack_id, name=None, attributes=None, service_role_arn=None, default_instance_profile_arn=None, default_os=None, hostname_theme=None, default_availability_zone=None, default_subnet_id=None, custom_json=None, configuration_manager=None, use_custom_cookbooks=None, custom_cookbooks_source=None, default_ssh_key_name=None, default_root_device_type=None)

      Updates a specified stack.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

      Parameters:
         * **stack_id** (*string*) -- The stack ID.

         * **name** (*string*) -- The stack's new name.

         * **attributes** (*map*) -- One or more user-defined
           key/value pairs to be added to the stack attributes bag.

         * **service_role_arn** (*string*) --

      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. For more information about IAM ARNs,
         see >>`Using Identifiers`_<<.

      You must set this parameter to a valid service role ARN or the
      action
         will fail; there is no default value. You can specify the
         stack's current service role ARN, if you prefer, but you must
         do so explicitly.

      Parameters:
         * **default_instance_profile_arn** (*string*) -- 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 >>`Using Identifiers`_<<.

         * **default_os** (*string*) -- The stack's default operating
           system, which must be set to *Amazon Linux* or *Ubuntu
           12.04 LTS*. The default option is *Amazon Linux*.

         * **hostname_theme** (*string*) -- The stack's new host name
           theme, with spaces are replaced by underscores. The theme
           is used to generate host names for the stack's instances.
           By default, *HostnameTheme* is set to *Layer_Dependent*,
           which creates host names by appending integers to the
           layer's short name. The other themes are:

      * *Baked_Goods*

      * *Clouds*

      * *European_Cities*

      * *Fruits*

      * *Greek_Deities*

      * *Legendary_Creatures_from_Japan*

      * *Planets_and_Moons*

      * *Roman_Deities*

      * *Scottish_Islands*

      * *US_Cities*

      * *Wild_Cats*

      To obtain a generated host name, call *GetHostNameSuggestion*,
      which
         returns a host name based on the current theme.

      Parameters:
         * **default_availability_zone** (*string*) -- The stack's
           default Availability Zone, which must be in the specified
           region. For more information, see >>`Regions and
           Endpoints`_<<. If you also specify a value for
           *DefaultSubnetId*, the subnet must be in the same zone. For
           more information, see CreateStack.

         * **default_subnet_id** (*string*) -- The stack's default
           subnet ID. All instances will be launched into this subnet
           unless you specify otherwise when you create the instance.
           If you also specify a value for *DefaultAvailabilityZone*,
           the subnet must be in that zone. For more information, see
           CreateStack.

         * **custom_json** (*string*) -- 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 and must escape
           characters such as '"'.: *"{"key1": "value1", "key2":
           "value2",...}"*

      For more information on custom JSON, see >>`<<Use Custom JSON to
      Modify the
         Stack Configuration JSON`_.

      Parameters:
         * **configuration_manager** (*dict*) -- The configuration
           manager. When you update a stack you can optionally use the
           configuration manager to specify the Chef version, 0.9 or
           11.4. If you omit this parameter, AWS OpsWorks does not
           change the Chef version.

         * **use_custom_cookbooks** (*boolean*) -- Whether the stack
           uses custom cookbooks.

         * **custom_cookbooks_source** (*dict*) -- Contains the
           information required to retrieve an app or cookbook from a
           repository. For more information, see >>`Creating Apps`_<<
           or >>`Custom Recipes and Cookbooks`_<<.

         * **default_ssh_key_name** (*string*) -- A default SSH key
           for the stack instances. You can override this value when
           you create or update an instance.

         * **default_root_device_type** (*string*) -- 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
           >>`Storage for the Root Device`_<<.

   update_user_profile(iam_user_arn, ssh_username=None, ssh_public_key=None, allow_self_management=None)

      Updates a specified user profile.

      **Required Permissions**: To use this action, an IAM user must
      have an attached policy that explicitly grants permissions. For
      more information on user permissions, see >>`Managing User
      Permissions`_<<.

      Parameters:
         * **iam_user_arn** (*string*) -- The user IAM ARN.

         * **ssh_username** (*string*) -- The user's new SSH user
           name.

         * **ssh_public_key** (*string*) -- The user's new SSH public
           key.

         * **allow_self_management** (*boolean*) -- Whether users can
           specify their own SSH public key through the My Settings
           page. For more information, see >>`Managing User
           Permissions`_<<.

   update_volume(volume_id, name=None, mount_point=None)

      Updates an Amazon EBS volume's name or mount point. For more
      information, see >>`Resource Management`_<<.

      **Required Permissions**: 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 >>`Managing User Permissions`_<<.

      Parameters:
         * **volume_id** (*string*) -- The volume ID.

         * **name** (*string*) -- The new name.

         * **mount_point** (*string*) -- The new mount point.


boto.opsworks.exceptions
========================

exception exception boto.opsworks.exceptions.ResourceNotFoundException(status, reason, body=None, *args)

exception exception boto.opsworks.exceptions.ValidationException(status, reason, body=None, *args)
