ec2

package
v0.4.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 29, 2014 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Address

type Address struct {
	PublicIp                string `xml:"publicIp"`
	AllocationId            string `xml:"allocationId"`
	Domain                  string `xml:"domain"`
	InstanceId              string `xml:"instanceId"`
	AssociationId           string `xml:"associationId"`
	NetworkInterfaceId      string `xml:"networkInterfaceId"`
	NetworkInterfaceOwnerId string `xml:"networkInterfaceOwnerId"`
	PrivateIpAddress        string `xml:"privateIpAddress"`
}

Address represents an Elastic IP Address See http://goo.gl/uxCjp7 for more details

type AllocateAddress

type AllocateAddress struct {
	Domain string
}

The AllocateAddress request parameters

see http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-AllocateAddress.html

type AllocateAddressResp

type AllocateAddressResp struct {
	RequestId    string `xml:"requestId"`
	PublicIp     string `xml:"publicIp"`
	Domain       string `xml:"domain"`
	AllocationId string `xml:"allocationId"`
}

Response to an AllocateAddress request

type AssociateAddress

type AssociateAddress struct {
	InstanceId         string
	PublicIp           string
	AllocationId       string
	AllowReassociation bool
}

The AssociateAddress request parameters

http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-AssociateAddress.html

type AssociateAddressResp

type AssociateAddressResp struct {
	RequestId     string `xml:"requestId"`
	Return        bool   `xml:"return"`
	AssociationId string `xml:"associationId"`
}

Response to an AssociateAddress request

type AssociateRouteTableResp

type AssociateRouteTableResp struct {
	RequestId     string `xml:"requestId"`
	AssociationId string `xml:"associationId"`
}

type AttachVolumeResp

type AttachVolumeResp struct {
	RequestId  string `xml:"requestId"`
	VolumeId   string `xml:"volumeId"`
	InstanceId string `xml:"instanceId"`
	Device     string `xml:"device"`
	Status     string `xml:"status"`
	AttachTime string `xml:"attachTime"`
}

Response to an AttachVolume request

type BlockDeviceMapping

type BlockDeviceMapping struct {
	DeviceName          string `xml:"deviceName"`
	VirtualName         string `xml:"virtualName"`
	SnapshotId          string `xml:"ebs>snapshotId"`
	VolumeType          string `xml:"ebs>volumeType"`
	VolumeSize          int64  `xml:"ebs>volumeSize"`
	DeleteOnTermination bool   `xml:"ebs>deleteOnTermination"`
	Encrypted           bool   `xml:"ebs>encrypted"`
	NoDevice            bool   `xml:"noDevice"`

	// The number of I/O operations per second (IOPS) that the volume supports.
	IOPS int64 `xml:"ebs>iops"`
}

BlockDeviceMapping represents the association of a block device with an image.

See http://goo.gl/wnDBf for more details.

type CancelSpotRequestResult

type CancelSpotRequestResult struct {
	SpotRequestId string `xml:"spotInstanceRequestId"`
	State         string `xml:"state"`
}

Response to a CancelSpotInstanceRequests request.

See http://goo.gl/3BKHj for more details.

type CancelSpotRequestsResp

type CancelSpotRequestsResp struct {
	RequestId                string                    `xml:"requestId"`
	CancelSpotRequestResults []CancelSpotRequestResult `xml:"spotInstanceRequestSet>item"`
}

type CopyImage

type CopyImage struct {
	SourceRegion  string
	SourceImageId string
	Name          string
	Description   string
	ClientToken   string
}

The CopyImage request parameters.

See http://goo.gl/hQwPCK for more details.

type CopyImageResp

type CopyImageResp struct {
	RequestId string `xml:"requestId"`
	ImageId   string `xml:"imageId"`
}

Response to a CopyImage request.

See http://goo.gl/hQwPCK for more details.

type CreateImage

type CreateImage struct {
	InstanceId   string
	Name         string
	Description  string
	NoReboot     bool
	BlockDevices []BlockDeviceMapping
}

The CreateImage request parameters.

See http://goo.gl/cxU41 for more details.

type CreateImageResp

type CreateImageResp struct {
	RequestId string `xml:"requestId"`
	ImageId   string `xml:"imageId"`
}

Response to a CreateImage request.

See http://goo.gl/cxU41 for more details.

type CreateInternetGateway

type CreateInternetGateway struct{}

CreateInternetGateway request parameters.

http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateInternetGateway.html

type CreateInternetGatewayResp

type CreateInternetGatewayResp struct {
	RequestId       string          `xml:"requestId"`
	InternetGateway InternetGateway `xml:"internetGateway"`
}

CreateInternetGateway response

type CreateKeyPairResp

type CreateKeyPairResp struct {
	RequestId      string `xml:"requestId"`
	KeyName        string `xml:"keyName"`
	KeyFingerprint string `xml:"keyFingerprint"`
	KeyMaterial    string `xml:"keyMaterial"`
}

type CreateRoute

type CreateRoute struct {
	RouteTableId           string
	DestinationCidrBlock   string
	GatewayId              string
	InstanceId             string
	NetworkInterfaceId     string
	VpcPeeringConnectionId string
}

CreateRoute request parameters

http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateRoute.html

type CreateRouteTable

type CreateRouteTable struct {
	VpcId string
}

The CreateRouteTable request parameters.

http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateRouteTable.html

type CreateRouteTableResp

type CreateRouteTableResp struct {
	RequestId  string     `xml:"requestId"`
	RouteTable RouteTable `xml:"routeTable"`
}

Response to a CreateRouteTable request.

type CreateSecurityGroupResp

type CreateSecurityGroupResp struct {
	SecurityGroup
	RequestId string `xml:"requestId"`
}

CreateSecurityGroupResp represents a response to a CreateSecurityGroup request.

type CreateSnapshotResp

type CreateSnapshotResp struct {
	RequestId string `xml:"requestId"`
	Snapshot
}

Response to a CreateSnapshot request.

See http://goo.gl/ttcda for more details.

type CreateSubnet

