diff --git a/CHANGELOG.rst b/CHANGELOG.rst index e1fb01881c..5f4ab3326a 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,6 +1,33 @@ Changelog ========= +0.0.11 - 2015-03-24 +------------------- + +* feature:Resources: Add Amazon EC2 support for ClassicLink actions + and add a delete action to EC2 ``Volume`` resources. +* feature:Resources: Add a ``load`` operation and ``user`` reference + to AWS IAM's ``CurrentUser`` resource. + (`issue 72 `__, +* feature:Resources: Add resources for AWS IAM managed policies. + (`issue 71 `__) +* feature:Botocore: Update to Botocore 0.97.0 + + * Add new Amazon EC2 waiters. + * Add support for Amazon S3 cross region replication. + * Fix an issue where empty config values could not be specified for + Amazon S3's bucket notifications. + (`botocore issue 495 `__) + * Update Amazon CloudWatch Logs to the latest API. + * Update Amazon Elastic Transcoder to the latest API. + * Update AWS CloudTrail to the latest API. + * Fix bug where explicitly passed ``profile_name`` will now override + any access and secret keys set in environment variables. + (`botocore issue 486 `__) + * Add ``endpoint_url`` to ``client.meta``. + * Better error messages for invalid regions. + * Fix creating clients with unicode service name. + 0.0.10 - 2015-03-05 ------------------- diff --git a/boto3/__init__.py b/boto3/__init__.py index d7c0c5eeda..4647ec4b7b 100644 --- a/boto3/__init__.py +++ b/boto3/__init__.py @@ -17,7 +17,7 @@ __author__ = 'Amazon Web Services' -__version__ = '0.0.10' +__version__ = '0.0.11' # The default Boto3 session; autoloaded when needed. diff --git a/boto3/data/resources/ec2-2014-10-01.resources.json b/boto3/data/resources/ec2-2014-10-01.resources.json index 0d860e7747..933b89c339 100644 --- a/boto3/data/resources/ec2-2014-10-01.resources.json +++ b/boto3/data/resources/ec2-2014-10-01.resources.json @@ -601,6 +601,14 @@ ] } }, + "AttachClassicLinkVpc": { + "request": { + "operation": "AttachClassicLinkVpc", + "params": [ + { "target": "InstanceId", "source": "identifier", "name": "Id" } + ] + } + }, "ConsoleOutput": { "request": { "operation": "GetConsoleOutput", @@ -647,6 +655,14 @@ ] } }, + "DetachClassicLinkVpc": { + "request": { + "operation": "DetachClassicLinkVpc", + "params": [ + { "target": "InstanceId", "source": "identifier", "name": "Id" } + ] + } + }, "DetachVolume": { "request": { "operation": "DetachVolume", @@ -1769,6 +1785,14 @@ ] } }, + "Delete": { + "request": { + "operation": "DeleteVolume", + "params": [ + { "target": "VolumeId", "source": "identifier", "name": "Id" } + ] + } + }, "DescribeAttribute": { "request": { "operation": "DescribeVolumeAttribute", @@ -1855,6 +1879,14 @@ ] } }, + "AttachClassicLinkInstance": { + "request": { + "operation": "AttachClassicLinkVpc", + "params": [ + { "target": "VpcId", "source": "identifier", "name": "Id" } + ] + } + }, "AttachInternetGateway": { "request": { "operation": "AttachInternetGateway", @@ -1954,6 +1986,14 @@ ] } }, + "DetachClassicLinkInstance": { + "request": { + "operation": "DetachClassicLinkVpc", + "params": [ + { "target": "VpcId", "source": "identifier", "name": "Id" } + ] + } + }, "DetachInternetGateway": { "request": { "operation": "DetachInternetGateway", @@ -1962,6 +2002,22 @@ ] } }, + "DisableClassicLink": { + "request": { + "operation": "DisableVpcClassicLink", + "params": [ + { "target": "VpcId", "source": "identifier", "name": "Id" } + ] + } + }, + "EnableClassicLink": { + "request": { + "operation": "EnableVpcClassicLink", + "params": [ + { "target": "VpcId", "source": "identifier", "name": "Id" } + ] + } + }, "ModifyAttribute": { "request": { "operation": "ModifyVpcAttribute", diff --git a/boto3/data/resources/iam-2010-05-08.resources.json b/boto3/data/resources/iam-2010-05-08.resources.json index 04047bd707..4170235cbc 100644 --- a/boto3/data/resources/iam-2010-05-08.resources.json +++ b/boto3/data/resources/iam-2010-05-08.resources.json @@ -72,6 +72,15 @@ "path": "Certificate" } }, + "CreatePolicy": { + "request": { "operation": "CreatePolicy" }, + "resource": { + "type": "Policy", + "identifiers": [ + { "target": "Arn", "source": "response", "path": "Policy.Arn" } + ] + } + }, "CreateUser": { "request": { "operation": "CreateUser" }, "resource": { @@ -128,6 +137,14 @@ ] } }, + "Policy": { + "resource": { + "type": "Policy", + "identifiers": [ + { "target": "PolicyArn", "source": "input" } + ] + } + }, "Role": { "resource": { "type": "Role", @@ -180,6 +197,16 @@ "path": "Groups[]" } }, + "Policies": { + "request": { "operation": "ListPolicies" }, + "resource": { + "type": "Policy", + "identifiers": [ + { "target": "Arn", "source": "response", "path": "Policies[].Arn" } + ], + "path": "Policies[]" + } + }, "InstanceProfiles": { "request": { "operation": "ListInstanceProfiles" }, "resource": { @@ -393,6 +420,23 @@ } }, "CurrentUser": { + "shape": "User", + "load": { + "request": { + "operation": "GetUser" + }, + "path": "User" + }, + "has": { + "User": { + "resource": { + "type": "User", + "identifiers": [ + { "target": "Name", "source": "data", "path": "UserName" } + ] + } + } + }, "hasMany": { "AccessKeys": { "request": { "operation": "ListAccessKeys" }, @@ -455,6 +499,14 @@ ] } }, + "AttachPolicy": { + "request": { + "operation": "AttachGroupPolicy", + "params": [ + { "target": "GroupName", "source": "identifier", "name": "Name" } + ] + } + }, "Create": { "request": { "operation": "CreateGroup", @@ -493,6 +545,14 @@ ] } }, + "DetachPolicy": { + "request": { + "operation": "DetachGroupPolicy", + "params": [ + { "target": "GroupName", "source": "identifier", "name": "Name" } + ] + } + }, "RemoveUser": { "request": { "operation": "RemoveUserFromGroup", @@ -528,6 +588,20 @@ } }, "hasMany": { + "AttachedPolicies": { + "request": { + "operation": "ListAttachedGroupPolicies", + "params": [ + { "target": "GroupName", "source": "identifier", "name": "Name" } + ] + }, + "resource": { + "type": "Policy", + "identifiers": [ + { "target": "Arn", "source": "response", "path": "AttachedPolicies[].PolicyArn" } + ] + } + }, "Policies": { "request": { "operation": "ListGroupPolicies", @@ -781,6 +855,209 @@ } } }, + "Policy": { + "identifiers": [ + { "name": "Arn", + "memberName": "PolicyArn" } + ], + "shape": "Policy", + "load": { + "request": { + "operation": "GetPolicy", + "params": [ + { "target": "PolicyArn", "source": "identifier", "name": "Arn" } + ] + }, + "path": "Policy" + }, + "actions": { + "AttachGroup": { + "request": { + "operation": "AttachGroupPolicy", + "params": [ + { "target": "PolicyArn", "source": "identifier", "name": "Arn" } + ] + } + }, + "AttachRole": { + "request": { + "operation": "AttachRolePolicy", + "params": [ + { "target": "PolicyArn", "source": "identifier", "name": "Arn" } + ] + } + }, + "AttachUser": { + "request": { + "operation": "AttachUserPolicy", + "params": [ + { "target": "PolicyArn", "source": "identifier", "name": "Arn" } + ] + } + }, + "CreateVersion": { + "request": { + "operation": "CreatePolicyVersion", + "params": [ + { "target": "PolicyArn", "source": "identifier", "name": "Arn" } + ] + }, + "resource": { + "type": "PolicyVersion", + "identifiers": [ + { "target": "Arn", "source": "identifier", "name": "Arn" }, + { "target": "VersionId", "source": "response", "path": "PolicyVersion.VersionId" } + ] + } + }, + "Delete": { + "request": { + "operation": "DeletePolicy", + "params": [ + { "target": "PolicyArn", "source": "identifier", "name": "Arn" } + ] + } + }, + "DetachGroup": { + "request": { + "operation": "DetachGroupPolicy", + "params": [ + { "target": "PolicyArn", "source": "identifier", "name": "Arn" } + ] + } + }, + "DetachRole": { + "request": { + "operation": "DetachRolePolicy", + "params": [ + { "target": "PolicyArn", "source": "identifier", "name": "Arn" } + ] + } + }, + "DetachUser": { + "request": { + "operation": "DetachUserPolicy", + "params": [ + { "target": "PolicyArn", "source": "identifier", "name": "Arn" } + ] + } + } + }, + "has": { + "DefaultVersion": { + "resource": { + "type": "PolicyVersion", + "identifiers": [ + { "target": "Arn", "source": "identifier", "name": "Arn" }, + { "target": "VersionId", "source": "data", "path": "DefaultVersionId" } + ] + } + } + }, + "hasMany": { + "Versions": { + "request": { + "operation": "ListPolicyVersions", + "params": [ + { "target": "PolicyArn", "source": "identifier", "name": "Arn" } + ] + }, + "resource": { + "type": "PolicyVersion", + "identifiers": [ + { "target": "Arn", "source": "identifier", "name": "Arn" }, + { "target": "VersionId", "source": "response", "path": "Versions[].VersionId" } + ], + "path": "Versions[]" + } + }, + "AttachedGroups": { + "request": { + "operation": "ListEntitiesForPolicy", + "params": [ + { "target": "PolicyArn", "source": "identifier", "name": "Arn" }, + { "target": "EntityFilter", "source": "string", "value": "Group" } + ] + }, + "resource": { + "type": "Group", + "identifiers": [ + { "target": "Name", "source": "response", "path": "PolicyGroups[].GroupName" } + ] + }, + "path": "PolicyGroups[]" + }, + "AttachedRoles": { + "request": { + "operation": "ListEntitiesForPolicy", + "params": [ + { "target": "PolicyArn", "source": "identifier", "name": "Arn" }, + { "target": "EntityFilter", "source": "string", "value": "Role" } + ] + }, + "resource": { + "type": "Role", + "identifiers": [ + { "target": "Name", "source": "response", "path": "PolicyRoles[].RoleName" } + ] + }, + "path": "PolicyRoles[]" + }, + "AttachedUsers": { + "request": { + "operation": "ListEntitiesForPolicy", + "params": [ + { "target": "PolicyArn", "source": "identifier", "name": "Arn" }, + { "target": "EntityFilter", "source": "string", "value": "User" } + ] + }, + "resource": { + "type": "User", + "identifiers": [ + { "target": "Name", "source": "response", "path": "PolicyUsers[].UserName" } + ] + }, + "path": "PolicyUsers[]" + } + } + }, + "PolicyVersion": { + "identifiers": [ + { "name": "Arn" }, + { "name": "VersionId" } + ], + "shape": "PolicyVersion", + "load": { + "request": { + "operation": "GetPolicyVersion", + "params": [ + { "target": "PolicyArn", "source": "identifier", "name": "Arn" }, + { "target": "VersionId", "source": "identifier", "name": "VersionId" } + ] + }, + "path": "PolicyVersion" + }, + "actions": { + "Delete": { + "request": { + "operation": "DeletePolicyVersion", + "params": [ + { "target": "PolicyArn", "source": "identifier", "name": "Arn" }, + { "target": "VersionId", "source": "identifier", "name": "VersionId" } + ] + } + }, + "SetAsDefault": { + "request": { + "operation": "SetDefaultPolicyVersion", + "params": [ + { "target": "PolicyArn", "source": "identifier", "name": "Arn" }, + { "target": "VersionId", "source": "identifier", "name": "VersionId" } + ] + } + } + } + }, "Role": { "identifiers": [ { @@ -799,6 +1076,14 @@ "path": "Role" }, "actions": { + "AttachPolicy": { + "request": { + "operation": "AttachRolePolicy", + "params": [ + { "target": "RoleName", "source": "identifier", "name": "Name" } + ] + } + }, "Delete": { "request": { "operation": "DeleteRole", @@ -806,6 +1091,14 @@ { "target": "RoleName", "source": "identifier", "name": "Name" } ] } + }, + "DetachPolicy": { + "request": { + "operation": "DetachRolePolicy", + "params": [ + { "target": "RoleName", "source": "identifier", "name": "Name" } + ] + } } }, "has": { @@ -828,6 +1121,20 @@ } }, "hasMany": { + "AttachedPolicies": { + "request": { + "operation": "ListAttachedRolePolicies", + "params": [ + { "target": "RoleName", "source": "identifier", "name": "Name" } + ] + }, + "resource": { + "type": "Policy", + "identifiers": [ + { "target": "Arn", "source": "response", "path": "AttachedPolicies[].PolicyArn" } + ] + } + }, "InstanceProfiles": { "request": { "operation": "ListInstanceProfilesForRole", @@ -1065,6 +1372,14 @@ ] } }, + "AttachPolicy": { + "request": { + "operation": "AttachUserPolicy", + "params": [ + { "target": "UserName", "source": "identifier", "name": "Name" } + ] + } + }, "Create": { "request": { "operation": "CreateUser", @@ -1135,6 +1450,14 @@ ] } }, + "DetachPolicy": { + "request": { + "operation": "DetachUserPolicy", + "params": [ + { "target": "UserName", "source": "identifier", "name": "Name" } + ] + } + }, "EnableMfa": { "request": { "operation": "EnableMFADevice", @@ -1220,6 +1543,20 @@ } }, "hasMany": { + "AttachedPolicies": { + "request": { + "operation": "ListAttachedUserPolicies", + "params": [ + { "target": "UserName", "source": "identifier", "name": "Name" } + ] + }, + "resource": { + "type": "Policy", + "identifiers": [ + { "target": "Arn", "source": "response", "path": "AttachedPolicies[].PolicyArn" } + ] + } + }, "AccessKeys": { "request": { "operation": "ListAccessKeys", diff --git a/setup.py b/setup.py index 6327aa92f3..e91b0fcd44 100644 --- a/setup.py +++ b/setup.py @@ -26,7 +26,7 @@ def get_version(): ] requires = [ - 'botocore==0.94.0', + 'botocore==0.97.0', 'bcdoc==0.12.2', 'jmespath==0.6.1', ]