diff --git a/.changes/1.4.0.json b/.changes/1.4.0.json index 3fcc600..b8a639e 100644 --- a/.changes/1.4.0.json +++ b/.changes/1.4.0.json @@ -26,7 +26,7 @@ }, { "category": "s3", - "description": "Port ``s3.transfer`` module to use ``s3transfer`` package. Please refer to `Upgrading Notes `_ when upgrading. In porting the logic over, various performance issues and bugs were fixed.", + "description": "Port ``s3.transfer`` module to use ``s3transfer`` package. Please refer to `Upgrading Notes `_ when upgrading. In porting the logic over, various performance issues and bugs were fixed.", "type": "bugfix" }, { diff --git a/.changes/1.7.56.json b/.changes/1.7.56.json new file mode 100644 index 0000000..b592b19 --- /dev/null +++ b/.changes/1.7.56.json @@ -0,0 +1,22 @@ +[ + { + "category": "``ssm``", + "description": "[``botocore``] Update ssm client to latest version", + "type": "api-change" + }, + { + "category": "``s3``", + "description": "[``botocore``] Update s3 client to latest version", + "type": "api-change" + }, + { + "category": "``apigateway``", + "description": "[``botocore``] Update apigateway client to latest version", + "type": "api-change" + }, + { + "category": "``ce``", + "description": "[``botocore``] Update ce client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.7.57.json b/.changes/1.7.57.json new file mode 100644 index 0000000..ce1a05a --- /dev/null +++ b/.changes/1.7.57.json @@ -0,0 +1,32 @@ +[ + { + "category": "``iam``", + "description": "[``botocore``] Update iam client to latest version", + "type": "api-change" + }, + { + "category": "``dlm``", + "description": "[``botocore``] Update dlm client to latest version", + "type": "api-change" + }, + { + "category": "``appsync``", + "description": "[``botocore``] Update appsync client to latest version", + "type": "api-change" + }, + { + "category": "``efs``", + "description": "[``botocore``] Update efs client to latest version", + "type": "api-change" + }, + { + "category": "``codebuild``", + "description": "[``botocore``] Update codebuild client to latest version", + "type": "api-change" + }, + { + "category": "``emr``", + "description": "[``botocore``] Update emr client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.7.58.json b/.changes/1.7.58.json new file mode 100644 index 0000000..0976f57 --- /dev/null +++ b/.changes/1.7.58.json @@ -0,0 +1,17 @@ +[ + { + "category": "``kinesisvideo``", + "description": "[``botocore``] Update kinesisvideo client to latest version", + "type": "api-change" + }, + { + "category": "``appstream``", + "description": "[``botocore``] Update appstream client to latest version", + "type": "api-change" + }, + { + "category": "``kinesis-video-archived-media``", + "description": "[``botocore``] Update kinesis-video-archived-media client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.7.59.json b/.changes/1.7.59.json new file mode 100644 index 0000000..0c78688 --- /dev/null +++ b/.changes/1.7.59.json @@ -0,0 +1,22 @@ +[ + { + "category": "``sagemaker``", + "description": "[``botocore``] Update sagemaker client to latest version", + "type": "api-change" + }, + { + "category": "``polly``", + "description": "[``botocore``] Update polly client to latest version", + "type": "api-change" + }, + { + "category": "``comprehend``", + "description": "[``botocore``] Update comprehend client to latest version", + "type": "api-change" + }, + { + "category": "``snowball``", + "description": "[``botocore``] Update snowball client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.7.60.json b/.changes/1.7.60.json new file mode 100644 index 0000000..840cbb7 --- /dev/null +++ b/.changes/1.7.60.json @@ -0,0 +1,7 @@ +[ + { + "category": "``iotanalytics``", + "description": "[``botocore``] Update iotanalytics client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.7.61.json b/.changes/1.7.61.json new file mode 100644 index 0000000..7887a5a --- /dev/null +++ b/.changes/1.7.61.json @@ -0,0 +1,7 @@ +[ + { + "category": "``mediapackage``", + "description": "[``botocore``] Update mediapackage client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.7.62.json b/.changes/1.7.62.json new file mode 100644 index 0000000..8503746 --- /dev/null +++ b/.changes/1.7.62.json @@ -0,0 +1,12 @@ +[ + { + "category": "``config``", + "description": "[``botocore``] Update config client to latest version", + "type": "api-change" + }, + { + "category": "``dlm``", + "description": "[``botocore``] Update dlm client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.7.63.json b/.changes/1.7.63.json new file mode 100644 index 0000000..f3337a3 --- /dev/null +++ b/.changes/1.7.63.json @@ -0,0 +1,7 @@ +[ + { + "category": "``dynamodb``", + "description": "[``botocore``] Update dynamodb client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.7.64.json b/.changes/1.7.64.json new file mode 100644 index 0000000..de81a17 --- /dev/null +++ b/.changes/1.7.64.json @@ -0,0 +1,17 @@ +[ + { + "category": "``ecs``", + "description": "[``botocore``] Update ecs client to latest version", + "type": "api-change" + }, + { + "category": "``elbv2``", + "description": "[``botocore``] Update elbv2 client to latest version", + "type": "api-change" + }, + { + "category": "``ec2``", + "description": "[``botocore``] Update ec2 client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.7.65.json b/.changes/1.7.65.json new file mode 100644 index 0000000..9fc882d --- /dev/null +++ b/.changes/1.7.65.json @@ -0,0 +1,32 @@ +[ + { + "category": "``ssm``", + "description": "[``botocore``] Update ssm client to latest version", + "type": "api-change" + }, + { + "category": "``ec2``", + "description": "[``botocore``] Update ec2 client to latest version", + "type": "api-change" + }, + { + "category": "``greengrass``", + "description": "[``botocore``] Update greengrass client to latest version", + "type": "api-change" + }, + { + "category": "``inspector``", + "description": "[``botocore``] Update inspector client to latest version", + "type": "api-change" + }, + { + "category": "``codebuild``", + "description": "[``botocore``] Update codebuild client to latest version", + "type": "api-change" + }, + { + "category": "``redshift``", + "description": "[``botocore``] Update redshift client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.7.66.json b/.changes/1.7.66.json new file mode 100644 index 0000000..428a6b4 --- /dev/null +++ b/.changes/1.7.66.json @@ -0,0 +1,42 @@ +[ + { + "category": "``directconnect``", + "description": "[``botocore``] Update directconnect client to latest version", + "type": "api-change" + }, + { + "category": "``glue``", + "description": "[``botocore``] Update glue client to latest version", + "type": "api-change" + }, + { + "category": "``iot``", + "description": "[``botocore``] Update iot client to latest version", + "type": "api-change" + }, + { + "category": "``cloudhsmv2``", + "description": "[``botocore``] Update cloudhsmv2 client to latest version", + "type": "api-change" + }, + { + "category": "``sagemaker``", + "description": "[``botocore``] Update sagemaker client to latest version", + "type": "api-change" + }, + { + "category": "``mq``", + "description": "[``botocore``] Update mq client to latest version", + "type": "api-change" + }, + { + "category": "Timestamp Serialization", + "description": "[``botocore``] Support explicit timestamp serialization per timestamp shape.", + "type": "enhancment" + }, + { + "category": "``glacier``", + "description": "[``botocore``] Update glacier client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.7.67.json b/.changes/1.7.67.json new file mode 100644 index 0000000..6e447b7 --- /dev/null +++ b/.changes/1.7.67.json @@ -0,0 +1,27 @@ +[ + { + "category": "``kms``", + "description": "[``botocore``] Update kms client to latest version", + "type": "api-change" + }, + { + "category": "``mediaconvert``", + "description": "[``botocore``] Update mediaconvert client to latest version", + "type": "api-change" + }, + { + "category": "``es``", + "description": "[``botocore``] Update es client to latest version", + "type": "api-change" + }, + { + "category": "``iot``", + "description": "[``botocore``] Update iot client to latest version", + "type": "api-change" + }, + { + "category": "``connect``", + "description": "[``botocore``] Update connect client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.7.68.json b/.changes/1.7.68.json new file mode 100644 index 0000000..42b32a2 --- /dev/null +++ b/.changes/1.7.68.json @@ -0,0 +1,12 @@ +[ + { + "category": "``storagegateway``", + "description": "[``botocore``] Update storagegateway client to latest version", + "type": "api-change" + }, + { + "category": "``transcribe``", + "description": "[``botocore``] Update transcribe client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.7.69.json b/.changes/1.7.69.json new file mode 100644 index 0000000..5ab736a --- /dev/null +++ b/.changes/1.7.69.json @@ -0,0 +1,22 @@ +[ + { + "category": "``polly``", + "description": "[``botocore``] Update polly client to latest version", + "type": "api-change" + }, + { + "category": "``ssm``", + "description": "[``botocore``] Update ssm client to latest version", + "type": "api-change" + }, + { + "category": "``kinesis``", + "description": "[``botocore``] Update kinesis client to latest version", + "type": "api-change" + }, + { + "category": "``resource-groups``", + "description": "[``botocore``] Update resource-groups client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.7.70.json b/.changes/1.7.70.json new file mode 100644 index 0000000..70866f7 --- /dev/null +++ b/.changes/1.7.70.json @@ -0,0 +1,7 @@ +[ + { + "category": "``alexaforbusiness``", + "description": "[``botocore``] Update alexaforbusiness client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.7.71.json b/.changes/1.7.71.json new file mode 100644 index 0000000..ea75302 --- /dev/null +++ b/.changes/1.7.71.json @@ -0,0 +1,12 @@ +[ + { + "category": "``health``", + "description": "[``botocore``] Update health client to latest version", + "type": "api-change" + }, + { + "category": "``dynamodb``", + "description": "[``botocore``] Update dynamodb client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.7.72.json b/.changes/1.7.72.json new file mode 100644 index 0000000..090da0e --- /dev/null +++ b/.changes/1.7.72.json @@ -0,0 +1,27 @@ +[ + { + "category": "``logs``", + "description": "[``botocore``] Update logs client to latest version", + "type": "api-change" + }, + { + "category": "``codebuild``", + "description": "[``botocore``] Update codebuild client to latest version", + "type": "api-change" + }, + { + "category": "``ssm``", + "description": "[``botocore``] Update ssm client to latest version", + "type": "api-change" + }, + { + "category": "``ec2``", + "description": "[``botocore``] Update ec2 client to latest version", + "type": "api-change" + }, + { + "category": "``pinpoint``", + "description": "[``botocore``] Update pinpoint client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.7.73.json b/.changes/1.7.73.json new file mode 100644 index 0000000..cf6410a --- /dev/null +++ b/.changes/1.7.73.json @@ -0,0 +1,12 @@ +[ + { + "category": "``secretsmanager``", + "description": "[``botocore``] Update secretsmanager client to latest version", + "type": "api-change" + }, + { + "category": "``ssm``", + "description": "[``botocore``] Update ssm client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.7.74.json b/.changes/1.7.74.json new file mode 100644 index 0000000..de8e976 --- /dev/null +++ b/.changes/1.7.74.json @@ -0,0 +1,17 @@ +[ + { + "category": "``rds``", + "description": "[``botocore``] Update rds client to latest version", + "type": "api-change" + }, + { + "category": "``dax``", + "description": "[``botocore``] Update dax client to latest version", + "type": "api-change" + }, + { + "category": "``ecs``", + "description": "[``botocore``] Update ecs client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.7.75.json b/.changes/1.7.75.json new file mode 100644 index 0000000..cd37ad5 --- /dev/null +++ b/.changes/1.7.75.json @@ -0,0 +1,12 @@ +[ + { + "category": "``rds``", + "description": "[``botocore``] Update rds client to latest version", + "type": "api-change" + }, + { + "category": "``mediaconvert``", + "description": "[``botocore``] Update mediaconvert client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.7.76.json b/.changes/1.7.76.json new file mode 100644 index 0000000..7239659 --- /dev/null +++ b/.changes/1.7.76.json @@ -0,0 +1,7 @@ +[ + { + "category": "``sagemaker``", + "description": "[``botocore``] Update sagemaker client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.7.77.json b/.changes/1.7.77.json new file mode 100644 index 0000000..0c78869 --- /dev/null +++ b/.changes/1.7.77.json @@ -0,0 +1,17 @@ +[ + { + "category": "``es``", + "description": "[``botocore``] Update es client to latest version", + "type": "api-change" + }, + { + "category": "``autoscaling``", + "description": "[``botocore``] Update autoscaling client to latest version", + "type": "api-change" + }, + { + "category": "``cloudfront``", + "description": "[``botocore``] Update cloudfront client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.7.78.json b/.changes/1.7.78.json new file mode 100644 index 0000000..ba14998 --- /dev/null +++ b/.changes/1.7.78.json @@ -0,0 +1,7 @@ +[ + { + "category": "``devicefarm``", + "description": "[``botocore``] Update devicefarm client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.7.79.json b/.changes/1.7.79.json new file mode 100644 index 0000000..a0f71fc --- /dev/null +++ b/.changes/1.7.79.json @@ -0,0 +1,27 @@ +[ + { + "category": "``discovery``", + "description": "[``botocore``] Update discovery client to latest version", + "type": "api-change" + }, + { + "category": "``ssm``", + "description": "[``botocore``] Update ssm client to latest version", + "type": "api-change" + }, + { + "category": "``ec2``", + "description": "[``botocore``] Update ec2 client to latest version", + "type": "api-change" + }, + { + "category": "``redshift``", + "description": "[``botocore``] Update redshift client to latest version", + "type": "api-change" + }, + { + "category": "``mediaconvert``", + "description": "[``botocore``] Update mediaconvert client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.7.80.json b/.changes/1.7.80.json new file mode 100644 index 0000000..00da75b --- /dev/null +++ b/.changes/1.7.80.json @@ -0,0 +1,17 @@ +[ + { + "category": "``dax``", + "description": "[``botocore``] Update dax client to latest version", + "type": "api-change" + }, + { + "category": "``secretsmanager``", + "description": "[``botocore``] Update secretsmanager client to latest version", + "type": "api-change" + }, + { + "category": "``sagemaker``", + "description": "[``botocore``] Update sagemaker client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.7.81.json b/.changes/1.7.81.json new file mode 100644 index 0000000..7a1e678 --- /dev/null +++ b/.changes/1.7.81.json @@ -0,0 +1,12 @@ +[ + { + "category": "``mediaconvert``", + "description": "[``botocore``] Update mediaconvert client to latest version", + "type": "api-change" + }, + { + "category": "``dynamodb``", + "description": "[``botocore``] Update dynamodb client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.7.82.json b/.changes/1.7.82.json new file mode 100644 index 0000000..4eaa3e1 --- /dev/null +++ b/.changes/1.7.82.json @@ -0,0 +1,22 @@ +[ + { + "category": "``ec2``", + "description": "[``botocore``] Update ec2 client to latest version", + "type": "api-change" + }, + { + "category": "``dlm``", + "description": "[``botocore``] Update dlm client to latest version", + "type": "api-change" + }, + { + "category": "``rds``", + "description": "[``botocore``] Update rds client to latest version", + "type": "api-change" + }, + { + "category": "``elasticbeanstalk``", + "description": "[``botocore``] Update elasticbeanstalk client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.7.83.json b/.changes/1.7.83.json new file mode 100644 index 0000000..509ba7a --- /dev/null +++ b/.changes/1.7.83.json @@ -0,0 +1,7 @@ +[ + { + "category": "``snowball``", + "description": "[``botocore``] Update snowball client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.7.84.json b/.changes/1.7.84.json new file mode 100644 index 0000000..0f6e075 --- /dev/null +++ b/.changes/1.7.84.json @@ -0,0 +1,27 @@ +[ + { + "category": "``iot``", + "description": "[``botocore``] Update iot client to latest version", + "type": "api-change" + }, + { + "category": "``rekognition``", + "description": "[``botocore``] Update rekognition client to latest version", + "type": "api-change" + }, + { + "category": "``lex-models``", + "description": "[``botocore``] Update lex-models client to latest version", + "type": "api-change" + }, + { + "category": "``iotanalytics``", + "description": "[``botocore``] Update iotanalytics client to latest version", + "type": "api-change" + }, + { + "category": "``medialive``", + "description": "[``botocore``] Update medialive client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.8.0.json b/.changes/1.8.0.json new file mode 100644 index 0000000..47f4b1e --- /dev/null +++ b/.changes/1.8.0.json @@ -0,0 +1,17 @@ +[ + { + "category": "``events``", + "description": "[``botocore``] Update events client to latest version", + "type": "api-change" + }, + { + "category": "``cognito-idp``", + "description": "[``botocore``] Update cognito-idp client to latest version", + "type": "api-change" + }, + { + "category": "urllib3", + "description": "[``botocore``] The vendored version of requests and urllib3 are no longer being used and botocore now has a direct dependency on newer versions of upstream urllib3.", + "type": "feature" + } +] \ No newline at end of file diff --git a/.changes/1.8.1.json b/.changes/1.8.1.json new file mode 100644 index 0000000..5b3e60f --- /dev/null +++ b/.changes/1.8.1.json @@ -0,0 +1,7 @@ +[ + { + "category": "``glue``", + "description": "[``botocore``] Update glue client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.8.2.json b/.changes/1.8.2.json new file mode 100644 index 0000000..0687bf3 --- /dev/null +++ b/.changes/1.8.2.json @@ -0,0 +1,22 @@ +[ + { + "category": "``iot``", + "description": "[``botocore``] Update iot client to latest version", + "type": "api-change" + }, + { + "category": "``signer``", + "description": "[``botocore``] Update signer client to latest version", + "type": "api-change" + }, + { + "category": "``redshift``", + "description": "[``botocore``] Update redshift client to latest version", + "type": "api-change" + }, + { + "category": "``iotanalytics``", + "description": "[``botocore``] Update iotanalytics client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.8.3.json b/.changes/1.8.3.json new file mode 100644 index 0000000..74c8731 --- /dev/null +++ b/.changes/1.8.3.json @@ -0,0 +1,12 @@ +[ + { + "category": "``glue``", + "description": "[``botocore``] Update glue client to latest version", + "type": "api-change" + }, + { + "category": "``xray``", + "description": "[``botocore``] Update xray client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.8.4.json b/.changes/1.8.4.json new file mode 100644 index 0000000..5490b69 --- /dev/null +++ b/.changes/1.8.4.json @@ -0,0 +1,17 @@ +[ + { + "category": "``glue``", + "description": "[``botocore``] Update glue client to latest version", + "type": "api-change" + }, + { + "category": "``sagemaker-runtime``", + "description": "[``botocore``] Update sagemaker-runtime client to latest version", + "type": "api-change" + }, + { + "category": "``mediapackage``", + "description": "[``botocore``] Update mediapackage client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.8.5.json b/.changes/1.8.5.json new file mode 100644 index 0000000..1c810db --- /dev/null +++ b/.changes/1.8.5.json @@ -0,0 +1,17 @@ +[ + { + "category": "``codebuild``", + "description": "[``botocore``] Update codebuild client to latest version", + "type": "api-change" + }, + { + "category": "``sagemaker``", + "description": "[``botocore``] Update sagemaker client to latest version", + "type": "api-change" + }, + { + "category": "signing", + "description": "[``botocore``] Fix an issue where mixed endpoint casing could cause a SigV4 signature mismatch.", + "type": "bugfix" + } +] \ No newline at end of file diff --git a/.changes/1.8.6.json b/.changes/1.8.6.json new file mode 100644 index 0000000..e4d6ab8 --- /dev/null +++ b/.changes/1.8.6.json @@ -0,0 +1,17 @@ +[ + { + "category": "``waf-regional``", + "description": "[``botocore``] Update waf-regional client to latest version", + "type": "api-change" + }, + { + "category": "``waf``", + "description": "[``botocore``] Update waf client to latest version", + "type": "api-change" + }, + { + "category": "``eks``", + "description": "[``botocore``] Update eks client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.8.7.json b/.changes/1.8.7.json new file mode 100644 index 0000000..917c65c --- /dev/null +++ b/.changes/1.8.7.json @@ -0,0 +1,12 @@ +[ + { + "category": "``rds``", + "description": "[``botocore``] Update rds client to latest version", + "type": "api-change" + }, + { + "category": "``rekognition``", + "description": "[``botocore``] Update rekognition client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.8.8.json b/.changes/1.8.8.json new file mode 100644 index 0000000..413e4f8 --- /dev/null +++ b/.changes/1.8.8.json @@ -0,0 +1,27 @@ +[ + { + "category": "``rds``", + "description": "[``botocore``] Update rds client to latest version", + "type": "api-change" + }, + { + "category": "``s3``", + "description": "[``botocore``] Update s3 client to latest version", + "type": "api-change" + }, + { + "category": "``appstream``", + "description": "[``botocore``] Update appstream client to latest version", + "type": "api-change" + }, + { + "category": "``dynamodb``", + "description": "[``botocore``] Update dynamodb client to latest version", + "type": "api-change" + }, + { + "category": "``elb``", + "description": "[``botocore``] Update elb client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.8.9.json b/.changes/1.8.9.json new file mode 100644 index 0000000..8979cfc --- /dev/null +++ b/.changes/1.8.9.json @@ -0,0 +1,17 @@ +[ + { + "category": "``apigateway``", + "description": "[``botocore``] Update apigateway client to latest version", + "type": "api-change" + }, + { + "category": "``codecommit``", + "description": "[``botocore``] Update codecommit client to latest version", + "type": "api-change" + }, + { + "category": "``mediaconvert``", + "description": "[``botocore``] Update mediaconvert client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.0.json b/.changes/1.9.0.json new file mode 100644 index 0000000..28352df --- /dev/null +++ b/.changes/1.9.0.json @@ -0,0 +1,22 @@ +[ + { + "category": "``logs``", + "description": "[``botocore``] Update logs client to latest version", + "type": "api-change" + }, + { + "category": "``config``", + "description": "[``botocore``] Update config client to latest version", + "type": "api-change" + }, + { + "category": "Events", + "description": "[``botocore``] This migrates the event system to using sevice ids instead of either client name or endpoint prefix. This prevents issues that might arise when a service changes their endpoint prefix, also fixes a long-standing bug where you could not register an event to a particular service if it happened to share its endpoint prefix with another service (e.g. ``autoscaling`` and ``application-autoscaling`` both use the endpoint prefix ``autoscaling``). Please see the `upgrade notes `_ to determine if you are impacted and how to proceed if you are.", + "type": "feature" + }, + { + "category": "Events", + "description": "This migrates the event system to using sevice ids instead of either client name or endpoint prefix. This prevents issues that might arise when a service changes their endpoint prefix, also fixes a long-standing bug where you could not register an event to a particular service if it happened to share its endpoint prefix with another service (e.g. ``autoscaling`` and ``application-autoscaling`` both use the endpoint prefix ``autoscaling``). Please see the `upgrade notes `_ to determine if you are impacted and how to proceed if you are.", + "type": "feature" + } +] \ No newline at end of file diff --git a/.changes/1.9.1.json b/.changes/1.9.1.json new file mode 100644 index 0000000..b37c57f --- /dev/null +++ b/.changes/1.9.1.json @@ -0,0 +1,12 @@ +[ + { + "category": "``redshift``", + "description": "[``botocore``] Update redshift client to latest version", + "type": "api-change" + }, + { + "category": "``cloudhsmv2``", + "description": "[``botocore``] Update cloudhsmv2 client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.10.json b/.changes/1.9.10.json new file mode 100644 index 0000000..4fa7311 --- /dev/null +++ b/.changes/1.9.10.json @@ -0,0 +1,12 @@ +[ + { + "category": "``connect``", + "description": "[``botocore``] Update connect client to latest version", + "type": "api-change" + }, + { + "category": "``rds``", + "description": "[``botocore``] Update rds client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.11.json b/.changes/1.9.11.json new file mode 100644 index 0000000..a085a1b --- /dev/null +++ b/.changes/1.9.11.json @@ -0,0 +1,17 @@ +[ + { + "category": "``ec2``", + "description": "[``botocore``] Update ec2 client to latest version", + "type": "api-change" + }, + { + "category": "``cloudfront``", + "description": "[``botocore``] Update cloudfront client to latest version", + "type": "api-change" + }, + { + "category": "``ds``", + "description": "[``botocore``] Update ds client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.12.json b/.changes/1.9.12.json new file mode 100644 index 0000000..ba16759 --- /dev/null +++ b/.changes/1.9.12.json @@ -0,0 +1,22 @@ +[ + { + "category": "``sqs``", + "description": "[``botocore``] Update sqs client to latest version", + "type": "api-change" + }, + { + "category": "``glue``", + "description": "[``botocore``] Update glue client to latest version", + "type": "api-change" + }, + { + "category": "``opsworkscm``", + "description": "[``botocore``] Update opsworkscm client to latest version", + "type": "api-change" + }, + { + "category": "``rds``", + "description": "[``botocore``] Update rds client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.13.json b/.changes/1.9.13.json new file mode 100644 index 0000000..c34ad28 --- /dev/null +++ b/.changes/1.9.13.json @@ -0,0 +1,22 @@ +[ + { + "category": "``mq``", + "description": "[``botocore``] Update mq client to latest version", + "type": "api-change" + }, + { + "category": "``apigateway``", + "description": "[``botocore``] Update apigateway client to latest version", + "type": "api-change" + }, + { + "category": "Event", + "description": "[``botocore``] Add the `before-send` event which allows finalized requests to be inspected before being sent across the wire and allows for custom responses to be returned.", + "type": "enhancement" + }, + { + "category": "``codecommit``", + "description": "[``botocore``] Update codecommit client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.14.json b/.changes/1.9.14.json new file mode 100644 index 0000000..d513788 --- /dev/null +++ b/.changes/1.9.14.json @@ -0,0 +1,12 @@ +[ + { + "category": "``codestar``", + "description": "[``botocore``] Update codestar client to latest version", + "type": "api-change" + }, + { + "category": "``ec2``", + "description": "[``botocore``] Update ec2 client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.15.json b/.changes/1.9.15.json new file mode 100644 index 0000000..66739f8 --- /dev/null +++ b/.changes/1.9.15.json @@ -0,0 +1,12 @@ +[ + { + "category": "``rekognition``", + "description": "[``botocore``] Update rekognition client to latest version", + "type": "api-change" + }, + { + "category": "``guardduty``", + "description": "[``botocore``] Update guardduty client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.16.json b/.changes/1.9.16.json new file mode 100644 index 0000000..f60a8e7 --- /dev/null +++ b/.changes/1.9.16.json @@ -0,0 +1,12 @@ +[ + { + "category": "``sagemaker``", + "description": "[``botocore``] Update sagemaker client to latest version", + "type": "api-change" + }, + { + "category": "``secretsmanager``", + "description": "[``botocore``] Update secretsmanager client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.17.json b/.changes/1.9.17.json new file mode 100644 index 0000000..81192b7 --- /dev/null +++ b/.changes/1.9.17.json @@ -0,0 +1,27 @@ +[ + { + "category": "``ssm``", + "description": "[``botocore``] Update ssm client to latest version", + "type": "api-change" + }, + { + "category": "``codebuild``", + "description": "[``botocore``] Update codebuild client to latest version", + "type": "api-change" + }, + { + "category": "HTTP Session", + "description": "[``botocore``] Added the ability to enable TCP Keepalive via the shared config file's ``tcp_keepalive`` option.", + "type": "enhancement" + }, + { + "category": "``apigateway``", + "description": "[``botocore``] Update apigateway client to latest version", + "type": "api-change" + }, + { + "category": "``storagegateway``", + "description": "[``botocore``] Update storagegateway client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.18.json b/.changes/1.9.18.json new file mode 100644 index 0000000..62a792b --- /dev/null +++ b/.changes/1.9.18.json @@ -0,0 +1,7 @@ +[ + { + "category": "``ds``", + "description": "[``botocore``] Update ds client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.19.json b/.changes/1.9.19.json new file mode 100644 index 0000000..ef3864a --- /dev/null +++ b/.changes/1.9.19.json @@ -0,0 +1,12 @@ +[ + { + "category": "``iot``", + "description": "[``botocore``] Update iot client to latest version", + "type": "api-change" + }, + { + "category": "``iot-jobs-data``", + "description": "[``botocore``] Update iot-jobs-data client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.2.json b/.changes/1.9.2.json new file mode 100644 index 0000000..333480b --- /dev/null +++ b/.changes/1.9.2.json @@ -0,0 +1,12 @@ +[ + { + "category": "``opsworkscm``", + "description": "[``botocore``] Update opsworkscm client to latest version", + "type": "api-change" + }, + { + "category": "``ssm``", + "description": "[``botocore``] Update ssm client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.20.json b/.changes/1.9.20.json new file mode 100644 index 0000000..11547fa --- /dev/null +++ b/.changes/1.9.20.json @@ -0,0 +1,17 @@ +[ + { + "category": "TLS", + "description": "[``botocore``] Added support for configuring a client certificate and key when establishing TLS connections.", + "type": "enhancement" + }, + { + "category": "``ssm``", + "description": "[``botocore``] Update ssm client to latest version", + "type": "api-change" + }, + { + "category": "InstanceMetadataFetcher", + "description": "[``botocore``] Fix failure to retry on empty credentials and invalid JSON returned from IMDS `1049 `__ `1403 `__", + "type": "bugfix" + } +] \ No newline at end of file diff --git a/.changes/1.9.21.json b/.changes/1.9.21.json new file mode 100644 index 0000000..f70d97b --- /dev/null +++ b/.changes/1.9.21.json @@ -0,0 +1,17 @@ +[ + { + "category": "``transcribe``", + "description": "[``botocore``] Update transcribe client to latest version", + "type": "api-change" + }, + { + "category": "``comprehend``", + "description": "[``botocore``] Update comprehend client to latest version", + "type": "api-change" + }, + { + "category": "``es``", + "description": "[``botocore``] Update es client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.22.json b/.changes/1.9.22.json new file mode 100644 index 0000000..b84c9e9 --- /dev/null +++ b/.changes/1.9.22.json @@ -0,0 +1,27 @@ +[ + { + "category": "``athena``", + "description": "[``botocore``] Update athena client to latest version", + "type": "api-change" + }, + { + "category": "``ec2``", + "description": "[``botocore``] Update ec2 client to latest version", + "type": "api-change" + }, + { + "category": "``transcribe``", + "description": "[``botocore``] Update transcribe client to latest version", + "type": "api-change" + }, + { + "category": "``mediaconvert``", + "description": "[``botocore``] Update mediaconvert client to latest version", + "type": "api-change" + }, + { + "category": "``directconnect``", + "description": "[``botocore``] Update directconnect client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.23.json b/.changes/1.9.23.json new file mode 100644 index 0000000..fb4f028 --- /dev/null +++ b/.changes/1.9.23.json @@ -0,0 +1,7 @@ +[ + { + "category": "``cloudtrail``", + "description": "[``botocore``] Update cloudtrail client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.24.json b/.changes/1.9.24.json new file mode 100644 index 0000000..c10b708 --- /dev/null +++ b/.changes/1.9.24.json @@ -0,0 +1,17 @@ +[ + { + "category": "``rds``", + "description": "[``botocore``] Update rds client to latest version", + "type": "api-change" + }, + { + "category": "``lambda``", + "description": "[``botocore``] Update lambda client to latest version", + "type": "api-change" + }, + { + "category": "``servicecatalog``", + "description": "[``botocore``] Update servicecatalog client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.25.json b/.changes/1.9.25.json new file mode 100644 index 0000000..e5fd15c --- /dev/null +++ b/.changes/1.9.25.json @@ -0,0 +1,17 @@ +[ + { + "category": "``glue``", + "description": "[``botocore``] Update glue client to latest version", + "type": "api-change" + }, + { + "category": "``lightsail``", + "description": "[``botocore``] Update lightsail client to latest version", + "type": "api-change" + }, + { + "category": "``resource-groups``", + "description": "[``botocore``] Update resource-groups client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.26.json b/.changes/1.9.26.json new file mode 100644 index 0000000..5487ea1 --- /dev/null +++ b/.changes/1.9.26.json @@ -0,0 +1,12 @@ +[ + { + "category": "``events``", + "description": "[``botocore``] Update events client to latest version", + "type": "api-change" + }, + { + "category": "``apigateway``", + "description": "[``botocore``] Update apigateway client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.27.json b/.changes/1.9.27.json new file mode 100644 index 0000000..5ca3971 --- /dev/null +++ b/.changes/1.9.27.json @@ -0,0 +1,17 @@ +[ + { + "category": "``medialive``", + "description": "[``botocore``] Update medialive client to latest version", + "type": "api-change" + }, + { + "category": "``route53``", + "description": "[``botocore``] Update route53 client to latest version", + "type": "api-change" + }, + { + "category": "``appstream``", + "description": "[``botocore``] Update appstream client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.28.json b/.changes/1.9.28.json new file mode 100644 index 0000000..aca9bf4 --- /dev/null +++ b/.changes/1.9.28.json @@ -0,0 +1,12 @@ +[ + { + "category": "``workspaces``", + "description": "[``botocore``] Update workspaces client to latest version", + "type": "api-change" + }, + { + "category": "``ssm``", + "description": "[``botocore``] Update ssm client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.29.json b/.changes/1.9.29.json new file mode 100644 index 0000000..5851752 --- /dev/null +++ b/.changes/1.9.29.json @@ -0,0 +1,12 @@ +[ + { + "category": "``inspector``", + "description": "[``botocore``] Update inspector client to latest version", + "type": "api-change" + }, + { + "category": "``shield``", + "description": "[``botocore``] Update shield client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.3.json b/.changes/1.9.3.json new file mode 100644 index 0000000..9654d5b --- /dev/null +++ b/.changes/1.9.3.json @@ -0,0 +1,22 @@ +[ + { + "category": "``ses``", + "description": "[``botocore``] Update ses client to latest version", + "type": "api-change" + }, + { + "category": "``ec2``", + "description": "[``botocore``] Update ec2 client to latest version", + "type": "api-change" + }, + { + "category": "``fms``", + "description": "[``botocore``] Update fms client to latest version", + "type": "api-change" + }, + { + "category": "``connect``", + "description": "[``botocore``] Update connect client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.30.json b/.changes/1.9.30.json new file mode 100644 index 0000000..4566b5e --- /dev/null +++ b/.changes/1.9.30.json @@ -0,0 +1,7 @@ +[ + { + "category": "``ec2``", + "description": "[``botocore``] Update ec2 client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.31.json b/.changes/1.9.31.json new file mode 100644 index 0000000..30bdd8a --- /dev/null +++ b/.changes/1.9.31.json @@ -0,0 +1,12 @@ +[ + { + "category": "``codestar``", + "description": "[``botocore``] Update codestar client to latest version", + "type": "api-change" + }, + { + "category": "``alexaforbusiness``", + "description": "[``botocore``] Update alexaforbusiness client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.32.json b/.changes/1.9.32.json new file mode 100644 index 0000000..4566b5e --- /dev/null +++ b/.changes/1.9.32.json @@ -0,0 +1,7 @@ +[ + { + "category": "``ec2``", + "description": "[``botocore``] Update ec2 client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.33.json b/.changes/1.9.33.json new file mode 100644 index 0000000..18cb790 --- /dev/null +++ b/.changes/1.9.33.json @@ -0,0 +1,17 @@ +[ + { + "category": "``sagemaker``", + "description": "[``botocore``] Update sagemaker client to latest version", + "type": "api-change" + }, + { + "category": "``alexaforbusiness``", + "description": "[``botocore``] Update alexaforbusiness client to latest version", + "type": "api-change" + }, + { + "category": "``ssm``", + "description": "[``botocore``] Update ssm client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.34.json b/.changes/1.9.34.json new file mode 100644 index 0000000..47332fa --- /dev/null +++ b/.changes/1.9.34.json @@ -0,0 +1,17 @@ +[ + { + "category": "``chime``", + "description": "[``botocore``] Update chime client to latest version", + "type": "api-change" + }, + { + "category": "``rds``", + "description": "[``botocore``] Update rds client to latest version", + "type": "api-change" + }, + { + "category": "``dms``", + "description": "[``botocore``] Update dms client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.35.json b/.changes/1.9.35.json new file mode 100644 index 0000000..7f22f14 --- /dev/null +++ b/.changes/1.9.35.json @@ -0,0 +1,22 @@ +[ + { + "category": "``mediastore-data``", + "description": "[``botocore``] Update mediastore-data client to latest version", + "type": "api-change" + }, + { + "category": "``secretsmanager``", + "description": "[``botocore``] Update secretsmanager client to latest version", + "type": "api-change" + }, + { + "category": "``greengrass``", + "description": "[``botocore``] Update greengrass client to latest version", + "type": "api-change" + }, + { + "category": "``config``", + "description": "[``botocore``] Update config client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.36.json b/.changes/1.9.36.json new file mode 100644 index 0000000..8ee1f00 --- /dev/null +++ b/.changes/1.9.36.json @@ -0,0 +1,12 @@ +[ + { + "category": "``servicecatalog``", + "description": "[``botocore``] Update servicecatalog client to latest version", + "type": "api-change" + }, + { + "category": "Exceptions", + "description": "[``botocore``] Add the ability to pickle botocore exceptions (`834 `__)", + "type": "enhancement" + } +] \ No newline at end of file diff --git a/.changes/1.9.37.json b/.changes/1.9.37.json new file mode 100644 index 0000000..53dac6d --- /dev/null +++ b/.changes/1.9.37.json @@ -0,0 +1,12 @@ +[ + { + "category": "``rekognition``", + "description": "[``botocore``] Update rekognition client to latest version", + "type": "api-change" + }, + { + "category": "``clouddirectory``", + "description": "[``botocore``] Update clouddirectory client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.38.json b/.changes/1.9.38.json new file mode 100644 index 0000000..bb98611 --- /dev/null +++ b/.changes/1.9.38.json @@ -0,0 +1,17 @@ +[ + { + "category": "``eks``", + "description": "[``botocore``] Update eks client to latest version", + "type": "api-change" + }, + { + "category": "Configuration", + "description": "[``botocore``] Added new configuration provider methods allowing for more flexibility in how a botocore session loads a particular configuration value.", + "type": "enhancement" + }, + { + "category": "``serverlessrepo``", + "description": "[``botocore``] Update serverlessrepo client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.39.json b/.changes/1.9.39.json new file mode 100644 index 0000000..a7eaced --- /dev/null +++ b/.changes/1.9.39.json @@ -0,0 +1,37 @@ +[ + { + "category": "``codebuild``", + "description": "[``botocore``] Update codebuild client to latest version", + "type": "api-change" + }, + { + "category": "``pinpoint``", + "description": "[``botocore``] Update pinpoint client to latest version", + "type": "api-change" + }, + { + "category": "``ec2``", + "description": "[``botocore``] Update ec2 client to latest version", + "type": "api-change" + }, + { + "category": "``pinpoint-email``", + "description": "[``botocore``] Update pinpoint-email client to latest version", + "type": "api-change" + }, + { + "category": "``apigateway``", + "description": "[``botocore``] Update apigateway client to latest version", + "type": "api-change" + }, + { + "category": "``waf-regional``", + "description": "[``botocore``] Update waf-regional client to latest version", + "type": "api-change" + }, + { + "category": "session config", + "description": "[``botocore``] Added the default session configuration tuples back to session.session_vars_map.", + "type": "bugfix" + } +] \ No newline at end of file diff --git a/.changes/1.9.4.json b/.changes/1.9.4.json new file mode 100644 index 0000000..37fc560 --- /dev/null +++ b/.changes/1.9.4.json @@ -0,0 +1,12 @@ +[ + { + "category": "s3", + "description": "[``botocore``] Adds encoding and decoding handlers for ListObjectsV2 `#1552 `__", + "type": "enhancement" + }, + { + "category": "``polly``", + "description": "[``botocore``] Update polly client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.40.json b/.changes/1.9.40.json new file mode 100644 index 0000000..ec47efd --- /dev/null +++ b/.changes/1.9.40.json @@ -0,0 +1,17 @@ +[ + { + "category": "``dms``", + "description": "[``botocore``] Update dms client to latest version", + "type": "api-change" + }, + { + "category": "``ce``", + "description": "[``botocore``] Update ce client to latest version", + "type": "api-change" + }, + { + "category": "``ec2``", + "description": "[``botocore``] Update ec2 client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.41.json b/.changes/1.9.41.json new file mode 100644 index 0000000..3744dbc --- /dev/null +++ b/.changes/1.9.41.json @@ -0,0 +1,17 @@ +[ + { + "category": "``medialive``", + "description": "[``botocore``] Update medialive client to latest version", + "type": "api-change" + }, + { + "category": "``dlm``", + "description": "[``botocore``] Update dlm client to latest version", + "type": "api-change" + }, + { + "category": "``events``", + "description": "[``botocore``] Update events client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.42.json b/.changes/1.9.42.json new file mode 100644 index 0000000..7887a5a --- /dev/null +++ b/.changes/1.9.42.json @@ -0,0 +1,7 @@ +[ + { + "category": "``mediapackage``", + "description": "[``botocore``] Update mediapackage client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.43.json b/.changes/1.9.43.json new file mode 100644 index 0000000..a9d5754 --- /dev/null +++ b/.changes/1.9.43.json @@ -0,0 +1,37 @@ +[ + { + "category": "``polly``", + "description": "[``botocore``] Update polly client to latest version", + "type": "api-change" + }, + { + "category": "``batch``", + "description": "[``botocore``] Update batch client to latest version", + "type": "api-change" + }, + { + "category": "``firehose``", + "description": "[``botocore``] Update firehose client to latest version", + "type": "api-change" + }, + { + "category": "``cloudformation``", + "description": "[``botocore``] Update cloudformation client to latest version", + "type": "api-change" + }, + { + "category": "``budgets``", + "description": "[``botocore``] Update budgets client to latest version", + "type": "api-change" + }, + { + "category": "``codepipeline``", + "description": "[``botocore``] Update codepipeline client to latest version", + "type": "api-change" + }, + { + "category": "``rds``", + "description": "[``botocore``] Update rds client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.44.json b/.changes/1.9.44.json new file mode 100644 index 0000000..70b1218 --- /dev/null +++ b/.changes/1.9.44.json @@ -0,0 +1,17 @@ +[ + { + "category": "``chime``", + "description": "[``botocore``] Update chime client to latest version", + "type": "api-change" + }, + { + "category": "``budgets``", + "description": "[``botocore``] Update budgets client to latest version", + "type": "api-change" + }, + { + "category": "``redshift``", + "description": "[``botocore``] Update redshift client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.45.json b/.changes/1.9.45.json new file mode 100644 index 0000000..4ad04a1 --- /dev/null +++ b/.changes/1.9.45.json @@ -0,0 +1,37 @@ +[ + { + "category": "``resource-groups``", + "description": "[``botocore``] Update resource-groups client to latest version", + "type": "api-change" + }, + { + "category": "``autoscaling``", + "description": "[``botocore``] Update autoscaling client to latest version", + "type": "api-change" + }, + { + "category": "``mediatailor``", + "description": "[``botocore``] Update mediatailor client to latest version", + "type": "api-change" + }, + { + "category": "``sns``", + "description": "[``botocore``] Update sns client to latest version", + "type": "api-change" + }, + { + "category": "``sagemaker``", + "description": "[``botocore``] Update sagemaker client to latest version", + "type": "api-change" + }, + { + "category": "``servicecatalog``", + "description": "[``botocore``] Update servicecatalog client to latest version", + "type": "api-change" + }, + { + "category": "``ec2``", + "description": "[``botocore``] Update ec2 client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.46.json b/.changes/1.9.46.json new file mode 100644 index 0000000..492f651 --- /dev/null +++ b/.changes/1.9.46.json @@ -0,0 +1,77 @@ +[ + { + "category": "``s3``", + "description": "[``botocore``] Update s3 client to latest version", + "type": "api-change" + }, + { + "category": "``sms-voice``", + "description": "[``botocore``] Update sms-voice client to latest version", + "type": "api-change" + }, + { + "category": "``redshift``", + "description": "[``botocore``] Update redshift client to latest version", + "type": "api-change" + }, + { + "category": "``rds``", + "description": "[``botocore``] Update rds client to latest version", + "type": "api-change" + }, + { + "category": "``dms``", + "description": "[``botocore``] Update dms client to latest version", + "type": "api-change" + }, + { + "category": "``codebuild``", + "description": "[``botocore``] Update codebuild client to latest version", + "type": "api-change" + }, + { + "category": "``s3control``", + "description": "[``botocore``] Update s3control client to latest version", + "type": "api-change" + }, + { + "category": "``directconnect``", + "description": "[``botocore``] Update directconnect client to latest version", + "type": "api-change" + }, + { + "category": "``ram``", + "description": "[``botocore``] Update ram client to latest version", + "type": "api-change" + }, + { + "category": "``pinpoint``", + "description": "[``botocore``] Update pinpoint client to latest version", + "type": "api-change" + }, + { + "category": "``route53resolver``", + "description": "[``botocore``] Update route53resolver client to latest version", + "type": "api-change" + }, + { + "category": "``comprehend``", + "description": "[``botocore``] Update comprehend client to latest version", + "type": "api-change" + }, + { + "category": "``transcribe``", + "description": "[``botocore``] Update transcribe client to latest version", + "type": "api-change" + }, + { + "category": "``ecs``", + "description": "[``botocore``] Update ecs client to latest version", + "type": "api-change" + }, + { + "category": "``iam``", + "description": "[``botocore``] Update iam client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.47.json b/.changes/1.9.47.json new file mode 100644 index 0000000..44ea1ba --- /dev/null +++ b/.changes/1.9.47.json @@ -0,0 +1,27 @@ +[ + { + "category": "``ssm``", + "description": "[``botocore``] Update ssm client to latest version", + "type": "api-change" + }, + { + "category": "``comprehend``", + "description": "[``botocore``] Update comprehend client to latest version", + "type": "api-change" + }, + { + "category": "``workspaces``", + "description": "[``botocore``] Update workspaces client to latest version", + "type": "api-change" + }, + { + "category": "``ce``", + "description": "[``botocore``] Update ce client to latest version", + "type": "api-change" + }, + { + "category": "``ecs``", + "description": "[``botocore``] Update ecs client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.48.json b/.changes/1.9.48.json new file mode 100644 index 0000000..4418734 --- /dev/null +++ b/.changes/1.9.48.json @@ -0,0 +1,67 @@ +[ + { + "category": "``lightsail``", + "description": "[``botocore``] Update lightsail client to latest version", + "type": "api-change" + }, + { + "category": "``workspaces``", + "description": "[``botocore``] Update workspaces client to latest version", + "type": "api-change" + }, + { + "category": "``workdocs``", + "description": "[``botocore``] Update workdocs client to latest version", + "type": "api-change" + }, + { + "category": "``batch``", + "description": "[``botocore``] Update batch client to latest version", + "type": "api-change" + }, + { + "category": "``ec2``", + "description": "[``botocore``] Update ec2 client to latest version", + "type": "api-change" + }, + { + "category": "``devicefarm``", + "description": "[``botocore``] Update devicefarm client to latest version", + "type": "api-change" + }, + { + "category": "``rds``", + "description": "[``botocore``] Update rds client to latest version", + "type": "api-change" + }, + { + "category": "``cloudformation``", + "description": "[``botocore``] Update cloudformation client to latest version", + "type": "api-change" + }, + { + "category": "``lambda``", + "description": "[``botocore``] Update lambda client to latest version", + "type": "api-change" + }, + { + "category": "``config``", + "description": "[``botocore``] Update config client to latest version", + "type": "api-change" + }, + { + "category": "``cloudtrail``", + "description": "[``botocore``] Update cloudtrail client to latest version", + "type": "api-change" + }, + { + "category": "``mediaconvert``", + "description": "[``botocore``] Update mediaconvert client to latest version", + "type": "api-change" + }, + { + "category": "``iot``", + "description": "[``botocore``] Update iot client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.49.json b/.changes/1.9.49.json new file mode 100644 index 0000000..2da954a --- /dev/null +++ b/.changes/1.9.49.json @@ -0,0 +1,57 @@ +[ + { + "category": "``autoscaling-plans``", + "description": "[``botocore``] Update autoscaling-plans client to latest version", + "type": "api-change" + }, + { + "category": "``xray``", + "description": "[``botocore``] Update xray client to latest version", + "type": "api-change" + }, + { + "category": "``devicefarm``", + "description": "[``botocore``] Update devicefarm client to latest version", + "type": "api-change" + }, + { + "category": "``ssm``", + "description": "[``botocore``] Update ssm client to latest version", + "type": "api-change" + }, + { + "category": "``medialive``", + "description": "[``botocore``] Update medialive client to latest version", + "type": "api-change" + }, + { + "category": "``redshift``", + "description": "[``botocore``] Update redshift client to latest version", + "type": "api-change" + }, + { + "category": "``rds-data``", + "description": "[``botocore``] Update rds-data client to latest version", + "type": "api-change" + }, + { + "category": "``appsync``", + "description": "[``botocore``] Update appsync client to latest version", + "type": "api-change" + }, + { + "category": "``cloudwatch``", + "description": "[``botocore``] Update cloudwatch client to latest version", + "type": "api-change" + }, + { + "category": "``quicksight``", + "description": "[``botocore``] Update quicksight client to latest version", + "type": "api-change" + }, + { + "category": "``cloudfront``", + "description": "[``botocore``] Update cloudfront client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.5.json b/.changes/1.9.5.json new file mode 100644 index 0000000..f0518e1 --- /dev/null +++ b/.changes/1.9.5.json @@ -0,0 +1,37 @@ +[ + { + "category": "``codebuild``", + "description": "[``botocore``] Update codebuild client to latest version", + "type": "api-change" + }, + { + "category": "``elastictranscoder``", + "description": "[``botocore``] Update elastictranscoder client to latest version", + "type": "api-change" + }, + { + "category": "``ecs``", + "description": "[``botocore``] Update ecs client to latest version", + "type": "api-change" + }, + { + "category": "``ec2``", + "description": "[``botocore``] Update ec2 client to latest version", + "type": "api-change" + }, + { + "category": "``cloudwatch``", + "description": "[``botocore``] Update cloudwatch client to latest version", + "type": "api-change" + }, + { + "category": "``secretsmanager``", + "description": "[``botocore``] Update secretsmanager client to latest version", + "type": "api-change" + }, + { + "category": "``elasticache``", + "description": "[``botocore``] Update elasticache client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.50.json b/.changes/1.9.50.json new file mode 100644 index 0000000..a32f235 --- /dev/null +++ b/.changes/1.9.50.json @@ -0,0 +1,7 @@ +[ + { + "category": "``rekognition``", + "description": "[``botocore``] Update rekognition client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.51.json b/.changes/1.9.51.json new file mode 100644 index 0000000..62b61fc --- /dev/null +++ b/.changes/1.9.51.json @@ -0,0 +1,32 @@ +[ + { + "category": "``amplify``", + "description": "[``botocore``] Update amplify client to latest version", + "type": "api-change" + }, + { + "category": "``transfer``", + "description": "[``botocore``] Update transfer client to latest version", + "type": "api-change" + }, + { + "category": "``snowball``", + "description": "[``botocore``] Update snowball client to latest version", + "type": "api-change" + }, + { + "category": "``robomaker``", + "description": "[``botocore``] Update robomaker client to latest version", + "type": "api-change" + }, + { + "category": "``s3``", + "description": "[``botocore``] Update s3 client to latest version", + "type": "api-change" + }, + { + "category": "``datasync``", + "description": "[``botocore``] Update datasync client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.52.json b/.changes/1.9.52.json new file mode 100644 index 0000000..4bfc305 --- /dev/null +++ b/.changes/1.9.52.json @@ -0,0 +1,42 @@ +[ + { + "category": "``iot``", + "description": "[``botocore``] Update iot client to latest version", + "type": "api-change" + }, + { + "category": "``sms``", + "description": "[``botocore``] Update sms client to latest version", + "type": "api-change" + }, + { + "category": "``s3``", + "description": "[``botocore``] Update s3 client to latest version", + "type": "api-change" + }, + { + "category": "``iotanalytics``", + "description": "[``botocore``] Update iotanalytics client to latest version", + "type": "api-change" + }, + { + "category": "``greengrass``", + "description": "[``botocore``] Update greengrass client to latest version", + "type": "api-change" + }, + { + "category": "``kms``", + "description": "[``botocore``] Update kms client to latest version", + "type": "api-change" + }, + { + "category": "``ec2``", + "description": "[``botocore``] Update ec2 client to latest version", + "type": "api-change" + }, + { + "category": "``globalaccelerator``", + "description": "[``botocore``] Update globalaccelerator client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.53.json b/.changes/1.9.53.json new file mode 100644 index 0000000..15228e1 --- /dev/null +++ b/.changes/1.9.53.json @@ -0,0 +1,52 @@ +[ + { + "category": "``meteringmarketplace``", + "description": "[``botocore``] Update meteringmarketplace client to latest version", + "type": "api-change" + }, + { + "category": "``ec2``", + "description": "[``botocore``] Update ec2 client to latest version", + "type": "api-change" + }, + { + "category": "``codedeploy``", + "description": "[``botocore``] Update codedeploy client to latest version", + "type": "api-change" + }, + { + "category": "``translate``", + "description": "[``botocore``] Update translate client to latest version", + "type": "api-change" + }, + { + "category": "``logs``", + "description": "[``botocore``] Update logs client to latest version", + "type": "api-change" + }, + { + "category": "``kinesisanalytics``", + "description": "[``botocore``] Update kinesisanalytics client to latest version", + "type": "api-change" + }, + { + "category": "``comprehendmedical``", + "description": "[``botocore``] Update comprehendmedical client to latest version", + "type": "api-change" + }, + { + "category": "``mediaconnect``", + "description": "[``botocore``] Update mediaconnect client to latest version", + "type": "api-change" + }, + { + "category": "``kinesisanalyticsv2``", + "description": "[``botocore``] Update kinesisanalyticsv2 client to latest version", + "type": "api-change" + }, + { + "category": "``ecs``", + "description": "[``botocore``] Update ecs client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.54.json b/.changes/1.9.54.json new file mode 100644 index 0000000..b79f01f --- /dev/null +++ b/.changes/1.9.54.json @@ -0,0 +1,22 @@ +[ + { + "category": "``securityhub``", + "description": "[``botocore``] Update securityhub client to latest version", + "type": "api-change" + }, + { + "category": "``rds``", + "description": "[``botocore``] Update rds client to latest version", + "type": "api-change" + }, + { + "category": "``fsx``", + "description": "[``botocore``] Update fsx client to latest version", + "type": "api-change" + }, + { + "category": "``dynamodb``", + "description": "[``botocore``] Update dynamodb client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.55.json b/.changes/1.9.55.json new file mode 100644 index 0000000..875e676 --- /dev/null +++ b/.changes/1.9.55.json @@ -0,0 +1,32 @@ +[ + { + "category": "``ec2``", + "description": "[``botocore``] Update ec2 client to latest version", + "type": "api-change" + }, + { + "category": "``appmesh``", + "description": "[``botocore``] Update appmesh client to latest version", + "type": "api-change" + }, + { + "category": "``license-manager``", + "description": "[``botocore``] Update license-manager client to latest version", + "type": "api-change" + }, + { + "category": "``servicediscovery``", + "description": "[``botocore``] Update servicediscovery client to latest version", + "type": "api-change" + }, + { + "category": "``sagemaker``", + "description": "[``botocore``] Update sagemaker client to latest version", + "type": "api-change" + }, + { + "category": "``lightsail``", + "description": "[``botocore``] Update lightsail client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.56.json b/.changes/1.9.56.json new file mode 100644 index 0000000..20fbf52 --- /dev/null +++ b/.changes/1.9.56.json @@ -0,0 +1,42 @@ +[ + { + "category": "``elbv2``", + "description": "[``botocore``] Update elbv2 client to latest version", + "type": "api-change" + }, + { + "category": "``stepfunctions``", + "description": "[``botocore``] Update stepfunctions client to latest version", + "type": "api-change" + }, + { + "category": "``xray``", + "description": "[``botocore``] Update xray client to latest version", + "type": "api-change" + }, + { + "category": "``lambda``", + "description": "[``botocore``] Update lambda client to latest version", + "type": "api-change" + }, + { + "category": "``events``", + "description": "[``botocore``] Update events client to latest version", + "type": "api-change" + }, + { + "category": "``serverlessrepo``", + "description": "[``botocore``] Update serverlessrepo client to latest version", + "type": "api-change" + }, + { + "category": "``kafka``", + "description": "[``botocore``] Update kafka client to latest version", + "type": "api-change" + }, + { + "category": "``s3``", + "description": "[``botocore``] Update s3 client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.57.json b/.changes/1.9.57.json new file mode 100644 index 0000000..cc9e8fe --- /dev/null +++ b/.changes/1.9.57.json @@ -0,0 +1,12 @@ +[ + { + "category": "s3", + "description": "[``botocore``] Add md5 header injection to new operations that require it", + "type": "bugfix" + }, + { + "category": "``s3``", + "description": "[``botocore``] Update s3 client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.58.json b/.changes/1.9.58.json new file mode 100644 index 0000000..ebb3145 --- /dev/null +++ b/.changes/1.9.58.json @@ -0,0 +1,22 @@ +[ + { + "category": "``devicefarm``", + "description": "[``botocore``] Update devicefarm client to latest version", + "type": "api-change" + }, + { + "category": "``storagegateway``", + "description": "[``botocore``] Update storagegateway client to latest version", + "type": "api-change" + }, + { + "category": "``mediaconvert``", + "description": "[``botocore``] Update mediaconvert client to latest version", + "type": "api-change" + }, + { + "category": "``servicecatalog``", + "description": "[``botocore``] Update servicecatalog client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.59.json b/.changes/1.9.59.json new file mode 100644 index 0000000..63fabbe --- /dev/null +++ b/.changes/1.9.59.json @@ -0,0 +1,12 @@ +[ + { + "category": "``health``", + "description": "[``botocore``] Update health client to latest version", + "type": "api-change" + }, + { + "category": "``s3``", + "description": "[``botocore``] Update s3 client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.6.json b/.changes/1.9.6.json new file mode 100644 index 0000000..42ee333 --- /dev/null +++ b/.changes/1.9.6.json @@ -0,0 +1,17 @@ +[ + { + "category": "Serialization", + "description": "[``botocore``] Fixes `#1557 `__. Fixed a regression in serialization where request bodies would be improperly encoded.", + "type": "bugfix" + }, + { + "category": "``es``", + "description": "[``botocore``] Update es client to latest version", + "type": "api-change" + }, + { + "category": "``rekognition``", + "description": "[``botocore``] Update rekognition client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.60.json b/.changes/1.9.60.json new file mode 100644 index 0000000..2d10070 --- /dev/null +++ b/.changes/1.9.60.json @@ -0,0 +1,17 @@ +[ + { + "category": "``mq``", + "description": "[``botocore``] Update mq client to latest version", + "type": "api-change" + }, + { + "category": "``ce``", + "description": "[``botocore``] Update ce client to latest version", + "type": "api-change" + }, + { + "category": "``mediatailor``", + "description": "[``botocore``] Update mediatailor client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.61.json b/.changes/1.9.61.json new file mode 100644 index 0000000..81edf95 --- /dev/null +++ b/.changes/1.9.61.json @@ -0,0 +1,22 @@ +[ + { + "category": "``elbv2``", + "description": "[``botocore``] Update elbv2 client to latest version", + "type": "api-change" + }, + { + "category": "``medialive``", + "description": "[``botocore``] Update medialive client to latest version", + "type": "api-change" + }, + { + "category": "``codebuild``", + "description": "[``botocore``] Update codebuild client to latest version", + "type": "api-change" + }, + { + "category": "``rds``", + "description": "[``botocore``] Update rds client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.62.json b/.changes/1.9.62.json new file mode 100644 index 0000000..48e04eb --- /dev/null +++ b/.changes/1.9.62.json @@ -0,0 +1,27 @@ +[ + { + "category": "``ec2``", + "description": "[``botocore``] Update ec2 client to latest version", + "type": "api-change" + }, + { + "category": "AssumeRole", + "description": "[``botocore``] Add support for duration_seconds when assuming a role in the config file (`#1600 `__).", + "type": "enhancement" + }, + { + "category": "``iam``", + "description": "[``botocore``] Update iam client to latest version", + "type": "api-change" + }, + { + "category": "``servicecatalog``", + "description": "[``botocore``] Update servicecatalog client to latest version", + "type": "api-change" + }, + { + "category": "``alexaforbusiness``", + "description": "[``botocore``] Update alexaforbusiness client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.63.json b/.changes/1.9.63.json new file mode 100644 index 0000000..8600990 --- /dev/null +++ b/.changes/1.9.63.json @@ -0,0 +1,17 @@ +[ + { + "category": "``mediastore``", + "description": "[``botocore``] Update mediastore client to latest version", + "type": "api-change" + }, + { + "category": "``ecs``", + "description": "[``botocore``] Update ecs client to latest version", + "type": "api-change" + }, + { + "category": "``connect``", + "description": "[``botocore``] Update connect client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.64.json b/.changes/1.9.64.json new file mode 100644 index 0000000..ec00c64 --- /dev/null +++ b/.changes/1.9.64.json @@ -0,0 +1,22 @@ +[ + { + "category": "``route53``", + "description": "[``botocore``] Update route53 client to latest version", + "type": "api-change" + }, + { + "category": "``glue``", + "description": "[``botocore``] Update glue client to latest version", + "type": "api-change" + }, + { + "category": "``sagemaker``", + "description": "[``botocore``] Update sagemaker client to latest version", + "type": "api-change" + }, + { + "category": "``eks``", + "description": "[``botocore``] Update eks client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.65.json b/.changes/1.9.65.json new file mode 100644 index 0000000..b24eff9 --- /dev/null +++ b/.changes/1.9.65.json @@ -0,0 +1,12 @@ +[ + { + "category": "``organizations``", + "description": "[``botocore``] Update organizations client to latest version", + "type": "api-change" + }, + { + "category": "``pinpoint-email``", + "description": "[``botocore``] Update pinpoint-email client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.66.json b/.changes/1.9.66.json new file mode 100644 index 0000000..7ef8c40 --- /dev/null +++ b/.changes/1.9.66.json @@ -0,0 +1,17 @@ +[ + { + "category": "``alexaforbusiness``", + "description": "[``botocore``] Update alexaforbusiness client to latest version", + "type": "api-change" + }, + { + "category": "``redshift``", + "description": "[``botocore``] Update redshift client to latest version", + "type": "api-change" + }, + { + "category": "``cloudformation``", + "description": "[``botocore``] Update cloudformation client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.67.json b/.changes/1.9.67.json new file mode 100644 index 0000000..08bcce8 --- /dev/null +++ b/.changes/1.9.67.json @@ -0,0 +1,12 @@ +[ + { + "category": "``quicksight``", + "description": "[``botocore``] Update quicksight client to latest version", + "type": "api-change" + }, + { + "category": "``ecr``", + "description": "[``botocore``] Update ecr client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.68.json b/.changes/1.9.68.json new file mode 100644 index 0000000..04d99b6 --- /dev/null +++ b/.changes/1.9.68.json @@ -0,0 +1,37 @@ +[ + { + "category": "``apigatewayv2``", + "description": "[``botocore``] Update apigatewayv2 client to latest version", + "type": "api-change" + }, + { + "category": "Credentials", + "description": "[``botocore``] Fixes an issue where credentials would be checked when creating an anonymous client. Fixes `#1472 `__", + "type": "bugfix" + }, + { + "category": "``ec2``", + "description": "[``botocore``] Update ec2 client to latest version", + "type": "api-change" + }, + { + "category": "``elasticbeanstalk``", + "description": "[``botocore``] Update elasticbeanstalk client to latest version", + "type": "api-change" + }, + { + "category": "``globalaccelerator``", + "description": "[``botocore``] Update globalaccelerator client to latest version", + "type": "api-change" + }, + { + "category": "StreamingBody", + "description": "[``botocore``] Support iterating lines from a streaming response body with CRLF line endings", + "type": "enhancement" + }, + { + "category": "``apigatewaymanagementapi``", + "description": "[``botocore``] Update apigatewaymanagementapi client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.69.json b/.changes/1.9.69.json new file mode 100644 index 0000000..fd2f438 --- /dev/null +++ b/.changes/1.9.69.json @@ -0,0 +1,22 @@ +[ + { + "category": "``sagemaker``", + "description": "[``botocore``] Update sagemaker client to latest version", + "type": "api-change" + }, + { + "category": "``waf-regional``", + "description": "[``botocore``] Update waf-regional client to latest version", + "type": "api-change" + }, + { + "category": "``ec2``", + "description": "[``botocore``] Update ec2 client to latest version", + "type": "api-change" + }, + { + "category": "``waf``", + "description": "[``botocore``] Update waf client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.7.json b/.changes/1.9.7.json new file mode 100644 index 0000000..bebf4b1 --- /dev/null +++ b/.changes/1.9.7.json @@ -0,0 +1,17 @@ +[ + { + "category": "``cloudwatch``", + "description": "[``botocore``] Update cloudwatch client to latest version", + "type": "api-change" + }, + { + "category": "``s3``", + "description": "[``botocore``] Update s3 client to latest version", + "type": "api-change" + }, + { + "category": "``organizations``", + "description": "[``botocore``] Update organizations client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.70.json b/.changes/1.9.70.json new file mode 100644 index 0000000..b26a8cd --- /dev/null +++ b/.changes/1.9.70.json @@ -0,0 +1,32 @@ +[ + { + "category": "``medialive``", + "description": "[``botocore``] Update medialive client to latest version", + "type": "api-change" + }, + { + "category": "EndpointDiscovery", + "description": "[``botocore``] Add a config option, ``endpoint_discovery_enabled``, for automatically discovering endpoints", + "type": "enhancement" + }, + { + "category": "``comprehend``", + "description": "[``botocore``] Update comprehend client to latest version", + "type": "api-change" + }, + { + "category": "``firehose``", + "description": "[``botocore``] Update firehose client to latest version", + "type": "api-change" + }, + { + "category": "``transcribe``", + "description": "[``botocore``] Update transcribe client to latest version", + "type": "api-change" + }, + { + "category": "``cognito-idp``", + "description": "[``botocore``] Update cognito-idp client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.71.json b/.changes/1.9.71.json new file mode 100644 index 0000000..5daea55 --- /dev/null +++ b/.changes/1.9.71.json @@ -0,0 +1,22 @@ +[ + { + "category": "``acm-pca``", + "description": "[``botocore``] Update acm-pca client to latest version", + "type": "api-change" + }, + { + "category": "``dynamodb``", + "description": "[``botocore``] Update dynamodb client to latest version", + "type": "api-change" + }, + { + "category": "``sms-voice``", + "description": "[``botocore``] Update sms-voice client to latest version", + "type": "api-change" + }, + { + "category": "``stepfunctions``", + "description": "[``botocore``] Update stepfunctions client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.72.json b/.changes/1.9.72.json new file mode 100644 index 0000000..740a828 --- /dev/null +++ b/.changes/1.9.72.json @@ -0,0 +1,12 @@ +[ + { + "category": "Paginator", + "description": "[``botocore``] Added over 400 new paginators.", + "type": "enhancement" + }, + { + "category": "``opsworkscm``", + "description": "[``botocore``] Update opsworkscm client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.73.json b/.changes/1.9.73.json new file mode 100644 index 0000000..840cbb7 --- /dev/null +++ b/.changes/1.9.73.json @@ -0,0 +1,7 @@ +[ + { + "category": "``iotanalytics``", + "description": "[``botocore``] Update iotanalytics client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.74.json b/.changes/1.9.74.json new file mode 100644 index 0000000..6130a7b --- /dev/null +++ b/.changes/1.9.74.json @@ -0,0 +1,12 @@ +[ + { + "category": "``ecs``", + "description": "[``botocore``] Update ecs client to latest version", + "type": "api-change" + }, + { + "category": "``devicefarm``", + "description": "[``botocore``] Update devicefarm client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.75.json b/.changes/1.9.75.json new file mode 100644 index 0000000..adc4f5c --- /dev/null +++ b/.changes/1.9.75.json @@ -0,0 +1,7 @@ +[ + { + "category": "``appmesh``", + "description": "[``botocore``] Update appmesh client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.76.json b/.changes/1.9.76.json new file mode 100644 index 0000000..73a2b96 --- /dev/null +++ b/.changes/1.9.76.json @@ -0,0 +1,12 @@ +[ + { + "category": "``docdb``", + "description": "[``botocore``] Update docdb client to latest version", + "type": "api-change" + }, + { + "category": "``redshift``", + "description": "[``botocore``] Update redshift client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.77.json b/.changes/1.9.77.json new file mode 100644 index 0000000..470aec2 --- /dev/null +++ b/.changes/1.9.77.json @@ -0,0 +1,22 @@ +[ + { + "category": "``iot``", + "description": "[``botocore``] Update iot client to latest version", + "type": "api-change" + }, + { + "category": "``ec2``", + "description": "[``botocore``] Update ec2 client to latest version", + "type": "api-change" + }, + { + "category": "``codedeploy``", + "description": "[``botocore``] Update codedeploy client to latest version", + "type": "api-change" + }, + { + "category": "``sagemaker``", + "description": "[``botocore``] Update sagemaker client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.78.json b/.changes/1.9.78.json new file mode 100644 index 0000000..7374e99 --- /dev/null +++ b/.changes/1.9.78.json @@ -0,0 +1,12 @@ +[ + { + "category": "``rds-data``", + "description": "[``botocore``] Update rds-data client to latest version", + "type": "api-change" + }, + { + "category": "``emr``", + "description": "[``botocore``] Update emr client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.79.json b/.changes/1.9.79.json new file mode 100644 index 0000000..d72b66d --- /dev/null +++ b/.changes/1.9.79.json @@ -0,0 +1,12 @@ +[ + { + "category": "``storagegateway``", + "description": "[``botocore``] Update storagegateway client to latest version", + "type": "api-change" + }, + { + "category": "``mediaconvert``", + "description": "[``botocore``] Update mediaconvert client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.8.json b/.changes/1.9.8.json new file mode 100644 index 0000000..0ceb84e --- /dev/null +++ b/.changes/1.9.8.json @@ -0,0 +1,17 @@ +[ + { + "category": "``rds``", + "description": "[``botocore``] Update rds client to latest version", + "type": "api-change" + }, + { + "category": "``ds``", + "description": "[``botocore``] Update ds client to latest version", + "type": "api-change" + }, + { + "category": "``ec2``", + "description": "[``botocore``] Update ec2 client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.80.json b/.changes/1.9.80.json new file mode 100644 index 0000000..0971348 --- /dev/null +++ b/.changes/1.9.80.json @@ -0,0 +1,17 @@ +[ + { + "category": "``dynamodb``", + "description": "[``botocore``] Update dynamodb client to latest version", + "type": "api-change" + }, + { + "category": "``ce``", + "description": "[``botocore``] Update ce client to latest version", + "type": "api-change" + }, + { + "category": "``backup``", + "description": "[``botocore``] Update backup client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.81.json b/.changes/1.9.81.json new file mode 100644 index 0000000..257115b --- /dev/null +++ b/.changes/1.9.81.json @@ -0,0 +1,22 @@ +[ + { + "category": "``lightsail``", + "description": "[``botocore``] Update lightsail client to latest version", + "type": "api-change" + }, + { + "category": "``lambda``", + "description": "[``botocore``] Update lambda client to latest version", + "type": "api-change" + }, + { + "category": "``pinpoint``", + "description": "[``botocore``] Update pinpoint client to latest version", + "type": "api-change" + }, + { + "category": "``rekognition``", + "description": "[``botocore``] Update rekognition client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.82.json b/.changes/1.9.82.json new file mode 100644 index 0000000..561005d --- /dev/null +++ b/.changes/1.9.82.json @@ -0,0 +1,12 @@ +[ + { + "category": "``glue``", + "description": "[``botocore``] Update glue client to latest version", + "type": "api-change" + }, + { + "category": "``ec2``", + "description": "[``botocore``] Update ec2 client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.83.json b/.changes/1.9.83.json new file mode 100644 index 0000000..87ece3d --- /dev/null +++ b/.changes/1.9.83.json @@ -0,0 +1,27 @@ +[ + { + "category": "``appstream``", + "description": "[``botocore``] Update appstream client to latest version", + "type": "api-change" + }, + { + "category": "``discovery``", + "description": "[``botocore``] Update discovery client to latest version", + "type": "api-change" + }, + { + "category": "``dms``", + "description": "[``botocore``] Update dms client to latest version", + "type": "api-change" + }, + { + "category": "``fms``", + "description": "[``botocore``] Update fms client to latest version", + "type": "api-change" + }, + { + "category": "``ssm``", + "description": "[``botocore``] Update ssm client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.84.json b/.changes/1.9.84.json new file mode 100644 index 0000000..cc667f2 --- /dev/null +++ b/.changes/1.9.84.json @@ -0,0 +1,17 @@ +[ + { + "category": "``worklink``", + "description": "[``botocore``] Update worklink client to latest version", + "type": "api-change" + }, + { + "category": "``apigatewaymanagementapi``", + "description": "[``botocore``] Update apigatewaymanagementapi client to latest version", + "type": "api-change" + }, + { + "category": "``acm-pca``", + "description": "[``botocore``] Update acm-pca client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.85.json b/.changes/1.9.85.json new file mode 100644 index 0000000..4b2fe79 --- /dev/null +++ b/.changes/1.9.85.json @@ -0,0 +1,32 @@ +[ + { + "category": "``logs``", + "description": "[``botocore``] Update logs client to latest version", + "type": "api-change" + }, + { + "category": "``elbv2``", + "description": "[``botocore``] Update elbv2 client to latest version", + "type": "api-change" + }, + { + "category": "``rds``", + "description": "[``botocore``] Update rds client to latest version", + "type": "api-change" + }, + { + "category": "``codebuild``", + "description": "[``botocore``] Update codebuild client to latest version", + "type": "api-change" + }, + { + "category": "``sms-voice``", + "description": "[``botocore``] Update sms-voice client to latest version", + "type": "api-change" + }, + { + "category": "``ecr``", + "description": "[``botocore``] Update ecr client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.86.json b/.changes/1.9.86.json new file mode 100644 index 0000000..d763a71 --- /dev/null +++ b/.changes/1.9.86.json @@ -0,0 +1,22 @@ +[ + { + "category": "``devicefarm``", + "description": "[``botocore``] Update devicefarm client to latest version", + "type": "api-change" + }, + { + "category": "``codecommit``", + "description": "[``botocore``] Update codecommit client to latest version", + "type": "api-change" + }, + { + "category": "``medialive``", + "description": "[``botocore``] Update medialive client to latest version", + "type": "api-change" + }, + { + "category": "``mediaconnect``", + "description": "[``botocore``] Update mediaconnect client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/1.9.9.json b/.changes/1.9.9.json new file mode 100644 index 0000000..e288da6 --- /dev/null +++ b/.changes/1.9.9.json @@ -0,0 +1,7 @@ +[ + { + "category": "``mediaconvert``", + "description": "[``botocore``] Update mediaconvert client to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.gitignore b/.gitignore index 34378c4..bee41a4 100644 --- a/.gitignore +++ b/.gitignore @@ -21,7 +21,4 @@ env2 env3 # IntelliJ / PyCharm IDE -.idea/ - -.pybuild/ -.pc/ \ No newline at end of file +.idea/ \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 929a103..19f9c41 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,12 +1,29 @@ language: python -python: - - "2.6" - - "2.7" - - "3.3" - - "3.4" - - "3.5" - - "3.6" -sudo: false + +matrix: + include: + - python: 2.6 + dist: trusty + sudo: false + - python: 2.7 + dist: trusty + sudo: false + - python: 3.3 + dist: trusty + sudo: false + - python: 3.4 + dist: trusty + sudo: false + - python: 3.5 + dist: trusty + sudo: false + - python: 3.6 + dist: trusty + sudo: false + - python: 3.7 + dist: xenial + sudo: true + before_install: - if [ "$TRAVIS_PULL_REQUEST" != "false" ] && [ "$TRAVIS_BRANCH" == "master" ]; then echo "No pull requests can be sent to the master branch" 1>&2; diff --git a/CHANGELOG.rst b/CHANGELOG.rst index efdcb06..ea76df8 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,1077 @@ CHANGELOG ========= +1.9.86 +====== + +* api-change:``devicefarm``: [``botocore``] Update devicefarm client to latest version +* api-change:``codecommit``: [``botocore``] Update codecommit client to latest version +* api-change:``medialive``: [``botocore``] Update medialive client to latest version +* api-change:``mediaconnect``: [``botocore``] Update mediaconnect client to latest version + + +1.9.85 +====== + +* api-change:``logs``: [``botocore``] Update logs client to latest version +* api-change:``elbv2``: [``botocore``] Update elbv2 client to latest version +* api-change:``rds``: [``botocore``] Update rds client to latest version +* api-change:``codebuild``: [``botocore``] Update codebuild client to latest version +* api-change:``sms-voice``: [``botocore``] Update sms-voice client to latest version +* api-change:``ecr``: [``botocore``] Update ecr client to latest version + + +1.9.84 +====== + +* api-change:``worklink``: [``botocore``] Update worklink client to latest version +* api-change:``apigatewaymanagementapi``: [``botocore``] Update apigatewaymanagementapi client to latest version +* api-change:``acm-pca``: [``botocore``] Update acm-pca client to latest version + + +1.9.83 +====== + +* api-change:``appstream``: [``botocore``] Update appstream client to latest version +* api-change:``discovery``: [``botocore``] Update discovery client to latest version +* api-change:``dms``: [``botocore``] Update dms client to latest version +* api-change:``fms``: [``botocore``] Update fms client to latest version +* api-change:``ssm``: [``botocore``] Update ssm client to latest version + + +1.9.82 +====== + +* api-change:``glue``: [``botocore``] Update glue client to latest version +* api-change:``ec2``: [``botocore``] Update ec2 client to latest version + + +1.9.81 +====== + +* api-change:``lightsail``: [``botocore``] Update lightsail client to latest version +* api-change:``lambda``: [``botocore``] Update lambda client to latest version +* api-change:``pinpoint``: [``botocore``] Update pinpoint client to latest version +* api-change:``rekognition``: [``botocore``] Update rekognition client to latest version + + +1.9.80 +====== + +* api-change:``dynamodb``: [``botocore``] Update dynamodb client to latest version +* api-change:``ce``: [``botocore``] Update ce client to latest version +* api-change:``backup``: [``botocore``] Update backup client to latest version + + +1.9.79 +====== + +* api-change:``storagegateway``: [``botocore``] Update storagegateway client to latest version +* api-change:``mediaconvert``: [``botocore``] Update mediaconvert client to latest version + + +1.9.78 +====== + +* api-change:``rds-data``: [``botocore``] Update rds-data client to latest version +* api-change:``emr``: [``botocore``] Update emr client to latest version + + +1.9.77 +====== + +* api-change:``iot``: [``botocore``] Update iot client to latest version +* api-change:``ec2``: [``botocore``] Update ec2 client to latest version +* api-change:``codedeploy``: [``botocore``] Update codedeploy client to latest version +* api-change:``sagemaker``: [``botocore``] Update sagemaker client to latest version + + +1.9.76 +====== + +* api-change:``docdb``: [``botocore``] Update docdb client to latest version +* api-change:``redshift``: [``botocore``] Update redshift client to latest version + + +1.9.75 +====== + +* api-change:``appmesh``: [``botocore``] Update appmesh client to latest version + + +1.9.74 +====== + +* api-change:``ecs``: [``botocore``] Update ecs client to latest version +* api-change:``devicefarm``: [``botocore``] Update devicefarm client to latest version + + +1.9.73 +====== + +* api-change:``iotanalytics``: [``botocore``] Update iotanalytics client to latest version + + +1.9.72 +====== + +* enhancement:Paginator: [``botocore``] Added over 400 new paginators. +* api-change:``opsworkscm``: [``botocore``] Update opsworkscm client to latest version + + +1.9.71 +====== + +* api-change:``acm-pca``: [``botocore``] Update acm-pca client to latest version +* api-change:``dynamodb``: [``botocore``] Update dynamodb client to latest version +* api-change:``sms-voice``: [``botocore``] Update sms-voice client to latest version +* api-change:``stepfunctions``: [``botocore``] Update stepfunctions client to latest version + + +1.9.70 +====== + +* api-change:``medialive``: [``botocore``] Update medialive client to latest version +* enhancement:EndpointDiscovery: [``botocore``] Add a config option, ``endpoint_discovery_enabled``, for automatically discovering endpoints +* api-change:``comprehend``: [``botocore``] Update comprehend client to latest version +* api-change:``firehose``: [``botocore``] Update firehose client to latest version +* api-change:``transcribe``: [``botocore``] Update transcribe client to latest version +* api-change:``cognito-idp``: [``botocore``] Update cognito-idp client to latest version + + +1.9.69 +====== + +* api-change:``sagemaker``: [``botocore``] Update sagemaker client to latest version +* api-change:``waf-regional``: [``botocore``] Update waf-regional client to latest version +* api-change:``ec2``: [``botocore``] Update ec2 client to latest version +* api-change:``waf``: [``botocore``] Update waf client to latest version + + +1.9.68 +====== + +* api-change:``apigatewayv2``: [``botocore``] Update apigatewayv2 client to latest version +* bugfix:Credentials: [``botocore``] Fixes an issue where credentials would be checked when creating an anonymous client. Fixes `#1472 `__ +* api-change:``ec2``: [``botocore``] Update ec2 client to latest version +* api-change:``elasticbeanstalk``: [``botocore``] Update elasticbeanstalk client to latest version +* api-change:``globalaccelerator``: [``botocore``] Update globalaccelerator client to latest version +* enhancement:StreamingBody: [``botocore``] Support iterating lines from a streaming response body with CRLF line endings +* api-change:``apigatewaymanagementapi``: [``botocore``] Update apigatewaymanagementapi client to latest version + + +1.9.67 +====== + +* api-change:``quicksight``: [``botocore``] Update quicksight client to latest version +* api-change:``ecr``: [``botocore``] Update ecr client to latest version + + +1.9.66 +====== + +* api-change:``alexaforbusiness``: [``botocore``] Update alexaforbusiness client to latest version +* api-change:``redshift``: [``botocore``] Update redshift client to latest version +* api-change:``cloudformation``: [``botocore``] Update cloudformation client to latest version + + +1.9.65 +====== + +* api-change:``organizations``: [``botocore``] Update organizations client to latest version +* api-change:``pinpoint-email``: [``botocore``] Update pinpoint-email client to latest version + + +1.9.64 +====== + +* api-change:``route53``: [``botocore``] Update route53 client to latest version +* api-change:``glue``: [``botocore``] Update glue client to latest version +* api-change:``sagemaker``: [``botocore``] Update sagemaker client to latest version +* api-change:``eks``: [``botocore``] Update eks client to latest version + + +1.9.63 +====== + +* api-change:``mediastore``: [``botocore``] Update mediastore client to latest version +* api-change:``ecs``: [``botocore``] Update ecs client to latest version +* api-change:``connect``: [``botocore``] Update connect client to latest version + + +1.9.62 +====== + +* api-change:``ec2``: [``botocore``] Update ec2 client to latest version +* enhancement:AssumeRole: [``botocore``] Add support for duration_seconds when assuming a role in the config file (`#1600 `__). +* api-change:``iam``: [``botocore``] Update iam client to latest version +* api-change:``servicecatalog``: [``botocore``] Update servicecatalog client to latest version +* api-change:``alexaforbusiness``: [``botocore``] Update alexaforbusiness client to latest version + + +1.9.61 +====== + +* api-change:``elbv2``: [``botocore``] Update elbv2 client to latest version +* api-change:``medialive``: [``botocore``] Update medialive client to latest version +* api-change:``codebuild``: [``botocore``] Update codebuild client to latest version +* api-change:``rds``: [``botocore``] Update rds client to latest version + + +1.9.60 +====== + +* api-change:``mq``: [``botocore``] Update mq client to latest version +* api-change:``ce``: [``botocore``] Update ce client to latest version +* api-change:``mediatailor``: [``botocore``] Update mediatailor client to latest version + + +1.9.59 +====== + +* api-change:``health``: [``botocore``] Update health client to latest version +* api-change:``s3``: [``botocore``] Update s3 client to latest version + + +1.9.58 +====== + +* api-change:``devicefarm``: [``botocore``] Update devicefarm client to latest version +* api-change:``storagegateway``: [``botocore``] Update storagegateway client to latest version +* api-change:``mediaconvert``: [``botocore``] Update mediaconvert client to latest version +* api-change:``servicecatalog``: [``botocore``] Update servicecatalog client to latest version + + +1.9.57 +====== + +* bugfix:s3: [``botocore``] Add md5 header injection to new operations that require it +* api-change:``s3``: [``botocore``] Update s3 client to latest version + + +1.9.56 +====== + +* api-change:``elbv2``: [``botocore``] Update elbv2 client to latest version +* api-change:``stepfunctions``: [``botocore``] Update stepfunctions client to latest version +* api-change:``xray``: [``botocore``] Update xray client to latest version +* api-change:``lambda``: [``botocore``] Update lambda client to latest version +* api-change:``events``: [``botocore``] Update events client to latest version +* api-change:``serverlessrepo``: [``botocore``] Update serverlessrepo client to latest version +* api-change:``kafka``: [``botocore``] Update kafka client to latest version +* api-change:``s3``: [``botocore``] Update s3 client to latest version + + +1.9.55 +====== + +* api-change:``ec2``: [``botocore``] Update ec2 client to latest version +* api-change:``appmesh``: [``botocore``] Update appmesh client to latest version +* api-change:``license-manager``: [``botocore``] Update license-manager client to latest version +* api-change:``servicediscovery``: [``botocore``] Update servicediscovery client to latest version +* api-change:``sagemaker``: [``botocore``] Update sagemaker client to latest version +* api-change:``lightsail``: [``botocore``] Update lightsail client to latest version + + +1.9.54 +====== + +* api-change:``securityhub``: [``botocore``] Update securityhub client to latest version +* api-change:``rds``: [``botocore``] Update rds client to latest version +* api-change:``fsx``: [``botocore``] Update fsx client to latest version +* api-change:``dynamodb``: [``botocore``] Update dynamodb client to latest version + + +1.9.53 +====== + +* api-change:``meteringmarketplace``: [``botocore``] Update meteringmarketplace client to latest version +* api-change:``ec2``: [``botocore``] Update ec2 client to latest version +* api-change:``codedeploy``: [``botocore``] Update codedeploy client to latest version +* api-change:``translate``: [``botocore``] Update translate client to latest version +* api-change:``logs``: [``botocore``] Update logs client to latest version +* api-change:``kinesisanalytics``: [``botocore``] Update kinesisanalytics client to latest version +* api-change:``comprehendmedical``: [``botocore``] Update comprehendmedical client to latest version +* api-change:``mediaconnect``: [``botocore``] Update mediaconnect client to latest version +* api-change:``kinesisanalyticsv2``: [``botocore``] Update kinesisanalyticsv2 client to latest version +* api-change:``ecs``: [``botocore``] Update ecs client to latest version + + +1.9.52 +====== + +* api-change:``iot``: [``botocore``] Update iot client to latest version +* api-change:``sms``: [``botocore``] Update sms client to latest version +* api-change:``s3``: [``botocore``] Update s3 client to latest version +* api-change:``iotanalytics``: [``botocore``] Update iotanalytics client to latest version +* api-change:``greengrass``: [``botocore``] Update greengrass client to latest version +* api-change:``kms``: [``botocore``] Update kms client to latest version +* api-change:``ec2``: [``botocore``] Update ec2 client to latest version +* api-change:``globalaccelerator``: [``botocore``] Update globalaccelerator client to latest version + + +1.9.51 +====== + +* api-change:``amplify``: [``botocore``] Update amplify client to latest version +* api-change:``transfer``: [``botocore``] Update transfer client to latest version +* api-change:``snowball``: [``botocore``] Update snowball client to latest version +* api-change:``robomaker``: [``botocore``] Update robomaker client to latest version +* api-change:``s3``: [``botocore``] Update s3 client to latest version +* api-change:``datasync``: [``botocore``] Update datasync client to latest version + + +1.9.50 +====== + +* api-change:``rekognition``: [``botocore``] Update rekognition client to latest version + + +1.9.49 +====== + +* api-change:``autoscaling-plans``: [``botocore``] Update autoscaling-plans client to latest version +* api-change:``xray``: [``botocore``] Update xray client to latest version +* api-change:``devicefarm``: [``botocore``] Update devicefarm client to latest version +* api-change:``ssm``: [``botocore``] Update ssm client to latest version +* api-change:``medialive``: [``botocore``] Update medialive client to latest version +* api-change:``redshift``: [``botocore``] Update redshift client to latest version +* api-change:``rds-data``: [``botocore``] Update rds-data client to latest version +* api-change:``appsync``: [``botocore``] Update appsync client to latest version +* api-change:``cloudwatch``: [``botocore``] Update cloudwatch client to latest version +* api-change:``quicksight``: [``botocore``] Update quicksight client to latest version +* api-change:``cloudfront``: [``botocore``] Update cloudfront client to latest version + + +1.9.48 +====== + +* api-change:``lightsail``: [``botocore``] Update lightsail client to latest version +* api-change:``workspaces``: [``botocore``] Update workspaces client to latest version +* api-change:``workdocs``: [``botocore``] Update workdocs client to latest version +* api-change:``batch``: [``botocore``] Update batch client to latest version +* api-change:``ec2``: [``botocore``] Update ec2 client to latest version +* api-change:``devicefarm``: [``botocore``] Update devicefarm client to latest version +* api-change:``rds``: [``botocore``] Update rds client to latest version +* api-change:``cloudformation``: [``botocore``] Update cloudformation client to latest version +* api-change:``lambda``: [``botocore``] Update lambda client to latest version +* api-change:``config``: [``botocore``] Update config client to latest version +* api-change:``cloudtrail``: [``botocore``] Update cloudtrail client to latest version +* api-change:``mediaconvert``: [``botocore``] Update mediaconvert client to latest version +* api-change:``iot``: [``botocore``] Update iot client to latest version + + +1.9.47 +====== + +* api-change:``ssm``: [``botocore``] Update ssm client to latest version +* api-change:``comprehend``: [``botocore``] Update comprehend client to latest version +* api-change:``workspaces``: [``botocore``] Update workspaces client to latest version +* api-change:``ce``: [``botocore``] Update ce client to latest version +* api-change:``ecs``: [``botocore``] Update ecs client to latest version + + +1.9.46 +====== + +* api-change:``s3``: [``botocore``] Update s3 client to latest version +* api-change:``sms-voice``: [``botocore``] Update sms-voice client to latest version +* api-change:``redshift``: [``botocore``] Update redshift client to latest version +* api-change:``rds``: [``botocore``] Update rds client to latest version +* api-change:``dms``: [``botocore``] Update dms client to latest version +* api-change:``codebuild``: [``botocore``] Update codebuild client to latest version +* api-change:``s3control``: [``botocore``] Update s3control client to latest version +* api-change:``directconnect``: [``botocore``] Update directconnect client to latest version +* api-change:``ram``: [``botocore``] Update ram client to latest version +* api-change:``pinpoint``: [``botocore``] Update pinpoint client to latest version +* api-change:``route53resolver``: [``botocore``] Update route53resolver client to latest version +* api-change:``comprehend``: [``botocore``] Update comprehend client to latest version +* api-change:``transcribe``: [``botocore``] Update transcribe client to latest version +* api-change:``ecs``: [``botocore``] Update ecs client to latest version +* api-change:``iam``: [``botocore``] Update iam client to latest version + + +1.9.45 +====== + +* api-change:``resource-groups``: [``botocore``] Update resource-groups client to latest version +* api-change:``autoscaling``: [``botocore``] Update autoscaling client to latest version +* api-change:``mediatailor``: [``botocore``] Update mediatailor client to latest version +* api-change:``sns``: [``botocore``] Update sns client to latest version +* api-change:``sagemaker``: [``botocore``] Update sagemaker client to latest version +* api-change:``servicecatalog``: [``botocore``] Update servicecatalog client to latest version +* api-change:``ec2``: [``botocore``] Update ec2 client to latest version + + +1.9.44 +====== + +* api-change:``chime``: [``botocore``] Update chime client to latest version +* api-change:``budgets``: [``botocore``] Update budgets client to latest version +* api-change:``redshift``: [``botocore``] Update redshift client to latest version + + +1.9.43 +====== + +* api-change:``polly``: [``botocore``] Update polly client to latest version +* api-change:``batch``: [``botocore``] Update batch client to latest version +* api-change:``firehose``: [``botocore``] Update firehose client to latest version +* api-change:``cloudformation``: [``botocore``] Update cloudformation client to latest version +* api-change:``budgets``: [``botocore``] Update budgets client to latest version +* api-change:``codepipeline``: [``botocore``] Update codepipeline client to latest version +* api-change:``rds``: [``botocore``] Update rds client to latest version + + +1.9.42 +====== + +* api-change:``mediapackage``: [``botocore``] Update mediapackage client to latest version + + +1.9.41 +====== + +* api-change:``medialive``: [``botocore``] Update medialive client to latest version +* api-change:``dlm``: [``botocore``] Update dlm client to latest version +* api-change:``events``: [``botocore``] Update events client to latest version + + +1.9.40 +====== + +* api-change:``dms``: [``botocore``] Update dms client to latest version +* api-change:``ce``: [``botocore``] Update ce client to latest version +* api-change:``ec2``: [``botocore``] Update ec2 client to latest version + + +1.9.39 +====== + +* api-change:``codebuild``: [``botocore``] Update codebuild client to latest version +* api-change:``pinpoint``: [``botocore``] Update pinpoint client to latest version +* api-change:``ec2``: [``botocore``] Update ec2 client to latest version +* api-change:``pinpoint-email``: [``botocore``] Update pinpoint-email client to latest version +* api-change:``apigateway``: [``botocore``] Update apigateway client to latest version +* api-change:``waf-regional``: [``botocore``] Update waf-regional client to latest version +* bugfix:session config: [``botocore``] Added the default session configuration tuples back to session.session_vars_map. + + +1.9.38 +====== + +* api-change:``eks``: [``botocore``] Update eks client to latest version +* enhancement:Configuration: [``botocore``] Added new configuration provider methods allowing for more flexibility in how a botocore session loads a particular configuration value. +* api-change:``serverlessrepo``: [``botocore``] Update serverlessrepo client to latest version + + +1.9.37 +====== + +* api-change:``rekognition``: [``botocore``] Update rekognition client to latest version +* api-change:``clouddirectory``: [``botocore``] Update clouddirectory client to latest version + + +1.9.36 +====== + +* api-change:``servicecatalog``: [``botocore``] Update servicecatalog client to latest version +* enhancement:Exceptions: [``botocore``] Add the ability to pickle botocore exceptions (`834 `__) + + +1.9.35 +====== + +* api-change:``mediastore-data``: [``botocore``] Update mediastore-data client to latest version +* api-change:``secretsmanager``: [``botocore``] Update secretsmanager client to latest version +* api-change:``greengrass``: [``botocore``] Update greengrass client to latest version +* api-change:``config``: [``botocore``] Update config client to latest version + + +1.9.34 +====== + +* api-change:``chime``: [``botocore``] Update chime client to latest version +* api-change:``rds``: [``botocore``] Update rds client to latest version +* api-change:``dms``: [``botocore``] Update dms client to latest version + + +1.9.33 +====== + +* api-change:``sagemaker``: [``botocore``] Update sagemaker client to latest version +* api-change:``alexaforbusiness``: [``botocore``] Update alexaforbusiness client to latest version +* api-change:``ssm``: [``botocore``] Update ssm client to latest version + + +1.9.32 +====== + +* api-change:``ec2``: [``botocore``] Update ec2 client to latest version + + +1.9.31 +====== + +* api-change:``codestar``: [``botocore``] Update codestar client to latest version +* api-change:``alexaforbusiness``: [``botocore``] Update alexaforbusiness client to latest version + + +1.9.30 +====== + +* api-change:``ec2``: [``botocore``] Update ec2 client to latest version + + +1.9.29 +====== + +* api-change:``inspector``: [``botocore``] Update inspector client to latest version +* api-change:``shield``: [``botocore``] Update shield client to latest version + + +1.9.28 +====== + +* api-change:``workspaces``: [``botocore``] Update workspaces client to latest version +* api-change:``ssm``: [``botocore``] Update ssm client to latest version + + +1.9.27 +====== + +* api-change:``medialive``: [``botocore``] Update medialive client to latest version +* api-change:``route53``: [``botocore``] Update route53 client to latest version +* api-change:``appstream``: [``botocore``] Update appstream client to latest version + + +1.9.26 +====== + +* api-change:``events``: [``botocore``] Update events client to latest version +* api-change:``apigateway``: [``botocore``] Update apigateway client to latest version + + +1.9.25 +====== + +* api-change:``glue``: [``botocore``] Update glue client to latest version +* api-change:``lightsail``: [``botocore``] Update lightsail client to latest version +* api-change:``resource-groups``: [``botocore``] Update resource-groups client to latest version + + +1.9.24 +====== + +* api-change:``rds``: [``botocore``] Update rds client to latest version +* api-change:``lambda``: [``botocore``] Update lambda client to latest version +* api-change:``servicecatalog``: [``botocore``] Update servicecatalog client to latest version + + +1.9.23 +====== + +* api-change:``cloudtrail``: [``botocore``] Update cloudtrail client to latest version + + +1.9.22 +====== + +* api-change:``athena``: [``botocore``] Update athena client to latest version +* api-change:``ec2``: [``botocore``] Update ec2 client to latest version +* api-change:``transcribe``: [``botocore``] Update transcribe client to latest version +* api-change:``mediaconvert``: [``botocore``] Update mediaconvert client to latest version +* api-change:``directconnect``: [``botocore``] Update directconnect client to latest version + + +1.9.21 +====== + +* api-change:``transcribe``: [``botocore``] Update transcribe client to latest version +* api-change:``comprehend``: [``botocore``] Update comprehend client to latest version +* api-change:``es``: [``botocore``] Update es client to latest version + + +1.9.20 +====== + +* enhancement:TLS: [``botocore``] Added support for configuring a client certificate and key when establishing TLS connections. +* api-change:``ssm``: [``botocore``] Update ssm client to latest version +* bugfix:InstanceMetadataFetcher: [``botocore``] Fix failure to retry on empty credentials and invalid JSON returned from IMDS `1049 `__ `1403 `__ + + +1.9.19 +====== + +* api-change:``iot``: [``botocore``] Update iot client to latest version +* api-change:``iot-jobs-data``: [``botocore``] Update iot-jobs-data client to latest version + + +1.9.18 +====== + +* api-change:``ds``: [``botocore``] Update ds client to latest version + + +1.9.17 +====== + +* api-change:``ssm``: [``botocore``] Update ssm client to latest version +* api-change:``codebuild``: [``botocore``] Update codebuild client to latest version +* enhancement:HTTP Session: [``botocore``] Added the ability to enable TCP Keepalive via the shared config file's ``tcp_keepalive`` option. +* api-change:``apigateway``: [``botocore``] Update apigateway client to latest version +* api-change:``storagegateway``: [``botocore``] Update storagegateway client to latest version + + +1.9.16 +====== + +* api-change:``sagemaker``: [``botocore``] Update sagemaker client to latest version +* api-change:``secretsmanager``: [``botocore``] Update secretsmanager client to latest version + + +1.9.15 +====== + +* api-change:``rekognition``: [``botocore``] Update rekognition client to latest version +* api-change:``guardduty``: [``botocore``] Update guardduty client to latest version + + +1.9.14 +====== + +* api-change:``codestar``: [``botocore``] Update codestar client to latest version +* api-change:``ec2``: [``botocore``] Update ec2 client to latest version + + +1.9.13 +====== + +* api-change:``mq``: [``botocore``] Update mq client to latest version +* api-change:``apigateway``: [``botocore``] Update apigateway client to latest version +* enhancement:Event: [``botocore``] Add the `before-send` event which allows finalized requests to be inspected before being sent across the wire and allows for custom responses to be returned. +* api-change:``codecommit``: [``botocore``] Update codecommit client to latest version + + +1.9.12 +====== + +* api-change:``sqs``: [``botocore``] Update sqs client to latest version +* api-change:``glue``: [``botocore``] Update glue client to latest version +* api-change:``opsworkscm``: [``botocore``] Update opsworkscm client to latest version +* api-change:``rds``: [``botocore``] Update rds client to latest version + + +1.9.11 +====== + +* api-change:``ec2``: [``botocore``] Update ec2 client to latest version +* api-change:``cloudfront``: [``botocore``] Update cloudfront client to latest version +* api-change:``ds``: [``botocore``] Update ds client to latest version + + +1.9.10 +====== + +* api-change:``connect``: [``botocore``] Update connect client to latest version +* api-change:``rds``: [``botocore``] Update rds client to latest version + + +1.9.9 +===== + +* api-change:``mediaconvert``: [``botocore``] Update mediaconvert client to latest version + + +1.9.8 +===== + +* api-change:``rds``: [``botocore``] Update rds client to latest version +* api-change:``ds``: [``botocore``] Update ds client to latest version +* api-change:``ec2``: [``botocore``] Update ec2 client to latest version + + +1.9.7 +===== + +* api-change:``cloudwatch``: [``botocore``] Update cloudwatch client to latest version +* api-change:``s3``: [``botocore``] Update s3 client to latest version +* api-change:``organizations``: [``botocore``] Update organizations client to latest version + + +1.9.6 +===== + +* bugfix:Serialization: [``botocore``] Fixes `#1557 `__. Fixed a regression in serialization where request bodies would be improperly encoded. +* api-change:``es``: [``botocore``] Update es client to latest version +* api-change:``rekognition``: [``botocore``] Update rekognition client to latest version + + +1.9.5 +===== + +* api-change:``codebuild``: [``botocore``] Update codebuild client to latest version +* api-change:``elastictranscoder``: [``botocore``] Update elastictranscoder client to latest version +* api-change:``ecs``: [``botocore``] Update ecs client to latest version +* api-change:``ec2``: [``botocore``] Update ec2 client to latest version +* api-change:``cloudwatch``: [``botocore``] Update cloudwatch client to latest version +* api-change:``secretsmanager``: [``botocore``] Update secretsmanager client to latest version +* api-change:``elasticache``: [``botocore``] Update elasticache client to latest version + + +1.9.4 +===== + +* enhancement:s3: [``botocore``] Adds encoding and decoding handlers for ListObjectsV2 `#1552 `__ +* api-change:``polly``: [``botocore``] Update polly client to latest version + + +1.9.3 +===== + +* api-change:``ses``: [``botocore``] Update ses client to latest version +* api-change:``ec2``: [``botocore``] Update ec2 client to latest version +* api-change:``fms``: [``botocore``] Update fms client to latest version +* api-change:``connect``: [``botocore``] Update connect client to latest version + + +1.9.2 +===== + +* api-change:``opsworkscm``: [``botocore``] Update opsworkscm client to latest version +* api-change:``ssm``: [``botocore``] Update ssm client to latest version + + +1.9.1 +===== + +* api-change:``redshift``: [``botocore``] Update redshift client to latest version +* api-change:``cloudhsmv2``: [``botocore``] Update cloudhsmv2 client to latest version + + +1.9.0 +===== + +* api-change:``logs``: [``botocore``] Update logs client to latest version +* api-change:``config``: [``botocore``] Update config client to latest version +* feature:Events: [``botocore``] This migrates the event system to using sevice ids instead of either client name or endpoint prefix. This prevents issues that might arise when a service changes their endpoint prefix, also fixes a long-standing bug where you could not register an event to a particular service if it happened to share its endpoint prefix with another service (e.g. ``autoscaling`` and ``application-autoscaling`` both use the endpoint prefix ``autoscaling``). Please see the `upgrade notes `_ to determine if you are impacted and how to proceed if you are. +* feature:Events: This migrates the event system to using sevice ids instead of either client name or endpoint prefix. This prevents issues that might arise when a service changes their endpoint prefix, also fixes a long-standing bug where you could not register an event to a particular service if it happened to share its endpoint prefix with another service (e.g. ``autoscaling`` and ``application-autoscaling`` both use the endpoint prefix ``autoscaling``). Please see the `upgrade notes `_ to determine if you are impacted and how to proceed if you are. + + +1.8.9 +===== + +* api-change:``apigateway``: [``botocore``] Update apigateway client to latest version +* api-change:``codecommit``: [``botocore``] Update codecommit client to latest version +* api-change:``mediaconvert``: [``botocore``] Update mediaconvert client to latest version + + +1.8.8 +===== + +* api-change:``rds``: [``botocore``] Update rds client to latest version +* api-change:``s3``: [``botocore``] Update s3 client to latest version +* api-change:``appstream``: [``botocore``] Update appstream client to latest version +* api-change:``dynamodb``: [``botocore``] Update dynamodb client to latest version +* api-change:``elb``: [``botocore``] Update elb client to latest version + + +1.8.7 +===== + +* api-change:``rds``: [``botocore``] Update rds client to latest version +* api-change:``rekognition``: [``botocore``] Update rekognition client to latest version + + +1.8.6 +===== + +* api-change:``waf-regional``: [``botocore``] Update waf-regional client to latest version +* api-change:``waf``: [``botocore``] Update waf client to latest version +* api-change:``eks``: [``botocore``] Update eks client to latest version + + +1.8.5 +===== + +* api-change:``codebuild``: [``botocore``] Update codebuild client to latest version +* api-change:``sagemaker``: [``botocore``] Update sagemaker client to latest version +* bugfix:signing: [``botocore``] Fix an issue where mixed endpoint casing could cause a SigV4 signature mismatch. + + +1.8.4 +===== + +* api-change:``glue``: [``botocore``] Update glue client to latest version +* api-change:``sagemaker-runtime``: [``botocore``] Update sagemaker-runtime client to latest version +* api-change:``mediapackage``: [``botocore``] Update mediapackage client to latest version + + +1.8.3 +===== + +* api-change:``glue``: [``botocore``] Update glue client to latest version +* api-change:``xray``: [``botocore``] Update xray client to latest version + + +1.8.2 +===== + +* api-change:``iot``: [``botocore``] Update iot client to latest version +* api-change:``signer``: [``botocore``] Update signer client to latest version +* api-change:``redshift``: [``botocore``] Update redshift client to latest version +* api-change:``iotanalytics``: [``botocore``] Update iotanalytics client to latest version + + +1.8.1 +===== + +* api-change:``glue``: [``botocore``] Update glue client to latest version + + +1.8.0 +===== + +* api-change:``events``: [``botocore``] Update events client to latest version +* api-change:``cognito-idp``: [``botocore``] Update cognito-idp client to latest version +* feature:urllib3: [``botocore``] The vendored version of requests and urllib3 are no longer being used and botocore now has a direct dependency on newer versions of upstream urllib3. + + +1.7.84 +====== + +* api-change:``iot``: [``botocore``] Update iot client to latest version +* api-change:``rekognition``: [``botocore``] Update rekognition client to latest version +* api-change:``lex-models``: [``botocore``] Update lex-models client to latest version +* api-change:``iotanalytics``: [``botocore``] Update iotanalytics client to latest version +* api-change:``medialive``: [``botocore``] Update medialive client to latest version + + +1.7.83 +====== + +* api-change:``snowball``: [``botocore``] Update snowball client to latest version + + +1.7.82 +====== + +* api-change:``ec2``: [``botocore``] Update ec2 client to latest version +* api-change:``dlm``: [``botocore``] Update dlm client to latest version +* api-change:``rds``: [``botocore``] Update rds client to latest version +* api-change:``elasticbeanstalk``: [``botocore``] Update elasticbeanstalk client to latest version + + +1.7.81 +====== + +* api-change:``mediaconvert``: [``botocore``] Update mediaconvert client to latest version +* api-change:``dynamodb``: [``botocore``] Update dynamodb client to latest version + + +1.7.80 +====== + +* api-change:``dax``: [``botocore``] Update dax client to latest version +* api-change:``secretsmanager``: [``botocore``] Update secretsmanager client to latest version +* api-change:``sagemaker``: [``botocore``] Update sagemaker client to latest version + + +1.7.79 +====== + +* api-change:``discovery``: [``botocore``] Update discovery client to latest version +* api-change:``ssm``: [``botocore``] Update ssm client to latest version +* api-change:``ec2``: [``botocore``] Update ec2 client to latest version +* api-change:``redshift``: [``botocore``] Update redshift client to latest version +* api-change:``mediaconvert``: [``botocore``] Update mediaconvert client to latest version + + +1.7.78 +====== + +* api-change:``devicefarm``: [``botocore``] Update devicefarm client to latest version + + +1.7.77 +====== + +* api-change:``es``: [``botocore``] Update es client to latest version +* api-change:``autoscaling``: [``botocore``] Update autoscaling client to latest version +* api-change:``cloudfront``: [``botocore``] Update cloudfront client to latest version + + +1.7.76 +====== + +* api-change:``sagemaker``: [``botocore``] Update sagemaker client to latest version + + +1.7.75 +====== + +* api-change:``rds``: [``botocore``] Update rds client to latest version +* api-change:``mediaconvert``: [``botocore``] Update mediaconvert client to latest version + + +1.7.74 +====== + +* api-change:``rds``: [``botocore``] Update rds client to latest version +* api-change:``dax``: [``botocore``] Update dax client to latest version +* api-change:``ecs``: [``botocore``] Update ecs client to latest version + + +1.7.73 +====== + +* api-change:``secretsmanager``: [``botocore``] Update secretsmanager client to latest version +* api-change:``ssm``: [``botocore``] Update ssm client to latest version + + +1.7.72 +====== + +* api-change:``logs``: [``botocore``] Update logs client to latest version +* api-change:``codebuild``: [``botocore``] Update codebuild client to latest version +* api-change:``ssm``: [``botocore``] Update ssm client to latest version +* api-change:``ec2``: [``botocore``] Update ec2 client to latest version +* api-change:``pinpoint``: [``botocore``] Update pinpoint client to latest version + + +1.7.71 +====== + +* api-change:``health``: [``botocore``] Update health client to latest version +* api-change:``dynamodb``: [``botocore``] Update dynamodb client to latest version + + +1.7.70 +====== + +* api-change:``alexaforbusiness``: [``botocore``] Update alexaforbusiness client to latest version + + +1.7.69 +====== + +* api-change:``polly``: [``botocore``] Update polly client to latest version +* api-change:``ssm``: [``botocore``] Update ssm client to latest version +* api-change:``kinesis``: [``botocore``] Update kinesis client to latest version +* api-change:``resource-groups``: [``botocore``] Update resource-groups client to latest version + + +1.7.68 +====== + +* api-change:``storagegateway``: [``botocore``] Update storagegateway client to latest version +* api-change:``transcribe``: [``botocore``] Update transcribe client to latest version + + +1.7.67 +====== + +* api-change:``kms``: [``botocore``] Update kms client to latest version +* api-change:``mediaconvert``: [``botocore``] Update mediaconvert client to latest version +* api-change:``es``: [``botocore``] Update es client to latest version +* api-change:``iot``: [``botocore``] Update iot client to latest version +* api-change:``connect``: [``botocore``] Update connect client to latest version + + +1.7.66 +====== + +* api-change:``directconnect``: [``botocore``] Update directconnect client to latest version +* api-change:``glue``: [``botocore``] Update glue client to latest version +* api-change:``iot``: [``botocore``] Update iot client to latest version +* api-change:``cloudhsmv2``: [``botocore``] Update cloudhsmv2 client to latest version +* api-change:``sagemaker``: [``botocore``] Update sagemaker client to latest version +* api-change:``mq``: [``botocore``] Update mq client to latest version +* enhancment:Timestamp Serialization: [``botocore``] Support explicit timestamp serialization per timestamp shape. +* api-change:``glacier``: [``botocore``] Update glacier client to latest version + + +1.7.65 +====== + +* api-change:``ssm``: [``botocore``] Update ssm client to latest version +* api-change:``ec2``: [``botocore``] Update ec2 client to latest version +* api-change:``greengrass``: [``botocore``] Update greengrass client to latest version +* api-change:``inspector``: [``botocore``] Update inspector client to latest version +* api-change:``codebuild``: [``botocore``] Update codebuild client to latest version +* api-change:``redshift``: [``botocore``] Update redshift client to latest version + + +1.7.64 +====== + +* api-change:``ecs``: [``botocore``] Update ecs client to latest version +* api-change:``elbv2``: [``botocore``] Update elbv2 client to latest version +* api-change:``ec2``: [``botocore``] Update ec2 client to latest version + + +1.7.63 +====== + +* api-change:``dynamodb``: [``botocore``] Update dynamodb client to latest version + + +1.7.62 +====== + +* api-change:``config``: [``botocore``] Update config client to latest version +* api-change:``dlm``: [``botocore``] Update dlm client to latest version + + +1.7.61 +====== + +* api-change:``mediapackage``: [``botocore``] Update mediapackage client to latest version + + +1.7.60 +====== + +* api-change:``iotanalytics``: [``botocore``] Update iotanalytics client to latest version + + +1.7.59 +====== + +* api-change:``sagemaker``: [``botocore``] Update sagemaker client to latest version +* api-change:``polly``: [``botocore``] Update polly client to latest version +* api-change:``comprehend``: [``botocore``] Update comprehend client to latest version +* api-change:``snowball``: [``botocore``] Update snowball client to latest version + + +1.7.58 +====== + +* api-change:``kinesisvideo``: [``botocore``] Update kinesisvideo client to latest version +* api-change:``appstream``: [``botocore``] Update appstream client to latest version +* api-change:``kinesis-video-archived-media``: [``botocore``] Update kinesis-video-archived-media client to latest version + + +1.7.57 +====== + +* api-change:``iam``: [``botocore``] Update iam client to latest version +* api-change:``dlm``: [``botocore``] Update dlm client to latest version +* api-change:``appsync``: [``botocore``] Update appsync client to latest version +* api-change:``efs``: [``botocore``] Update efs client to latest version +* api-change:``codebuild``: [``botocore``] Update codebuild client to latest version +* api-change:``emr``: [``botocore``] Update emr client to latest version + + +1.7.56 +====== + +* api-change:``ssm``: [``botocore``] Update ssm client to latest version +* api-change:``s3``: [``botocore``] Update s3 client to latest version +* api-change:``apigateway``: [``botocore``] Update apigateway client to latest version +* api-change:``ce``: [``botocore``] Update ce client to latest version + + 1.7.55 ====== @@ -959,7 +2030,7 @@ CHANGELOG * bugfix:Session: Fixed Session.__repr__ region argument name. * feature:s3: Add managed copies to S3 client, Bucket, and Object. * feature:s3: Add managed downloads to file-like objects in the S3 client, Bucket, and Object. -* bugfix:s3: Port ``s3.transfer`` module to use ``s3transfer`` package. Please refer to `Upgrading Notes `_ when upgrading. In porting the logic over, various performance issues and bugs were fixed. +* bugfix:s3: Port ``s3.transfer`` module to use ``s3transfer`` package. Please refer to `Upgrading Notes `_ when upgrading. In porting the logic over, various performance issues and bugs were fixed. * feature:s3: Add ``io_chunksize`` parameter to ``TransferConfig`` diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index 5f9f6b1..af4ea6e 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -1,5 +1,5 @@ For more information, please see the official docs at -https://boto3.readthedocs.io/ +https://boto3.amazonaws.com/v1/documentation/api/latest/index.html Contributing Code ----------------- diff --git a/README.rst b/README.rst index 4d53863..425ca28 100644 --- a/README.rst +++ b/README.rst @@ -2,28 +2,23 @@ Boto 3 - The AWS SDK for Python =============================== -|Build Status| |Docs| |Version| |Gitter| +|Build Status| |Version| |Gitter| Boto3 is the Amazon Web Services (AWS) Software Development Kit (SDK) for Python, which allows Python developers to write software that makes use of services like Amazon S3 and Amazon EC2. You can find the latest, most -up to date, documentation at `Read the Docs`_, including a list of -services that are supported. To see only those features which have been -released, check out the `stable docs`_. +up to date, documentation at our `doc site`_, including a list of +services that are supported. .. _boto: https://docs.pythonboto.org/ -.. _`stable docs`: https://boto3.readthedocs.io/en/stable/ -.. _`Read the Docs`: https://boto3.readthedocs.io/en/latest/ +.. _`doc site`: https://boto3.amazonaws.com/v1/documentation/api/latest/index.html .. |Build Status| image:: http://img.shields.io/travis/boto/boto3/develop.svg?style=flat :target: https://travis-ci.org/boto/boto3 :alt: Build Status .. |Gitter| image:: https://badges.gitter.im/boto/boto3.svg :target: https://gitter.im/boto/boto3 :alt: Gitter -.. |Docs| image:: https://readthedocs.org/projects/boto3/badge/?version=latest&style=flat - :target: https://boto3.readthedocs.io/en/latest/ - :alt: Read the docs .. |Downloads| image:: http://img.shields.io/pypi/dm/boto3.svg?style=flat :target: https://pypi.python.org/pypi/boto3/ :alt: Downloads diff --git a/boto3/__init__.py b/boto3/__init__.py index 902e496..92915bc 100644 --- a/boto3/__init__.py +++ b/boto3/__init__.py @@ -17,7 +17,7 @@ from boto3.session import Session __author__ = 'Amazon Web Services' -__version__ = '1.7.55' +__version__ = '1.9.86' # The default Boto3 session; autoloaded when needed. diff --git a/boto3/docs/service.py b/boto3/docs/service.py index 9c0fbbe..d2c1736 100644 --- a/boto3/docs/service.py +++ b/boto3/docs/service.py @@ -28,11 +28,13 @@ class ServiceDocumenter(BaseServiceDocumenter): EXAMPLE_PATH = os.path.join(os.path.dirname(boto3.__file__), 'examples') def __init__(self, service_name, session): - self._service_name = service_name + super(ServiceDocumenter, self).__init__( + service_name=service_name, + # I know that this is an internal attribute, but the botocore session + # is needed to load the paginator and waiter models. + session=session._session, + ) self._boto3_session = session - # I know that this is an internal attribute, but the botocore session - # is needed to load the paginator and waiter models. - self._session = session._session self._client = self._boto3_session.client(service_name) self._service_resource = None if self._service_name in self._boto3_session.get_available_resources(): diff --git a/boto3/dynamodb/conditions.py b/boto3/dynamodb/conditions.py index 8e028b9..5f61f7f 100644 --- a/boto3/dynamodb/conditions.py +++ b/boto3/dynamodb/conditions.py @@ -124,6 +124,12 @@ class AttributeBase(object): """ return Between(self, low_value, high_value) + def __eq__(self, other): + return isinstance(other, type(self)) and self.name == other.name + + def __ne__(self, other): + return not self.__eq__(other) + class ConditionAttributeBase(ConditionBase, AttributeBase): """This base class is for conditions that can have attribute methods. @@ -137,6 +143,13 @@ class ConditionAttributeBase(ConditionBase, AttributeBase): # in which can be used to generate its attribute base. AttributeBase.__init__(self, values[0].name) + def __eq__(self, other): + return ConditionBase.__eq__(self, other) and \ + AttributeBase.__eq__(self, other) + + def __ne__(self, other): + return not self.__eq__(other) + class ComparisonCondition(ConditionBase): expression_format = '{0} {operator} {1}' diff --git a/boto3/examples/cloudfront.rst b/boto3/examples/cloudfront.rst index 5018fc6..263dca4 100644 --- a/boto3/examples/cloudfront.rst +++ b/boto3/examples/cloudfront.rst @@ -20,9 +20,7 @@ Note that you will need the ``cryptography`` `library `. - :type Filename: str - :param Filename: The path to the file to download to. - :type Bucket: str :param Bucket: The name of the bucket to download from. :type Key: str :param Key: The name of the key to download from. + :type Filename: str + :param Filename: The path to the file to download to. + :type ExtraArgs: dict :param ExtraArgs: Extra arguments that may be passed to the client operation. @@ -223,12 +223,12 @@ def bucket_download_file(self, Key, Filename, except that parameters are capitalized. Detailed examples can be found at :ref:`S3Transfer's Usage `. - :type Filename: str - :param Filename: The path to the file to download to. - :type Key: str :param Key: The name of the key to download from. + :type Filename: str + :param Filename: The path to the file to download to. + :type ExtraArgs: dict :param ExtraArgs: Extra arguments that may be passed to the client operation. diff --git a/boto3/session.py b/boto3/session.py index fa981c1..7ccb235 100644 --- a/boto3/session.py +++ b/boto3/session.py @@ -249,7 +249,7 @@ class Session(object): over environment variables and configuration values, but not over a region_name value passed explicitly to the method. See `botocore config documentation - `_ + `_ for more details. :return: Service client instance @@ -331,7 +331,7 @@ class Session(object): user_agent_extra is specified in the client config, it overrides the default user_agent_extra provided by the resource API. See `botocore config documentation - `_ + `_ for more details. :return: Subclass of :py:class:`~boto3.resources.base.ServiceResource` diff --git a/docs/source/_static/404.html b/docs/source/_static/404.html new file mode 100644 index 0000000..6e056fd --- /dev/null +++ b/docs/source/_static/404.html @@ -0,0 +1,34 @@ + + + + + Page Not Found + + + +

Page Not Found

+

Sorry, the page you requested could not be found.

+ diff --git a/docs/source/guide/cloud9.rst b/docs/source/guide/cloud9.rst new file mode 100644 index 0000000..b7e2641 --- /dev/null +++ b/docs/source/guide/cloud9.rst @@ -0,0 +1,119 @@ +.. _cloud9_guide: + +Cloud9 +====== +You can use AWS Cloud9 with Boto 3 to write, run, and debug your Python code +using just a browser. AWS Cloud9 provides an integrated development +environment (IDE) that includes tools such as a code editor, +debugger, and terminal. Because the AWS Cloud9 IDE is cloud based, +you can work on your Python projects from your office, home, or anywhere using +an internet-connected machine. For general information about AWS Cloud9, see the +`AWS Cloud9 User Guide `_. + +Prerequisites +------------- +You must already have an AWS account. If you don't have one, do this +to create it: + +#. Go to https://aws.amazon.com. +#. Choose **Sign In to the Console**. +#. Choose **Create a new AWS account**. +#. Follow the on-screen instructions to finish creating the account. + +Step 1: Set Up Your AWS Account +------------------------------- +Start to use AWS Cloud9 by signing in to the AWS Cloud9 console as +an AWS Identity and Access Management (IAM) entity (for example, +an IAM user) in your AWS account who has access permissions for AWS Cloud9. + +To set up an IAM entity in your AWS account to access AWS Cloud9, +and to sign in to the AWS Cloud9 console, see +`Team Setup `_ +in the *AWS Cloud9 User Guide*. + +Step 2: Create an Environment +----------------------------- +After you sign in to the AWS Cloud9 console, use the console to +create an AWS Cloud9 development environment. (A *development environment* is +is a place where you store your project's files and where you run the tools +to develop your apps.) After you create +the environment, AWS Cloud9 automatically opens the IDE for that environment. + +To create an AWS Cloud9 development environment, see +`Creating an Environment `_ +in the *AWS Cloud9 User Guide*. + +Step 3: Set Up Credentials +-------------------------- +To call AWS services from Python code in your environment, you must provide a +set of AWS authentication credentials along with each call that your +code makes. If you created an AWS Cloud9 EC2 development environment +in the previous step, then AWS Cloud9 automatically set up these +credentials in your environment, and you can skip ahead to the next step. + +If, however, you created an AWS Cloud9 SSH development environment, you must +manually set up these credentials in your environment. +To set up these credentials, see +`Call AWS Services from an Environment `_ +in the *AWS Cloud9 User Guide*. + +Step 4: Install Boto 3 +---------------------- +After AWS Cloud9 opens the IDE for your development environment, use the IDE +to set up Boto 3. To do this, use the terminal in the IDE to +run this command: + + sudo pip install boto3 + +If the terminal isn't already open in the IDE, open it. To do this, +on the menu bar in the IDE, choose **Window, New Terminal**. + +You can also install a specific version: + + sudo pip install boto3==1.0.0 + +.. note:: + + The latest development version can always be found on + `GitHub `_. + +Step 5: Download Example Code +----------------------------- +Use the terminal that you opened in the previous step, download example code +for Boto 3 into your AWS Cloud9 development environment. To do this, +use the terminal in the IDE to run this command: + + git clone https://github.com/awsdocs/aws-doc-sdk-examples.git + +This command downloads +a copy of many of the code examples used across the official AWS SDK +documentation into your environment's root directory. + +To find the code examples for Boto 3, use the **Environment** window to open +the :code:`your-environment-name/aws-doc-sdk-examples/python/example_code` +directory, where :code:`your-environment-name` is the name of your +development environment. + +To learn how to work with these and other code examples, see +:ref:`Code Examples `. + +Step 6: Run and Debug Code +-------------------------- +To run your Python code in your AWS Cloud9 development environment, see +`Run Your Code `_ +in the *AWS Cloud9 User Guide*. + +To debug your Python code, see +`Debug Your Code `_ +in the *AWS Cloud9 User Guide*. + +Next Steps +---------- +Explore these resources to learn more about AWS Cloud9: + +* Experiment with the + `Python Sample `_ + in the *AWS Cloud9 User Guide*. +* Learn how to use the AWS Cloud9 IDE by completing the + `IDE Tutorial `_ + in the *AWS Cloud9 User Guide*. \ No newline at end of file diff --git a/docs/source/guide/configuration.rst b/docs/source/guide/configuration.rst index 6d22bd0..e5e378f 100644 --- a/docs/source/guide/configuration.rst +++ b/docs/source/guide/configuration.rst @@ -458,6 +458,11 @@ in the ``~/.aws/config`` file: and ``auto``. * ``signature_version``: Which AWS signature version to use when signing requests. Value values are: ``s3`` and ``s3v4``. +``tcp_keepalive`` + Toggles the TCP Keep-Alive socket option used when creating connections. + By default this value is ``false``; TCP Keep-Alive will not be used + when creating connections. To enable TCP Keep-Alive set this value to + ``true``, enabling TCP Keep-Alive with the system default configurations. .. _IAM Roles for Amazon EC2: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html diff --git a/docs/source/guide/cw-example-creating-alarms.rst b/docs/source/guide/cw-example-creating-alarms.rst index ff7d27f..a48fa3f 100644 --- a/docs/source/guide/cw-example-creating-alarms.rst +++ b/docs/source/guide/cw-example-creating-alarms.rst @@ -27,13 +27,13 @@ An alarm watches a single metric over a time period you specify, and performs on based on the value of the metric relative to a given threshold over a number of time periods. In this example, Python code is used to create alarms in CloudWatch. The code -uses the uses AWS SDK for Python to create alarms using these methods of the AWS.CloudWatch client class: +uses the AWS SDK for Python to create alarms using these methods of the AWS.CloudWatch client class: -* `paginate(StateValue='INSUFFICIENT_DATA') `_. +* `paginate(StateValue='INSUFFICIENT_DATA') `_. -* `put_metric_alarm `_. +* `put_metric_alarm `_. -* `delete_alarms `_. +* `delete_alarms `_. For more information about CloudWatch alarms, see `Creating Amazon CloudWatch Alarms `_ in the *Amazon CloudWatch User Guide*. @@ -51,7 +51,7 @@ Describe Alarms The example below shows how to: * List metric alarms for insufficient data using - `paginate(StateValue='INSUFFICIENT_DATA') `_. + `paginate(StateValue='INSUFFICIENT_DATA') `_. For more information about paginators see, :doc:`paginators` @@ -86,7 +86,7 @@ the previous configuration of the alarm. The example below shows how to: * Create or update a metric alarm using - `put_metric_alarm `_. + `put_metric_alarm `_. Example ------- @@ -128,7 +128,7 @@ Delete the specified alarms. In the event of an error, no alarms are deleted. The example below shows how to: * Delete a metric alarm using - `delete_alarms `_. + `delete_alarms `_. Example ------- @@ -145,4 +145,4 @@ Example AlarmNames=['Web_Server_CPU_Utilization'], ) - \ No newline at end of file + diff --git a/docs/source/guide/cw-example-events.rst b/docs/source/guide/cw-example-events.rst index 932bb58..a6d6aca 100644 --- a/docs/source/guide/cw-example-events.rst +++ b/docs/source/guide/cw-example-events.rst @@ -29,14 +29,14 @@ CloudWatch Events delivers a near real-time stream of system events that describ Amazon Web Services (AWS) resources to any of various targets. Using simple rules, you can match events and route them to one or more target functions or streams. -In this example, Python code is used to send events to CloudWatch Events. The code uses the uses the +In this example, Python code is used to send events to CloudWatch Events. The code uses the AWS SDK for Python to manage instances using these methods of the CloudWatchEvents client class: -* `put_rule `_. +* `put_rule `_. -* `put_targets `_. +* `put_targets `_. -* `put_events `_. +* `put_events `_. For more information about CloudWatch Events, see `Adding Events with PutEvents `_ @@ -102,12 +102,12 @@ Create a Scheduled Rule ======================= Create or update the specified rule. Rules are enabled by default, or based on value of the state. -You can disable a rule using `DisableRule `_. +You can disable a rule using `DisableRule `_. The example below shows how to: * Create a CloudWatch Events rule using - `put_rule `_. + `put_rule `_. Example @@ -140,7 +140,7 @@ associated with the rule. The example below shows how to: * Add a target to a rule using - `put_targets `_. + `put_targets `_. Example @@ -174,7 +174,7 @@ Send custom events to Amazon CloudWatch Events so that they can be matched to ru The example below shows how to: * Send a custom event to CloudWatch Events using - `put_events `_. + `put_events `_. Example ------- @@ -204,4 +204,4 @@ Example ) print(response['Entries']) - \ No newline at end of file + diff --git a/docs/source/guide/cw-example-metrics.rst b/docs/source/guide/cw-example-metrics.rst index c88e613..db3fd00 100644 --- a/docs/source/guide/cw-example-metrics.rst +++ b/docs/source/guide/cw-example-metrics.rst @@ -27,12 +27,12 @@ Metrics are data about the performance of your systems. You can enable detailed resources, such as your Amazon CloudWatch instances, or your own application metrics. In this example, Python code is used to get and send CloudWatch metrics data. -The code uses the uses the AWS SDK for Python to get metrics from CloudWatch +The code uses the AWS SDK for Python to get metrics from CloudWatch using these methods of the CloudWatch client class: -* `paginate('list_metrics') `_. +* `paginate('list_metrics') `_. -* `put_metric_data `_. +* `put_metric_data `_. For more information about CloudWatch metrics, see `Using Amazon CloudWatch Metrics `_ in the *Amazon CloudWatch User Guide*. @@ -53,7 +53,7 @@ List the metric alarm events uploaded to CloudWatch Logs. The example below shows how to: * List metric alarms of incoming log events using - `paginate('list_metrics') `_. + `paginate('list_metrics') `_. For more information about paginators see, :doc:`paginators` @@ -86,7 +86,7 @@ in calls to ListMetrics. The example below shows how to: * Publish custom metrics using - `put_metric_data `_. + `put_metric_data `_. Example @@ -116,4 +116,4 @@ Example ], Namespace='SITE/TRAFFIC' ) - \ No newline at end of file + diff --git a/docs/source/guide/cw-example-subscription-filters.rst b/docs/source/guide/cw-example-subscription-filters.rst index 6580ede..52ee1c9 100644 --- a/docs/source/guide/cw-example-subscription-filters.rst +++ b/docs/source/guide/cw-example-subscription-filters.rst @@ -26,14 +26,14 @@ which log events are delivered to your AWS resource. In this example, Python code is used to list, create, and delete a subscription filter in CloudWatch Logs. The destination for the log events is a Lambda function. -The code uses the uses AWS SDK for Python to manage subscription filters using these methods of the +The code uses the AWS SDK for Python to manage subscription filters using these methods of the CloudWatchLogs client class: -* `get_paginator('describe_subscription_filters') `_. +* `get_paginator('describe_subscription_filters') `_. -* `put_subscription_filter `_. +* `put_subscription_filter `_. -* `delete_subscription_filter `_. +* `delete_subscription_filter `_. For more information about CloudWatch Logs subscriptions, see Real-time `Processing of Log Data with Subscriptions `_ @@ -93,7 +93,7 @@ List the subscription filters for the specified log group. The example below shows how to: * List subscription filters using - `get_paginator('describe_subscription_filters') `_. + `get_paginator('describe_subscription_filters') `_. For more information about paginators see, :doc:`paginators` @@ -123,7 +123,7 @@ Create or update a subscription filter and associates it with the specified log The example below shows how to: * Create a subscription filter using - `put_subscription_filter `_. + `put_subscription_filter `_. Example ------- @@ -150,7 +150,7 @@ Delete a Subscription Filter The example below shows how to: * Delete a subscription filter. using - `delete_subscription_filter `_. + `delete_subscription_filter `_. Example ------- @@ -169,4 +169,4 @@ Example ) - \ No newline at end of file + diff --git a/docs/source/guide/cw-example-using-alarms.rst b/docs/source/guide/cw-example-using-alarms.rst index ff9eeac..98d5e1c 100644 --- a/docs/source/guide/cw-example-using-alarms.rst +++ b/docs/source/guide/cw-example-using-alarms.rst @@ -28,12 +28,12 @@ your Amazon EC2 instances. You can use the stop or terminate actions when you no instance to be running. You can use the reboot and recover actions to automatically reboot those instances. In this example, Python code is used to define an alarm action in CloudWatch that -triggers the reboot of an Amazon EC2 instance. The code uses the uses AWS SDK for Python to manage +triggers the reboot of an Amazon EC2 instance. The code uses the AWS SDK for Python to manage Amazon EC2 instances using these methods of the CloudWatch client class: -* `put_metric_alarm `_. +* `put_metric_alarm `_. -* `disable_alarm_actions `_. +* `disable_alarm_actions `_. For more information about CloudWatch alarm actions, see @@ -91,7 +91,7 @@ the previous configuration of the alarm. The example below shows how to: * Create an alarm and enable actions using - `put_metric_alarm `_. + `put_metric_alarm `_. Example ------- @@ -136,7 +136,7 @@ do not execute when the alarm state changes. The example below shows how to: * Disable metric alarm actions using - `disable_alarm_actions `_. + `disable_alarm_actions `_. Example ------- @@ -153,4 +153,4 @@ Example AlarmNames=['Web_Server_CPU_Utilization'], ) - \ No newline at end of file + diff --git a/docs/source/guide/ec2-example-elastic-ip-addresses.rst b/docs/source/guide/ec2-example-elastic-ip-addresses.rst index 689ac3a..6a72724 100644 --- a/docs/source/guide/ec2-example-elastic-ip-addresses.rst +++ b/docs/source/guide/ec2-example-elastic-ip-addresses.rst @@ -34,11 +34,11 @@ In this example, Python code performs several Amazon EC2 operations involving El The code uses the AWS SDK for Python to manage IAM access keys using these methods of the EC2 client class: -* `describe_addresses `_. +* `describe_addresses `_. -* `allocate_address `_. +* `allocate_address `_. -* `release_address `_. +* `release_address `_. For more information about Elastic IP addresses in Amazon EC2, see `Elastic IP Addresses `_ @@ -63,7 +63,7 @@ an instance or software by rapidly remapping the address to another instance in The example below shows how to: * Describe Elastic IP addresses using - `describe_addresses `_. + `describe_addresses `_. Example ------- @@ -90,7 +90,7 @@ an instance or software by rapidly remapping the address to another instance in The example below shows how to: * Acquire an Elastic IP address using - `allocate_address `_. + `allocate_address `_. Example ------- @@ -123,7 +123,7 @@ error if the address is already allocated to another AWS account. The example below shows how to: * Release the specified Elastic IP address using - `release_address `_. + `release_address `_. Example ------- diff --git a/docs/source/guide/ec2-example-key-pairs.rst b/docs/source/guide/ec2-example-key-pairs.rst index 9c317c4..7ced0d5 100644 --- a/docs/source/guide/ec2-example-key-pairs.rst +++ b/docs/source/guide/ec2-example-key-pairs.rst @@ -32,11 +32,11 @@ public and private keys are known as a key pair. In this example, Python code is used to perform several Amazon EC2 key pair management operations. The code uses the AWS SDK for Python to manage IAM access keys using these methods of the EC2 client class: -* `describe_key_pairs `_. +* `describe_key_pairs `_. -* `create_key_pair `_. +* `create_key_pair `_. -* `delete_key_pair `_. +* `delete_key_pair `_. For more information about the Amazon EC2 key pairs, see `Amazon EC2 Key Pairs `_ in the *Amazon EC2 User Guide for Linux Instances* @@ -58,7 +58,7 @@ Describe one or more of your key pairs. The example below shows how to: * Describe keypairs using - `describe_key_pairs `_. + `describe_key_pairs `_. Example ------- @@ -82,7 +82,7 @@ PKCS#8 private key. If a key with the specified name already exists, Amazon EC2 The example below shows how to: * Create a 2048-bit RSA key pair with a specified name using - `create_key_pair `_. + `create_key_pair `_. Example ------- @@ -104,7 +104,7 @@ Delete the specified key pair, by removing the public key from Amazon EC2. The example below shows how to: * Delete a key pair by removing the public key from Amazon EC2 using - `delete_key_pair `_. + `delete_key_pair `_. Example ------- diff --git a/docs/source/guide/ec2-example-managing-instances.rst b/docs/source/guide/ec2-example-managing-instances.rst index a0eef49..250639b 100644 --- a/docs/source/guide/ec2-example-managing-instances.rst +++ b/docs/source/guide/ec2-example-managing-instances.rst @@ -30,17 +30,17 @@ The Scenario In this example, Python code is used perform several basic instance management operations. The code uses the AWS SDK for Python to manage the instances by using these methods of the EC2 client class: -* `describe_instances `_. +* `describe_instances `_. -* `monitor_instances `_. +* `monitor_instances `_. -* `unmonitor_instances `_. +* `unmonitor_instances `_. -* `start_instances `_. +* `start_instances `_. -* `stop_instances `_. +* `stop_instances `_. -* `reboot_instances `_. +* `reboot_instances `_. For more information about the lifecycle of Amazon EC2 instances, see `Instance Lifecycle `_ @@ -63,7 +63,7 @@ on the Amazon Web Services (AWS) infrastructure. The example below shows how to: * Describe one or more EC2 instances using - `describe_instances `_. + `describe_instances `_. All the example code for the Amazon Web Services (AWS) SDK for Python is available `here on GitHub `_. @@ -90,10 +90,10 @@ in the *Amazon Elastic Compute Cloud User Guide*. The example below shows how to: * Enable detailed monitoring for a running instance using - `monitor_instances `_. + `monitor_instances `_. * Disable detailed monitoring for a running instance using - `unmonitor_instances `_. + `unmonitor_instances `_. Example ------- @@ -125,10 +125,10 @@ if transitions happen multiple times within a single hour. The example below shows how to: * Start an Amazon EBS-backed AMI that you've previously stopped using - `start_instances `_. + `start_instances `_. * Stop an Amazon EBS-backed instance using - `stop_instances `_. + `stop_instances `_. Example ------- @@ -184,7 +184,7 @@ you. Requests to reboot terminated instances are ignored. The example below shows how to: * Request a reboot of one or more instances using - `reboot_instances `_. + `reboot_instances `_. Example ------- diff --git a/docs/source/guide/ec2-example-regions-avail-zones.rst b/docs/source/guide/ec2-example-regions-avail-zones.rst index c9322ed..784cd76 100644 --- a/docs/source/guide/ec2-example-regions-avail-zones.rst +++ b/docs/source/guide/ec2-example-regions-avail-zones.rst @@ -25,9 +25,9 @@ The Scenario In this example, Python code is used to get details about regions and Availability Zones. The code uses the AWS SDK for Python to get the data by using these methods of the EC2 client class: -* `describe_regions `_. +* `describe_regions `_. -* `describe_availability_zones `_. +* `describe_availability_zones `_. For more information about regions and Availability Zones, see `Regions and Availability Zones `_ @@ -54,10 +54,10 @@ Describe Regions and Availability Zones The example below shows how to: * Describe regions using - `describe_regions `_. + `describe_regions `_. * Describe AvailabilityZones using - `describe_availability_zones `_. + `describe_availability_zones `_. Example ------- diff --git a/docs/source/guide/ec2-example-security-group.rst b/docs/source/guide/ec2-example-security-group.rst index 691f37f..846098d 100644 --- a/docs/source/guide/ec2-example-security-group.rst +++ b/docs/source/guide/ec2-example-security-group.rst @@ -34,13 +34,13 @@ In this example, Python code is used to perform several Amazon EC2 operations in The code uses the AWS SDK for Python to manage IAM access keys using these methods of the EC2 client class: -* `describe_security_groups `_. +* `describe_security_groups `_. -* `authorize_security_group_ingress `_. +* `authorize_security_group_ingress `_. -* `create_security_group `_. +* `create_security_group `_. -* `delete_security_group `_. +* `delete_security_group `_. For more information about the Amazon EC2 security groups, see `Amazon EC2 Amazon Security Groups for Linux Instances `_ @@ -68,7 +68,7 @@ in the *Amazon Virtual Private Cloud User Guide*. The example below shows how to: * Describe a Security Group using - `describe_security_groups `_. + `describe_security_groups `_. Example ------- @@ -99,10 +99,10 @@ Create a Security Group and Rules The example below shows how to: * Create a Security Group using - `create_security_group `_. + `create_security_group `_. * Add an ingress rule to a security group using - `authorize_security_group_ingress `_. + `authorize_security_group_ingress `_. Example ------- @@ -150,7 +150,7 @@ in EC2-VPC. The example below shows how to: * Delete a security group using - `delete_security_group `_. + `delete_security_group `_. Example ------- diff --git a/docs/source/guide/examples.rst b/docs/source/guide/examples.rst index 996b1eb..ad44f1b 100644 --- a/docs/source/guide/examples.rst +++ b/docs/source/guide/examples.rst @@ -24,4 +24,5 @@ Amazon Web Services (AWS) SDK for Python. ec2-examples iam-examples s3-examples + ses-examples sqs-examples diff --git a/docs/source/guide/iam-example-managing-access-keys.rst b/docs/source/guide/iam-example-managing-access-keys.rst index 817ea55..4adb188 100644 --- a/docs/source/guide/iam-example-managing-access-keys.rst +++ b/docs/source/guide/iam-example-managing-access-keys.rst @@ -27,15 +27,15 @@ status is Active, which means the user can use the access key for API calls. In this example, Python code is used to manage access keys in IAM. The code uses the AWS SDK for Python to manage IAM access keys using these methods of the IAM client class: -* `create_access_key `_. +* `create_access_key `_. -* `paginate(UserName='IAM_USER_NAME') `_. +* `paginate(UserName='IAM_USER_NAME') `_. -* `get_access_key_last_used `_. +* `get_access_key_last_used `_. -* `update_access_key `_. +* `update_access_key `_. -* `delete_access_key `_. +* `delete_access_key `_. For more information about IAM access keys, see `Managing Access Keys `_ @@ -57,7 +57,7 @@ default status for new keys is :code:`Active`. The example below shows how to: * Create a new AWS access key using - `create_access_key `_. + `create_access_key `_. Example ------- @@ -89,7 +89,7 @@ you can use this action to manage root credentials even if the AWS account has n The example below shows how to: * List a user's access keys using - `paginate(UserName='IAM_USER_NAME') `_. + `paginate(UserName='IAM_USER_NAME') `_. For more information about paginators see, :doc:`paginators` @@ -119,7 +119,7 @@ made with that key. The example below shows how to: * Get the access key last used using - `get_access_key_last_used `_. + `get_access_key_last_used `_. Example ------- @@ -150,7 +150,7 @@ can be used to disable a user's key as part of a key rotation work flow. The example below shows how to: * Change the status of an access key to :code:`Active` using - `update_access_key `_. + `update_access_key `_. Example ------- @@ -182,7 +182,7 @@ use this action to manage root credentials even if the AWS account has no associ The example below shows how to: * Delete an access key using - `delete_access_key `_. + `delete_access_key `_. Example ------- diff --git a/docs/source/guide/iam-example-managing-account-aliases.rst b/docs/source/guide/iam-example-managing-account-aliases.rst index 93f7236..3a3e5b5 100644 --- a/docs/source/guide/iam-example-managing-account-aliases.rst +++ b/docs/source/guide/iam-example-managing-account-aliases.rst @@ -26,11 +26,11 @@ AWS account alias, your sign-in page URL changes to incorporate the alias. In this example, Python code is used to create and manage IAM account aliases. The code uses the AWS SDK for Python to manage IAM access keys using these methods of the IAM client class: -* `create_account_alias `_. +* `create_account_alias `_. -* `get_paginator('list_account_aliases') `_. +* `get_paginator('list_account_aliases') `_. -* `delete_account_alias `_. +* `delete_account_alias `_. For more information about IAM account aliases, see `Your AWS Account ID and Its Alias `_ in the *IAM User Guide*. @@ -52,7 +52,7 @@ in the *IAM User Guide*. The example below shows how to: * Create an account alias using - `create_account_alias `_. + `create_account_alias `_. Example ------- @@ -79,7 +79,7 @@ in the *IAM User Guide*. The example below shows how to: * List account aliases using - `get_paginator('list_account_aliases') `_. + `get_paginator('list_account_aliases') `_. For more information about paginators see, :doc:`paginators` @@ -108,7 +108,7 @@ in the *IAM User Guide*. The example below shows how to: * Delete an account alias using - `delete_account_alias `_. + `delete_account_alias `_. Example ------- diff --git a/docs/source/guide/iam-example-managing-users.rst b/docs/source/guide/iam-example-managing-users.rst index 3622b38..cb030df 100644 --- a/docs/source/guide/iam-example-managing-users.rst +++ b/docs/source/guide/iam-example-managing-users.rst @@ -23,13 +23,13 @@ In this example Python code is used to create and manage users in IAM. The code Amazon Web Services (AWS) SDK for Python to manage users using these methods of the IAM client class: -* `create_user `_ +* `create_user `_ -* `get_paginator('list_users') `_. +* `get_paginator('list_users') `_. -* `update_user `_. +* `update_user `_. -* `delete_user `_. +* `delete_user `_. All the example code for the Amazon Web Services (AWS) SDK for Python is available `here on GitHub `_. @@ -53,7 +53,7 @@ in the *IAM User Guide*. The example below shows how to: * Create a new IAM user using - `create_user `_. + `create_user `_. Example ------- @@ -80,7 +80,7 @@ List the IAM users. The example below shows how to: * List the IAM users using - `get_paginator('list_users') `_. + `get_paginator('list_users') `_. For more information about paginators see, :doc:`paginators` @@ -113,7 +113,7 @@ in the *IAM User Guide*. The example below shows how to: * Update an IAM user name using - `update_user `_. + `update_user `_. Example ------- @@ -141,7 +141,7 @@ certificates, or attached policies. The example below shows how to: * Delete an IAM user name using - `delete_user `_. + `delete_user `_. Example ------- diff --git a/docs/source/guide/iam-example-policies.rst b/docs/source/guide/iam-example-policies.rst index cc02a21..9a0c1b9 100644 --- a/docs/source/guide/iam-example-policies.rst +++ b/docs/source/guide/iam-example-policies.rst @@ -28,13 +28,13 @@ In this example, Python code used to manage policies in IAM. The code uses the Amazon Web Services (AWS) SDK for Python to create and delete policies as well as attaching and detaching role policies using these methods of the IAM client class: -* `create_policy `_. +* `create_policy `_. -* `get_policy `_. +* `get_policy `_. -* `attach_role_policy `_. +* `attach_role_policy `_. -* `detach_role_policy `_. +* `detach_role_policy `_. All the example code for the Amazon Web Services (AWS) SDK for Python is available `here on GitHub `_. @@ -59,7 +59,7 @@ in the *IAM User Guide*. The example below shows how to: * Create a new managed policy using - `create_policy `_. + `create_policy `_. All the example code for the Amazon Web Services (AWS) SDK for Python is available `here on GitHub `_. @@ -119,7 +119,7 @@ or :code:`get_role_policy` API. The example below shows how to: * Get information about a managed policy using - `get_policy `_. + `get_policy `_. Example ------- @@ -153,7 +153,7 @@ Use this API to attach a managed policy to a role. To embed an inline policy in The example below shows how to: * Attach a managed policy to an IAM role. using - `attach_role_policy `_. + `attach_role_policy `_. Example ------- @@ -186,7 +186,7 @@ in the *IAM User Guide*. The example below shows how to: * Detach a managed role policy using - `detach_role_policy `_. + `detach_role_policy `_. Example ------- diff --git a/docs/source/guide/iam-example-server-certificates.rst b/docs/source/guide/iam-example-server-certificates.rst index 3113aba..5e02da6 100644 --- a/docs/source/guide/iam-example-server-certificates.rst +++ b/docs/source/guide/iam-example-server-certificates.rst @@ -28,13 +28,13 @@ In this example, python code is used to handle server certificates in IAM. The c Amazon Web Services (AWS) SDK for Python to manage server certificates using these methods of the IAM client class: -* `get_paginator('list_server_certificates') `_. +* `get_paginator('list_server_certificates') `_. -* `get_server_certificate `_. +* `get_server_certificate `_. -* `update_server_certificate `_. +* `update_server_certificate `_. -* `delete_server_certificate `_. +* `delete_server_certificate `_. All the example code for the Amazon Web Services (AWS) SDK for Python is available `here on GitHub `_. @@ -54,7 +54,7 @@ List the server certificates stored in IAM. If none exist, the action returns an The example below shows how to: * List server certificates using - `get_paginator('list_server_certificates') `_. + `get_paginator('list_server_certificates') `_. For more information about paginators see, :doc:`paginators` @@ -81,7 +81,7 @@ Get information about the specified server certificate stored in IAM. The example below shows how to: * Get a server certificate using - `get_server_certificate `_. + `get_server_certificate `_. Example ------- @@ -106,7 +106,7 @@ Update the name and/or the path of the specified server certificate stored in IA The example below shows how to: * Update a server certificate using - `update_server_certificate `_. + `update_server_certificate `_. Example ------- @@ -132,7 +132,7 @@ Delete the specified server certificate. The example below shows how to: * Delete a server certificate using - `delete_server_certificate `_. + `delete_server_certificate `_. Example ------- diff --git a/docs/source/guide/index.rst b/docs/source/guide/index.rst index f8d319b..36508ec 100644 --- a/docs/source/guide/index.rst +++ b/docs/source/guide/index.rst @@ -32,5 +32,8 @@ Service Feature Guides .. toctree:: + cloud9 dynamodb s3 + secrets-manager + sdk-metrics diff --git a/docs/source/guide/migration.rst b/docs/source/guide/migration.rst index 8206f7e..a96d0e9 100644 --- a/docs/source/guide/migration.rst +++ b/docs/source/guide/migration.rst @@ -50,7 +50,7 @@ Once configured, you may begin using Boto 3:: for bucket in boto3.resource('s3').buckets.all(): print(bucket.name) -See the :ref:`tutorial_list` and `Boto 3 Documentation `__ for more information. +See the :ref:`tutorial_list` and `Boto 3 Documentation `__ for more information. The rest of this document will describe specific common usage scenarios of Boto 2 code and how to accomplish the same tasks with Boto 3. diff --git a/docs/source/guide/migrations3.rst b/docs/source/guide/migrations3.rst index 4b75ff3..07a5756 100644 --- a/docs/source/guide/migrations3.rst +++ b/docs/source/guide/migrations3.rst @@ -59,8 +59,8 @@ Getting a bucket is easy with Boto 3's resources, however these do not automatic except botocore.exceptions.ClientError as e: # If a client error is thrown, then check that it was a 404 error. # If it was a 404 error, then the bucket does not exist. - error_code = int(e.response['Error']['Code']) - if error_code == 404: + error_code = e.response['Error']['Code'] + if error_code == '404': exists = False Deleting a Bucket diff --git a/docs/source/guide/s3-example-access-permissions.rst b/docs/source/guide/s3-example-access-permissions.rst index 99f6fe8..58d7d46 100644 --- a/docs/source/guide/s3-example-access-permissions.rst +++ b/docs/source/guide/s3-example-access-permissions.rst @@ -23,7 +23,7 @@ In this example, a Python code is used to display the bucket access control list bucket. The code uses the AWS SDK for Python to manage Amazon S3 bucket access permissions using this method of the Amazon S3 client class: -* `get_bucket_acl `_. +* `get_bucket_acl `_. For more information about access control lists for Amazon S3 buckets, see `Managing Access with ACLs `_ @@ -48,7 +48,7 @@ AWS accounts. The example below shows how to: * Get the bucket ACL for a specified bucket using - `get_bucket_acl `_. + `get_bucket_acl `_. Example ------- diff --git a/docs/source/guide/s3-example-bucket-policies.rst b/docs/source/guide/s3-example-bucket-policies.rst index 2cca816..387be54 100644 --- a/docs/source/guide/s3-example-bucket-policies.rst +++ b/docs/source/guide/s3-example-bucket-policies.rst @@ -29,11 +29,11 @@ In this example, Python code is used to get, set, or delete a bucket policy on a The code uses the AWS SDK for Python to configure policy for a selected Amazon S3 bucket using these methods of the Amazon S3 client class: -* `get_bucket_policy `_. +* `get_bucket_policy `_. -* `put_bucket_policy `_. +* `put_bucket_policy `_. -* `delete_bucket_policy `_ +* `delete_bucket_policy `_ For more information about bucket policies for Amazon S3 buckets, see `Using Bucket Policies and User Policies `_ @@ -54,7 +54,7 @@ Get the Current Bucket Policy The example below shows how to: * Get the bucket ACL for a specified bucket using - `get_bucket_policy `_. + `get_bucket_policy `_. Example ------- @@ -79,7 +79,7 @@ Set a Simple Bucket Policy The example below shows how to: * Set the bucket policy for a specified bucket using - `put_bucket_policy `_. + `put_bucket_policy `_. Example ------- @@ -119,7 +119,7 @@ Delete a Bucket Policy The example below shows how to: * Delete a bucket policy for a specified bucket using - `delete_bucket_policy `_. + `delete_bucket_policy `_. Example ------- diff --git a/docs/source/guide/s3-example-configuring-buckets.rst b/docs/source/guide/s3-example-configuring-buckets.rst index 421a44e..1bec4ee 100644 --- a/docs/source/guide/s3-example-configuring-buckets.rst +++ b/docs/source/guide/s3-example-configuring-buckets.rst @@ -23,9 +23,9 @@ In this example, Python code is used to list your Amazon S3 buckets and to confi The Python code uses the AWS SDK for Python to configure a selected Amazon S3 bucket using these methods of the Amazon S3 client class: -* `get_bucket_cors `_ +* `get_bucket_cors `_ -* `put_bucket_cors `_. +* `put_bucket_cors `_. For more information about using CORS configuration with an Amazon S3 bucket, see `Cross-Origin Resource Sharing (CORS) `_ @@ -46,7 +46,7 @@ Get a Bucket CORS Configuration The example below shows how to: * Get a CORS configuration for a specified bucket using - `get_bucket_cors `_. + `get_bucket_cors `_. .. code-block:: python @@ -64,7 +64,7 @@ Set a Bucket CORS Configuration The example below shows how to: * Set a CORS configuration for a specified bucket using - `put_bucket_cors `_. + `put_bucket_cors `_. .. code-block:: python diff --git a/docs/source/guide/s3-example-creating-buckets.rst b/docs/source/guide/s3-example-creating-buckets.rst index 8359b75..4934dd9 100644 --- a/docs/source/guide/s3-example-creating-buckets.rst +++ b/docs/source/guide/s3-example-creating-buckets.rst @@ -29,11 +29,11 @@ In this example, Python code is used to obtain a list of existing Amazon S3 buck and upload a file to a specified bucket. The code uses the AWS SDK for Python to get information from and upload files to an Amazon S3 bucket using these methods of the Amazon S3 client class: -* `list_buckets `_ +* `list_buckets `_ -* `create_bucket `_ +* `create_bucket `_ -* `upload_file `_ +* `upload_file `_ All the example code for the Amazon Web Services (AWS) SDK for Python is available `here on GitHub `_. @@ -52,7 +52,7 @@ List all the buckets owned by the authenticated sender of the request. The example below shows how to: * List buckets using - `list_buckets `_. + `list_buckets `_. Example @@ -81,7 +81,7 @@ Create an Amazon S3 Bucket The example below shows how to: * Create a new bucket using - `create_bucket `_. + `create_bucket `_. Example @@ -101,7 +101,7 @@ Upload a File to an Amazon S3 Bucket The example below shows how to: * Upload a file to a bucket using - `upload_file `_. + `upload_file `_. Example diff --git a/docs/source/guide/s3-example-static-web-host.rst b/docs/source/guide/s3-example-static-web-host.rst index 1377bf4..eb15162 100644 --- a/docs/source/guide/s3-example-static-web-host.rst +++ b/docs/source/guide/s3-example-static-web-host.rst @@ -21,11 +21,11 @@ In this example, Python code is used to configure any of your buckets to act as The code uses the AWS SDK for Python to configure a selected Amazon S3 bucket using these methods of the Amazon S3 client class: -* `get_bucket_website `_ +* `get_bucket_website `_ -* `put_bucket_website `_ +* `put_bucket_website `_ -* `delete_bucket_website `_ +* `delete_bucket_website `_ For more information about using an Amazon S3 bucket as a static web host, see `Hosting a Static Website on Amazon S3 `_ @@ -46,7 +46,7 @@ Get the Current Bucket Website Configuration The example below shows how to: * Get the bucket website configuration using - `get_bucket_website `_. + `get_bucket_website `_. Example ------- @@ -67,7 +67,7 @@ Set a Bucket Website Configuration The example below shows how to: * Set a bucket website configuration using - `put_bucket_website `_. + `put_bucket_website `_. Example ------- @@ -98,7 +98,7 @@ Delete a Bucket Website Configuration The example below shows how to: * Delete a bucket website configuration using - `delete_bucket_website `_. + `delete_bucket_website `_. Example ------- diff --git a/docs/source/guide/sdk-metrics.rst b/docs/source/guide/sdk-metrics.rst new file mode 100644 index 0000000..eb02083 --- /dev/null +++ b/docs/source/guide/sdk-metrics.rst @@ -0,0 +1,271 @@ +.. _guide_sdk-metrics: + +SDK Metrics +=========== + +AWS SDK Metrics for Enterprise Support (SDK Metrics) enables Enterprise customers to collect metrics from AWS SDKs on their hosts and clients shared with +AWS Enterprise Support. SDK Metrics provides information that helps speed up detection and diagnosis of issues occurring in connections +to AWS services for AWS Enterprise Support customers. + +As telemetry is collected on each host, it is relayed via UDP to 127.0.0.1 (aka localhost), where the CloudWatch agent aggregates the data and sends it +to the SDK Metrics service. Therefore, to receive metrics, you must add the CloudWatch agent to your instance. + +The following steps to set up SDK Metrics pertain to an Amazon EC2 instance running Amazon Linux for a client application that is using the AWS SDK for Python. +SDK Metrics is also available for your production environments if you enable it while configuring the AWS SDK for Python. + +To utilize SDK Metrics, run the latest version of the CloudWatch agent. Learn how to +`Configure the CloudWatch Agent for SDK Metrics `__ in the Amazon CloudWatch User Guide. + +To set up SDK Metrics with the AWS SDK for Python, follow these instructions: + +#. Create an application with an AWS SDK for Python client to use an AWS service. +#. Host your project on an Amazon EC2 instance or in your local environment. +#. Install and use the latest version of Boto3 (AWS SDK for Python). +#. Install and configure a CloudWatch agent on an EC2 instance or in your local environment as described in the `Amazon CloudWatch User Guide `__ . +#. Authorize SDK Metrics to collect and send metrics as described in the `Amazon CloudWatch User Guide `__ .. +#. :ref:`csm-enable-agent`. + + +For more information, see the following: + +* :ref:`csm-update-agent` +* :ref:`csm-disable-agent` + + +.. _csm-enable-agent: + +Enable SDK Metrics +------------------ + +By default, SDK Metrics is turned off, and the port is set to 31000. The following are the default parameters. + +Enabling SDK Metrics is independent of configuring your credentials to use an AWS service. + +You can enable SDK Metrics by setting environment variables or by using the AWS Shared config file. + +Option 1: Set Environment Variables +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If :code:`AWS_CSM_ENABLED` is not set, the SDK checks the :code:`AWS_DEFAULT_PROFILE` profile to determine if SDK Metrics is enabled. By default this is set to ``false``. + +To turn on SDK Metrics, add the following to your environmental variables. + +.. code-block:: shell + + export AWS_CSM_ENABLED=true + +:ref:`Other configuration settings` are available. + +Note: Enabling SDK Metrics does not configure your credentials to use an AWS service. + + +Option 2: AWS Shared Config File +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If no CSM configuration is found in the environment variables, the SDK looks for your default AWS profile field. If :code:`AWS_DEFAULT_PROFILE` is set to something other than default, update that profile. To enable SDK Metrics, add :code:`csm_enabled` to the shared config file located at :file:`~/.aws/config`. + +.. code-block:: ini + + [default] + csm_enabled = true + + [profile aws_csm] + csm_enabled = true + +:ref:`Other configuration settings` are available. + +Note: Enabling SDK Metrics is independent from configuring your credentials to use an AWS service. You can use a different profile to authenticate. + +.. _csm-update-agent: + +Update a CloudWatch Agent +------------------------- + +To make changes to the port, you need to set the values and then restart any AWS jobs that are currently active. + +Option 1: Set Environment Variables +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Most services use the default port. But if your service requires a unique port ID, add ``AWS_CSM_PORT=[port_number]``, to the host's environment variables. + +.. code-block:: shell + + export AWS_CSM_ENABLED=true + export AWS_CSM_PORT=1234 + + +Option 2: AWS Shared Config File +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Most services use the default port. But if your service requires a +unique port ID, add ``csm_port = [port_number]`` to ``~/.aws/config``. + +.. code-block:: ini + + [default] + csm_enabled = false + csm_port = 1234 + + [profile aws_csm] + csm_enabled = false + csm_port = 1234 + +Restart SDK Metrics +~~~~~~~~~~~~~~~~~~~ + +To restart a job, run the following commands. + +.. code-block:: shell + + amazon-cloudwatch-agent-ctl –a stop; + amazon-cloudwatch-agent-ctl –a start; + + +.. _csm-disable-agent: + +Disable SDK Metrics +-------------------- + +To turn off SDK Metrics, remove ``csm_enabled`` from your environment variables, or in your AWS Shared config file located at :file:`~/.aws/config`. +Then restart your CloudWatch agent so that the changes can take effect. + +**Environment Variables** + +Remove ``AWS_CSM_ENABLED`` from your environment variables or set it to false. + +.. code-block:: shell + + unset AWS_CSM_ENABLED + + +**AWS Shared Config File** + +Remove ``csm_enabled`` from the profiles in your AWS Shared config file located at :file:`~/.aws/config`. + +.. note:: Environment variables override the AWS Shared config file. If SDK Metrics is enabled in the environment variables, the SDK Metrics remain enabled. + +To explicitly opt-out of SDK Metrics set ``csm_enabled`` to false. + +.. code-block:: ini + + [default] + csm_enabled = false + + [profile aws_csm] + csm_enabled = false + +To disable SDK Metrics, use the following command to stop CloudWatch agent. + +.. code-block:: shell + + sudo amazon-cloudwatch-agent-ctl -a stop && + echo "Done" + +If you are using other CloudWatch features, restart CloudWatch Agent with the following command. + +.. code-block:: shell + + amazon-cloudwatch-agent-ctl –a start; + + +Restart SDK Metrics +~~~~~~~~~~~~~~~~~~~ + +To restart a SDK Metrics job, run the following commands. + +.. code-block:: shell + + amazon-cloudwatch-agent-ctl –a stop; + amazon-cloudwatch-agent-ctl –a start; + +Definitions for SDK Metrics +--------------------------- + +You can use the following descriptions of SDK Metrics to interpret your results. In general, these metrics are available for review +with your Technical Account Manager during regular business reviews. AWS Support resources and your Technical Account Manager +should have access to SDK Metrics data to help you resolve cases, but if you discover data that is confusing or unexpected, but +doesn’t seem to be negatively impacting your applications’ performance, it is best to review that data during scheduled +business reviews. + +.. list-table:: + :widths: 1 2 + :header-rows: 1 + + * - Metric: + - CallCount + + * - Definition + - Total number of successful or failed API calls from your code to AWS services + + * - How to use it + - Use it as a baseline to correlate with other metrics like errors or throttling. + + +.. list-table:: + :widths: 1 2 + :header-rows: 1 + + * - Metric: + - ClientErrorCount + + * - Definition + - Number of API calls that fail with client errors (4xx HTTP response codes). *Examples: Throttling, Access denied, S3 bucket does not exist, and Invalid parameter value.* + + * - How to use it + - Except in certain cases related to throttling (ex. when throttling occurs due to a limit that needs to be increased) this metric can indicate something in your application that needs to be fixed. + + +.. list-table:: + :widths: 1 2 + :header-rows: 1 + + * - Metric: + - ConnectionErrorCount + + * - Definition + - Number of API calls that fail because of errors connecting to the service. These can be caused by network issues between the customer application and AWS services including load balancers, DNS failures, transit providers. In some cases, AWS issues may result in this error. + + * - How to use it + - Use this metric to determine whether issues are specific to your application or are caused by your infrastructure and/or network. High ConnectionErrorCount could also indicate short timeout values for API calls. + + +.. list-table:: + :widths: 1 2 + :header-rows: 1 + + * - Metric: + - ThrottleCount + + * - Definition + - Number of API calls that fail due to throttling by AWS services. + + * - How to use it + - Use this metric to assess if your application has reached throttle limits, as well as to determine the cause of retries and application latency. Consider distributing calls over a window instead of batching your calls. + + +.. list-table:: + :widths: 1 2 + :header-rows: 1 + + * - Metric: + - ServerErrorCount + + * - Definition + - Number of API calls that fail due to server errors (5xx HTTP response codes) from AWS Services. These are typically caused by AWS services. + + * - How to use it + - Determine cause of SDK retries or latency. This metric will not always indicate that AWS services are at fault, as some AWS teams classify latency as an HTTP 503 response. + +.. list-table:: + :widths: 1 2 + :header-rows: 1 + + * - Metric: + - EndToEndLatency + + * - Definition + - Total time for your application to make a call using the AWS SDK, inclusive of retries. In other words, regardless of whether it is successful after several attempts, or as soon as a call fails due to an unretriable error. + + * - How to use it + - Determine how AWS API calls contribute to your application’s overall latency. Higher than expected latency may be caused by issues with network, firewall, or other configuration settings, or by latency that occurs as a result of SDK retries. + diff --git a/docs/source/guide/secrets-manager.rst b/docs/source/guide/secrets-manager.rst new file mode 100644 index 0000000..f22b9d4 --- /dev/null +++ b/docs/source/guide/secrets-manager.rst @@ -0,0 +1,83 @@ +.. Copyright 2010-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + + This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 + International License (the "License"). You may not use this file except in compliance with the + License. A copy of the License is located at http://creativecommons.org/licenses/by-nc-sa/4.0/. + + 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. + +.. _aws-boto3-secrets-manager: + +################### +AWS Secrets Manager +################### + +This Python example shows you how to retrieve the decrypted secret value from an AWS Secrets Manager secret. The secret could be created using either the Secrets Manager console or the CLI/SDK. + +The code uses the AWS SDK for Python to retrieve a decrypted secret value. + +For more information about using an Amazon Secrets Manager, see +`Tutorial: Storing and Retrieving a Secret `_ +in the *AWS Secrets Manager Developer Guide*. + +All the example code for the Amazon Web Services (AWS) SDK for Python is available `here on GitHub `_. + +Prerequisite Tasks +================== + +To set up and run this example, you must first set up the following: + +* Configure your AWS credentials, as described in :doc:`quickstart`. +* Create a secret with the AWS Secrets Manager, as described in the `AWS Secrets Manager Developer Guide `_ + +Retrieve the Secret Value +============================================= + +The following example shows how to: + +* Retrieve a secret value using + `get_secret_value `_. + +Example +------- + +.. code-block:: python + + import boto3 + from botocore.exceptions import ClientError + + + def get_secret(): + secret_name = "MySecretName" + region_name = "us-west-2" + + session = boto3.session.Session() + client = session.client( + service_name='secretsmanager', + region_name=region_name, + ) + + try: + get_secret_value_response = client.get_secret_value( + SecretId=secret_name + ) + except ClientError as e: + if e.response['Error']['Code'] == 'ResourceNotFoundException': + print("The requested secret " + secret_name + " was not found") + elif e.response['Error']['Code'] == 'InvalidRequestException': + print("The request was invalid due to:", e) + elif e.response['Error']['Code'] == 'InvalidParameterException': + print("The request had invalid params:", e) + else: + # Secrets Manager decrypts the secret value using the associated KMS CMK + # Depending on whether the secret was a string or binary, only one of these fields will be populated + if 'SecretString' in get_secret_value_response: + text_secret_data = get_secret_value_response['SecretString'] + else: + binary_secret_data = get_secret_value_response['SecretBinary'] + + # Your code goes here. + + diff --git a/docs/source/guide/ses-example-verify.rst b/docs/source/guide/ses-example-verify.rst new file mode 100644 index 0000000..7891e8e --- /dev/null +++ b/docs/source/guide/ses-example-verify.rst @@ -0,0 +1,128 @@ +.. Copyright 2010-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + + This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 + International License (the "License"). You may not use this file except in compliance with the + License. A copy of the License is located at http://creativecommons.org/licenses/by-nc-sa/4.0/. + + 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. + +.. _aws-boto3-ses-verify: + +############################################ +Verifying Email Identities in Amazon SES +############################################ + +.. meta:: + :description: Use Amazon SES API to verify email addresses and domains. + :keywords: Amazon SES code examples for Python, approve emails recipients with Python + +When you first start using your Amazon Simple Email Service (SES) account, all senders and recipients must be verified in the same AWS Region that you +will be sending emails to. For more information about sending emails, see `Sending Email with Amazon SES `_. + +The following examples show how to: + +* Verify an email address using `VerifyEmailIdentity `_. +* Verify an email domain using `VerifyDomainIdentity `_. +* List all email addresses using `ListIdentities `_. +* List all email domains using `ListIdentities `_. +* Remove an email address using `DeleteIdentity `_. +* Remove an email domain using `DeleteIdentity `_. +All the example code for the Amazon Web Services (AWS) SDK for Python is available `here on GitHub `_. + +Prerequisite Tasks +================== + +To set up and run this example, you must first complete these tasks: + +* Configure your AWS credentials, as described in :doc:`quickstart`. + +Verifying Email addresses +========================= +SES can send email only from verified email addresses or domains. By verifying an email address, you demonstrate that you're the owner of that address and want to allow SES to send email from that address. + +When you run the following code example, SES sends an email to the address you specified. When you (or the recipient of the email) click the link in the email, the address is verified. + +To add an email address to your SES account, use the `VerifyEmailIdentity `_ operation. + + +Verify an Email Domain +====================== + +SES can send email only from verified email addresses or domains. By verifying a domain, you demonstrate that you're the owner of that domain. When you verify a domain, you allow SES to send email from any address on that domain. + +When you run the following code example, SES provides you with a verification token. You have to add the token to your domain's DNS configuration. For more information, see :SES-dg:`Verifying a Domain with Amazon SES `_ in the |SES-dg|. + +To add a sending domain to your SES account, use the `VerifyDomainIdentity `_ operation. + +List Email Addresses +==================== + +To retrieve a list of email addresses submitted in the current AWS Region, regardless of verification status, use the `ListIdentities `_ operation. + +List Email Domains +================== + +To retrieve a list of email domains submitted in the current AWS Region, regardless of verification status use the `ListIdentities `_ operation. + +Example +------- + +.. code-block:: python + + import boto3 + + # Create SES client + ses = boto3.client('ses') + + response = ses.delete_identity( + Identity = 'EMAIL_ADDRESS' + ) + + print(response) + + + +Delete an Email Address +======================= + +To delete a verified email address from the list of verified identities, use the `DeleteIdentity `_ operation. + +Example +------- + +.. code-block:: python + + import boto3 + + # Create SES client + ses = boto3.client('ses') + + response = ses.delete_identity( + Identity = 'EMAIL_ADDRESS' + ) + + print(response) + +Delete an Email Domain +====================== + +To delete a verified email domain from the list of verified identities, use the `DeleteIdentity `_ operation. + +Example +------- + +.. code-block:: python + + import boto3 + + # Create SES client + ses = boto3.client('ses') + + response = ses.delete_identity( + Identity = 'DOMAIN_NAME' + ) + + print(response) + diff --git a/docs/source/guide/ses-examples.rst b/docs/source/guide/ses-examples.rst new file mode 100644 index 0000000..5a5d81c --- /dev/null +++ b/docs/source/guide/ses-examples.rst @@ -0,0 +1,35 @@ +.. Copyright 2010-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + + This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 + International License (the "License"). You may not use this file except in compliance with the + License. A copy of the License is located at http://creativecommons.org/licenses/by-nc-sa/4.0/. + + 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. + +.. _aws-boto3-ses-examples: + +################### +Amazon SES Examples +################### + +.. meta:: + :description: Amazon SES code examples for the AWS SDK for Python Botocore 3. + :keywords: Amazon Simple Email Service code examples for Python Botocore 3, AWS Email, Amazon bulk email + +Amazon Simple Email Service (SES) is an email platform that provides an easy, cost-effective way for you to send and receive email using your own + +email addresses and domains. For more information about Amazon SES, see the `Amazon SES documentation `_. + +**Examples** + +.. toctree:: + :maxdepth: 1 + + Verifying Email Addresses + Working with Email Templates + Managing Email Filters + Using Email Rules + + diff --git a/docs/source/guide/ses-filters.rst b/docs/source/guide/ses-filters.rst new file mode 100644 index 0000000..440c79e --- /dev/null +++ b/docs/source/guide/ses-filters.rst @@ -0,0 +1,105 @@ +.. Copyright 2010-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. + + This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 + International License (the "License"). You may not use this file except in compliance with the + License. A copy of the License is located at http://creativecommons.org/licenses/by-nc-sa/4.0/. + + 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. + +.. _aws-boto3-ses-filters: + +################################### +Managing Email Filters with SES API +################################### + +.. meta:: + :description: Use the Amazon SES API to manage email filters. + :keywords: Amazon SES code examples for Python, IP Address Email Filters with Python + +In addition to sending emails, you can also receive email with Amazon Simple Email Service (SES). An IP address filter enables you to optionally specify whether to accept or reject mail that originates from an IP address or range of IP addresses. For more information, see `Managing IP Address Filters for Amazon SES Email Receiving `__. + +The following examples show how to: + +* Create an email filter using `create_receipt_filter() `__. +* List all email filters using `list_receipt_filters() `__. +* Remove an email filter using `delete_receipt_filter() `__. + +Prerequisite Tasks +================== + +To set up and run this example, you must first complete these tasks: + +* Configure your AWS credentials, as described in :doc:`quickstart`. + +Create an Email Filter +====================== + +To allow or block emails from a specific IP address, use the `CreateReceiptFilter `__ operation. Provide the IP address or range of addresses and a unique name to identify this filter. + +Example +------- + +.. code-block:: python + + import boto3 + + # Create SES client + ses = boto3.client('ses') + + # Create receipt filter + response = ses.create_receipt_filter( + Filter = { + 'NAME' : 'NAME', + 'IpFilter' : { + 'Cidr' : 'IP_ADDRESS_OR_RANGE', + 'Policy' : 'Allow' + } + } + ) + + print(response) + +List All Email Filters +====================== + +To list the IP address filters associated with your AWS account in the current AWS Region, use the `ListReceiptFilters `__ operation. + + +Example +------- + +.. code-block:: python + + import boto3 + + # Create SES client + ses = boto3.client('ses') + + response = ses.list_receipt_filters() + + print(response) + +Delete an Email Filter +====================== + +To remove an existing filter for a specific IP address use the `DeleteReceiptFilter `__ operation. Provide the unique filter name to identify the receipt filter to delete. + +If you need to change the range of addresses that are filtered, you can delete a receipt filter and create a new one. + +Example +------- + +.. code-block:: python + + import boto3 + + # Create SES client + ses = boto3.client('ses') + + response = ses.delete_receipt_filter( + FilterName = 'NAME' + ) + + print(response) diff --git a/docs/source/guide/ses-rules.rst b/docs/source/guide/ses-rules.rst new file mode 100644 index 0000000..6b4a5b1 --- /dev/null +++ b/docs/source/guide/ses-rules.rst @@ -0,0 +1,144 @@ +.. Copyright 2010-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. + + This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 + International License (the "License"). You may not use this file except in compliance with the + License. A copy of the License is located at http://creativecommons.org/licenses/by-nc-sa/4.0/. + + 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. + +.. _aws-boto3-ses-rules: + +#################################################### +Creating and Managing Email Rules with the SES API +#################################################### + +.. meta:: + :description: Use the Amazon SES API to manage email rules. + :keywords: Amazon SES code examples for Python, managing email rules with Python + +In addition to sending emails, you can also receive email with Amazon Simple Email Service (SES). Receipt rules enable you to specify what SES does with email it receives for the email addresses or domains you own. +A rule can send email to other AWS services including but not limited to Amazon S3, Amazon SNS, or AWS Lambda. + +For more information, see `Managing Receipt Rule Sets for Amazon SES Email Receiving `_ and `Managing Receipt Rules for Amazon SES Email Receiving `_. + +The following examples show how to: + +* Create a receipt rule set using `create_receipt_rule_set() `_. +* Create a receipt rule using `create_receipt_rule() `_. +* Remove a receipt rule using `delete_receipt_rule() `_. +* Remove a receipt rule set using `delete_receipt_rule_set() `_. + +Prerequisite Tasks +================== + +To set up and run this example, you must first complete these tasks: + +* Configure your AWS credentials, as described in :doc:`quickstart`. + +Create a Receipt Rule Set +========================== + +A receipt rule set contains a collection of receipt rules. You must have at least one receipt rule set associated with your account before you can create a receipt rule. To create a receipt rule set, provide a unique RuleSetName and use the `CreateReceiptRuleSet `_ operation. + +Example +------- + +.. code-block:: python + + import boto3 + + # Create SES client + ses = boto3.client('ses') + + response = ses.create_receipt_rule_set( + RuleSetName = 'RULE_SET_NAME', + ) + + print(response) + +Create a Receipt Rule +===================== + +Control your incoming email by adding a receipt rule to an existing receipt rule set. This example shows you how to create a receipt rule that sends incoming messages to an Amazon S3 bucket, but you can also send messages to Amazon SNS and AWS Lambda. To create a receipt rule, provide a rule and the RuleSetName to the `CreateReceiptRule `_ operation. + +Example +------- + +.. code-block:: python + + import boto3 + + # Create SES client + ses = boto3.client('ses') + + response = ses.create_receipt_rule( + RuleSetName = 'RULE_SET_NAME', + Rule = { + 'Name' : 'RULE_NAME', + 'Enabled' : True, + 'TlsPolicy' : 'Optional', + 'Recipients': [ + 'EMAIL_ADDRESS', + ], + 'Actions' : [ + { + 'S3Action' : { + 'BucketName' : 'S3_BUCKET_NAME', + 'ObjectKeyPrefix': 'SES_email' + } + } + ], + } + ) + + print(response) + + + + +Delete a Receipt Rule Set +========================== + +Remove a specified receipt rule set that isn't currently disabled. This also deletes all of the receipt rules it contains. To delete a receipt rule set, provide the RuleSetName to the `DeleteReceiptRuleSet `_ operation. + +Example +------- + +.. code-block:: python + + import boto3 + + # Create SES client + ses = boto3.client('ses') + + response = ses.delete_receipt_rule( + RuleName='RULE_NAME', + RuleSetName='RULE_SET_NAME' + ) + + print(response) + + +Delete a Receipt Rule +===================== + +To delete a specified receipt rule, provide the RuleName and RuleSetName to the `DeleteReceiptRule `_ operation. + +Example +------- + +.. code-block:: python + + import boto3 + + # Create SES client + ses = boto3.client('ses') + + response = ses.delete_receipt_rule_set( + RuleSetName = 'RULE_SET_NAME' + ) + + print(response) + diff --git a/docs/source/guide/ses-template.rst b/docs/source/guide/ses-template.rst new file mode 100644 index 0000000..917a940 --- /dev/null +++ b/docs/source/guide/ses-template.rst @@ -0,0 +1,174 @@ +.. Copyright 2010-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + + This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 + International License (the "License"). You may not use this file except in compliance with the + License. A copy of the License is located at http://creativecommons.org/licenses/by-nc-sa/4.0/. + + 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. + +.. _aws-boto3-ses-template: + +############################################### +Creating Custom Email Templates with Amazon SES +############################################### + +.. meta:: + :description: Use the Amazon SES API to create and use email templates. + :keywords: Amazon SES code examples for Python, create email templates with Python + +Amazon Simple Email Service (SES) enables you to send emails that are personalized for each recipient by using templates. Templates include a subject line and the text and HTML parts of the email body. The subject and body sections can also contain unique values that are personalized for each recipient. + +For more information, see `Sending Personalized Email Using the Amazon SES `__. + + +The following examples show how to: + +* Create an email template using `create_template() `_. +* List all email templates using `list_templates() `_. +* Retrieve an email template using `get_template() `_. +* Update an email template using `update_template() `_. +* Remove an email template using `delete_template() `_. +* Send a templated email using `send_templated_email() `_. + +Prerequisite Tasks +================== + +To set up and run this example, you must first complete these tasks: + +* Configure your AWS credentials, as described in :doc:`quickstart`. + +Create an Email Template +======================== + +To create a template to send personalized email messages, use the `CreateTemplate `_ operation. The template can be used by any account authorized to send messages in the AWS Region to which the template is added. + +.. note:: + SES doesn't validate your HTML, so be sure that `HtmlPart` is valid before sending an email. + +Example +------- + +.. code-block:: python + + import boto3 + + # Create SES client + ses = boto3.client('ses') + + response = ses.create_template( + Template = { + 'TemplateName' : 'TEMPLATE_NAME', + 'SubjectPart' : 'SUBJECT_LINE', + 'TextPart' : 'TEXT_CONTENT', + 'HtmlPart' : 'HTML_CONTENT' + } + ) + + + print(response) + +Get an Email Template +===================== + +To view the content for an existing email template including the subject line, HTML body, and plain text, use the `GetTemplate `_ operation. Only TemplateName is required. + +Example +------- + +.. code-block:: python + + import boto3 + + # Create SES client + ses = boto3.client('ses') + + response = ses.get_template( + TemplateName = 'TEMPLATE_NAME' + ) + + print(response) + +List All Email Templates +======================== + +To retrieve a list of all email templates that are associated with your AWS account in the current AWS Region, use the `ListTemplates `_ operation. + +Example +------- + +.. code-block:: python + + import boto3 + + # Create SES client + ses = boto3.client('ses') + + response = ses.list_templates( + MaxItems=10 + ) + + print(response) + + +Update an Email Template +======================== + +To change the content for a specific email template including the subject line, HTML body, and plain text, use the `UpdateTemplate `_ operation. + +Example +------- + +.. code-block:: python + + import boto3 + + # Create SES client + ses = boto3.client('ses') + + response = ses.update_template( + Template={ + 'TemplateName': 'TEMPLATE_NAME', + 'SubjectPart' : 'SUBJECT_LINE', + 'TextPart' : 'TEXT_CONTENT', + 'HtmlPart' : 'HTML_CONTENT' + } + ) + + print(response) + +Send an Email with a Template +============================= + +To use a template to send an email to recipients, use the `SendTemplatedEmail `__ operation. + + +Example +------- + +.. code-block:: python + + import boto3 + + # Create SES client + ses = boto3.client('ses') + + response = ses.send_templated_email( + Source='EMAIL_ADDRESS', + Destination={ + 'ToAddresses': [ + 'EMAIL_ADDRESS', + ], + 'CcAddresses': [ + 'EMAIL_ADDRESS', + ] + }, + ReplyToAddresses=[ + 'EMAIL_ADDRESS', + ], + Template='TEMPLATE_NAME', + TemplateData='{ \"REPLACEMENT_TAG_NAME\":\"REPLACEMENT_VALUE\" }' + ) + + print(response) \ No newline at end of file diff --git a/docs/source/guide/ses-verify.rst b/docs/source/guide/ses-verify.rst new file mode 100644 index 0000000..f21450d --- /dev/null +++ b/docs/source/guide/ses-verify.rst @@ -0,0 +1,177 @@ +.. Copyright 2010-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + + This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 + International License (the "License"). You may not use this file except in compliance with the + License. A copy of the License is located at http://creativecommons.org/licenses/by-nc-sa/4.0/. + + 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. + +.. _aws-boto3-ses-verify: + +############################################ +Verifying Email Identities in Amazon SES +############################################ + +.. meta:: + :description: Use Amazon SES API to verify email addresses and domains. + :keywords: Amazon SES code examples for Python, approve emails recipients with Python + +When you first start using your Amazon Simple Email Service (SES) account, all senders and recipients must be verified in the same AWS Region that you +will be sending emails to. For more information about sending emails, see `Sending Email with Amazon SES `__. + +The following examples show how to: + +* Verify an email address using `verify_email_identity() `__. +* Verify an email domain using `verify_domain_identity() `__. +* List all email addresses using `list_identities() `__. +* List all email domains using `list_identities() `__. +* Remove an email address using `delete_identity() `__. +* Remove an email domain using `delete_identity() `__. +All the example code for the Amazon Web Services (AWS) SDK for Python is available `here on GitHub `__. + +Prerequisite Tasks +================== + +To set up and run this example, you must first complete these tasks: + +* Configure your AWS credentials, as described in :doc:`quickstart`. + +Verifying Email addresses +========================= +SES can send email only from verified email addresses or domains. By verifying an email address, you demonstrate that you're the owner of that address and want to allow SES to send email from that address. + +When you run the following code example, SES sends an email to the address you specified. When you (or the recipient of the email) click the link in the email, the address is verified. + +To add an email address to your SES account, use the `VerifyEmailIdentity `__ operation. + +Example +------- + +.. code-block:: python + + import boto3 + + # Create SES client + ses = boto3.client('ses') + + response = ses.verify_email_identity( + EmailAddress = 'EMAIL_ADDRESS' + ) + + print(response) + + +Verify an Email Domain +====================== + +SES can send email only from verified email addresses or domains. By verifying a domain, you demonstrate that you're the owner of that domain. When you verify a domain, you allow SES to send email from any address on that domain. + +When you run the following code example, SES provides you with a verification token. You have to add the token to your domain's DNS configuration. For more information, see `Verifying a Domain with Amazon SES `_. + +To add a sending domain to your SES account, use the `VerifyDomainIdentity `_ operation. + +Example +------- + +.. code-block:: python + + mport boto3 + + # Create SES client + ses = boto3.client('ses') + + response = ses.verify_domain_identity( + Domain='DOMAIN_NAME' + ) + + print(response) + +List Email Addresses +==================== + +To retrieve a list of email addresses submitted in the current AWS Region, regardless of verification status, use the `ListIdentities `__ operation. + +Example +------- + +.. code-block:: python + + import boto3 + + # Create SES client + ses = boto3.client('ses') + + response = ses.list_identities( + IdentityType = 'EmailAddress', + MaxItems=10 + ) + + print(response) + +List Email Domains +================== + +To retrieve a list of email domains submitted in the current AWS Region, regardless of verification status use the `ListIdentities `__ operation. + +Example +------- + +.. code-block:: python + + import boto3 + + # Create SES client + ses = boto3.client('ses') + + response = ses.list_identities( + IdentityType = 'Domain', + MaxItems=10 + ) + + print(response) + + + +Delete an Email Address +======================= + +To delete a verified email address from the list of verified identities, use the `DeleteIdentity `__ operation. + +Example +------- + +.. code-block:: python + + import boto3 + + # Create SES client + ses = boto3.client('ses') + + response = ses.delete_identity( + Identity = 'EMAIL_ADDRESS' + ) + + print(response) + +Delete an Email Domain +====================== + +To delete a verified email domain from the list of verified identities, use the `DeleteIdentity `__ operation. + +Example +------- + +.. code-block:: python + + import boto3 + + # Create SES client + ses = boto3.client('ses') + + response = ses.delete_identity( + Identity = 'DOMAIN_NAME' + ) + + print(response) diff --git a/docs/source/guide/sqs-example-dead-letter-queue.rst b/docs/source/guide/sqs-example-dead-letter-queue.rst index fef4970..beef399 100644 --- a/docs/source/guide/sqs-example-dead-letter-queue.rst +++ b/docs/source/guide/sqs-example-dead-letter-queue.rst @@ -28,7 +28,7 @@ to a dead letter queue. Multiple queues can target a single dead letter queue. In this example, Python code is used to route messages to a dead letter queue. The code uses the SDK for Python to use dead letter queues using this method of the AWS.SQS client class: -* `set_queue_attributes `_. +* `set_queue_attributes `_. For more information about Amazon SQS dead letter queues, see `Using Amazon SQS Dead Letter Queues `_ @@ -44,7 +44,7 @@ To set up and run this example, you must first complete these tasks: * Configure your AWS credentials, as described in :doc:`quickstart`. * Create an Amazon SQS queue to serve as a dead letter queue. For an example of creating a queue, see - `Using Queues `_ in *Amazon SQS*. + :doc:`Using Queues ` in *Amazon SQS*. Configure Source Queues ======================= @@ -57,7 +57,7 @@ before they are routed to the dead letter queue. The example below shows how to: * Configure a source queue using - `set_queue_attributes `_. + `set_queue_attributes `_. Example @@ -87,4 +87,4 @@ Example Attributes={ 'RedrivePolicy': json.dumps(redrive_policy) } - ) + ) \ No newline at end of file diff --git a/docs/source/guide/sqs-example-long-polling.rst b/docs/source/guide/sqs-example-long-polling.rst index e17d54e..284380d 100644 --- a/docs/source/guide/sqs-example-long-polling.rst +++ b/docs/source/guide/sqs-example-long-polling.rst @@ -35,11 +35,11 @@ parameter on a message when it is received. In this example, Python code is used to enable long polling. The code uses the AWS SDK for Python to enable long polling using these methods of the AWS.SQS client class: -* `create_queue `_ +* `create_queue `_ -* `set_queue_attributes `_. +* `set_queue_attributes `_. -* `receive_message `_. +* `receive_message `_. For more information about Amazon SQS long polling, see `Long Polling `_ @@ -60,7 +60,7 @@ Enable Long Polling When Creating a Queue The example below shows how to: * Create a queue and enable long polling using - `create_queue `_. + `create_queue `_. Example @@ -88,7 +88,7 @@ Enable Long Polling on an Existing Queue The example below shows how to: * Enable long polling on an existing queue using - `set_queue_attributes `_. + `set_queue_attributes `_. Example @@ -120,7 +120,7 @@ in the *Amazon SQS Developer Guide*. The example below shows how to: * Enable a long poll for message on provided SQS queue using - `receive_message `_. + `receive_message `_. Example diff --git a/docs/source/guide/sqs-example-sending-receiving-msgs.rst b/docs/source/guide/sqs-example-sending-receiving-msgs.rst index 48fb410..bbd8d9e 100644 --- a/docs/source/guide/sqs-example-sending-receiving-msgs.rst +++ b/docs/source/guide/sqs-example-sending-receiving-msgs.rst @@ -22,11 +22,11 @@ The Scenario In this example, Python code is used to send and receive messages. The code uses the AWS SDK for Python to send and receive messages by using these methods of the AWS.SQS client class: -* `send_message `_. +* `send_message `_. -* `receive_message `_. +* `receive_message `_. -* `delete_message `_. +* `delete_message `_. For more information about Amazon SQS messages, see `Sending a Message to an Amazon SQS Queue `_ @@ -43,7 +43,8 @@ To set up and run this example, you must first complete these tasks: * Configure your AWS credentials, as described in :doc:`quickstart`. * Create an Amazon SQS queue. For an example of creating a queue, see - `Using Queues in Amazon SQS `_. + :doc:`Using Queues in Amazon SQS `. + Send a Message to a Queue ========================= @@ -51,7 +52,7 @@ Send a Message to a Queue The example below shows how to: * Send a message to a queue using - `send_message `_. + `send_message `_. Example ------- @@ -98,10 +99,10 @@ Receive and Delete Messages from a Queue The example below shows how to: * Receive a message from a queue using - `receive_message `_. + `receive_message `_. * Delete a message from a queue using - `delete_message `_. + `delete_message `_. Example ------- diff --git a/docs/source/guide/sqs-example-using-queues.rst b/docs/source/guide/sqs-example-using-queues.rst index ae4dc9a..13d7f48 100644 --- a/docs/source/guide/sqs-example-using-queues.rst +++ b/docs/source/guide/sqs-example-using-queues.rst @@ -28,13 +28,13 @@ The Scenario In this example, Python code is used to work with queues. The code uses the AWS SDK for Python to use queues using these methods of the AWS.SQS client class: -* `list_queues `_. +* `list_queues `_. -* `create_queue `_. +* `create_queue `_. -* `get_queue_url `_. +* `get_queue_url `_. -* `delete_queue `_. +* `delete_queue `_. For more information about Amazon SQS messages, see `How Queues Work `_ @@ -55,7 +55,7 @@ List Your Queues The example below shows how to: * List queues using - `list_queues `_. + `list_queues `_. Example ------- @@ -78,7 +78,7 @@ Create a Queue The example below shows how to: * Create a queue using - `create_queue `_. + `create_queue `_. Example ------- @@ -107,7 +107,7 @@ Get the URL for a Queue The example below shows how to: * Get the URL for a queue using - `get_queue_url `_. + `get_queue_url `_. Example ------- @@ -130,7 +130,7 @@ Delete a Queue The example below shows how to: * Delete a queue using - `delete_queue `_. + `delete_queue `_. Example ------- diff --git a/docs/source/guide/sqs-example-visibility-timeout.rst b/docs/source/guide/sqs-example-visibility-timeout.rst index 4049fcf..fa6cf0c 100644 --- a/docs/source/guide/sqs-example-visibility-timeout.rst +++ b/docs/source/guide/sqs-example-visibility-timeout.rst @@ -23,7 +23,7 @@ The Scenario In this example, Python code is used to manage visibility timeout. The code uses the SDK for Python to manage visibility timeout by using this method of the AWS.SQS client class: -* `set_queue_attributes `_. +* `set_queue_attributes `_. For more information about Amazon SQS visibility timeout, see `Visibility Timeout `_ @@ -39,10 +39,10 @@ To set up and run this example, you must first complete these tasks: * Configure your AWS credentials, as described in :doc:`quickstart`. * Create an Amazon SQS queue. For an example of creating a queue, see - `Using Queues in Amazon SQS `_. + :doc:`Using Queues in Amazon SQS `. * Send a message to the queue. For an example of sending a message to a queue, see - `Sending and Receiving Messages in Amazon SQS `_. + :doc:`Sending and Receiving Messages in Amazon SQS `. Change the Visibility Timeout ============================= @@ -50,7 +50,7 @@ Change the Visibility Timeout The example below shows how to: * Change the visibility timeout using - `set_queue_attributes `_. + `set_queue_attributes `_. Example ------- @@ -83,6 +83,6 @@ The example below shows how to: sqs.change_message_visibility( QueueUrl=queue_url, ReceiptHandle=receipt_handle, - VisibilityTimeout=36000 + VisibilityTimeout=20 ) print('Received and changed visibility timeout of message: %s' % message) diff --git a/docs/source/guide/upgrading.rst b/docs/source/guide/upgrading.rst index 05e543d..dca2a1e 100644 --- a/docs/source/guide/upgrading.rst +++ b/docs/source/guide/upgrading.rst @@ -4,9 +4,117 @@ Upgrading Notes Notes to refer to when upgrading ``boto3`` versions. +1.9.0 +----- + +What Changed +~~~~~~~~~~~~ + +The boto3 event system was changed to emit events based on the service id +rather than the endpoint prefix or service name. + +Why Was The Change Was Made +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This was done to handle several issues that were becoming increasingly +problematic: + +* Services changing their endpoint prefix would cause some registered events to + no longer fire (but not all). +* New services that launch using an endpoint that another service is using + won't be able to be uniquely selected. There are a number of cases of this + already. +* Services whose client name and endpoint prefix differed would require two + different strings if you want to register against all events. + +How Do I Know If I'm Impacted +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Any users relying on registering an event against one service impacting other +services are impacted. You can consult the following table to see if you are +impacted. If you are registering an event using one of the event parts in the +leftmost column with the intention of impacting an unintended target service +in the rightmost column, then you are impacted and will need to update. + ++----------------------+-------------------------+---------------------------------------------------+ +| Event Part | Intended Target Service | Unintended Target Services | ++----------------------+-------------------------+---------------------------------------------------+ +| rds | rds | neptune | ++----------------------+-------------------------+---------------------------------------------------+ +| autoscaling | autoscaling | application-autoscaling, autoscaling-plans | ++----------------------+-------------------------+---------------------------------------------------+ +| kinesisvideo | kinesisvideo | kinesis-video-media, kinesis-video-archived-media | ++----------------------+-------------------------+---------------------------------------------------+ +| elasticloadbalancing | elb | elbv2 | ++----------------------+-------------------------+---------------------------------------------------+ + +For example, if you are registering an event against +``before-call.elasticloadbalancing`` expecting it to run when making calls with +an ``elbv2`` client, you will be impacted. + +If you are registering an event against one of the services in the Unintended +Targets column, you may be impacted if you were relying on those events not +firing. + +If you are registering events using ``*`` in the service place, or are +registering against any service not in this table, you will not need a code +change. In many cases the actual event name will have changed, but for services +without shared endpoints we do the work of translating the event name at +registration and emission time. In future versions of boto3 we will remove +this translation, so you may wish to update your code anyway. + +How Do I Update My Code +~~~~~~~~~~~~~~~~~~~~~~~ + +You will need to look at the events you are registering against and determine +which services you wish to impact with your handler. If you only wish to +impact the intended target service (as defined in the above table), then you +don't need to change the event. If you wish to impact another service in +addition to the intended target service, you will need to register a new event +using that service's event name. Similarly, if you wish to impact another +service instead you will simply need to change the event you are registered +against. + +To get the new event name, consult this table: + ++------------------------------+----------------------+------------------------------+ +| Service | Old Event Name | New Event Name | ++------------------------------+----------------------+------------------------------+ +| application-autoscaling | autoscaling | application-auto-scaling | ++------------------------------+----------------------+------------------------------+ +| autoscaling-plans | autoscaling | auto-scaling-plans | ++------------------------------+----------------------+------------------------------+ +| elbv2 | elasticloadbalancing | elastic-load-balancing | ++------------------------------+----------------------+------------------------------+ +| kinesis-video-archived-media | kinesisvideo | kinesis-video-archived-media | ++------------------------------+----------------------+------------------------------+ +| kinesis-video-media | kinesisvideo | kinesis-video-media | ++------------------------------+----------------------+------------------------------+ +| neptune | rds | neptune | ++------------------------------+----------------------+------------------------------+ + +Additionally, you can get the new event name in code like so:: + + import boto3 + + client = boto3.client('elbv2') + service_event_name = client.meta.service_model.service_id.hyphenize() + +Armed with the service event name, simply replace the old service name in the +handler with the new service event name. If you were registering an event +against ``before-call.autoscaling`` intending to impact ``autoscaling-plans`` +for example, you would instead register against +``before-call.auto-scaling-plans``. + +If you are registering an event against one of the services in the Unintended +Targets column, you will now see those events getting fired where previously +they were not. While this is enabling that expected behavior, this still +represents a change in actual behavior. You should not need to update your +code, but you should test to ensure that you are seeing the behavior you want. + 1.4.2 -===== +----- * The ``use_threads`` option was added to :py:class:`boto3.s3.transfer.TransferConfig`. @@ -16,7 +124,7 @@ Notes to refer to when upgrading ``boto3`` versions. 1.4.0 -===== +----- * Logic from the `s3transfer `_ package was ported into the ``boto3.s3.transfer`` module. In upgrading to this diff --git a/setup.cfg b/setup.cfg index 7a81559..7ce9398 100644 --- a/setup.cfg +++ b/setup.cfg @@ -3,6 +3,6 @@ universal = 1 [metadata] requires-dist = - botocore>=1.10.55,<1.11.0 + botocore>=1.12.86,<1.13.0 jmespath>=0.7.1,<1.0.0 s3transfer>=0.1.10,<0.2.0 diff --git a/setup.py b/setup.py index 93e582f..3ae0d99 100644 --- a/setup.py +++ b/setup.py @@ -14,7 +14,7 @@ VERSION_RE = re.compile(r'''__version__ = ['"]([0-9.]+)['"]''') requires = [ - 'botocore>=1.10.55,<1.11.0', + 'botocore>=1.12.86,<1.13.0', 'jmespath>=0.7.1,<1.0.0', 's3transfer>=0.1.10,<0.2.0' ] @@ -56,5 +56,6 @@ setup( 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', ], ) diff --git a/tests/functional/dynamodb/test_stubber_conditions.py b/tests/functional/dynamodb/test_stubber_conditions.py new file mode 100644 index 0000000..9781654 --- /dev/null +++ b/tests/functional/dynamodb/test_stubber_conditions.py @@ -0,0 +1,63 @@ +# 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 botocore.stub import Stubber + +import boto3 +from boto3.dynamodb.conditions import Attr, Key +from tests import unittest + + +class TestStubberSupportsFilterExpressions(unittest.TestCase): + maxDiff = None + + def setUp(self): + self.resource = boto3.resource('dynamodb', 'us-east-1') + + def test_table_query_can_be_stubbed_with_expressions(self): + table = self.resource.Table('mytable') + key_expr = Key('mykey').eq('testkey') + filter_expr = Attr('myattr').eq('foo') & ( + Attr('myattr2').lte('buzz') | Attr('myattr2').gte('fizz') + ) + + stubber = Stubber(table.meta.client) + stubber.add_response('query', dict(Items=list()), expected_params=dict( + TableName='mytable', + KeyConditionExpression=key_expr, + FilterExpression=filter_expr + )) + + with stubber: + response = table.query(KeyConditionExpression=key_expr, + FilterExpression=filter_expr) + + self.assertEqual(list(), response['Items']) + stubber.assert_no_pending_responses() + + def test_table_scan_can_be_stubbed_with_expressions(self): + table = self.resource.Table('mytable') + filter_expr = Attr('myattr').eq('foo') & ( + Attr('myattr2').lte('buzz') | Attr('myattr2').gte('fizz') + ) + + stubber = Stubber(table.meta.client) + stubber.add_response('scan', dict(Items=list()), expected_params=dict( + TableName='mytable', + FilterExpression=filter_expr + )) + + with stubber: + response = table.scan(FilterExpression=filter_expr) + + self.assertEqual(list(), response['Items']) + stubber.assert_no_pending_responses() diff --git a/tests/functional/test_dynamodb.py b/tests/functional/test_dynamodb.py index 64c6b9c..45bd038 100644 --- a/tests/functional/test_dynamodb.py +++ b/tests/functional/test_dynamodb.py @@ -13,7 +13,7 @@ import json from tests import unittest, mock -from botocore.vendored import requests +from botocore.awsrequest import AWSResponse from boto3.session import Session from boto3.dynamodb.conditions import Attr @@ -21,8 +21,7 @@ from boto3.dynamodb.conditions import Attr class TestDynamoDB(unittest.TestCase): def setUp(self): - self.http_response = requests.models.Response() - self.http_response.status_code = 200 + self.http_response = AWSResponse(None, 200, {}, None) self.parsed_response = {} self.make_request_patch = mock.patch( 'botocore.endpoint.Endpoint.make_request') diff --git a/tests/unit/docs/__init__.py b/tests/unit/docs/__init__.py index 1c6604b..3ae6c05 100644 --- a/tests/unit/docs/__init__.py +++ b/tests/unit/docs/__init__.py @@ -72,7 +72,8 @@ class BaseDocsTest(unittest.TestCase): 'endpointPrefix': 'myservice', 'signatureVersion': 'v4', 'serviceFullName': 'AWS MyService', - 'protocol': 'query' + 'protocol': 'query', + 'serviceId': 'MyService', }, 'operations': { 'SampleOperation': { diff --git a/tests/unit/dynamodb/test_conditions.py b/tests/unit/dynamodb/test_conditions.py index b5cbae3..b2b8514 100644 --- a/tests/unit/dynamodb/test_conditions.py +++ b/tests/unit/dynamodb/test_conditions.py @@ -10,6 +10,8 @@ # 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. +import copy + from tests import unittest from boto3.exceptions import DynamoDBOperationNotSupportedError @@ -76,6 +78,58 @@ class TestK(unittest.TestCase): self.assertEqual(self.attr.between(self.value, self.value2), Between(self.attr, self.value, self.value2)) + def test_attribute_equality(self): + attr_copy = copy.deepcopy(self.attr) + self.assertIsNot(self.attr, attr_copy) + self.assertEqual(self.attr, attr_copy) + + def test_eq_equality(self): + attr_copy = copy.deepcopy(self.attr) + comp = self.attr.eq(self.value) + comp2 = attr_copy.eq(self.value) + self.assertEqual(comp, comp2) + + def test_eq_inequality(self): + attr_copy = copy.deepcopy(self.attr) + self.assertNotEqual(self.attr.eq(self.value), + attr_copy.eq(self.value2)) + + def test_lt_equality(self): + attr_copy = copy.deepcopy(self.attr) + comp = self.attr.lt(self.value) + comp2 = attr_copy.lt(self.value) + self.assertEqual(comp, comp2) + + def test_lte_equality(self): + attr_copy = copy.deepcopy(self.attr) + comp = self.attr.lte(self.value) + comp2 = attr_copy.lte(self.value) + self.assertEqual(comp, comp2) + + def test_gt_equality(self): + attr_copy = copy.deepcopy(self.attr) + comp = self.attr.gt(self.value) + comp2 = attr_copy.gt(self.value) + self.assertEqual(comp, comp2) + + def test_gte_equality(self): + attr_copy = copy.deepcopy(self.attr) + comp = self.attr.gte(self.value) + comp2 = attr_copy.gte(self.value) + self.assertEqual(comp, comp2) + + def test_begins_with_equality(self): + attr_copy = copy.deepcopy(self.attr) + comp = self.attr.begins_with(self.value) + comp2 = attr_copy.begins_with(self.value) + self.assertEqual(comp, comp2) + + def test_between_equality(self): + attr_copy = copy.deepcopy(self.attr) + comp = self.attr.between(self.value, self.value2) + comp2 = attr_copy.between(self.value, self.value2) + self.assertEqual(comp, comp2) + class TestA(TestK): def setUp(self): @@ -109,6 +163,48 @@ class TestA(TestK): self.assertEqual(self.attr.attribute_type(self.value), AttributeType(self.attr, self.value)) + def test_ne_equality(self): + attr_copy = copy.deepcopy(self.attr) + comp = self.attr.ne(self.value) + comp2 = attr_copy.ne(self.value) + self.assertEqual(comp, comp2) + + def test_is_in_equality(self): + attr_copy = copy.deepcopy(self.attr) + comp = self.attr.is_in([self.value]) + comp2 = attr_copy.is_in([self.value]) + self.assertEqual(comp, comp2) + + def test_exists_equality(self): + attr_copy = copy.deepcopy(self.attr) + comp = self.attr.exists() + comp2 = attr_copy.exists() + self.assertEqual(comp, comp2) + + def test_not_exists_equality(self): + attr_copy = copy.deepcopy(self.attr) + comp = self.attr.not_exists() + comp2 = attr_copy.not_exists() + self.assertEqual(comp, comp2) + + def test_contains_equality(self): + attr_copy = copy.deepcopy(self.attr) + comp = self.attr.contains(self.value) + comp2 = attr_copy.contains(self.value) + self.assertEqual(comp, comp2) + + def test_size_equality(self): + attr_copy = copy.deepcopy(self.attr) + comp = self.attr.size() + comp2 = attr_copy.size() + self.assertEqual(comp, comp2) + + def test_attribute_type_equality(self): + attr_copy = copy.deepcopy(self.attr) + comp = self.attr.attribute_type(self.value) + comp2 = attr_copy.attribute_type(self.value) + self.assertEqual(comp, comp2) + class TestConditions(unittest.TestCase): def setUp(self):