# WARNING ABOUT GENERATED CODE # # This file is generated. See the contributing guide for more information: # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md # # WARNING ABOUT GENERATED CODE module Aws::OpsWorks class Resource # @param options ({}) # @option options [Client] :client def initialize(options = {}) @client = options[:client] || Client.new(options) end # @return [Client] def client @client end # @!group Actions # @example Request syntax with placeholder values # # stack = ops_works.create_stack({ # name: "String", # required # region: "String", # required # vpc_id: "String", # attributes: { # "Color" => "String", # }, # service_role_arn: "String", # required # default_instance_profile_arn: "String", # required # default_os: "String", # hostname_theme: "String", # default_availability_zone: "String", # default_subnet_id: "String", # custom_json: "String", # configuration_manager: { # name: "String", # version: "String", # }, # chef_configuration: { # manage_berkshelf: false, # berkshelf_version: "String", # }, # use_custom_cookbooks: false, # use_opsworks_security_groups: false, # custom_cookbooks_source: { # type: "git", # accepts git, svn, archive, s3 # url: "String", # username: "String", # password: "String", # ssh_key: "String", # revision: "String", # }, # default_ssh_key_name: "String", # default_root_device_type: "ebs", # accepts ebs, instance-store # agent_version: "String", # }) # @param [Hash] options ({}) # @option options [required, String] :name # The stack name. # @option options [required, String] :region # The stack's AWS region, such as `ap-south-1`. For more information # about Amazon regions, see [Regions and Endpoints][1]. # # In the AWS CLI, this API maps to the `--stack-region` parameter. If # the `--stack-region` parameter and the AWS CLI common parameter # `--region` are set to the same value, the stack uses a *regional* # endpoint. If the `--stack-region` parameter is not set, but the AWS # CLI `--region` parameter is, this also results in a stack with a # *regional* endpoint. However, if the `--region` parameter is set to # `us-east-1`, and the `--stack-region` parameter is set to one of the # following, then the stack uses a legacy or *classic* region: # `us-west-1, us-west-2, sa-east-1, eu-central-1, eu-west-1, # ap-northeast-1, ap-southeast-1, ap-southeast-2`. In this case, the # actual API endpoint of the stack is in `us-east-1`. Only the preceding # regions are supported as classic regions in the `us-east-1` API # endpoint. Because it is a best practice to choose the regional # endpoint that is closest to where you manage AWS, we recommend that # you use regional endpoints for new stacks. The AWS CLI common # `--region` parameter always specifies a regional API endpoint; it # cannot be used to specify a classic AWS OpsWorks Stacks region. # # # # # # [1]: https://docs.aws.amazon.com/general/latest/gr/rande.html # @option options [String] :vpc_id # 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 `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 Stacks infers the value of the other # parameter. If you specify neither parameter, AWS OpsWorks Stacks 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 about how to use AWS OpsWorks Stacks with a VPC, # see [Running a Stack in a VPC][1]. For more information about default # VPC and EC2-Classic, see [Supported Platforms][2]. # # # # [1]: https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-vpc.html # [2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html # @option options [Hash] :attributes # One or more user-defined key-value pairs to be added to the stack # attributes. # @option options [required, String] :service_role_arn # The stack's AWS Identity and Access Management (IAM) role, which # allows AWS OpsWorks Stacks 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][1]. # # # # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html # @option options [required, String] :default_instance_profile_arn # 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 [Using Identifiers][1]. # # # # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html # @option options [String] :default_os # 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 # `Amazon Linux 2018.03`, `Amazon Linux 2017.09`, `Amazon Linux # 2017.03`, `Amazon Linux 2016.09`, `Amazon Linux 2016.03`, `Amazon # Linux 2015.09`, or `Amazon Linux 2015.03`. # # * A supported Ubuntu operating system, such as `Ubuntu 16.04 LTS`, # `Ubuntu 14.04 LTS`, or `Ubuntu 12.04 LTS`. # # * `CentOS Linux 7` # # * `Red Hat Enterprise Linux 7` # # * A supported Windows operating system, such as `Microsoft Windows # Server 2012 R2 Base`, `Microsoft Windows Server 2012 R2 with SQL # Server Express`, `Microsoft Windows Server 2012 R2 with SQL Server # Standard`, or `Microsoft Windows Server 2012 R2 with SQL Server # Web`. # # * A custom AMI: `Custom`. You specify the custom AMI you want to use # when you create instances. For more information, see [ Using Custom # AMIs][1]. # # The default option is the current Amazon Linux version. For more # information about supported operating systems, see [AWS OpsWorks # Stacks Operating Systems][2]. # # # # [1]: https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-custom-ami.html # [2]: https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-os.html # @option options [String] :hostname_theme # 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, `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` # # * `Europe_Cities` # # * `Fruits` # # * `Greek_Deities_and_Titans` # # * `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. # @option options [String] :default_availability_zone # The stack's default Availability Zone, which must be in the specified # region. For more information, see [Regions and Endpoints][1]. If you # also specify a value for `DefaultSubnetId`, the subnet must be in the # same zone. For more information, see the `VpcId` parameter # description. # # # # [1]: https://docs.aws.amazon.com/general/latest/gr/rande.html # @option options [String] :default_subnet_id # The stack's default VPC subnet ID. This parameter is required if you # specify a value for the `VpcId` parameter. All instances are 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. # @option options [String] :custom_json # 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: # # `"\{"key1": "value1", "key2": "value2",...\}"` # # For more information about custom JSON, see [Use Custom JSON to Modify # the Stack Configuration Attributes][1]. # # # # [1]: https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-json.html # @option options [Types::StackConfigurationManager] :configuration_manager # 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 12. # @option options [Types::ChefConfiguration] :chef_configuration # A `ChefConfiguration` object that specifies whether to enable # Berkshelf and the Berkshelf version on Chef 11.10 stacks. For more # information, see [Create a New Stack][1]. # # # # [1]: https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html # @option options [Boolean] :use_custom_cookbooks # Whether the stack uses custom cookbooks. # @option options [Boolean] :use_opsworks_security_groups # Whether to associate the AWS OpsWorks Stacks built-in security groups # with the stack's layers. # # AWS OpsWorks Stacks provides a standard set of built-in security # groups, one for each layer, which are associated with layers by # default. With `UseOpsworksSecurityGroups` you can instead provide your # own custom security groups. `UseOpsworksSecurityGroups` has the # following settings: # # * True - AWS OpsWorks Stacks 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 Stacks 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 [Create a New Stack][1]. # # # # [1]: https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html # @option options [Types::Source] :custom_cookbooks_source # Contains the information required to retrieve an app or cookbook from # a repository. For more information, see [Adding Apps][1] or [Cookbooks # and Recipes][2]. # # # # [1]: https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html # [2]: https://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook.html # @option options [String] :default_ssh_key_name # 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 [ Using SSH to Communicate # with an Instance][1] and [ Managing SSH Access][2]. You can override # this setting by specifying a different key pair, or no key pair, when # you [ create an instance][3]. # # # # [1]: https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-ssh.html # [2]: https://docs.aws.amazon.com/opsworks/latest/userguide/security-ssh-access.html # [3]: https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-add.html # @option options [String] :default_root_device_type # 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 `instance-store`. For more # information, see [Storage for the Root Device][1]. # # # # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ComponentsAMIs.html#storage-for-the-root-device # @option options [String] :agent_version # The default AWS OpsWorks Stacks agent version. You have the following # options: # # * Auto-update - Set this parameter to `LATEST`. AWS OpsWorks Stacks # 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 Stacks 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 DescribeAgentVersions. # AgentVersion cannot be set to Chef 12.2. # # You can also specify an agent version when you create or update an # instance, which overrides the stack's default setting. # # # @return [Stack] def create_stack(options = {}) resp = @client.create_stack(options) Stack.new( id: resp.data.stack_id, client: @client ) end # @!group Associations # @param [String] id # @return [Layer] def layer(id) Layer.new( id: id, client: @client ) end # @param [String] id # @return [Stack] def stack(id) Stack.new( id: id, client: @client ) end # @example Request syntax with placeholder values # # stacks = ops_works.stacks({ # stack_ids: ["String"], # }) # @param [Hash] options ({}) # @option options [Array] :stack_ids # An array of stack IDs that specify the stacks to be described. If you # omit this parameter, `DescribeStacks` returns a description of every # stack. # @return [Stack::Collection] def stacks(options = {}) batches = Enumerator.new do |y| batch = [] resp = @client.describe_stacks(options) resp.data.stacks.each do |s| batch << Stack.new( id: s.stack_id, data: s, client: @client ) end y.yield(batch) end Stack::Collection.new(batches) end end end