From 2519667221c0a5919848b2a4ae7154f7f3a831b1 Mon Sep 17 00:00:00 2001 From: TANIGUCHI Takaki Date: Thu, 10 Nov 2016 11:24:10 +0900 Subject: [PATCH] New upstream version 1.4.70 --- PKG-INFO | 2 +- botocore.egg-info/PKG-INFO | 2 +- botocore.egg-info/SOURCES.txt | 3 + botocore/__init__.py | 2 +- .../autoscaling/2011-01-01/service-2.json | 96 +-- .../data/budgets/2016-10-20/service-2.json | 777 ++++++++++++++++++ .../cloudformation/2010-05-15/service-2.json | 136 ++- .../cloudformation/2010-05-15/waiters-2.json | 12 + .../directconnect/2012-10-25/service-2.json | 186 +++++ .../data/ecr/2015-09-21/paginators-1.json | 12 + botocore/data/ecs/2014-11-13/service-2.json | 84 +- botocore/data/elbv2/2015-12-01/service-2.json | 40 +- botocore/data/endpoints.json | 12 + botocore/data/ses/2010-12-01/service-2.json | 570 ++++++++++++- botocore/data/sms/2016-10-24/service-2.json | 722 ++++++++++++++++ botocore/data/waf/2015-08-24/service-2.json | 14 +- botocore/handlers.py | 18 +- botocore/stub.py | 24 +- docs/source/conf.py | 2 +- tests/functional/test_cloudformation.py | 27 + tests/functional/test_stub.py | 38 + 21 files changed, 2639 insertions(+), 140 deletions(-) create mode 100755 botocore/data/budgets/2016-10-20/service-2.json create mode 100644 botocore/data/sms/2016-10-24/service-2.json create mode 100644 tests/functional/test_cloudformation.py diff --git a/PKG-INFO b/PKG-INFO index 608d3805..3cfbf88f 100644 --- a/PKG-INFO +++ b/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: botocore -Version: 1.4.64 +Version: 1.4.70 Summary: Low-level, data-driven core of boto 3. Home-page: https://github.com/boto/botocore Author: Amazon Web Services diff --git a/botocore.egg-info/PKG-INFO b/botocore.egg-info/PKG-INFO index 608d3805..3cfbf88f 100644 --- a/botocore.egg-info/PKG-INFO +++ b/botocore.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: botocore -Version: 1.4.64 +Version: 1.4.70 Summary: Low-level, data-driven core of boto 3. Home-page: https://github.com/boto/botocore Author: Amazon Web Services diff --git a/botocore.egg-info/SOURCES.txt b/botocore.egg-info/SOURCES.txt index c7c1ce7e..9d98c49d 100644 --- a/botocore.egg-info/SOURCES.txt +++ b/botocore.egg-info/SOURCES.txt @@ -47,6 +47,7 @@ botocore/data/application-autoscaling/2016-02-06/paginators-1.json botocore/data/application-autoscaling/2016-02-06/service-2.json botocore/data/autoscaling/2011-01-01/paginators-1.json botocore/data/autoscaling/2011-01-01/service-2.json +botocore/data/budgets/2016-10-20/service-2.json botocore/data/cloudformation/2010-05-15/paginators-1.json botocore/data/cloudformation/2010-05-15/service-2.json botocore/data/cloudformation/2010-05-15/waiters-2.json @@ -218,6 +219,7 @@ botocore/data/servicecatalog/2015-12-10/service-2.json botocore/data/ses/2010-12-01/paginators-1.json botocore/data/ses/2010-12-01/service-2.json botocore/data/ses/2010-12-01/waiters-2.json +botocore/data/sms/2016-10-24/service-2.json botocore/data/snowball/2016-06-30/service-2.json botocore/data/sns/2010-03-31/paginators-1.json botocore/data/sns/2010-03-31/service-2.json @@ -412,6 +414,7 @@ tests/functional/test_alias.py tests/functional/test_apigateway.py tests/functional/test_client_class_names.py tests/functional/test_client_metadata.py +tests/functional/test_cloudformation.py tests/functional/test_cloudsearchdomain.py tests/functional/test_credentials.py tests/functional/test_iot_data.py diff --git a/botocore/__init__.py b/botocore/__init__.py index c7d45079..05a10b3b 100644 --- a/botocore/__init__.py +++ b/botocore/__init__.py @@ -16,7 +16,7 @@ import os import re import logging -__version__ = '1.4.64' +__version__ = '1.4.70' class NullHandler(logging.Handler): diff --git a/botocore/data/autoscaling/2011-01-01/service-2.json b/botocore/data/autoscaling/2011-01-01/service-2.json index 13f94380..20db35d7 100644 --- a/botocore/data/autoscaling/2011-01-01/service-2.json +++ b/botocore/data/autoscaling/2011-01-01/service-2.json @@ -19,7 +19,7 @@ "errors":[ {"shape":"ResourceContentionFault"} ], - "documentation":"

Attaches one or more EC2 instances to the specified Auto Scaling group.

When you attach instances, Auto Scaling increases the desired capacity of the group by the number of instances being attached. If the number of instances being attached plus the desired capacity of the group exceeds the maximum size of the group, the operation fails.

If there is a Classic load balancer attached to your Auto Scaling group, the instances are also registered with the load balancer. If there are target groups attached to your Auto Scaling group, the instances are also registered with the target groups.

For more information, see Attach EC2 Instances to Your Auto Scaling Group in the Auto Scaling User Guide.

" + "documentation":"

Attaches one or more EC2 instances to the specified Auto Scaling group.

When you attach instances, Auto Scaling increases the desired capacity of the group by the number of instances being attached. If the number of instances being attached plus the desired capacity of the group exceeds the maximum size of the group, the operation fails.

If there is a Classic load balancer attached to your Auto Scaling group, the instances are also registered with the load balancer. If there are target groups attached to your Auto Scaling group, the instances are also registered with the target groups.

For more information, see Attach EC2 Instances to Your Auto Scaling Group in the Auto Scaling User Guide.

" }, "AttachLoadBalancerTargetGroups":{ "name":"AttachLoadBalancerTargetGroups", @@ -35,7 +35,7 @@ "errors":[ {"shape":"ResourceContentionFault"} ], - "documentation":"

Attaches one or more target groups to the specified Auto Scaling group.

To describe the target groups for an Auto Scaling group, use DescribeLoadBalancerTargetGroups. To detach the target group from the Auto Scaling group, use DetachLoadBalancerTargetGroups.

For more information, see Attach a Load Balancer to Your Auto Scaling Group in the Auto Scaling User Guide.

" + "documentation":"

Attaches one or more target groups to the specified Auto Scaling group.

To describe the target groups for an Auto Scaling group, use DescribeLoadBalancerTargetGroups. To detach the target group from the Auto Scaling group, use DetachLoadBalancerTargetGroups.

For more information, see Attach a Load Balancer to Your Auto Scaling Group in the Auto Scaling User Guide.

" }, "AttachLoadBalancers":{ "name":"AttachLoadBalancers", @@ -51,7 +51,7 @@ "errors":[ {"shape":"ResourceContentionFault"} ], - "documentation":"

Attaches one or more Classic load balancers to the specified Auto Scaling group.

To attach an Application load balancer instead, see AttachLoadBalancerTargetGroups.

To describe the load balancers for an Auto Scaling group, use DescribeLoadBalancers. To detach the load balancer from the Auto Scaling group, use DetachLoadBalancers.

For more information, see Attach a Load Balancer to Your Auto Scaling Group in the Auto Scaling User Guide.

" + "documentation":"

Attaches one or more Classic load balancers to the specified Auto Scaling group.

To attach an Application load balancer instead, see AttachLoadBalancerTargetGroups.

To describe the load balancers for an Auto Scaling group, use DescribeLoadBalancers. To detach the load balancer from the Auto Scaling group, use DetachLoadBalancers.

For more information, see Attach a Load Balancer to Your Auto Scaling Group in the Auto Scaling User Guide.

" }, "CompleteLifecycleAction":{ "name":"CompleteLifecycleAction", @@ -67,7 +67,7 @@ "errors":[ {"shape":"ResourceContentionFault"} ], - "documentation":"

Completes the lifecycle action for the specified token or instance with the specified result.

This step is a part of the procedure for adding a lifecycle hook to an Auto Scaling group:

  1. (Optional) Create a Lambda function and a rule that allows CloudWatch Events to invoke your Lambda function when Auto Scaling launches or terminates instances.

  2. (Optional) Create a notification target and an IAM role. The target can be either an Amazon SQS queue or an Amazon SNS topic. The role allows Auto Scaling to publish lifecycle notifications to the target.

  3. Create the lifecycle hook. Specify whether the hook is used when the instances launch or terminate.

  4. If you need more time, record the lifecycle action heartbeat to keep the instance in a pending state.

  5. If you finish before the timeout period ends, complete the lifecycle action.

For more information, see Auto Scaling Lifecycle in the Auto Scaling User Guide.

" + "documentation":"

Completes the lifecycle action for the specified token or instance with the specified result.

This step is a part of the procedure for adding a lifecycle hook to an Auto Scaling group:

  1. (Optional) Create a Lambda function and a rule that allows CloudWatch Events to invoke your Lambda function when Auto Scaling launches or terminates instances.

  2. (Optional) Create a notification target and an IAM role. The target can be either an Amazon SQS queue or an Amazon SNS topic. The role allows Auto Scaling to publish lifecycle notifications to the target.

  3. Create the lifecycle hook. Specify whether the hook is used when the instances launch or terminate.

  4. If you need more time, record the lifecycle action heartbeat to keep the instance in a pending state.

  5. If you finish before the timeout period ends, complete the lifecycle action.

For more information, see Auto Scaling Lifecycle in the Auto Scaling User Guide.

" }, "CreateAutoScalingGroup":{ "name":"CreateAutoScalingGroup", @@ -81,7 +81,7 @@ {"shape":"LimitExceededFault"}, {"shape":"ResourceContentionFault"} ], - "documentation":"

Creates an Auto Scaling group with the specified name and attributes.

If you exceed your maximum limit of Auto Scaling groups, which by default is 20 per region, the call fails. For information about viewing and updating this limit, see DescribeAccountLimits.

For more information, see Auto Scaling Groups in the Auto Scaling User Guide.

" + "documentation":"

Creates an Auto Scaling group with the specified name and attributes.

If you exceed your maximum limit of Auto Scaling groups, which by default is 20 per region, the call fails. For information about viewing and updating this limit, see DescribeAccountLimits.

For more information, see Auto Scaling Groups in the Auto Scaling User Guide.

" }, "CreateLaunchConfiguration":{ "name":"CreateLaunchConfiguration", @@ -95,7 +95,7 @@ {"shape":"LimitExceededFault"}, {"shape":"ResourceContentionFault"} ], - "documentation":"

Creates a launch configuration.

If you exceed your maximum limit of launch configurations, which by default is 100 per region, the call fails. For information about viewing and updating this limit, see DescribeAccountLimits.

For more information, see Launch Configurations in the Auto Scaling User Guide.

" + "documentation":"

Creates a launch configuration.

If you exceed your maximum limit of launch configurations, which by default is 100 per region, the call fails. For information about viewing and updating this limit, see DescribeAccountLimits.

For more information, see Launch Configurations in the Auto Scaling User Guide.

" }, "CreateOrUpdateTags":{ "name":"CreateOrUpdateTags", @@ -109,7 +109,7 @@ {"shape":"AlreadyExistsFault"}, {"shape":"ResourceContentionFault"} ], - "documentation":"

Creates or updates tags for the specified Auto Scaling group.

When you specify a tag with a key that already exists, the operation overwrites the previous tag definition, and you do not get an error message.

For more information, see Tagging Auto Scaling Groups and Instances in the Auto Scaling User Guide.

" + "documentation":"

Creates or updates tags for the specified Auto Scaling group.

When you specify a tag with a key that already exists, the operation overwrites the previous tag definition, and you do not get an error message.

For more information, see Tagging Auto Scaling Groups and Instances in the Auto Scaling User Guide.

" }, "DeleteAutoScalingGroup":{ "name":"DeleteAutoScalingGroup", @@ -505,7 +505,7 @@ "errors":[ {"shape":"ResourceContentionFault"} ], - "documentation":"

Removes one or more instances from the specified Auto Scaling group.

After the instances are detached, you can manage them independently from the rest of the Auto Scaling group.

If you do not specify the option to decrement the desired capacity, Auto Scaling launches instances to replace the ones that are detached.

If there is a Classic load balancer attached to the Auto Scaling group, the instances are deregistered from the load balancer. If there are target groups attached to the Auto Scaling group, the instances are deregistered from the target groups.

For more information, see Detach EC2 Instances from Your Auto Scaling Group in the Auto Scaling User Guide.

" + "documentation":"

Removes one or more instances from the specified Auto Scaling group.

After the instances are detached, you can manage them independently from the rest of the Auto Scaling group.

If you do not specify the option to decrement the desired capacity, Auto Scaling launches instances to replace the ones that are detached.

If there is a Classic load balancer attached to the Auto Scaling group, the instances are deregistered from the load balancer. If there are target groups attached to the Auto Scaling group, the instances are deregistered from the target groups.

For more information, see Detach EC2 Instances from Your Auto Scaling Group in the Auto Scaling User Guide.

" }, "DetachLoadBalancerTargetGroups":{ "name":"DetachLoadBalancerTargetGroups", @@ -561,7 +561,7 @@ "errors":[ {"shape":"ResourceContentionFault"} ], - "documentation":"

Enables group metrics for the specified Auto Scaling group. For more information, see Monitoring Your Auto Scaling Groups and Instances in the Auto Scaling User Guide.

" + "documentation":"

Enables group metrics for the specified Auto Scaling group. For more information, see Monitoring Your Auto Scaling Groups and Instances in the Auto Scaling User Guide.

" }, "EnterStandby":{ "name":"EnterStandby", @@ -577,7 +577,7 @@ "errors":[ {"shape":"ResourceContentionFault"} ], - "documentation":"

Moves the specified instances into Standby mode.

For more information, see Auto Scaling Lifecycle in the Auto Scaling User Guide.

" + "documentation":"

Moves the specified instances into Standby mode.

For more information, see Auto Scaling Lifecycle in the Auto Scaling User Guide.

" }, "ExecutePolicy":{ "name":"ExecutePolicy", @@ -606,7 +606,7 @@ "errors":[ {"shape":"ResourceContentionFault"} ], - "documentation":"

Moves the specified instances out of Standby mode.

For more information, see Auto Scaling Lifecycle in the Auto Scaling User Guide.

" + "documentation":"

Moves the specified instances out of Standby mode.

For more information, see Auto Scaling Lifecycle in the Auto Scaling User Guide.

" }, "PutLifecycleHook":{ "name":"PutLifecycleHook", @@ -623,7 +623,7 @@ {"shape":"LimitExceededFault"}, {"shape":"ResourceContentionFault"} ], - "documentation":"

Creates or updates a lifecycle hook for the specified Auto Scaling Group.

A lifecycle hook tells Auto Scaling that you want to perform an action on an instance that is not actively in service; for example, either when the instance launches or before the instance terminates.

This step is a part of the procedure for adding a lifecycle hook to an Auto Scaling group:

  1. (Optional) Create a Lambda function and a rule that allows CloudWatch Events to invoke your Lambda function when Auto Scaling launches or terminates instances.

  2. (Optional) Create a notification target and an IAM role. The target can be either an Amazon SQS queue or an Amazon SNS topic. The role allows Auto Scaling to publish lifecycle notifications to the target.

  3. Create the lifecycle hook. Specify whether the hook is used when the instances launch or terminate.

  4. If you need more time, record the lifecycle action heartbeat to keep the instance in a pending state.

  5. If you finish before the timeout period ends, complete the lifecycle action.

For more information, see Auto Scaling Lifecycle in the Auto Scaling User Guide.

If you exceed your maximum limit of lifecycle hooks, which by default is 50 per Auto Scaling group, the call fails. For information about updating this limit, see AWS Service Limits in the Amazon Web Services General Reference.

" + "documentation":"

Creates or updates a lifecycle hook for the specified Auto Scaling Group.

A lifecycle hook tells Auto Scaling that you want to perform an action on an instance that is not actively in service; for example, either when the instance launches or before the instance terminates.

This step is a part of the procedure for adding a lifecycle hook to an Auto Scaling group:

  1. (Optional) Create a Lambda function and a rule that allows CloudWatch Events to invoke your Lambda function when Auto Scaling launches or terminates instances.

  2. (Optional) Create a notification target and an IAM role. The target can be either an Amazon SQS queue or an Amazon SNS topic. The role allows Auto Scaling to publish lifecycle notifications to the target.

  3. Create the lifecycle hook. Specify whether the hook is used when the instances launch or terminate.

  4. If you need more time, record the lifecycle action heartbeat to keep the instance in a pending state.

  5. If you finish before the timeout period ends, complete the lifecycle action.

For more information, see Auto Scaling Lifecycle Hooks in the Auto Scaling User Guide.

If you exceed your maximum limit of lifecycle hooks, which by default is 50 per Auto Scaling group, the call fails. For information about updating this limit, see AWS Service Limits in the Amazon Web Services General Reference.

" }, "PutNotificationConfiguration":{ "name":"PutNotificationConfiguration", @@ -636,7 +636,7 @@ {"shape":"LimitExceededFault"}, {"shape":"ResourceContentionFault"} ], - "documentation":"

Configures an Auto Scaling group to send notifications when specified events take place. Subscribers to the specified topic can have messages delivered to an endpoint such as a web server or an email address.

This configuration overwrites any existing configuration.

For more information see Getting SNS Notifications When Your Auto Scaling Group Scales in the Auto Scaling User Guide.

" + "documentation":"

Configures an Auto Scaling group to send notifications when specified events take place. Subscribers to the specified topic can have messages delivered to an endpoint such as a web server or an email address.

This configuration overwrites any existing configuration.

For more information see Getting SNS Notifications When Your Auto Scaling Group Scales in the Auto Scaling User Guide.

" }, "PutScalingPolicy":{ "name":"PutScalingPolicy", @@ -667,7 +667,7 @@ {"shape":"LimitExceededFault"}, {"shape":"ResourceContentionFault"} ], - "documentation":"

Creates or updates a scheduled scaling action for an Auto Scaling group. When updating a scheduled scaling action, if you leave a parameter unspecified, the corresponding value remains unchanged in the affected Auto Scaling group.

For more information, see Scheduled Scaling in the Auto Scaling User Guide.

" + "documentation":"

Creates or updates a scheduled scaling action for an Auto Scaling group. When updating a scheduled scaling action, if you leave a parameter unspecified, the corresponding value remains unchanged.

For more information, see Scheduled Scaling in the Auto Scaling User Guide.

" }, "RecordLifecycleActionHeartbeat":{ "name":"RecordLifecycleActionHeartbeat", @@ -683,7 +683,7 @@ "errors":[ {"shape":"ResourceContentionFault"} ], - "documentation":"

Records a heartbeat for the lifecycle action associated with the specified token or instance. This extends the timeout by the length of time defined using PutLifecycleHook.

This step is a part of the procedure for adding a lifecycle hook to an Auto Scaling group:

  1. (Optional) Create a Lambda function and a rule that allows CloudWatch Events to invoke your Lambda function when Auto Scaling launches or terminates instances.

  2. (Optional) Create a notification target and an IAM role. The target can be either an Amazon SQS queue or an Amazon SNS topic. The role allows Auto Scaling to publish lifecycle notifications to the target.

  3. Create the lifecycle hook. Specify whether the hook is used when the instances launch or terminate.

  4. If you need more time, record the lifecycle action heartbeat to keep the instance in a pending state.

  5. If you finish before the timeout period ends, complete the lifecycle action.

For more information, see Auto Scaling Lifecycle in the Auto Scaling User Guide.

" + "documentation":"

Records a heartbeat for the lifecycle action associated with the specified token or instance. This extends the timeout by the length of time defined using PutLifecycleHook.

This step is a part of the procedure for adding a lifecycle hook to an Auto Scaling group:

  1. (Optional) Create a Lambda function and a rule that allows CloudWatch Events to invoke your Lambda function when Auto Scaling launches or terminates instances.

  2. (Optional) Create a notification target and an IAM role. The target can be either an Amazon SQS queue or an Amazon SNS topic. The role allows Auto Scaling to publish lifecycle notifications to the target.

  3. Create the lifecycle hook. Specify whether the hook is used when the instances launch or terminate.

  4. If you need more time, record the lifecycle action heartbeat to keep the instance in a pending state.

  5. If you finish before the timeout period ends, complete the lifecycle action.

For more information, see Auto Scaling Lifecycle in the Auto Scaling User Guide.

" }, "ResumeProcesses":{ "name":"ResumeProcesses", @@ -696,7 +696,7 @@ {"shape":"ResourceInUseFault"}, {"shape":"ResourceContentionFault"} ], - "documentation":"

Resumes the specified suspended Auto Scaling processes, or all suspended process, for the specified Auto Scaling group.

For more information, see Suspending and Resuming Auto Scaling Processes in the Auto Scaling User Guide.

" + "documentation":"

Resumes the specified suspended Auto Scaling processes, or all suspended process, for the specified Auto Scaling group.

For more information, see Suspending and Resuming Auto Scaling Processes in the Auto Scaling User Guide.

" }, "SetDesiredCapacity":{ "name":"SetDesiredCapacity", @@ -709,7 +709,7 @@ {"shape":"ScalingActivityInProgressFault"}, {"shape":"ResourceContentionFault"} ], - "documentation":"

Sets the size of the specified Auto Scaling group.

For more information about desired capacity, see What Is Auto Scaling? in the Auto Scaling User Guide.

" + "documentation":"

Sets the size of the specified Auto Scaling group.

For more information about desired capacity, see What Is Auto Scaling? in the Auto Scaling User Guide.

" }, "SetInstanceHealth":{ "name":"SetInstanceHealth", @@ -721,7 +721,7 @@ "errors":[ {"shape":"ResourceContentionFault"} ], - "documentation":"

Sets the health status of the specified instance.

For more information, see Health Checks in the Auto Scaling User Guide.

" + "documentation":"

Sets the health status of the specified instance.

For more information, see Health Checks in the Auto Scaling User Guide.

" }, "SetInstanceProtection":{ "name":"SetInstanceProtection", @@ -738,7 +738,7 @@ {"shape":"LimitExceededFault"}, {"shape":"ResourceContentionFault"} ], - "documentation":"

Updates the instance protection settings of the specified instances.

For more information, see Instance Protection in the Auto Scaling User Guide.

" + "documentation":"

Updates the instance protection settings of the specified instances.

For more information, see Instance Protection in the Auto Scaling User Guide.

" }, "SuspendProcesses":{ "name":"SuspendProcesses", @@ -751,7 +751,7 @@ {"shape":"ResourceInUseFault"}, {"shape":"ResourceContentionFault"} ], - "documentation":"

Suspends the specified Auto Scaling processes, or all processes, for the specified Auto Scaling group.

Note that if you suspend either the Launch or Terminate process types, it can prevent other process types from functioning properly.

To resume processes that have been suspended, use ResumeProcesses.

For more information, see Suspending and Resuming Auto Scaling Processes in the Auto Scaling User Guide.

" + "documentation":"

Suspends the specified Auto Scaling processes, or all processes, for the specified Auto Scaling group.