type CreateSubnet struct {
	VpcId            string
	CidrBlock        string
	AvailabilityZone string
}

The CreateSubnet request parameters

http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateSubnet.html

type CreateSubnetResp

type CreateSubnetResp struct {
	RequestId string `xml:"requestId"`
	Subnet    Subnet `xml:"subnet"`
}

Response to a CreateSubnet request

type CreateVolume

type CreateVolume struct {
	AvailZone  string
	Size       int64
	SnapshotId string
	VolumeType string
	IOPS       int64
	Encrypted  bool
}

The CreateVolume request parameters

See http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateVolume.html

type CreateVolumeResp

type CreateVolumeResp struct {
	RequestId  string `xml:"requestId"`
	VolumeId   string `xml:"volumeId"`
	Size       int64  `xml:"size"`
	SnapshotId string `xml:"snapshotId"`
	AvailZone  string `xml:"availabilityZone"`
	Status     string `xml:"status"`
	CreateTime string `xml:"createTime"`
	VolumeType string `xml:"volumeType"`
	IOPS       int64  `xml:"iops"`
	Encrypted  bool   `xml:"encrypted"`
}

Response to a CreateVolume request

type CreateVpc

type CreateVpc struct {
	CidrBlock       string
	InstanceTenancy string
}

The CreateVpc request parameters

See http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateVpc.html

type CreateVpcResp

type CreateVpcResp struct {
	RequestId string `xml:"requestId"`
	VPC       VPC    `xml:"vpc"`
}

Response to a CreateVpc request

type DeregisterImageResp

type DeregisterImageResp struct {
	RequestId string `xml:"requestId"`
	Return    bool   `xml:"return"`
}

Response to a DegisterImage request.

See http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DeregisterImage.html

type DescribeAddressesResp

type DescribeAddressesResp struct {
	RequestId string    `xml:"requestId"`
	Addresses []Address `xml:"addressesSet>item"`
}

type EC2

type EC2 struct {
	aws.Auth
	aws.Region
	// contains filtered or unexported fields
}

The EC2 type encapsulates operations with a specific EC2 region.

func New

func New(auth aws.Auth, region aws.Region) *EC2

func NewWithClient

func NewWithClient(auth aws.Auth, region aws.Region, client *http.Client) *EC2

New creates a new EC2.

func (*EC2) Addresses

func (ec2 *EC2) Addresses(publicIps []string, allocationIds []string, filter *Filter) (resp *DescribeAddressesResp, err error)

DescribeAddresses returns details about one or more Elastic IP Addresses. Returned addresses can be filtered by Public IP, Allocation ID or multiple filters

See http://goo.gl/zW7J4p for more details.

func (*EC2) AllocateAddress

func (ec2 *EC2) AllocateAddress(options *AllocateAddress) (resp *AllocateAddressResp, err error)

Allocate a new Elastic IP.

func (*EC2) AssociateAddress

func (ec2 *EC2) AssociateAddress(options *AssociateAddress) (resp *AssociateAddressResp, err error)

Associate an address with a VPC instance.

func (*EC2) AssociateRouteTable

func (ec2 *EC2) AssociateRouteTable(id, subnetId string) (*AssociateRouteTableResp, error)

Associate a routing table.

func (*EC2) AttachInternetGateway

func (ec2 *EC2) AttachInternetGateway(id, vpcId string) (resp *SimpleResp, err error)

Attach an InternetGateway.

func (*EC2) AttachVolume

func (ec2 *EC2) AttachVolume(volumeId string, instanceId string, device string) (resp *AttachVolumeResp, err error)

Attach a volume.

func (*EC2) AuthorizeSecurityGroup

func (ec2 *EC2) AuthorizeSecurityGroup(group SecurityGroup, perms []IPPerm) (resp *SimpleResp, err error)

AuthorizeSecurityGroup creates an allowance for clients matching the provided rules to access instances within the given security group.

See http://goo.gl/u2sDJ for more details.

func (*EC2) AuthorizeSecurityGroupEgress

func (ec2 *EC2) AuthorizeSecurityGroupEgress(group SecurityGroup, perms []IPPerm) (resp *SimpleResp, err error)

AuthorizeSecurityGroupEgress creates an allowance for clients matching the provided rules for egress access.

See http://goo.gl/UHnH4L for more details.

func (*EC2) CancelSpotRequests

func (ec2 *EC2) CancelSpotRequests(spotrequestIds []string) (resp *CancelSpotRequestsResp, err error)

CancelSpotRequests requests the cancellation of spot requests when the given ids.

See http://goo.gl/3BKHj for more details.

func (*EC2) CopyImage

func (ec2 *EC2) CopyImage(options *CopyImage) (resp *CopyImageResp, err error)

Copy and Image from one region to another.

See http://goo.gl/hQwPCK for more details.

func (*EC2) CreateImage

func (ec2 *EC2) CreateImage(options *CreateImage) (resp *CreateImageResp, err error)

Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance that is either running or stopped.

See http://goo.gl/cxU41 for more details.

func (*EC2) CreateInternetGateway

func (ec2 *EC2) CreateInternetGateway(
	options *CreateInternetGateway) (resp *CreateInternetGatewayResp, err error)

Create a new internet gateway.

func (*EC2) CreateKeyPair

func (ec2 *EC2) CreateKeyPair(keyName string) (resp *CreateKeyPairResp, err error)

CreateKeyPair creates a new key pair and returns the private key contents.

See http://goo.gl/0S6hV

func (*EC2) CreateRoute

func (ec2 *EC2) CreateRoute(options *CreateRoute) (resp *SimpleResp, err error)

Create a new route.

func (*EC2) CreateRouteTable

func (ec2 *EC2) CreateRouteTable(
	options *CreateRouteTable) (resp *CreateRouteTableResp, err error)

Create a new routing table.

func (*EC2) CreateSecurityGroup

func (ec2 *EC2) CreateSecurityGroup(group SecurityGroup) (resp *CreateSecurityGroupResp, err error)

CreateSecurityGroup run a CreateSecurityGroup request in EC2, with the provided name and description.

