Mercurial > repos > shellac > guppy_basecaller
comparison env/lib/python3.7/site-packages/boto/opsworks/layer1.py @ 0:26e78fe6e8c4 draft
"planemo upload commit c699937486c35866861690329de38ec1a5d9f783"
| author | shellac |
|---|---|
| date | Sat, 02 May 2020 07:14:21 -0400 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:26e78fe6e8c4 |
|---|---|
| 1 # Copyright (c) 2014 Amazon.com, Inc. or its affiliates. All Rights Reserved | |
| 2 # | |
| 3 # Permission is hereby granted, free of charge, to any person obtaining a | |
| 4 # copy of this software and associated documentation files (the | |
| 5 # "Software"), to deal in the Software without restriction, including | |
| 6 # without limitation the rights to use, copy, modify, merge, publish, dis- | |
| 7 # tribute, sublicense, and/or sell copies of the Software, and to permit | |
| 8 # persons to whom the Software is furnished to do so, subject to the fol- | |
| 9 # lowing conditions: | |
| 10 # | |
| 11 # The above copyright notice and this permission notice shall be included | |
| 12 # in all copies or substantial portions of the Software. | |
| 13 # | |
| 14 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | |
| 15 # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL- | |
| 16 # ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT | |
| 17 # SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | |
| 18 # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
| 19 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | |
| 20 # IN THE SOFTWARE. | |
| 21 # | |
| 22 | |
| 23 import boto | |
| 24 from boto.compat import json | |
| 25 from boto.connection import AWSQueryConnection | |
| 26 from boto.regioninfo import RegionInfo | |
| 27 from boto.exception import JSONResponseError | |
| 28 from boto.opsworks import exceptions | |
| 29 | |
| 30 | |
| 31 class OpsWorksConnection(AWSQueryConnection): | |
| 32 """ | |
| 33 AWS OpsWorks | |
| 34 Welcome to the AWS OpsWorks API Reference . This guide provides | |
| 35 descriptions, syntax, and usage examples about AWS OpsWorks | |
| 36 actions and data types, including common parameters and error | |
| 37 codes. | |
| 38 | |
| 39 AWS OpsWorks is an application management service that provides an | |
| 40 integrated experience for overseeing the complete application | |
| 41 lifecycle. For information about this product, go to the `AWS | |
| 42 OpsWorks`_ details page. | |
| 43 | |
| 44 **SDKs and CLI** | |
| 45 | |
| 46 The most common way to use the AWS OpsWorks API is by using the | |
| 47 AWS Command Line Interface (CLI) or by using one of the AWS SDKs | |
| 48 to implement applications in your preferred language. For more | |
| 49 information, see: | |
| 50 | |
| 51 | |
| 52 + `AWS CLI`_ | |
| 53 + `AWS SDK for Java`_ | |
| 54 + `AWS SDK for .NET`_ | |
| 55 + `AWS SDK for PHP 2`_ | |
| 56 + `AWS SDK for Ruby`_ | |
| 57 + `AWS SDK for Node.js`_ | |
| 58 + `AWS SDK for Python(Boto)`_ | |
| 59 | |
| 60 | |
| 61 **Endpoints** | |
| 62 | |
| 63 AWS OpsWorks supports only one endpoint, opsworks.us- | |
| 64 east-1.amazonaws.com (HTTPS), so you must connect to that | |
| 65 endpoint. You can then use the API to direct AWS OpsWorks to | |
| 66 create stacks in any AWS Region. | |
| 67 | |
| 68 **Chef Versions** | |
| 69 | |
| 70 When you call CreateStack, CloneStack, or UpdateStack we recommend | |
| 71 you use the `ConfigurationManager` parameter to specify the Chef | |
| 72 version, 0.9, 11.4, or 11.10. The default value is currently | |
| 73 11.10. For more information, see `Chef Versions`_. | |
| 74 | |
| 75 You can still specify Chef 0.9 for your stack, but new features | |
| 76 are not available for Chef 0.9 stacks, and support is scheduled to | |
| 77 end on July 24, 2014. We do not recommend using Chef 0.9 for new | |
| 78 stacks, and we recommend migrating your existing Chef 0.9 stacks | |
| 79 to Chef 11.10 as soon as possible. | |
| 80 """ | |
| 81 APIVersion = "2013-02-18" | |
| 82 DefaultRegionName = "us-east-1" | |
| 83 DefaultRegionEndpoint = "opsworks.us-east-1.amazonaws.com" | |
| 84 ServiceName = "OpsWorks" | |
| 85 TargetPrefix = "OpsWorks_20130218" | |
| 86 ResponseError = JSONResponseError | |
| 87 | |
| 88 _faults = { | |
| 89 "ResourceNotFoundException": exceptions.ResourceNotFoundException, | |
| 90 "ValidationException": exceptions.ValidationException, | |
| 91 } | |
| 92 | |
| 93 | |
| 94 def __init__(self, **kwargs): | |
| 95 region = kwargs.pop('region', None) | |
| 96 if not region: | |
| 97 region = RegionInfo(self, self.DefaultRegionName, | |
| 98 self.DefaultRegionEndpoint) | |
| 99 | |
| 100 if 'host' not in kwargs or kwargs['host'] is None: | |
| 101 kwargs['host'] = region.endpoint | |
| 102 | |
| 103 super(OpsWorksConnection, self).__init__(**kwargs) | |
| 104 self.region = region | |
| 105 | |
| 106 def _required_auth_capability(self): | |
| 107 return ['hmac-v4'] | |
| 108 | |
| 109 def assign_instance(self, instance_id, layer_ids): | |
| 110 """ | |
| 111 Assign a registered instance to a custom layer. You cannot use | |
| 112 this action with instances that were created with AWS | |
| 113 OpsWorks. | |
| 114 | |
| 115 **Required Permissions**: To use this action, an IAM user must | |
| 116 have a Manage permissions level for the stack or an attached | |
| 117 policy that explicitly grants permissions. For more | |
| 118 information on user permissions, see `Managing User | |
| 119 Permissions`_. | |
| 120 | |
| 121 :type instance_id: string | |
| 122 :param instance_id: The instance ID. | |
| 123 | |
| 124 :type layer_ids: list | |
| 125 :param layer_ids: The layer ID, which must correspond to a custom | |
| 126 layer. You cannot assign a registered instance to a built-in layer. | |
| 127 | |
| 128 """ | |
| 129 params = { | |
| 130 'InstanceId': instance_id, | |
| 131 'LayerIds': layer_ids, | |
| 132 } | |
| 133 return self.make_request(action='AssignInstance', | |
| 134 body=json.dumps(params)) | |
| 135 | |
| 136 def assign_volume(self, volume_id, instance_id=None): | |
| 137 """ | |
| 138 Assigns one of the stack's registered Amazon EBS volumes to a | |
| 139 specified instance. The volume must first be registered with | |
| 140 the stack by calling RegisterVolume. For more information, see | |
| 141 `Resource Management`_. | |
| 142 | |
| 143 **Required Permissions**: To use this action, an IAM user must | |
| 144 have a Manage permissions level for the stack, or an attached | |
| 145 policy that explicitly grants permissions. For more | |
| 146 information on user permissions, see `Managing User | |
| 147 Permissions`_. | |
| 148 | |
| 149 :type volume_id: string | |
| 150 :param volume_id: The volume ID. | |
| 151 | |
| 152 :type instance_id: string | |
| 153 :param instance_id: The instance ID. | |
| 154 | |
| 155 """ | |
| 156 params = {'VolumeId': volume_id, } | |
| 157 if instance_id is not None: | |
| 158 params['InstanceId'] = instance_id | |
| 159 return self.make_request(action='AssignVolume', | |
| 160 body=json.dumps(params)) | |
| 161 | |
| 162 def associate_elastic_ip(self, elastic_ip, instance_id=None): | |
| 163 """ | |
| 164 Associates one of the stack's registered Elastic IP addresses | |
| 165 with a specified instance. The address must first be | |
| 166 registered with the stack by calling RegisterElasticIp. For | |
| 167 more information, see `Resource Management`_. | |
| 168 | |
| 169 **Required Permissions**: To use this action, an IAM user must | |
| 170 have a Manage permissions level for the stack, or an attached | |
| 171 policy that explicitly grants permissions. For more | |
| 172 information on user permissions, see `Managing User | |
| 173 Permissions`_. | |
| 174 | |
| 175 :type elastic_ip: string | |
| 176 :param elastic_ip: The Elastic IP address. | |
| 177 | |
| 178 :type instance_id: string | |
| 179 :param instance_id: The instance ID. | |
| 180 | |
| 181 """ | |
| 182 params = {'ElasticIp': elastic_ip, } | |
| 183 if instance_id is not None: | |
| 184 params['InstanceId'] = instance_id | |
| 185 return self.make_request(action='AssociateElasticIp', | |
| 186 body=json.dumps(params)) | |
| 187 | |
| 188 def attach_elastic_load_balancer(self, elastic_load_balancer_name, | |
| 189 layer_id): | |
| 190 """ | |
| 191 Attaches an Elastic Load Balancing load balancer to a | |
| 192 specified layer. For more information, see `Elastic Load | |
| 193 Balancing`_. | |
| 194 | |
| 195 | |
| 196 You must create the Elastic Load Balancing instance | |
| 197 separately, by using the Elastic Load Balancing console, API, | |
| 198 or CLI. For more information, see ` Elastic Load Balancing | |
| 199 Developer Guide`_. | |
| 200 | |
| 201 | |
| 202 **Required Permissions**: To use this action, an IAM user must | |
| 203 have a Manage permissions level for the stack, or an attached | |
| 204 policy that explicitly grants permissions. For more | |
| 205 information on user permissions, see `Managing User | |
| 206 Permissions`_. | |
| 207 | |
| 208 :type elastic_load_balancer_name: string | |
| 209 :param elastic_load_balancer_name: The Elastic Load Balancing | |
| 210 instance's name. | |
| 211 | |
| 212 :type layer_id: string | |
| 213 :param layer_id: The ID of the layer that the Elastic Load Balancing | |
| 214 instance is to be attached to. | |
| 215 | |
| 216 """ | |
| 217 params = { | |
| 218 'ElasticLoadBalancerName': elastic_load_balancer_name, | |
| 219 'LayerId': layer_id, | |
| 220 } | |
| 221 return self.make_request(action='AttachElasticLoadBalancer', | |
| 222 body=json.dumps(params)) | |
| 223 | |
| 224 def clone_stack(self, source_stack_id, service_role_arn, name=None, | |
| 225 region=None, vpc_id=None, attributes=None, | |
| 226 default_instance_profile_arn=None, default_os=None, | |
| 227 hostname_theme=None, default_availability_zone=None, | |
| 228 default_subnet_id=None, custom_json=None, | |
| 229 configuration_manager=None, chef_configuration=None, | |
| 230 use_custom_cookbooks=None, | |
| 231 use_opsworks_security_groups=None, | |
| 232 custom_cookbooks_source=None, default_ssh_key_name=None, | |
| 233 clone_permissions=None, clone_app_ids=None, | |
| 234 default_root_device_type=None): | |
| 235 """ | |
| 236 Creates a clone of a specified stack. For more information, | |
| 237 see `Clone a Stack`_. | |
| 238 | |
| 239 **Required Permissions**: To use this action, an IAM user must | |
| 240 have an attached policy that explicitly grants permissions. | |
| 241 For more information on user permissions, see `Managing User | |
| 242 Permissions`_. | |
| 243 | |
| 244 :type source_stack_id: string | |
| 245 :param source_stack_id: The source stack ID. | |
| 246 | |
| 247 :type name: string | |
| 248 :param name: The cloned stack name. | |
| 249 | |
| 250 :type region: string | |
| 251 :param region: The cloned stack AWS region, such as "us-east-1". For | |
| 252 more information about AWS regions, see `Regions and Endpoints`_. | |
| 253 | |
| 254 :type vpc_id: string | |
| 255 :param vpc_id: The ID of the VPC that the cloned stack is to be | |
| 256 launched into. It must be in the specified region. All instances | |
| 257 are launched into this VPC, and you cannot change the ID later. | |
| 258 | |
| 259 + If your account supports EC2 Classic, the default value is no VPC. | |
| 260 + If your account does not support EC2 Classic, the default value is | |
| 261 the default VPC for the specified region. | |
| 262 | |
| 263 | |
| 264 If the VPC ID corresponds to a default VPC and you have specified | |
| 265 either the `DefaultAvailabilityZone` or the `DefaultSubnetId` | |
| 266 parameter only, AWS OpsWorks infers the value of the other | |
| 267 parameter. If you specify neither parameter, AWS OpsWorks sets | |
| 268 these parameters to the first valid Availability Zone for the | |
| 269 specified region and the corresponding default VPC subnet ID, | |
| 270 respectively. | |
| 271 | |
| 272 If you specify a nondefault VPC ID, note the following: | |
| 273 | |
| 274 | |
| 275 + It must belong to a VPC in your account that is in the specified | |
| 276 region. | |
| 277 + You must specify a value for `DefaultSubnetId`. | |
| 278 | |
| 279 | |
| 280 For more information on how to use AWS OpsWorks with a VPC, see | |
| 281 `Running a Stack in a VPC`_. For more information on default VPC | |
| 282 and EC2 Classic, see `Supported Platforms`_. | |
| 283 | |
| 284 :type attributes: map | |
| 285 :param attributes: A list of stack attributes and values as key/value | |
| 286 pairs to be added to the cloned stack. | |
| 287 | |
| 288 :type service_role_arn: string | |
| 289 :param service_role_arn: | |
| 290 The stack AWS Identity and Access Management (IAM) role, which allows | |
| 291 AWS OpsWorks to work with AWS resources on your behalf. You must | |
| 292 set this parameter to the Amazon Resource Name (ARN) for an | |
| 293 existing IAM role. If you create a stack by using the AWS OpsWorks | |
| 294 console, it creates the role for you. You can obtain an existing | |
| 295 stack's IAM ARN programmatically by calling DescribePermissions. | |
| 296 For more information about IAM ARNs, see `Using Identifiers`_. | |
| 297 | |
| 298 | |
| 299 You must set this parameter to a valid service role ARN or the action | |
| 300 will fail; there is no default value. You can specify the source | |
| 301 stack's service role ARN, if you prefer, but you must do so | |
| 302 explicitly. | |
| 303 | |
| 304 :type default_instance_profile_arn: string | |
| 305 :param default_instance_profile_arn: The ARN of an IAM profile that is | |
| 306 the default profile for all of the stack's EC2 instances. For more | |
| 307 information about IAM ARNs, see `Using Identifiers`_. | |
| 308 | |
| 309 :type default_os: string | |
| 310 :param default_os: The stacks's operating system, which must be set to | |
| 311 one of the following. | |
| 312 | |
| 313 + Standard operating systems: an Amazon Linux version such as `Amazon | |
| 314 Linux 2014.09`, `Ubuntu 12.04 LTS`, or `Ubuntu 14.04 LTS`. | |
| 315 + Custom AMIs: `Custom`. You specify the custom AMI you want to use | |
| 316 when you create instances. | |
| 317 | |
| 318 | |
| 319 The default option is the current Amazon Linux version. | |
| 320 | |
| 321 :type hostname_theme: string | |
| 322 :param hostname_theme: The stack's host name theme, with spaces are | |
| 323 replaced by underscores. The theme is used to generate host names | |
| 324 for the stack's instances. By default, `HostnameTheme` is set to | |
| 325 `Layer_Dependent`, which creates host names by appending integers | |
| 326 to the layer's short name. The other themes are: | |
| 327 | |
| 328 + `Baked_Goods` | |
| 329 + `Clouds` | |
| 330 + `European_Cities` | |
| 331 + `Fruits` | |
| 332 + `Greek_Deities` | |
| 333 + `Legendary_Creatures_from_Japan` | |
| 334 + `Planets_and_Moons` | |
| 335 + `Roman_Deities` | |
| 336 + `Scottish_Islands` | |
| 337 + `US_Cities` | |
| 338 + `Wild_Cats` | |
| 339 | |
| 340 | |
| 341 To obtain a generated host name, call `GetHostNameSuggestion`, which | |
| 342 returns a host name based on the current theme. | |
| 343 | |
| 344 :type default_availability_zone: string | |
| 345 :param default_availability_zone: The cloned stack's default | |
| 346 Availability Zone, which must be in the specified region. For more | |
| 347 information, see `Regions and Endpoints`_. If you also specify a | |
| 348 value for `DefaultSubnetId`, the subnet must be in the same zone. | |
| 349 For more information, see the `VpcId` parameter description. | |
| 350 | |
| 351 :type default_subnet_id: string | |
| 352 :param default_subnet_id: The stack's default VPC subnet ID. This | |
| 353 parameter is required if you specify a value for the `VpcId` | |
| 354 parameter. All instances are launched into this subnet unless you | |
| 355 specify otherwise when you create the instance. If you also specify | |
| 356 a value for `DefaultAvailabilityZone`, the subnet must be in that | |
| 357 zone. For information on default values and when this parameter is | |
| 358 required, see the `VpcId` parameter description. | |
| 359 | |
| 360 :type custom_json: string | |
| 361 :param custom_json: A string that contains user-defined, custom JSON. | |
| 362 It is used to override the corresponding default stack | |
| 363 configuration JSON values. The string should be in the following | |
| 364 format and must escape characters such as '"'.: | |
| 365 `"{\"key1\": \"value1\", \"key2\": \"value2\",...}"` | |
| 366 | |
| 367 For more information on custom JSON, see `Use Custom JSON to Modify the | |
| 368 Stack Configuration JSON`_ | |
| 369 | |
| 370 :type configuration_manager: dict | |
| 371 :param configuration_manager: The configuration manager. When you clone | |
| 372 a stack we recommend that you use the configuration manager to | |
| 373 specify the Chef version, 0.9, 11.4, or 11.10. The default value is | |
| 374 currently 11.4. | |
| 375 | |
| 376 :type chef_configuration: dict | |
| 377 :param chef_configuration: A `ChefConfiguration` object that specifies | |
| 378 whether to enable Berkshelf and the Berkshelf version on Chef 11.10 | |
| 379 stacks. For more information, see `Create a New Stack`_. | |
| 380 | |
| 381 :type use_custom_cookbooks: boolean | |
| 382 :param use_custom_cookbooks: Whether to use custom cookbooks. | |
| 383 | |
| 384 :type use_opsworks_security_groups: boolean | |
| 385 :param use_opsworks_security_groups: Whether to associate the AWS | |
| 386 OpsWorks built-in security groups with the stack's layers. | |
| 387 AWS OpsWorks provides a standard set of built-in security groups, one | |
| 388 for each layer, which are associated with layers by default. With | |
| 389 `UseOpsworksSecurityGroups` you can instead provide your own custom | |
| 390 security groups. `UseOpsworksSecurityGroups` has the following | |
| 391 settings: | |
| 392 | |
| 393 | |
| 394 + True - AWS OpsWorks automatically associates the appropriate built-in | |
| 395 security group with each layer (default setting). You can associate | |
| 396 additional security groups with a layer after you create it but you | |
| 397 cannot delete the built-in security group. | |
| 398 + False - AWS OpsWorks does not associate built-in security groups with | |
| 399 layers. You must create appropriate EC2 security groups and | |
| 400 associate a security group with each layer that you create. | |
| 401 However, you can still manually associate a built-in security group | |
| 402 with a layer on creation; custom security groups are required only | |
| 403 for those layers that need custom settings. | |
| 404 | |
| 405 | |
| 406 For more information, see `Create a New Stack`_. | |
| 407 | |
| 408 :type custom_cookbooks_source: dict | |
| 409 :param custom_cookbooks_source: Contains the information required to | |
| 410 retrieve an app or cookbook from a repository. For more | |
| 411 information, see `Creating Apps`_ or `Custom Recipes and | |
| 412 Cookbooks`_. | |
| 413 | |
| 414 :type default_ssh_key_name: string | |
| 415 :param default_ssh_key_name: A default SSH key for the stack instances. | |
| 416 You can override this value when you create or update an instance. | |
| 417 | |
| 418 :type clone_permissions: boolean | |
| 419 :param clone_permissions: Whether to clone the source stack's | |
| 420 permissions. | |
| 421 | |
| 422 :type clone_app_ids: list | |
| 423 :param clone_app_ids: A list of source stack app IDs to be included in | |
| 424 the cloned stack. | |
| 425 | |
| 426 :type default_root_device_type: string | |
| 427 :param default_root_device_type: The default root device type. This | |
| 428 value is used by default for all instances in the cloned stack, but | |
| 429 you can override it when you create an instance. For more | |
| 430 information, see `Storage for the Root Device`_. | |
| 431 | |
| 432 """ | |
| 433 params = { | |
| 434 'SourceStackId': source_stack_id, | |
| 435 'ServiceRoleArn': service_role_arn, | |
| 436 } | |
| 437 if name is not None: | |
| 438 params['Name'] = name | |
| 439 if region is not None: | |
| 440 params['Region'] = region | |
| 441 if vpc_id is not None: | |
| 442 params['VpcId'] = vpc_id | |
| 443 if attributes is not None: | |
| 444 params['Attributes'] = attributes | |
| 445 if default_instance_profile_arn is not None: | |
| 446 params['DefaultInstanceProfileArn'] = default_instance_profile_arn | |
| 447 if default_os is not None: | |
| 448 params['DefaultOs'] = default_os | |
| 449 if hostname_theme is not None: | |
| 450 params['HostnameTheme'] = hostname_theme | |
| 451 if default_availability_zone is not None: | |
| 452 params['DefaultAvailabilityZone'] = default_availability_zone | |
| 453 if default_subnet_id is not None: | |
| 454 params['DefaultSubnetId'] = default_subnet_id | |
| 455 if custom_json is not None: | |
| 456 params['CustomJson'] = custom_json | |
| 457 if configuration_manager is not None: | |
| 458 params['ConfigurationManager'] = configuration_manager | |
| 459 if chef_configuration is not None: | |
| 460 params['ChefConfiguration'] = chef_configuration | |
| 461 if use_custom_cookbooks is not None: | |
| 462 params['UseCustomCookbooks'] = use_custom_cookbooks | |
| 463 if use_opsworks_security_groups is not None: | |
| 464 params['UseOpsworksSecurityGroups'] = use_opsworks_security_groups | |
| 465 if custom_cookbooks_source is not None: | |
| 466 params['CustomCookbooksSource'] = custom_cookbooks_source | |
| 467 if default_ssh_key_name is not None: | |
| 468 params['DefaultSshKeyName'] = default_ssh_key_name | |
| 469 if clone_permissions is not None: | |
| 470 params['ClonePermissions'] = clone_permissions | |
| 471 if clone_app_ids is not None: | |
| 472 params['CloneAppIds'] = clone_app_ids | |
| 473 if default_root_device_type is not None: | |
| 474 params['DefaultRootDeviceType'] = default_root_device_type | |
| 475 return self.make_request(action='CloneStack', | |
| 476 body=json.dumps(params)) | |
| 477 | |
| 478 def create_app(self, stack_id, name, type, shortname=None, | |
| 479 description=None, data_sources=None, app_source=None, | |
| 480 domains=None, enable_ssl=None, ssl_configuration=None, | |
| 481 attributes=None, environment=None): | |
| 482 """ | |
| 483 Creates an app for a specified stack. For more information, | |
| 484 see `Creating Apps`_. | |
| 485 | |
| 486 **Required Permissions**: To use this action, an IAM user must | |
| 487 have a Manage permissions level for the stack, or an attached | |
| 488 policy that explicitly grants permissions. For more | |
| 489 information on user permissions, see `Managing User | |
| 490 Permissions`_. | |
| 491 | |
| 492 :type stack_id: string | |
| 493 :param stack_id: The stack ID. | |
| 494 | |
| 495 :type shortname: string | |
| 496 :param shortname: The app's short name. | |
| 497 | |
| 498 :type name: string | |
| 499 :param name: The app name. | |
| 500 | |
| 501 :type description: string | |
| 502 :param description: A description of the app. | |
| 503 | |
| 504 :type data_sources: list | |
| 505 :param data_sources: The app's data source. | |
| 506 | |
| 507 :type type: string | |
| 508 :param type: The app type. Each supported type is associated with a | |
| 509 particular layer. For example, PHP applications are associated with | |
| 510 a PHP layer. AWS OpsWorks deploys an application to those instances | |
| 511 that are members of the corresponding layer. | |
| 512 | |
| 513 :type app_source: dict | |
| 514 :param app_source: A `Source` object that specifies the app repository. | |
| 515 | |
| 516 :type domains: list | |
| 517 :param domains: The app virtual host settings, with multiple domains | |
| 518 separated by commas. For example: `'www.example.com, example.com'` | |
| 519 | |
| 520 :type enable_ssl: boolean | |
| 521 :param enable_ssl: Whether to enable SSL for the app. | |
| 522 | |
| 523 :type ssl_configuration: dict | |
| 524 :param ssl_configuration: An `SslConfiguration` object with the SSL | |
| 525 configuration. | |
| 526 | |
| 527 :type attributes: map | |
| 528 :param attributes: One or more user-defined key/value pairs to be added | |
| 529 to the stack attributes. | |
| 530 | |
| 531 :type environment: list | |
| 532 :param environment: | |
| 533 An array of `EnvironmentVariable` objects that specify environment | |
| 534 variables to be associated with the app. You can specify up to ten | |
| 535 environment variables. After you deploy the app, these variables | |
| 536 are defined on the associated app server instance. | |
| 537 | |
| 538 This parameter is supported only by Chef 11.10 stacks. If you have | |
| 539 specified one or more environment variables, you cannot modify the | |
| 540 stack's Chef version. | |
| 541 | |
| 542 """ | |
| 543 params = {'StackId': stack_id, 'Name': name, 'Type': type, } | |
| 544 if shortname is not None: | |
| 545 params['Shortname'] = shortname | |
| 546 if description is not None: | |
| 547 params['Description'] = description | |
| 548 if data_sources is not None: | |
| 549 params['DataSources'] = data_sources | |
| 550 if app_source is not None: | |
| 551 params['AppSource'] = app_source | |
| 552 if domains is not None: | |
| 553 params['Domains'] = domains | |
| 554 if enable_ssl is not None: | |
| 555 params['EnableSsl'] = enable_ssl | |
| 556 if ssl_configuration is not None: | |
| 557 params['SslConfiguration'] = ssl_configuration | |
| 558 if attributes is not None: | |
| 559 params['Attributes'] = attributes | |
| 560 if environment is not None: | |
| 561 params['Environment'] = environment | |
| 562 return self.make_request(action='CreateApp', | |
| 563 body=json.dumps(params)) | |
| 564 | |
| 565 def create_deployment(self, stack_id, command, app_id=None, | |
| 566 instance_ids=None, comment=None, custom_json=None): | |
| 567 """ | |
| 568 Runs deployment or stack commands. For more information, see | |
| 569 `Deploying Apps`_ and `Run Stack Commands`_. | |
| 570 | |
| 571 **Required Permissions**: To use this action, an IAM user must | |
| 572 have a Deploy or Manage permissions level for the stack, or an | |
| 573 attached policy that explicitly grants permissions. For more | |
| 574 information on user permissions, see `Managing User | |
| 575 Permissions`_. | |
| 576 | |
| 577 :type stack_id: string | |
| 578 :param stack_id: The stack ID. | |
| 579 | |
| 580 :type app_id: string | |
| 581 :param app_id: The app ID. This parameter is required for app | |
| 582 deployments, but not for other deployment commands. | |
| 583 | |
| 584 :type instance_ids: list | |
| 585 :param instance_ids: The instance IDs for the deployment targets. | |
| 586 | |
| 587 :type command: dict | |
| 588 :param command: A `DeploymentCommand` object that specifies the | |
| 589 deployment command and any associated arguments. | |
| 590 | |
| 591 :type comment: string | |
| 592 :param comment: A user-defined comment. | |
| 593 | |
| 594 :type custom_json: string | |
| 595 :param custom_json: A string that contains user-defined, custom JSON. | |
| 596 It is used to override the corresponding default stack | |
| 597 configuration JSON values. The string should be in the following | |
| 598 format and must escape characters such as '"'.: | |
| 599 `"{\"key1\": \"value1\", \"key2\": \"value2\",...}"` | |
| 600 | |
| 601 For more information on custom JSON, see `Use Custom JSON to Modify the | |
| 602 Stack Configuration JSON`_. | |
| 603 | |
| 604 """ | |
| 605 params = {'StackId': stack_id, 'Command': command, } | |
| 606 if app_id is not None: | |
| 607 params['AppId'] = app_id | |
| 608 if instance_ids is not None: | |
| 609 params['InstanceIds'] = instance_ids | |
| 610 if comment is not None: | |
| 611 params['Comment'] = comment | |
| 612 if custom_json is not None: | |
| 613 params['CustomJson'] = custom_json | |
| 614 return self.make_request(action='CreateDeployment', | |
| 615 body=json.dumps(params)) | |
| 616 | |
| 617 def create_instance(self, stack_id, layer_ids, instance_type, | |
| 618 auto_scaling_type=None, hostname=None, os=None, | |
| 619 ami_id=None, ssh_key_name=None, | |
| 620 availability_zone=None, virtualization_type=None, | |
| 621 subnet_id=None, architecture=None, | |
| 622 root_device_type=None, install_updates_on_boot=None, | |
| 623 ebs_optimized=None): | |
| 624 """ | |
| 625 Creates an instance in a specified stack. For more | |
| 626 information, see `Adding an Instance to a Layer`_. | |
| 627 | |
| 628 **Required Permissions**: To use this action, an IAM user must | |
| 629 have a Manage permissions level for the stack, or an attached | |
| 630 policy that explicitly grants permissions. For more | |
| 631 information on user permissions, see `Managing User | |
| 632 Permissions`_. | |
| 633 | |
| 634 :type stack_id: string | |
| 635 :param stack_id: The stack ID. | |
| 636 | |
| 637 :type layer_ids: list | |
| 638 :param layer_ids: An array that contains the instance layer IDs. | |
| 639 | |
| 640 :type instance_type: string | |
| 641 :param instance_type: The instance type. AWS OpsWorks supports all | |
| 642 instance types except Cluster Compute, Cluster GPU, and High Memory | |
| 643 Cluster. For more information, see `Instance Families and Types`_. | |
| 644 The parameter values that you use to specify the various types are | |
| 645 in the API Name column of the Available Instance Types table. | |
| 646 | |
| 647 :type auto_scaling_type: string | |
| 648 :param auto_scaling_type: For load-based or time-based instances, the | |
| 649 type. | |
| 650 | |
| 651 :type hostname: string | |
| 652 :param hostname: The instance host name. | |
| 653 | |
| 654 :type os: string | |
| 655 :param os: The instance's operating system, which must be set to one of | |
| 656 the following. | |
| 657 | |
| 658 + Standard operating systems: an Amazon Linux version such as `Amazon | |
| 659 Linux 2014.09`, `Ubuntu 12.04 LTS`, or `Ubuntu 14.04 LTS`. | |
| 660 + Custom AMIs: `Custom` | |
| 661 | |
| 662 | |
| 663 The default option is the current Amazon Linux version. If you set this | |
| 664 parameter to `Custom`, you must use the CreateInstance action's | |
| 665 AmiId parameter to specify the custom AMI that you want to use. For | |
| 666 more information on the standard operating systems, see `Operating | |
| 667 Systems`_For more information on how to use custom AMIs with | |
| 668 OpsWorks, see `Using Custom AMIs`_. | |
| 669 | |
| 670 :type ami_id: string | |
| 671 :param ami_id: | |
| 672 A custom AMI ID to be used to create the instance. The AMI should be | |
| 673 based on one of the standard AWS OpsWorks AMIs: Amazon Linux, | |
| 674 Ubuntu 12.04 LTS, or Ubuntu 14.04 LTS. For more information, see | |
| 675 `Instances`_. | |
| 676 | |
| 677 If you specify a custom AMI, you must set `Os` to `Custom`. | |
| 678 | |
| 679 :type ssh_key_name: string | |
| 680 :param ssh_key_name: The instance SSH key name. | |
| 681 | |
| 682 :type availability_zone: string | |
| 683 :param availability_zone: The instance Availability Zone. For more | |
| 684 information, see `Regions and Endpoints`_. | |
| 685 | |
| 686 :type virtualization_type: string | |
| 687 :param virtualization_type: The instance's virtualization type, | |
| 688 `paravirtual` or `hvm`. | |
| 689 | |
| 690 :type subnet_id: string | |
| 691 :param subnet_id: The ID of the instance's subnet. If the stack is | |
| 692 running in a VPC, you can use this parameter to override the | |
| 693 stack's default subnet ID value and direct AWS OpsWorks to launch | |
| 694 the instance in a different subnet. | |
| 695 | |
| 696 :type architecture: string | |
| 697 :param architecture: The instance architecture. The default option is | |
| 698 `x86_64`. Instance types do not necessarily support both | |
| 699 architectures. For a list of the architectures that are supported | |
| 700 by the different instance types, see `Instance Families and | |
| 701 Types`_. | |
| 702 | |
| 703 :type root_device_type: string | |
| 704 :param root_device_type: The instance root device type. For more | |
| 705 information, see `Storage for the Root Device`_. | |
| 706 | |
| 707 :type install_updates_on_boot: boolean | |
| 708 :param install_updates_on_boot: | |
| 709 Whether to install operating system and package updates when the | |
| 710 instance boots. The default value is `True`. To control when | |
| 711 updates are installed, set this value to `False`. You must then | |
| 712 update your instances manually by using CreateDeployment to run the | |
| 713 `update_dependencies` stack command or manually running `yum` | |
| 714 (Amazon Linux) or `apt-get` (Ubuntu) on the instances. | |
| 715 | |
| 716 | |
| 717 We strongly recommend using the default value of `True` to ensure that | |
| 718 your instances have the latest security updates. | |
| 719 | |
| 720 :type ebs_optimized: boolean | |
| 721 :param ebs_optimized: Whether to create an Amazon EBS-optimized | |
| 722 instance. | |
| 723 | |
| 724 """ | |
| 725 params = { | |
| 726 'StackId': stack_id, | |
| 727 'LayerIds': layer_ids, | |
| 728 'InstanceType': instance_type, | |
| 729 } | |
| 730 if auto_scaling_type is not None: | |
| 731 params['AutoScalingType'] = auto_scaling_type | |
| 732 if hostname is not None: | |
| 733 params['Hostname'] = hostname | |
| 734 if os is not None: | |
| 735 params['Os'] = os | |
| 736 if ami_id is not None: | |
| 737 params['AmiId'] = ami_id | |
| 738 if ssh_key_name is not None: | |
| 739 params['SshKeyName'] = ssh_key_name | |
| 740 if availability_zone is not None: | |
| 741 params['AvailabilityZone'] = availability_zone | |
| 742 if virtualization_type is not None: | |
| 743 params['VirtualizationType'] = virtualization_type | |
| 744 if subnet_id is not None: | |
| 745 params['SubnetId'] = subnet_id | |
| 746 if architecture is not None: | |
| 747 params['Architecture'] = architecture | |
| 748 if root_device_type is not None: | |
| 749 params['RootDeviceType'] = root_device_type | |
| 750 if install_updates_on_boot is not None: | |
| 751 params['InstallUpdatesOnBoot'] = install_updates_on_boot | |
| 752 if ebs_optimized is not None: | |
| 753 params['EbsOptimized'] = ebs_optimized | |
| 754 return self.make_request(action='CreateInstance', | |
| 755 body=json.dumps(params)) | |
| 756 | |
| 757 def create_layer(self, stack_id, type, name, shortname, attributes=None, | |
| 758 custom_instance_profile_arn=None, | |
| 759 custom_security_group_ids=None, packages=None, | |
| 760 volume_configurations=None, enable_auto_healing=None, | |
| 761 auto_assign_elastic_ips=None, | |
| 762 auto_assign_public_ips=None, custom_recipes=None, | |
| 763 install_updates_on_boot=None, | |
| 764 use_ebs_optimized_instances=None, | |
| 765 lifecycle_event_configuration=None): | |
| 766 """ | |
| 767 Creates a layer. For more information, see `How to Create a | |
| 768 Layer`_. | |
| 769 | |
| 770 | |
| 771 You should use **CreateLayer** for noncustom layer types such | |
| 772 as PHP App Server only if the stack does not have an existing | |
| 773 layer of that type. A stack can have at most one instance of | |
| 774 each noncustom layer; if you attempt to create a second | |
| 775 instance, **CreateLayer** fails. A stack can have an arbitrary | |
| 776 number of custom layers, so you can call **CreateLayer** as | |
| 777 many times as you like for that layer type. | |
| 778 | |
| 779 | |
| 780 **Required Permissions**: To use this action, an IAM user must | |
| 781 have a Manage permissions level for the stack, or an attached | |
| 782 policy that explicitly grants permissions. For more | |
| 783 information on user permissions, see `Managing User | |
| 784 Permissions`_. | |
| 785 | |
| 786 :type stack_id: string | |
| 787 :param stack_id: The layer stack ID. | |
| 788 | |
| 789 :type type: string | |
| 790 :param type: The layer type. A stack cannot have more than one built-in | |
| 791 layer of the same type. It can have any number of custom layers. | |
| 792 | |
| 793 :type name: string | |
| 794 :param name: The layer name, which is used by the console. | |
| 795 | |
| 796 :type shortname: string | |
| 797 :param shortname: The layer short name, which is used internally by AWS | |
| 798 OpsWorks and by Chef recipes. The short name is also used as the | |
| 799 name for the directory where your app files are installed. It can | |
| 800 have a maximum of 200 characters, which are limited to the | |
| 801 alphanumeric characters, '-', '_', and '.'. | |
| 802 | |
| 803 :type attributes: map | |
| 804 :param attributes: One or more user-defined key/value pairs to be added | |
| 805 to the stack attributes. | |
| 806 | |
| 807 :type custom_instance_profile_arn: string | |
| 808 :param custom_instance_profile_arn: The ARN of an IAM profile that to | |
| 809 be used for the layer's EC2 instances. For more information about | |
| 810 IAM ARNs, see `Using Identifiers`_. | |
| 811 | |
| 812 :type custom_security_group_ids: list | |
| 813 :param custom_security_group_ids: An array containing the layer custom | |
| 814 security group IDs. | |
| 815 | |
| 816 :type packages: list | |
| 817 :param packages: An array of `Package` objects that describe the layer | |
| 818 packages. | |
| 819 | |
| 820 :type volume_configurations: list | |
| 821 :param volume_configurations: A `VolumeConfigurations` object that | |
| 822 describes the layer's Amazon EBS volumes. | |
| 823 | |
| 824 :type enable_auto_healing: boolean | |
| 825 :param enable_auto_healing: Whether to disable auto healing for the | |
| 826 layer. | |
| 827 | |
| 828 :type auto_assign_elastic_ips: boolean | |
| 829 :param auto_assign_elastic_ips: Whether to automatically assign an | |
| 830 `Elastic IP address`_ to the layer's instances. For more | |
| 831 information, see `How to Edit a Layer`_. | |
| 832 | |
| 833 :type auto_assign_public_ips: boolean | |
| 834 :param auto_assign_public_ips: For stacks that are running in a VPC, | |
| 835 whether to automatically assign a public IP address to the layer's | |
| 836 instances. For more information, see `How to Edit a Layer`_. | |
| 837 | |
| 838 :type custom_recipes: dict | |
| 839 :param custom_recipes: A `LayerCustomRecipes` object that specifies the | |
| 840 layer custom recipes. | |
| 841 | |
| 842 :type install_updates_on_boot: boolean | |
| 843 :param install_updates_on_boot: | |
| 844 Whether to install operating system and package updates when the | |
| 845 instance boots. The default value is `True`. To control when | |
| 846 updates are installed, set this value to `False`. You must then | |
| 847 update your instances manually by using CreateDeployment to run the | |
| 848 `update_dependencies` stack command or manually running `yum` | |
| 849 (Amazon Linux) or `apt-get` (Ubuntu) on the instances. | |
| 850 | |
| 851 | |
| 852 We strongly recommend using the default value of `True`, to ensure that | |
| 853 your instances have the latest security updates. | |
| 854 | |
| 855 :type use_ebs_optimized_instances: boolean | |
| 856 :param use_ebs_optimized_instances: Whether to use Amazon EBS-optimized | |
| 857 instances. | |
| 858 | |
| 859 :type lifecycle_event_configuration: dict | |
| 860 :param lifecycle_event_configuration: A LifeCycleEventConfiguration | |
| 861 object that you can use to configure the Shutdown event to specify | |
| 862 an execution timeout and enable or disable Elastic Load Balancer | |
| 863 connection draining. | |
| 864 | |
| 865 """ | |
| 866 params = { | |
| 867 'StackId': stack_id, | |
| 868 'Type': type, | |
| 869 'Name': name, | |
| 870 'Shortname': shortname, | |
| 871 } | |
| 872 if attributes is not None: | |
| 873 params['Attributes'] = attributes | |
| 874 if custom_instance_profile_arn is not None: | |
| 875 params['CustomInstanceProfileArn'] = custom_instance_profile_arn | |
| 876 if custom_security_group_ids is not None: | |
| 877 params['CustomSecurityGroupIds'] = custom_security_group_ids | |
| 878 if packages is not None: | |
| 879 params['Packages'] = packages | |
| 880 if volume_configurations is not None: | |
| 881 params['VolumeConfigurations'] = volume_configurations | |
| 882 if enable_auto_healing is not None: | |
| 883 params['EnableAutoHealing'] = enable_auto_healing | |
| 884 if auto_assign_elastic_ips is not None: | |
| 885 params['AutoAssignElasticIps'] = auto_assign_elastic_ips | |
| 886 if auto_assign_public_ips is not None: | |
| 887 params['AutoAssignPublicIps'] = auto_assign_public_ips | |
| 888 if custom_recipes is not None: | |
| 889 params['CustomRecipes'] = custom_recipes | |
| 890 if install_updates_on_boot is not None: | |
| 891 params['InstallUpdatesOnBoot'] = install_updates_on_boot | |
| 892 if use_ebs_optimized_instances is not None: | |
| 893 params['UseEbsOptimizedInstances'] = use_ebs_optimized_instances | |
| 894 if lifecycle_event_configuration is not None: | |
| 895 params['LifecycleEventConfiguration'] = lifecycle_event_configuration | |
| 896 return self.make_request(action='CreateLayer', | |
| 897 body=json.dumps(params)) | |
| 898 | |
| 899 def create_stack(self, name, region, service_role_arn, | |
| 900 default_instance_profile_arn, vpc_id=None, | |
| 901 attributes=None, default_os=None, hostname_theme=None, | |
| 902 default_availability_zone=None, default_subnet_id=None, | |
| 903 custom_json=None, configuration_manager=None, | |
| 904 chef_configuration=None, use_custom_cookbooks=None, | |
| 905 use_opsworks_security_groups=None, | |
| 906 custom_cookbooks_source=None, default_ssh_key_name=None, | |
| 907 default_root_device_type=None): | |
| 908 """ | |
| 909 Creates a new stack. For more information, see `Create a New | |
| 910 Stack`_. | |
| 911 | |
| 912 **Required Permissions**: To use this action, an IAM user must | |
| 913 have an attached policy that explicitly grants permissions. | |
| 914 For more information on user permissions, see `Managing User | |
| 915 Permissions`_. | |
| 916 | |
| 917 :type name: string | |
| 918 :param name: The stack name. | |
| 919 | |
| 920 :type region: string | |
| 921 :param region: The stack AWS region, such as "us-east-1". For more | |
| 922 information about Amazon regions, see `Regions and Endpoints`_. | |
| 923 | |
| 924 :type vpc_id: string | |
| 925 :param vpc_id: The ID of the VPC that the stack is to be launched into. | |
| 926 It must be in the specified region. All instances are launched into | |
| 927 this VPC, and you cannot change the ID later. | |
| 928 | |
| 929 + If your account supports EC2 Classic, the default value is no VPC. | |
| 930 + If your account does not support EC2 Classic, the default value is | |
| 931 the default VPC for the specified region. | |
| 932 | |
| 933 | |
| 934 If the VPC ID corresponds to a default VPC and you have specified | |
| 935 either the `DefaultAvailabilityZone` or the `DefaultSubnetId` | |
| 936 parameter only, AWS OpsWorks infers the value of the other | |
| 937 parameter. If you specify neither parameter, AWS OpsWorks sets | |
| 938 these parameters to the first valid Availability Zone for the | |
| 939 specified region and the corresponding default VPC subnet ID, | |
| 940 respectively. | |
| 941 | |
| 942 If you specify a nondefault VPC ID, note the following: | |
| 943 | |
| 944 | |
| 945 + It must belong to a VPC in your account that is in the specified | |
| 946 region. | |
| 947 + You must specify a value for `DefaultSubnetId`. | |
| 948 | |
| 949 | |
| 950 For more information on how to use AWS OpsWorks with a VPC, see | |
| 951 `Running a Stack in a VPC`_. For more information on default VPC | |
| 952 and EC2 Classic, see `Supported Platforms`_. | |
| 953 | |
| 954 :type attributes: map | |
| 955 :param attributes: One or more user-defined key/value pairs to be added | |
| 956 to the stack attributes. | |
| 957 | |
| 958 :type service_role_arn: string | |
| 959 :param service_role_arn: The stack AWS Identity and Access Management | |
| 960 (IAM) role, which allows AWS OpsWorks to work with AWS resources on | |
| 961 your behalf. You must set this parameter to the Amazon Resource | |
| 962 Name (ARN) for an existing IAM role. For more information about IAM | |
| 963 ARNs, see `Using Identifiers`_. | |
| 964 | |
| 965 :type default_instance_profile_arn: string | |
| 966 :param default_instance_profile_arn: The ARN of an IAM profile that is | |
| 967 the default profile for all of the stack's EC2 instances. For more | |
| 968 information about IAM ARNs, see `Using Identifiers`_. | |
| 969 | |
| 970 :type default_os: string | |
| 971 :param default_os: The stack's operating system, which must be set to | |
| 972 one of the following. | |
| 973 | |
| 974 + Standard operating systems: an Amazon Linux version such as `Amazon | |
| 975 Linux 2014.09`, `Ubuntu 12.04 LTS`, or `Ubuntu 14.04 LTS`. | |
| 976 + Custom AMIs: `Custom`. You specify the custom AMI you want to use | |
| 977 when you create instances. | |
| 978 | |
| 979 | |
| 980 The default option is the current Amazon Linux version. | |
| 981 | |
| 982 :type hostname_theme: string | |
| 983 :param hostname_theme: The stack's host name theme, with spaces are | |
| 984 replaced by underscores. The theme is used to generate host names | |
| 985 for the stack's instances. By default, `HostnameTheme` is set to | |
| 986 `Layer_Dependent`, which creates host names by appending integers | |
| 987 to the layer's short name. The other themes are: | |
| 988 | |
| 989 + `Baked_Goods` | |
| 990 + `Clouds` | |
| 991 + `European_Cities` | |
| 992 + `Fruits` | |
| 993 + `Greek_Deities` | |
| 994 + `Legendary_Creatures_from_Japan` | |
| 995 + `Planets_and_Moons` | |
| 996 + `Roman_Deities` | |
| 997 + `Scottish_Islands` | |
| 998 + `US_Cities` | |
| 999 + `Wild_Cats` | |
| 1000 | |
| 1001 | |
| 1002 To obtain a generated host name, call `GetHostNameSuggestion`, which | |
| 1003 returns a host name based on the current theme. | |
| 1004 | |
| 1005 :type default_availability_zone: string | |
| 1006 :param default_availability_zone: The stack's default Availability | |
| 1007 Zone, which must be in the specified region. For more information, | |
| 1008 see `Regions and Endpoints`_. If you also specify a value for | |
| 1009 `DefaultSubnetId`, the subnet must be in the same zone. For more | |
| 1010 information, see the `VpcId` parameter description. | |
| 1011 | |
| 1012 :type default_subnet_id: string | |
| 1013 :param default_subnet_id: The stack's default VPC subnet ID. This | |
| 1014 parameter is required if you specify a value for the `VpcId` | |
| 1015 parameter. All instances are launched into this subnet unless you | |
| 1016 specify otherwise when you create the instance. If you also specify | |
| 1017 a value for `DefaultAvailabilityZone`, the subnet must be in that | |
| 1018 zone. For information on default values and when this parameter is | |
| 1019 required, see the `VpcId` parameter description. | |
| 1020 | |
| 1021 :type custom_json: string | |
| 1022 :param custom_json: A string that contains user-defined, custom JSON. | |
| 1023 It is used to override the corresponding default stack | |
| 1024 configuration JSON values. The string should be in the following | |
| 1025 format and must escape characters such as '"'.: | |
| 1026 `"{\"key1\": \"value1\", \"key2\": \"value2\",...}"` | |
| 1027 | |
| 1028 For more information on custom JSON, see `Use Custom JSON to Modify the | |
| 1029 Stack Configuration JSON`_. | |
| 1030 | |
| 1031 :type configuration_manager: dict | |
| 1032 :param configuration_manager: The configuration manager. When you clone | |
| 1033 a stack we recommend that you use the configuration manager to | |
| 1034 specify the Chef version, 0.9, 11.4, or 11.10. The default value is | |
| 1035 currently 11.4. | |
| 1036 | |
| 1037 :type chef_configuration: dict | |
| 1038 :param chef_configuration: A `ChefConfiguration` object that specifies | |
| 1039 whether to enable Berkshelf and the Berkshelf version on Chef 11.10 | |
| 1040 stacks. For more information, see `Create a New Stack`_. | |
| 1041 | |
| 1042 :type use_custom_cookbooks: boolean | |
| 1043 :param use_custom_cookbooks: Whether the stack uses custom cookbooks. | |
| 1044 | |
| 1045 :type use_opsworks_security_groups: boolean | |
| 1046 :param use_opsworks_security_groups: Whether to associate the AWS | |
| 1047 OpsWorks built-in security groups with the stack's layers. | |
| 1048 AWS OpsWorks provides a standard set of built-in security groups, one | |
| 1049 for each layer, which are associated with layers by default. With | |
| 1050 `UseOpsworksSecurityGroups` you can instead provide your own custom | |
| 1051 security groups. `UseOpsworksSecurityGroups` has the following | |
| 1052 settings: | |
| 1053 | |
| 1054 | |
| 1055 + True - AWS OpsWorks automatically associates the appropriate built-in | |
| 1056 security group with each layer (default setting). You can associate | |
| 1057 additional security groups with a layer after you create it but you | |
| 1058 cannot delete the built-in security group. | |
| 1059 + False - AWS OpsWorks does not associate built-in security groups with | |
| 1060 layers. You must create appropriate EC2 security groups and | |
| 1061 associate a security group with each layer that you create. | |
| 1062 However, you can still manually associate a built-in security group | |
| 1063 with a layer on creation; custom security groups are required only | |
| 1064 for those layers that need custom settings. | |
| 1065 | |
| 1066 | |
| 1067 For more information, see `Create a New Stack`_. | |
| 1068 | |
| 1069 :type custom_cookbooks_source: dict | |
| 1070 :param custom_cookbooks_source: Contains the information required to | |
| 1071 retrieve an app or cookbook from a repository. For more | |
| 1072 information, see `Creating Apps`_ or `Custom Recipes and | |
| 1073 Cookbooks`_. | |
| 1074 | |
| 1075 :type default_ssh_key_name: string | |
| 1076 :param default_ssh_key_name: A default SSH key for the stack instances. | |
| 1077 You can override this value when you create or update an instance. | |
| 1078 | |
| 1079 :type default_root_device_type: string | |
| 1080 :param default_root_device_type: The default root device type. This | |
| 1081 value is used by default for all instances in the stack, but you | |
| 1082 can override it when you create an instance. The default option is | |
| 1083 `instance-store`. For more information, see `Storage for the Root | |
| 1084 Device`_. | |
| 1085 | |
| 1086 """ | |
| 1087 params = { | |
| 1088 'Name': name, | |
| 1089 'Region': region, | |
| 1090 'ServiceRoleArn': service_role_arn, | |
| 1091 'DefaultInstanceProfileArn': default_instance_profile_arn, | |
| 1092 } | |
| 1093 if vpc_id is not None: | |
| 1094 params['VpcId'] = vpc_id | |
| 1095 if attributes is not None: | |
| 1096 params['Attributes'] = attributes | |
| 1097 if default_os is not None: | |
| 1098 params['DefaultOs'] = default_os | |
| 1099 if hostname_theme is not None: | |
| 1100 params['HostnameTheme'] = hostname_theme | |
| 1101 if default_availability_zone is not None: | |
| 1102 params['DefaultAvailabilityZone'] = default_availability_zone | |
| 1103 if default_subnet_id is not None: | |
| 1104 params['DefaultSubnetId'] = default_subnet_id | |
| 1105 if custom_json is not None: | |
| 1106 params['CustomJson'] = custom_json | |
| 1107 if configuration_manager is not None: | |
| 1108 params['ConfigurationManager'] = configuration_manager | |
| 1109 if chef_configuration is not None: | |
| 1110 params['ChefConfiguration'] = chef_configuration | |
| 1111 if use_custom_cookbooks is not None: | |
| 1112 params['UseCustomCookbooks'] = use_custom_cookbooks | |
| 1113 if use_opsworks_security_groups is not None: | |
| 1114 params['UseOpsworksSecurityGroups'] = use_opsworks_security_groups | |
| 1115 if custom_cookbooks_source is not None: | |
| 1116 params['CustomCookbooksSource'] = custom_cookbooks_source | |
| 1117 if default_ssh_key_name is not None: | |
| 1118 params['DefaultSshKeyName'] = default_ssh_key_name | |
| 1119 if default_root_device_type is not None: | |
| 1120 params['DefaultRootDeviceType'] = default_root_device_type | |
| 1121 return self.make_request(action='CreateStack', | |
| 1122 body=json.dumps(params)) | |
| 1123 | |
| 1124 def create_user_profile(self, iam_user_arn, ssh_username=None, | |
| 1125 ssh_public_key=None, allow_self_management=None): | |
| 1126 """ | |
| 1127 Creates a new user profile. | |
| 1128 | |
| 1129 **Required Permissions**: To use this action, an IAM user must | |
| 1130 have an attached policy that explicitly grants permissions. | |
| 1131 For more information on user permissions, see `Managing User | |
| 1132 Permissions`_. | |
| 1133 | |
| 1134 :type iam_user_arn: string | |
| 1135 :param iam_user_arn: The user's IAM ARN. | |
| 1136 | |
| 1137 :type ssh_username: string | |
| 1138 :param ssh_username: The user's SSH user name. The allowable characters | |
| 1139 are [a-z], [A-Z], [0-9], '-', and '_'. If the specified name | |
| 1140 includes other punctuation marks, AWS OpsWorks removes them. For | |
| 1141 example, `my.name` will be changed to `myname`. If you do not | |
| 1142 specify an SSH user name, AWS OpsWorks generates one from the IAM | |
| 1143 user name. | |
| 1144 | |
| 1145 :type ssh_public_key: string | |
| 1146 :param ssh_public_key: The user's public SSH key. | |
| 1147 | |
| 1148 :type allow_self_management: boolean | |
| 1149 :param allow_self_management: Whether users can specify their own SSH | |
| 1150 public key through the My Settings page. For more information, see | |
| 1151 `Setting an IAM User's Public SSH Key`_. | |
| 1152 | |
| 1153 """ | |
| 1154 params = {'IamUserArn': iam_user_arn, } | |
| 1155 if ssh_username is not None: | |
| 1156 params['SshUsername'] = ssh_username | |
| 1157 if ssh_public_key is not None: | |
| 1158 params['SshPublicKey'] = ssh_public_key | |
| 1159 if allow_self_management is not None: | |
| 1160 params['AllowSelfManagement'] = allow_self_management | |
| 1161 return self.make_request(action='CreateUserProfile', | |
| 1162 body=json.dumps(params)) | |
| 1163 | |
| 1164 def delete_app(self, app_id): | |
| 1165 """ | |
| 1166 Deletes a specified app. | |
| 1167 | |
| 1168 **Required Permissions**: To use this action, an IAM user must | |
| 1169 have a Manage permissions level for the stack, or an attached | |
| 1170 policy that explicitly grants permissions. For more | |
| 1171 information on user permissions, see `Managing User | |
| 1172 Permissions`_. | |
| 1173 | |
| 1174 :type app_id: string | |
| 1175 :param app_id: The app ID. | |
| 1176 | |
| 1177 """ | |
| 1178 params = {'AppId': app_id, } | |
| 1179 return self.make_request(action='DeleteApp', | |
| 1180 body=json.dumps(params)) | |
| 1181 | |
| 1182 def delete_instance(self, instance_id, delete_elastic_ip=None, | |
| 1183 delete_volumes=None): | |
| 1184 """ | |
| 1185 Deletes a specified instance, which terminates the associated | |
| 1186 Amazon EC2 instance. You must stop an instance before you can | |
| 1187 delete it. | |
| 1188 | |
| 1189 For more information, see `Deleting Instances`_. | |
| 1190 | |
| 1191 **Required Permissions**: To use this action, an IAM user must | |
| 1192 have a Manage permissions level for the stack, or an attached | |
| 1193 policy that explicitly grants permissions. For more | |
| 1194 information on user permissions, see `Managing User | |
| 1195 Permissions`_. | |
| 1196 | |
| 1197 :type instance_id: string | |
| 1198 :param instance_id: The instance ID. | |
| 1199 | |
| 1200 :type delete_elastic_ip: boolean | |
| 1201 :param delete_elastic_ip: Whether to delete the instance Elastic IP | |
| 1202 address. | |
| 1203 | |
| 1204 :type delete_volumes: boolean | |
| 1205 :param delete_volumes: Whether to delete the instance's Amazon EBS | |
| 1206 volumes. | |
| 1207 | |
| 1208 """ | |
| 1209 params = {'InstanceId': instance_id, } | |
| 1210 if delete_elastic_ip is not None: | |
| 1211 params['DeleteElasticIp'] = delete_elastic_ip | |
| 1212 if delete_volumes is not None: | |
| 1213 params['DeleteVolumes'] = delete_volumes | |
| 1214 return self.make_request(action='DeleteInstance', | |
| 1215 body=json.dumps(params)) | |
| 1216 | |
| 1217 def delete_layer(self, layer_id): | |
| 1218 """ | |
| 1219 Deletes a specified layer. You must first stop and then delete | |
| 1220 all associated instances or unassign registered instances. For | |
| 1221 more information, see `How to Delete a Layer`_. | |
| 1222 | |
| 1223 **Required Permissions**: To use this action, an IAM user must | |
| 1224 have a Manage permissions level for the stack, or an attached | |
| 1225 policy that explicitly grants permissions. For more | |
| 1226 information on user permissions, see `Managing User | |
| 1227 Permissions`_. | |
| 1228 | |
| 1229 :type layer_id: string | |
| 1230 :param layer_id: The layer ID. | |
| 1231 | |
| 1232 """ | |
| 1233 params = {'LayerId': layer_id, } | |
| 1234 return self.make_request(action='DeleteLayer', | |
| 1235 body=json.dumps(params)) | |
| 1236 | |
| 1237 def delete_stack(self, stack_id): | |
| 1238 """ | |
| 1239 Deletes a specified stack. You must first delete all | |
| 1240 instances, layers, and apps or deregister registered | |
| 1241 instances. For more information, see `Shut Down a Stack`_. | |
| 1242 | |
| 1243 **Required Permissions**: To use this action, an IAM user must | |
| 1244 have a Manage permissions level for the stack, or an attached | |
| 1245 policy that explicitly grants permissions. For more | |
| 1246 information on user permissions, see `Managing User | |
| 1247 Permissions`_. | |
| 1248 | |
| 1249 :type stack_id: string | |
| 1250 :param stack_id: The stack ID. | |
| 1251 | |
| 1252 """ | |
| 1253 params = {'StackId': stack_id, } | |
| 1254 return self.make_request(action='DeleteStack', | |
| 1255 body=json.dumps(params)) | |
| 1256 | |
| 1257 def delete_user_profile(self, iam_user_arn): | |
| 1258 """ | |
| 1259 Deletes a user profile. | |
| 1260 | |
| 1261 **Required Permissions**: To use this action, an IAM user must | |
| 1262 have an attached policy that explicitly grants permissions. | |
| 1263 For more information on user permissions, see `Managing User | |
| 1264 Permissions`_. | |
| 1265 | |
| 1266 :type iam_user_arn: string | |
| 1267 :param iam_user_arn: The user's IAM ARN. | |
| 1268 | |
| 1269 """ | |
| 1270 params = {'IamUserArn': iam_user_arn, } | |
| 1271 return self.make_request(action='DeleteUserProfile', | |
| 1272 body=json.dumps(params)) | |
| 1273 | |
| 1274 def deregister_elastic_ip(self, elastic_ip): | |
| 1275 """ | |
| 1276 Deregisters a specified Elastic IP address. The address can | |
| 1277 then be registered by another stack. For more information, see | |
| 1278 `Resource Management`_. | |
| 1279 | |
| 1280 **Required Permissions**: To use this action, an IAM user must | |
| 1281 have a Manage permissions level for the stack, or an attached | |
| 1282 policy that explicitly grants permissions. For more | |
| 1283 information on user permissions, see `Managing User | |
| 1284 Permissions`_. | |
| 1285 | |
| 1286 :type elastic_ip: string | |
| 1287 :param elastic_ip: The Elastic IP address. | |
| 1288 | |
| 1289 """ | |
| 1290 params = {'ElasticIp': elastic_ip, } | |
| 1291 return self.make_request(action='DeregisterElasticIp', | |
| 1292 body=json.dumps(params)) | |
| 1293 | |
| 1294 def deregister_instance(self, instance_id): | |
| 1295 """ | |
| 1296 Deregister a registered Amazon EC2 or on-premises instance. | |
| 1297 This action removes the instance from the stack and returns it | |
| 1298 to your control. This action can not be used with instances | |
| 1299 that were created with AWS OpsWorks. | |
| 1300 | |
| 1301 **Required Permissions**: To use this action, an IAM user must | |
| 1302 have a Manage permissions level for the stack or an attached | |
| 1303 policy that explicitly grants permissions. For more | |
| 1304 information on user permissions, see `Managing User | |
| 1305 Permissions`_. | |
| 1306 | |
| 1307 :type instance_id: string | |
| 1308 :param instance_id: The instance ID. | |
| 1309 | |
| 1310 """ | |
| 1311 params = {'InstanceId': instance_id, } | |
| 1312 return self.make_request(action='DeregisterInstance', | |
| 1313 body=json.dumps(params)) | |
| 1314 | |
| 1315 def deregister_rds_db_instance(self, rds_db_instance_arn): | |
| 1316 """ | |
| 1317 Deregisters an Amazon RDS instance. | |
| 1318 | |
| 1319 **Required Permissions**: To use this action, an IAM user must | |
| 1320 have a Manage permissions level for the stack, or an attached | |
| 1321 policy that explicitly grants permissions. For more | |
| 1322 information on user permissions, see `Managing User | |
| 1323 Permissions`_. | |
| 1324 | |
| 1325 :type rds_db_instance_arn: string | |
| 1326 :param rds_db_instance_arn: The Amazon RDS instance's ARN. | |
| 1327 | |
| 1328 """ | |
| 1329 params = {'RdsDbInstanceArn': rds_db_instance_arn, } | |
| 1330 return self.make_request(action='DeregisterRdsDbInstance', | |
| 1331 body=json.dumps(params)) | |
| 1332 | |
| 1333 def deregister_volume(self, volume_id): | |
| 1334 """ | |
| 1335 Deregisters an Amazon EBS volume. The volume can then be | |
| 1336 registered by another stack. For more information, see | |
| 1337 `Resource Management`_. | |
| 1338 | |
| 1339 **Required Permissions**: To use this action, an IAM user must | |
| 1340 have a Manage permissions level for the stack, or an attached | |
| 1341 policy that explicitly grants permissions. For more | |
| 1342 information on user permissions, see `Managing User | |
| 1343 Permissions`_. | |
| 1344 | |
| 1345 :type volume_id: string | |
| 1346 :param volume_id: The volume ID. | |
| 1347 | |
| 1348 """ | |
| 1349 params = {'VolumeId': volume_id, } | |
| 1350 return self.make_request(action='DeregisterVolume', | |
| 1351 body=json.dumps(params)) | |
| 1352 | |
| 1353 def describe_apps(self, stack_id=None, app_ids=None): | |
| 1354 """ | |
| 1355 Requests a description of a specified set of apps. | |
| 1356 | |
| 1357 | |
| 1358 You must specify at least one of the parameters. | |
| 1359 | |
| 1360 | |
| 1361 **Required Permissions**: To use this action, an IAM user must | |
| 1362 have a Show, Deploy, or Manage permissions level for the | |
| 1363 stack, or an attached policy that explicitly grants | |
| 1364 permissions. For more information on user permissions, see | |
| 1365 `Managing User Permissions`_. | |
| 1366 | |
| 1367 :type stack_id: string | |
| 1368 :param stack_id: The app stack ID. If you use this parameter, | |
| 1369 `DescribeApps` returns a description of the apps in the specified | |
| 1370 stack. | |
| 1371 | |
| 1372 :type app_ids: list | |
| 1373 :param app_ids: An array of app IDs for the apps to be described. If | |
| 1374 you use this parameter, `DescribeApps` returns a description of the | |
| 1375 specified apps. Otherwise, it returns a description of every app. | |
| 1376 | |
| 1377 """ | |
| 1378 params = {} | |
| 1379 if stack_id is not None: | |
| 1380 params['StackId'] = stack_id | |
| 1381 if app_ids is not None: | |
| 1382 params['AppIds'] = app_ids | |
| 1383 return self.make_request(action='DescribeApps', | |
| 1384 body=json.dumps(params)) | |
| 1385 | |
| 1386 def describe_commands(self, deployment_id=None, instance_id=None, | |
| 1387 command_ids=None): | |
| 1388 """ | |
| 1389 Describes the results of specified commands. | |
| 1390 | |
| 1391 | |
| 1392 You must specify at least one of the parameters. | |
| 1393 | |
| 1394 | |
| 1395 **Required Permissions**: To use this action, an IAM user must | |
| 1396 have a Show, Deploy, or Manage permissions level for the | |
| 1397 stack, or an attached policy that explicitly grants | |
| 1398 permissions. For more information on user permissions, see | |
| 1399 `Managing User Permissions`_. | |
| 1400 | |
| 1401 :type deployment_id: string | |
| 1402 :param deployment_id: The deployment ID. If you include this parameter, | |
| 1403 `DescribeCommands` returns a description of the commands associated | |
| 1404 with the specified deployment. | |
| 1405 | |
| 1406 :type instance_id: string | |
| 1407 :param instance_id: The instance ID. If you include this parameter, | |
| 1408 `DescribeCommands` returns a description of the commands associated | |
| 1409 with the specified instance. | |
| 1410 | |
| 1411 :type command_ids: list | |
| 1412 :param command_ids: An array of command IDs. If you include this | |
| 1413 parameter, `DescribeCommands` returns a description of the | |
| 1414 specified commands. Otherwise, it returns a description of every | |
| 1415 command. | |
| 1416 | |
| 1417 """ | |
| 1418 params = {} | |
| 1419 if deployment_id is not None: | |
| 1420 params['DeploymentId'] = deployment_id | |
| 1421 if instance_id is not None: | |
| 1422 params['InstanceId'] = instance_id | |
| 1423 if command_ids is not None: | |
| 1424 params['CommandIds'] = command_ids | |
| 1425 return self.make_request(action='DescribeCommands', | |
| 1426 body=json.dumps(params)) | |
| 1427 | |
| 1428 def describe_deployments(self, stack_id=None, app_id=None, | |
| 1429 deployment_ids=None): | |
| 1430 """ | |
| 1431 Requests a description of a specified set of deployments. | |
| 1432 | |
| 1433 | |
| 1434 You must specify at least one of the parameters. | |
| 1435 | |
| 1436 | |
| 1437 **Required Permissions**: To use this action, an IAM user must | |
| 1438 have a Show, Deploy, or Manage permissions level for the | |
| 1439 stack, or an attached policy that explicitly grants | |
| 1440 permissions. For more information on user permissions, see | |
| 1441 `Managing User Permissions`_. | |
| 1442 | |
| 1443 :type stack_id: string | |
| 1444 :param stack_id: The stack ID. If you include this parameter, | |
| 1445 `DescribeDeployments` returns a description of the commands | |
| 1446 associated with the specified stack. | |
| 1447 | |
| 1448 :type app_id: string | |
| 1449 :param app_id: The app ID. If you include this parameter, | |
| 1450 `DescribeDeployments` returns a description of the commands | |
| 1451 associated with the specified app. | |
| 1452 | |
| 1453 :type deployment_ids: list | |
| 1454 :param deployment_ids: An array of deployment IDs to be described. If | |
| 1455 you include this parameter, `DescribeDeployments` returns a | |
| 1456 description of the specified deployments. Otherwise, it returns a | |
| 1457 description of every deployment. | |
| 1458 | |
| 1459 """ | |
| 1460 params = {} | |
| 1461 if stack_id is not None: | |
| 1462 params['StackId'] = stack_id | |
| 1463 if app_id is not None: | |
| 1464 params['AppId'] = app_id | |
| 1465 if deployment_ids is not None: | |
| 1466 params['DeploymentIds'] = deployment_ids | |
| 1467 return self.make_request(action='DescribeDeployments', | |
| 1468 body=json.dumps(params)) | |
| 1469 | |
| 1470 def describe_elastic_ips(self, instance_id=None, stack_id=None, ips=None): | |
| 1471 """ | |
| 1472 Describes `Elastic IP addresses`_. | |
| 1473 | |
| 1474 | |
| 1475 You must specify at least one of the parameters. | |
| 1476 | |
| 1477 | |
| 1478 **Required Permissions**: To use this action, an IAM user must | |
| 1479 have a Show, Deploy, or Manage permissions level for the | |
| 1480 stack, or an attached policy that explicitly grants | |
| 1481 permissions. For more information on user permissions, see | |
| 1482 `Managing User Permissions`_. | |
| 1483 | |
| 1484 :type instance_id: string | |
| 1485 :param instance_id: The instance ID. If you include this parameter, | |
| 1486 `DescribeElasticIps` returns a description of the Elastic IP | |
| 1487 addresses associated with the specified instance. | |
| 1488 | |
| 1489 :type stack_id: string | |
| 1490 :param stack_id: A stack ID. If you include this parameter, | |
| 1491 `DescribeElasticIps` returns a description of the Elastic IP | |
| 1492 addresses that are registered with the specified stack. | |
| 1493 | |
| 1494 :type ips: list | |
| 1495 :param ips: An array of Elastic IP addresses to be described. If you | |
| 1496 include this parameter, `DescribeElasticIps` returns a description | |
| 1497 of the specified Elastic IP addresses. Otherwise, it returns a | |
| 1498 description of every Elastic IP address. | |
| 1499 | |
| 1500 """ | |
| 1501 params = {} | |
| 1502 if instance_id is not None: | |
| 1503 params['InstanceId'] = instance_id | |
| 1504 if stack_id is not None: | |
| 1505 params['StackId'] = stack_id | |
| 1506 if ips is not None: | |
| 1507 params['Ips'] = ips | |
| 1508 return self.make_request(action='DescribeElasticIps', | |
| 1509 body=json.dumps(params)) | |
| 1510 | |
| 1511 def describe_elastic_load_balancers(self, stack_id=None, layer_ids=None): | |
| 1512 """ | |
| 1513 Describes a stack's Elastic Load Balancing instances. | |
| 1514 | |
| 1515 | |
| 1516 You must specify at least one of the parameters. | |
| 1517 | |
| 1518 | |
| 1519 **Required Permissions**: To use this action, an IAM user must | |
| 1520 have a Show, Deploy, or Manage permissions level for the | |
| 1521 stack, or an attached policy that explicitly grants | |
| 1522 permissions. For more information on user permissions, see | |
| 1523 `Managing User Permissions`_. | |
| 1524 | |
| 1525 :type stack_id: string | |
| 1526 :param stack_id: A stack ID. The action describes the stack's Elastic | |
| 1527 Load Balancing instances. | |
| 1528 | |
| 1529 :type layer_ids: list | |
| 1530 :param layer_ids: A list of layer IDs. The action describes the Elastic | |
| 1531 Load Balancing instances for the specified layers. | |
| 1532 | |
| 1533 """ | |
| 1534 params = {} | |
| 1535 if stack_id is not None: | |
| 1536 params['StackId'] = stack_id | |
| 1537 if layer_ids is not None: | |
| 1538 params['LayerIds'] = layer_ids | |
| 1539 return self.make_request(action='DescribeElasticLoadBalancers', | |
| 1540 body=json.dumps(params)) | |
| 1541 | |
| 1542 def describe_instances(self, stack_id=None, layer_id=None, | |
| 1543 instance_ids=None): | |
| 1544 """ | |
| 1545 Requests a description of a set of instances. | |
| 1546 | |
| 1547 | |
| 1548 You must specify at least one of the parameters. | |
| 1549 | |
| 1550 | |
| 1551 **Required Permissions**: To use this action, an IAM user must | |
| 1552 have a Show, Deploy, or Manage permissions level for the | |
| 1553 stack, or an attached policy that explicitly grants | |
| 1554 permissions. For more information on user permissions, see | |
| 1555 `Managing User Permissions`_. | |
| 1556 | |
| 1557 :type stack_id: string | |
| 1558 :param stack_id: A stack ID. If you use this parameter, | |
| 1559 `DescribeInstances` returns descriptions of the instances | |
| 1560 associated with the specified stack. | |
| 1561 | |
| 1562 :type layer_id: string | |
| 1563 :param layer_id: A layer ID. If you use this parameter, | |
| 1564 `DescribeInstances` returns descriptions of the instances | |
| 1565 associated with the specified layer. | |
| 1566 | |
| 1567 :type instance_ids: list | |
| 1568 :param instance_ids: An array of instance IDs to be described. If you | |
| 1569 use this parameter, `DescribeInstances` returns a description of | |
| 1570 the specified instances. Otherwise, it returns a description of | |
| 1571 every instance. | |
| 1572 | |
| 1573 """ | |
| 1574 params = {} | |
| 1575 if stack_id is not None: | |
| 1576 params['StackId'] = stack_id | |
| 1577 if layer_id is not None: | |
| 1578 params['LayerId'] = layer_id | |
| 1579 if instance_ids is not None: | |
| 1580 params['InstanceIds'] = instance_ids | |
| 1581 return self.make_request(action='DescribeInstances', | |
| 1582 body=json.dumps(params)) | |
| 1583 | |
| 1584 def describe_layers(self, stack_id=None, layer_ids=None): | |
| 1585 """ | |
| 1586 Requests a description of one or more layers in a specified | |
| 1587 stack. | |
| 1588 | |
| 1589 | |
| 1590 You must specify at least one of the parameters. | |
| 1591 | |
| 1592 | |
| 1593 **Required Permissions**: To use this action, an IAM user must | |
| 1594 have a Show, Deploy, or Manage permissions level for the | |
| 1595 stack, or an attached policy that explicitly grants | |
| 1596 permissions. For more information on user permissions, see | |
| 1597 `Managing User Permissions`_. | |
| 1598 | |
| 1599 :type stack_id: string | |
| 1600 :param stack_id: The stack ID. | |
| 1601 | |
| 1602 :type layer_ids: list | |
| 1603 :param layer_ids: An array of layer IDs that specify the layers to be | |
| 1604 described. If you omit this parameter, `DescribeLayers` returns a | |
| 1605 description of every layer in the specified stack. | |
| 1606 | |
| 1607 """ | |
| 1608 params = {} | |
| 1609 if stack_id is not None: | |
| 1610 params['StackId'] = stack_id | |
| 1611 if layer_ids is not None: | |
| 1612 params['LayerIds'] = layer_ids | |
| 1613 return self.make_request(action='DescribeLayers', | |
| 1614 body=json.dumps(params)) | |
| 1615 | |
| 1616 def describe_load_based_auto_scaling(self, layer_ids): | |
| 1617 """ | |
| 1618 Describes load-based auto scaling configurations for specified | |
| 1619 layers. | |
| 1620 | |
| 1621 | |
| 1622 You must specify at least one of the parameters. | |
| 1623 | |
| 1624 | |
| 1625 **Required Permissions**: To use this action, an IAM user must | |
| 1626 have a Show, Deploy, or Manage permissions level for the | |
| 1627 stack, or an attached policy that explicitly grants | |
| 1628 permissions. For more information on user permissions, see | |
| 1629 `Managing User Permissions`_. | |
| 1630 | |
| 1631 :type layer_ids: list | |
| 1632 :param layer_ids: An array of layer IDs. | |
| 1633 | |
| 1634 """ | |
| 1635 params = {'LayerIds': layer_ids, } | |
| 1636 return self.make_request(action='DescribeLoadBasedAutoScaling', | |
| 1637 body=json.dumps(params)) | |
| 1638 | |
| 1639 def describe_my_user_profile(self): | |
| 1640 """ | |
| 1641 Describes a user's SSH information. | |
| 1642 | |
| 1643 **Required Permissions**: To use this action, an IAM user must | |
| 1644 have self-management enabled or an attached policy that | |
| 1645 explicitly grants permissions. For more information on user | |
| 1646 permissions, see `Managing User Permissions`_. | |
| 1647 | |
| 1648 | |
| 1649 """ | |
| 1650 params = {} | |
| 1651 return self.make_request(action='DescribeMyUserProfile', | |
| 1652 body=json.dumps(params)) | |
| 1653 | |
| 1654 def describe_permissions(self, iam_user_arn=None, stack_id=None): | |
| 1655 """ | |
| 1656 Describes the permissions for a specified stack. | |
| 1657 | |
| 1658 **Required Permissions**: To use this action, an IAM user must | |
| 1659 have a Manage permissions level for the stack, or an attached | |
| 1660 policy that explicitly grants permissions. For more | |
| 1661 information on user permissions, see `Managing User | |
| 1662 Permissions`_. | |
| 1663 | |
| 1664 :type iam_user_arn: string | |
| 1665 :param iam_user_arn: The user's IAM ARN. For more information about IAM | |
| 1666 ARNs, see `Using Identifiers`_. | |
| 1667 | |
| 1668 :type stack_id: string | |
| 1669 :param stack_id: The stack ID. | |
| 1670 | |
| 1671 """ | |
| 1672 params = {} | |
| 1673 if iam_user_arn is not None: | |
| 1674 params['IamUserArn'] = iam_user_arn | |
| 1675 if stack_id is not None: | |
| 1676 params['StackId'] = stack_id | |
| 1677 return self.make_request(action='DescribePermissions', | |
| 1678 body=json.dumps(params)) | |
| 1679 | |
| 1680 def describe_raid_arrays(self, instance_id=None, stack_id=None, | |
| 1681 raid_array_ids=None): | |
| 1682 """ | |
| 1683 Describe an instance's RAID arrays. | |
| 1684 | |
| 1685 | |
| 1686 You must specify at least one of the parameters. | |
| 1687 | |
| 1688 | |
| 1689 **Required Permissions**: To use this action, an IAM user must | |
| 1690 have a Show, Deploy, or Manage permissions level for the | |
| 1691 stack, or an attached policy that explicitly grants | |
| 1692 permissions. For more information on user permissions, see | |
| 1693 `Managing User Permissions`_. | |
| 1694 | |
| 1695 :type instance_id: string | |
| 1696 :param instance_id: The instance ID. If you use this parameter, | |
| 1697 `DescribeRaidArrays` returns descriptions of the RAID arrays | |
| 1698 associated with the specified instance. | |
| 1699 | |
| 1700 :type stack_id: string | |
| 1701 :param stack_id: The stack ID. | |
| 1702 | |
| 1703 :type raid_array_ids: list | |
| 1704 :param raid_array_ids: An array of RAID array IDs. If you use this | |
| 1705 parameter, `DescribeRaidArrays` returns descriptions of the | |
| 1706 specified arrays. Otherwise, it returns a description of every | |
| 1707 array. | |
| 1708 | |
| 1709 """ | |
| 1710 params = {} | |
| 1711 if instance_id is not None: | |
| 1712 params['InstanceId'] = instance_id | |
| 1713 if stack_id is not None: | |
| 1714 params['StackId'] = stack_id | |
| 1715 if raid_array_ids is not None: | |
| 1716 params['RaidArrayIds'] = raid_array_ids | |
| 1717 return self.make_request(action='DescribeRaidArrays', | |
| 1718 body=json.dumps(params)) | |
| 1719 | |
| 1720 def describe_rds_db_instances(self, stack_id, rds_db_instance_arns=None): | |
| 1721 """ | |
| 1722 Describes Amazon RDS instances. | |
| 1723 | |
| 1724 **Required Permissions**: To use this action, an IAM user must | |
| 1725 have a Show, Deploy, or Manage permissions level for the | |
| 1726 stack, or an attached policy that explicitly grants | |
| 1727 permissions. For more information on user permissions, see | |
| 1728 `Managing User Permissions`_. | |
| 1729 | |
| 1730 :type stack_id: string | |
| 1731 :param stack_id: The stack ID that the instances are registered with. | |
| 1732 The operation returns descriptions of all registered Amazon RDS | |
| 1733 instances. | |
| 1734 | |
| 1735 :type rds_db_instance_arns: list | |
| 1736 :param rds_db_instance_arns: An array containing the ARNs of the | |
| 1737 instances to be described. | |
| 1738 | |
| 1739 """ | |
| 1740 params = {'StackId': stack_id, } | |
| 1741 if rds_db_instance_arns is not None: | |
| 1742 params['RdsDbInstanceArns'] = rds_db_instance_arns | |
| 1743 return self.make_request(action='DescribeRdsDbInstances', | |
| 1744 body=json.dumps(params)) | |
| 1745 | |
| 1746 def describe_service_errors(self, stack_id=None, instance_id=None, | |
| 1747 service_error_ids=None): | |
| 1748 """ | |
| 1749 Describes AWS OpsWorks service errors. | |
| 1750 | |
| 1751 **Required Permissions**: To use this action, an IAM user must | |
| 1752 have a Show, Deploy, or Manage permissions level for the | |
| 1753 stack, or an attached policy that explicitly grants | |
| 1754 permissions. For more information on user permissions, see | |
| 1755 `Managing User Permissions`_. | |
| 1756 | |
| 1757 :type stack_id: string | |
| 1758 :param stack_id: The stack ID. If you use this parameter, | |
| 1759 `DescribeServiceErrors` returns descriptions of the errors | |
| 1760 associated with the specified stack. | |
| 1761 | |
| 1762 :type instance_id: string | |
| 1763 :param instance_id: The instance ID. If you use this parameter, | |
| 1764 `DescribeServiceErrors` returns descriptions of the errors | |
| 1765 associated with the specified instance. | |
| 1766 | |
| 1767 :type service_error_ids: list | |
| 1768 :param service_error_ids: An array of service error IDs. If you use | |
| 1769 this parameter, `DescribeServiceErrors` returns descriptions of the | |
| 1770 specified errors. Otherwise, it returns a description of every | |
| 1771 error. | |
| 1772 | |
| 1773 """ | |
| 1774 params = {} | |
| 1775 if stack_id is not None: | |
| 1776 params['StackId'] = stack_id | |
| 1777 if instance_id is not None: | |
| 1778 params['InstanceId'] = instance_id | |
| 1779 if service_error_ids is not None: | |
| 1780 params['ServiceErrorIds'] = service_error_ids | |
| 1781 return self.make_request(action='DescribeServiceErrors', | |
| 1782 body=json.dumps(params)) | |
| 1783 | |
| 1784 def describe_stack_provisioning_parameters(self, stack_id): | |
| 1785 """ | |
| 1786 Requests a description of a stack's provisioning parameters. | |
| 1787 | |
| 1788 **Required Permissions**: To use this action, an IAM user must | |
| 1789 have a Show, Deploy, or Manage permissions level for the stack | |
| 1790 or an attached policy that explicitly grants permissions. For | |
| 1791 more information on user permissions, see `Managing User | |
| 1792 Permissions`_. | |
| 1793 | |
| 1794 :type stack_id: string | |
| 1795 :param stack_id: The stack ID | |
| 1796 | |
| 1797 """ | |
| 1798 params = {'StackId': stack_id, } | |
| 1799 return self.make_request(action='DescribeStackProvisioningParameters', | |
| 1800 body=json.dumps(params)) | |
| 1801 | |
| 1802 def describe_stack_summary(self, stack_id): | |
| 1803 """ | |
| 1804 Describes the number of layers and apps in a specified stack, | |
| 1805 and the number of instances in each state, such as | |
| 1806 `running_setup` or `online`. | |
| 1807 | |
| 1808 **Required Permissions**: To use this action, an IAM user must | |
| 1809 have a Show, Deploy, or Manage permissions level for the | |
| 1810 stack, or an attached policy that explicitly grants | |
| 1811 permissions. For more information on user permissions, see | |
| 1812 `Managing User Permissions`_. | |
| 1813 | |
| 1814 :type stack_id: string | |
| 1815 :param stack_id: The stack ID. | |
| 1816 | |
| 1817 """ | |
| 1818 params = {'StackId': stack_id, } | |
| 1819 return self.make_request(action='DescribeStackSummary', | |
| 1820 body=json.dumps(params)) | |
| 1821 | |
| 1822 def describe_stacks(self, stack_ids=None): | |
| 1823 """ | |
| 1824 Requests a description of one or more stacks. | |
| 1825 | |
| 1826 **Required Permissions**: To use this action, an IAM user must | |
| 1827 have a Show, Deploy, or Manage permissions level for the | |
| 1828 stack, or an attached policy that explicitly grants | |
| 1829 permissions. For more information on user permissions, see | |
| 1830 `Managing User Permissions`_. | |
| 1831 | |
| 1832 :type stack_ids: list | |
| 1833 :param stack_ids: An array of stack IDs that specify the stacks to be | |
| 1834 described. If you omit this parameter, `DescribeStacks` returns a | |
| 1835 description of every stack. | |
| 1836 | |
| 1837 """ | |
| 1838 params = {} | |
| 1839 if stack_ids is not None: | |
| 1840 params['StackIds'] = stack_ids | |
| 1841 return self.make_request(action='DescribeStacks', | |
| 1842 body=json.dumps(params)) | |
| 1843 | |
| 1844 def describe_time_based_auto_scaling(self, instance_ids): | |
| 1845 """ | |
| 1846 Describes time-based auto scaling configurations for specified | |
| 1847 instances. | |
| 1848 | |
| 1849 | |
| 1850 You must specify at least one of the parameters. | |
| 1851 | |
| 1852 | |
| 1853 **Required Permissions**: To use this action, an IAM user must | |
| 1854 have a Show, Deploy, or Manage permissions level for the | |
| 1855 stack, or an attached policy that explicitly grants | |
| 1856 permissions. For more information on user permissions, see | |
| 1857 `Managing User Permissions`_. | |
| 1858 | |
| 1859 :type instance_ids: list | |
| 1860 :param instance_ids: An array of instance IDs. | |
| 1861 | |
| 1862 """ | |
| 1863 params = {'InstanceIds': instance_ids, } | |
| 1864 return self.make_request(action='DescribeTimeBasedAutoScaling', | |
| 1865 body=json.dumps(params)) | |
| 1866 | |
| 1867 def describe_user_profiles(self, iam_user_arns=None): | |
| 1868 """ | |
| 1869 Describe specified users. | |
| 1870 | |
| 1871 **Required Permissions**: To use this action, an IAM user must | |
| 1872 have an attached policy that explicitly grants permissions. | |
| 1873 For more information on user permissions, see `Managing User | |
| 1874 Permissions`_. | |
| 1875 | |
| 1876 :type iam_user_arns: list | |
| 1877 :param iam_user_arns: An array of IAM user ARNs that identify the users | |
| 1878 to be described. | |
| 1879 | |
| 1880 """ | |
| 1881 params = {} | |
| 1882 if iam_user_arns is not None: | |
| 1883 params['IamUserArns'] = iam_user_arns | |
| 1884 return self.make_request(action='DescribeUserProfiles', | |
| 1885 body=json.dumps(params)) | |
| 1886 | |
| 1887 def describe_volumes(self, instance_id=None, stack_id=None, | |
| 1888 raid_array_id=None, volume_ids=None): | |
| 1889 """ | |
| 1890 Describes an instance's Amazon EBS volumes. | |
| 1891 | |
| 1892 | |
| 1893 You must specify at least one of the parameters. | |
| 1894 | |
| 1895 | |
| 1896 **Required Permissions**: To use this action, an IAM user must | |
| 1897 have a Show, Deploy, or Manage permissions level for the | |
| 1898 stack, or an attached policy that explicitly grants | |
| 1899 permissions. For more information on user permissions, see | |
| 1900 `Managing User Permissions`_. | |
| 1901 | |
| 1902 :type instance_id: string | |
| 1903 :param instance_id: The instance ID. If you use this parameter, | |
| 1904 `DescribeVolumes` returns descriptions of the volumes associated | |
| 1905 with the specified instance. | |
| 1906 | |
| 1907 :type stack_id: string | |
| 1908 :param stack_id: A stack ID. The action describes the stack's | |
| 1909 registered Amazon EBS volumes. | |
| 1910 | |
| 1911 :type raid_array_id: string | |
| 1912 :param raid_array_id: The RAID array ID. If you use this parameter, | |
| 1913 `DescribeVolumes` returns descriptions of the volumes associated | |
| 1914 with the specified RAID array. | |
| 1915 | |
| 1916 :type volume_ids: list | |
| 1917 :param volume_ids: Am array of volume IDs. If you use this parameter, | |
| 1918 `DescribeVolumes` returns descriptions of the specified volumes. | |
| 1919 Otherwise, it returns a description of every volume. | |
| 1920 | |
| 1921 """ | |
| 1922 params = {} | |
| 1923 if instance_id is not None: | |
| 1924 params['InstanceId'] = instance_id | |
| 1925 if stack_id is not None: | |
| 1926 params['StackId'] = stack_id | |
| 1927 if raid_array_id is not None: | |
| 1928 params['RaidArrayId'] = raid_array_id | |
| 1929 if volume_ids is not None: | |
| 1930 params['VolumeIds'] = volume_ids | |
| 1931 return self.make_request(action='DescribeVolumes', | |
| 1932 body=json.dumps(params)) | |
| 1933 | |
| 1934 def detach_elastic_load_balancer(self, elastic_load_balancer_name, | |
| 1935 layer_id): | |
| 1936 """ | |
| 1937 Detaches a specified Elastic Load Balancing instance from its | |
| 1938 layer. | |
| 1939 | |
| 1940 **Required Permissions**: To use this action, an IAM user must | |
| 1941 have a Manage permissions level for the stack, or an attached | |
| 1942 policy that explicitly grants permissions. For more | |
| 1943 information on user permissions, see `Managing User | |
| 1944 Permissions`_. | |
| 1945 | |
| 1946 :type elastic_load_balancer_name: string | |
| 1947 :param elastic_load_balancer_name: The Elastic Load Balancing | |
| 1948 instance's name. | |
| 1949 | |
| 1950 :type layer_id: string | |
| 1951 :param layer_id: The ID of the layer that the Elastic Load Balancing | |
| 1952 instance is attached to. | |
| 1953 | |
| 1954 """ | |
| 1955 params = { | |
| 1956 'ElasticLoadBalancerName': elastic_load_balancer_name, | |
| 1957 'LayerId': layer_id, | |
| 1958 } | |
| 1959 return self.make_request(action='DetachElasticLoadBalancer', | |
| 1960 body=json.dumps(params)) | |
| 1961 | |
| 1962 def disassociate_elastic_ip(self, elastic_ip): | |
| 1963 """ | |
| 1964 Disassociates an Elastic IP address from its instance. The | |
| 1965 address remains registered with the stack. For more | |
| 1966 information, see `Resource Management`_. | |
| 1967 | |
| 1968 **Required Permissions**: To use this action, an IAM user must | |
| 1969 have a Manage permissions level for the stack, or an attached | |
| 1970 policy that explicitly grants permissions. For more | |
| 1971 information on user permissions, see `Managing User | |
| 1972 Permissions`_. | |
| 1973 | |
| 1974 :type elastic_ip: string | |
| 1975 :param elastic_ip: The Elastic IP address. | |
| 1976 | |
| 1977 """ | |
| 1978 params = {'ElasticIp': elastic_ip, } | |
| 1979 return self.make_request(action='DisassociateElasticIp', | |
| 1980 body=json.dumps(params)) | |
| 1981 | |
| 1982 def get_hostname_suggestion(self, layer_id): | |
| 1983 """ | |
| 1984 Gets a generated host name for the specified layer, based on | |
| 1985 the current host name theme. | |
| 1986 | |
| 1987 **Required Permissions**: To use this action, an IAM user must | |
| 1988 have a Manage permissions level for the stack, or an attached | |
| 1989 policy that explicitly grants permissions. For more | |
| 1990 information on user permissions, see `Managing User | |
| 1991 Permissions`_. | |
| 1992 | |
| 1993 :type layer_id: string | |
| 1994 :param layer_id: The layer ID. | |
| 1995 | |
| 1996 """ | |
| 1997 params = {'LayerId': layer_id, } | |
| 1998 return self.make_request(action='GetHostnameSuggestion', | |
| 1999 body=json.dumps(params)) | |
| 2000 | |
| 2001 def reboot_instance(self, instance_id): | |
| 2002 """ | |
| 2003 Reboots a specified instance. For more information, see | |
| 2004 `Starting, Stopping, and Rebooting Instances`_. | |
| 2005 | |
| 2006 **Required Permissions**: To use this action, an IAM user must | |
| 2007 have a Manage permissions level for the stack, or an attached | |
| 2008 policy that explicitly grants permissions. For more | |
| 2009 information on user permissions, see `Managing User | |
| 2010 Permissions`_. | |
| 2011 | |
| 2012 :type instance_id: string | |
| 2013 :param instance_id: The instance ID. | |
| 2014 | |
| 2015 """ | |
| 2016 params = {'InstanceId': instance_id, } | |
| 2017 return self.make_request(action='RebootInstance', | |
| 2018 body=json.dumps(params)) | |
| 2019 | |
| 2020 def register_elastic_ip(self, elastic_ip, stack_id): | |
| 2021 """ | |
| 2022 Registers an Elastic IP address with a specified stack. An | |
| 2023 address can be registered with only one stack at a time. If | |
| 2024 the address is already registered, you must first deregister | |
| 2025 it by calling DeregisterElasticIp. For more information, see | |
| 2026 `Resource Management`_. | |
| 2027 | |
| 2028 **Required Permissions**: To use this action, an IAM user must | |
| 2029 have a Manage permissions level for the stack, or an attached | |
| 2030 policy that explicitly grants permissions. For more | |
| 2031 information on user permissions, see `Managing User | |
| 2032 Permissions`_. | |
| 2033 | |
| 2034 :type elastic_ip: string | |
| 2035 :param elastic_ip: The Elastic IP address. | |
| 2036 | |
| 2037 :type stack_id: string | |
| 2038 :param stack_id: The stack ID. | |
| 2039 | |
| 2040 """ | |
| 2041 params = {'ElasticIp': elastic_ip, 'StackId': stack_id, } | |
| 2042 return self.make_request(action='RegisterElasticIp', | |
| 2043 body=json.dumps(params)) | |
| 2044 | |
| 2045 def register_instance(self, stack_id, hostname=None, public_ip=None, | |
| 2046 private_ip=None, rsa_public_key=None, | |
| 2047 rsa_public_key_fingerprint=None, | |
| 2048 instance_identity=None): | |
| 2049 """ | |
| 2050 Registers instances with a specified stack that were created | |
| 2051 outside of AWS OpsWorks. | |
| 2052 | |
| 2053 We do not recommend using this action to register instances. | |
| 2054 The complete registration operation has two primary steps, | |
| 2055 installing the AWS OpsWorks agent on the instance and | |
| 2056 registering the instance with the stack. `RegisterInstance` | |
| 2057 handles only the second step. You should instead use the AWS | |
| 2058 CLI `register` command, which performs the entire registration | |
| 2059 operation. | |
| 2060 | |
| 2061 **Required Permissions**: To use this action, an IAM user must | |
| 2062 have a Manage permissions level for the stack or an attached | |
| 2063 policy that explicitly grants permissions. For more | |
| 2064 information on user permissions, see `Managing User | |
| 2065 Permissions`_. | |
| 2066 | |
| 2067 :type stack_id: string | |
| 2068 :param stack_id: The ID of the stack that the instance is to be | |
| 2069 registered with. | |
| 2070 | |
| 2071 :type hostname: string | |
| 2072 :param hostname: The instance's hostname. | |
| 2073 | |
| 2074 :type public_ip: string | |
| 2075 :param public_ip: The instance's public IP address. | |
| 2076 | |
| 2077 :type private_ip: string | |
| 2078 :param private_ip: The instance's private IP address. | |
| 2079 | |
| 2080 :type rsa_public_key: string | |
| 2081 :param rsa_public_key: The instances public RSA key. This key is used | |
| 2082 to encrypt communication between the instance and the service. | |
| 2083 | |
| 2084 :type rsa_public_key_fingerprint: string | |
| 2085 :param rsa_public_key_fingerprint: The instances public RSA key | |
| 2086 fingerprint. | |
| 2087 | |
| 2088 :type instance_identity: dict | |
| 2089 :param instance_identity: An InstanceIdentity object that contains the | |
| 2090 instance's identity. | |
| 2091 | |
| 2092 """ | |
| 2093 params = {'StackId': stack_id, } | |
| 2094 if hostname is not None: | |
| 2095 params['Hostname'] = hostname | |
| 2096 if public_ip is not None: | |
| 2097 params['PublicIp'] = public_ip | |
| 2098 if private_ip is not None: | |
| 2099 params['PrivateIp'] = private_ip | |
| 2100 if rsa_public_key is not None: | |
| 2101 params['RsaPublicKey'] = rsa_public_key | |
| 2102 if rsa_public_key_fingerprint is not None: | |
| 2103 params['RsaPublicKeyFingerprint'] = rsa_public_key_fingerprint | |
| 2104 if instance_identity is not None: | |
| 2105 params['InstanceIdentity'] = instance_identity | |
| 2106 return self.make_request(action='RegisterInstance', | |
| 2107 body=json.dumps(params)) | |
| 2108 | |
| 2109 def register_rds_db_instance(self, stack_id, rds_db_instance_arn, | |
| 2110 db_user, db_password): | |
| 2111 """ | |
| 2112 Registers an Amazon RDS instance with a stack. | |
| 2113 | |
| 2114 **Required Permissions**: To use this action, an IAM user must | |
| 2115 have a Manage permissions level for the stack, or an attached | |
| 2116 policy that explicitly grants permissions. For more | |
| 2117 information on user permissions, see `Managing User | |
| 2118 Permissions`_. | |
| 2119 | |
| 2120 :type stack_id: string | |
| 2121 :param stack_id: The stack ID. | |
| 2122 | |
| 2123 :type rds_db_instance_arn: string | |
| 2124 :param rds_db_instance_arn: The Amazon RDS instance's ARN. | |
| 2125 | |
| 2126 :type db_user: string | |
| 2127 :param db_user: The database's master user name. | |
| 2128 | |
| 2129 :type db_password: string | |
| 2130 :param db_password: The database password. | |
| 2131 | |
| 2132 """ | |
| 2133 params = { | |
| 2134 'StackId': stack_id, | |
| 2135 'RdsDbInstanceArn': rds_db_instance_arn, | |
| 2136 'DbUser': db_user, | |
| 2137 'DbPassword': db_password, | |
| 2138 } | |
| 2139 return self.make_request(action='RegisterRdsDbInstance', | |
| 2140 body=json.dumps(params)) | |
| 2141 | |
| 2142 def register_volume(self, stack_id, ec_2_volume_id=None): | |
| 2143 """ | |
| 2144 Registers an Amazon EBS volume with a specified stack. A | |
| 2145 volume can be registered with only one stack at a time. If the | |
| 2146 volume is already registered, you must first deregister it by | |
| 2147 calling DeregisterVolume. For more information, see `Resource | |
| 2148 Management`_. | |
| 2149 | |
| 2150 **Required Permissions**: To use this action, an IAM user must | |
| 2151 have a Manage permissions level for the stack, or an attached | |
| 2152 policy that explicitly grants permissions. For more | |
| 2153 information on user permissions, see `Managing User | |
| 2154 Permissions`_. | |
| 2155 | |
| 2156 :type ec_2_volume_id: string | |
| 2157 :param ec_2_volume_id: The Amazon EBS volume ID. | |
| 2158 | |
| 2159 :type stack_id: string | |
| 2160 :param stack_id: The stack ID. | |
| 2161 | |
| 2162 """ | |
| 2163 params = {'StackId': stack_id, } | |
| 2164 if ec_2_volume_id is not None: | |
| 2165 params['Ec2VolumeId'] = ec_2_volume_id | |
| 2166 return self.make_request(action='RegisterVolume', | |
| 2167 body=json.dumps(params)) | |
| 2168 | |
| 2169 def set_load_based_auto_scaling(self, layer_id, enable=None, | |
| 2170 up_scaling=None, down_scaling=None): | |
| 2171 """ | |
| 2172 Specify the load-based auto scaling configuration for a | |
| 2173 specified layer. For more information, see `Managing Load with | |
| 2174 Time-based and Load-based Instances`_. | |
| 2175 | |
| 2176 | |
| 2177 To use load-based auto scaling, you must create a set of load- | |
| 2178 based auto scaling instances. Load-based auto scaling operates | |
| 2179 only on the instances from that set, so you must ensure that | |
| 2180 you have created enough instances to handle the maximum | |
| 2181 anticipated load. | |
| 2182 | |
| 2183 | |
| 2184 **Required Permissions**: To use this action, an IAM user must | |
| 2185 have a Manage permissions level for the stack, or an attached | |
| 2186 policy that explicitly grants permissions. For more | |
| 2187 information on user permissions, see `Managing User | |
| 2188 Permissions`_. | |
| 2189 | |
| 2190 :type layer_id: string | |
| 2191 :param layer_id: The layer ID. | |
| 2192 | |
| 2193 :type enable: boolean | |
| 2194 :param enable: Enables load-based auto scaling for the layer. | |
| 2195 | |
| 2196 :type up_scaling: dict | |
| 2197 :param up_scaling: An `AutoScalingThresholds` object with the upscaling | |
| 2198 threshold configuration. If the load exceeds these thresholds for a | |
| 2199 specified amount of time, AWS OpsWorks starts a specified number of | |
| 2200 instances. | |
| 2201 | |
| 2202 :type down_scaling: dict | |
| 2203 :param down_scaling: An `AutoScalingThresholds` object with the | |
| 2204 downscaling threshold configuration. If the load falls below these | |
| 2205 thresholds for a specified amount of time, AWS OpsWorks stops a | |
| 2206 specified number of instances. | |
| 2207 | |
| 2208 """ | |
| 2209 params = {'LayerId': layer_id, } | |
| 2210 if enable is not None: | |
| 2211 params['Enable'] = enable | |
| 2212 if up_scaling is not None: | |
| 2213 params['UpScaling'] = up_scaling | |
| 2214 if down_scaling is not None: | |
| 2215 params['DownScaling'] = down_scaling | |
| 2216 return self.make_request(action='SetLoadBasedAutoScaling', | |
| 2217 body=json.dumps(params)) | |
| 2218 | |
| 2219 def set_permission(self, stack_id, iam_user_arn, allow_ssh=None, | |
| 2220 allow_sudo=None, level=None): | |
| 2221 """ | |
| 2222 Specifies a user's permissions. For more information, see | |
| 2223 `Security and Permissions`_. | |
| 2224 | |
| 2225 **Required Permissions**: To use this action, an IAM user must | |
| 2226 have a Manage permissions level for the stack, or an attached | |
| 2227 policy that explicitly grants permissions. For more | |
| 2228 information on user permissions, see `Managing User | |
| 2229 Permissions`_. | |
| 2230 | |
| 2231 :type stack_id: string | |
| 2232 :param stack_id: The stack ID. | |
| 2233 | |
| 2234 :type iam_user_arn: string | |
| 2235 :param iam_user_arn: The user's IAM ARN. | |
| 2236 | |
| 2237 :type allow_ssh: boolean | |
| 2238 :param allow_ssh: The user is allowed to use SSH to communicate with | |
| 2239 the instance. | |
| 2240 | |
| 2241 :type allow_sudo: boolean | |
| 2242 :param allow_sudo: The user is allowed to use **sudo** to elevate | |
| 2243 privileges. | |
| 2244 | |
| 2245 :type level: string | |
| 2246 :param level: The user's permission level, which must be set to one of | |
| 2247 the following strings. You cannot set your own permissions level. | |
| 2248 | |
| 2249 + `deny` | |
| 2250 + `show` | |
| 2251 + `deploy` | |
| 2252 + `manage` | |
| 2253 + `iam_only` | |
| 2254 | |
| 2255 | |
| 2256 For more information on the permissions associated with these levels, | |
| 2257 see `Managing User Permissions`_ | |
| 2258 | |
| 2259 """ | |
| 2260 params = {'StackId': stack_id, 'IamUserArn': iam_user_arn, } | |
| 2261 if allow_ssh is not None: | |
| 2262 params['AllowSsh'] = allow_ssh | |
| 2263 if allow_sudo is not None: | |
| 2264 params['AllowSudo'] = allow_sudo | |
| 2265 if level is not None: | |
| 2266 params['Level'] = level | |
| 2267 return self.make_request(action='SetPermission', | |
| 2268 body=json.dumps(params)) | |
| 2269 | |
| 2270 def set_time_based_auto_scaling(self, instance_id, | |
| 2271 auto_scaling_schedule=None): | |
| 2272 """ | |
| 2273 Specify the time-based auto scaling configuration for a | |
| 2274 specified instance. For more information, see `Managing Load | |
| 2275 with Time-based and Load-based Instances`_. | |
| 2276 | |
| 2277 **Required Permissions**: To use this action, an IAM user must | |
| 2278 have a Manage permissions level for the stack, or an attached | |
| 2279 policy that explicitly grants permissions. For more | |
| 2280 information on user permissions, see `Managing User | |
| 2281 Permissions`_. | |
| 2282 | |
| 2283 :type instance_id: string | |
| 2284 :param instance_id: The instance ID. | |
| 2285 | |
| 2286 :type auto_scaling_schedule: dict | |
| 2287 :param auto_scaling_schedule: An `AutoScalingSchedule` with the | |
| 2288 instance schedule. | |
| 2289 | |
| 2290 """ | |
| 2291 params = {'InstanceId': instance_id, } | |
| 2292 if auto_scaling_schedule is not None: | |
| 2293 params['AutoScalingSchedule'] = auto_scaling_schedule | |
| 2294 return self.make_request(action='SetTimeBasedAutoScaling', | |
| 2295 body=json.dumps(params)) | |
| 2296 | |
| 2297 def start_instance(self, instance_id): | |
| 2298 """ | |
| 2299 Starts a specified instance. For more information, see | |
| 2300 `Starting, Stopping, and Rebooting Instances`_. | |
| 2301 | |
| 2302 **Required Permissions**: To use this action, an IAM user must | |
| 2303 have a Manage permissions level for the stack, or an attached | |
| 2304 policy that explicitly grants permissions. For more | |
| 2305 information on user permissions, see `Managing User | |
| 2306 Permissions`_. | |
| 2307 | |
| 2308 :type instance_id: string | |
| 2309 :param instance_id: The instance ID. | |
| 2310 | |
| 2311 """ | |
| 2312 params = {'InstanceId': instance_id, } | |
| 2313 return self.make_request(action='StartInstance', | |
| 2314 body=json.dumps(params)) | |
| 2315 | |
| 2316 def start_stack(self, stack_id): | |
| 2317 """ | |
| 2318 Starts a stack's instances. | |
| 2319 | |
| 2320 **Required Permissions**: To use this action, an IAM user must | |
| 2321 have a Manage permissions level for the stack, or an attached | |
| 2322 policy that explicitly grants permissions. For more | |
| 2323 information on user permissions, see `Managing User | |
| 2324 Permissions`_. | |
| 2325 | |
| 2326 :type stack_id: string | |
| 2327 :param stack_id: The stack ID. | |
| 2328 | |
| 2329 """ | |
| 2330 params = {'StackId': stack_id, } | |
| 2331 return self.make_request(action='StartStack', | |
| 2332 body=json.dumps(params)) | |
| 2333 | |
| 2334 def stop_instance(self, instance_id): | |
| 2335 """ | |
| 2336 Stops a specified instance. When you stop a standard instance, | |
| 2337 the data disappears and must be reinstalled when you restart | |
| 2338 the instance. You can stop an Amazon EBS-backed instance | |
| 2339 without losing data. For more information, see `Starting, | |
| 2340 Stopping, and Rebooting Instances`_. | |
| 2341 | |
| 2342 **Required Permissions**: To use this action, an IAM user must | |
| 2343 have a Manage permissions level for the stack, or an attached | |
| 2344 policy that explicitly grants permissions. For more | |
| 2345 information on user permissions, see `Managing User | |
| 2346 Permissions`_. | |
| 2347 | |
| 2348 :type instance_id: string | |
| 2349 :param instance_id: The instance ID. | |
| 2350 | |
| 2351 """ | |
| 2352 params = {'InstanceId': instance_id, } | |
| 2353 return self.make_request(action='StopInstance', | |
| 2354 body=json.dumps(params)) | |
| 2355 | |
| 2356 def stop_stack(self, stack_id): | |
| 2357 """ | |
| 2358 Stops a specified stack. | |
| 2359 | |
| 2360 **Required Permissions**: To use this action, an IAM user must | |
| 2361 have a Manage permissions level for the stack, or an attached | |
| 2362 policy that explicitly grants permissions. For more | |
| 2363 information on user permissions, see `Managing User | |
| 2364 Permissions`_. | |
| 2365 | |
| 2366 :type stack_id: string | |
| 2367 :param stack_id: The stack ID. | |
| 2368 | |
| 2369 """ | |
| 2370 params = {'StackId': stack_id, } | |
| 2371 return self.make_request(action='StopStack', | |
| 2372 body=json.dumps(params)) | |
| 2373 | |
| 2374 def unassign_instance(self, instance_id): | |
| 2375 """ | |
| 2376 Unassigns a registered instance from all of it's layers. The | |
| 2377 instance remains in the stack as an unassigned instance and | |
| 2378 can be assigned to another layer, as needed. You cannot use | |
| 2379 this action with instances that were created with AWS | |
| 2380 OpsWorks. | |
| 2381 | |
| 2382 **Required Permissions**: To use this action, an IAM user must | |
| 2383 have a Manage permissions level for the stack or an attached | |
| 2384 policy that explicitly grants permissions. For more | |
| 2385 information on user permissions, see `Managing User | |
| 2386 Permissions`_. | |
| 2387 | |
| 2388 :type instance_id: string | |
| 2389 :param instance_id: The instance ID. | |
| 2390 | |
| 2391 """ | |
| 2392 params = {'InstanceId': instance_id, } | |
| 2393 return self.make_request(action='UnassignInstance', | |
| 2394 body=json.dumps(params)) | |
| 2395 | |
| 2396 def unassign_volume(self, volume_id): | |
| 2397 """ | |
| 2398 Unassigns an assigned Amazon EBS volume. The volume remains | |
| 2399 registered with the stack. For more information, see `Resource | |
| 2400 Management`_. | |
| 2401 | |
| 2402 **Required Permissions**: To use this action, an IAM user must | |
| 2403 have a Manage permissions level for the stack, or an attached | |
| 2404 policy that explicitly grants permissions. For more | |
| 2405 information on user permissions, see `Managing User | |
| 2406 Permissions`_. | |
| 2407 | |
| 2408 :type volume_id: string | |
| 2409 :param volume_id: The volume ID. | |
| 2410 | |
| 2411 """ | |
| 2412 params = {'VolumeId': volume_id, } | |
| 2413 return self.make_request(action='UnassignVolume', | |
| 2414 body=json.dumps(params)) | |
| 2415 | |
| 2416 def update_app(self, app_id, name=None, description=None, | |
| 2417 data_sources=None, type=None, app_source=None, | |
| 2418 domains=None, enable_ssl=None, ssl_configuration=None, | |
| 2419 attributes=None, environment=None): | |
| 2420 """ | |
| 2421 Updates a specified app. | |
| 2422 | |
| 2423 **Required Permissions**: To use this action, an IAM user must | |
| 2424 have a Deploy or Manage permissions level for the stack, or an | |
| 2425 attached policy that explicitly grants permissions. For more | |
| 2426 information on user permissions, see `Managing User | |
| 2427 Permissions`_. | |
| 2428 | |
| 2429 :type app_id: string | |
| 2430 :param app_id: The app ID. | |
| 2431 | |
| 2432 :type name: string | |
| 2433 :param name: The app name. | |
| 2434 | |
| 2435 :type description: string | |
| 2436 :param description: A description of the app. | |
| 2437 | |
| 2438 :type data_sources: list | |
| 2439 :param data_sources: The app's data sources. | |
| 2440 | |
| 2441 :type type: string | |
| 2442 :param type: The app type. | |
| 2443 | |
| 2444 :type app_source: dict | |
| 2445 :param app_source: A `Source` object that specifies the app repository. | |
| 2446 | |
| 2447 :type domains: list | |
| 2448 :param domains: The app's virtual host settings, with multiple domains | |
| 2449 separated by commas. For example: `'www.example.com, example.com'` | |
| 2450 | |
| 2451 :type enable_ssl: boolean | |
| 2452 :param enable_ssl: Whether SSL is enabled for the app. | |
| 2453 | |
| 2454 :type ssl_configuration: dict | |
| 2455 :param ssl_configuration: An `SslConfiguration` object with the SSL | |
| 2456 configuration. | |
| 2457 | |
| 2458 :type attributes: map | |
| 2459 :param attributes: One or more user-defined key/value pairs to be added | |
| 2460 to the stack attributes. | |
| 2461 | |
| 2462 :type environment: list | |
| 2463 :param environment: | |
| 2464 An array of `EnvironmentVariable` objects that specify environment | |
| 2465 variables to be associated with the app. You can specify up to ten | |
| 2466 environment variables. After you deploy the app, these variables | |
| 2467 are defined on the associated app server instances. | |
| 2468 | |
| 2469 This parameter is supported only by Chef 11.10 stacks. If you have | |
| 2470 specified one or more environment variables, you cannot modify the | |
| 2471 stack's Chef version. | |
| 2472 | |
| 2473 """ | |
| 2474 params = {'AppId': app_id, } | |
| 2475 if name is not None: | |
| 2476 params['Name'] = name | |
| 2477 if description is not None: | |
| 2478 params['Description'] = description | |
| 2479 if data_sources is not None: | |
| 2480 params['DataSources'] = data_sources | |
| 2481 if type is not None: | |
| 2482 params['Type'] = type | |
| 2483 if app_source is not None: | |
| 2484 params['AppSource'] = app_source | |
| 2485 if domains is not None: | |
| 2486 params['Domains'] = domains | |
| 2487 if enable_ssl is not None: | |
| 2488 params['EnableSsl'] = enable_ssl | |
| 2489 if ssl_configuration is not None: | |
| 2490 params['SslConfiguration'] = ssl_configuration | |
| 2491 if attributes is not None: | |
| 2492 params['Attributes'] = attributes | |
| 2493 if environment is not None: | |
| 2494 params['Environment'] = environment | |
| 2495 return self.make_request(action='UpdateApp', | |
| 2496 body=json.dumps(params)) | |
| 2497 | |
| 2498 def update_elastic_ip(self, elastic_ip, name=None): | |
| 2499 """ | |
| 2500 Updates a registered Elastic IP address's name. For more | |
| 2501 information, see `Resource Management`_. | |
| 2502 | |
| 2503 **Required Permissions**: To use this action, an IAM user must | |
| 2504 have a Manage permissions level for the stack, or an attached | |
| 2505 policy that explicitly grants permissions. For more | |
| 2506 information on user permissions, see `Managing User | |
| 2507 Permissions`_. | |
| 2508 | |
| 2509 :type elastic_ip: string | |
| 2510 :param elastic_ip: The address. | |
| 2511 | |
| 2512 :type name: string | |
| 2513 :param name: The new name. | |
| 2514 | |
| 2515 """ | |
| 2516 params = {'ElasticIp': elastic_ip, } | |
| 2517 if name is not None: | |
| 2518 params['Name'] = name | |
| 2519 return self.make_request(action='UpdateElasticIp', | |
| 2520 body=json.dumps(params)) | |
| 2521 | |
| 2522 def update_instance(self, instance_id, layer_ids=None, | |
| 2523 instance_type=None, auto_scaling_type=None, | |
| 2524 hostname=None, os=None, ami_id=None, | |
| 2525 ssh_key_name=None, architecture=None, | |
| 2526 install_updates_on_boot=None, ebs_optimized=None): | |
| 2527 """ | |
| 2528 Updates a specified instance. | |
| 2529 | |
| 2530 **Required Permissions**: To use this action, an IAM user must | |
| 2531 have a Manage permissions level for the stack, or an attached | |
| 2532 policy that explicitly grants permissions. For more | |
| 2533 information on user permissions, see `Managing User | |
| 2534 Permissions`_. | |
| 2535 | |
| 2536 :type instance_id: string | |
| 2537 :param instance_id: The instance ID. | |
| 2538 | |
| 2539 :type layer_ids: list | |
| 2540 :param layer_ids: The instance's layer IDs. | |
| 2541 | |
| 2542 :type instance_type: string | |
| 2543 :param instance_type: The instance type. AWS OpsWorks supports all | |
| 2544 instance types except Cluster Compute, Cluster GPU, and High Memory | |
| 2545 Cluster. For more information, see `Instance Families and Types`_. | |
| 2546 The parameter values that you use to specify the various types are | |
| 2547 in the API Name column of the Available Instance Types table. | |
| 2548 | |
| 2549 :type auto_scaling_type: string | |
| 2550 :param auto_scaling_type: For load-based or time-based instances, the | |
| 2551 type. | |
| 2552 | |
| 2553 :type hostname: string | |
| 2554 :param hostname: The instance host name. | |
| 2555 | |
| 2556 :type os: string | |
| 2557 :param os: The instance's operating system, which must be set to one of | |
| 2558 the following. | |
| 2559 | |
| 2560 + Standard operating systems: An Amazon Linux version such as `Amazon | |
| 2561 Linux 2014.09`, `Ubuntu 12.04 LTS`, or `Ubuntu 14.04 LTS`. | |
| 2562 + Custom AMIs: `Custom` | |
| 2563 | |
| 2564 | |
| 2565 The default option is the current Amazon Linux version, such as `Amazon | |
| 2566 Linux 2014.09`. If you set this parameter to `Custom`, you must use | |
| 2567 the CreateInstance action's AmiId parameter to specify the custom | |
| 2568 AMI that you want to use. For more information on the standard | |
| 2569 operating systems, see `Operating Systems`_For more information on | |
| 2570 how to use custom AMIs with OpsWorks, see `Using Custom AMIs`_. | |
| 2571 | |
| 2572 :type ami_id: string | |
| 2573 :param ami_id: | |
| 2574 A custom AMI ID to be used to create the instance. The AMI should be | |
| 2575 based on one of the standard AWS OpsWorks AMIs: Amazon Linux, | |
| 2576 Ubuntu 12.04 LTS, or Ubuntu 14.04 LTS. For more information, see | |
| 2577 `Instances`_ | |
| 2578 | |
| 2579 If you specify a custom AMI, you must set `Os` to `Custom`. | |
| 2580 | |
| 2581 :type ssh_key_name: string | |
| 2582 :param ssh_key_name: The instance SSH key name. | |
| 2583 | |
| 2584 :type architecture: string | |
| 2585 :param architecture: The instance architecture. Instance types do not | |
| 2586 necessarily support both architectures. For a list of the | |
| 2587 architectures that are supported by the different instance types, | |
| 2588 see `Instance Families and Types`_. | |
| 2589 | |
| 2590 :type install_updates_on_boot: boolean | |
| 2591 :param install_updates_on_boot: | |
| 2592 Whether to install operating system and package updates when the | |
| 2593 instance boots. The default value is `True`. To control when | |
| 2594 updates are installed, set this value to `False`. You must then | |
| 2595 update your instances manually by using CreateDeployment to run the | |
| 2596 `update_dependencies` stack command or manually running `yum` | |
| 2597 (Amazon Linux) or `apt-get` (Ubuntu) on the instances. | |
| 2598 | |
| 2599 | |
| 2600 We strongly recommend using the default value of `True`, to ensure that | |
| 2601 your instances have the latest security updates. | |
| 2602 | |
| 2603 :type ebs_optimized: boolean | |
| 2604 :param ebs_optimized: Whether this is an Amazon EBS-optimized instance. | |
| 2605 | |
| 2606 """ | |
| 2607 params = {'InstanceId': instance_id, } | |
| 2608 if layer_ids is not None: | |
| 2609 params['LayerIds'] = layer_ids | |
| 2610 if instance_type is not None: | |
| 2611 params['InstanceType'] = instance_type | |
| 2612 if auto_scaling_type is not None: | |
| 2613 params['AutoScalingType'] = auto_scaling_type | |
| 2614 if hostname is not None: | |
| 2615 params['Hostname'] = hostname | |
| 2616 if os is not None: | |
| 2617 params['Os'] = os | |
| 2618 if ami_id is not None: | |
| 2619 params['AmiId'] = ami_id | |
| 2620 if ssh_key_name is not None: | |
| 2621 params['SshKeyName'] = ssh_key_name | |
| 2622 if architecture is not None: | |
| 2623 params['Architecture'] = architecture | |
| 2624 if install_updates_on_boot is not None: | |
| 2625 params['InstallUpdatesOnBoot'] = install_updates_on_boot | |
| 2626 if ebs_optimized is not None: | |
| 2627 params['EbsOptimized'] = ebs_optimized | |
| 2628 return self.make_request(action='UpdateInstance', | |
| 2629 body=json.dumps(params)) | |
| 2630 | |
| 2631 def update_layer(self, layer_id, name=None, shortname=None, | |
| 2632 attributes=None, custom_instance_profile_arn=None, | |
| 2633 custom_security_group_ids=None, packages=None, | |
| 2634 volume_configurations=None, enable_auto_healing=None, | |
| 2635 auto_assign_elastic_ips=None, | |
| 2636 auto_assign_public_ips=None, custom_recipes=None, | |
| 2637 install_updates_on_boot=None, | |
| 2638 use_ebs_optimized_instances=None, | |
| 2639 lifecycle_event_configuration=None): | |
| 2640 """ | |
| 2641 Updates a specified layer. | |
| 2642 | |
| 2643 **Required Permissions**: To use this action, an IAM user must | |
| 2644 have a Manage permissions level for the stack, or an attached | |
| 2645 policy that explicitly grants permissions. For more | |
| 2646 information on user permissions, see `Managing User | |
| 2647 Permissions`_. | |
| 2648 | |
| 2649 :type layer_id: string | |
| 2650 :param layer_id: The layer ID. | |
| 2651 | |
| 2652 :type name: string | |
| 2653 :param name: The layer name, which is used by the console. | |
| 2654 | |
| 2655 :type shortname: string | |
| 2656 :param shortname: The layer short name, which is used internally by AWS | |
| 2657 OpsWorksand by Chef. The short name is also used as the name for | |
| 2658 the directory where your app files are installed. It can have a | |
| 2659 maximum of 200 characters and must be in the following format: | |
| 2660 /\A[a-z0-9\-\_\.]+\Z/. | |
| 2661 | |
| 2662 :type attributes: map | |
| 2663 :param attributes: One or more user-defined key/value pairs to be added | |
| 2664 to the stack attributes. | |
| 2665 | |
| 2666 :type custom_instance_profile_arn: string | |
| 2667 :param custom_instance_profile_arn: The ARN of an IAM profile to be | |
| 2668 used for all of the layer's EC2 instances. For more information | |
| 2669 about IAM ARNs, see `Using Identifiers`_. | |
| 2670 | |
| 2671 :type custom_security_group_ids: list | |
| 2672 :param custom_security_group_ids: An array containing the layer's | |
| 2673 custom security group IDs. | |
| 2674 | |
| 2675 :type packages: list | |
| 2676 :param packages: An array of `Package` objects that describe the | |
| 2677 layer's packages. | |
| 2678 | |
| 2679 :type volume_configurations: list | |
| 2680 :param volume_configurations: A `VolumeConfigurations` object that | |
| 2681 describes the layer's Amazon EBS volumes. | |
| 2682 | |
| 2683 :type enable_auto_healing: boolean | |
| 2684 :param enable_auto_healing: Whether to disable auto healing for the | |
| 2685 layer. | |
| 2686 | |
| 2687 :type auto_assign_elastic_ips: boolean | |
| 2688 :param auto_assign_elastic_ips: Whether to automatically assign an | |
| 2689 `Elastic IP address`_ to the layer's instances. For more | |
| 2690 information, see `How to Edit a Layer`_. | |
| 2691 | |
| 2692 :type auto_assign_public_ips: boolean | |
| 2693 :param auto_assign_public_ips: For stacks that are running in a VPC, | |
| 2694 whether to automatically assign a public IP address to the layer's | |
| 2695 instances. For more information, see `How to Edit a Layer`_. | |
| 2696 | |
| 2697 :type custom_recipes: dict | |
| 2698 :param custom_recipes: A `LayerCustomRecipes` object that specifies the | |
| 2699 layer's custom recipes. | |
| 2700 | |
| 2701 :type install_updates_on_boot: boolean | |
| 2702 :param install_updates_on_boot: | |
| 2703 Whether to install operating system and package updates when the | |
| 2704 instance boots. The default value is `True`. To control when | |
| 2705 updates are installed, set this value to `False`. You must then | |
| 2706 update your instances manually by using CreateDeployment to run the | |
| 2707 `update_dependencies` stack command or manually running `yum` | |
| 2708 (Amazon Linux) or `apt-get` (Ubuntu) on the instances. | |
| 2709 | |
| 2710 | |
| 2711 We strongly recommend using the default value of `True`, to ensure that | |
| 2712 your instances have the latest security updates. | |
| 2713 | |
| 2714 :type use_ebs_optimized_instances: boolean | |
| 2715 :param use_ebs_optimized_instances: Whether to use Amazon EBS-optimized | |
| 2716 instances. | |
| 2717 | |
| 2718 :type lifecycle_event_configuration: dict | |
| 2719 :param lifecycle_event_configuration: | |
| 2720 | |
| 2721 """ | |
| 2722 params = {'LayerId': layer_id, } | |
| 2723 if name is not None: | |
| 2724 params['Name'] = name | |
| 2725 if shortname is not None: | |
| 2726 params['Shortname'] = shortname | |
| 2727 if attributes is not None: | |
| 2728 params['Attributes'] = attributes | |
| 2729 if custom_instance_profile_arn is not None: | |
| 2730 params['CustomInstanceProfileArn'] = custom_instance_profile_arn | |
| 2731 if custom_security_group_ids is not None: | |
| 2732 params['CustomSecurityGroupIds'] = custom_security_group_ids | |
| 2733 if packages is not None: | |
| 2734 params['Packages'] = packages | |
| 2735 if volume_configurations is not None: | |
| 2736 params['VolumeConfigurations'] = volume_configurations | |
| 2737 if enable_auto_healing is not None: | |
| 2738 params['EnableAutoHealing'] = enable_auto_healing | |
| 2739 if auto_assign_elastic_ips is not None: | |
| 2740 params['AutoAssignElasticIps'] = auto_assign_elastic_ips | |
| 2741 if auto_assign_public_ips is not None: | |
| 2742 params['AutoAssignPublicIps'] = auto_assign_public_ips | |
| 2743 if custom_recipes is not None: | |
| 2744 params['CustomRecipes'] = custom_recipes | |
| 2745 if install_updates_on_boot is not None: | |
| 2746 params['InstallUpdatesOnBoot'] = install_updates_on_boot | |
| 2747 if use_ebs_optimized_instances is not None: | |
| 2748 params['UseEbsOptimizedInstances'] = use_ebs_optimized_instances | |
| 2749 if lifecycle_event_configuration is not None: | |
| 2750 params['LifecycleEventConfiguration'] = lifecycle_event_configuration | |
| 2751 return self.make_request(action='UpdateLayer', | |
| 2752 body=json.dumps(params)) | |
| 2753 | |
| 2754 def update_my_user_profile(self, ssh_public_key=None): | |
| 2755 """ | |
| 2756 Updates a user's SSH public key. | |
| 2757 | |
| 2758 **Required Permissions**: To use this action, an IAM user must | |
| 2759 have self-management enabled or an attached policy that | |
| 2760 explicitly grants permissions. For more information on user | |
| 2761 permissions, see `Managing User Permissions`_. | |
| 2762 | |
| 2763 :type ssh_public_key: string | |
| 2764 :param ssh_public_key: The user's SSH public key. | |
| 2765 | |
| 2766 """ | |
| 2767 params = {} | |
| 2768 if ssh_public_key is not None: | |
| 2769 params['SshPublicKey'] = ssh_public_key | |
| 2770 return self.make_request(action='UpdateMyUserProfile', | |
| 2771 body=json.dumps(params)) | |
| 2772 | |
| 2773 def update_rds_db_instance(self, rds_db_instance_arn, db_user=None, | |
| 2774 db_password=None): | |
| 2775 """ | |
| 2776 Updates an Amazon RDS instance. | |
| 2777 | |
| 2778 **Required Permissions**: To use this action, an IAM user must | |
| 2779 have a Manage permissions level for the stack, or an attached | |
| 2780 policy that explicitly grants permissions. For more | |
| 2781 information on user permissions, see `Managing User | |
| 2782 Permissions`_. | |
| 2783 | |
| 2784 :type rds_db_instance_arn: string | |
| 2785 :param rds_db_instance_arn: The Amazon RDS instance's ARN. | |
| 2786 | |
| 2787 :type db_user: string | |
| 2788 :param db_user: The master user name. | |
| 2789 | |
| 2790 :type db_password: string | |
| 2791 :param db_password: The database password. | |
| 2792 | |
| 2793 """ | |
| 2794 params = {'RdsDbInstanceArn': rds_db_instance_arn, } | |
| 2795 if db_user is not None: | |
| 2796 params['DbUser'] = db_user | |
| 2797 if db_password is not None: | |
| 2798 params['DbPassword'] = db_password | |
| 2799 return self.make_request(action='UpdateRdsDbInstance', | |
| 2800 body=json.dumps(params)) | |
| 2801 | |
| 2802 def update_stack(self, stack_id, name=None, attributes=None, | |
| 2803 service_role_arn=None, | |
| 2804 default_instance_profile_arn=None, default_os=None, | |
| 2805 hostname_theme=None, default_availability_zone=None, | |
| 2806 default_subnet_id=None, custom_json=None, | |
| 2807 configuration_manager=None, chef_configuration=None, | |
| 2808 use_custom_cookbooks=None, custom_cookbooks_source=None, | |
| 2809 default_ssh_key_name=None, | |
| 2810 default_root_device_type=None, | |
| 2811 use_opsworks_security_groups=None): | |
| 2812 """ | |
| 2813 Updates a specified stack. | |
| 2814 | |
| 2815 **Required Permissions**: To use this action, an IAM user must | |
| 2816 have a Manage permissions level for the stack, or an attached | |
| 2817 policy that explicitly grants permissions. For more | |
| 2818 information on user permissions, see `Managing User | |
| 2819 Permissions`_. | |
| 2820 | |
| 2821 :type stack_id: string | |
| 2822 :param stack_id: The stack ID. | |
| 2823 | |
| 2824 :type name: string | |
| 2825 :param name: The stack's new name. | |
| 2826 | |
| 2827 :type attributes: map | |
| 2828 :param attributes: One or more user-defined key/value pairs to be added | |
| 2829 to the stack attributes. | |
| 2830 | |
| 2831 :type service_role_arn: string | |
| 2832 :param service_role_arn: | |
| 2833 The stack AWS Identity and Access Management (IAM) role, which allows | |
| 2834 AWS OpsWorks to work with AWS resources on your behalf. You must | |
| 2835 set this parameter to the Amazon Resource Name (ARN) for an | |
| 2836 existing IAM role. For more information about IAM ARNs, see `Using | |
| 2837 Identifiers`_. | |
| 2838 | |
| 2839 | |
| 2840 You must set this parameter to a valid service role ARN or the action | |
| 2841 will fail; there is no default value. You can specify the stack's | |
| 2842 current service role ARN, if you prefer, but you must do so | |
| 2843 explicitly. | |
| 2844 | |
| 2845 :type default_instance_profile_arn: string | |
| 2846 :param default_instance_profile_arn: The ARN of an IAM profile that is | |
| 2847 the default profile for all of the stack's EC2 instances. For more | |
| 2848 information about IAM ARNs, see `Using Identifiers`_. | |
| 2849 | |
| 2850 :type default_os: string | |
| 2851 :param default_os: The stack's operating system, which must be set to | |
| 2852 one of the following. | |
| 2853 | |
| 2854 + Standard operating systems: an Amazon Linux version such as `Amazon | |
| 2855 Linux 2014.09`, `Ubuntu 12.04 LTS`, or `Ubuntu 14.04 LTS`. | |
| 2856 + Custom AMIs: `Custom`. You specify the custom AMI you want to use | |
| 2857 when you create instances. | |
| 2858 | |
| 2859 | |
| 2860 The default option is the current Amazon Linux version. | |
| 2861 | |
| 2862 :type hostname_theme: string | |
| 2863 :param hostname_theme: The stack's new host name theme, with spaces are | |
| 2864 replaced by underscores. The theme is used to generate host names | |
| 2865 for the stack's instances. By default, `HostnameTheme` is set to | |
| 2866 `Layer_Dependent`, which creates host names by appending integers | |
| 2867 to the layer's short name. The other themes are: | |
| 2868 | |
| 2869 + `Baked_Goods` | |
| 2870 + `Clouds` | |
| 2871 + `European_Cities` | |
| 2872 + `Fruits` | |
| 2873 + `Greek_Deities` | |
| 2874 + `Legendary_Creatures_from_Japan` | |
| 2875 + `Planets_and_Moons` | |
| 2876 + `Roman_Deities` | |
| 2877 + `Scottish_Islands` | |
| 2878 + `US_Cities` | |
| 2879 + `Wild_Cats` | |
| 2880 | |
| 2881 | |
| 2882 To obtain a generated host name, call `GetHostNameSuggestion`, which | |
| 2883 returns a host name based on the current theme. | |
| 2884 | |
| 2885 :type default_availability_zone: string | |
| 2886 :param default_availability_zone: The stack's default Availability | |
| 2887 Zone, which must be in the specified region. For more information, | |
| 2888 see `Regions and Endpoints`_. If you also specify a value for | |
| 2889 `DefaultSubnetId`, the subnet must be in the same zone. For more | |
| 2890 information, see CreateStack. | |
| 2891 | |
| 2892 :type default_subnet_id: string | |
| 2893 :param default_subnet_id: The stack's default VPC subnet ID. This | |
| 2894 parameter is required if you specify a value for the `VpcId` | |
| 2895 parameter. All instances are launched into this subnet unless you | |
| 2896 specify otherwise when you create the instance. If you also specify | |
| 2897 a value for `DefaultAvailabilityZone`, the subnet must be in that | |
| 2898 zone. For information on default values and when this parameter is | |
| 2899 required, see the `VpcId` parameter description. | |
| 2900 | |
| 2901 :type custom_json: string | |
| 2902 :param custom_json: A string that contains user-defined, custom JSON. | |
| 2903 It is used to override the corresponding default stack | |
| 2904 configuration JSON values. The string should be in the following | |
| 2905 format and must escape characters such as '"'.: | |
| 2906 `"{\"key1\": \"value1\", \"key2\": \"value2\",...}"` | |
| 2907 | |
| 2908 For more information on custom JSON, see `Use Custom JSON to Modify the | |
| 2909 Stack Configuration JSON`_. | |
| 2910 | |
| 2911 :type configuration_manager: dict | |
| 2912 :param configuration_manager: The configuration manager. When you clone | |
| 2913 a stack we recommend that you use the configuration manager to | |
| 2914 specify the Chef version, 0.9, 11.4, or 11.10. The default value is | |
| 2915 currently 11.4. | |
| 2916 | |
| 2917 :type chef_configuration: dict | |
| 2918 :param chef_configuration: A `ChefConfiguration` object that specifies | |
| 2919 whether to enable Berkshelf and the Berkshelf version on Chef 11.10 | |
| 2920 stacks. For more information, see `Create a New Stack`_. | |
| 2921 | |
| 2922 :type use_custom_cookbooks: boolean | |
| 2923 :param use_custom_cookbooks: Whether the stack uses custom cookbooks. | |
| 2924 | |
| 2925 :type custom_cookbooks_source: dict | |
| 2926 :param custom_cookbooks_source: Contains the information required to | |
| 2927 retrieve an app or cookbook from a repository. For more | |
| 2928 information, see `Creating Apps`_ or `Custom Recipes and | |
| 2929 Cookbooks`_. | |
| 2930 | |
| 2931 :type default_ssh_key_name: string | |
| 2932 :param default_ssh_key_name: A default SSH key for the stack instances. | |
| 2933 You can override this value when you create or update an instance. | |
| 2934 | |
| 2935 :type default_root_device_type: string | |
| 2936 :param default_root_device_type: The default root device type. This | |
| 2937 value is used by default for all instances in the stack, but you | |
| 2938 can override it when you create an instance. For more information, | |
| 2939 see `Storage for the Root Device`_. | |
| 2940 | |
| 2941 :type use_opsworks_security_groups: boolean | |
| 2942 :param use_opsworks_security_groups: Whether to associate the AWS | |
| 2943 OpsWorks built-in security groups with the stack's layers. | |
| 2944 AWS OpsWorks provides a standard set of built-in security groups, one | |
| 2945 for each layer, which are associated with layers by default. | |
| 2946 `UseOpsworksSecurityGroups` allows you to instead provide your own | |
| 2947 custom security groups. `UseOpsworksSecurityGroups` has the | |
| 2948 following settings: | |
| 2949 | |
| 2950 | |
| 2951 + True - AWS OpsWorks automatically associates the appropriate built-in | |
| 2952 security group with each layer (default setting). You can associate | |
| 2953 additional security groups with a layer after you create it but you | |
| 2954 cannot delete the built-in security group. | |
| 2955 + False - AWS OpsWorks does not associate built-in security groups with | |
| 2956 layers. You must create appropriate EC2 security groups and | |
| 2957 associate a security group with each layer that you create. | |
| 2958 However, you can still manually associate a built-in security group | |
| 2959 with a layer on creation; custom security groups are required only | |
| 2960 for those layers that need custom settings. | |
| 2961 | |
| 2962 | |
| 2963 For more information, see `Create a New Stack`_. | |
| 2964 | |
| 2965 """ | |
| 2966 params = {'StackId': stack_id, } | |
| 2967 if name is not None: | |
| 2968 params['Name'] = name | |
| 2969 if attributes is not None: | |
| 2970 params['Attributes'] = attributes | |
| 2971 if service_role_arn is not None: | |
| 2972 params['ServiceRoleArn'] = service_role_arn | |
| 2973 if default_instance_profile_arn is not None: | |
| 2974 params['DefaultInstanceProfileArn'] = default_instance_profile_arn | |
| 2975 if default_os is not None: | |
| 2976 params['DefaultOs'] = default_os | |
| 2977 if hostname_theme is not None: | |
| 2978 params['HostnameTheme'] = hostname_theme | |
| 2979 if default_availability_zone is not None: | |
| 2980 params['DefaultAvailabilityZone'] = default_availability_zone | |
| 2981 if default_subnet_id is not None: | |
| 2982 params['DefaultSubnetId'] = default_subnet_id | |
| 2983 if custom_json is not None: | |
| 2984 params['CustomJson'] = custom_json | |
| 2985 if configuration_manager is not None: | |
| 2986 params['ConfigurationManager'] = configuration_manager | |
| 2987 if chef_configuration is not None: | |
| 2988 params['ChefConfiguration'] = chef_configuration | |
| 2989 if use_custom_cookbooks is not None: | |
| 2990 params['UseCustomCookbooks'] = use_custom_cookbooks | |
| 2991 if custom_cookbooks_source is not None: | |
| 2992 params['CustomCookbooksSource'] = custom_cookbooks_source | |
| 2993 if default_ssh_key_name is not None: | |
| 2994 params['DefaultSshKeyName'] = default_ssh_key_name | |
| 2995 if default_root_device_type is not None: | |
| 2996 params['DefaultRootDeviceType'] = default_root_device_type | |
| 2997 if use_opsworks_security_groups is not None: | |
| 2998 params['UseOpsworksSecurityGroups'] = use_opsworks_security_groups | |
| 2999 return self.make_request(action='UpdateStack', | |
| 3000 body=json.dumps(params)) | |
| 3001 | |
| 3002 def update_user_profile(self, iam_user_arn, ssh_username=None, | |
| 3003 ssh_public_key=None, allow_self_management=None): | |
| 3004 """ | |
| 3005 Updates a specified user profile. | |
| 3006 | |
| 3007 **Required Permissions**: To use this action, an IAM user must | |
| 3008 have an attached policy that explicitly grants permissions. | |
| 3009 For more information on user permissions, see `Managing User | |
| 3010 Permissions`_. | |
| 3011 | |
| 3012 :type iam_user_arn: string | |
| 3013 :param iam_user_arn: The user IAM ARN. | |
| 3014 | |
| 3015 :type ssh_username: string | |
| 3016 :param ssh_username: The user's SSH user name. The allowable characters | |
| 3017 are [a-z], [A-Z], [0-9], '-', and '_'. If the specified name | |
| 3018 includes other punctuation marks, AWS OpsWorks removes them. For | |
| 3019 example, `my.name` will be changed to `myname`. If you do not | |
| 3020 specify an SSH user name, AWS OpsWorks generates one from the IAM | |
| 3021 user name. | |
| 3022 | |
| 3023 :type ssh_public_key: string | |
| 3024 :param ssh_public_key: The user's new SSH public key. | |
| 3025 | |
| 3026 :type allow_self_management: boolean | |
| 3027 :param allow_self_management: Whether users can specify their own SSH | |
| 3028 public key through the My Settings page. For more information, see | |
| 3029 `Managing User Permissions`_. | |
| 3030 | |
| 3031 """ | |
| 3032 params = {'IamUserArn': iam_user_arn, } | |
| 3033 if ssh_username is not None: | |
| 3034 params['SshUsername'] = ssh_username | |
| 3035 if ssh_public_key is not None: | |
| 3036 params['SshPublicKey'] = ssh_public_key | |
| 3037 if allow_self_management is not None: | |
| 3038 params['AllowSelfManagement'] = allow_self_management | |
| 3039 return self.make_request(action='UpdateUserProfile', | |
| 3040 body=json.dumps(params)) | |
| 3041 | |
| 3042 def update_volume(self, volume_id, name=None, mount_point=None): | |
| 3043 """ | |
| 3044 Updates an Amazon EBS volume's name or mount point. For more | |
| 3045 information, see `Resource Management`_. | |
| 3046 | |
| 3047 **Required Permissions**: To use this action, an IAM user must | |
| 3048 have a Manage permissions level for the stack, or an attached | |
| 3049 policy that explicitly grants permissions. For more | |
| 3050 information on user permissions, see `Managing User | |
| 3051 Permissions`_. | |
| 3052 | |
| 3053 :type volume_id: string | |
| 3054 :param volume_id: The volume ID. | |
| 3055 | |
| 3056 :type name: string | |
| 3057 :param name: The new name. | |
| 3058 | |
| 3059 :type mount_point: string | |
| 3060 :param mount_point: The new mount point. | |
| 3061 | |
| 3062 """ | |
| 3063 params = {'VolumeId': volume_id, } | |
| 3064 if name is not None: | |
| 3065 params['Name'] = name | |
| 3066 if mount_point is not None: | |
| 3067 params['MountPoint'] = mount_point | |
| 3068 return self.make_request(action='UpdateVolume', | |
| 3069 body=json.dumps(params)) | |
| 3070 | |
| 3071 def make_request(self, action, body): | |
| 3072 headers = { | |
| 3073 'X-Amz-Target': '%s.%s' % (self.TargetPrefix, action), | |
| 3074 'Host': self.region.endpoint, | |
| 3075 'Content-Type': 'application/x-amz-json-1.1', | |
| 3076 'Content-Length': str(len(body)), | |
| 3077 } | |
| 3078 http_request = self.build_base_http_request( | |
| 3079 method='POST', path='/', auth_path='/', params={}, | |
| 3080 headers=headers, data=body) | |
| 3081 response = self._mexe(http_request, sender=None, | |
| 3082 override_num_retries=10) | |
| 3083 response_body = response.read().decode('utf-8') | |
| 3084 boto.log.debug(response_body) | |
| 3085 if response.status == 200: | |
| 3086 if response_body: | |
| 3087 return json.loads(response_body) | |
| 3088 else: | |
| 3089 json_body = json.loads(response_body) | |
| 3090 fault_name = json_body.get('__type', None) | |
| 3091 exception_class = self._faults.get(fault_name, self.ResponseError) | |
| 3092 raise exception_class(response.status, response.reason, | |
| 3093 body=json_body) | |
| 3094 |