Note that if you suspend either the Launch or Terminate process types, it can prevent other process types from functioning properly.

To resume processes that have been suspended, use ResumeProcesses.

For more information, see Suspending and Resuming Auto Scaling Processes in the Auto Scaling User Guide.

" }, "TerminateInstanceInAutoScalingGroup":{ "name":"TerminateInstanceInAutoScalingGroup", @@ -1162,7 +1162,7 @@ }, "LifecycleState":{ "shape":"XmlStringMaxLen32", - "documentation":"

The lifecycle state for the instance. For more information, see Auto Scaling Lifecycle in the Auto Scaling User Guide.

" + "documentation":"

The lifecycle state for the instance. For more information, see Auto Scaling Lifecycle in the Auto Scaling User Guide.

" }, "HealthStatus":{ "shape":"XmlStringMaxLen32", @@ -1310,7 +1310,7 @@ }, "InstanceId":{ "shape":"XmlStringMaxLen19", - "documentation":"

The ID of the instance used to create a launch configuration for the group. Alternatively, specify a launch configuration instead of an EC2 instance.

When you specify an ID of an instance, Auto Scaling creates a new launch configuration and associates it with the group. This launch configuration derives its attributes from the specified instance, with the exception of the block device mapping.

For more information, see Create an Auto Scaling Group Using an EC2 Instance in the Auto Scaling User Guide.

" + "documentation":"

The ID of the instance used to create a launch configuration for the group. Alternatively, specify a launch configuration instead of an EC2 instance.

When you specify an ID of an instance, Auto Scaling creates a new launch configuration and associates it with the group. This launch configuration derives its attributes from the specified instance, with the exception of the block device mapping.

For more information, see Create an Auto Scaling Group Using an EC2 Instance in the Auto Scaling User Guide.

" }, "MinSize":{ "shape":"AutoScalingGroupMinSize", @@ -1326,7 +1326,7 @@ }, "DefaultCooldown":{ "shape":"Cooldown", - "documentation":"

The amount of time, in seconds, after a scaling activity completes before another scaling activity can start. The default is 300.

For more information, see Auto Scaling Cooldowns in the Auto Scaling User Guide.

" + "documentation":"

The amount of time, in seconds, after a scaling activity completes before another scaling activity can start. The default is 300.

For more information, see Auto Scaling Cooldowns in the Auto Scaling User Guide.

" }, "AvailabilityZones":{ "shape":"AvailabilityZones", @@ -1334,7 +1334,7 @@ }, "LoadBalancerNames":{ "shape":"LoadBalancerNames", - "documentation":"

One or more Classic load balancers. To specify an Application load balancer, use TargetGroupARNs instead.

For more information, see Using a Load Balancer With an Auto Scaling Group in the Auto Scaling User Guide.

" + "documentation":"

One or more Classic load balancers. To specify an Application load balancer, use TargetGroupARNs instead.

For more information, see Using a Load Balancer With an Auto Scaling Group in the Auto Scaling User Guide.

" }, "TargetGroupARNs":{ "shape":"TargetGroupARNs", @@ -1342,11 +1342,11 @@ }, "HealthCheckType":{ "shape":"XmlStringMaxLen32", - "documentation":"

The service to use for the health checks. The valid values are EC2 and ELB.

By default, health checks use Amazon EC2 instance status checks to determine the health of an instance. For more information, see Health Checks in the Auto Scaling User Guide.

" + "documentation":"

The service to use for the health checks. The valid values are EC2 and ELB.

By default, health checks use Amazon EC2 instance status checks to determine the health of an instance. For more information, see Health Checks in the Auto Scaling User Guide.

" }, "HealthCheckGracePeriod":{ "shape":"HealthCheckGracePeriod", - "documentation":"

The amount of time, in seconds, that Auto Scaling waits before checking the health status of an EC2 instance that has come into service. During this time, any health check failures for the instance are ignored. The default is 0.

This parameter is required if you are adding an ELB health check.

For more information, see Health Checks in the Auto Scaling User Guide.

" + "documentation":"

The amount of time, in seconds, that Auto Scaling waits before checking the health status of an EC2 instance that has come into service. During this time, any health check failures for the instance are ignored. The default is 0.

This parameter is required if you are adding an ELB health check.

For more information, see Health Checks in the Auto Scaling User Guide.

" }, "PlacementGroup":{ "shape":"XmlStringMaxLen255", @@ -1354,11 +1354,11 @@ }, "VPCZoneIdentifier":{ "shape":"XmlStringMaxLen2047", - "documentation":"

A comma-separated list of subnet identifiers for your virtual private cloud (VPC).

If you specify subnets and Availability Zones with this call, ensure that the subnets' Availability Zones match the Availability Zones specified.

For more information, see Launching Auto Scaling Instances in a VPC in the Auto Scaling User Guide.

" + "documentation":"

A comma-separated list of subnet identifiers for your virtual private cloud (VPC).

If you specify subnets and Availability Zones with this call, ensure that the subnets' Availability Zones match the Availability Zones specified.

For more information, see Launching Auto Scaling Instances in a VPC in the Auto Scaling User Guide.

" }, "TerminationPolicies":{ "shape":"TerminationPolicies", - "documentation":"

One or more termination policies used to select the instance to terminate. These policies are executed in the order that they are listed.

For more information, see Controlling Which Instances Auto Scaling Terminates During Scale In in the Auto Scaling User Guide.

" + "documentation":"

One or more termination policies used to select the instance to terminate. These policies are executed in the order that they are listed.

For more information, see Controlling Which Instances Auto Scaling Terminates During Scale In in the Auto Scaling User Guide.

" }, "NewInstancesProtectedFromScaleIn":{ "shape":"InstanceProtected", @@ -1366,7 +1366,7 @@ }, "Tags":{ "shape":"Tags", - "documentation":"

One or more tags.

For more information, see Tagging Auto Scaling Groups and Instances in the Auto Scaling User Guide.

" + "documentation":"

One or more tags.

For more information, see Tagging Auto Scaling Groups and Instances in the Auto Scaling User Guide.

" } }, "documentation":"

Contains the parameters for CreateAutoScalingGroup.

" @@ -1405,7 +1405,7 @@ }, "InstanceId":{ "shape":"XmlStringMaxLen19", - "documentation":"

The ID of the instance to use to create the launch configuration.

The new launch configuration derives attributes from the instance, with the exception of the block device mapping.

To create a launch configuration with a block device mapping or override any other instance attributes, specify them as part of the same request.

For more information, see Create a Launch Configuration Using an EC2 Instance in the Auto Scaling User Guide.

" + "documentation":"

The ID of the instance to use to create the launch configuration.

The new launch configuration derives attributes from the instance, with the exception of the block device mapping.

To create a launch configuration with a block device mapping or override any other instance attributes, specify them as part of the same request.

For more information, see Create a Launch Configuration Using an EC2 Instance in the Auto Scaling User Guide.

" }, "InstanceType":{ "shape":"XmlStringMaxLen255", @@ -1429,11 +1429,11 @@ }, "SpotPrice":{ "shape":"SpotPrice", - "documentation":"

The maximum hourly price to be paid for any Spot Instance launched to fulfill the request. Spot Instances are launched when the price you specify exceeds the current Spot market price. For more information, see Launching Spot Instances in Your Auto Scaling Group in the Auto Scaling User Guide.

" + "documentation":"

The maximum hourly price to be paid for any Spot Instance launched to fulfill the request. Spot Instances are launched when the price you specify exceeds the current Spot market price. For more information, see Launching Spot Instances in Your Auto Scaling Group in the Auto Scaling User Guide.

" }, "IamInstanceProfile":{ "shape":"XmlStringMaxLen1600", - "documentation":"

The name or the Amazon Resource Name (ARN) of the instance profile associated with the IAM role for the instance.

EC2 instances launched with an IAM role will automatically have AWS security credentials available. You can use IAM roles with Auto Scaling to automatically enable applications running on your EC2 instances to securely access other AWS resources. For more information, see Launch Auto Scaling Instances with an IAM Role in the Auto Scaling User Guide.

" + "documentation":"

The name or the Amazon Resource Name (ARN) of the instance profile associated with the IAM role for the instance.

EC2 instances launched with an IAM role will automatically have AWS security credentials available. You can use IAM roles with Auto Scaling to automatically enable applications running on your EC2 instances to securely access other AWS resources. For more information, see Launch Auto Scaling Instances with an IAM Role in the Auto Scaling User Guide.

" }, "EbsOptimized":{ "shape":"EbsOptimized", @@ -1441,11 +1441,11 @@ }, "AssociatePublicIpAddress":{ "shape":"AssociatePublicIpAddress", - "documentation":"

Used for groups that launch instances into a virtual private cloud (VPC). Specifies whether to assign a public IP address to each instance. For more information, see Launching Auto Scaling Instances in a VPC in the Auto Scaling User Guide.

If you specify this parameter, be sure to specify at least one subnet when you create your group.

Default: If the instance is launched into a default subnet, the default is true. If the instance is launched into a nondefault subnet, the default is false. For more information, see Supported Platforms in the Amazon Elastic Compute Cloud User Guide.

" + "documentation":"

Used for groups that launch instances into a virtual private cloud (VPC). Specifies whether to assign a public IP address to each instance. For more information, see Launching Auto Scaling Instances in a VPC in the Auto Scaling User Guide.

If you specify this parameter, be sure to specify at least one subnet when you create your group.

Default: If the instance is launched into a default subnet, the default is true. If the instance is launched into a nondefault subnet, the default is false. For more information, see Supported Platforms in the Amazon Elastic Compute Cloud User Guide.

" }, "PlacementTenancy":{ "shape":"XmlStringMaxLen64", - "documentation":"

The tenancy of the instance. An instance with a tenancy of dedicated runs on single-tenant hardware and can only be launched into a VPC.

You must set the value of this parameter to dedicated if want to launch Dedicated Instances into a shared tenancy VPC (VPC with instance placement tenancy attribute set to default).

If you specify this parameter, be sure to specify at least one subnet when you create your group.

For more information, see Launching Auto Scaling Instances in a VPC in the Auto Scaling User Guide.

Valid values: default | dedicated

" + "documentation":"

The tenancy of the instance. An instance with a tenancy of dedicated runs on single-tenant hardware and can only be launched into a VPC.

You must set the value of this parameter to dedicated if want to launch Dedicated Instances into a shared tenancy VPC (VPC with instance placement tenancy attribute set to default).

If you specify this parameter, be sure to specify at least one subnet when you create your group.

For more information, see Launching Auto Scaling Instances in a VPC in the Auto Scaling User Guide.

Valid values: default | dedicated

" } }, "documentation":"

Contains the parameters for CreateLaunchConfiguration.

" @@ -2087,7 +2087,7 @@ }, "HonorCooldown":{ "shape":"HonorCooldown", - "documentation":"

If this parameter is true, Auto Scaling waits for the cooldown period to complete before executing the policy. Otherwise, Auto Scaling executes the policy without waiting for the cooldown period to complete.

This parameter is not supported if the policy type is StepScaling.

For more information, see Auto Scaling Cooldowns in the Auto Scaling User Guide.

" + "documentation":"

If this parameter is true, Auto Scaling waits for the cooldown period to complete before executing the policy. Otherwise, Auto Scaling executes the policy without waiting for the cooldown period to complete.

This parameter is not supported if the policy type is StepScaling.

For more information, see Auto Scaling Cooldowns in the Auto Scaling User Guide.

" }, "MetricValue":{ "shape":"MetricScale", @@ -2400,14 +2400,14 @@ }, "GlobalTimeout":{ "shape":"GlobalTimeout", - "documentation":"

The maximum time, in seconds, that an instance can remain in a Pending:Wait or Terminating:Wait state. The default is 172800 seconds (48 hours).

" + "documentation":"

The maximum time, in seconds, that an instance can remain in a Pending:Wait or Terminating:Wait state. The maximum is 172800 seconds (48 hours) or 100 times HeartbeatTimeout, whichever is smaller.

" }, "DefaultResult":{ "shape":"LifecycleActionResult", "documentation":"

Defines the action the Auto Scaling group should take when the lifecycle hook timeout elapses or if an unexpected failure occurs. The valid values are CONTINUE and ABANDON. The default value is CONTINUE.

" } }, - "documentation":"

Describes a lifecycle hook, which tells Auto Scaling that you want to perform an action when an instance launches or terminates. When you have a lifecycle hook in place, the Auto Scaling group will either:

For more information, see Auto Scaling Lifecycle in the Auto Scaling User Guide.

" + "documentation":"

Describes a lifecycle hook, which tells Auto Scaling that you want to perform an action when an instance launches or terminates. When you have a lifecycle hook in place, the Auto Scaling group will either:

For more information, see Auto Scaling Lifecycle in the Auto Scaling User Guide.

" }, "LifecycleHookNames":{ "type":"list", @@ -2611,7 +2611,7 @@ "documentation":"

One of the following processes:

" } }, - "documentation":"

Describes a process type.

For more information, see Auto Scaling Processes in the Auto Scaling User Guide.

" + "documentation":"

Describes a process type.

For more information, see Auto Scaling Processes in the Auto Scaling User Guide.

" }, "Processes":{ "type":"list", @@ -2661,7 +2661,7 @@ }, "NotificationTargetARN":{ "shape":"NotificationTargetResourceName", - "documentation":"

The ARN of the notification target that Auto Scaling will use to notify you when an instance is in the transition state for the lifecycle hook. This target can be either an SQS queue or an SNS topic. If you specify an empty string, this overrides the current ARN.

The notification messages sent to the target include the following information:

This operation uses the JSON format when sending notifications to an Amazon SQS queue, and an email key/value pair format when sending notifications to an Amazon SNS topic.

When you specify a notification target, Auto Scaling sends it a test message. Test messages contains the following additional key/value pair: \"Event\": \"autoscaling:TEST_NOTIFICATION\".

" + "documentation":"

The ARN of the notification target that Auto Scaling will use to notify you when an instance is in the transition state for the lifecycle hook. This target can be either an SQS queue or an SNS topic. If you specify an empty string, this overrides the current ARN.

This operation uses the JSON format when sending notifications to an Amazon SQS queue, and an email key/value pair format when sending notifications to an Amazon SNS topic.

When you specify a notification target, Auto Scaling sends it a test message. Test messages contains the following additional key/value pair: \"Event\": \"autoscaling:TEST_NOTIFICATION\".

" }, "NotificationMetadata":{ "shape":"XmlStringMaxLen1023", @@ -2723,7 +2723,7 @@ }, "AdjustmentType":{ "shape":"XmlStringMaxLen255", - "documentation":"

The adjustment type. Valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity.

For more information, see Dynamic Scaling in the Auto Scaling User Guide.

" + "documentation":"

The adjustment type. Valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity.

For more information, see Dynamic Scaling in the Auto Scaling User Guide.

" }, "MinAdjustmentStep":{ "shape":"MinAdjustmentStep", @@ -2739,7 +2739,7 @@ }, "Cooldown":{ "shape":"Cooldown", - "documentation":"

The amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start. If this parameter is not specified, the default cooldown period for the group applies.

This parameter is not supported unless the policy type is SimpleScaling.

For more information, see Auto Scaling Cooldowns in the Auto Scaling User Guide.

" + "documentation":"

The amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start. If this parameter is not specified, the default cooldown period for the group applies.

This parameter is not supported unless the policy type is SimpleScaling.

For more information, see Auto Scaling Cooldowns in the Auto Scaling User Guide.

" }, "MetricAggregationType":{ "shape":"XmlStringMaxLen32", @@ -2777,15 +2777,15 @@ }, "StartTime":{ "shape":"TimestampType", - "documentation":"

The time for this action to start, in \"YYYY-MM-DDThh:mm:ssZ\" format in UTC/GMT only (for example, 2014-06-01T00:00:00Z).

If you try to schedule your action in the past, Auto Scaling returns an error message.

When StartTime and EndTime are specified with Recurrence, they form the boundaries of when the recurring action starts and stops.

" + "documentation":"

The time for this action to start, in \"YYYY-MM-DDThh:mm:ssZ\" format in UTC/GMT only (for example, 2014-06-01T00:00:00Z).

If you specify Recurrence and StartTime, Auto Scaling performs the action at this time, and then performs the action based on the specified recurrence.

If you try to schedule your action in the past, Auto Scaling returns an error message.

" }, "EndTime":{ "shape":"TimestampType", - "documentation":"

The time for this action to end.

" + "documentation":"

The time for the recurring schedule to end. Auto Scaling does not perform the action after this time.

" }, "Recurrence":{ "shape":"XmlStringMaxLen255", - "documentation":"

The time when recurring future actions will start. Start time is specified by the user following the Unix cron syntax format. For more information, see Cron in Wikipedia.

When StartTime and EndTime are specified with Recurrence, they form the boundaries of when the recurring action will start and stop.

" + "documentation":"

The recurring schedule for this action, in Unix cron syntax format. For more information, see Cron in Wikipedia.

" }, "MinSize":{ "shape":"AutoScalingGroupMinSize", @@ -3315,7 +3315,7 @@ }, "DefaultCooldown":{ "shape":"Cooldown", - "documentation":"

The amount of time, in seconds, after a scaling activity completes before another scaling activity can start. The default is 300.

For more information, see Auto Scaling Cooldowns in the Auto Scaling User Guide.

" + "documentation":"

The amount of time, in seconds, after a scaling activity completes before another scaling activity can start. The default is 300.

For more information, see Auto Scaling Cooldowns in the Auto Scaling User Guide.

" }, "AvailabilityZones":{ "shape":"AvailabilityZones", @@ -3327,7 +3327,7 @@ }, "HealthCheckGracePeriod":{ "shape":"HealthCheckGracePeriod", - "documentation":"

The amount of time, in seconds, that Auto Scaling waits before checking the health status of an EC2 instance that has come into service. The default is 0.

For more information, see Health Checks in the Auto Scaling User Guide.

" + "documentation":"

The amount of time, in seconds, that Auto Scaling waits before checking the health status of an EC2 instance that has come into service. The default is 0.

For more information, see Health Checks in the Auto Scaling User Guide.

" }, "PlacementGroup":{ "shape":"XmlStringMaxLen255", @@ -3335,11 +3335,11 @@ }, "VPCZoneIdentifier":{ "shape":"XmlStringMaxLen2047", - "documentation":"

The ID of the subnet, if you are launching into a VPC. You can specify several subnets in a comma-separated list.

When you specify VPCZoneIdentifier with AvailabilityZones, ensure that the subnets' Availability Zones match the values you specify for AvailabilityZones.

For more information, see Launching Auto Scaling Instances in a VPC in the Auto Scaling User Guide.

" + "documentation":"

The ID of the subnet, if you are launching into a VPC. You can specify several subnets in a comma-separated list.

When you specify VPCZoneIdentifier with AvailabilityZones, ensure that the subnets' Availability Zones match the values you specify for AvailabilityZones.

For more information, see Launching Auto Scaling Instances in a VPC in the Auto Scaling User Guide.

" }, "TerminationPolicies":{ "shape":"TerminationPolicies", - "documentation":"

A standalone termination policy or a list of termination policies used to select the instance to terminate. The policies are executed in the order that they are listed.

For more information, see Controlling Which Instances Auto Scaling Terminates During Scale In in the Auto Scaling User Guide.

" + "documentation":"

A standalone termination policy or a list of termination policies used to select the instance to terminate. The policies are executed in the order that they are listed.

For more information, see Controlling Which Instances Auto Scaling Terminates During Scale In in the Auto Scaling User Guide.