See http://goo.gl/Eo7Yl for more details.

func (*EC2) CreateSnapshot

func (ec2 *EC2) CreateSnapshot(volumeId, description string) (resp *CreateSnapshotResp, err error)

CreateSnapshot creates a volume snapshot and stores it in S3.

See http://goo.gl/ttcda for more details.

func (*EC2) CreateSubnet

func (ec2 *EC2) CreateSubnet(options *CreateSubnet) (resp *CreateSubnetResp, err error)

Create a new subnet.

func (*EC2) CreateTags

func (ec2 *EC2) CreateTags(resourceIds []string, tags []Tag) (resp *SimpleResp, err error)

CreateTags adds or overwrites one or more tags for the specified taggable resources. For a list of tagable resources, see: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html

See http://goo.gl/Vmkqc for more details

func (*EC2) CreateVolume

func (ec2 *EC2) CreateVolume(options *CreateVolume) (resp *CreateVolumeResp, err error)

Create a new volume.

func (*EC2) CreateVpc

func (ec2 *EC2) CreateVpc(options *CreateVpc) (resp *CreateVpcResp, err error)

Create a new VPC.

func (*EC2) DeleteInternetGateway

func (ec2 *EC2) DeleteInternetGateway(id string) (resp *SimpleResp, err error)

Delete an InternetGateway.

func (*EC2) DeleteKeyPair

func (ec2 *EC2) DeleteKeyPair(name string) (resp *SimpleResp, err error)

DeleteKeyPair deletes a key pair.

See http://goo.gl/0bqok

func (*EC2) DeleteRoute

func (ec2 *EC2) DeleteRoute(routeTableId, cidr string) (resp *SimpleResp, err error)

Delete a Route.

func (*EC2) DeleteRouteTable

func (ec2 *EC2) DeleteRouteTable(id string) (resp *SimpleResp, err error)

Delete a RouteTable.

func (*EC2) DeleteSecurityGroup

func (ec2 *EC2) DeleteSecurityGroup(group SecurityGroup) (resp *SimpleResp, err error)

DeleteSecurityGroup removes the given security group in EC2.

See http://goo.gl/QJJDO for more details.

func (*EC2) DeleteSnapshots

func (ec2 *EC2) DeleteSnapshots(ids []string) (resp *SimpleResp, err error)

DeleteSnapshots deletes the volume snapshots with the given ids.

Note: If you make periodic snapshots of a volume, the snapshots are incremental so that only the blocks on the device that have changed since your last snapshot are incrementally saved in the new snapshot. Even though snapshots are saved incrementally, the snapshot deletion process is designed so that you need to retain only the most recent snapshot in order to restore the volume.

See http://goo.gl/vwU1y for more details.

func (*EC2) DeleteSubnet

func (ec2 *EC2) DeleteSubnet(id string) (resp *SimpleResp, err error)

Delete a Subnet.

func (*EC2) DeleteVolume

func (ec2 *EC2) DeleteVolume(id string) (resp *SimpleResp, err error)

Delete an EBS volume.

func (*EC2) DeleteVpc

func (ec2 *EC2) DeleteVpc(id string) (resp *SimpleResp, err error)

Delete a VPC.

func (*EC2) DeregisterImage

func (ec2 *EC2) DeregisterImage(imageId string) (resp *DeregisterImageResp, err error)

Degisters an image. Note that this does not delete the backing stores of the AMI.

See http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DeregisterImage.html

func (*EC2) DescribeInternetGateways

func (ec2 *EC2) DescribeInternetGateways(ids []string, filter *Filter) (resp *InternetGatewaysResp, err error)

DescribeInternetGateways

http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeInternetGateways.html

func (*EC2) DescribeRouteTables

func (ec2 *EC2) DescribeRouteTables(ids []string, filter *Filter) (resp *RouteTablesResp, err error)

DescribeRouteTables

http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeRouteTables.html

func (*EC2) DescribeSpotRequests

func (ec2 *EC2) DescribeSpotRequests(spotrequestIds []string, filter *Filter) (resp *SpotRequestsResp, err error)

DescribeSpotInstanceRequests returns details about spot requests in EC2. Both parameters are optional, and if provided will limit the spot requests returned to those matching the given spot request ids or filtering rules.

See http://goo.gl/KsKJJk for more details.

func (*EC2) DescribeSubnets

func (ec2 *EC2) DescribeSubnets(ids []string, filter *Filter) (resp *SubnetsResp, err error)

DescribeSubnets

http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSubnets.html

func (*EC2) DescribeVpcs

func (ec2 *EC2) DescribeVpcs(ids []string, filter *Filter) (resp *VpcsResp, err error)

DescribeVpcs

See http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeVpcs.html

func (*EC2) DetachInternetGateway

func (ec2 *EC2) DetachInternetGateway(id, vpcId string) (resp *SimpleResp, err error)

Detach an InternetGateway.

func (*EC2) DetachVolume

func (ec2 *EC2) DetachVolume(id string) (resp *SimpleResp, err error)

Detaches an EBS volume.

func (*EC2) DisassociateAddress

func (ec2 *EC2) DisassociateAddress(id string) (resp *SimpleResp, err error)

Disassociate an address from a VPC instance.

func (*EC2) DisassociateRouteTable

func (ec2 *EC2) DisassociateRouteTable(id string) (*SimpleResp, error)

Disassociate a routing table.

func (*EC2) ImageAttribute

func (ec2 *EC2) ImageAttribute(imageId, attribute string) (resp *ImageAttributeResp, err error)

ImageAttribute describes an attribute of an AMI. You can specify only one attribute at a time. Valid attributes are:

description | kernel | ramdisk | launchPermission | productCodes | blockDeviceMapping

See http://goo.gl/bHO3zT for more details.

func (*EC2) Images

func (ec2 *EC2) Images(ids []string, filter *Filter) (resp *ImagesResp, err error)

Images returns details about available images. The ids and filter parameters, if provided, will limit the images returned. For example, to get all the private images associated with this account set the boolean filter "is-public" to 0. For list of filters: http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeImages.html

