I've done a careful analysis of the following 3 AWS API versions: 2011-12-15 (used for all non-VPC calls), 2013-10-15 (used for VPC calls), 2014-10-01 (current latest version), using the published AWS WSDL schemas to determine how upgrading the version will impact juju-core's usage of goamz.
Fortunately, there are not many changes and very few, easily fixable changes affect juju-core:
VPC calls with no changes in 2014-10-01 vs 2013-10-15:
non-VPC calls with changes between 2011-12-15 and 2014-10-01:
DescribeInstances
request changes:
maxResults, nextToken (added - not supported or used by juju; pagination support)
response changes: instancesSet>item>productCodes>item>type (added - not supported or used by juju-core) instancesSet>item>iamInstanceProfile>* (added whole subtree - not supported or used by juju-core) instancesSet>item>ebsOptimized (added - not supported but needed for storage work in juju-core) instancesSet>item>sriovNetSupport (added - not supported or used by juju-core) instancesSet>item>networkInterfaceSet>item>macAddress (added - already supported since VPC calls landed) instancesSet>item>networkInterfaceSet>item>association>* (added whole subtree - not used by juju-core; related to elastic IPs) instancesSet>item>networkInterfaceSet>item>privateIpAddressesSet>* (added whole subtree - already supported since VPC calls landed; >item>association>* not supported, but not used as well)
nextToken (added - not supported or used by juju; for pagination of results)
RunInstances
request changes: blockDeviceMapping>item>ebs>volumeType (added - already supported since storage changes landed) blockDeviceMapping>item>ebs>iops (added - already supported since storage changes) networkInterfaceSet>item>* - same changes as in DescribeInstances, except: networkInterfaceSet>item>associatePublicIpAddress (added - not supported but needed by juju) iamInstanceProfile>* (added whole subtree - not supported or used by juju) ebsOptimized (added - not supported but possibly needed for juju storage work)
response changes: the same as for DescribeInstances, except for nextToken
DescribeImages
request - no changes
response changes: sriovNetSupport (added - not supported or used by juju) productCodes, blockDeviceMapping (added - same changes as in RunInstances)
So overall upgrading AWS API version to 2014-10-01 won't require changes in juju-core, and only a few changes to add what's missing in the request/response structs, as well as the Instance and NetworkInterface types.
I'm about to propose this branch retargeted to goamz on github.
I've done a careful analysis of the following 3 AWS API versions: 2011-12-15 (used for all non-VPC calls), 2013-10-15 (used for VPC calls), 2014-10-01 (current latest version), using the published AWS WSDL schemas to determine how upgrading the version will impact juju-core's usage of goamz.
Fortunately, there are not many changes and very few, easily fixable changes affect juju-core:
VPC calls with no changes in 2014-10-01 vs 2013-10-15:
AssignPrivateIp Addresses terface terface terface Attributes Interfaces terface IpAddresses
AttachNetworkIn
CreateNetworkIn
CreateSecurityGroup
CreateSubnet
CreateVpc
DeleteNetworkIn
DeleteSubnet
DeleteVpc
DescribeAccount
DescribeNetwork
DescribeSubnets
DescribeVpcs
DetachNetworkIn
UnassignPrivate
non-VPC calls with no changes in 2014-10-01 vs 2011-12-15:
AuthorizeSecuri tyGroupIngress ilityZones yGroups roupIngress
CreateSnapshot
CreateTags
DeleteSnapshot
DescribeAvailab
DescribeSecurit
DescribeSnapshots
RebootInstances
RevokeSecurityG
StartInstances
StopInstances
TerminateInstances
non-VPC calls with changes between 2011-12-15 and 2014-10-01:
DescribeInstances
instancesSet> item>productCod es>item> type (added - not supported or used by juju-core)
instancesSet> item>iamInstanc eProfile> * (added whole subtree - not supported or used by juju-core)
instancesSet> item>ebsOptimiz ed (added - not supported but needed for storage work in juju-core)
instancesSet> item>sriovNetSu pport (added - not supported or used by juju-core)
instancesSet> item>networkInt erfaceSet> item>macAddress (added - already supported since VPC calls landed)
instancesSet> item>networkInt erfaceSet> item>associatio n>* (added whole subtree - not used by juju-core; related to elastic IPs)
instancesSet> item>networkInt erfaceSet> item>privateIpA ddressesSet> * (added whole subtree - already supported since VPC calls landed; >item>association>* not supported, but not used as well)
blockDeviceMap ping>item> ebs>volumeType (added - already supported since storage changes landed)
blockDeviceMap ping>item> ebs>iops (added - already supported since storage changes)
networkInterfa ceSet>item> * - same changes as in DescribeInstances, except:
networkInterfa ceSet>item> associatePublic IpAddress (added - not supported but needed by juju)
iamInstancePro file>* (added whole subtree - not supported or used by juju)
ebsOptimized (added - not supported but possibly needed for juju storage work)
request changes:
maxResults, nextToken (added - not supported or used by juju; pagination support)
response changes:
nextToken (added - not supported or used by juju; for pagination of results)
RunInstances
request changes:
response changes: the same as for DescribeInstances, except for nextToken
DescribeImages
sriovNetSuppor t (added - not supported or used by juju)
productCodes, blockDeviceMapping (added - same changes as in RunInstances)
request - no changes
response changes:
So overall upgrading AWS API version to 2014-10-01 won't require changes in juju-core, and only a few changes to add what's missing in the request/response structs, as well as the Instance and NetworkInterface types.
I'm about to propose this branch retargeted to goamz on github.