" }, "NewInstancesProtectedFromScaleIn":{ "shape":"InstanceProtected", diff --git a/botocore/data/budgets/2016-10-20/service-2.json b/botocore/data/budgets/2016-10-20/service-2.json new file mode 100755 index 00000000..3c0a054b --- /dev/null +++ b/botocore/data/budgets/2016-10-20/service-2.json @@ -0,0 +1,777 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2016-10-20", + "endpointPrefix":"budgets", + "jsonVersion":"1.1", + "protocol":"json", + "serviceAbbreviation":"AWSBudgets", + "serviceFullName":"AWS Budgets", + "signatureVersion":"v4", + "targetPrefix":"AWSBudgetServiceGateway" + }, + "operations":{ + "CreateBudget":{ + "name":"CreateBudget", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateBudgetRequest"}, + "output":{"shape":"CreateBudgetResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"InternalErrorException"}, + {"shape":"CreationLimitExceededException"}, + {"shape":"DuplicateRecordException"} + ], + "documentation":"Create a new budget" + }, + "CreateNotification":{ + "name":"CreateNotification", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateNotificationRequest"}, + "output":{"shape":"CreateNotificationResponse"}, + "errors":[ + {"shape":"InternalErrorException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotFoundException"}, + {"shape":"CreationLimitExceededException"}, + {"shape":"DuplicateRecordException"} + ], + "documentation":"Create a new Notification with subscribers for a budget" + }, + "CreateSubscriber":{ + "name":"CreateSubscriber", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateSubscriberRequest"}, + "output":{"shape":"CreateSubscriberResponse"}, + "errors":[ + {"shape":"InternalErrorException"}, + {"shape":"InvalidParameterException"}, + {"shape":"CreationLimitExceededException"}, + {"shape":"DuplicateRecordException"} + ], + "documentation":"Create a new Subscriber for a notification" + }, + "DeleteBudget":{ + "name":"DeleteBudget", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteBudgetRequest"}, + "output":{"shape":"DeleteBudgetResponse"}, + "errors":[ + {"shape":"InternalErrorException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotFoundException"} + ], + "documentation":"Delete a budget and related notifications" + }, + "DeleteNotification":{ + "name":"DeleteNotification", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteNotificationRequest"}, + "output":{"shape":"DeleteNotificationResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"InternalErrorException"}, + {"shape":"NotFoundException"} + ], + "documentation":"Delete a notification and related subscribers" + }, + "DeleteSubscriber":{ + "name":"DeleteSubscriber", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteSubscriberRequest"}, + "output":{"shape":"DeleteSubscriberResponse"}, + "errors":[ + {"shape":"InternalErrorException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotFoundException"} + ], + "documentation":"Delete a Subscriber for a notification" + }, + "DescribeBudget":{ + "name":"DescribeBudget", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeBudgetRequest"}, + "output":{"shape":"DescribeBudgetResponse"}, + "errors":[ + {"shape":"InternalErrorException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotFoundException"} + ], + "documentation":"Get a single budget" + }, + "DescribeBudgets":{ + "name":"DescribeBudgets", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeBudgetsRequest"}, + "output":{"shape":"DescribeBudgetsResponse"}, + "errors":[ + {"shape":"InternalErrorException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotFoundException"}, + {"shape":"InvalidNextTokenException"}, + {"shape":"ExpiredNextTokenException"} + ], + "documentation":"Get all budgets for an account" + }, + "DescribeNotificationsForBudget":{ + "name":"DescribeNotificationsForBudget", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeNotificationsForBudgetRequest"}, + "output":{"shape":"DescribeNotificationsForBudgetResponse"}, + "errors":[ + {"shape":"InternalErrorException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotFoundException"}, + {"shape":"InvalidNextTokenException"}, + {"shape":"ExpiredNextTokenException"} + ], + "documentation":"Get notifications of a budget" + }, + "DescribeSubscribersForNotification":{ + "name":"DescribeSubscribersForNotification", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeSubscribersForNotificationRequest"}, + "output":{"shape":"DescribeSubscribersForNotificationResponse"}, + "errors":[ + {"shape":"InternalErrorException"}, + {"shape":"NotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidNextTokenException"}, + {"shape":"ExpiredNextTokenException"} + ], + "documentation":"Get subscribers of a notification" + }, + "UpdateBudget":{ + "name":"UpdateBudget", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateBudgetRequest"}, + "output":{"shape":"UpdateBudgetResponse"}, + "errors":[ + {"shape":"InternalErrorException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotFoundException"} + ], + "documentation":"Update the information of a budget already created" + }, + "UpdateNotification":{ + "name":"UpdateNotification", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateNotificationRequest"}, + "output":{"shape":"UpdateNotificationResponse"}, + "errors":[ + {"shape":"InternalErrorException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotFoundException"} + ], + "documentation":"Update the information about a notification already created" + }, + "UpdateSubscriber":{ + "name":"UpdateSubscriber", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateSubscriberRequest"}, + "output":{"shape":"UpdateSubscriberResponse"}, + "errors":[ + {"shape":"InternalErrorException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotFoundException"} + ], + "documentation":"Update a subscriber" + } + }, + "shapes":{ + "AccountId":{ + "type":"string", + "documentation":"Account Id of the customer. It should be a 12 digit number.", + "max":12, + "min":12 + }, + "Budget":{ + "type":"structure", + "required":[ + "BudgetName", + "BudgetLimit", + "CostTypes", + "TimeUnit", + "TimePeriod", + "BudgetType" + ], + "members":{ + "BudgetName":{"shape":"BudgetName"}, + "BudgetLimit":{"shape":"Spend"}, + "CostFilters":{"shape":"CostFilters"}, + "CostTypes":{"shape":"CostTypes"}, + "TimeUnit":{"shape":"TimeUnit"}, + "TimePeriod":{"shape":"TimePeriod"}, + "CalculatedSpend":{"shape":"CalculatedSpend"}, + "BudgetType":{"shape":"BudgetType"} + }, + "documentation":"AWS Budget model" + }, + "BudgetName":{ + "type":"string", + "documentation":"A string represents the budget name. No \":\" character is allowed.", + "max":100, + "pattern":"[^:]+" + }, + "BudgetType":{ + "type":"string", + "documentation":"The type of a budget. Can be COST or USAGE.", + "enum":[ + "USAGE", + "COST" + ] + }, + "Budgets":{ + "type":"list", + "member":{"shape":"Budget"}, + "documentation":"A list of budgets" + }, + "CalculatedSpend":{ + "type":"structure", + "required":["ActualSpend"], + "members":{ + "ActualSpend":{"shape":"Spend"}, + "ForecastedSpend":{"shape":"Spend"} + }, + "documentation":"A structure holds the actual and forecasted spend for a budget." + }, + "ComparisonOperator":{ + "type":"string", + "documentation":"The comparison operator of a notification. Currently we support less than, equal to and greater than.", + "enum":[ + "GREATER_THAN", + "LESS_THAN", + "EQUAL_TO" + ] + }, + "CostFilters":{ + "type":"map", + "key":{"shape":"GenericString"}, + "value":{"shape":"DimensionValues"}, + "documentation":"A map represents the cost filters applied to the budget." + }, + "CostTypes":{ + "type":"structure", + "required":[ + "IncludeTax", + "IncludeSubscription", + "UseBlended" + ], + "members":{ + "IncludeTax":{"shape":"GenericBoolean"}, + "IncludeSubscription":{"shape":"GenericBoolean"}, + "UseBlended":{"shape":"GenericBoolean"} + }, + "documentation":"This includes the options for getting the cost of a budget." + }, + "CreateBudgetRequest":{ + "type":"structure", + "required":[ + "AccountId", + "Budget" + ], + "members":{ + "AccountId":{"shape":"AccountId"}, + "Budget":{"shape":"Budget"}, + "NotificationsWithSubscribers":{"shape":"NotificationWithSubscribersList"} + }, + "documentation":"Request of CreateBudget" + }, + "CreateBudgetResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"Response of CreateBudget" + }, + "CreateNotificationRequest":{ + "type":"structure", + "required":[ + "AccountId", + "BudgetName", + "Notification", + "Subscribers" + ], + "members":{ + "AccountId":{"shape":"AccountId"}, + "BudgetName":{"shape":"BudgetName"}, + "Notification":{"shape":"Notification"}, + "Subscribers":{"shape":"Subscribers"} + }, + "documentation":"Request of CreateNotification" + }, + "CreateNotificationResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"Response of CreateNotification" + }, + "CreateSubscriberRequest":{ + "type":"structure", + "required":[ + "AccountId", + "BudgetName", + "Notification", + "Subscriber" + ], + "members":{ + "AccountId":{"shape":"AccountId"}, + "BudgetName":{"shape":"BudgetName"}, + "Notification":{"shape":"Notification"}, + "Subscriber":{"shape":"Subscriber"} + }, + "documentation":"Request of CreateSubscriber" + }, + "CreateSubscriberResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"Response of CreateSubscriber" + }, + "CreationLimitExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"errorMessage"} + }, + "documentation":"The exception is thrown when customer tries to create a record (e.g. budget), but the number this record already exceeds the limitation.", + "exception":true + }, + "DeleteBudgetRequest":{ + "type":"structure", + "required":[ + "AccountId", + "BudgetName" + ], + "members":{ + "AccountId":{"shape":"AccountId"}, + "BudgetName":{"shape":"BudgetName"} + }, + "documentation":"Request of DeleteBudget" + }, + "DeleteBudgetResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"Response of DeleteBudget" + }, + "DeleteNotificationRequest":{ + "type":"structure", + "required":[ + "AccountId", + "BudgetName", + "Notification" + ], + "members":{ + "AccountId":{"shape":"AccountId"}, + "BudgetName":{"shape":"BudgetName"}, + "Notification":{"shape":"Notification"} + }, + "documentation":"Request of DeleteNotification" + }, + "DeleteNotificationResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"Response of DeleteNotification" + }, + "DeleteSubscriberRequest":{ + "type":"structure", + "required":[ + "AccountId", + "BudgetName", + "Notification", + "Subscriber" + ], + "members":{ + "AccountId":{"shape":"AccountId"}, + "BudgetName":{"shape":"BudgetName"}, + "Notification":{"shape":"Notification"}, + "Subscriber":{"shape":"Subscriber"} + }, + "documentation":"Request of DeleteSubscriber" + }, + "DeleteSubscriberResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"Response of DeleteSubscriber" + }, + "DescribeBudgetRequest":{ + "type":"structure", + "required":[ + "AccountId", + "BudgetName" + ], + "members":{ + "AccountId":{"shape":"AccountId"}, + "BudgetName":{"shape":"BudgetName"} + }, + "documentation":"Request of DescribeBudget" + }, + "DescribeBudgetResponse":{ + "type":"structure", + "members":{ + "Budget":{"shape":"Budget"} + }, + "documentation":"Response of DescribeBudget" + }, + "DescribeBudgetsRequest":{ + "type":"structure", + "required":["AccountId"], + "members":{ + "AccountId":{"shape":"AccountId"}, + "MaxResults":{"shape":"MaxResults"}, + "NextToken":{"shape":"GenericString"} + }, + "documentation":"Request of DescribeBudgets" + }, + "DescribeBudgetsResponse":{ + "type":"structure", + "members":{ + "Budgets":{"shape":"Budgets"}, + "NextToken":{"shape":"GenericString"} + }, + "documentation":"Response of DescribeBudgets" + }, + "DescribeNotificationsForBudgetRequest":{ + "type":"structure", + "required":[ + "AccountId", + "BudgetName" + ], + "members":{ + "AccountId":{"shape":"AccountId"}, + "BudgetName":{"shape":"BudgetName"}, + "MaxResults":{"shape":"MaxResults"}, + "NextToken":{"shape":"GenericString"} + }, + "documentation":"Request of DescribeNotificationsForBudget" + }, + "DescribeNotificationsForBudgetResponse":{ + "type":"structure", + "members":{ + "Notifications":{"shape":"Notifications"}, + "NextToken":{"shape":"GenericString"} + }, + "documentation":"Response of GetNotificationsForBudget" + }, + "DescribeSubscribersForNotificationRequest":{ + "type":"structure", + "required":[ + "AccountId", + "BudgetName", + "Notification" + ], + "members":{ + "AccountId":{"shape":"AccountId"}, + "BudgetName":{"shape":"BudgetName"}, + "Notification":{"shape":"Notification"}, + "MaxResults":{"shape":"MaxResults"}, + "NextToken":{"shape":"GenericString"} + }, + "documentation":"Request of DescribeSubscribersForNotification" + }, + "DescribeSubscribersForNotificationResponse":{ + "type":"structure", + "members":{ + "Subscribers":{"shape":"Subscribers"}, + "NextToken":{"shape":"GenericString"} + }, + "documentation":"Response of DescribeSubscribersForNotification" + }, + "DimensionValues":{ + "type":"list", + "member":{"shape":"GenericString"} + }, + "DuplicateRecordException":{ + "type":"structure", + "members":{ + "Message":{"shape":"errorMessage"} + }, + "documentation":"The exception is thrown when customer tries to create a record (e.g. budget) that already exists.", + "exception":true + }, + "ExpiredNextTokenException":{ + "type":"structure", + "members":{ + "Message":{"shape":"errorMessage"} + }, + "documentation":"This exception is thrown if the paging token is expired - past its TTL", + "exception":true + }, + "GenericBoolean":{ + "type":"boolean", + "documentation":"A generic boolean value." + }, + "GenericString":{ + "type":"string", + "documentation":"A generic String." + }, + "GenericTimestamp":{ + "type":"timestamp", + "documentation":"A generic timestamp. In Java it is transformed to a Date object." + }, + "InternalErrorException":{ + "type":"structure", + "members":{ + "Message":{"shape":"errorMessage"} + }, + "documentation":"This exception is thrown on an unknown internal failure.", + "exception":true + }, + "InvalidNextTokenException":{ + "type":"structure", + "members":{ + "Message":{"shape":"errorMessage"} + }, + "documentation":"This exception is thrown if paging token signature didn't match the token, or the paging token isn't for this request", + "exception":true + }, + "InvalidParameterException":{ + "type":"structure", + "members":{ + "Message":{"shape":"errorMessage"} + }, + "documentation":"This exception is thrown if any request is given an invalid parameter. E.g., if a required Date field is null.", + "exception":true + }, + "MaxResults":{ + "type":"integer", + "documentation":"An integer to represent how many entries should a pagianted response contains. Maxium is set to 100.", + "box":true, + "max":100, + "min":1 + }, + "NotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"errorMessage"} + }, + "documentation":"This exception is thrown if a requested entity is not found. E.g., if a budget id doesn't exist for an account ID.", + "exception":true + }, + "Notification":{ + "type":"structure", + "required":[ + "NotificationType", + "ComparisonOperator", + "Threshold" + ], + "members":{ + "NotificationType":{"shape":"NotificationType"}, + "ComparisonOperator":{"shape":"ComparisonOperator"}, + "Threshold":{"shape":"NotificationThreshold"} + }, + "documentation":"Notification model. Each budget may contain multiple notifications with different settings." + }, + "NotificationThreshold":{ + "type":"double", + "documentation":"The threshold of the a notification. It should be a number between 0 and 100.", + "max":100, + "min":0.1 + }, + "NotificationType":{ + "type":"string", + "documentation":"The type of a notification. It should be ACTUAL or FORECASTED.", + "enum":[ + "ACTUAL", + "FORECASTED" + ] + }, + "NotificationWithSubscribers":{ + "type":"structure", + "required":[ + "Notification", + "Subscribers" + ], + "members":{ + "Notification":{"shape":"Notification"}, + "Subscribers":{"shape":"Subscribers"} + }, + "documentation":"A structure to relate notification and a list of subscribers who belong to the notification." + }, + "NotificationWithSubscribersList":{ + "type":"list", + "member":{"shape":"NotificationWithSubscribers"}, + "documentation":"A list of Notifications, each with a list of subscribers.", + "max":5 + }, + "Notifications":{ + "type":"list", + "member":{"shape":"Notification"}, + "documentation":"A list of notifications." + }, + "NumericValue":{ + "type":"string", + "documentation":"A string to represent NumericValue.", + "pattern":"[0-9]+(\\.)?[0-9]*" + }, + "Spend":{ + "type":"structure", + "required":[ + "Amount", + "Unit" + ], + "members":{ + "Amount":{"shape":"NumericValue"}, + "Unit":{"shape":"GenericString"} + }, + "documentation":"A structure represent either a cost spend or usage spend. Contains an amount and a unit." + }, + "Subscriber":{ + "type":"structure", + "required":[ + "SubscriptionType", + "Address" + ], + "members":{ + "SubscriptionType":{"shape":"SubscriptionType"}, + "Address":{"shape":"GenericString"} + }, + "documentation":"Subscriber model. Each notification may contain multiple subscribers with different addresses." + }, + "Subscribers":{ + "type":"list", + "member":{"shape":"Subscriber"}, + "documentation":"A list of subscribers.", + "max":11, + "min":1 + }, + "SubscriptionType":{ + "type":"string", + "documentation":"The subscription type of the subscriber. It can be SMS or EMAIL.", + "enum":[ + "SNS", + "EMAIL" + ] + }, + "TimePeriod":{ + "type":"structure", + "required":[ + "Start", + "End" + ], + "members":{ + "Start":{"shape":"GenericTimestamp"}, + "End":{"shape":"GenericTimestamp"} + }, + "documentation":"A time period indicated the start date and end date of a budget." + }, + "TimeUnit":{ + "type":"string", + "documentation":"The time unit of the budget. e.g. weekly, monthly, etc.", + "enum":[ + "MONTHLY", + "QUARTERLY", + "ANNUALLY" + ] + }, + "UpdateBudgetRequest":{ + "type":"structure", + "required":[ + "AccountId", + "NewBudget" + ], + "members":{ + "AccountId":{"shape":"AccountId"}, + "NewBudget":{"shape":"Budget"} + }, + "documentation":"Request of UpdateBudget" + }, + "UpdateBudgetResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"Response of UpdateBudget" + }, + "UpdateNotificationRequest":{ + "type":"structure", + "required":[ + "AccountId", + "BudgetName", + "OldNotification", + "NewNotification" + ], + "members":{ + "AccountId":{"shape":"AccountId"}, + "BudgetName":{"shape":"BudgetName"}, + "OldNotification":{"shape":"Notification"}, + "NewNotification":{"shape":"Notification"} + }, + "documentation":"Request of UpdateNotification" + }, + "UpdateNotificationResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"Response of UpdateNotification" + }, + "UpdateSubscriberRequest":{ + "type":"structure", + "required":[ + "AccountId", + "BudgetName", + "Notification", + "OldSubscriber", + "NewSubscriber" + ], + "members":{ + "AccountId":{"shape":"AccountId"}, + "BudgetName":{"shape":"BudgetName"}, + "Notification":{"shape":"Notification"}, + "OldSubscriber":{"shape":"Subscriber"}, + "NewSubscriber":{"shape":"Subscriber"} + }, + "documentation":"Request of UpdateSubscriber" + }, + "UpdateSubscriberResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"Response of UpdateSubscriber" + }, + "errorMessage":{ + "type":"string", + "documentation":"The error message the exception carries." + } + }, + "documentation":"All public APIs for AWS Budgets" +} diff --git a/botocore/data/cloudformation/2010-05-15/service-2.json b/botocore/data/cloudformation/2010-05-15/service-2.json index fa7710d0..2ebec06c 100644 --- a/botocore/data/cloudformation/2010-05-15/service-2.json +++ b/botocore/data/cloudformation/2010-05-15/service-2.json @@ -47,7 +47,7 @@ {"shape":"InsufficientCapabilitiesException"}, {"shape":"LimitExceededException"} ], - "documentation":"

Creates a list of changes for a stack. AWS CloudFormation generates the change set by comparing the stack's information with the information that you submit. A change set can help you understand which resources AWS CloudFormation will change and how it will change them before you update your stack. Change sets allow you to check before you make a change so that you don't delete or replace critical resources.

AWS CloudFormation doesn't make any changes to the stack when you create a change set. To make the specified changes, you must execute the change set by using the ExecuteChangeSet action.

After the call successfully completes, AWS CloudFormation starts creating the change set. To check the status of the change set, use the DescribeChangeSet action.

" + "documentation":"

Creates a list of changes for a stack. AWS CloudFormation generates the change set by comparing the template's information with the information that you submit. A change set can help you understand which resources AWS CloudFormation will change, and how it will change them, before you update your stack. Change sets allow you to check before making a change to avoid deleting or replacing critical resources.

AWS CloudFormation doesn't make any changes to the stack when you create a change set. To make the specified changes, you must execute the change set by using the ExecuteChangeSet action.

After the call successfully completes, AWS CloudFormation starts creating the change set. To check the status of the change set, use the DescribeChangeSet action.

" }, "CreateStack":{ "name":"CreateStack", @@ -255,6 +255,19 @@ }, "documentation":"

Returns the ID and status of each active change set for a stack. For example, AWS CloudFormation lists change sets that are in the CREATE_IN_PROGRESS or CREATE_PENDING state.

" }, + "ListExports":{ + "name":"ListExports", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListExportsInput"}, + "output":{ + "shape":"ListExportsOutput", + "resultWrapper":"ListExportsResult" + }, + "documentation":"

Lists all exported output values in the account and region in which you call this action. Use this action to see the exported output values that you can import into other stacks. To import values, use the Fn::ImportValue function.

For more information, see AWS CloudFormation Export Stack Output Values.

" + }, "ListStackResources":{ "name":"ListStackResources", "http":{ @@ -497,6 +510,13 @@ }, "documentation":"

The ChangeSetSummary structure describes a change set, its status, and the stack with which it's associated.

" }, + "ChangeSetType":{ + "type":"string", + "enum":[ + "CREATE", + "UPDATE" + ] + }, "ChangeSource":{ "type":"string", "enum":[ @@ -526,11 +546,15 @@ "members":{ "StackName":{ "shape":"StackNameOrId", - "documentation":"

The name or the unique ID of the stack that you want to continue rolling back.

" + "documentation":"

The name or the unique ID of the stack that you want to continue rolling back.

Don't specify the name of a nested stack (a stack that was created by using the AWS::CloudFormation::Stack resource). Instead, use this operation on the parent stack (the stack that contains the AWS::CloudFormation::Stack resource).

" }, "RoleARN":{ "shape":"RoleARN", "documentation":"

The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes to roll back the stack. AWS CloudFormation uses the role's credentials to make calls on your behalf. AWS CloudFormation always uses this role for all future operations on the stack. As long as users have permission to operate on the stack, AWS CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege.

If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials.

" + }, + "ResourcesToSkip":{ + "shape":"ResourcesToSkip", + "documentation":"

A list of the logical IDs of the resources that AWS CloudFormation skips during the continue update rollback operation. You can specify only resources that are in the UPDATE_FAILED state because a rollback failed. You can't specify resources that are in the UPDATE_FAILED state for other reasons, for example, because an update was canceled. To check why a resource update failed, use the DescribeStackResources action, and view the resource status reason.

Specify this property to skip rolling back resources that AWS CloudFormation can't successfully roll back. We recommend that you troubleshoot resources before skipping them. AWS CloudFormation sets the status of the specified resources to UPDATE_COMPLETE and continues to roll back the stack. After the rollback is complete, the state of the skipped resources will be inconsistent with the state of the resources in the stack template. Before performing another stack update, you must update the stack or resources to be consistent with each other. If you don't, subsequent stack updates might fail, and the stack will become unrecoverable.

Specify the minimum number of resources required to successfully roll back your stack. For example, a failed resource update might cause dependent resources to fail. In this case, it might not be necessary to skip the dependent resources.

To specify resources in a nested stack, use the following format: NestedStackName.ResourceLogicalID. You can specify a nested stack resource (the logical ID of an AWS::CloudFormation::Stack resource) only if it's in one of the following states: DELETE_IN_PROGRESS, DELETE_COMPLETE, or DELETE_FAILED.

" } }, "documentation":"

The input for the ContinueUpdateRollback action.

" @@ -599,6 +623,10 @@ "Description":{ "shape":"Description", "documentation":"

A description to help you identify this change set.

" + }, + "ChangeSetType":{ + "shape":"ChangeSetType", + "documentation":"

The type of change set operation. Valid values are CREATE and UPDATE:

" } }, "documentation":"

The input for the CreateChangeSet action.

" @@ -609,6 +637,10 @@ "Id":{ "shape":"ChangeSetId", "documentation":"

The Amazon Resource Name (ARN) of the change set.

" + }, + "StackId":{ + "shape":"StackId", + "documentation":"

The unique ID of the stack.

" } }, "documentation":"

The output for the CreateChangeSet action.

" @@ -1023,6 +1055,30 @@ "OBSOLETE" ] }, + "Export":{ + "type":"structure", + "members":{ + "ExportingStackId":{ + "shape":"StackId", + "documentation":"

The stack that contains the exported output name and value.

" + }, + "Name":{ + "shape":"ExportName", + "documentation":"

The name of exported output value. Use this name and the Fn::ImportValue function to import the associated value into other stacks. The name is defined in the Export field in the associated stack's Outputs section.

" + }, + "Value":{ + "shape":"ExportValue", + "documentation":"

The value of the exported output, such as a resource physical ID. This value is defined in the Export field in the associated stack's Outputs section.

" + } + }, + "documentation":"

The Export structure describes the exported output values for a stack.

" + }, + "ExportName":{"type":"string"}, + "ExportValue":{"type":"string"}, + "Exports":{ + "type":"list", + "member":{"shape":"Export"} + }, "GetStackPolicyInput":{ "type":"structure", "required":["StackName"], @@ -1046,11 +1102,18 @@ }, "GetTemplateInput":{ "type":"structure", - "required":["StackName"], "members":{ "StackName":{ "shape":"StackName", "documentation":"

The name or the unique stack ID that is associated with the stack, which are not always interchangeable:

Default: There is no default value.

" + }, + "ChangeSetName":{ + "shape":"ChangeSetNameOrId", + "documentation":"

Returns the template for a change set using the Amazon Resource Name (ARN) or name of the change set. If you specify a name, you must also specify the StackName.

" + }, + "TemplateStage":{ + "shape":"TemplateStage", + "documentation":"

The stage of the template that is returned. Valid values are Original and Processed:

" } }, "documentation":"

The input for a GetTemplate action.

" @@ -1061,6 +1124,10 @@ "TemplateBody":{ "shape":"TemplateBody", "documentation":"

Structure containing the template body. (For more information, go to Template Anatomy in the AWS CloudFormation User Guide.)

AWS CloudFormation returns the same template that was used when the stack was created.

" + }, + "StagesAvailable":{ + "shape":"StageList", + "documentation":"

The available template type. For stacks, both the Original and Processed template types are always available. For change sets, the Original template is always available. After the transforms are processed, the Processed template becomes available.

" } }, "documentation":"

The output for GetTemplate action.

" @@ -1113,6 +1180,10 @@ "Metadata":{ "shape":"Metadata", "documentation":"

The value that is defined for the Metadata property of the template.