Note: calling this function with nil ids and filter parameters will result in a very large number of images being returned.

See http://goo.gl/SRBhW for more details.

func (*EC2) ImagesByOwners

func (ec2 *EC2) ImagesByOwners(ids []string, owners []string, filter *Filter) (resp *ImagesResp, err error)

ImagesByOwners returns details about available images. The ids, owners, and filter parameters, if provided, will limit the images returned. For example, to get all the private images associated with this account set the boolean filter "is-public" to 0. For list of filters: http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeImages.html

Note: calling this function with nil ids and filter parameters will result in a very large number of images being returned.

See http://goo.gl/SRBhW for more details.

func (*EC2) ImportKeyPair

func (ec2 *EC2) ImportKeyPair(keyname string, key string) (resp *ImportKeyPairResponse, err error)

ImportKeyPair imports a key into AWS

See http://goo.gl/NbZUvw

func (*EC2) Instances

func (ec2 *EC2) Instances(instIds []string, filter *Filter) (resp *InstancesResp, err error)

Instances returns details about instances in EC2. Both parameters are optional, and if provided will limit the instances returned to those matching the given instance ids or filtering rules.

See http://goo.gl/4No7c for more details.

func (*EC2) KeyPairs

func (ec2 *EC2) KeyPairs(keynames []string, filter *Filter) (resp *KeyPairsResp, err error)

KeyPairs returns list of key pairs for this account

See http://goo.gl/Apzsfz

func (*EC2) ModifyImageAttribute

func (ec2 *EC2) ModifyImageAttribute(imageId string, options *ModifyImageAttribute) (resp *SimpleResp, err error)

ModifyImageAttribute sets attributes for an image.

See http://goo.gl/YUjO4G for more details.

func (*EC2) ModifyInstance

func (ec2 *EC2) ModifyInstance(instId string, options *ModifyInstance) (resp *ModifyInstanceResp, err error)

ModifyImageAttribute modifies the specified attribute of the specified instance. You can specify only one attribute at a time. To modify some attributes, the instance must be stopped.

See http://goo.gl/icuXh5 for more details.

func (*EC2) ModifyVpcAttribute

func (ec2 *EC2) ModifyVpcAttribute(vpcId string, options *ModifyVpcAttribute) (*SimpleResp, error)

ModifyVpcAttribute modifies the specified attribute of the specified VPC.

See http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/index.html?ApiReference-query-ModifyVpcAttribute.html for more details.

func (*EC2) ReassociateRouteTable

func (ec2 *EC2) ReassociateRouteTable(id, routeTableId string) (*ReassociateRouteTableResp, error)

Re-associate a routing table.

func (*EC2) RebootInstances

func (ec2 *EC2) RebootInstances(ids ...string) (resp *SimpleResp, err error)

RebootInstance requests a reboot of one or more instances. This operation is asynchronous; it only queues a request to reboot the specified instance(s). The operation will succeed if the instances are valid and belong to you.

Requests to reboot terminated instances are ignored.

See http://goo.gl/baoUf for more details.

func (*EC2) RegisterImage

func (ec2 *EC2) RegisterImage(options *RegisterImage) (resp *RegisterImageResp, err error)

Registers a new AMI with EC2.

See: http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-RegisterImage.html

func (*EC2) ReleaseAddress

func (ec2 *EC2) ReleaseAddress(id string) (resp *SimpleResp, err error)

Release an Elastic IP (VPC).

func (*EC2) ReleasePublicAddress

func (ec2 *EC2) ReleasePublicAddress(publicIp string) (resp *SimpleResp, err error)

Release an Elastic IP (Public)

func (*EC2) ReplaceRoute

func (ec2 *EC2) ReplaceRoute(options *ReplaceRoute) (resp *SimpleResp, err error)

Replace a new route.

func (*EC2) RequestSpotInstances

func (ec2 *EC2) RequestSpotInstances(options *RequestSpotInstances) (resp *RequestSpotInstancesResp, err error)

RequestSpotInstances requests a new spot instances in EC2.

func (*EC2) ResetImageAttribute

func (ec2 *EC2) ResetImageAttribute(imageId string, options *ResetImageAttribute) (resp *SimpleResp, err error)

ResetImageAttribute resets an attribute of an AMI to its default value.

http://goo.gl/r6ZCPm for more details.

func (*EC2) RevokeSecurityGroup

func (ec2 *EC2) RevokeSecurityGroup(group SecurityGroup, perms []IPPerm) (resp *SimpleResp, err error)

RevokeSecurityGroup revokes permissions from a group.

See http://goo.gl/ZgdxA for more details.

func (*EC2) RunInstances

func (ec2 *EC2) RunInstances(options *RunInstances) (resp *RunInstancesResp, err error)

RunInstances starts new instances in EC2. If options.MinCount and options.MaxCount are both zero, a single instance will be started; otherwise if options.MaxCount is zero, options.MinCount will be used insteead.

See http://goo.gl/Mcm3b for more details.

func (*EC2) SecurityGroups

func (ec2 *EC2) SecurityGroups(groups []SecurityGroup, filter *Filter) (resp *SecurityGroupsResp, err error)

SecurityGroups returns details about security groups in EC2. Both parameters are optional, and if provided will limit the security groups returned to those matching the given groups or filtering rules.

See http://goo.gl/k12Uy for more details.

func (*EC2) Snapshots

func (ec2 *EC2) Snapshots(ids []string, filter *Filter) (resp *SnapshotsResp, err error)

Snapshots returns details about volume snapshots available to the user. The ids and filter parameters, if provided, limit the snapshots returned.

See http://goo.gl/ogJL4 for more details.

func (*EC2) StartInstances

func (ec2 *EC2) StartInstances(ids ...string) (resp *StartInstanceResp, err error)

StartInstances starts an Amazon EBS-backed AMI that you've previously stopped.

See http://goo.gl/awKeF for more details.

func (*EC2) StopInstances

func (ec2 *EC2) StopInstances(ids ...string) (resp *StopInstanceResp, err error)

StopInstances requests stopping one or more Amazon EBS-backed instances.

