def create_layer(options = {})
      options = options.merge(stack_id: @id)
      resp = @client.create_layer(options)
      Layer.new(
        id: resp.data.layer_id,
        client: @client
      )
    end
def create_layer(options = {})
      options = options.merge(stack_id: @id)
      resp = @client.create_layer(options)
      Layer.new(
        id: resp.data.layer_id,
        client: @client
      )
    end
@!group Actions
 @example Request syntax with placeholder values

   layer = stack.create_layer({
     type: "aws-flow-ruby", # required, accepts aws-flow-ruby, ecs-cluster, java-app, lb, web, php-app, rails-app, nodejs-app, memcached, db-master, monitoring-master, custom
     name: "String", # required
     shortname: "String", # required
     attributes: {
       "EcsClusterArn" => "String",
     },
     cloud_watch_logs_configuration: {
       enabled: false,
       log_streams: [
         {
           log_group_name: "String",
           datetime_format: "String",
           time_zone: "LOCAL", # accepts LOCAL, UTC
           file: "String",
           file_fingerprint_lines: "String",
           multi_line_start_pattern: "String",
           initial_position: "start_of_file", # accepts start_of_file, end_of_file
           encoding: "ascii", # accepts ascii, big5, big5hkscs, cp037, cp424, cp437, cp500, cp720, cp737, cp775, cp850, cp852, cp855, cp856, cp857, cp858, cp860, cp861, cp862, cp863, cp864, cp865, cp866, cp869, cp874, cp875, cp932, cp949, cp950, cp1006, cp1026, cp1140, cp1250, cp1251, cp1252, cp1253, cp1254, cp1255, cp1256, cp1257, cp1258, euc_jp, euc_jis_2004, euc_jisx0213, euc_kr, gb2312, gbk, gb18030, hz, iso2022_jp, iso2022_jp_1, iso2022_jp_2, iso2022_jp_2004, iso2022_jp_3, iso2022_jp_ext, iso2022_kr, latin_1, iso8859_2, iso8859_3, iso8859_4, iso8859_5, iso8859_6, iso8859_7, iso8859_8, iso8859_9, iso8859_10, iso8859_13, iso8859_14, iso8859_15, iso8859_16, johab, koi8_r, koi8_u, mac_cyrillic, mac_greek, mac_iceland, mac_latin2, mac_roman, mac_turkish, ptcp154, shift_jis, shift_jis_2004, shift_jisx0213, utf_32, utf_32_be, utf_32_le, utf_16, utf_16_be, utf_16_le, utf_7, utf_8, utf_8_sig
           buffer_duration: 1,
           batch_count: 1,
           batch_size: 1,
         },
       ],
     },
     custom_instance_profile_arn: "String",
     custom_json: "String",
     custom_security_group_ids: ["String"],
     packages: ["String"],
     volume_configurations: [
       {
         mount_point: "String", # required
         raid_level: 1,
         number_of_disks: 1, # required
         size: 1, # required
         volume_type: "String",
         iops: 1,
         encrypted: false,
       },
     ],
     enable_auto_healing: false,
     auto_assign_elastic_ips: false,
     auto_assign_public_ips: false,
     custom_recipes: {
       setup: ["String"],
       configure: ["String"],
       deploy: ["String"],
       undeploy: ["String"],
       shutdown: ["String"],
     },
     install_updates_on_boot: false,
     use_ebs_optimized_instances: false,
     lifecycle_event_configuration: {
       shutdown: {
         execution_timeout: 1,
         delay_until_elb_connections_drained: false,
       },
     },
   })
 @param [Hash] options ({})
 @option options [required, String] :type
   The layer type. A stack cannot have more than one built-in layer of
   the same type. It can have any number of custom layers. Built-in
   layers are not available in Chef 12 stacks.
 @option options [required, String] :name
   The layer name, which is used by the console.
 @option options [required, String] :shortname
   For custom layers only, use this parameter to specify the layer's
   short name, which is used internally by AWS OpsWorks Stacks and by
   Chef recipes. The short name is also used as the name for the
   directory where your app files are installed. It can have a maximum of
   200 characters, which are limited to the alphanumeric characters,
   '-', '\_', and '.'.

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



   [1]: http://docs.aws.amazon.com/opsworks/latest/userguide/layers.html
 @option options [Hash<String,String>] :attributes
   One or more user-defined key-value pairs to be added to the stack
   attributes.

   To create a cluster layer, set the `EcsClusterArn` attribute to the
   cluster's ARN.
 @option options [Types::CloudWatchLogsConfiguration] :cloud_watch_logs_configuration
   Specifies CloudWatch Logs configuration options for the layer. For
   more information, see CloudWatchLogsLogStream.
 @option options [String] :custom_instance_profile_arn
   The ARN of an IAM profile to be used for the layer's EC2 instances.
   For more information about IAM ARNs, see [Using Identifiers][1].



   [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html
 @option options [String] :custom_json
   A JSON-formatted string containing custom stack configuration and
   deployment attributes to be installed on the layer's instances. For
   more information, see [ Using Custom JSON][1]. This feature is
   supported as of version 1.7.42 of the AWS CLI.



   [1]: http://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook-json-override.html
 @option options [Array<String>] :custom_security_group_ids
   An array containing the layer custom security group IDs.
 @option options [Array<String>] :packages
   An array of `Package` objects that describes the layer packages.
 @option options [Array<Types::VolumeConfiguration>] :volume_configurations
   A `VolumeConfigurations` object that describes the layer's Amazon EBS
   volumes.
 @option options [Boolean] :enable_auto_healing
   Whether to disable auto healing for the layer.
 @option options [Boolean] :auto_assign_elastic_ips
   Whether to automatically assign an [Elastic IP address][1] to the
   layer's instances. For more information, see [How to Edit a
   Layer][2].



   [1]: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html
   [2]: http://docs.aws.amazon.com/opsworks/latest/userguide/workinglayers-basics-edit.html
 @option options [Boolean] :auto_assign_public_ips
   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][1].



   [1]: http://docs.aws.amazon.com/opsworks/latest/userguide/workinglayers-basics-edit.html
 @option options [Types::Recipes] :custom_recipes
   A `LayerCustomRecipes` object that specifies the layer custom recipes.
 @option options [Boolean] :install_updates_on_boot
   Whether to install operating system and package updates when the
   instance boots. The default value is `true`. To control when updates
   are installed, set this value to `false`. You must then update your
   instances manually by using CreateDeployment to run the
   `update_dependencies` stack command or by manually running `yum`
   (Amazon Linux) or `apt-get` (Ubuntu) on the instances.

   <note markdown="1"> To ensure that your instances have the latest security updates, we
   strongly recommend using the default value of `true`.

    </note>
 @option options [Boolean] :use_ebs_optimized_instances
   Whether to use Amazon EBS-optimized instances.
 @option options [Types::LifecycleEventConfiguration] :lifecycle_event_configuration
   A `LifeCycleEventConfiguration` object that you can use to configure
   the Shutdown event to specify an execution timeout and enable or
   disable Elastic Load Balancer connection draining.
 @return [Layer]