New upstream version 1.4.2
This commit is contained in:
parent
76cdadddd4
commit
e22827795c
7
.changes/1.4.2.json
Normal file
7
.changes/1.4.2.json
Normal file
|
@ -0,0 +1,7 @@
|
|||
[
|
||||
{
|
||||
"category": "ec2",
|
||||
"description": "Update client to latest version",
|
||||
"type": "feature"
|
||||
}
|
||||
]
|
|
@ -2,6 +2,12 @@
|
|||
CHANGELOG
|
||||
=========
|
||||
|
||||
1.4.2
|
||||
=====
|
||||
|
||||
* feature:ec2: Update client to latest version
|
||||
|
||||
|
||||
1.4.1
|
||||
=====
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ from boto3.session import Session
|
|||
|
||||
|
||||
__author__ = 'Amazon Web Services'
|
||||
__version__ = '1.4.1'
|
||||
__version__ = '1.4.2'
|
||||
|
||||
|
||||
# The default Boto3 session; autoloaded when needed.
|
||||
|
|
2582
boto3/data/ec2/2016-11-15/resources-1.json
Normal file
2582
boto3/data/ec2/2016-11-15/resources-1.json
Normal file
|
@ -0,0 +1,2582 @@
|
|||
{
|
||||
"service": {
|
||||
"actions": {
|
||||
"CreateDhcpOptions": {
|
||||
"request": { "operation": "CreateDhcpOptions" },
|
||||
"resource": {
|
||||
"type": "DhcpOptions",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "DhcpOptions.DhcpOptionsId" }
|
||||
],
|
||||
"path": "DhcpOptions"
|
||||
}
|
||||
},
|
||||
"CreateInstances": {
|
||||
"request": { "operation": "RunInstances" },
|
||||
"resource": {
|
||||
"type": "Instance",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "Instances[].InstanceId" }
|
||||
],
|
||||
"path": "Instances[]"
|
||||
}
|
||||
},
|
||||
"CreateInternetGateway": {
|
||||
"request": { "operation": "CreateInternetGateway" },
|
||||
"resource": {
|
||||
"type": "InternetGateway",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "InternetGateway.InternetGatewayId" }
|
||||
],
|
||||
"path": "InternetGateway"
|
||||
}
|
||||
},
|
||||
"CreateKeyPair": {
|
||||
"request": { "operation": "CreateKeyPair" },
|
||||
"resource": {
|
||||
"type": "KeyPair",
|
||||
"identifiers": [
|
||||
{ "target": "Name", "source": "response", "path": "KeyName" }
|
||||
],
|
||||
"path": "@"
|
||||
}
|
||||
},
|
||||
"CreateNetworkAcl": {
|
||||
"request": { "operation": "CreateNetworkAcl" },
|
||||
"resource": {
|
||||
"type": "NetworkAcl",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "NetworkAcl.NetworkAclId" }
|
||||
],
|
||||
"path": "NetworkAcl"
|
||||
}
|
||||
},
|
||||
"CreateNetworkInterface": {
|
||||
"request": { "operation": "CreateNetworkInterface" },
|
||||
"resource": {
|
||||
"type": "NetworkInterface",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "NetworkInterface.NetworkInterfaceId" }
|
||||
],
|
||||
"path": "NetworkInterface"
|
||||
}
|
||||
},
|
||||
"CreatePlacementGroup": {
|
||||
"request": { "operation": "CreatePlacementGroup" },
|
||||
"resource": {
|
||||
"type": "PlacementGroup",
|
||||
"identifiers": [
|
||||
{ "target": "Name", "source": "requestParameter", "path": "GroupName" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"CreateRouteTable": {
|
||||
"request": { "operation": "CreateRouteTable" },
|
||||
"resource": {
|
||||
"type": "RouteTable",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "RouteTable.RouteTableId" }
|
||||
],
|
||||
"path": "RouteTable"
|
||||
}
|
||||
},
|
||||
"CreateSecurityGroup": {
|
||||
"request": { "operation": "CreateSecurityGroup" },
|
||||
"resource": {
|
||||
"type": "SecurityGroup",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "GroupId" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"CreateSnapshot": {
|
||||
"request": { "operation": "CreateSnapshot" },
|
||||
"resource": {
|
||||
"type": "Snapshot",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "SnapshotId" }
|
||||
],
|
||||
"path": "@"
|
||||
}
|
||||
},
|
||||
"CreateSubnet": {
|
||||
"request": { "operation": "CreateSubnet" },
|
||||
"resource": {
|
||||
"type": "Subnet",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "Subnet.SubnetId" }
|
||||
],
|
||||
"path": "Subnet"
|
||||
}
|
||||
},
|
||||
"CreateTags": {
|
||||
"request": { "operation": "CreateTags" }
|
||||
},
|
||||
"CreateVolume": {
|
||||
"request": { "operation": "CreateVolume" },
|
||||
"resource": {
|
||||
"type": "Volume",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "VolumeId" }
|
||||
],
|
||||
"path": "@"
|
||||
}
|
||||
},
|
||||
"CreateVpc": {
|
||||
"request": { "operation": "CreateVpc" },
|
||||
"resource": {
|
||||
"type": "Vpc",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "Vpc.VpcId" }
|
||||
],
|
||||
"path": "Vpc"
|
||||
}
|
||||
},
|
||||
"CreateVpcPeeringConnection": {
|
||||
"request": { "operation": "CreateVpcPeeringConnection" },
|
||||
"resource": {
|
||||
"type": "VpcPeeringConnection",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "VpcPeeringConnection.VpcPeeringConnectionId" }
|
||||
],
|
||||
"path": "VpcPeeringConnection"
|
||||
}
|
||||
},
|
||||
"DisassociateRouteTable": {
|
||||
"request": { "operation": "DisassociateRouteTable" }
|
||||
},
|
||||
"ImportKeyPair": {
|
||||
"request": { "operation": "ImportKeyPair" },
|
||||
"resource": {
|
||||
"type": "KeyPairInfo",
|
||||
"identifiers": [
|
||||
{ "target": "Name", "source": "response", "path": "KeyName" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"RegisterImage": {
|
||||
"request": { "operation": "RegisterImage" },
|
||||
"resource": {
|
||||
"type": "Image",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "ImageId" }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"has": {
|
||||
"DhcpOptions": {
|
||||
"resource": {
|
||||
"type": "DhcpOptions",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "input" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Image": {
|
||||
"resource": {
|
||||
"type": "Image",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "input" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Instance": {
|
||||
"resource": {
|
||||
"type": "Instance",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "input" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"InternetGateway": {
|
||||
"resource": {
|
||||
"type": "InternetGateway",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "input" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"KeyPair": {
|
||||
"resource": {
|
||||
"type": "KeyPairInfo",
|
||||
"identifiers": [
|
||||
{ "target": "Name", "source": "input" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"NetworkAcl": {
|
||||
"resource": {
|
||||
"type": "NetworkAcl",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "input" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"NetworkInterface": {
|
||||
"resource": {
|
||||
"type": "NetworkInterface",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "input" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"PlacementGroup": {
|
||||
"resource": {
|
||||
"type": "PlacementGroup",
|
||||
"identifiers": [
|
||||
{ "target": "Name", "source": "input" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"RouteTable": {
|
||||
"resource": {
|
||||
"type": "RouteTable",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "input" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"RouteTableAssociation": {
|
||||
"resource": {
|
||||
"type": "RouteTableAssociation",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "input" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"SecurityGroup": {
|
||||
"resource": {
|
||||
"type": "SecurityGroup",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "input" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Snapshot": {
|
||||
"resource": {
|
||||
"type": "Snapshot",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "input" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Subnet": {
|
||||
"resource": {
|
||||
"type": "Subnet",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "input" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Volume": {
|
||||
"resource": {
|
||||
"type": "Volume",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "input" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Vpc": {
|
||||
"resource": {
|
||||
"type": "Vpc",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "input" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"VpcPeeringConnection": {
|
||||
"resource": {
|
||||
"type": "VpcPeeringConnection",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "input" }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"hasMany": {
|
||||
"ClassicAddresses": {
|
||||
"request": {
|
||||
"operation": "DescribeAddresses",
|
||||
"params": [
|
||||
{ "target": "Filters[0].Name", "source": "string", "value": "domain" },
|
||||
{ "target": "Filters[0].Values[0]", "source": "string", "value": "standard" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "ClassicAddress",
|
||||
"identifiers": [
|
||||
{ "target": "PublicIp", "source": "response", "path": "Addresses[].PublicIp" }
|
||||
],
|
||||
"path": "Addresses[]"
|
||||
}
|
||||
},
|
||||
"DhcpOptionsSets": {
|
||||
"request": { "operation": "DescribeDhcpOptions" },
|
||||
"resource": {
|
||||
"type": "DhcpOptions",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "DhcpOptions[].DhcpOptionsId" }
|
||||
],
|
||||
"path": "DhcpOptions[]"
|
||||
}
|
||||
},
|
||||
"Images": {
|
||||
"request": { "operation": "DescribeImages" },
|
||||
"resource": {
|
||||
"type": "Image",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "Images[].ImageId" }
|
||||
],
|
||||
"path": "Images[]"
|
||||
}
|
||||
},
|
||||
"Instances": {
|
||||
"request": { "operation": "DescribeInstances" },
|
||||
"resource": {
|
||||
"type": "Instance",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "Reservations[].Instances[].InstanceId" }
|
||||
],
|
||||
"path": "Reservations[].Instances[]"
|
||||
}
|
||||
},
|
||||
"InternetGateways": {
|
||||
"request": { "operation": "DescribeInternetGateways" },
|
||||
"resource": {
|
||||
"type": "InternetGateway",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "InternetGateways[].InternetGatewayId" }
|
||||
],
|
||||
"path": "InternetGateways[]"
|
||||
}
|
||||
},
|
||||
"KeyPairs": {
|
||||
"request": { "operation": "DescribeKeyPairs" },
|
||||
"resource": {
|
||||
"type": "KeyPairInfo",
|
||||
"identifiers": [
|
||||
{ "target": "Name", "source": "response", "path": "KeyPairs[].KeyName" }
|
||||
],
|
||||
"path": "KeyPairs[]"
|
||||
}
|
||||
},
|
||||
"NetworkAcls": {
|
||||
"request": { "operation": "DescribeNetworkAcls" },
|
||||
"resource": {
|
||||
"type": "NetworkAcl",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "NetworkAcls[].NetworkAclId" }
|
||||
],
|
||||
"path": "NetworkAcls[]"
|
||||
}
|
||||
},
|
||||
"NetworkInterfaces": {
|
||||
"request": { "operation": "DescribeNetworkInterfaces" },
|
||||
"resource": {
|
||||
"type": "NetworkInterface",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "NetworkInterfaces[].NetworkInterfaceId" }
|
||||
],
|
||||
"path": "NetworkInterfaces[]"
|
||||
}
|
||||
},
|
||||
"PlacementGroups": {
|
||||
"request": { "operation": "DescribePlacementGroups" },
|
||||
"resource": {
|
||||
"type": "PlacementGroup",
|
||||
"identifiers": [
|
||||
{ "target": "Name", "source": "response", "path": "PlacementGroups[].GroupName" }
|
||||
],
|
||||
"path": "PlacementGroups[]"
|
||||
}
|
||||
},
|
||||
"RouteTables": {
|
||||
"request": { "operation": "DescribeRouteTables" },
|
||||
"resource": {
|
||||
"type": "RouteTable",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "RouteTables[].RouteTableId" }
|
||||
],
|
||||
"path": "RouteTables[]"
|
||||
}
|
||||
},
|
||||
"SecurityGroups": {
|
||||
"request": { "operation": "DescribeSecurityGroups" },
|
||||
"resource": {
|
||||
"type": "SecurityGroup",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "SecurityGroups[].GroupId" }
|
||||
],
|
||||
"path": "SecurityGroups[]"
|
||||
}
|
||||
},
|
||||
"Snapshots": {
|
||||
"request": { "operation": "DescribeSnapshots" },
|
||||
"resource": {
|
||||
"type": "Snapshot",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "Snapshots[].SnapshotId" }
|
||||
],
|
||||
"path": "Snapshots[]"
|
||||
}
|
||||
},
|
||||
"Subnets": {
|
||||
"request": { "operation": "DescribeSubnets" },
|
||||
"resource": {
|
||||
"type": "Subnet",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "Subnets[].SubnetId" }
|
||||
],
|
||||
"path": "Subnets[]"
|
||||
}
|
||||
},
|
||||
"Volumes": {
|
||||
"request": { "operation": "DescribeVolumes" },
|
||||
"resource": {
|
||||
"type": "Volume",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "Volumes[].VolumeId" }
|
||||
],
|
||||
"path": "Volumes[]"
|
||||
}
|
||||
},
|
||||
"VpcAddresses": {
|
||||
"request": {
|
||||
"operation": "DescribeAddresses",
|
||||
"params": [
|
||||
{ "target": "Filters[0].Name", "source": "string", "value": "domain" },
|
||||
{ "target": "Filters[0].Values[0]", "source": "string", "value": "vpc" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "VpcAddress",
|
||||
"identifiers": [
|
||||
{ "target": "AllocationId", "source": "response", "path": "Addresses[].AllocationId" }
|
||||
],
|
||||
"path": "Addresses[]"
|
||||
}
|
||||
},
|
||||
"VpcPeeringConnections": {
|
||||
"request": { "operation": "DescribeVpcPeeringConnections" },
|
||||
"resource": {
|
||||
"type": "VpcPeeringConnection",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "VpcPeeringConnections[].VpcPeeringConnectionId" }
|
||||
],
|
||||
"path": "VpcPeeringConnections[]"
|
||||
}
|
||||
},
|
||||
"Vpcs": {
|
||||
"request": { "operation": "DescribeVpcs" },
|
||||
"resource": {
|
||||
"type": "Vpc",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "Vpcs[].VpcId" }
|
||||
],
|
||||
"path": "Vpcs[]"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"resources": {
|
||||
"ClassicAddress": {
|
||||
"identifiers": [
|
||||
{
|
||||
"name": "PublicIp"
|
||||
}
|
||||
],
|
||||
"shape": "Address",
|
||||
"load": {
|
||||
"request": {
|
||||
"operation": "DescribeAddresses",
|
||||
"params": [
|
||||
{ "target": "PublicIps[]", "source": "identifier", "name": "PublicIp" }
|
||||
]
|
||||
},
|
||||
"path": "Addresses[0]"
|
||||
},
|
||||
"actions": {
|
||||
"Associate": {
|
||||
"request": {
|
||||
"operation": "AssociateAddress",
|
||||
"params": [
|
||||
{ "target": "PublicIp", "source": "identifier", "name": "PublicIp" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Disassociate": {
|
||||
"request": {
|
||||
"operation": "DisassociateAddress",
|
||||
"params": [
|
||||
{ "target": "PublicIp", "source": "data", "path": "PublicIp" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Release": {
|
||||
"request": {
|
||||
"operation": "ReleaseAddress",
|
||||
"params": [
|
||||
{ "target": "PublicIp", "source": "data", "path": "PublicIp" }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"DhcpOptions": {
|
||||
"identifiers": [
|
||||
{
|
||||
"name": "Id",
|
||||
"memberName": "DhcpOptionsId"
|
||||
}
|
||||
],
|
||||
"shape": "DhcpOptions",
|
||||
"load": {
|
||||
"request": {
|
||||
"operation": "DescribeDhcpOptions",
|
||||
"params": [
|
||||
{ "target": "DhcpOptionsIds[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"path": "DhcpOptions[0]"
|
||||
},
|
||||
"actions": {
|
||||
"AssociateWithVpc": {
|
||||
"request": {
|
||||
"operation": "AssociateDhcpOptions",
|
||||
"params": [
|
||||
{ "target": "DhcpOptionsId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"CreateTags": {
|
||||
"request": {
|
||||
"operation": "CreateTags",
|
||||
"params": [
|
||||
{ "target": "Resources[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "Tag",
|
||||
"identifiers": [
|
||||
{ "target": "ResourceId", "source": "identifier", "name": "Id" },
|
||||
{ "target": "Key", "source": "requestParameter", "path": "Tags[].Key" },
|
||||
{ "target": "Value", "source": "requestParameter", "path": "Tags[].Value" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Delete": {
|
||||
"request": {
|
||||
"operation": "DeleteDhcpOptions",
|
||||
"params": [
|
||||
{ "target": "DhcpOptionsId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Image": {
|
||||
"identifiers": [
|
||||
{
|
||||
"name": "Id",
|
||||
"memberName": "ImageId"
|
||||
}
|
||||
],
|
||||
"shape": "Image",
|
||||
"load": {
|
||||
"request": {
|
||||
"operation": "DescribeImages",
|
||||
"params": [
|
||||
{ "target": "ImageIds[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"path": "Images[0]"
|
||||
},
|
||||
"actions": {
|
||||
"CreateTags": {
|
||||
"request": {
|
||||
"operation": "CreateTags",
|
||||
"params": [
|
||||
{ "target": "Resources[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "Tag",
|
||||
"identifiers": [
|
||||
{ "target": "ResourceId", "source": "identifier", "name": "Id" },
|
||||
{ "target": "Key", "source": "requestParameter", "path": "Tags[].Key" },
|
||||
{ "target": "Value", "source": "requestParameter", "path": "Tags[].Value" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Deregister": {
|
||||
"request": {
|
||||
"operation": "DeregisterImage",
|
||||
"params": [
|
||||
{ "target": "ImageId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"DescribeAttribute": {
|
||||
"request": {
|
||||
"operation": "DescribeImageAttribute",
|
||||
"params": [
|
||||
{ "target": "ImageId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"ModifyAttribute": {
|
||||
"request": {
|
||||
"operation": "ModifyImageAttribute",
|
||||
"params": [
|
||||
{ "target": "ImageId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"ResetAttribute": {
|
||||
"request": {
|
||||
"operation": "ResetImageAttribute",
|
||||
"params": [
|
||||
{ "target": "ImageId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"waiters": {
|
||||
"Exists": {
|
||||
"waiterName": "ImageExists",
|
||||
"params": [
|
||||
{ "target": "ImageIds[]", "source": "identifier", "name": "Id" }
|
||||
],
|
||||
"path": "Images[0]"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Instance": {
|
||||
"identifiers": [
|
||||
{
|
||||
"name": "Id",
|
||||
"memberName": "InstanceId"
|
||||
}
|
||||
],
|
||||
"shape": "Instance",
|
||||
"load": {
|
||||
"request": {
|
||||
"operation": "DescribeInstances",
|
||||
"params": [
|
||||
{ "target": "InstanceIds[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"path": "Reservations[0].Instances[0]"
|
||||
},
|
||||
"actions": {
|
||||
"AttachClassicLinkVpc": {
|
||||
"request": {
|
||||
"operation": "AttachClassicLinkVpc",
|
||||
"params": [
|
||||
{ "target": "InstanceId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"AttachVolume": {
|
||||
"request": {
|
||||
"operation": "AttachVolume",
|
||||
"params": [
|
||||
{ "target": "InstanceId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"ConsoleOutput": {
|
||||
"request": {
|
||||
"operation": "GetConsoleOutput",
|
||||
"params": [
|
||||
{ "target": "InstanceId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"CreateImage": {
|
||||
"request": {
|
||||
"operation": "CreateImage",
|
||||
"params": [
|
||||
{ "target": "InstanceId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "Image",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "ImageId" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"CreateTags": {
|
||||
"request": {
|
||||
"operation": "CreateTags",
|
||||
"params": [
|
||||
{ "target": "Resources[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "Tag",
|
||||
"identifiers": [
|
||||
{ "target": "ResourceId", "source": "identifier", "name": "Id" },
|
||||
{ "target": "Key", "source": "requestParameter", "path": "Tags[].Key" },
|
||||
{ "target": "Value", "source": "requestParameter", "path": "Tags[].Value" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"DescribeAttribute": {
|
||||
"request": {
|
||||
"operation": "DescribeInstanceAttribute",
|
||||
"params": [
|
||||
{ "target": "InstanceId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"DetachClassicLinkVpc": {
|
||||
"request": {
|
||||
"operation": "DetachClassicLinkVpc",
|
||||
"params": [
|
||||
{ "target": "InstanceId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"DetachVolume": {
|
||||
"request": {
|
||||
"operation": "DetachVolume",
|
||||
"params": [
|
||||
{ "target": "InstanceId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"ModifyAttribute": {
|
||||
"request": {
|
||||
"operation": "ModifyInstanceAttribute",
|
||||
"params": [
|
||||
{ "target": "InstanceId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Monitor": {
|
||||
"request": {
|
||||
"operation": "MonitorInstances",
|
||||
"params": [
|
||||
{ "target": "InstanceIds[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"PasswordData": {
|
||||
"request": {
|
||||
"operation": "GetPasswordData",
|
||||
"params": [
|
||||
{ "target": "InstanceId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Reboot": {
|
||||
"request": {
|
||||
"operation": "RebootInstances",
|
||||
"params": [
|
||||
{ "target": "InstanceIds[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"ReportStatus": {
|
||||
"request": {
|
||||
"operation": "ReportInstanceStatus",
|
||||
"params": [
|
||||
{ "target": "Instances[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"ResetAttribute": {
|
||||
"request": {
|
||||
"operation": "ResetInstanceAttribute",
|
||||
"params": [
|
||||
{ "target": "InstanceId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"ResetKernel": {
|
||||
"request": {
|
||||
"operation": "ResetInstanceAttribute",
|
||||
"params": [
|
||||
{ "target": "InstanceId", "source": "identifier", "name": "Id" },
|
||||
{ "target": "Attribute", "source": "string", "value": "kernel" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"ResetRamdisk": {
|
||||
"request": {
|
||||
"operation": "ResetInstanceAttribute",
|
||||
"params": [
|
||||
{ "target": "InstanceId", "source": "identifier", "name": "Id" },
|
||||
{ "target": "Attribute", "source": "string", "value": "ramdisk" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"ResetSourceDestCheck": {
|
||||
"request": {
|
||||
"operation": "ResetInstanceAttribute",
|
||||
"params": [
|
||||
{ "target": "InstanceId", "source": "identifier", "name": "Id" },
|
||||
{ "target": "Attribute", "source": "string", "value": "sourceDestCheck" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Start": {
|
||||
"request": {
|
||||
"operation": "StartInstances",
|
||||
"params": [
|
||||
{ "target": "InstanceIds[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Stop": {
|
||||
"request": {
|
||||
"operation": "StopInstances",
|
||||
"params": [
|
||||
{ "target": "InstanceIds[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Terminate": {
|
||||
"request": {
|
||||
"operation": "TerminateInstances",
|
||||
"params": [
|
||||
{ "target": "InstanceIds[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Unmonitor": {
|
||||
"request": {
|
||||
"operation": "UnmonitorInstances",
|
||||
"params": [
|
||||
{ "target": "InstanceIds[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"batchActions": {
|
||||
"CreateTags": {
|
||||
"request": {
|
||||
"operation": "CreateTags",
|
||||
"params": [
|
||||
{ "target": "Resources[]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Monitor": {
|
||||
"request": {
|
||||
"operation": "MonitorInstances",
|
||||
"params": [
|
||||
{ "target": "InstanceIds[]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Reboot": {
|
||||
"request": {
|
||||
"operation": "RebootInstances",
|
||||
"params": [
|
||||
{ "target": "InstanceIds[]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Start": {
|
||||
"request": {
|
||||
"operation": "StartInstances",
|
||||
"params": [
|
||||
{ "target": "InstanceIds[]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Stop": {
|
||||
"request": {
|
||||
"operation": "StopInstances",
|
||||
"params": [
|
||||
{ "target": "InstanceIds[]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Terminate": {
|
||||
"request": {
|
||||
"operation": "TerminateInstances",
|
||||
"params": [
|
||||
{ "target": "InstanceIds[]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Unmonitor": {
|
||||
"request": {
|
||||
"operation": "UnmonitorInstances",
|
||||
"params": [
|
||||
{ "target": "InstanceIds[]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"waiters": {
|
||||
"Exists": {
|
||||
"waiterName": "InstanceExists",
|
||||
"params": [
|
||||
{ "target": "InstanceIds[]", "source": "identifier", "name": "Id" }
|
||||
],
|
||||
"path": "Reservations[0].Instances[0]"
|
||||
},
|
||||
"Running": {
|
||||
"waiterName": "InstanceRunning",
|
||||
"params": [
|
||||
{ "target": "InstanceIds[]", "source": "identifier", "name": "Id" }
|
||||
],
|
||||
"path": "Reservations[0].Instances[0]"
|
||||
},
|
||||
"Stopped": {
|
||||
"waiterName": "InstanceStopped",
|
||||
"params": [
|
||||
{ "target": "InstanceIds[]", "source": "identifier", "name": "Id" }
|
||||
],
|
||||
"path": "Reservations[0].Instances[0]"
|
||||
},
|
||||
"Terminated": {
|
||||
"waiterName": "InstanceTerminated",
|
||||
"params": [
|
||||
{ "target": "InstanceIds[]", "source": "identifier", "name": "Id" }
|
||||
],
|
||||
"path": "Reservations[0].Instances[0]"
|
||||
}
|
||||
},
|
||||
"has": {
|
||||
"ClassicAddress": {
|
||||
"resource": {
|
||||
"type": "ClassicAddress",
|
||||
"identifiers": [
|
||||
{ "target": "PublicIp", "source": "data", "path": "PublicIpAddress" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Image": {
|
||||
"resource": {
|
||||
"type": "Image",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "data", "path": "ImageId" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"KeyPair": {
|
||||
"resource": {
|
||||
"type": "KeyPairInfo",
|
||||
"identifiers": [
|
||||
{ "target": "Name", "source": "data", "path": "KeyName" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"NetworkInterfaces": {
|
||||
"resource": {
|
||||
"type": "NetworkInterface",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "data", "path": "NetworkInterfaces[].NetworkInterfaceId" }
|
||||
],
|
||||
"path": "NetworkInterfaces[]"
|
||||
}
|
||||
},
|
||||
"PlacementGroup": {
|
||||
"resource": {
|
||||
"type": "PlacementGroup",
|
||||
"identifiers": [
|
||||
{ "target": "Name", "source": "data", "path": "Placement.GroupName" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Subnet": {
|
||||
"resource": {
|
||||
"type": "Subnet",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "data", "path": "SubnetId" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Vpc": {
|
||||
"resource": {
|
||||
"type": "Vpc",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "data", "path": "VpcId" }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"hasMany": {
|
||||
"Volumes": {
|
||||
"request": {
|
||||
"operation": "DescribeVolumes",
|
||||
"params": [
|
||||
{ "target": "Filters[0].Name", "source": "string", "value": "attachment.instance-id" },
|
||||
{ "target": "Filters[0].Values[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "Volume",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "Volumes[].VolumeId" }
|
||||
],
|
||||
"path": "Volumes[]"
|
||||
}
|
||||
},
|
||||
"VpcAddresses": {
|
||||
"request": {
|
||||
"operation": "DescribeAddresses",
|
||||
"params": [
|
||||
{ "target": "Filters[0].Name", "source": "string", "value": "instance-id" },
|
||||
{ "target": "Filters[0].Values[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "VpcAddress",
|
||||
"identifiers": [
|
||||
{ "target": "AllocationId", "source": "response", "path": "Addresses[].AllocationId" }
|
||||
],
|
||||
"path": "Addresses[]"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"InternetGateway": {
|
||||
"identifiers": [
|
||||
{
|
||||
"name": "Id",
|
||||
"memberName": "InternetGatewayId"
|
||||
}
|
||||
],
|
||||
"shape": "InternetGateway",
|
||||
"load": {
|
||||
"request": {
|
||||
"operation": "DescribeInternetGateways",
|
||||
"params": [
|
||||
{ "target": "InternetGatewayIds[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"path": "InternetGateways[0]"
|
||||
},
|
||||
"actions": {
|
||||
"AttachToVpc": {
|
||||
"request": {
|
||||
"operation": "AttachInternetGateway",
|
||||
"params": [
|
||||
{ "target": "InternetGatewayId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"CreateTags": {
|
||||
"request": {
|
||||
"operation": "CreateTags",
|
||||
"params": [
|
||||
{ "target": "Resources[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "Tag",
|
||||
"identifiers": [
|
||||
{ "target": "ResourceId", "source": "identifier", "name": "Id" },
|
||||
{ "target": "Key", "source": "requestParameter", "path": "Tags[].Key" },
|
||||
{ "target": "Value", "source": "requestParameter", "path": "Tags[].Value" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Delete": {
|
||||
"request": {
|
||||
"operation": "DeleteInternetGateway",
|
||||
"params": [
|
||||
{ "target": "InternetGatewayId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"DetachFromVpc": {
|
||||
"request": {
|
||||
"operation": "DetachInternetGateway",
|
||||
"params": [
|
||||
{ "target": "InternetGatewayId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"KeyPair": {
|
||||
"identifiers": [
|
||||
{
|
||||
"name": "Name",
|
||||
"memberName": "KeyName"
|
||||
}
|
||||
],
|
||||
"shape": "KeyPair",
|
||||
"actions": {
|
||||
"Delete": {
|
||||
"request": {
|
||||
"operation": "DeleteKeyPair",
|
||||
"params": [
|
||||
{ "target": "KeyName", "source": "identifier", "name": "Name" }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"KeyPairInfo": {
|
||||
"identifiers": [
|
||||
{
|
||||
"name": "Name",
|
||||
"memberName": "KeyName"
|
||||
}
|
||||
],
|
||||
"shape": "KeyPairInfo",
|
||||
"load": {
|
||||
"request": {
|
||||
"operation": "DescribeKeyPairs",
|
||||
"params": [
|
||||
{ "target": "KeyNames[0]", "source": "identifier", "name": "Name" }
|
||||
]
|
||||
},
|
||||
"path": "KeyPairs[0]"
|
||||
},
|
||||
"actions": {
|
||||
"Delete": {
|
||||
"request": {
|
||||
"operation": "DeleteKeyPair",
|
||||
"params": [
|
||||
{ "target": "KeyName", "source": "identifier", "name": "Name" }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"NetworkAcl": {
|
||||
"identifiers": [
|
||||
{
|
||||
"name": "Id",
|
||||
"memberName": "NetworkAclId"
|
||||
}
|
||||
],
|
||||
"shape": "NetworkAcl",
|
||||
"load": {
|
||||
"request": {
|
||||
"operation": "DescribeNetworkAcls",
|
||||
"params": [
|
||||
{ "target": "NetworkAclIds[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"path": "NetworkAcls[0]"
|
||||
},
|
||||
"actions": {
|
||||
"CreateEntry": {
|
||||
"request": {
|
||||
"operation": "CreateNetworkAclEntry",
|
||||
"params": [
|
||||
{ "target": "NetworkAclId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"CreateTags": {
|
||||
"request": {
|
||||
"operation": "CreateTags",
|
||||
"params": [
|
||||
{ "target": "Resources[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "Tag",
|
||||
"identifiers": [
|
||||
{ "target": "ResourceId", "source": "identifier", "name": "Id" },
|
||||
{ "target": "Key", "source": "requestParameter", "path": "Tags[].Key" },
|
||||
{ "target": "Value", "source": "requestParameter", "path": "Tags[].Value" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Delete": {
|
||||
"request": {
|
||||
"operation": "DeleteNetworkAcl",
|
||||
"params": [
|
||||
{ "target": "NetworkAclId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"DeleteEntry": {
|
||||
"request": {
|
||||
"operation": "DeleteNetworkAclEntry",
|
||||
"params": [
|
||||
{ "target": "NetworkAclId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"ReplaceAssociation": {
|
||||
"request": {
|
||||
"operation": "ReplaceNetworkAclAssociation",
|
||||
"params": [
|
||||
{ "target": "NetworkAclId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"ReplaceEntry": {
|
||||
"request": {
|
||||
"operation": "ReplaceNetworkAclEntry",
|
||||
"params": [
|
||||
{ "target": "NetworkAclId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"has": {
|
||||
"Vpc": {
|
||||
"resource": {
|
||||
"type": "Vpc",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "data", "path": "VpcId" }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"NetworkInterface": {
|
||||
"identifiers": [
|
||||
{
|
||||
"name": "Id",
|
||||
"memberName": "NetworkInterfaceId"
|
||||
}
|
||||
],
|
||||
"shape": "NetworkInterface",
|
||||
"load": {
|
||||
"request": {
|
||||
"operation": "DescribeNetworkInterfaces",
|
||||
"params": [
|
||||
{ "target": "NetworkInterfaceIds[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"path": "NetworkInterfaces[0]"
|
||||
},
|
||||
"actions": {
|
||||
"AssignPrivateIpAddresses": {
|
||||
"request": {
|
||||
"operation": "AssignPrivateIpAddresses",
|
||||
"params": [
|
||||
{ "target": "NetworkInterfaceId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Attach": {
|
||||
"request": {
|
||||
"operation": "AttachNetworkInterface",
|
||||
"params": [
|
||||
{ "target": "NetworkInterfaceId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"CreateTags": {
|
||||
"request": {
|
||||
"operation": "CreateTags",
|
||||
"params": [
|
||||
{ "target": "Resources[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "Tag",
|
||||
"identifiers": [
|
||||
{ "target": "ResourceId", "source": "identifier", "name": "Id" },
|
||||
{ "target": "Key", "source": "requestParameter", "path": "Tags[].Key" },
|
||||
{ "target": "Value", "source": "requestParameter", "path": "Tags[].Value" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Delete": {
|
||||
"request": {
|
||||
"operation": "DeleteNetworkInterface",
|
||||
"params": [
|
||||
{ "target": "NetworkInterfaceId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"DescribeAttribute": {
|
||||
"request": {
|
||||
"operation": "DescribeNetworkInterfaceAttribute",
|
||||
"params": [
|
||||
{ "target": "NetworkInterfaceId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Detach": {
|
||||
"request": {
|
||||
"operation": "DetachNetworkInterface",
|
||||
"params": [
|
||||
{ "target": "AttachmentId", "source": "data", "path": "Attachment.AttachmentId" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"ModifyAttribute": {
|
||||
"request": {
|
||||
"operation": "ModifyNetworkInterfaceAttribute",
|
||||
"params": [
|
||||
{ "target": "NetworkInterfaceId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"ResetAttribute": {
|
||||
"request": {
|
||||
"operation": "ResetNetworkInterfaceAttribute",
|
||||
"params": [
|
||||
{ "target": "NetworkInterfaceId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"UnassignPrivateIpAddresses": {
|
||||
"request": {
|
||||
"operation": "UnassignPrivateIpAddresses",
|
||||
"params": [
|
||||
{ "target": "NetworkInterfaceId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"has": {
|
||||
"Association": {
|
||||
"resource": {
|
||||
"type": "NetworkInterfaceAssociation",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "data", "path": "Association.AssociationId" }
|
||||
],
|
||||
"path": "Association"
|
||||
}
|
||||
},
|
||||
"Subnet": {
|
||||
"resource": {
|
||||
"type": "Subnet",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "data", "path": "SubnetId" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Vpc": {
|
||||
"resource": {
|
||||
"type": "Vpc",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "data", "path": "VpcId" }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"NetworkInterfaceAssociation": {
|
||||
"identifiers": [
|
||||
{
|
||||
"name": "Id"
|
||||
}
|
||||
],
|
||||
"shape": "InstanceNetworkInterfaceAssociation",
|
||||
"load": {
|
||||
"request": {
|
||||
"operation": "DescribeNetworkInterfaces",
|
||||
"params": [
|
||||
{ "target": "Filters[0].Name", "source": "string", "value": "association.association-id" },
|
||||
{ "target": "Filters[0].Values[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"path": "NetworkInterfaces[0].Association"
|
||||
},
|
||||
"actions": {
|
||||
"Delete": {
|
||||
"request": {
|
||||
"operation": "DisassociateAddress",
|
||||
"params": [
|
||||
{ "target": "AssociationId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"has": {
|
||||
"Address": {
|
||||
"resource": {
|
||||
"type": "VpcAddress",
|
||||
"identifiers": [
|
||||
{ "target": "AllocationId", "source": "data", "path": "AllocationId" }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"PlacementGroup": {
|
||||
"identifiers": [
|
||||
{
|
||||
"name": "Name",
|
||||
"memberName": "GroupName"
|
||||
}
|
||||
],
|
||||
"shape": "PlacementGroup",
|
||||
"load": {
|
||||
"request": {
|
||||
"operation": "DescribePlacementGroups",
|
||||
"params": [
|
||||
{ "target": "GroupNames[0]", "source": "identifier", "name": "Name" }
|
||||
]
|
||||
},
|
||||
"path": "PlacementGroups[0]"
|
||||
},
|
||||
"actions": {
|
||||
"Delete": {
|
||||
"request": {
|
||||
"operation": "DeletePlacementGroup",
|
||||
"params": [
|
||||
{ "target": "GroupName", "source": "identifier", "name": "Name" }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"hasMany": {
|
||||
"Instances": {
|
||||
"request": {
|
||||
"operation": "DescribeInstances",
|
||||
"params": [
|
||||
{ "target": "Filters[0].Name", "source": "string", "value": "placement-group-name" },
|
||||
{ "target": "Filters[0].Values[0]", "source": "identifier", "name": "Name" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "Instance",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "Reservations[].Instances[].InstanceId" }
|
||||
],
|
||||
"path": "Reservations[].Instances[]"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Route": {
|
||||
"identifiers": [
|
||||
{ "name": "RouteTableId" },
|
||||
{
|
||||
"name": "DestinationCidrBlock",
|
||||
"memberName": "DestinationCidrBlock"
|
||||
}
|
||||
],
|
||||
"shape": "Route",
|
||||
"actions": {
|
||||
"Delete": {
|
||||
"request": {
|
||||
"operation": "DeleteRoute",
|
||||
"params": [
|
||||
{ "target": "RouteTableId", "source": "identifier", "name": "RouteTableId" },
|
||||
{ "target": "DestinationCidrBlock", "source": "identifier", "name": "DestinationCidrBlock" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Replace": {
|
||||
"request": {
|
||||
"operation": "ReplaceRoute",
|
||||
"params": [
|
||||
{ "target": "RouteTableId", "source": "identifier", "name": "RouteTableId" },
|
||||
{ "target": "DestinationCidrBlock", "source": "identifier", "name": "DestinationCidrBlock" }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"has": {
|
||||
"RouteTable": {
|
||||
"resource": {
|
||||
"type": "RouteTable",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "identifier", "name": "RouteTableId" }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"RouteTable": {
|
||||
"identifiers": [
|
||||
{
|
||||
"name": "Id",
|
||||
"memberName": "RouteTableId"
|
||||
}
|
||||
],
|
||||
"shape": "RouteTable",
|
||||
"load": {
|
||||
"request": {
|
||||
"operation": "DescribeRouteTables",
|
||||
"params": [
|
||||
{ "target": "RouteTableIds[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"path": "RouteTables[0]"
|
||||
},
|
||||
"actions": {
|
||||
"AssociateWithSubnet": {
|
||||
"request": {
|
||||
"operation": "AssociateRouteTable",
|
||||
"params": [
|
||||
{ "target": "RouteTableId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "RouteTableAssociation",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "AssociationId" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"CreateRoute": {
|
||||
"request": {
|
||||
"operation": "CreateRoute",
|
||||
"params": [
|
||||
{ "target": "RouteTableId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "Route",
|
||||
"identifiers": [
|
||||
{ "target": "RouteTableId", "source": "identifier", "name": "Id" },
|
||||
{ "target": "DestinationCidrBlock", "source": "requestParameter", "path": "DestinationCidrBlock" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"CreateTags": {
|
||||
"request": {
|
||||
"operation": "CreateTags",
|
||||
"params": [
|
||||
{ "target": "Resources[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "Tag",
|
||||
"identifiers": [
|
||||
{ "target": "ResourceId", "source": "identifier", "name": "Id" },
|
||||
{ "target": "Key", "source": "requestParameter", "path": "Tags[].Key" },
|
||||
{ "target": "Value", "source": "requestParameter", "path": "Tags[].Value" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Delete": {
|
||||
"request": {
|
||||
"operation": "DeleteRouteTable",
|
||||
"params": [
|
||||
{ "target": "RouteTableId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"has": {
|
||||
"Associations": {
|
||||
"resource": {
|
||||
"type": "RouteTableAssociation",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "data", "path": "Associations[].RouteTableAssociationId" }
|
||||
],
|
||||
"path": "Associations[]"
|
||||
}
|
||||
},
|
||||
"Routes": {
|
||||
"resource": {
|
||||
"type": "Route",
|
||||
"identifiers": [
|
||||
{ "target": "RouteTableId", "source": "identifier", "name": "Id" },
|
||||
{ "target": "DestinationCidrBlock", "source": "data", "path": "Routes[].DestinationCidrBlock" }
|
||||
],
|
||||
"path": "Routes[]"
|
||||
}
|
||||
},
|
||||
"Vpc": {
|
||||
"resource": {
|
||||
"type": "Vpc",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "data", "path": "VpcId" }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"RouteTableAssociation": {
|
||||
"identifiers": [
|
||||
{
|
||||
"name": "Id",
|
||||
"memberName": "RouteTableAssociationId"
|
||||
}
|
||||
],
|
||||
"shape": "RouteTableAssociation",
|
||||
"actions": {
|
||||
"Delete": {
|
||||
"request": {
|
||||
"operation": "DisassociateRouteTable",
|
||||
"params": [
|
||||
{ "target": "AssociationId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"ReplaceSubnet": {
|
||||
"request": {
|
||||
"operation": "ReplaceRouteTableAssociation",
|
||||
"params": [
|
||||
{ "target": "AssociationId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "RouteTableAssociation",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "NewAssociationId" }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"has": {
|
||||
"RouteTable": {
|
||||
"resource": {
|
||||
"type": "RouteTable",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "data", "path": "RouteTableId" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Subnet": {
|
||||
"resource": {
|
||||
"type": "Subnet",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "data", "path": "SubnetId" }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"SecurityGroup": {
|
||||
"identifiers": [
|
||||
{
|
||||
"name": "Id",
|
||||
"memberName": "GroupId"
|
||||
}
|
||||
],
|
||||
"shape": "SecurityGroup",
|
||||
"load": {
|
||||
"request": {
|
||||
"operation": "DescribeSecurityGroups",
|
||||
"params": [
|
||||
{ "target": "GroupIds[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"path": "SecurityGroups[0]"
|
||||
},
|
||||
"actions": {
|
||||
"AuthorizeEgress": {
|
||||
"request": {
|
||||
"operation": "AuthorizeSecurityGroupEgress",
|
||||
"params": [
|
||||
{ "target": "GroupId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"AuthorizeIngress": {
|
||||
"request": {
|
||||
"operation": "AuthorizeSecurityGroupIngress",
|
||||
"params": [
|
||||
{ "target": "GroupId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"CreateTags": {
|
||||
"request": {
|
||||
"operation": "CreateTags",
|
||||
"params": [
|
||||
{ "target": "Resources[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "Tag",
|
||||
"identifiers": [
|
||||
{ "target": "ResourceId", "source": "identifier", "name": "Id" },
|
||||
{ "target": "Key", "source": "requestParameter", "path": "Tags[].Key" },
|
||||
{ "target": "Value", "source": "requestParameter", "path": "Tags[].Value" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Delete": {
|
||||
"request": {
|
||||
"operation": "DeleteSecurityGroup",
|
||||
"params": [
|
||||
{ "target": "GroupId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"RevokeEgress": {
|
||||
"request": {
|
||||
"operation": "RevokeSecurityGroupEgress",
|
||||
"params": [
|
||||
{ "target": "GroupId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"RevokeIngress": {
|
||||
"request": {
|
||||
"operation": "RevokeSecurityGroupIngress",
|
||||
"params": [
|
||||
{ "target": "GroupId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Snapshot": {
|
||||
"identifiers": [
|
||||
{
|
||||
"name": "Id",
|
||||
"memberName": "SnapshotId"
|
||||
}
|
||||
],
|
||||
"shape": "Snapshot",
|
||||
"load": {
|
||||
"request": {
|
||||
"operation": "DescribeSnapshots",
|
||||
"params": [
|
||||
{ "target": "SnapshotIds[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"path": "Snapshots[0]"
|
||||
},
|
||||
"actions": {
|
||||
"Copy": {
|
||||
"request": {
|
||||
"operation": "CopySnapshot",
|
||||
"params": [
|
||||
{ "target": "SourceSnapshotId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"CreateTags": {
|
||||
"request": {
|
||||
"operation": "CreateTags",
|
||||
"params": [
|
||||
{ "target": "Resources[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "Tag",
|
||||
"identifiers": [
|
||||
{ "target": "ResourceId", "source": "identifier", "name": "Id" },
|
||||
{ "target": "Key", "source": "requestParameter", "path": "Tags[].Key" },
|
||||
{ "target": "Value", "source": "requestParameter", "path": "Tags[].Value" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Delete": {
|
||||
"request": {
|
||||
"operation": "DeleteSnapshot",
|
||||
"params": [
|
||||
{ "target": "SnapshotId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"DescribeAttribute": {
|
||||
"request": {
|
||||
"operation": "DescribeSnapshotAttribute",
|
||||
"params": [
|
||||
{ "target": "SnapshotId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"ModifyAttribute": {
|
||||
"request": {
|
||||
"operation": "ModifySnapshotAttribute",
|
||||
"params": [
|
||||
{ "target": "SnapshotId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"ResetAttribute": {
|
||||
"request": {
|
||||
"operation": "ResetSnapshotAttribute",
|
||||
"params": [
|
||||
{ "target": "SnapshotId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"waiters": {
|
||||
"Completed": {
|
||||
"waiterName": "SnapshotCompleted",
|
||||
"params": [
|
||||
{ "target": "SnapshotIds[]", "source": "identifier", "name": "Id" }
|
||||
],
|
||||
"path": "Snapshots[]"
|
||||
}
|
||||
},
|
||||
"has": {
|
||||
"Volume": {
|
||||
"resource": {
|
||||
"type": "Volume",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "data", "path": "VolumeId" }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Subnet": {
|
||||
"identifiers": [
|
||||
{
|
||||
"name": "Id",
|
||||
"memberName": "SubnetId"
|
||||
}
|
||||
],
|
||||
"shape": "Subnet",
|
||||
"load": {
|
||||
"request": {
|
||||
"operation": "DescribeSubnets",
|
||||
"params": [
|
||||
{ "target": "SubnetIds[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"path": "Subnets[0]"
|
||||
},
|
||||
"actions": {
|
||||
"CreateInstances": {
|
||||
"request": {
|
||||
"operation": "RunInstances",
|
||||
"params": [
|
||||
{ "target": "SubnetId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "Instance",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "Instances[].InstanceId" }
|
||||
],
|
||||
"path": "Instances[]"
|
||||
}
|
||||
},
|
||||
"CreateNetworkInterface": {
|
||||
"request": {
|
||||
"operation": "CreateNetworkInterface",
|
||||
"params": [
|
||||
{ "target": "SubnetId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "NetworkInterface",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "NetworkInterface.NetworkInterfaceId" }
|
||||
],
|
||||
"path": "NetworkInterface"
|
||||
}
|
||||
},
|
||||
"CreateTags": {
|
||||
"request": {
|
||||
"operation": "CreateTags",
|
||||
"params": [
|
||||
{ "target": "Resources[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "Tag",
|
||||
"identifiers": [
|
||||
{ "target": "ResourceId", "source": "identifier", "name": "Id" },
|
||||
{ "target": "Key", "source": "requestParameter", "path": "Tags[].Key" },
|
||||
{ "target": "Value", "source": "requestParameter", "path": "Tags[].Value" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Delete": {
|
||||
"request": {
|
||||
"operation": "DeleteSubnet",
|
||||
"params": [
|
||||
{ "target": "SubnetId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"has": {
|
||||
"Vpc": {
|
||||
"resource": {
|
||||
"type": "Vpc",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "data", "path": "VpcId" }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"hasMany": {
|
||||
"Instances": {
|
||||
"request": {
|
||||
"operation": "DescribeInstances",
|
||||
"params": [
|
||||
{ "target": "Filters[0].Name", "source": "string", "value": "subnet-id" },
|
||||
{ "target": "Filters[0].Values[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "Instance",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "Reservations[].Instances[].InstanceId" }
|
||||
],
|
||||
"path": "Reservations[].Instances[]"
|
||||
}
|
||||
},
|
||||
"NetworkInterfaces": {
|
||||
"request": {
|
||||
"operation": "DescribeNetworkInterfaces",
|
||||
"params": [
|
||||
{ "target": "Filters[0].Name", "source": "string", "value": "subnet-id" },
|
||||
{ "target": "Filters[0].Values[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "NetworkInterface",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "NetworkInterfaces[].NetworkInterfaceId" }
|
||||
],
|
||||
"path": "NetworkInterfaces[]"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Tag": {
|
||||
"identifiers": [
|
||||
{
|
||||
"name": "ResourceId",
|
||||
"memberName": "ResourceId"
|
||||
},
|
||||
{
|
||||
"name": "Key",
|
||||
"memberName": "Key"
|
||||
},
|
||||
{
|
||||
"name": "Value",
|
||||
"memberName": "Value"
|
||||
}
|
||||
],
|
||||
"shape": "TagDescription",
|
||||
"load": {
|
||||
"request": {
|
||||
"operation": "DescribeTags",
|
||||
"params": [
|
||||
{ "target": "Filters[0].Name", "source": "string", "value": "key" },
|
||||
{ "target": "Filters[0].Values[0]", "source": "identifier", "name": "Key" },
|
||||
{ "target": "Filters[1].Name", "source": "string", "value": "value" },
|
||||
{ "target": "Filters[1].Values[0]", "source": "identifier", "name": "Value" }
|
||||
]
|
||||
},
|
||||
"path": "Tags[0]"
|
||||
},
|
||||
"actions": {
|
||||
"Delete": {
|
||||
"request": {
|
||||
"operation": "DeleteTags",
|
||||
"params": [
|
||||
{ "target": "Resources[0]", "source": "identifier", "name": "ResourceId" },
|
||||
{ "target": "Tags[0].Key", "source": "identifier", "name": "Key" },
|
||||
{ "target": "Tags[0].Value", "source": "identifier", "name": "Value" }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"batchActions": {
|
||||
"Delete": {
|
||||
"request": {
|
||||
"operation": "DeleteTags",
|
||||
"params": [
|
||||
{ "target": "Resources[]", "source": "identifier", "name": "ResourceId" },
|
||||
{ "target": "Tags[*].Key", "source": "identifier", "name": "Key" },
|
||||
{ "target": "Tags[*].Value", "source": "identifier", "name": "Value" }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Volume": {
|
||||
"identifiers": [
|
||||
{
|
||||
"name": "Id",
|
||||
"memberName": "VolumeId"
|
||||
}
|
||||
],
|
||||
"shape": "Volume",
|
||||
"load": {
|
||||
"request": {
|
||||
"operation": "DescribeVolumes",
|
||||
"params": [
|
||||
{ "target": "VolumeIds[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"path": "Volumes[0]"
|
||||
},
|
||||
"actions": {
|
||||
"AttachToInstance": {
|
||||
"request": {
|
||||
"operation": "AttachVolume",
|
||||
"params": [
|
||||
{ "target": "VolumeId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"CreateSnapshot": {
|
||||
"request": {
|
||||
"operation": "CreateSnapshot",
|
||||
"params": [
|
||||
{ "target": "VolumeId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "Snapshot",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "SnapshotId" }
|
||||
],
|
||||
"path": "@"
|
||||
}
|
||||
},
|
||||
"CreateTags": {
|
||||
"request": {
|
||||
"operation": "CreateTags",
|
||||
"params": [
|
||||
{ "target": "Resources[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "Tag",
|
||||
"identifiers": [
|
||||
{ "target": "ResourceId", "source": "identifier", "name": "Id" },
|
||||
{ "target": "Key", "source": "requestParameter", "path": "Tags[].Key" },
|
||||
{ "target": "Value", "source": "requestParameter", "path": "Tags[].Value" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Delete": {
|
||||
"request": {
|
||||
"operation": "DeleteVolume",
|
||||
"params": [
|
||||
{ "target": "VolumeId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"DescribeAttribute": {
|
||||
"request": {
|
||||
"operation": "DescribeVolumeAttribute",
|
||||
"params": [
|
||||
{ "target": "VolumeId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"DescribeStatus": {
|
||||
"request": {
|
||||
"operation": "DescribeVolumeStatus",
|
||||
"params": [
|
||||
{ "target": "VolumeIds[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"DetachFromInstance": {
|
||||
"request": {
|
||||
"operation": "DetachVolume",
|
||||
"params": [
|
||||
{ "target": "VolumeId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"EnableIo": {
|
||||
"request": {
|
||||
"operation": "EnableVolumeIO",
|
||||
"params": [
|
||||
{ "target": "VolumeId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"ModifyAttribute": {
|
||||
"request": {
|
||||
"operation": "ModifyVolumeAttribute",
|
||||
"params": [
|
||||
{ "target": "VolumeId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"hasMany": {
|
||||
"Snapshots": {
|
||||
"request": {
|
||||
"operation": "DescribeSnapshots",
|
||||
"params": [
|
||||
{ "target": "Filters[0].Name", "source": "string", "value": "volume-id" },
|
||||
{ "target": "Filters[0].Values[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "Snapshot",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "Snapshots[].SnapshotId" }
|
||||
],
|
||||
"path": "Snapshots[]"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Vpc": {
|
||||
"identifiers": [
|
||||
{
|
||||
"name": "Id",
|
||||
"memberName": "VpcId"
|
||||
}
|
||||
],
|
||||
"shape": "Vpc",
|
||||
"load": {
|
||||
"request": {
|
||||
"operation": "DescribeVpcs",
|
||||
"params": [
|
||||
{ "target": "VpcIds[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"path": "Vpcs[0]"
|
||||
},
|
||||
"actions": {
|
||||
"AssociateDhcpOptions": {
|
||||
"request": {
|
||||
"operation": "AssociateDhcpOptions",
|
||||
"params": [
|
||||
{ "target": "VpcId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"AttachClassicLinkInstance": {
|
||||
"request": {
|
||||
"operation": "AttachClassicLinkVpc",
|
||||
"params": [
|
||||
{ "target": "VpcId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"AttachInternetGateway": {
|
||||
"request": {
|
||||
"operation": "AttachInternetGateway",
|
||||
"params": [
|
||||
{ "target": "VpcId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"CreateNetworkAcl": {
|
||||
"request": {
|
||||
"operation": "CreateNetworkAcl",
|
||||
"params": [
|
||||
{ "target": "VpcId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "NetworkAcl",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "NetworkAcl.NetworkAclId" }
|
||||
],
|
||||
"path": "NetworkAcl"
|
||||
}
|
||||
},
|
||||
"CreateRouteTable": {
|
||||
"request": {
|
||||
"operation": "CreateRouteTable",
|
||||
"params": [
|
||||
{ "target": "VpcId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "RouteTable",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "RouteTable.RouteTableId" }
|
||||
],
|
||||
"path": "RouteTable"
|
||||
}
|
||||
},
|
||||
"CreateSecurityGroup": {
|
||||
"request": {
|
||||
"operation": "CreateSecurityGroup",
|
||||
"params": [
|
||||
{ "target": "VpcId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "SecurityGroup",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "GroupId" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"CreateSubnet": {
|
||||
"request": {
|
||||
"operation": "CreateSubnet",
|
||||
"params": [
|
||||
{ "target": "VpcId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "Subnet",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "Subnet.SubnetId" }
|
||||
],
|
||||
"path": "Subnet"
|
||||
}
|
||||
},
|
||||
"CreateTags": {
|
||||
"request": {
|
||||
"operation": "CreateTags",
|
||||
"params": [
|
||||
{ "target": "Resources[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "Tag",
|
||||
"identifiers": [
|
||||
{ "target": "ResourceId", "source": "identifier", "name": "Id" },
|
||||
{ "target": "Key", "source": "requestParameter", "path": "Tags[].Key" },
|
||||
{ "target": "Value", "source": "requestParameter", "path": "Tags[].Value" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Delete": {
|
||||
"request": {
|
||||
"operation": "DeleteVpc",
|
||||
"params": [
|
||||
{ "target": "VpcId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"DescribeAttribute": {
|
||||
"request": {
|
||||
"operation": "DescribeVpcAttribute",
|
||||
"params": [
|
||||
{ "target": "VpcId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"DetachClassicLinkInstance": {
|
||||
"request": {
|
||||
"operation": "DetachClassicLinkVpc",
|
||||
"params": [
|
||||
{ "target": "VpcId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"DetachInternetGateway": {
|
||||
"request": {
|
||||
"operation": "DetachInternetGateway",
|
||||
"params": [
|
||||
{ "target": "VpcId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"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",
|
||||
"params": [
|
||||
{ "target": "VpcId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"RequestVpcPeeringConnection": {
|
||||
"request": {
|
||||
"operation": "CreateVpcPeeringConnection",
|
||||
"params": [
|
||||
{ "target": "VpcId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "VpcPeeringConnection",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "VpcPeeringConnection.VpcPeeringConnectionId" }
|
||||
],
|
||||
"path": "VpcPeeringConnection"
|
||||
}
|
||||
}
|
||||
},
|
||||
"waiters": {
|
||||
"Available": {
|
||||
"waiterName": "VpcAvailable",
|
||||
"params": [
|
||||
{ "target": "VpcIds[]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"Exists": {
|
||||
"waiterName": "VpcExists",
|
||||
"params": [
|
||||
{ "target": "VpcIds[]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"has": {
|
||||
"DhcpOptions": {
|
||||
"resource": {
|
||||
"type": "DhcpOptions",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "data", "path": "DhcpOptionsId" }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"hasMany": {
|
||||
"AcceptedVpcPeeringConnections": {
|
||||
"request": {
|
||||
"operation": "DescribeVpcPeeringConnections",
|
||||
"params": [
|
||||
{ "target": "Filters[0].Name", "source": "string", "value": "accepter-vpc-info.vpc-id" },
|
||||
{ "target": "Filters[0].Values[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "VpcPeeringConnection",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "VpcPeeringConnections[].VpcPeeringConnectionId" }
|
||||
],
|
||||
"path": "VpcPeeringConnections[]"
|
||||
}
|
||||
},
|
||||
"Instances": {
|
||||
"request": {
|
||||
"operation": "DescribeInstances",
|
||||
"params": [
|
||||
{ "target": "Filters[0].Name", "source": "string", "value": "vpc-id" },
|
||||
{ "target": "Filters[0].Values[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "Instance",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "Reservations[].Instances[].InstanceId" }
|
||||
],
|
||||
"path": "Reservations[].Instances[]"
|
||||
}
|
||||
},
|
||||
"InternetGateways": {
|
||||
"request": {
|
||||
"operation": "DescribeInternetGateways",
|
||||
"params": [
|
||||
{ "target": "Filters[0].Name", "source": "string", "value": "attachment.vpc-id" },
|
||||
{ "target": "Filters[0].Values[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "InternetGateway",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "InternetGateways[].InternetGatewayId" }
|
||||
],
|
||||
"path": "InternetGateways[]"
|
||||
}
|
||||
},
|
||||
"NetworkAcls": {
|
||||
"request": {
|
||||
"operation": "DescribeNetworkAcls",
|
||||
"params": [
|
||||
{ "target": "Filters[0].Name", "source": "string", "value": "vpc-id" },
|
||||
{ "target": "Filters[0].Values[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "NetworkAcl",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "NetworkAcls[].NetworkAclId" }
|
||||
],
|
||||
"path": "NetworkAcls[]"
|
||||
}
|
||||
},
|
||||
"NetworkInterfaces": {
|
||||
"request": {
|
||||
"operation": "DescribeNetworkInterfaces",
|
||||
"params": [
|
||||
{ "target": "Filters[0].Name", "source": "string", "value": "vpc-id" },
|
||||
{ "target": "Filters[0].Values[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "NetworkInterface",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "NetworkInterfaces[].NetworkInterfaceId" }
|
||||
],
|
||||
"path": "NetworkInterfaces[]"
|
||||
}
|
||||
},
|
||||
"RequestedVpcPeeringConnections": {
|
||||
"request": {
|
||||
"operation": "DescribeVpcPeeringConnections",
|
||||
"params": [
|
||||
{ "target": "Filters[0].Name", "source": "string", "value": "requester-vpc-info.vpc-id" },
|
||||
{ "target": "Filters[0].Values[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "VpcPeeringConnection",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "VpcPeeringConnections[].VpcPeeringConnectionId" }
|
||||
],
|
||||
"path": "VpcPeeringConnections[]"
|
||||
}
|
||||
},
|
||||
"RouteTables": {
|
||||
"request": {
|
||||
"operation": "DescribeRouteTables",
|
||||
"params": [
|
||||
{ "target": "Filters[0].Name", "source": "string", "value": "vpc-id" },
|
||||
{ "target": "Filters[0].Values[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "RouteTable",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "RouteTables[].RouteTableId" }
|
||||
],
|
||||
"path": "RouteTables[]"
|
||||
}
|
||||
},
|
||||
"SecurityGroups": {
|
||||
"request": {
|
||||
"operation": "DescribeSecurityGroups",
|
||||
"params": [
|
||||
{ "target": "Filters[0].Name", "source": "string", "value": "vpc-id" },
|
||||
{ "target": "Filters[0].Values[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "SecurityGroup",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "SecurityGroups[].GroupId" }
|
||||
],
|
||||
"path": "SecurityGroups[]"
|
||||
}
|
||||
},
|
||||
"Subnets": {
|
||||
"request": {
|
||||
"operation": "DescribeSubnets",
|
||||
"params": [
|
||||
{ "target": "Filters[0].Name", "source": "string", "value": "vpc-id" },
|
||||
{ "target": "Filters[0].Values[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"resource": {
|
||||
"type": "Subnet",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "response", "path": "Subnets[].SubnetId" }
|
||||
],
|
||||
"path": "Subnets[]"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"VpcPeeringConnection": {
|
||||
"identifiers": [
|
||||
{
|
||||
"name": "Id",
|
||||
"memberName": "VpcPeeringConnectionId"
|
||||
}
|
||||
],
|
||||
"shape": "VpcPeeringConnection",
|
||||
"load": {
|
||||
"request": {
|
||||
"operation": "DescribeVpcPeeringConnections",
|
||||
"params": [
|
||||
{ "target": "VpcPeeringConnectionIds[0]", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
},
|
||||
"path": "VpcPeeringConnections[0]"
|
||||
},
|
||||
"actions": {
|
||||
"Accept": {
|
||||
"request": {
|
||||
"operation": "AcceptVpcPeeringConnection",
|
||||
"params": [
|
||||
{ "target": "VpcPeeringConnectionId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Delete": {
|
||||
"request": {
|
||||
"operation": "DeleteVpcPeeringConnection",
|
||||
"params": [
|
||||
{ "target": "VpcPeeringConnectionId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Reject": {
|
||||
"request": {
|
||||
"operation": "RejectVpcPeeringConnection",
|
||||
"params": [
|
||||
{ "target": "VpcPeeringConnectionId", "source": "identifier", "name": "Id" }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"waiters": {
|
||||
"Exists": {
|
||||
"waiterName": "VpcPeeringConnectionExists",
|
||||
"params": [
|
||||
{ "target": "VpcPeeringConnectionIds[]", "source": "identifier", "name": "Id" }
|
||||
],
|
||||
"path": "VpcPeeringConnections[0]"
|
||||
}
|
||||
},
|
||||
"has": {
|
||||
"AccepterVpc": {
|
||||
"resource": {
|
||||
"type": "Vpc",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "data", "path": "AccepterVpcInfo.VpcId" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"RequesterVpc": {
|
||||
"resource": {
|
||||
"type": "Vpc",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "data", "path": "RequesterVpcInfo.VpcId" }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"VpcAddress": {
|
||||
"identifiers": [
|
||||
{
|
||||
"name": "AllocationId"
|
||||
}
|
||||
],
|
||||
"shape": "Address",
|
||||
"load": {
|
||||
"request": {
|
||||
"operation": "DescribeAddresses",
|
||||
"params": [
|
||||
{ "target": "AllocationIds[0]", "source": "identifier", "name": "AllocationId" }
|
||||
]
|
||||
},
|
||||
"path": "Addresses[0]"
|
||||
},
|
||||
"actions": {
|
||||
"Associate": {
|
||||
"request": {
|
||||
"operation": "AssociateAddress",
|
||||
"params": [
|
||||
{ "target": "AllocationId", "source": "identifier", "name": "AllocationId" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"Release": {
|
||||
"request": {
|
||||
"operation": "ReleaseAddress",
|
||||
"params": [
|
||||
{ "target": "AllocationId", "source": "data", "path": "AllocationId" }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"has": {
|
||||
"Association": {
|
||||
"resource": {
|
||||
"type": "NetworkInterfaceAssociation",
|
||||
"identifiers": [
|
||||
{ "target": "Id", "source": "data", "path": "AssociationId" }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -87,7 +87,7 @@ an existing table::
|
|||
# values will be set based on the response.
|
||||
print(table.creation_date_time)
|
||||
|
||||
Expected Output (Pleas note that probably the actual times will not match up)::
|
||||
Expected Output (Please note that the actual times will probably not match up)::
|
||||
|
||||
2015-06-26 12:42:45.149000-07:00
|
||||
|
||||
|
|
|
@ -13,13 +13,12 @@
|
|||
import os
|
||||
import threading
|
||||
import math
|
||||
import time
|
||||
import random
|
||||
import tempfile
|
||||
import shutil
|
||||
import hashlib
|
||||
import string
|
||||
import datetime
|
||||
import logging
|
||||
|
||||
from tests import unittest, unique_id
|
||||
from botocore.compat import six
|
||||
|
@ -30,6 +29,7 @@ import boto3.s3.transfer
|
|||
|
||||
|
||||
urlopen = six.moves.urllib.request.urlopen
|
||||
LOG = logging.getLogger('boto3.tests.integration')
|
||||
|
||||
|
||||
def assert_files_equal(first, second):
|
||||
|
@ -57,6 +57,55 @@ def random_bucket_name(prefix='boto3-transfer', num_chars=10):
|
|||
return prefix + ''.join([base[b % len(base)] for b in random_bytes])
|
||||
|
||||
|
||||
_SHARED_BUCKET = random_bucket_name()
|
||||
_DEFAULT_REGION = 'us-west-2'
|
||||
|
||||
|
||||
def setup_module():
|
||||
s3 = boto3.client('s3')
|
||||
waiter = s3.get_waiter('bucket_exists')
|
||||
params = {
|
||||
'Bucket': _SHARED_BUCKET,
|
||||
'CreateBucketConfiguration': {
|
||||
'LocationConstraint': _DEFAULT_REGION,
|
||||
}
|
||||
}
|
||||
try:
|
||||
s3.create_bucket(**params)
|
||||
except Exception as e:
|
||||
# A create_bucket can fail for a number of reasons.
|
||||
# We're going to defer to the waiter below to make the
|
||||
# final call as to whether or not the bucket exists.
|
||||
LOG.debug("create_bucket() raised an exception: %s", e, exc_info=True)
|
||||
waiter.wait(Bucket=_SHARED_BUCKET)
|
||||
|
||||
|
||||
def clear_out_bucket(bucket, region, delete_bucket=False):
|
||||
s3 = boto3.client('s3', region_name=region)
|
||||
page = s3.get_paginator('list_objects')
|
||||
# Use pages paired with batch delete_objects().
|
||||
for page in page.paginate(Bucket=bucket):
|
||||
keys = [{'Key': obj['Key']} for obj in page.get('Contents', [])]
|
||||
if keys:
|
||||
s3.delete_objects(Bucket=bucket, Delete={'Objects': keys})
|
||||
if delete_bucket:
|
||||
try:
|
||||
s3.delete_bucket(Bucket=bucket)
|
||||
except Exception as e:
|
||||
# We can sometimes get exceptions when trying to
|
||||
# delete a bucket. We'll let the waiter make
|
||||
# the final call as to whether the bucket was able
|
||||
# to be deleted.
|
||||
LOG.debug("delete_bucket() raised an exception: %s",
|
||||
e, exc_info=True)
|
||||
waiter = s3.get_waiter('bucket_not_exists')
|
||||
waiter.wait(Bucket=bucket)
|
||||
|
||||
|
||||
def teardown_module():
|
||||
clear_out_bucket(_SHARED_BUCKET, _DEFAULT_REGION, delete_bucket=True)
|
||||
|
||||
|
||||
class FileCreator(object):
|
||||
def __init__(self):
|
||||
self.rootdir = tempfile.mkdtemp()
|
||||
|
@ -116,15 +165,22 @@ class FileCreator(object):
|
|||
|
||||
class TestS3Resource(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.region = 'us-west-2'
|
||||
self.region = _DEFAULT_REGION
|
||||
self.bucket_name = _SHARED_BUCKET
|
||||
clear_out_bucket(self.bucket_name, self.region)
|
||||
self.session = boto3.session.Session(region_name=self.region)
|
||||
self.s3 = self.session.resource('s3')
|
||||
self.bucket_name = unique_id('boto3-test')
|
||||
self.bucket = self.s3.Bucket(self.bucket_name)
|
||||
|
||||
def create_bucket_resource(self, bucket_name=None, region=None):
|
||||
if bucket_name is None:
|
||||
bucket_name = random_bucket_name()
|
||||
|
||||
def create_bucket_resource(self, bucket_name, region=None):
|
||||
if region is None:
|
||||
region = self.region
|
||||
|
||||
kwargs = {'Bucket': bucket_name}
|
||||
|
||||
if region != 'us-east-1':
|
||||
kwargs['CreateBucketConfiguration'] = {
|
||||
'LocationConstraint': region
|
||||
|
@ -136,13 +192,8 @@ class TestS3Resource(unittest.TestCase):
|
|||
def test_s3(self):
|
||||
client = self.s3.meta.client
|
||||
|
||||
# Create a bucket (resource action with a resource response)
|
||||
bucket = self.create_bucket_resource(self.bucket_name)
|
||||
waiter = client.get_waiter('bucket_exists')
|
||||
waiter.wait(Bucket=self.bucket_name)
|
||||
|
||||
# Create an object
|
||||
obj = bucket.Object('test.txt')
|
||||
obj = self.bucket.Object('test.txt')
|
||||
obj.put(
|
||||
Body='hello, world')
|
||||
waiter = client.get_waiter('object_exists')
|
||||
|
@ -150,13 +201,13 @@ class TestS3Resource(unittest.TestCase):
|
|||
self.addCleanup(obj.delete)
|
||||
|
||||
# List objects and make sure ours is present
|
||||
self.assertIn('test.txt', [o.key for o in bucket.objects.all()])
|
||||
self.assertIn('test.txt', [o.key for o in self.bucket.objects.all()])
|
||||
|
||||
# Lazy-loaded attribute
|
||||
self.assertEqual(12, obj.content_length)
|
||||
|
||||
# Load a similar attribute from the collection response
|
||||
self.assertEqual(12, list(bucket.objects.all())[0].size)
|
||||
self.assertEqual(12, list(self.bucket.objects.all())[0].size)
|
||||
|
||||
# Perform a resource action with a low-level response
|
||||
self.assertEqual(b'hello, world',
|
||||
|
@ -164,12 +215,13 @@ class TestS3Resource(unittest.TestCase):
|
|||
|
||||
def test_s3_resource_waiter(self):
|
||||
# Create a bucket
|
||||
bucket = self.create_bucket_resource(self.bucket_name)
|
||||
bucket_name = random_bucket_name()
|
||||
bucket = self.create_bucket_resource(bucket_name)
|
||||
# Wait till the bucket exists
|
||||
bucket.wait_until_exists()
|
||||
# Confirm the bucket exists by finding it in a list of all of our
|
||||
# buckets
|
||||
self.assertIn(self.bucket_name,
|
||||
self.assertIn(bucket_name,
|
||||
[b.name for b in self.s3.buckets.all()])
|
||||
|
||||
# Create an object
|
||||
|
@ -191,12 +243,8 @@ class TestS3Resource(unittest.TestCase):
|
|||
self.assertEqual(obj.key, 'test.txt')
|
||||
|
||||
def test_s3_multipart(self):
|
||||
# Create the bucket
|
||||
bucket = self.create_bucket_resource(self.bucket_name)
|
||||
bucket.wait_until_exists()
|
||||
|
||||
# Create the multipart upload
|
||||
mpu = bucket.Object('mp-test.txt').initiate_multipart_upload()
|
||||
mpu = self.bucket.Object('mp-test.txt').initiate_multipart_upload()
|
||||
self.addCleanup(mpu.abort)
|
||||
|
||||
# Create and upload a part
|
||||
|
@ -214,24 +262,22 @@ class TestS3Resource(unittest.TestCase):
|
|||
}
|
||||
|
||||
mpu.complete(MultipartUpload=part_info)
|
||||
self.addCleanup(bucket.Object('mp-test.txt').delete)
|
||||
self.addCleanup(self.bucket.Object('mp-test.txt').delete)
|
||||
|
||||
contents = bucket.Object('mp-test.txt').get()['Body'].read()
|
||||
contents = self.bucket.Object('mp-test.txt').get()['Body'].read()
|
||||
self.assertEqual(contents, b'hello, world!')
|
||||
|
||||
def test_s3_batch_delete(self):
|
||||
# Create the bucket
|
||||
bucket = self.create_bucket_resource(self.bucket_name)
|
||||
bucket.wait_until_exists()
|
||||
bucket = self.create_bucket_resource()
|
||||
bucket.Versioning().enable()
|
||||
|
||||
# Create several versions of an object
|
||||
obj = bucket.Object('test.txt')
|
||||
obj = self.bucket.Object('test.txt')
|
||||
for i in range(10):
|
||||
obj.put(Body="Version %s" % i)
|
||||
|
||||
# Delete all the versions of the object
|
||||
bucket.object_versions.all().delete()
|
||||
bucket.object_versions.all().delete()
|
||||
|
||||
versions = list(bucket.object_versions.all())
|
||||
self.assertEqual(len(versions), 0)
|
||||
|
@ -239,28 +285,18 @@ class TestS3Resource(unittest.TestCase):
|
|||
|
||||
class TestS3Transfers(unittest.TestCase):
|
||||
"""Tests for the high level boto3.s3.transfer module."""
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
cls.region = 'us-west-2'
|
||||
cls.session = boto3.session.Session(region_name=cls.region)
|
||||
cls.client = cls.session.client('s3', cls.region)
|
||||
cls.bucket_name = random_bucket_name()
|
||||
cls.client.create_bucket(
|
||||
Bucket=cls.bucket_name,
|
||||
CreateBucketConfiguration={'LocationConstraint': cls.region})
|
||||
|
||||
def setUp(self):
|
||||
self.region = _DEFAULT_REGION
|
||||
self.bucket_name = _SHARED_BUCKET
|
||||
clear_out_bucket(self.bucket_name, self.region)
|
||||
self.session = boto3.session.Session(region_name=self.region)
|
||||
self.client = self.session.client('s3', self.region)
|
||||
self.files = FileCreator()
|
||||
self.progress = 0
|
||||
|
||||
def tearDown(self):
|
||||
self.files.remove_all()
|
||||
|
||||
@classmethod
|
||||
def tearDownClass(cls):
|
||||
cls.client.delete_bucket(Bucket=cls.bucket_name)
|
||||
|
||||
def delete_object(self, key):
|
||||
self.client.delete_object(
|
||||
Bucket=self.bucket_name,
|
||||
|
@ -607,23 +643,12 @@ class TestS3Transfers(unittest.TestCase):
|
|||
|
||||
class TestCustomS3BucketLoad(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.region = 'us-west-2'
|
||||
self.region = _DEFAULT_REGION
|
||||
self.bucket_name = _SHARED_BUCKET
|
||||
clear_out_bucket(self.bucket_name, self.region)
|
||||
self.session = boto3.session.Session(region_name=self.region)
|
||||
self.s3 = self.session.resource('s3')
|
||||
self.bucket_name = unique_id('boto3-test')
|
||||
|
||||
def create_bucket_resource(self, bucket_name, region=None):
|
||||
if region is None:
|
||||
region = self.region
|
||||
kwargs = {'Bucket': bucket_name}
|
||||
if region != 'us-east-1':
|
||||
kwargs['CreateBucketConfiguration'] = {
|
||||
'LocationConstraint': region
|
||||
}
|
||||
bucket = self.s3.create_bucket(**kwargs)
|
||||
self.addCleanup(bucket.delete)
|
||||
return bucket
|
||||
|
||||
def test_can_access_buckets_creation_date(self):
|
||||
bucket = self.create_bucket_resource(random_bucket_name())
|
||||
bucket = self.s3.Bucket(self.bucket_name)
|
||||
self.assertIsInstance(bucket.creation_date, datetime.datetime)
|
||||
|
|
Loading…
Reference in a new issue