See http://goo.gl/436dJ for more details.

func (*EC2) Tags

func (ec2 *EC2) Tags(filter *Filter) (*TagsResp, error)

func (*EC2) TerminateInstances

func (ec2 *EC2) TerminateInstances(instIds []string) (resp *TerminateInstancesResp, err error)

TerminateInstances requests the termination of instances when the given ids.

See http://goo.gl/3BKHj for more details.

func (*EC2) Volumes

func (ec2 *EC2) Volumes(volIds []string, filter *Filter) (resp *VolumesResp, err error)

Finds or lists all volumes.

func (*EC2) VpcAttribute

func (ec2 *EC2) VpcAttribute(vpcId, attribute string) (resp *VpcAttributeResp, err error)

VpcAttribute describes an attribute of a VPC. You can specify only one attribute at a time. Valid attributes are:

enableDnsSupport | enableDnsHostnames

See http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/index.html?ApiReference-query-DescribeVpcAttribute.html for more details.

type Error

type Error struct {
	// HTTP status code (200, 403, ...)
	StatusCode int
	// EC2 error code ("UnsupportedOperation", ...)
	Code string
	// The human-oriented error message
	Message   string
	RequestId string `xml:"RequestID"`
}

Error encapsulates an error returned by EC2.

See http://goo.gl/VZGuC for more details.

func (*Error) Error

func (err *Error) Error() string

type Filter

type Filter struct {
	// contains filtered or unexported fields
}

Filter builds filtering parameters to be used in an EC2 query which supports filtering. For example:

filter := NewFilter()
filter.Add("architecture", "i386")
filter.Add("launch-index", "0")
resp, err := ec2.Instances(nil, filter)

func NewFilter

func NewFilter() *Filter

NewFilter creates a new Filter.

func (*Filter) Add

func (f *Filter) Add(name string, value ...string)

Add appends a filtering parameter with the given name and value(s).

type IPPerm

type IPPerm struct {
	Protocol     string              `xml:"ipProtocol"`
	FromPort     int                 `xml:"fromPort"`
	ToPort       int                 `xml:"toPort"`
	SourceIPs    []string            `xml:"ipRanges>item>cidrIp"`
	SourceGroups []UserSecurityGroup `xml:"groups>item"`
}

IPPerm represents an allowance within an EC2 security group.

See http://goo.gl/4oTxv for more details.

type Image

type Image struct {
	Id                 string               `xml:"imageId"`
	Name               string               `xml:"name"`
	Description        string               `xml:"description"`
	Type               string               `xml:"imageType"`
	State              string               `xml:"imageState"`
	Location           string               `xml:"imageLocation"`
	Public             bool                 `xml:"isPublic"`
	Architecture       string               `xml:"architecture"`
	Platform           string               `xml:"platform"`
	ProductCodes       []string             `xml:"productCode>item>productCode"`
	KernelId           string               `xml:"kernelId"`
	RamdiskId          string               `xml:"ramdiskId"`
	StateReason        string               `xml:"stateReason"`
	OwnerId            string               `xml:"imageOwnerId"`
	OwnerAlias         string               `xml:"imageOwnerAlias"`
	RootDeviceType     string               `xml:"rootDeviceType"`
	RootDeviceName     string               `xml:"rootDeviceName"`
	VirtualizationType string               `xml:"virtualizationType"`
	Hypervisor         string               `xml:"hypervisor"`
	BlockDevices       []BlockDeviceMapping `xml:"blockDeviceMapping>item"`
	Tags               []Tag                `xml:"tagSet>item"`
}

Image represents details about an image.

See http://goo.gl/iSqJG for more details.

type ImageAttributeResp

type ImageAttributeResp struct {
	RequestId    string               `xml:"requestId"`
	ImageId      string               `xml:"imageId"`
	Kernel       string               `xml:"kernel>value"`
	RamDisk      string               `xml:"ramdisk>value"`
	Description  string               `xml:"description>value"`
	Group        string               `xml:"launchPermission>item>group"`
	UserIds      []string             `xml:"launchPermission>item>userId"`
	ProductCodes []string             `xml:"productCodes>item>productCode"`
	BlockDevices []BlockDeviceMapping `xml:"blockDeviceMapping>item"`
}

Response to a DescribeImageAttribute request.

See http://goo.gl/bHO3zT for more details.

type ImagesResp

type ImagesResp struct {
	RequestId string  `xml:"requestId"`
	Images    []Image `xml:"imagesSet>item"`
}

Response to a DescribeImages request.

See http://goo.gl/hLnyg for more details.

type ImportKeyPairResponse

type ImportKeyPairResponse struct {
	RequestId      string `xml:"requestId"`
	KeyName        string `xml:"keyName"`
	KeyFingerprint string `xml:"keyFingerprint"`
}

type Instance

type Instance struct {
	InstanceId         string          `xml:"instanceId"`
	InstanceType       string          `xml:"instanceType"`
	ImageId            string          `xml:"imageId"`
	PrivateDNSName     string          `xml:"privateDnsName"`
	DNSName            string          `xml:"dnsName"`
	KeyName            string          `xml:"keyName"`
	AMILaunchIndex     int             `xml:"amiLaunchIndex"`
	Hypervisor         string          `xml:"hypervisor"`
	VirtType           string          `xml:"virtualizationType"`
	Monitoring         string          `xml:"monitoring>state"`
	AvailZone          string          `xml:"placement>availabilityZone"`
	PlacementGroupName string          `xml:"placement>groupName"`
	State              InstanceState   `xml:"instanceState"`
	Tags               []Tag           `xml:"tagSet>item"`
	VpcId              string          `xml:"vpcId"`
	SubnetId           string          `xml:"subnetId"`
	IamInstanceProfile string          `xml:"iamInstanceProfile"`
	PrivateIpAddress   string          `xml:"privateIpAddress"`
	PublicIpAddress    string          `xml:"ipAddress"`
	Architecture       string          `xml:"architecture"`
	LaunchTime         time.Time       `xml:"launchTime"`
	SourceDestCheck    bool            `xml:"sourceDestCheck"`
	SecurityGroups     []SecurityGroup `xml:"groupSet>item"`
}