" + }, + "DeclaredTransforms":{ + "shape":"TransformsList", + "documentation":"

A list of the transforms that have been declared in the template.

" } }, "documentation":"

The output for the GetTemplateSummary action.

" @@ -1185,6 +1256,28 @@ }, "documentation":"

The output for the ListChangeSets action.

" }, + "ListExportsInput":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

A string (provided by the ListExports response output) that identifies the next page of exported output values that you asked to retrieve.

" + } + } + }, + "ListExportsOutput":{ + "type":"structure", + "members":{ + "Exports":{ + "shape":"Exports", + "documentation":"

The output for the ListExports action.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the output exceeds 100 exported output values, a string that identifies the next page of exports. If there is no additional page, this value is null.

" + } + } + }, "ListStackResourcesInput":{ "type":"structure", "required":["StackName"], @@ -1493,6 +1586,10 @@ }, "documentation":"

The field that AWS CloudFormation will change, such as the name of a resource's property, and whether the resource will be recreated.

" }, + "ResourceToSkip":{ + "type":"string", + "pattern":"[a-zA-Z0-9]+|[a-zA-Z][-a-zA-Z0-9]*\\.[a-zA-Z0-9]+" + }, "ResourceType":{ "type":"string", "max":256, @@ -1502,6 +1599,10 @@ "type":"list", "member":{"shape":"ResourceType"} }, + "ResourcesToSkip":{ + "type":"list", + "member":{"shape":"ResourceToSkip"} + }, "RetainResources":{ "type":"list", "member":{"shape":"LogicalResourceId"} @@ -1578,6 +1679,10 @@ "shape":"StackName", "documentation":"

The name associated with the stack.

" }, + "ChangeSetId":{ + "shape":"ChangeSetId", + "documentation":"

The unique ID of the change set.

" + }, "Description":{ "shape":"Description", "documentation":"

A user-defined description associated with the stack.

" @@ -1878,7 +1983,8 @@ "UPDATE_ROLLBACK_IN_PROGRESS", "UPDATE_ROLLBACK_FAILED", "UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS", - "UPDATE_ROLLBACK_COMPLETE" + "UPDATE_ROLLBACK_COMPLETE", + "REVIEW_IN_PROGRESS" ] }, "StackStatusFilter":{ @@ -1937,6 +2043,10 @@ "type":"list", "member":{"shape":"Stack"} }, + "StageList":{ + "type":"list", + "member":{"shape":"TemplateStage"} + }, "Tag":{ "type":"structure", "members":{ @@ -1988,6 +2098,13 @@ "type":"list", "member":{"shape":"TemplateParameter"} }, + "TemplateStage":{ + "type":"string", + "enum":[ + "Original", + "Processed" + ] + }, "TemplateURL":{ "type":"string", "max":1024, @@ -1998,6 +2115,11 @@ "min":1 }, "Timestamp":{"type":"timestamp"}, + "TransformName":{"type":"string"}, + "TransformsList":{ + "type":"list", + "member":{"shape":"TransformName"} + }, "UpdateStackInput":{ "type":"structure", "required":["StackName"], @@ -2106,11 +2228,15 @@ "CapabilitiesReason":{ "shape":"CapabilitiesReason", "documentation":"

The list of resources that generated the values in the Capabilities response element.

" + }, + "DeclaredTransforms":{ + "shape":"TransformsList", + "documentation":"

A list of the transforms that have been declared in the template.

" } }, "documentation":"

The output for ValidateTemplate action.

" }, "Version":{"type":"string"} }, - "documentation":"AWS CloudFormation

AWS CloudFormation enables you to create and manage AWS infrastructure deployments predictably and repeatedly. AWS CloudFormation helps you leverage AWS products such as Amazon EC2, EBS, Amazon SNS, ELB, and Auto Scaling to build highly-reliable, highly scalable, cost effective applications without worrying about creating and configuring the underlying AWS infrastructure.

With AWS CloudFormation, you declare all of your resources and dependencies in a template file. The template defines a collection of resources as a single unit called a stack. AWS CloudFormation creates and deletes all member resources of the stack together and manages all dependencies between the resources for you.

For more information about this product, go to the CloudFormation Product Page.

Amazon CloudFormation makes use of other AWS products. If you need additional technical information about a specific AWS product, you can find the product's technical documentation at http://docs.aws.amazon.com/.

" + "documentation":"AWS CloudFormation

AWS CloudFormation allows you to create and manage AWS infrastructure deployments predictably and repeatedly. You can use AWS CloudFormation to leverage AWS products, such as Amazon Elastic Compute Cloud, Amazon Elastic Block Store, Amazon Simple Notification Service, Elastic Load Balancing, and Auto Scaling to build highly-reliable, highly scalable, cost-effective applications without creating or configuring the underlying AWS infrastructure.

With AWS CloudFormation, you declare all of your resources and dependencies in a template file. The template defines a collection of resources as a single unit called a stack. AWS CloudFormation creates and deletes all member resources of the stack together and manages all dependencies between the resources for you.

For more information about AWS CloudFormation, see the AWS CloudFormation Product Page.

Amazon CloudFormation makes use of other AWS products. If you need additional technical information about a specific AWS product, you can find the product's technical documentation at http://docs.aws.amazon.com/.

" } diff --git a/botocore/data/cloudformation/2010-05-15/waiters-2.json b/botocore/data/cloudformation/2010-05-15/waiters-2.json index 76a41f66..260e4b2d 100644 --- a/botocore/data/cloudformation/2010-05-15/waiters-2.json +++ b/botocore/data/cloudformation/2010-05-15/waiters-2.json @@ -54,6 +54,12 @@ "matcher": "pathAny", "state": "failure" }, + { + "argument": "Stacks[].StackStatus", + "expected": "ROLLBACK_COMPLETE", + "matcher": "pathAny", + "state": "failure" + }, { "expected": "ValidationError", "matcher": "error", @@ -134,6 +140,12 @@ "matcher": "pathAny", "state": "failure" }, + { + "expected": "UPDATE_ROLLBACK_COMPLETE", + "matcher": "pathAny", + "state": "failure", + "argument": "Stacks[].StackStatus" + }, { "expected": "ValidationError", "matcher": "error", diff --git a/botocore/data/directconnect/2012-10-25/service-2.json b/botocore/data/directconnect/2012-10-25/service-2.json index 5f14fd06..99f478d9 100644 --- a/botocore/data/directconnect/2012-10-25/service-2.json +++ b/botocore/data/directconnect/2012-10-25/service-2.json @@ -275,6 +275,20 @@ ], "documentation":"

Returns the list of AWS Direct Connect locations in the current AWS region. These are the locations that may be selected when calling CreateConnection or CreateInterconnect.

" }, + "DescribeTags":{ + "name":"DescribeTags", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeTagsRequest"}, + "output":{"shape":"DescribeTagsResponse"}, + "errors":[ + {"shape":"DirectConnectServerException"}, + {"shape":"DirectConnectClientException"} + ], + "documentation":"

Describes the tags associated with the specified Direct Connect resources.

" + }, "DescribeVirtualGateways":{ "name":"DescribeVirtualGateways", "http":{ @@ -301,6 +315,36 @@ {"shape":"DirectConnectClientException"} ], "documentation":"

Displays all virtual interfaces for an AWS account. Virtual interfaces deleted fewer than 15 minutes before DescribeVirtualInterfaces is called are also returned. If a connection ID is included then only virtual interfaces associated with this connection will be returned. If a virtual interface ID is included then only a single virtual interface will be returned.

A virtual interface (VLAN) transmits the traffic between the AWS Direct Connect location and the customer.

If a connection ID is provided, only virtual interfaces provisioned on the specified connection will be returned. If a virtual interface ID is provided, only this particular virtual interface will be returned.

" + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"DuplicateTagKeysException"}, + {"shape":"TooManyTagsException"}, + {"shape":"DirectConnectServerException"}, + {"shape":"DirectConnectClientException"} + ], + "documentation":"

Adds the specified tags to the specified Direct Connect resource. Each Direct Connect resource can have a maximum of 50 tags.

Each tag consists of a key and an optional value. If a tag with the same key is already associated with the Direct Connect resource, this action updates its value.

" + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"DirectConnectServerException"}, + {"shape":"DirectConnectClientException"} + ], + "documentation":"

Removes one or more tags from the specified Direct Connect resource.

" } }, "shapes":{ @@ -691,6 +735,27 @@ }, "documentation":"

Container for the parameters to the DescribeInterconnects operation.

" }, + "DescribeTagsRequest":{ + "type":"structure", + "required":["resourceArns"], + "members":{ + "resourceArns":{ + "shape":"ResourceArnList", + "documentation":"

The Amazon Resource Names (ARNs) of the Direct Connect resources.

" + } + }, + "documentation":"

Container for the parameters to the DescribeTags operation.

" + }, + "DescribeTagsResponse":{ + "type":"structure", + "members":{ + "resourceTags":{ + "shape":"ResourceTagList", + "documentation":"

Information about the tags.

" + } + }, + "documentation":"

The response received when DescribeTags is called.

" + }, "DescribeVirtualInterfacesRequest":{ "type":"structure", "members":{ @@ -721,6 +786,13 @@ "documentation":"

A server-side error occurred during the API call. The error message will contain additional details about the cause.

", "exception":true }, + "DuplicateTagKeysException":{ + "type":"structure", + "members":{ + }, + "documentation":"

A tag key was specified more than once.

", + "exception":true + }, "ErrorMessage":{"type":"string"}, "Interconnect":{ "type":"structure", @@ -909,6 +981,29 @@ "type":"string", "documentation":"

The AWS region where the connection is located.

Example: us-east-1

Default: None

" }, + "ResourceArn":{"type":"string"}, + "ResourceArnList":{ + "type":"list", + "member":{"shape":"ResourceArn"} + }, + "ResourceTag":{ + "type":"structure", + "members":{ + "resourceArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the Direct Connect resource.

" + }, + "tags":{ + "shape":"TagList", + "documentation":"

The tags.

" + } + }, + "documentation":"

The tags associated with a Direct Connect resource.

" + }, + "ResourceTagList":{ + "type":"list", + "member":{"shape":"ResourceTag"} + }, "RouteFilterPrefix":{ "type":"structure", "members":{ @@ -925,6 +1020,97 @@ "documentation":"

A list of routes to be advertised to the AWS network in this region (public virtual interface).

" }, "RouterConfig":{"type":"string"}, + "Tag":{ + "type":"structure", + "required":["key"], + "members":{ + "key":{ + "shape":"TagKey", + "documentation":"

The key of the tag.

" + }, + "value":{ + "shape":"TagValue", + "documentation":"

The value of the tag.

" + } + }, + "documentation":"

Information about a tag.

" + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"} + }, + "TagList":{ + "type":"list", + "member":{"shape":"Tag"}, + "min":1 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the Direct Connect resource.

Example: arn:aws:directconnect:us-east-1:123456789012:dxcon/dxcon-fg5678gh

" + }, + "tags":{ + "shape":"TagList", + "documentation":"

The list of tags to add.

" + } + }, + "documentation":"

Container for the parameters to the TagResource operation.

" + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"

The response received when TagResource is called.

" + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0, + "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + }, + "TooManyTagsException":{ + "type":"structure", + "members":{ + }, + "documentation":"

You have reached the limit on the number of tags that can be assigned to a Direct Connect resource.

", + "exception":true + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the Direct Connect resource.

" + }, + "tagKeys":{ + "shape":"TagKeyList", + "documentation":"

The list of tag keys to remove.

" + } + }, + "documentation":"

Container for the parameters to the UntagResource operation.

" + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"

The response received when UntagResource is called.

" + }, "VLAN":{ "type":"integer", "documentation":"

The VLAN ID.

Example: 101

" diff --git a/botocore/data/ecr/2015-09-21/paginators-1.json b/botocore/data/ecr/2015-09-21/paginators-1.json index 3bacc70e..dad0647f 100644 --- a/botocore/data/ecr/2015-09-21/paginators-1.json +++ b/botocore/data/ecr/2015-09-21/paginators-1.json @@ -5,6 +5,18 @@ "output_token": "nextToken", "limit_key": "maxResults", "result_key": "imageIds" + }, + "DescribeImages": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "imageDetails" + }, + "DescribeRepositories": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "repositories" } } } diff --git a/botocore/data/ecs/2014-11-13/service-2.json b/botocore/data/ecs/2014-11-13/service-2.json index 9ae3cd1e..e5c1bbfe 100644 --- a/botocore/data/ecs/2014-11-13/service-2.json +++ b/botocore/data/ecs/2014-11-13/service-2.json @@ -40,7 +40,7 @@ {"shape":"InvalidParameterException"}, {"shape":"ClusterNotFoundException"} ], - "documentation":"

Runs and maintains a desired number of tasks from a specified task definition. If the number of tasks running in a service drops below desiredCount, Amazon ECS spawns another instantiation of the task in the specified cluster. To update an existing service, see UpdateService.

In addition to maintaining the desired count of tasks in your service, you can optionally run your service behind a load balancer. The load balancer distributes traffic across the tasks that are associated with the service. For more information, see Service Load Balancing in the Amazon EC2 Container Service Developer Guide.

You can optionally specify a deployment configuration for your service. During a deployment (which is triggered by changing the task definition of a service with an UpdateService operation), the service scheduler uses the minimumHealthyPercent and maximumPercent parameters to determine the deployment strategy.

If the minimumHealthyPercent is below 100%, the scheduler can ignore the desiredCount temporarily during a deployment. For example, if your service has a desiredCount of four tasks, a minimumHealthyPercent of 50% allows the scheduler to stop two existing tasks before starting two new tasks. Tasks for services that do not use a load balancer are considered healthy if they are in the RUNNING state; tasks for services that do use a load balancer are considered healthy if they are in the RUNNING state and the container instance it is hosted on is reported as healthy by the load balancer. The default value for minimumHealthyPercent is 50% in the console and 100% for the AWS CLI, the AWS SDKs, and the APIs.

The maximumPercent parameter represents an upper limit on the number of running tasks during a deployment, which enables you to define the deployment batch size. For example, if your service has a desiredCount of four tasks, a maximumPercent value of 200% starts four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default value for maximumPercent is 200%.

When the service scheduler launches new tasks, it attempts to balance them across the Availability Zones in your cluster with the following logic:

" + "documentation":"

Runs and maintains a desired number of tasks from a specified task definition. If the number of tasks running in a service drops below desiredCount, Amazon ECS spawns another copy of the task in the specified cluster. To update an existing service, see UpdateService.

In addition to maintaining the desired count of tasks in your service, you can optionally run your service behind a load balancer. The load balancer distributes traffic across the tasks that are associated with the service. For more information, see Service Load Balancing in the Amazon EC2 Container Service Developer Guide.

You can optionally specify a deployment configuration for your service. During a deployment (which is triggered by changing the task definition or the desired count of a service with an UpdateService operation), the service scheduler uses the minimumHealthyPercent and maximumPercent parameters to determine the deployment strategy.

The minimumHealthyPercent represents a lower limit on the number of your service's tasks that must remain in the RUNNING state during a deployment, as a percentage of the desiredCount (rounded up to the nearest integer). This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a desiredCount of four tasks and a minimumHealthyPercent of 50%, the scheduler may stop two existing tasks to free up cluster capacity before starting two new tasks. Tasks for services that do not use a load balancer are considered healthy if they are in the RUNNING state; tasks for services that do use a load balancer are considered healthy if they are in the RUNNING state and the container instance it is hosted on is reported as healthy by the load balancer. The default value for minimumHealthyPercent is 50% in the console and 100% for the AWS CLI, the AWS SDKs, and the APIs.

The maximumPercent parameter represents an upper limit on the number of your service's tasks that are allowed in the RUNNING or PENDING state during a deployment, as a percentage of the desiredCount (rounded down to the nearest integer). This parameter enables you to define the deployment batch size. For example, if your service has a desiredCount of four tasks and a maximumPercent value of 200%, the scheduler may start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default value for maximumPercent is 200%.

When the service scheduler launches new tasks, it attempts to balance them across the Availability Zones in your cluster with the following logic:

" }, "DeleteCluster":{ "name":"DeleteCluster", @@ -91,7 +91,7 @@ {"shape":"InvalidParameterException"}, {"shape":"ClusterNotFoundException"} ], - "documentation":"

Deregisters an Amazon ECS container instance from the specified cluster. This instance is no longer available to run tasks.

If you intend to use the container instance for some other purpose after deregistration, you should stop all of the tasks running on the container instance before deregistration to avoid any orphaned tasks from consuming resources.

Deregistering a container instance removes the instance from a cluster, but it does not terminate the EC2 instance; if you are finished using the instance, be sure to terminate it in the Amazon EC2 console to stop billing.

If you terminate a running container instance with a connected Amazon ECS container agent, the agent automatically deregisters the instance from your cluster (stopped container instances or instances with disconnected agents are not automatically deregistered when terminated).

" + "documentation":"

Deregisters an Amazon ECS container instance from the specified cluster. This instance is no longer available to run tasks.

If you intend to use the container instance for some other purpose after deregistration, you should stop all of the tasks running on the container instance before deregistration to avoid any orphaned tasks from consuming resources.

Deregistering a container instance removes the instance from a cluster, but it does not terminate the EC2 instance; if you are finished using the instance, be sure to terminate it in the Amazon EC2 console to stop billing.

If you terminate a running container instance, Amazon ECS automatically deregisters the instance from your cluster (stopped container instances or instances with disconnected agents are not automatically deregistered when terminated).

" }, "DeregisterTaskDefinition":{ "name":"DeregisterTaskDefinition", @@ -583,31 +583,31 @@ "members":{ "name":{ "shape":"String", - "documentation":"

The name of a container. If you are linking multiple containers together in a task definition, the name of one container can be entered in the links of another container to connect the containers. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. This parameter maps to name in the Create a container section of the Docker Remote API and the --name option to docker run.

" + "documentation":"

The name of a container. If you are linking multiple containers together in a task definition, the name of one container can be entered in the links of another container to connect the containers. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. This parameter maps to name in the Create a container section of the Docker Remote API and the --name option to docker run.

" }, "image":{ "shape":"String", - "documentation":"

The image used to start a container. This string is passed directly to the Docker daemon. Images in the Docker Hub registry are available by default. Other repositories are specified with repository-url/image:tag . Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to Image in the Create a container section of the Docker Remote API and the IMAGE parameter of docker run.

" + "documentation":"

The image used to start a container. This string is passed directly to the Docker daemon. Images in the Docker Hub registry are available by default. Other repositories are specified with repository-url/image:tag . Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to Image in the Create a container section of the Docker Remote API and the IMAGE parameter of docker run.

" }, "cpu":{ "shape":"Integer", - "documentation":"

The number of cpu units reserved for the container. A container instance has 1,024 cpu units for every CPU core. This parameter specifies the minimum amount of CPU to reserve for a container, and containers share unallocated CPU units with other containers on the instance with the same ratio as their allocated amount. This parameter maps to CpuShares in the Create a container section of the Docker Remote API and the --cpu-shares option to docker run.

You can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the Amazon EC2 Instances detail page by 1,024.

For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that is the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task would be guaranteed a minimum of 512 CPU units when needed, and each container could float to higher CPU usage if the other container was not using it, but if both tasks were 100% active all of the time, they would be limited to 512 CPU units.

The Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers. For more information, see CPU share constraint in the Docker documentation. The minimum valid CPU share value that the Linux kernel allows is 2; however, the CPU parameter is not required, and you can use CPU values below 2 in your container definitions. For CPU values below 2 (including null), the behavior varies based on your Amazon ECS container agent version:

" + "documentation":"

The number of cpu units reserved for the container. A container instance has 1,024 cpu units for every CPU core. This parameter specifies the minimum amount of CPU to reserve for a container, and containers share unallocated CPU units with other containers on the instance with the same ratio as their allocated amount. This parameter maps to CpuShares in the Create a container section of the Docker Remote API and the --cpu-shares option to docker run.

You can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the Amazon EC2 Instances detail page by 1,024.

For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that is the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task would be guaranteed a minimum of 512 CPU units when needed, and each container could float to higher CPU usage if the other container was not using it, but if both tasks were 100% active all of the time, they would be limited to 512 CPU units.

The Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers. For more information, see CPU share constraint in the Docker documentation. The minimum valid CPU share value that the Linux kernel allows is 2; however, the CPU parameter is not required, and you can use CPU values below 2 in your container definitions. For CPU values below 2 (including null), the behavior varies based on your Amazon ECS container agent version:

" }, "memory":{ "shape":"BoxedInteger", - "documentation":"

The hard limit (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. This parameter maps to Memory in the Create a container section of the Docker Remote API and the --memory option to docker run.

You must specify a non-zero integer for one or both of memory or memoryReservation in container definitions. If you specify both, memory must be greater than memoryReservation. If you specify memoryReservation, then that value is subtracted from the available memory resources for the container instance on which the container is placed; otherwise, the value of memory is used.

The Docker daemon reserves a minimum of 4 MiB of memory for a container, so you should not specify fewer than 4 MiB of memory for your containers.

" + "documentation":"

The hard limit (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. This parameter maps to Memory in the Create a container section of the Docker Remote API and the --memory option to docker run.

You must specify a non-zero integer for one or both of memory or memoryReservation in container definitions. If you specify both, memory must be greater than memoryReservation. If you specify memoryReservation, then that value is subtracted from the available memory resources for the container instance on which the container is placed; otherwise, the value of memory is used.

The Docker daemon reserves a minimum of 4 MiB of memory for a container, so you should not specify fewer than 4 MiB of memory for your containers.

" }, "memoryReservation":{ "shape":"BoxedInteger", - "documentation":"

The soft limit (in MiB) of memory to reserve for the container. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit; however, your container can consume more memory when it needs to, up to either the hard limit specified with the memory parameter (if applicable), or all of the available memory on the container instance, whichever comes first. This parameter maps to MemoryReservation in the Create a container section of the Docker Remote API and the --memory-reservation option to docker run.

You must specify a non-zero integer for one or both of memory or memoryReservation in container definitions. If you specify both, memory must be greater than memoryReservation. If you specify memoryReservation, then that value is subtracted from the available memory resources for the container instance on which the container is placed; otherwise, the value of memory is used.

For example, if your container normally uses 128 MiB of memory, but occasionally bursts to 256 MiB of memory for short periods of time, you can set a memoryReservation of 128 MiB, and a memory hard limit of 300 MiB. This configuration would allow the container to only reserve 128 MiB of memory from the remaining resources on the container instance, but also allow the container to consume more memory resources when needed.

" + "documentation":"

The soft limit (in MiB) of memory to reserve for the container. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit; however, your container can consume more memory when it needs to, up to either the hard limit specified with the memory parameter (if applicable), or all of the available memory on the container instance, whichever comes first. This parameter maps to MemoryReservation in the Create a container section of the Docker Remote API and the --memory-reservation option to docker run.

You must specify a non-zero integer for one or both of memory or memoryReservation in container definitions. If you specify both, memory must be greater than memoryReservation. If you specify memoryReservation, then that value is subtracted from the available memory resources for the container instance on which the container is placed; otherwise, the value of memory is used.

For example, if your container normally uses 128 MiB of memory, but occasionally bursts to 256 MiB of memory for short periods of time, you can set a memoryReservation of 128 MiB, and a memory hard limit of 300 MiB. This configuration would allow the container to only reserve 128 MiB of memory from the remaining resources on the container instance, but also allow the container to consume more memory resources when needed.

" }, "links":{ "shape":"StringList", - "documentation":"

The link parameter allows containers to communicate with each other without the need for port mappings, using the name parameter and optionally, an alias for the link. This construct is analogous to name:alias in Docker links. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed for each name and alias. For more information on linking Docker containers, see https://docs.docker.com/userguide/dockerlinks/. This parameter maps to Links in the Create a container section of the Docker Remote API and the --link option to docker run.

Containers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings. Network isolation is achieved on the container instance using security groups and VPC settings.

" + "documentation":"

The link parameter allows containers to communicate with each other without the need for port mappings, using the name parameter and optionally, an alias for the link. This construct is analogous to name:alias in Docker links. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed for each name and alias. For more information on linking Docker containers, see https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/. This parameter maps to Links in the Create a container section of the Docker Remote API and the --link option to docker run.

Containers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings. Network isolation is achieved on the container instance using security groups and VPC settings.

" }, "portMappings":{ "shape":"PortMappingList", - "documentation":"

The list of port mappings for the container. Port mappings allow containers to access ports on the host container instance to send or receive traffic. This parameter maps to PortBindings in the Create a container section of the Docker Remote API and the --publish option to docker run. If the network mode of a task definition is set to none, then you cannot specify port mappings. If the network mode of a task definition is set to host, then host ports must either be undefined or they must match the container port in the port mapping.

After a task reaches the RUNNING status, manual and automatic host and container port assignments are visible in the Network Bindings section of a container description of a selected task in the Amazon ECS console, or the networkBindings section DescribeTasks responses.

" + "documentation":"

The list of port mappings for the container. Port mappings allow containers to access ports on the host container instance to send or receive traffic. This parameter maps to PortBindings in the Create a container section of the Docker Remote API and the --publish option to docker run. If the network mode of a task definition is set to none, then you cannot specify port mappings. If the network mode of a task definition is set to host, then host ports must either be undefined or they must match the container port in the port mapping.

After a task reaches the RUNNING status, manual and automatic host and container port assignments are visible in the Network Bindings section of a container description of a selected task in the Amazon ECS console, or the networkBindings section DescribeTasks responses.

" }, "essential":{ "shape":"BoxedBoolean", @@ -615,75 +615,75 @@ }, "entryPoint":{ "shape":"StringList", - "documentation":"

Early versions of the Amazon ECS container agent do not properly handle entryPoint parameters. If you have problems using entryPoint, update your container agent or enter your commands and arguments as command array items instead.

The entry point that is passed to the container. This parameter maps to Entrypoint in the Create a container section of the Docker Remote API and the --entrypoint option to docker run. For more information, see https://docs.docker.com/reference/builder/#entrypoint.

" + "documentation":"

Early versions of the Amazon ECS container agent do not properly handle entryPoint parameters. If you have problems using entryPoint, update your container agent or enter your commands and arguments as command array items instead.

The entry point that is passed to the container. This parameter maps to Entrypoint in the Create a container section of the Docker Remote API and the --entrypoint option to docker run. For more information, see https://docs.docker.com/engine/reference/builder/#entrypoint.

" }, "command":{ "shape":"StringList", - "documentation":"

The command that is passed to the container. This parameter maps to Cmd in the Create a container section of the Docker Remote API and the COMMAND parameter to docker run. For more information, see https://docs.docker.com/reference/builder/#cmd.

" + "documentation":"

The command that is passed to the container. This parameter maps to Cmd in the Create a container section of the Docker Remote API and the COMMAND parameter to docker run. For more information, see https://docs.docker.com/engine/reference/builder/#cmd.

" }, "environment":{ "shape":"EnvironmentVariables", - "documentation":"

The environment variables to pass to a container. This parameter maps to Env in the Create a container section of the Docker Remote API and the --env option to docker run.

We do not recommend using plain text environment variables for sensitive information, such as credential data.

" + "documentation":"

The environment variables to pass to a container. This parameter maps to Env in the Create a container section of the Docker Remote API and the --env option to docker run.

We do not recommend using plain text environment variables for sensitive information, such as credential data.

" }, "mountPoints":{ "shape":"MountPointList", - "documentation":"

The mount points for data volumes in your container. This parameter maps to Volumes in the Create a container section of the Docker Remote API and the --volume option to docker run.

" + "documentation":"

The mount points for data volumes in your container. This parameter maps to Volumes in the Create a container section of the Docker Remote API and the --volume option to docker run.

" }, "volumesFrom":{ "shape":"VolumeFromList", - "documentation":"

Data volumes to mount from another container. This parameter maps to VolumesFrom in the Create a container section of the Docker Remote API and the --volumes-from option to docker run.

" + "documentation":"

Data volumes to mount from another container. This parameter maps to VolumesFrom in the Create a container section of the Docker Remote API and the --volumes-from option to docker run.

" }, "hostname":{ "shape":"String", - "documentation":"

The hostname to use for your container. This parameter maps to Hostname in the Create a container section of the Docker Remote API and the --hostname option to docker run.

" + "documentation":"

The hostname to use for your container. This parameter maps to Hostname in the Create a container section of the Docker Remote API and the --hostname option to docker run.

" }, "user":{ "shape":"String", - "documentation":"

The user name to use inside the container. This parameter maps to User in the Create a container section of the Docker Remote API and the --user option to docker run.

" + "documentation":"

The user name to use inside the container. This parameter maps to User in the Create a container section of the Docker Remote API and the --user option to docker run.

" }, "workingDirectory":{ "shape":"String", - "documentation":"

The working directory in which to run commands inside the container. This parameter maps to WorkingDir in the Create a container section of the Docker Remote API and the --workdir option to docker run.

" + "documentation":"

The working directory in which to run commands inside the container. This parameter maps to WorkingDir in the Create a container section of the Docker Remote API and the --workdir option to docker run.

" }, "disableNetworking":{ "shape":"BoxedBoolean", - "documentation":"

When this parameter is true, networking is disabled within the container. This parameter maps to NetworkDisabled in the Create a container section of the Docker Remote API.

" + "documentation":"

When this parameter is true, networking is disabled within the container. This parameter maps to NetworkDisabled in the Create a container section of the Docker Remote API.

" }, "privileged":{ "shape":"BoxedBoolean", - "documentation":"

When this parameter is true, the container is given elevated privileges on the host container instance (similar to the root user). This parameter maps to Privileged in the Create a container section of the Docker Remote API and the --privileged option to docker run.

" + "documentation":"

When this parameter is true, the container is given elevated privileges on the host container instance (similar to the root user). This parameter maps to Privileged in the Create a container section of the Docker Remote API and the --privileged option to docker run.

" }, "readonlyRootFilesystem":{ "shape":"BoxedBoolean", - "documentation":"

When this parameter is true, the container is given read-only access to its root file system. This parameter maps to ReadonlyRootfs in the Create a container section of the Docker Remote API and the --read-only option to docker run.

" + "documentation":"

When this parameter is true, the container is given read-only access to its root file system. This parameter maps to ReadonlyRootfs in the Create a container section of the Docker Remote API and the --read-only option to docker run.

" }, "dnsServers":{ "shape":"StringList", - "documentation":"

A list of DNS servers that are presented to the container. This parameter maps to Dns in the Create a container section of the Docker Remote API and the --dns option to docker run.

" + "documentation":"

A list of DNS servers that are presented to the container. This parameter maps to Dns in the Create a container section of the Docker Remote API and the --dns option to docker run.

" }, "dnsSearchDomains":{ "shape":"StringList", - "documentation":"

A list of DNS search domains that are presented to the container. This parameter maps to DnsSearch in the Create a container section of the Docker Remote API and the --dns-search option to docker run.

" + "documentation":"

A list of DNS search domains that are presented to the container. This parameter maps to DnsSearch in the Create a container section of the Docker Remote API and the --dns-search option to docker run.

" }, "extraHosts":{ "shape":"HostEntryList", - "documentation":"

A list of hostnames and IP address mappings to append to the /etc/hosts file on the container. This parameter maps to ExtraHosts in the Create a container section of the Docker Remote API and the --add-host option to docker run.

" + "documentation":"

A list of hostnames and IP address mappings to append to the /etc/hosts file on the container. This parameter maps to ExtraHosts in the Create a container section of the Docker Remote API and the --add-host option to docker run.

" }, "dockerSecurityOptions":{ "shape":"StringList", - "documentation":"

A list of strings to provide custom labels for SELinux and AppArmor multi-level security systems. This parameter maps to SecurityOpt in the Create a container section of the Docker Remote API and the --security-opt option to docker run.

The Amazon ECS container agent running on a container instance must register with the ECS_SELINUX_CAPABLE=true or ECS_APPARMOR_CAPABLE=true environment variables before containers placed on that instance can use these security options. For more information, see Amazon ECS Container Agent Configuration in the Amazon EC2 Container Service Developer Guide.

" + "documentation":"

A list of strings to provide custom labels for SELinux and AppArmor multi-level security systems. This parameter maps to SecurityOpt in the Create a container section of the Docker Remote API and the --security-opt option to docker run.

The Amazon ECS container agent running on a container instance must register with the ECS_SELINUX_CAPABLE=true or ECS_APPARMOR_CAPABLE=true environment variables before containers placed on that instance can use these security options. For more information, see Amazon ECS Container Agent Configuration in the Amazon EC2 Container Service Developer Guide.

" }, "dockerLabels":{ "shape":"DockerLabelsMap", - "documentation":"

A key/value map of labels to add to the container. This parameter maps to Labels in the Create a container section of the Docker Remote API and the --label option to docker run. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: sudo docker version | grep \"Server API version\"

" + "documentation":"

A key/value map of labels to add to the container. This parameter maps to Labels in the Create a container section of the Docker Remote API and the --label option to docker run. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: sudo docker version | grep \"Server API version\"

" }, "ulimits":{ "shape":"UlimitList", - "documentation":"

A list of ulimits to set in the container. This parameter maps to Ulimits in the Create a container section of the Docker Remote API and the --ulimit option to docker run. Valid naming values are displayed in the Ulimit data type. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: sudo docker version | grep \"Server API version\"

" + "documentation":"

A list of ulimits to set in the container. This parameter maps to Ulimits in the Create a container section of the Docker Remote API and the --ulimit option to docker run. Valid naming values are displayed in the Ulimit data type. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: sudo docker version | grep \"Server API version\"

" }, "logConfiguration":{ "shape":"LogConfiguration", - "documentation":"

The log configuration specification for the container. This parameter maps to LogConfig in the Create a container section of the Docker Remote API and the --log-driver option to docker run. By default, containers use the same logging driver that the Docker daemon uses; however the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see Configure logging drivers in the Docker documentation.

Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon (shown in the LogConfiguration data type). Currently unsupported log drivers may be available in future releases of the Amazon ECS container agent.

This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: sudo docker version | grep \"Server API version\"

The Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS environment variable before containers placed on that instance can use these log configuration options. For more information, see Amazon ECS Container Agent Configuration in the Amazon EC2 Container Service Developer Guide.

" + "documentation":"

The log configuration specification for the container. This parameter maps to LogConfig in the Create a container section of the Docker Remote API and the --log-driver option to docker run. By default, containers use the same logging driver that the Docker daemon uses; however the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see Configure logging drivers in the Docker documentation.

Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon (shown in the LogConfiguration data type). Currently unsupported log drivers may be available in future releases of the Amazon ECS container agent.

This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: sudo docker version | grep \"Server API version\"

The Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS environment variable before containers placed on that instance can use these log configuration options. For more information, see Amazon ECS Container Agent Configuration in the Amazon EC2 Container Service Developer Guide.

" } }, "documentation":"

Container definitions are used in task definitions to describe the different containers that are launched as part of a task.

" @@ -709,11 +709,11 @@ }, "remainingResources":{ "shape":"Resources", - "documentation":"

The remaining resources of the container instance that are available for new tasks.

" + "documentation":"

For most resource types, this parameter describes the remaining resources of the container instance that are available for new tasks. For port resource types, this parameter describes the ports that are reserved by the Amazon ECS container agent and any containers that have reserved port mappings; any port that is not specified here is available for new tasks.

" }, "registeredResources":{ "shape":"Resources", - "documentation":"

The registered resources on the container instance that are in use by current tasks.

" + "documentation":"

For most resource types, this parameter describes the registered resources on the container instance that are in use by current tasks. For port resource types, this parameter describes the ports that were reserved by the Amazon ECS container agent when it registered the container instance with Amazon ECS.

" }, "status":{ "shape":"String", @@ -926,11 +926,11 @@ "members":{ "maximumPercent":{ "shape":"BoxedInteger", - "documentation":"

The upper limit (as a percentage of the service's desiredCount) of the number of running tasks that can be running in a service during a deployment. The maximum number of tasks during a deployment is the desiredCount multiplied by the maximumPercent/100, rounded down to the nearest integer value.

" + "documentation":"

The upper limit (as a percentage of the service's desiredCount) of the number of tasks that are allowed in the RUNNING or PENDING state in a service during a deployment. The maximum number of tasks during a deployment is the desiredCount multiplied by the maximumPercent/100, rounded down to the nearest integer value.

" }, "minimumHealthyPercent":{ "shape":"BoxedInteger", - "documentation":"

The lower limit (as a percentage of the service's desiredCount) of the number of running tasks that must remain running and healthy in a service during a deployment. The minimum healthy tasks during a deployment is the desiredCount multiplied by the minimumHealthyPercent/100, rounded up to the nearest integer value.

" + "documentation":"

The lower limit (as a percentage of the service's desiredCount) of the number of running tasks that must remain in the RUNNING state in a service during a deployment. The minimum healthy tasks during a deployment is the desiredCount multiplied by the minimumHealthyPercent/100, rounded up to the nearest integer value.

" } }, "documentation":"

Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.

" @@ -953,7 +953,7 @@ }, "force":{ "shape":"BoxedBoolean", - "documentation":"

Forces the deregistration of the container instance. If you have tasks running on the container instance when you deregister it with the force option, these tasks remain running and they continue to pass Elastic Load Balancing load balancer health checks until you terminate the instance or the tasks stop through some other means, but they are orphaned (no longer monitored or accounted for by Amazon ECS). If an orphaned task on your container instance is part of an Amazon ECS service, then the service scheduler starts another copy of that task, on a different container instance if possible.

" + "documentation":"

Forces the deregistration of the container instance. If you have tasks running on the container instance when you deregister it with the force option, these tasks remain running until you terminate the instance or the tasks stop through some other means, but they are orphaned (no longer monitored or accounted for by Amazon ECS). If an orphaned task on your container instance is part of an Amazon ECS service, then the service scheduler starts another copy of that task, on a different container instance if possible.

Any containers in orphaned service tasks that are registered with a Classic load balancer or an Application load balancer target group are deregistered, and they will begin connection draining according to the settings on the load balancer or target group.

" } } }, @@ -1041,7 +1041,7 @@ }, "services":{ "shape":"StringList", - "documentation":"

A list of services to describe.

" + "documentation":"

A list of services to describe. You may specify up to 10 services to describe in a single operation.

" } } }, @@ -1251,7 +1251,7 @@ "members":{ "cluster":{ "shape":"String", - "documentation":"

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instances to list. If you do not specify a cluster, the default cluster is assumed..

" + "documentation":"

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instances to list. If you do not specify a cluster, the default cluster is assumed.

" }, "nextToken":{ "shape":"String", @@ -1281,7 +1281,7 @@ "members":{ "cluster":{ "shape":"String", - "documentation":"

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the services to list. If you do not specify a cluster, the default cluster is assumed..

" + "documentation":"

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the services to list. If you do not specify a cluster, the default cluster is assumed.

" }, "nextToken":{ "shape":"String", @@ -1383,7 +1383,7 @@ "members":{ "cluster":{ "shape":"String", - "documentation":"

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the tasks to list. If you do not specify a cluster, the default cluster is assumed..

" + "documentation":"

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the tasks to list. If you do not specify a cluster, the default cluster is assumed.

" }, "containerInstance":{ "shape":"String", @@ -1566,7 +1566,7 @@ }, "hostPort":{ "shape":"BoxedInteger", - "documentation":"

The port number on the container instance to reserve for your container. You can specify a non-reserved host port for your container port mapping, or you can omit the hostPort (or set it to 0) while specifying a containerPort and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version.

The default ephemeral port range is 49153 to 65535, and this range is used for Docker versions prior to 1.6.0. For Docker version 1.6.0 and later, the Docker daemon tries to read the ephemeral port range from /proc/sys/net/ipv4/ip_local_port_range; if this kernel parameter is unavailable, the default ephemeral port range is used. You should not attempt to specify a host port in the ephemeral port range, because these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range.

The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent port 51678. Any host port that was previously specified in a running task is also reserved while the task is running (after a task stops, the host port is released).The current reserved ports are displayed in the remainingResources of DescribeContainerInstances output, and a container instance may have up to 100 reserved ports at a time, including the default reserved ports (automatically assigned ports do not count toward the 100 reserved ports limit).

" + "documentation":"

The port number on the container instance to reserve for your container. You can specify a non-reserved host port for your container port mapping, or you can omit the hostPort (or set it to 0) while specifying a containerPort and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version.

The default ephemeral port range is 49153 to 65535, and this range is used for Docker versions prior to 1.6.0. For Docker version 1.6.0 and later, the Docker daemon tries to read the ephemeral port range from /proc/sys/net/ipv4/ip_local_port_range; if this kernel parameter is unavailable, the default ephemeral port range is used. You should not attempt to specify a host port in the ephemeral port range, because these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range.

The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678 and 51679. Any host port that was previously specified in a running task is also reserved while the task is running (after a task stops, the host port is released).The current reserved ports are displayed in the remainingResources of DescribeContainerInstances output, and a container instance may have up to 100 reserved ports at a time, including the default reserved ports (automatically assigned ports do not count toward the 100 reserved ports limit).

" }, "protocol":{ "shape":"TransportProtocol", @@ -1584,7 +1584,7 @@ "members":{ "cluster":{ "shape":"String", - "documentation":"

The short name or full Amazon Resource Name (ARN) of the cluster with which to register your container instance. If you do not specify a cluster, the default cluster is assumed..

" + "documentation":"

The short name or full Amazon Resource Name (ARN) of the cluster with which to register your container instance. If you do not specify a cluster, the default cluster is assumed.

" }, "instanceIdentityDocument":{ "shape":"String", @@ -1631,7 +1631,7 @@ }, "taskRoleArn":{ "shape":"String", - "documentation":"

The Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role.

" + "documentation":"

The short name or full Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role. For more information, see IAM Roles for Tasks in the Amazon EC2 Container Service Developer Guide.

" }, "networkMode":{ "shape":"NetworkMode", @@ -1700,7 +1700,7 @@ "members":{ "cluster":{ "shape":"String", - "documentation":"

The short name or full Amazon Resource Name (ARN) of the cluster on which to run your task. If you do not specify a cluster, the default cluster is assumed..

" + "documentation":"

The short name or full Amazon Resource Name (ARN) of the cluster on which to run your task. If you do not specify a cluster, the default cluster is assumed.

" }, "taskDefinition":{ "shape":"String", @@ -1860,7 +1860,7 @@ "members":{ "cluster":{ "shape":"String", - "documentation":"

The short name or full Amazon Resource Name (ARN) of the cluster on which to start your task. If you do not specify a cluster, the default cluster is assumed..

" + "documentation":"

The short name or full Amazon Resource Name (ARN) of the cluster on which to start your task. If you do not specify a cluster, the default cluster is assumed.

" }, "taskDefinition":{ "shape":"String", @@ -1899,7 +1899,7 @@ "members":{ "cluster":{ "shape":"String", - "documentation":"

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the task to stop. If you do not specify a cluster, the default cluster is assumed..

" + "documentation":"

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the task to stop. If you do not specify a cluster, the default cluster is assumed.

" }, "task":{ "shape":"String", diff --git a/botocore/data/elbv2/2015-12-01/service-2.json b/botocore/data/elbv2/2015-12-01/service-2.json index 90a90679..7f5b6afc 100644 --- a/botocore/data/elbv2/2015-12-01/service-2.json +++ b/botocore/data/elbv2/2015-12-01/service-2.json @@ -27,7 +27,7 @@ {"shape":"LoadBalancerNotFoundException"}, {"shape":"TargetGroupNotFoundException"} ], - "documentation":"

Adds the specified tags to the specified resource. You can tag your Application load balancers and your target groups.

Each tag consists of a key and an optional value. If a resource already has a tag with the same key, AddTags updates its value.

To list the current tags for your resources, use DescribeTags. To remove tags from your resources, use RemoveTags.

" + "documentation":"

Adds the specified tags to the specified resource. You can tag your Application Load Balancers and your target groups.

Each tag consists of a key and an optional value. If a resource already has a tag with the same key, AddTags updates its value.

To list the current tags for your resources, use DescribeTags. To remove tags from your resources, use RemoveTags.

" }, "CreateListener":{ "name":"CreateListener", @@ -54,7 +54,7 @@ {"shape":"UnsupportedProtocolException"}, {"shape":"TooManyRegistrationsForTargetIdException"} ], - "documentation":"

Creates a listener for the specified Application load balancer.

To update a listener, use ModifyListener. When you are finished with a listener, you can delete it using DeleteListener. If you are finished with both the listener and the load balancer, you can delete them both using DeleteLoadBalancer.

For more information, see Listeners for Your Application Load Balancers in the Application Load Balancers Guide.

" + "documentation":"

Creates a listener for the specified Application Load Balancer.

You can create up to 10 listeners per load balancer.

To update a listener, use ModifyListener. When you are finished with a listener, you can delete it using DeleteListener. If you are finished with both the listener and the load balancer, you can delete them both using DeleteLoadBalancer.

For more information, see Listeners for Your Application Load Balancers in the Application Load Balancers Guide.

" }, "CreateLoadBalancer":{ "name":"CreateLoadBalancer", @@ -78,7 +78,7 @@ {"shape":"TooManyTagsException"}, {"shape":"DuplicateTagKeysException"} ], - "documentation":"

Creates an Application load balancer.

To create listeners for your load balancer, use CreateListener. You can add security groups, subnets, and tags when you create your load balancer, or you can add them later using SetSecurityGroups, SetSubnets, and AddTags.

To describe your current load balancers, see DescribeLoadBalancers. When you are finished with a load balancer, you can delete it using DeleteLoadBalancer.

You can create up to 20 load balancers per region per account. You can request an increase for the number of load balancers for your account. For more information, see Limits for Your Application Load Balancer in the Application Load Balancers Guide.

" + "documentation":"

Creates an Application Load Balancer.

To create listeners for your load balancer, use CreateListener. You can add security groups, subnets, and tags when you create your load balancer, or you can add them later using SetSecurityGroups, SetSubnets, and AddTags.

To describe your current load balancers, see DescribeLoadBalancers. When you are finished with a load balancer, you can delete it using DeleteLoadBalancer.

You can create up to 20 load balancers per region per account. You can request an increase for the number of load balancers for your account. For more information, see Limits for Your Application Load Balancer in the Application Load Balancers Guide.

For more information, see Application Load Balancers in the Application Load Balancers Guide.

" }, "CreateRule":{ "name":"CreateRule", @@ -101,7 +101,7 @@ {"shape":"InvalidConfigurationRequestException"}, {"shape":"TooManyRegistrationsForTargetIdException"} ], - "documentation":"

Creates a rule for the specified listener.

A rule consists conditions and actions. Rules are evaluated in priority order, from the lowest value to the highest value. When the conditions for a rule are met, the specified actions are taken. If no rule's conditions are met, the default actions for the listener are taken.

To view your current rules, use DescribeRules. To update a rule, use ModifyRule. To set the priorities of your rules, use SetRulePriorities. To delete a rule, use DeleteRule.

" + "documentation":"

Creates a rule for the specified listener.

Each rule can have one action and one condition. Rules are evaluated in priority order, from the lowest value to the highest value. When the condition for a rule is met, the specified action is taken. If no conditions are met, the default action for the default rule is taken. For more information, see Listener Rules in the Application Load Balancers Guide.

To view your current rules, use DescribeRules. To update a rule, use ModifyRule. To set the priorities of your rules, use SetRulePriorities. To delete a rule, use DeleteRule.

" }, "CreateTargetGroup":{ "name":"CreateTargetGroup", @@ -151,7 +151,7 @@ {"shape":"LoadBalancerNotFoundException"}, {"shape":"OperationNotPermittedException"} ], - "documentation":"

Deletes the specified load balancer and its attached listeners.

You can't delete a load balancer if deletion protection is enabled. If the load balancer does not exist or has already been deleted, the call succeeds.

Deleting a load balancer does not affect its registered targets. For example, your EC2 instances continue to run and are still registered to their target groups. If you no longer need these EC2 instances, you can stop or terminate them.

" + "documentation":"

Deletes the specified Application Load Balancer and its attached listeners.

You can't delete a load balancer if deletion protection is enabled. If the load balancer does not exist or has already been deleted, the call succeeds.

Deleting a load balancer does not affect its registered targets. For example, your EC2 instances continue to run and are still registered to their target groups. If you no longer need these EC2 instances, you can stop or terminate them.

" }, "DeleteRule":{ "name":"DeleteRule", @@ -218,7 +218,7 @@ {"shape":"ListenerNotFoundException"}, {"shape":"LoadBalancerNotFoundException"} ], - "documentation":"

Describes the specified listeners or the listeners for the specified load balancer. You must specify either a load balancer or one or more listeners.

" + "documentation":"

Describes the specified listeners or the listeners for the specified Application Load Balancer. You must specify either a load balancer or one or more listeners.

" }, "DescribeLoadBalancerAttributes":{ "name":"DescribeLoadBalancerAttributes", @@ -234,7 +234,7 @@ "errors":[ {"shape":"LoadBalancerNotFoundException"} ], - "documentation":"

Describes the attributes for the specified load balancer.

" + "documentation":"

Describes the attributes for the specified Application Load Balancer.

" }, "DescribeLoadBalancers":{ "name":"DescribeLoadBalancers", @@ -250,7 +250,7 @@ "errors":[ {"shape":"LoadBalancerNotFoundException"} ], - "documentation":"

Describes the specified Application load balancers or all of your Application load balancers.

To describe the listeners for a load balancer, use DescribeListeners. To describe the attributes for a load balancer, use DescribeLoadBalancerAttributes.

" + "documentation":"

Describes the specified Application Load Balancers or all of your Application Load Balancers.

To describe the listeners for a load balancer, use DescribeListeners. To describe the attributes for a load balancer, use DescribeLoadBalancerAttributes.

" }, "DescribeRules":{ "name":"DescribeRules", @@ -397,7 +397,7 @@ {"shape":"LoadBalancerNotFoundException"}, {"shape":"InvalidConfigurationRequestException"} ], - "documentation":"

Modifies the specified attributes of the specified load balancer.

If any of the specified attributes can't be modified as requested, the call fails. Any existing attributes that you do not modify retain their current values.

" + "documentation":"

Modifies the specified attributes of the specified Application Load Balancer.

If any of the specified attributes can't be modified as requested, the call fails. Any existing attributes that you do not modify retain their current values.

" }, "ModifyRule":{ "name":"ModifyRule", @@ -467,7 +467,7 @@ {"shape":"InvalidTargetException"}, {"shape":"TooManyRegistrationsForTargetIdException"} ], - "documentation":"

Registers the specified targets with the specified target group.

The target must be in the virtual private cloud (VPC) that you specified for the target group.

To remove a target from a target group, use DeregisterTargets.

" + "documentation":"

Registers the specified targets with the specified target group.

By default, the load balancer routes requests to registered targets using the protocol and port number for the target group. Alternatively, you can override the port for a target when you register it.

The target must be in the virtual private cloud (VPC) that you specified for the target group. If the target is an EC2 instance, it can't be in the stopped or running state when you register it.

To remove a target from a target group, use DeregisterTargets.

" }, "RemoveTags":{ "name":"RemoveTags", @@ -697,7 +697,7 @@ }, "DefaultActions":{ "shape":"Actions", - "documentation":"

The default actions for the listener.

" + "documentation":"

The default action for the listener.

" } }, "documentation":"

Contains the parameters for CreateListener.

" @@ -767,7 +767,7 @@ }, "Conditions":{ "shape":"RuleConditionList", - "documentation":"

The conditions.

" + "documentation":"

A condition. Each condition has the field path-pattern and specifies one path pattern. A path pattern is case sensitive, can be up to 255 characters in length, and can contain any of the following characters:

" }, "Priority":{ "shape":"RulePriority", @@ -775,7 +775,7 @@ }, "Actions":{ "shape":"Actions", - "documentation":"

The actions for the rule.

" + "documentation":"

An action. Each action has the type forward and specifies a target group.

" } }, "documentation":"

Contains the parameters for CreateRule.

" @@ -943,7 +943,7 @@ }, "Targets":{ "shape":"TargetDescriptions", - "documentation":"

The targets.

" + "documentation":"

The targets. If you specified a port override when you registered a target, you must specify both the target ID and the port when you deregister it.

" } }, "documentation":"

Contains the parameters for DeregisterTargets.

" @@ -1479,7 +1479,7 @@ "members":{ "Key":{ "shape":"LoadBalancerAttributeKey", - "documentation":"

The name of the attribute.

" + "documentation":"

The name of the attribute.

" }, "Value":{ "shape":"LoadBalancerAttributeValue", @@ -1806,7 +1806,7 @@ }, "Targets":{ "shape":"TargetDescriptions", - "documentation":"

The targets.

" + "documentation":"

The targets. The default port for a target is the port for the target group. You can specify a port override. If a target is already registered, you can register it again using a different port.

" } }, "documentation":"

Contains the parameters for RegisterTargets.

" @@ -1894,11 +1894,11 @@ "members":{ "Field":{ "shape":"ConditionFieldName", - "documentation":"

The name of the field. The possible value is path-pattern.

" + "documentation":"

The only possible value is path-pattern.

" }, "Values":{ "shape":"ListOfString", - "documentation":"

The values for the field.

A path pattern is case sensitive, can be up to 255 characters in length, and can contain any of the following characters:

" + "documentation":"

The path pattern. You can specify a single path pattern.

A path pattern is case sensitive, can be up to 255 characters in length, and can contain any of the following characters:

" } }, "documentation":"

Information about a condition for a rule.

" @@ -2249,7 +2249,7 @@ "members":{ "Key":{ "shape":"TargetGroupAttributeKey", - "documentation":"

The name of the attribute.

" + "documentation":"

The name of the attribute.

" }, "Value":{ "shape":"TargetGroupAttributeValue", @@ -2466,5 +2466,5 @@ "VpcId":{"type":"string"}, "ZoneName":{"type":"string"} }, - "documentation":"Elastic Load Balancing

A load balancer distributes incoming traffic across targets, such as your EC2 instances. This enables you to increase the availability of your application. The load balancer also monitors the health of its registered targets and ensures that it routes traffic only to healthy targets. You configure your load balancer to accept incoming traffic by specifying one or more listeners, which are configured with a protocol and port number for connections from clients to the load balancer. You configure a target group with a protocol and port number for connections from the load balancer to the targets, and with health check settings to be used when checking the health status of the targets.

Elastic Load Balancing supports two types of load balancers: Classic load balancers and Application load balancers (new). A Classic load balancer makes routing and load balancing decisions either at the transport layer (TCP/SSL) or the application layer (HTTP/HTTPS), and supports either EC2-Classic or a VPC. An Application load balancer makes routing and load balancing decisions at the application layer (HTTP/HTTPS), supports path-based routing, and can route requests to one or more ports on each EC2 instance or container instance in your virtual private cloud (VPC). For more information, see the Elastic Load Balancing User Guide.

This reference covers the 2015-12-01 API, which supports Application load balancers. The 2012-06-01 API supports Classic load balancers.

To get started with an Application load balancer, complete the following tasks:

  1. Create a load balancer using CreateLoadBalancer.

  2. Create a target group using CreateTargetGroup.

  3. Register targets for the target group using RegisterTargets.

  4. Create one or more listeners for your load balancer using CreateListener.

  5. (Optional) Create one or more rules for content routing based on URL using CreateRule.

To delete an Application load balancer and its related resources, complete the following tasks:

  1. Delete the load balancer using DeleteLoadBalancer.

  2. Delete the target group using DeleteTargetGroup.

All Elastic Load Balancing operations are idempotent, which means that they complete at most one time. If you repeat an operation, it succeeds.

" + "documentation":"Elastic Load Balancing

A load balancer distributes incoming traffic across targets, such as your EC2 instances. This enables you to increase the availability of your application. The load balancer also monitors the health of its registered targets and ensures that it routes traffic only to healthy targets. You configure your load balancer to accept incoming traffic by specifying one or more listeners, which are configured with a protocol and port number for connections from clients to the load balancer. You configure a target group with a protocol and port number for connections from the load balancer to the targets, and with health check settings to be used when checking the health status of the targets.

Elastic Load Balancing supports two types of load balancers: Classic Load Balancers and Application Load Balancers. A Classic Load Balancer makes routing and load balancing decisions either at the transport layer (TCP/SSL) or the application layer (HTTP/HTTPS), and supports either EC2-Classic or a VPC. An Application Load Balancer makes routing and load balancing decisions at the application layer (HTTP/HTTPS), supports path-based routing, and can route requests to one or more ports on each EC2 instance or container instance in your virtual private cloud (VPC). For more information, see the Elastic Load Balancing User Guide.

This reference covers the 2015-12-01 API, which supports Application Load Balancers. The 2012-06-01 API supports Classic Load Balancers.

To get started, complete the following tasks:

  1. Create an Application Load Balancer using CreateLoadBalancer.

  2. Create a target group using CreateTargetGroup.

  3. Register targets for the target group using RegisterTargets.

  4. Create one or more listeners for your load balancer using CreateListener.

  5. (Optional) Create one or more rules for content routing based on URL using CreateRule.

To delete an Application Load Balancer and its related resources, complete the following tasks:

  1. Delete the load balancer using DeleteLoadBalancer.

  2. Delete the target group using DeleteTargetGroup.

All Elastic Load Balancing operations are idempotent, which means that they complete at most one time. If you repeat an operation, it succeeds.

" } diff --git a/botocore/data/endpoints.json b/botocore/data/endpoints.json index 4c9a8661..ee98f0e4 100644 --- a/botocore/data/endpoints.json +++ b/botocore/data/endpoints.json @@ -150,6 +150,18 @@ "eu-central-1": {} } }, + "budgets": { + "partitionEndpoint": "aws-global", + "isRegionalized": false, + "endpoints": { + "aws-global": { + "hostname": "budgets.amazonaws.com", + "credentialScope": { + "region": "us-east-1" + } + } + } + }, "cloudfront": { "partitionEndpoint": "aws-global", "isRegionalized": false, diff --git a/botocore/data/ses/2010-12-01/service-2.json b/botocore/data/ses/2010-12-01/service-2.json index 99f35200..416a1b29 100644 --- a/botocore/data/ses/2010-12-01/service-2.json +++ b/botocore/data/ses/2010-12-01/service-2.json @@ -29,6 +29,44 @@ ], "documentation":"

Creates a receipt rule set by cloning an existing one. All receipt rules and configurations are copied to the new receipt rule set and are completely independent of the source rule set.

For information about setting up rule sets, see the Amazon SES Developer Guide.

This action is throttled at one request per second.

" }, + "CreateConfigurationSet":{ + "name":"CreateConfigurationSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateConfigurationSetRequest"}, + "output":{ + "shape":"CreateConfigurationSetResponse", + "resultWrapper":"CreateConfigurationSetResult" + }, + "errors":[ + {"shape":"ConfigurationSetAlreadyExistsException"}, + {"shape":"InvalidConfigurationSetException"}, + {"shape":"LimitExceededException"} + ], + "documentation":"

Creates a configuration set.

Configuration sets enable you to publish email sending events. For information about using configuration sets, see the Amazon SES Developer Guide.

This action is throttled at one request per second.

" + }, + "CreateConfigurationSetEventDestination":{ + "name":"CreateConfigurationSetEventDestination", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateConfigurationSetEventDestinationRequest"}, + "output":{ + "shape":"CreateConfigurationSetEventDestinationResponse", + "resultWrapper":"CreateConfigurationSetEventDestinationResult" + }, + "errors":[ + {"shape":"ConfigurationSetDoesNotExistException"}, + {"shape":"EventDestinationAlreadyExistsException"}, + {"shape":"InvalidCloudWatchDestinationException"}, + {"shape":"InvalidFirehoseDestinationException"}, + {"shape":"LimitExceededException"} + ], + "documentation":"

Creates a configuration set event destination.

When you create or update an event destination, you must provide one, and only one, destination. The destination can be either Amazon CloudWatch or Amazon Kinesis Firehose.

An event destination is the AWS service to which Amazon SES publishes the email sending events associated with a configuration set. For information about using configuration sets, see the Amazon SES Developer Guide.

This action is throttled at one request per second.

" + }, "CreateReceiptFilter":{ "name":"CreateReceiptFilter", "http":{ @@ -85,6 +123,39 @@ ], "documentation":"

Creates an empty receipt rule set.

For information about setting up receipt rule sets, see the Amazon SES Developer Guide.

This action is throttled at one request per second.

" }, + "DeleteConfigurationSet":{ + "name":"DeleteConfigurationSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteConfigurationSetRequest"}, + "output":{ + "shape":"DeleteConfigurationSetResponse", + "resultWrapper":"DeleteConfigurationSetResult" + }, + "errors":[ + {"shape":"ConfigurationSetDoesNotExistException"} + ], + "documentation":"

Deletes a configuration set.

Configuration sets enable you to publish email sending events. For information about using configuration sets, see the Amazon SES Developer Guide.

This action is throttled at one request per second.

" + }, + "DeleteConfigurationSetEventDestination":{ + "name":"DeleteConfigurationSetEventDestination", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteConfigurationSetEventDestinationRequest"}, + "output":{ + "shape":"DeleteConfigurationSetEventDestinationResponse", + "resultWrapper":"DeleteConfigurationSetEventDestinationResult" + }, + "errors":[ + {"shape":"ConfigurationSetDoesNotExistException"}, + {"shape":"EventDestinationDoesNotExistException"} + ], + "documentation":"

Deletes a configuration set event destination.

Configuration set event destinations are associated with configuration sets, which enable you to publish email sending events. For information about using configuration sets, see the Amazon SES Developer Guide.

This action is throttled at one request per second.

" + }, "DeleteIdentity":{ "name":"DeleteIdentity", "http":{ @@ -178,6 +249,22 @@ }, "documentation":"

Returns the metadata and receipt rules for the receipt rule set that is currently active.

For information about setting up receipt rule sets, see the Amazon SES Developer Guide.

This action is throttled at one request per second.

" }, + "DescribeConfigurationSet":{ + "name":"DescribeConfigurationSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeConfigurationSetRequest"}, + "output":{ + "shape":"DescribeConfigurationSetResponse", + "resultWrapper":"DescribeConfigurationSetResult" + }, + "errors":[ + {"shape":"ConfigurationSetDoesNotExistException"} + ], + "documentation":"

Returns the details of the specified configuration set.

Configuration sets enable you to publish email sending events. For information about using configuration sets, see the Amazon SES Developer Guide.

This action is throttled at one request per second.

" + }, "DescribeReceiptRule":{ "name":"DescribeReceiptRule", "http":{ @@ -300,6 +387,19 @@ }, "documentation":"

Returns the user's sending statistics. The result is a list of data points, representing the last two weeks of sending activity.

Each data point in the list contains statistics for a 15-minute interval.

This action is throttled at one request per second.

" }, + "ListConfigurationSets":{ + "name":"ListConfigurationSets", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListConfigurationSetsRequest"}, + "output":{ + "shape":"ListConfigurationSetsResponse", + "resultWrapper":"ListConfigurationSetsResult" + }, + "documentation":"

Lists the configuration sets associated with your AWS account.

Configuration sets enable you to publish email sending events. For information about using configuration sets, see the Amazon SES Developer Guide.

This action is throttled at one request per second and can return up to 50 configuration sets at a time.

" + }, "ListIdentities":{ "name":"ListIdentities", "http":{ @@ -426,7 +526,8 @@ }, "errors":[ {"shape":"MessageRejected"}, - {"shape":"MailFromDomainNotVerifiedException"} + {"shape":"MailFromDomainNotVerifiedException"}, + {"shape":"ConfigurationSetDoesNotExistException"} ], "documentation":"

Composes an email message based on input data, and then immediately queues the message for sending.

There are several important points to know about SendEmail:

" }, @@ -443,7 +544,8 @@ }, "errors":[ {"shape":"MessageRejected"}, - {"shape":"MailFromDomainNotVerifiedException"} + {"shape":"MailFromDomainNotVerifiedException"}, + {"shape":"ConfigurationSetDoesNotExistException"} ], "documentation":"

Sends an email message, with header and content specified by the client. The SendRawEmail action is useful for sending multipart MIME emails. The raw text of the message must comply with Internet email standards; otherwise, the message cannot be sent.

There are several important points to know about SendRawEmail:

" }, @@ -545,6 +647,25 @@ ], "documentation":"

Sets the position of the specified receipt rule in the receipt rule set.

For information about managing receipt rules, see the Amazon SES Developer Guide.

This action is throttled at one request per second.

" }, + "UpdateConfigurationSetEventDestination":{ + "name":"UpdateConfigurationSetEventDestination", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateConfigurationSetEventDestinationRequest"}, + "output":{ + "shape":"UpdateConfigurationSetEventDestinationResponse", + "resultWrapper":"UpdateConfigurationSetEventDestinationResult" + }, + "errors":[ + {"shape":"ConfigurationSetDoesNotExistException"}, + {"shape":"EventDestinationDoesNotExistException"}, + {"shape":"InvalidCloudWatchDestinationException"}, + {"shape":"InvalidFirehoseDestinationException"} + ], + "documentation":"

Updates the event destination of a configuration set.

When you create or update an event destination, you must provide one, and only one, destination. The destination can be either Amazon CloudWatch or Amazon Kinesis Firehose.

Event destinations are associated with configuration sets, which enable you to publish email sending events to Amazon CloudWatch or Amazon Kinesis Firehose. For information about using configuration sets, see the Amazon SES Developer Guide.

This action is throttled at one request per second.

" + }, "UpdateReceiptRule":{ "name":"UpdateReceiptRule", "http":{ @@ -644,7 +765,7 @@ "members":{ "Name":{"shape":"RuleOrRuleSetName"} }, - "documentation":"

Indicates that a resource could not be created due to a naming conflict.

", + "documentation":"

Indicates that a resource could not be created because of a naming conflict.

", "error":{ "code":"AlreadyExists", "httpStatusCode":400, @@ -786,6 +907,94 @@ }, "documentation":"

An empty element returned on a successful request.

" }, + "CloudWatchDestination":{ + "type":"structure", + "required":["DimensionConfigurations"], + "members":{ + "DimensionConfigurations":{ + "shape":"CloudWatchDimensionConfigurations", + "documentation":"

A list of dimensions upon which to categorize your emails when you publish email sending events to Amazon CloudWatch.

" + } + }, + "documentation":"

Contains information associated with an Amazon CloudWatch event destination to which email sending events are published.

Event destinations, such as Amazon CloudWatch, are associated with configuration sets, which enable you to publish email sending events. For information about using configuration sets, see the Amazon SES Developer Guide.

" + }, + "CloudWatchDimensionConfiguration":{ + "type":"structure", + "required":[ + "DimensionName", + "DimensionValueSource", + "DefaultDimensionValue" + ], + "members":{ + "DimensionName":{ + "shape":"DimensionName", + "documentation":"

The name of an Amazon CloudWatch dimension associated with an email sending metric. The name must:

" + }, + "DimensionValueSource":{ + "shape":"DimensionValueSource", + "documentation":"

The place where Amazon SES finds the value of a dimension to publish to Amazon CloudWatch. If you want Amazon SES to use the message tags that you specify using an X-SES-MESSAGE-TAGS header or a parameter to the SendEmail/SendRawEmail API, choose messageTag. If you want Amazon SES to use your own email headers, choose emailHeader.

" + }, + "DefaultDimensionValue":{ + "shape":"DefaultDimensionValue", + "documentation":"

The default value of the dimension that is published to Amazon CloudWatch if you do not provide the value of the dimension when you send an email. The default value must:

" + } + }, + "documentation":"

Contains the dimension configuration to use when you publish email sending events to Amazon CloudWatch.

For information about publishing email sending events to Amazon CloudWatch, see the Amazon SES Developer Guide.

" + }, + "CloudWatchDimensionConfigurations":{ + "type":"list", + "member":{"shape":"CloudWatchDimensionConfiguration"} + }, + "ConfigurationSet":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{ + "shape":"ConfigurationSetName", + "documentation":"

The name of the configuration set. The name must:

" + } + }, + "documentation":"

The name of the configuration set.

Configuration sets enable you to publish email sending events. For information about using configuration sets, see the Amazon SES Developer Guide.

" + }, + "ConfigurationSetAlreadyExistsException":{ + "type":"structure", + "members":{ + "ConfigurationSetName":{"shape":"ConfigurationSetName"} + }, + "documentation":"

Indicates that the configuration set could not be created because of a naming conflict.

", + "error":{ + "code":"ConfigurationSetAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ConfigurationSetAttribute":{ + "type":"string", + "enum":["eventDestinations"] + }, + "ConfigurationSetAttributeList":{ + "type":"list", + "member":{"shape":"ConfigurationSetAttribute"} + }, + "ConfigurationSetDoesNotExistException":{ + "type":"structure", + "members":{ + "ConfigurationSetName":{"shape":"ConfigurationSetName"} + }, + "documentation":"

Indicates that the configuration set does not exist.

", + "error":{ + "code":"ConfigurationSetDoesNotExist", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ConfigurationSetName":{"type":"string"}, + "ConfigurationSets":{ + "type":"list", + "member":{"shape":"ConfigurationSet"} + }, "Content":{ "type":"structure", "required":["Data"], @@ -802,6 +1011,47 @@ "documentation":"

Represents textual data, plus an optional character set specification.

By default, the text must be 7-bit ASCII, due to the constraints of the SMTP protocol. If the text must contain any other characters, then you must also specify a character set. Examples include UTF-8, ISO-8859-1, and Shift_JIS.

" }, "Counter":{"type":"long"}, + "CreateConfigurationSetEventDestinationRequest":{ + "type":"structure", + "required":[ + "ConfigurationSetName", + "EventDestination" + ], + "members":{ + "ConfigurationSetName":{ + "shape":"ConfigurationSetName", + "documentation":"

The name of the configuration set to which to apply the event destination.

" + }, + "EventDestination":{ + "shape":"EventDestination", + "documentation":"

An object that describes the AWS service to which Amazon SES will publish the email sending events associated with the specified configuration set.

" + } + }, + "documentation":"

Represents a request to create a configuration set event destination. A configuration set event destination, which can be either Amazon CloudWatch or Amazon Kinesis Firehose, describes an AWS service in which Amazon SES publishes the email sending events associated with a configuration set. For information about using configuration sets, see the Amazon SES Developer Guide.

" + }, + "CreateConfigurationSetEventDestinationResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"

An empty element returned on a successful request.

" + }, + "CreateConfigurationSetRequest":{ + "type":"structure", + "required":["ConfigurationSet"], + "members":{ + "ConfigurationSet":{ + "shape":"ConfigurationSet", + "documentation":"

A data structure that contains the name of the configuration set.

" + } + }, + "documentation":"

Represents a request to create a configuration set. Configuration sets enable you to publish email sending events. For information about using configuration sets, see the Amazon SES Developer Guide.

" + }, + "CreateConfigurationSetResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"

An empty element returned on a successful request.

" + }, "CreateReceiptFilterRequest":{ "type":"structure", "required":["Filter"], @@ -873,6 +1123,48 @@ "TemporaryFailure" ] }, + "DefaultDimensionValue":{"type":"string"}, + "DeleteConfigurationSetEventDestinationRequest":{ + "type":"structure", + "required":[ + "ConfigurationSetName", + "EventDestinationName" + ], + "members":{ + "ConfigurationSetName":{ + "shape":"ConfigurationSetName", + "documentation":"

The name of the configuration set from which to delete the event destination.

" + }, + "EventDestinationName":{ + "shape":"EventDestinationName", + "documentation":"

The name of the event destination to delete.

" + } + }, + "documentation":"

Represents a request to delete a configuration set event destination. Configuration set event destinations are associated with configuration sets, which enable you to publish email sending events. For information about using configuration sets, see the Amazon SES Developer Guide.

" + }, + "DeleteConfigurationSetEventDestinationResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"

An empty element returned on a successful request.

" + }, + "DeleteConfigurationSetRequest":{ + "type":"structure", + "required":["ConfigurationSetName"], + "members":{ + "ConfigurationSetName":{ + "shape":"ConfigurationSetName", + "documentation":"

The name of the configuration set to delete.

" + } + }, + "documentation":"

Represents a request to delete a configuration set. Configuration sets enable you to publish email sending events. For information about using configuration sets, see the Amazon SES Developer Guide.

" + }, + "DeleteConfigurationSetResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"

An empty element returned on a successful request.

" + }, "DeleteIdentityPolicyRequest":{ "type":"structure", "required":[ @@ -1003,6 +1295,35 @@ }, "documentation":"

Represents the metadata and receipt rules for the receipt rule set that is currently active.

" }, + "DescribeConfigurationSetRequest":{ + "type":"structure", + "required":["ConfigurationSetName"], + "members":{ + "ConfigurationSetName":{ + "shape":"ConfigurationSetName", + "documentation":"

The name of the configuration set to describe.

" + }, + "ConfigurationSetAttributeNames":{ + "shape":"ConfigurationSetAttributeList", + "documentation":"

A list of configuration set attributes to return.

" + } + }, + "documentation":"

Represents a request to return the details of a configuration set. Configuration sets enable you to publish email sending events. For information about using configuration sets, see the Amazon SES Developer Guide.

" + }, + "DescribeConfigurationSetResponse":{ + "type":"structure", + "members":{ + "ConfigurationSet":{ + "shape":"ConfigurationSet", + "documentation":"

The configuration set object associated with the specified configuration set.

" + }, + "EventDestinations":{ + "shape":"EventDestinations", + "documentation":"

A list of event destinations associated with the configuration set.

" + } + }, + "documentation":"

Represents the details of a configuration set. Configuration sets enable you to publish email sending events. For information about using configuration sets, see the Amazon SES Developer Guide.

" + }, "DescribeReceiptRuleRequest":{ "type":"structure", "required":[ @@ -1075,6 +1396,14 @@ "documentation":"

Represents the destination of the message, consisting of To:, CC:, and BCC: fields.

By default, the string must be 7-bit ASCII. If the text must contain any other characters, then you must use MIME encoded-word syntax (RFC 2047) instead of a literal string. MIME encoded-word syntax uses the following form: =?charset?encoding?encoded-text?=. For more information, see RFC 2047.

" }, "DiagnosticCode":{"type":"string"}, + "DimensionName":{"type":"string"}, + "DimensionValueSource":{ + "type":"string", + "enum":[ + "messageTag", + "emailHeader" + ] + }, "DkimAttributes":{ "type":"map", "key":{"shape":"Identity"}, @@ -1093,6 +1422,83 @@ }, "DsnStatus":{"type":"string"}, "Enabled":{"type":"boolean"}, + "EventDestination":{ + "type":"structure", + "required":[ + "Name", + "MatchingEventTypes" + ], + "members":{ + "Name":{ + "shape":"EventDestinationName", + "documentation":"

The name of the event destination. The name must:

" + }, + "Enabled":{ + "shape":"Enabled", + "documentation":"

Sets whether Amazon SES publishes events to this destination when you send an email with the associated configuration set. Set to true to enable publishing to this destination; set to false to prevent publishing to this destination. The default value is false.

" + }, + "MatchingEventTypes":{ + "shape":"EventTypes", + "documentation":"

The type of email sending events to publish to the event destination.

" + }, + "KinesisFirehoseDestination":{ + "shape":"KinesisFirehoseDestination", + "documentation":"

An object that contains the delivery stream ARN and the IAM role ARN associated with an Amazon Kinesis Firehose event destination.

" + }, + "CloudWatchDestination":{ + "shape":"CloudWatchDestination", + "documentation":"

An object that contains the names, default values, and sources of the dimensions associated with an Amazon CloudWatch event destination.

" + } + }, + "documentation":"

Contains information about the event destination to which the specified email sending events are published.

When you create or update an event destination, you must provide one, and only one, destination. The destination can be either Amazon CloudWatch or Amazon Kinesis Firehose.

Event destinations are associated with configuration sets, which enable you to publish email sending events to Amazon CloudWatch or Amazon Kinesis Firehose. For information about using configuration sets, see the Amazon SES Developer Guide.

" + }, + "EventDestinationAlreadyExistsException":{ + "type":"structure", + "members":{ + "ConfigurationSetName":{"shape":"ConfigurationSetName"}, + "EventDestinationName":{"shape":"EventDestinationName"} + }, + "documentation":"

Indicates that the event destination could not be created because of a naming conflict.

", + "error":{ + "code":"EventDestinationAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "EventDestinationDoesNotExistException":{ + "type":"structure", + "members":{ + "ConfigurationSetName":{"shape":"ConfigurationSetName"}, + "EventDestinationName":{"shape":"EventDestinationName"} + }, + "documentation":"

Indicates that the event destination does not exist.

", + "error":{ + "code":"EventDestinationDoesNotExist", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "EventDestinationName":{"type":"string"}, + "EventDestinations":{ + "type":"list", + "member":{"shape":"EventDestination"} + }, + "EventType":{ + "type":"string", + "enum":[ + "send", + "reject", + "bounce", + "complaint", + "delivery" + ] + }, + "EventTypes":{ + "type":"list", + "member":{"shape":"EventType"} + }, "Explanation":{"type":"string"}, "ExtensionField":{ "type":"structure", @@ -1275,7 +1681,7 @@ "members":{ "DkimEnabled":{ "shape":"Enabled", - "documentation":"

True if DKIM signing is enabled for email sent from the identity; false otherwise.

" + "documentation":"

True if DKIM signing is enabled for email sent from the identity; false otherwise. The default value is true.

" }, "DkimVerificationStatus":{ "shape":"VerificationStatus", @@ -1377,6 +1783,46 @@ }, "documentation":"

Represents the verification attributes of a single identity.

" }, + "InvalidCloudWatchDestinationException":{ + "type":"structure", + "members":{ + "ConfigurationSetName":{"shape":"ConfigurationSetName"}, + "EventDestinationName":{"shape":"EventDestinationName"} + }, + "documentation":"

Indicates that the Amazon CloudWatch destination is invalid. See the error message for details.

", + "error":{ + "code":"InvalidCloudWatchDestination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidConfigurationSetException":{ + "type":"structure", + "members":{ + }, + "documentation":"

Indicates that the configuration set is invalid. See the error message for details.

", + "error":{ + "code":"InvalidConfigurationSet", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidFirehoseDestinationException":{ + "type":"structure", + "members":{ + "ConfigurationSetName":{"shape":"ConfigurationSetName"}, + "EventDestinationName":{"shape":"EventDestinationName"} + }, + "documentation":"

Indicates that the Amazon Kinesis Firehose destination is invalid. See the error message for details.

", + "error":{ + "code":"InvalidFirehoseDestination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "InvalidLambdaFunctionException":{ "type":"structure", "members":{ @@ -1435,6 +1881,24 @@ "RequestResponse" ] }, + "KinesisFirehoseDestination":{ + "type":"structure", + "required":[ + "IAMRoleARN", + "DeliveryStreamARN" + ], + "members":{ + "IAMRoleARN":{ + "shape":"AmazonResourceName", + "documentation":"

The ARN of the IAM role under which Amazon SES publishes email sending events to the Amazon Kinesis Firehose stream.

" + }, + "DeliveryStreamARN":{ + "shape":"AmazonResourceName", + "documentation":"

The ARN of the Amazon Kinesis Firehose stream to which to publish email sending events.

" + } + }, + "documentation":"

Contains the delivery stream ARN and the IAM role ARN associated with an Amazon Kinesis Firehose event destination.

Event destinations, such as Amazon Kinesis Firehose, are associated with configuration sets, which enable you to publish email sending events. For information about using configuration sets, see the Amazon SES Developer Guide.

" + }, "LambdaAction":{ "type":"structure", "required":["FunctionArn"], @@ -1459,7 +1923,7 @@ "type":"structure", "members":{ }, - "documentation":"

Indicates that a resource could not be created due to service limits. For a list of Amazon SES limits, see the Amazon SES Developer Guide.

", + "documentation":"

Indicates that a resource could not be created because of service limits. For a list of Amazon SES limits, see the Amazon SES Developer Guide.

", "error":{ "code":"LimitExceeded", "httpStatusCode":400, @@ -1467,6 +1931,34 @@ }, "exception":true }, + "ListConfigurationSetsRequest":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

A token returned from a previous call to ListConfigurationSets to indicate the position of the configuration set in the configuration set list.

" + }, + "MaxItems":{ + "shape":"MaxItems", + "documentation":"

The number of configuration sets to return.

" + } + }, + "documentation":"

Represents a request to list the configuration sets associated with your AWS account. Configuration sets enable you to publish email sending events. For information about using configuration sets, see the Amazon SES Developer Guide.

" + }, + "ListConfigurationSetsResponse":{ + "type":"structure", + "members":{ + "ConfigurationSets":{ + "shape":"ConfigurationSets", + "documentation":"

A list of configuration sets.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

A token indicating that there are additional configuration sets available to be listed. Pass this token to successive calls of ListConfigurationSets.

" + } + }, + "documentation":"

A list of configuration sets associated with your AWS account. Configuration sets enable you to publish email sending events. For information about using configuration sets, see the Amazon SES Developer Guide.

" + }, "ListIdentitiesRequest":{ "type":"structure", "members":{ @@ -1526,7 +2018,7 @@ "type":"structure", "members":{ }, - "documentation":"

: Represents a request to list the IP address filters that exist under your AWS account. You use IP address filters when you receive email with Amazon SES. For more information, see the Amazon SES Developer Guide.

" + "documentation":"

Represents a request to list the IP address filters that exist under your AWS account. You use IP address filters when you receive email with Amazon SES. For more information, see the Amazon SES Developer Guide.

" }, "ListReceiptFiltersResponse":{ "type":"structure", @@ -1644,6 +2136,30 @@ }, "exception":true }, + "MessageTag":{ + "type":"structure", + "required":[ + "Name", + "Value" + ], + "members":{ + "Name":{ + "shape":"MessageTagName", + "documentation":"

The name of the tag. The name must:

" + }, + "Value":{ + "shape":"MessageTagValue", + "documentation":"

The value of the tag. The value must:

" + } + }, + "documentation":"

Contains the name and value of a tag that you can provide to SendEmail or SendRawEmail to apply to an email.

Message tags, which you use with configuration sets, enable you to publish email sending events. For information about using configuration sets, see the Amazon SES Developer Guide.

" + }, + "MessageTagList":{ + "type":"list", + "member":{"shape":"MessageTag"} + }, + "MessageTagName":{"type":"string"}, + "MessageTagValue":{"type":"string"}, "NextToken":{"type":"string"}, "NotificationAttributes":{ "type":"map", @@ -2060,7 +2576,7 @@ }, "DeliveryAttempts":{ "shape":"Counter", - "documentation":"

Number of emails that have been enqueued for sending.

" + "documentation":"

Number of emails that have been sent.

" }, "Bounces":{ "shape":"Counter", @@ -2116,6 +2632,14 @@ "ReturnPathArn":{ "shape":"AmazonResourceName", "documentation":"

This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to use the email address specified in the ReturnPath parameter.

For example, if the owner of example.com (which has ARN arn:aws:ses:us-east-1:123456789012:identity/example.com) attaches a policy to it that authorizes you to use feedback@example.com, then you would specify the ReturnPathArn to be arn:aws:ses:us-east-1:123456789012:identity/example.com, and the ReturnPath to be feedback@example.com.

For more information about sending authorization, see the Amazon SES Developer Guide.

" + }, + "Tags":{ + "shape":"MessageTagList", + "documentation":"

A list of tags, in the form of name/value pairs, to apply to an email that you send using SendEmail. Tags correspond to characteristics of the email that you define, so that you can publish email sending events.

" + }, + "ConfigurationSetName":{ + "shape":"ConfigurationSetName", + "documentation":"

The name of the configuration set to use when you send an email using SendEmail.

" } }, "documentation":"

Represents a request to send a single formatted email using Amazon SES. For more information, see the Amazon SES Developer Guide.

" @@ -2158,6 +2682,14 @@ "ReturnPathArn":{ "shape":"AmazonResourceName", "documentation":"

This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to use the email address specified in the ReturnPath parameter.

For example, if the owner of example.com (which has ARN arn:aws:ses:us-east-1:123456789012:identity/example.com) attaches a policy to it that authorizes you to use feedback@example.com, then you would specify the ReturnPathArn to be arn:aws:ses:us-east-1:123456789012:identity/example.com, and the ReturnPath to be feedback@example.com.

Instead of using this parameter, you can use the X-header X-SES-RETURN-PATH-ARN in the raw message of the email. If you use both the ReturnPathArn parameter and the corresponding X-header, Amazon SES uses the value of the ReturnPathArn parameter.

For information about when to use this parameter, see the description of SendRawEmail in this guide, or see the Amazon SES Developer Guide.

" + }, + "Tags":{ + "shape":"MessageTagList", + "documentation":"

A list of tags, in the form of name/value pairs, to apply to an email that you send using SendRawEmail. Tags correspond to characteristics of the email that you define, so that you can publish email sending events.

" + }, + "ConfigurationSetName":{ + "shape":"ConfigurationSetName", + "documentation":"

The name of the configuration set to use when you send an email using SendRawEmail.

" } }, "documentation":"

Represents a request to send a single raw email using Amazon SES. For more information, see the Amazon SES Developer Guide.

" @@ -2375,6 +2907,30 @@ "Optional" ] }, + "UpdateConfigurationSetEventDestinationRequest":{ + "type":"structure", + "required":[ + "ConfigurationSetName", + "EventDestination" + ], + "members":{ + "ConfigurationSetName":{ + "shape":"ConfigurationSetName", + "documentation":"

The name of the configuration set that you want to update.

" + }, + "EventDestination":{ + "shape":"EventDestination", + "documentation":"

The event destination object that you want to apply to the specified configuration set.

" + } + }, + "documentation":"

Represents a request to update the event destination of a configuration set. Configuration sets enable you to publish email sending events. For information about using configuration sets, see the Amazon SES Developer Guide.

" + }, + "UpdateConfigurationSetEventDestinationResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"

An empty element returned on a successful request.

" + }, "UpdateReceiptRuleRequest":{ "type":"structure", "required":[ diff --git a/botocore/data/sms/2016-10-24/service-2.json b/botocore/data/sms/2016-10-24/service-2.json new file mode 100644 index 00000000..a12ab3c7 --- /dev/null +++ b/botocore/data/sms/2016-10-24/service-2.json @@ -0,0 +1,722 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2016-10-24", + "endpointPrefix":"sms", + "jsonVersion":"1.1", + "protocol":"json", + "serviceAbbreviation":"SMS", + "serviceFullName":"AWS Server Migration Service", + "signatureVersion":"v4", + "targetPrefix":"AWSServerMigrationService_V2016_10_24" + }, + "operations":{ + "CreateReplicationJob":{ + "name":"CreateReplicationJob", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateReplicationJobRequest"}, + "output":{"shape":"CreateReplicationJobResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"MissingRequiredParameterException"}, + {"shape":"UnauthorizedOperationException"}, + {"shape":"OperationNotPermittedException"}, + {"shape":"ServerCannotBeReplicatedException"}, + {"shape":"ReplicationJobAlreadyExistsException"}, + {"shape":"NoConnectorsAvailableException"}, + {"shape":"InternalError"} + ], + "documentation":"The CreateReplicationJob API is used to create a ReplicationJob to replicate a server on AWS. Call this API to first create a ReplicationJob, which will then schedule periodic ReplicationRuns to replicate your server to AWS. Each ReplicationRun will result in the creation of an AWS AMI." + }, + "DeleteReplicationJob":{ + "name":"DeleteReplicationJob", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteReplicationJobRequest"}, + "output":{"shape":"DeleteReplicationJobResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"MissingRequiredParameterException"}, + {"shape":"UnauthorizedOperationException"}, + {"shape":"OperationNotPermittedException"}, + {"shape":"ReplicationJobNotFoundException"} + ], + "documentation":"The DeleteReplicationJob API is used to delete a ReplicationJob, resulting in no further ReplicationRuns. This will delete the contents of the S3 bucket used to store SMS artifacts, but will not delete any AMIs created by the SMS service." + }, + "DeleteServerCatalog":{ + "name":"DeleteServerCatalog", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteServerCatalogRequest"}, + "output":{"shape":"DeleteServerCatalogResponse"}, + "errors":[ + {"shape":"UnauthorizedOperationException"}, + {"shape":"OperationNotPermittedException"}, + {"shape":"InvalidParameterException"}, + {"shape":"MissingRequiredParameterException"} + ], + "documentation":"The DeleteServerCatalog API clears all servers from your server catalog. This means that these servers will no longer be accessible to the Server Migration Service." + }, + "DisassociateConnector":{ + "name":"DisassociateConnector", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisassociateConnectorRequest"}, + "output":{"shape":"DisassociateConnectorResponse"}, + "errors":[ + {"shape":"MissingRequiredParameterException"}, + {"shape":"UnauthorizedOperationException"}, + {"shape":"OperationNotPermittedException"}, + {"shape":"InvalidParameterException"} + ], + "documentation":"The DisassociateConnector API will disassociate a connector from the Server Migration Service, rendering it unavailable to support replication jobs." + }, + "GetConnectors":{ + "name":"GetConnectors", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetConnectorsRequest"}, + "output":{"shape":"GetConnectorsResponse"}, + "errors":[ + {"shape":"UnauthorizedOperationException"} + ], + "documentation":"The GetConnectors API returns a list of connectors that are registered with the Server Migration Service." + }, + "GetReplicationJobs":{ + "name":"GetReplicationJobs", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetReplicationJobsRequest"}, + "output":{"shape":"GetReplicationJobsResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"MissingRequiredParameterException"}, + {"shape":"UnauthorizedOperationException"} + ], + "documentation":"The GetReplicationJobs API will return all of your ReplicationJobs and their details. This API returns a paginated list, that may be consecutively called with nextToken to retrieve all ReplicationJobs." + }, + "GetReplicationRuns":{ + "name":"GetReplicationRuns", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetReplicationRunsRequest"}, + "output":{"shape":"GetReplicationRunsResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"MissingRequiredParameterException"}, + {"shape":"UnauthorizedOperationException"} + ], + "documentation":"The GetReplicationRuns API will return all ReplicationRuns for a given ReplicationJob. This API returns a paginated list, that may be consecutively called with nextToken to retrieve all ReplicationRuns for a ReplicationJob." + }, + "GetServers":{ + "name":"GetServers", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetServersRequest"}, + "output":{"shape":"GetServersResponse"}, + "errors":[ + {"shape":"UnauthorizedOperationException"} + ], + "documentation":"The GetServers API returns a list of all servers in your server catalog. For this call to succeed, you must previously have called ImportServerCatalog." + }, + "ImportServerCatalog":{ + "name":"ImportServerCatalog", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ImportServerCatalogRequest"}, + "output":{"shape":"ImportServerCatalogResponse"}, + "errors":[ + {"shape":"UnauthorizedOperationException"}, + {"shape":"OperationNotPermittedException"}, + {"shape":"InvalidParameterException"}, + {"shape":"MissingRequiredParameterException"}, + {"shape":"NoConnectorsAvailableException"} + ], + "documentation":"The ImportServerCatalog API is used to gather the complete list of on-premises servers on your premises. This API call requires connectors to be installed and monitoring all servers you would like imported. This API call returns immediately, but may take some time to retrieve all of the servers." + }, + "StartOnDemandReplicationRun":{ + "name":"StartOnDemandReplicationRun", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartOnDemandReplicationRunRequest"}, + "output":{"shape":"StartOnDemandReplicationRunResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"MissingRequiredParameterException"}, + {"shape":"UnauthorizedOperationException"}, + {"shape":"OperationNotPermittedException"}, + {"shape":"ReplicationRunLimitExceededException"} + ], + "documentation":"The StartOnDemandReplicationRun API is used to start a ReplicationRun on demand (in addition to those that are scheduled based on your frequency). This ReplicationRun will start immediately. StartOnDemandReplicationRun is subject to limits on how many on demand ReplicationRuns you may call per 24-hour period." + }, + "UpdateReplicationJob":{ + "name":"UpdateReplicationJob", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateReplicationJobRequest"}, + "output":{"shape":"UpdateReplicationJobResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"MissingRequiredParameterException"}, + {"shape":"OperationNotPermittedException"}, + {"shape":"UnauthorizedOperationException"}, + {"shape":"ServerCannotBeReplicatedException"}, + {"shape":"ReplicationJobNotFoundException"}, + {"shape":"InternalError"} + ], + "documentation":"The UpdateReplicationJob API is used to change the settings of your existing ReplicationJob created using CreateReplicationJob. Calling this API will affect the next scheduled ReplicationRun." + } + }, + "shapes":{ + "AmiId":{ + "type":"string", + "documentation":"The AMI id for the image resulting from a Replication Run." + }, + "Connector":{ + "type":"structure", + "members":{ + "connectorId":{"shape":"ConnectorId"}, + "version":{"shape":"ConnectorVersion"}, + "status":{"shape":"ConnectorStatus"}, + "capabilityList":{"shape":"ConnectorCapabilityList"}, + "vmManagerName":{"shape":"VmManagerName"}, + "vmManagerType":{"shape":"VmManagerType"}, + "vmManagerId":{"shape":"VmManagerId"}, + "ipAddress":{"shape":"IpAddress"}, + "macAddress":{"shape":"MacAddress"}, + "associatedOn":{"shape":"Timestamp"} + }, + "documentation":"Object representing a Connector" + }, + "ConnectorCapability":{ + "type":"string", + "documentation":"Capabilities for a Connector", + "enum":["VSPHERE"] + }, + "ConnectorCapabilityList":{ + "type":"list", + "member":{ + "shape":"ConnectorCapability", + "locationName":"item" + }, + "documentation":"List of Connector Capabilities" + }, + "ConnectorId":{ + "type":"string", + "documentation":"Unique Identifier for Connector" + }, + "ConnectorList":{ + "type":"list", + "member":{ + "shape":"Connector", + "locationName":"item" + }, + "documentation":"List of connectors" + }, + "ConnectorStatus":{ + "type":"string", + "documentation":"Status of on-premise Connector", + "enum":[ + "HEALTHY", + "UNHEALTHY" + ] + }, + "ConnectorVersion":{ + "type":"string", + "documentation":"Connector version string" + }, + "CreateReplicationJobRequest":{ + "type":"structure", + "required":[ + "serverId", + "seedReplicationTime", + "frequency" + ], + "members":{ + "serverId":{"shape":"ServerId"}, + "seedReplicationTime":{"shape":"Timestamp"}, + "frequency":{"shape":"Frequency"}, + "licenseType":{"shape":"LicenseType"}, + "roleName":{"shape":"RoleName"}, + "description":{"shape":"Description"} + } + }, + "CreateReplicationJobResponse":{ + "type":"structure", + "members":{ + "replicationJobId":{"shape":"ReplicationJobId"} + } + }, + "DeleteReplicationJobRequest":{ + "type":"structure", + "required":["replicationJobId"], + "members":{ + "replicationJobId":{"shape":"ReplicationJobId"} + } + }, + "DeleteReplicationJobResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteServerCatalogRequest":{ + "type":"structure", + "members":{ + } + }, + "DeleteServerCatalogResponse":{ + "type":"structure", + "members":{ + } + }, + "Description":{ + "type":"string", + "documentation":"The description for a Replication Job/Run." + }, + "DisassociateConnectorRequest":{ + "type":"structure", + "required":["connectorId"], + "members":{ + "connectorId":{"shape":"ConnectorId"} + } + }, + "DisassociateConnectorResponse":{ + "type":"structure", + "members":{ + } + }, + "ErrorMessage":{ + "type":"string", + "documentation":"Error Message string" + }, + "Frequency":{ + "type":"integer", + "documentation":"Interval between Replication Runs. This value is specified in hours, and represents the time between consecutive Replication Runs." + }, + "GetConnectorsRequest":{ + "type":"structure", + "members":{ + "nextToken":{"shape":"NextToken"}, + "maxResults":{"shape":"MaxResults"} + } + }, + "GetConnectorsResponse":{ + "type":"structure", + "members":{ + "connectorList":{"shape":"ConnectorList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "GetReplicationJobsRequest":{ + "type":"structure", + "members":{ + "replicationJobId":{"shape":"ReplicationJobId"}, + "nextToken":{"shape":"NextToken"}, + "maxResults":{"shape":"MaxResults"} + } + }, + "GetReplicationJobsResponse":{ + "type":"structure", + "members":{ + "replicationJobList":{"shape":"ReplicationJobList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "GetReplicationRunsRequest":{ + "type":"structure", + "required":["replicationJobId"], + "members":{ + "replicationJobId":{"shape":"ReplicationJobId"}, + "nextToken":{"shape":"NextToken"}, + "maxResults":{"shape":"MaxResults"} + } + }, + "GetReplicationRunsResponse":{ + "type":"structure", + "members":{ + "replicationJob":{"shape":"ReplicationJob"}, + "replicationRunList":{"shape":"ReplicationRunList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "GetServersRequest":{ + "type":"structure", + "members":{ + "nextToken":{"shape":"NextToken"}, + "maxResults":{"shape":"MaxResults"} + } + }, + "GetServersResponse":{ + "type":"structure", + "members":{ + "lastModifiedOn":{"shape":"Timestamp"}, + "serverCatalogStatus":{"shape":"ServerCatalogStatus"}, + "serverList":{"shape":"ServerList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ImportServerCatalogRequest":{ + "type":"structure", + "members":{ + } + }, + "ImportServerCatalogResponse":{ + "type":"structure", + "members":{ + } + }, + "InternalError":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "documentation":"An internal error has occured.", + "exception":true, + "fault":true + }, + "InvalidParameterException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "documentation":"A parameter specified in the request is not valid, is unsupported, or cannot be used.", + "exception":true + }, + "IpAddress":{ + "type":"string", + "documentation":"Internet Protocol (IP) Address" + }, + "LicenseType":{ + "type":"string", + "documentation":"The license type to be used for the Amazon Machine Image (AMI) created after a successful ReplicationRun.", + "enum":[ + "AWS", + "BYOL" + ] + }, + "MacAddress":{ + "type":"string", + "documentation":"Hardware (MAC) address" + }, + "MaxResults":{ + "type":"integer", + "documentation":"The maximum number of results to return in one API call. If left empty, this will default to 50." + }, + "MissingRequiredParameterException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "documentation":"The request is missing a required parameter. Ensure that you have supplied all the required parameters for the request.", + "exception":true + }, + "NextToken":{ + "type":"string", + "documentation":"Pagination token to pass as input to API call" + }, + "NoConnectorsAvailableException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "documentation":"No connectors are available to handle this request. Please associate connector(s) and verify any existing connectors are healthy and can respond to requests.", + "exception":true + }, + "OperationNotPermittedException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "documentation":"The specified operation is not allowed. This error can occur for a number of reasons; for example, you might be trying to start a Replication Run before seed Replication Run.", + "exception":true + }, + "ReplicationJob":{ + "type":"structure", + "members":{ + "replicationJobId":{"shape":"ReplicationJobId"}, + "serverId":{"shape":"ServerId"}, + "serverType":{"shape":"ServerType"}, + "vmServer":{"shape":"VmServer"}, + "seedReplicationTime":{"shape":"Timestamp"}, + "frequency":{"shape":"Frequency"}, + "nextReplicationRunStartTime":{"shape":"Timestamp"}, + "licenseType":{"shape":"LicenseType"}, + "roleName":{"shape":"RoleName"}, + "latestAmiId":{"shape":"AmiId"}, + "state":{"shape":"ReplicationJobState"}, + "statusMessage":{"shape":"ReplicationJobStatusMessage"}, + "description":{"shape":"Description"}, + "replicationRunList":{"shape":"ReplicationRunList"} + }, + "documentation":"Object representing a Replication Job" + }, + "ReplicationJobAlreadyExistsException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "documentation":"An active Replication Job already exists for the specified server.", + "exception":true + }, + "ReplicationJobId":{ + "type":"string", + "documentation":"The unique identifier for a Replication Job." + }, + "ReplicationJobList":{ + "type":"list", + "member":{ + "shape":"ReplicationJob", + "locationName":"item" + }, + "documentation":"List of Replication Jobs" + }, + "ReplicationJobNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "documentation":"The specified Replication Job cannot be found.", + "exception":true + }, + "ReplicationJobState":{ + "type":"string", + "documentation":"Current state of Replication Job", + "enum":[ + "PENDING", + "ACTIVE", + "FAILED", + "DELETING", + "DELETED" + ] + }, + "ReplicationJobStatusMessage":{ + "type":"string", + "documentation":"String describing current status of Replication Job" + }, + "ReplicationJobTerminated":{ + "type":"boolean", + "documentation":"An indicator of the Replication Job being deleted or failed." + }, + "ReplicationRun":{ + "type":"structure", + "members":{ + "replicationRunId":{"shape":"ReplicationRunId"}, + "state":{"shape":"ReplicationRunState"}, + "type":{"shape":"ReplicationRunType"}, + "statusMessage":{"shape":"ReplicationRunStatusMessage"}, + "amiId":{"shape":"AmiId"}, + "scheduledStartTime":{"shape":"Timestamp"}, + "completedTime":{"shape":"Timestamp"}, + "description":{"shape":"Description"} + }, + "documentation":"Object representing a Replication Run" + }, + "ReplicationRunId":{ + "type":"string", + "documentation":"The unique identifier for a Replication Run." + }, + "ReplicationRunLimitExceededException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "documentation":"This user has exceeded the maximum allowed Replication Run limit.", + "exception":true + }, + "ReplicationRunList":{ + "type":"list", + "member":{ + "shape":"ReplicationRun", + "locationName":"item" + }, + "documentation":"List of Replication Runs" + }, + "ReplicationRunState":{ + "type":"string", + "documentation":"Current state of Replication Run", + "enum":[ + "PENDING", + "MISSED", + "ACTIVE", + "FAILED", + "COMPLETED", + "DELETING", + "DELETED" + ] + }, + "ReplicationRunStatusMessage":{ + "type":"string", + "documentation":"String describing current status of Replication Run" + }, + "ReplicationRunType":{ + "type":"string", + "documentation":"Type of Replication Run", + "enum":[ + "ON_DEMAND", + "AUTOMATIC" + ] + }, + "RoleName":{ + "type":"string", + "documentation":"Name of service role in customer's account to be used by SMS service." + }, + "Server":{ + "type":"structure", + "members":{ + "serverId":{"shape":"ServerId"}, + "serverType":{"shape":"ServerType"}, + "vmServer":{"shape":"VmServer"}, + "replicationJobId":{"shape":"ReplicationJobId"}, + "replicationJobTerminated":{"shape":"ReplicationJobTerminated"} + }, + "documentation":"Object representing a server" + }, + "ServerCannotBeReplicatedException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "documentation":"The provided server cannot be replicated.", + "exception":true + }, + "ServerCatalogStatus":{ + "type":"string", + "documentation":"Status of Server catalog", + "enum":[ + "NOT_IMPORTED", + "IMPORTING", + "AVAILABLE", + "DELETED", + "EXPIRED" + ] + }, + "ServerId":{ + "type":"string", + "documentation":"Unique Identifier for a server" + }, + "ServerList":{ + "type":"list", + "member":{ + "shape":"Server", + "locationName":"item" + }, + "documentation":"List of servers from catalog" + }, + "ServerType":{ + "type":"string", + "documentation":"Type of server.", + "enum":["VIRTUAL_MACHINE"] + }, + "StartOnDemandReplicationRunRequest":{ + "type":"structure", + "required":["replicationJobId"], + "members":{ + "replicationJobId":{"shape":"ReplicationJobId"}, + "description":{"shape":"Description"} + } + }, + "StartOnDemandReplicationRunResponse":{ + "type":"structure", + "members":{ + "replicationRunId":{"shape":"ReplicationRunId"} + } + }, + "Timestamp":{ + "type":"timestamp", + "documentation":"Timestamp of an operation" + }, + "UnauthorizedOperationException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "documentation":"This user does not have permissions to perform this operation.", + "exception":true + }, + "UpdateReplicationJobRequest":{ + "type":"structure", + "required":["replicationJobId"], + "members":{ + "replicationJobId":{"shape":"ReplicationJobId"}, + "frequency":{"shape":"Frequency"}, + "nextReplicationRunStartTime":{"shape":"Timestamp"}, + "licenseType":{"shape":"LicenseType"}, + "roleName":{"shape":"RoleName"}, + "description":{"shape":"Description"} + } + }, + "UpdateReplicationJobResponse":{ + "type":"structure", + "members":{ + } + }, + "VmId":{ + "type":"string", + "documentation":"Unique Identifier for a VM" + }, + "VmManagerId":{ + "type":"string", + "documentation":"Unique Identifier for VM Manager" + }, + "VmManagerName":{ + "type":"string", + "documentation":"VM Manager Name" + }, + "VmManagerType":{ + "type":"string", + "documentation":"VM Management Product", + "enum":["VSPHERE"] + }, + "VmName":{ + "type":"string", + "documentation":"Name of Virtual Machine" + }, + "VmPath":{ + "type":"string", + "documentation":"Path to VM" + }, + "VmServer":{ + "type":"structure", + "members":{ + "vmServerAddress":{"shape":"VmServerAddress"}, + "vmName":{"shape":"VmName"}, + "vmManagerName":{"shape":"VmManagerName"}, + "vmManagerType":{"shape":"VmManagerType"}, + "vmPath":{"shape":"VmPath"} + }, + "documentation":"Object representing a VM server" + }, + "VmServerAddress":{ + "type":"structure", + "members":{ + "vmManagerId":{"shape":"VmManagerId"}, + "vmId":{"shape":"VmId"} + }, + "documentation":"Object representing a server's location" + } + }, + "documentation":"Amazon Server Migration Service automates the process of migrating servers to EC2." +} diff --git a/botocore/data/waf/2015-08-24/service-2.json b/botocore/data/waf/2015-08-24/service-2.json index ba3c9883..f46f0948 100644 --- a/botocore/data/waf/2015-08-24/service-2.json +++ b/botocore/data/waf/2015-08-24/service-2.json @@ -545,7 +545,7 @@ {"shape":"WAFReferencedItemException"}, {"shape":"WAFLimitsExceededException"} ], - "documentation":"

Inserts or deletes IPSetDescriptor objects in an IPSet. For each IPSetDescriptor object, you specify the following values:

AWS WAF supports /8, /16, /24, and /32 IP address ranges for IPv4, and /24, /32, /48, /56, /64 and /128 for IPv6. For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.

IPv6 addresses can be represented using any of the following formats:

You use an IPSet to specify which web requests you want to allow or block based on the IP addresses that the requests originated from. For example, if you're receiving a lot of requests from one or a small number of IP addresses and you want to block the requests, you can create an IPSet that specifies those IP addresses, and then configure AWS WAF to block the requests.

To create and configure an IPSet, perform the following steps:

  1. Submit a CreateIPSet request.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateIPSet request.

  3. Submit an UpdateIPSet request to specify the IP addresses that you want AWS WAF to watch for.

When you update an IPSet, you specify the IP addresses that you want to add and/or the IP addresses that you want to delete. If you want to change an IP address, you delete the existing IP address and add the new one.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

" + "documentation":"

Inserts or deletes IPSetDescriptor objects in an IPSet. For each IPSetDescriptor object, you specify the following values:

AWS WAF supports /8, /16, /24, and /32 IP address ranges. For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.

You use an IPSet to specify which web requests you want to allow or block based on the IP addresses that the requests originated from. For example, if you're receiving a lot of requests from one or a small number of IP addresses and you want to block the requests, you can create an IPSet that specifies those IP addresses, and then configure AWS WAF to block the requests.

To create and configure an IPSet, perform the following steps:

  1. Submit a CreateIPSet request.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateIPSet request.

  3. Submit an UpdateIPSet request to specify the IP addresses that you want AWS WAF to watch for.

When you update an IPSet, you specify the IP addresses that you want to add and/or the IP addresses that you want to delete. If you want to change an IP address, you delete the existing IP address and add the new one.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

" }, "UpdateRule":{ "name":"UpdateRule", @@ -1523,10 +1523,10 @@ }, "IPSetDescriptors":{ "shape":"IPSetDescriptors", - "documentation":"

The IP address type (IPV4 or IPV6) and the IP address range (in CIDR notation) that web requests originate from. If the WebACL is associated with a CloudFront distribution, this is the value of one of the following fields in CloudFront access logs:

" + "documentation":"

The IP address type (IPV4) and the IP address range (in CIDR notation) that web requests originate from. If the WebACL is associated with a CloudFront distribution, this is the value of one of the following fields in CloudFront access logs:

" } }, - "documentation":"

Contains one or more IP addresses or blocks of IP addresses specified in Classless Inter-Domain Routing (CIDR) notation. AWS WAF supports /8, /16, /24, and /32 IP address ranges for IPv4, and /24, /32, /48, /56, /64 and /128 for IPv6.

To specify an individual IP address, you specify the four-part IP address followed by a /32, for example, 192.0.2.0/31. To block a range of IP addresses, you can specify a /128, /64, /56, /48, /32, /24, /16, or /8 CIDR. For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.

" + "documentation":"

Contains one or more IP addresses or blocks of IP addresses specified in Classless Inter-Domain Routing (CIDR) notation. To specify an individual IP address, you specify the four-part IP address followed by a /32, for example, 192.0.2.0/31. To block a range of IP addresses, you can specify a /24, a /16, or a /8 CIDR. For more information about CIDR notation, perform an Internet search on cidr notation.

" }, "IPSetDescriptor":{ "type":"structure", @@ -1537,14 +1537,14 @@ "members":{ "Type":{ "shape":"IPSetDescriptorType", - "documentation":"

Specify IPV4 or IPV6.

" + "documentation":"

Specify IPV4.

" }, "Value":{ "shape":"IPSetDescriptorValue", - "documentation":"

Specify an IPv4 address by using CIDR notation. For example:

For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.

Specify an IPv6 address by using CIDR notation. For example:

" + "documentation":"

Specify an IPv4 address by using CIDR notation. For example:

AWS WAF supports only /8, /16, /24, and /32 IP addresses.

For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.

" } }, - "documentation":"

Specifies the IP address type (IPV4 or IPV6) and the IP address range (in CIDR format) that web requests originate from.

" + "documentation":"

Specifies the IP address type (IPV4) and the IP address range (in CIDR format) that web requests originate from.

" }, "IPSetDescriptorType":{ "type":"string", @@ -1593,7 +1593,7 @@ }, "IPSetDescriptor":{ "shape":"IPSetDescriptor", - "documentation":"

The IP address type (IPV4 or IPV6) and the IP address range (in CIDR notation) that web requests originate from.

" + "documentation":"

The IP address type (IPV4) and the IP address range (in CIDR notation) that web requests originate from.

" } }, "documentation":"

Specifies the type of update to perform to an IPSet with UpdateIPSet.

" diff --git a/botocore/handlers.py b/botocore/handlers.py index 9298c194..981f68a8 100644 --- a/botocore/handlers.py +++ b/botocore/handlers.py @@ -581,6 +581,19 @@ def document_glacier_tree_hash_checksum(): return AppendParamDocumentation('checksum', doc).append_documentation +def document_cloudformation_get_template_return_type(section, event_name, **kwargs): + if 'response-params' in event_name: + template_body_section = section.get_section('TemplateBody') + type_section = template_body_section.get_section('param-type') + type_section.clear_text() + type_section.write('(*dict*) --') + elif 'response-example' in event_name: + parent = section.get_section('structure-value') + param_line = parent.get_section('TemplateBody') + value_portion = param_line.get_section('member-value') + value_portion.clear_text() + value_portion.write('{}') + def switch_host_machinelearning(request, **kwargs): switch_host_with_param(request, 'PredictEndpoint') @@ -848,7 +861,10 @@ BUILTIN_HANDLERS = [ AutoPopulatedParam('checksum').document_auto_populated_param), ('docs.request-params.glacier.CompleteMultipartUpload.complete-section', document_glacier_tree_hash_checksum()), - + # Cloudformation documentation customizations + ('docs.*.cloudformation.GetTemplate.complete-section', + document_cloudformation_get_template_return_type), + # UserData base64 encoding documentation customizations ('docs.*.ec2.RunInstances.complete-section', document_base64_encoding('UserData')), diff --git a/botocore/stub.py b/botocore/stub.py index 9413ba89..85f8f9e7 100644 --- a/botocore/stub.py +++ b/botocore/stub.py @@ -20,7 +20,22 @@ from botocore.exceptions import ParamValidationError, \ from botocore.vendored.requests.models import Response -ANY = object() +class _ANY(object): + """ + A helper object that compares equal to everything. Copied from + unittest.mock + """ + + def __eq__(self, other): + return True + + def __ne__(self, other): + return False + + def __repr__(self): + return '' + +ANY = _ANY() class Stubber(object): @@ -262,7 +277,7 @@ class Stubber(object): the names of keyword arguments passed to that client call. If any of the parameters differ a ``StubResponseError`` is thrown. You can use stub.ANY to indicate a particular parameter to ignore - in validation. stub.ANY is only valid for top level params. + in validation. """ http_response = Response() http_response.status_code = http_status_code @@ -326,10 +341,7 @@ class Stubber(object): # Validate the parameters are equal for param, value in expected_params.items(): - if value is ANY: - continue - elif param not in params or \ - expected_params[param] != params[param]: + if param not in params or expected_params[param] != params[param]: raise StubAssertionError( operation_name=model.name, reason='Expected parameters:\n%s,\nbut received:\n%s' % ( diff --git a/docs/source/conf.py b/docs/source/conf.py index 5b8cb375..d657cb5a 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -54,7 +54,7 @@ copyright = u'2013, Mitch Garnaat' # The short X.Y version. version = '1.4.' # The full version, including alpha/beta/rc tags. -release = '1.4.64' +release = '1.4.70' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/tests/functional/test_cloudformation.py b/tests/functional/test_cloudformation.py new file mode 100644 index 00000000..579547c0 --- /dev/null +++ b/tests/functional/test_cloudformation.py @@ -0,0 +1,27 @@ +# Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +from tests.functional.docs import BaseDocsFunctionalTest +from botocore.docs.service import ServiceDocumenter + + +class TestCloudFormationDocs(BaseDocsFunctionalTest): + def test_get_template_response_documented_as_dict(self): + content = self.get_docstring_for_method('cloudformation', 'get_template') + # String return type should be gone + self.assert_not_contains_line( + "(*string*) --", content) + # Check for template body returning a dict + self.assert_contains_line( + "(*dict*) --", content) + # Check the specifics of the returned dict + self.assert_contains_line('{}', content) diff --git a/tests/functional/test_stub.py b/tests/functional/test_stub.py index a9d7e764..783f02f3 100644 --- a/tests/functional/test_stub.py +++ b/tests/functional/test_stub.py @@ -204,6 +204,44 @@ class TestStubber(unittest.TestCase): except StubAssertionError: self.fail("stub.ANY failed to ignore parameter for validation.") + def test_nested_any_param(self): + service_response = {} + expected_params = { + 'Bucket': 'foo', + 'Key': 'bar.txt', + 'Metadata': { + 'MyMeta': stub.ANY, + } + } + + self.stubber.add_response( + 'put_object', service_response, expected_params) + self.stubber.add_response( + 'put_object', service_response, expected_params) + + try: + with self.stubber: + self.client.put_object( + Bucket='foo', + Key='bar.txt', + Metadata={ + 'MyMeta': 'Foo', + } + ) + self.client.put_object( + Bucket='foo', + Key='bar.txt', + Metadata={ + 'MyMeta': 'Bar', + } + ) + except StubAssertionError: + self.fail( + "stub.ANY failed to ignore nested parameter for validation.") + + def test_ANY_repr(self): + self.assertEqual(repr(stub.ANY), '') + def test_none_param(self): service_response = {} expected_params = {'Buck': None}