Instance encapsulates a running instance in EC2.

See http://goo.gl/OCH8a for more details.

type InstanceState

type InstanceState struct {
	Code int    `xml:"code"` // Watch out, bits 15-8 have unpublished meaning.
	Name string `xml:"name"`
}

InstanceState encapsulates the state of an instance in EC2.

See http://goo.gl/y3ZBq for more details.

type InstanceStateChange

type InstanceStateChange struct {
	InstanceId    string        `xml:"instanceId"`
	CurrentState  InstanceState `xml:"currentState"`
	PreviousState InstanceState `xml:"previousState"`
}

InstanceStateChange informs of the previous and current states for an instance when a state change is requested.

type InstancesResp

type InstancesResp struct {
	RequestId    string        `xml:"requestId"`
	Reservations []Reservation `xml:"reservationSet>item"`
}

Response to a DescribeInstances request.

See http://goo.gl/mLbmw for more details.

type InternetGateway

type InternetGateway struct {
	InternetGatewayId string                      `xml:"internetGatewayId"`
	Attachments       []InternetGatewayAttachment `xml:"attachmentSet>item"`
	Tags              []Tag                       `xml:"tagSet>item"`
}

Internet Gateway

type InternetGatewayAttachment

type InternetGatewayAttachment struct {
	VpcId string `xml:"vpcId"`
	State string `xml:"state"`
}

type InternetGatewaysResp

type InternetGatewaysResp struct {
	RequestId        string            `xml:"requestId"`
	InternetGateways []InternetGateway `xml:"internetGatewaySet>item"`
}

Response to a DescribeInternetGateways request.

type KeyPair

type KeyPair struct {
	Name        string `xml:"keyName"`
	Fingerprint string `xml:"keyFingerprint"`
}

type KeyPairsResp

type KeyPairsResp struct {
	RequestId string    `xml:"requestId"`
	Keys      []KeyPair `xml:"keySet>item"`
}

type ModifyImageAttribute

type ModifyImageAttribute struct {
	AddUsers     []string
	RemoveUsers  []string
	AddGroups    []string
	RemoveGroups []string
	ProductCodes []string
	Description  string
}

The ModifyImageAttribute request parameters.

type ModifyInstance

type ModifyInstance struct {
	InstanceType          string
	BlockDevices          []BlockDeviceMapping
	DisableAPITermination bool
	EbsOptimized          bool
	SecurityGroups        []SecurityGroup
	ShutdownBehavior      string
	KernelId              string
	RamdiskId             string
	SourceDestCheck       bool
	SriovNetSupport       bool
	UserData              []byte

	SetSourceDestCheck bool
}

The ModifyInstanceAttribute request parameters.

type ModifyInstanceResp

type ModifyInstanceResp struct {
	RequestId string `xml:"requestId"`
	Return    bool   `xml:"return"`
}

Response to a ModifyInstanceAttribute request.

http://goo.gl/icuXh5 for more details.

type ModifyVpcAttribute

type ModifyVpcAttribute struct {
	EnableDnsSupport   bool
	EnableDnsHostnames bool

	SetEnableDnsSupport   bool
	SetEnableDnsHostnames bool
}

The ModifyVpcAttribute request parameters.

See http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/index.html?ApiReference-query-DescribeVpcAttribute.html for more details.

type ReassociateRouteTableResp

type ReassociateRouteTableResp struct {
	RequestId     string `xml:"requestId"`
	AssociationId string `xml:"newAssociationId"`
}

type RegisterImage

type RegisterImage struct {
	ImageLocation   string
	Name            string
	Description     string
	Architecture    string
	KernelId        string
	RamdiskId       string
	RootDeviceName  string
	VirtType        string
	SriovNetSupport string
	BlockDevices    []BlockDeviceMapping
}

The RegisterImage request parameters.

type RegisterImageResp

type RegisterImageResp struct {
	RequestId string `xml:"requestId"`
	ImageId   string `xml:"imageId"`
}

Response to a RegisterImage request.

type ReplaceRoute

type ReplaceRoute struct {
	RouteTableId           string
	DestinationCidrBlock   string
	GatewayId              string
	InstanceId             string
	NetworkInterfaceId     string
	VpcPeeringConnectionId string
}

type RequestSpotInstances

type RequestSpotInstances struct {
	SpotPrice                string
	InstanceCount            int
	Type                     string
	ImageId                  string
	KeyName                  string
	InstanceType             string
	SecurityGroups           []SecurityGroup
	IamInstanceProfile       string
	KernelId                 string
	RamdiskId                string
	UserData                 []byte
	AvailZone                string
	PlacementGroupName       string
	Monitoring               bool
	SubnetId                 string
	AssociatePublicIpAddress bool
	PrivateIPAddress         string
	BlockDevices             []BlockDeviceMapping
}

The RequestSpotInstances type encapsulates options for the respective request in EC2.

See http://goo.gl/GRZgCD for more details.

type RequestSpotInstancesResp

type RequestSpotInstancesResp struct {
	RequestId          string              `xml:"requestId"`
	SpotRequestResults []SpotRequestResult `xml:"spotInstanceRequestSet>item"`
}

Response to a RequestSpotInstances request.

See http://goo.gl/GRZgCD for more details.

type Reservation

type Reservation struct {
	ReservationId  string          `xml:"reservationId"`
	OwnerId        string          `xml:"ownerId"`
	RequesterId    string          `xml:"requesterId"`
	SecurityGroups []SecurityGroup `xml:"groupSet>item"`
	Instances      []Instance      `xml:"instancesSet>item"`
}

Reservation represents details about a reservation in EC2.

See http://goo.gl/0ItPT for more details.

type ResetImageAttribute

type ResetImageAttribute struct {
	Attribute string
}

The ResetImageAttribute request parameters.

type ResourceTag

type ResourceTag struct {
	Tag
	ResourceId   string `xml:"resourceId"`
	ResourceType string `xml:"resourceType"`
}

type Route

type Route struct {
	DestinationCidrBlock   string `xml:"destinationCidrBlock"`
	GatewayId              string `xml:"gatewayId"`
	InstanceId             string `xml:"instanceId"`
	InstanceOwnerId        string `xml:"instanceOwnerId"`
	NetworkInterfaceId     string `xml:"networkInterfaceId"`
	State                  string `xml:"state"`
	Origin                 string `xml:"origin"`
	VpcPeeringConnectionId string `xml:"vpcPeeringConnectionId"`
}

type RouteTable

type RouteTable struct {
	RouteTableId string                  `xml:"routeTableId"`
	VpcId        string                  `xml:"vpcId"`
	Associations []RouteTableAssociation `xml:"associationSet>item"`
	Routes       []Route                 `xml:"routeSet>item"`
	Tags         []Tag                   `xml:"tagSet>item"`
}

Routing Table

type RouteTableAssociation

type RouteTableAssociation struct {
	AssociationId string `xml:"routeTableAssociationId"`
	RouteTableId  string `xml:"routeTableId"`
	SubnetId      string `xml:"subnetId"`
	Main          bool   `xml:"main"`
}

type RouteTablesResp

type RouteTablesResp struct {
	RequestId   string       `xml:"requestId"`
	RouteTables []RouteTable `xml:"routeTableSet>item"`
}

Response to a DescribeRouteTables request.

type RunInstances

type RunInstances struct {
	ImageId                  string
	MinCount                 int
	MaxCount                 int
	KeyName                  string
	InstanceType             string
	SecurityGroups           []SecurityGroup
	IamInstanceProfile       string
	KernelId                 string
	RamdiskId                string
	UserData                 []byte
	AvailZone                string
	PlacementGroupName       string
	Monitoring               bool
	SubnetId                 string
	AssociatePublicIpAddress bool
	DisableAPITermination    bool
	ShutdownBehavior         string
	PrivateIPAddress         string
	BlockDevices             []BlockDeviceMapping
}

The RunInstances type encapsulates options for the respective request in EC2.

See http://goo.gl/Mcm3b for more details.

type RunInstancesResp

type RunInstancesResp struct {
	RequestId      string          `xml:"requestId"`
	ReservationId  string          `xml:"reservationId"`
	OwnerId        string          `xml:"ownerId"`
	SecurityGroups []SecurityGroup `xml:"groupSet>item"`
	Instances      []Instance      `xml:"instancesSet>item"`
}

Response to a RunInstances request.

See http://goo.gl/Mcm3b for more details.

type SecurityGroup

type SecurityGroup struct {
	Id          string `xml:"groupId"`
	Name        string `xml:"groupName"`
	Description string `xml:"groupDescription"`
	VpcId       string `xml:"vpcId"`
}

SecurityGroup represents an EC2 security group. If SecurityGroup is used as a parameter, then one of Id or Name may be empty. If both are set, then Id is used.

func SecurityGroupIds

func SecurityGroupIds(ids ...string) []SecurityGroup

SecurityGroupNames is a convenience function that returns a slice of security groups with the given ids.

func SecurityGroupNames

func SecurityGroupNames(names ...string) []SecurityGroup

SecurityGroupNames is a convenience function that returns a slice of security groups with the given names.

type SecurityGroupInfo

type SecurityGroupInfo struct {
	SecurityGroup
	OwnerId     string   `xml:"ownerId"`
	Description string   `xml:"groupDescription"`
	IPPerms     []IPPerm `xml:"ipPermissions>item"`
}

SecurityGroup encapsulates details for a security group in EC2.

See http://goo.gl/CIdyP for more details.

type SecurityGroupsResp

type SecurityGroupsResp struct {
	RequestId string              `xml:"requestId"`
	Groups    []SecurityGroupInfo `xml:"securityGroupInfo>item"`
}

SecurityGroupsResp represents a response to a DescribeSecurityGroups request in EC2.

See http://goo.gl/k12Uy for more details.

type SimpleResp

type SimpleResp struct {
	XMLName   xml.Name
	RequestId string `xml:"requestId"`
}

SimpleResp represents a response to an EC2 request which on success will return no other information besides a request id.

type Snapshot

type Snapshot struct {
	Id          string `xml:"snapshotId"`
	VolumeId    string `xml:"volumeId"`
	VolumeSize  string `xml:"volumeSize"`
	Status      string `xml:"status"`
	StartTime   string `xml:"startTime"`
	Description string `xml:"description"`
	Progress    string `xml:"progress"`
	OwnerId     string `xml:"ownerId"`
	OwnerAlias  string `xml:"ownerAlias"`
	Encrypted   bool   `xml:"encrypted"`
	Tags        []Tag  `xml:"tagSet>item"`
}

Snapshot represents details about a volume snapshot.

See http://goo.gl/nkovs for more details.

type SnapshotsResp

type SnapshotsResp struct {
	RequestId string     `xml:"requestId"`
	Snapshots []Snapshot `xml:"snapshotSet>item"`
}

Response to a DescribeSnapshots request.

See http://goo.gl/nClDT for more details.

type SpotInstanceSpec

type SpotInstanceSpec struct {
	ImageId                  string
	KeyName                  string
	InstanceType             string
	SecurityGroups           []SecurityGroup
	IamInstanceProfile       string
	KernelId                 string
	RamdiskId                string
	UserData                 []byte
	AvailZone                string
	PlacementGroupName       string
	Monitoring               bool
	SubnetId                 string
	AssociatePublicIpAddress bool
	PrivateIPAddress         string
	BlockDevices             []BlockDeviceMapping
}

type SpotLaunchSpec

type SpotLaunchSpec struct {
	ImageId            string               `xml:"imageId"`
	KeyName            string               `xml:"keyName"`
	InstanceType       string               `xml:"instanceType"`
	SecurityGroups     []SecurityGroup      `xml:"groupSet>item"`
	IamInstanceProfile string               `xml:"iamInstanceProfile"`
	KernelId           string               `xml:"kernelId"`
	RamdiskId          string               `xml:"ramdiskId"`
	PlacementGroupName string               `xml:"placement>groupName"`
	Monitoring         bool                 `xml:"monitoring>enabled"`
	SubnetId           string               `xml:"subnetId"`
	BlockDevices       []BlockDeviceMapping `xml:"blockDeviceMapping>item"`
}

type SpotRequestResult

type SpotRequestResult struct {
	SpotRequestId  string         `xml:"spotInstanceRequestId"`
	SpotPrice      string         `xml:"spotPrice"`
	Type           string         `xml:"type"`
	AvailZone      string         `xml:"launchedAvailabilityZone"`
	InstanceId     string         `xml:"instanceId"`
	State          string         `xml:"state"`
	Status         SpotStatus     `xml:"status"`
	SpotLaunchSpec SpotLaunchSpec `xml:"launchSpecification"`
	CreateTime     string         `xml:"createTime"`
	Tags           []Tag          `xml:"tagSet>item"`
}

type SpotRequestsResp

type SpotRequestsResp struct {
	RequestId          string              `xml:"requestId"`
	SpotRequestResults []SpotRequestResult `xml:"spotInstanceRequestSet>item"`
}

Response to a DescribeSpotInstanceRequests request.

See http://goo.gl/KsKJJk for more details.

type SpotStatus

type SpotStatus struct {
	Code       string `xml:"code"`
	UpdateTime string `xml:"updateTime"`
	Message    string `xml:"message"`
}

type StartInstanceResp

type StartInstanceResp struct {
	RequestId    string                `xml:"requestId"`
	StateChanges []InstanceStateChange `xml:"instancesSet>item"`
}

Response to a StartInstances request.

See http://goo.gl/awKeF for more details.

type StopInstanceResp

type StopInstanceResp struct {
	RequestId    string                `xml:"requestId"`
	StateChanges []InstanceStateChange `xml:"instancesSet>item"`
}

Response to a StopInstances request.

See http://goo.gl/436dJ for more details.

type Subnet

type Subnet struct {
	SubnetId                string `xml:"subnetId"`
	State                   string `xml:"state"`
	VpcId                   string `xml:"vpcId"`
	CidrBlock               string `xml:"cidrBlock"`
	AvailableIpAddressCount int    `xml:"availableIpAddressCount"`
	AvailabilityZone        string `xml:"availabilityZone"`
	DefaultForAZ            bool   `xml:"defaultForAz"`
	MapPublicIpOnLaunch     bool   `xml:"mapPublicIpOnLaunch"`
	Tags                    []Tag  `xml:"tagSet>item"`
}

Subnet

type SubnetsResp

type SubnetsResp struct {
	RequestId string   `xml:"requestId"`
	Subnets   []Subnet `xml:"subnetSet>item"`
}

Response to a DescribeSubnets request.

type Tag

type Tag struct {
	Key   string `xml:"key"`
	Value string `xml:"value"`
}

ResourceTag represents key-value metadata used to classify and organize EC2 instances.

See http://goo.gl/bncl3 for more details

type TagsResp

type TagsResp struct {
	RequestId string        `xml:"requestId"`
	Tags      []ResourceTag `xml:"tagSet>item"`
}

type TerminateInstancesResp

type TerminateInstancesResp struct {
	RequestId    string                `xml:"requestId"`
	StateChanges []InstanceStateChange `xml:"instancesSet>item"`
}

Response to a TerminateInstances request.

See http://goo.gl/3BKHj for more details.

type UserSecurityGroup

type UserSecurityGroup struct {
	Id      string `xml:"groupId"`
	Name    string `xml:"groupName"`
	OwnerId string `xml:"userId"`
}

UserSecurityGroup holds a security group and the owner of that group.

type VPC

type VPC struct {
	VpcId           string `xml:"vpcId"`
	State           string `xml:"state"`
	CidrBlock       string `xml:"cidrBlock"`
	DHCPOptionsID   string `xml:"dhcpOptionsId"`
	InstanceTenancy string `xml:"instanceTenancy"`
	IsDefault       bool   `xml:"isDefault"`
	Tags            []Tag  `xml:"tagSet>item"`
}

VPC represents a single VPC.

type Volume

type Volume struct {
	VolumeId    string             `xml:"volumeId"`
	Size        string             `xml:"size"`
	SnapshotId  string             `xml:"snapshotId"`
	AvailZone   string             `xml:"availabilityZone"`
	Status      string             `xml:"status"`
	Attachments []VolumeAttachment `xml:"attachmentSet>item"`
	VolumeType  string             `xml:"volumeType"`
	IOPS        int64              `xml:"iops"`
	Encrypted   bool               `xml:"encrypted"`
	Tags        []Tag              `xml:"tagSet>item"`
}

Volume is a single volume.

type VolumeAttachment

type VolumeAttachment struct {
	VolumeId   string `xml:"volumeId"`
	InstanceId string `xml:"instanceId"`
	Device     string `xml:"device"`
	Status     string `xml:"status"`
}

type VolumesResp

type VolumesResp struct {
	RequestId string   `xml:"requestId"`
	Volumes   []Volume `xml:"volumeSet>item"`
}

Response to a DescribeVolumes request

type VpcAttributeResp

type VpcAttributeResp struct {
	RequestId          string `xml:"requestId"`
	VpcId              string `xml:"vpcId"`
	EnableDnsSupport   bool   `xml:"enableDnsSupport>value"`
	EnableDnsHostnames bool   `xml:"enableDnsHostnames>value"`
}

Response to a DescribeVpcAttribute request.

See http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/index.html?ApiReference-query-DescribeVpcAttribute.html for more details.

type VpcsResp

type VpcsResp struct {
	RequestId string `xml:"requestId"`
	VPCs      []VPC  `xml:"vpcSet>item"`
}

Response to a DescribeVpcs request.

Directories

Path Synopsis
The ec2test package implements a fake EC2 provider with the capability of inducing errors on any given operation, and retrospectively determining what operations have been carried out.
The ec2test package implements a fake EC2 provider with the capability of inducing errors on any given operation, and retrospectively determining what operations have been carried out.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL