# Copyright (c) 2012-2013, Mark Peek <mark@peek.org>
# All rights reserved.
#
# See LICENSE file for full license.

from aws import Action, BaseARN

service_name = 'Amazon EC2'
prefix = 'ec2'


class ARN(BaseARN):
    def __init__(self, resource, region='', account=''):
        sup = super(ARN, self)
        sup.__init__(service=prefix, resource=resource, region=region,
                     account=account)


class EC2Action(Action):
    def __init__(self, action=None):
        self.prefix = prefix
        self.action = action

AcceptVpcPeeringConnection = EC2Action('AcceptVpcPeeringConnection')
ActivateLicense = EC2Action('ActivateLicense')
AllocateAddress = EC2Action('AllocateAddress')
AssignPrivateIpAddresses = EC2Action('AssignPrivateIpAddresses')
AssociateAddress = EC2Action('AssociateAddress')
AssociateDhcpOptions = EC2Action('AssociateDhcpOptions')
AssociateRouteTable = EC2Action('AssociateRouteTable')
AttachInternetGateway = EC2Action('AttachInternetGateway')
AttachNetworkInterface = EC2Action('AttachNetworkInterface')
AttachVolume = EC2Action('AttachVolume')
AttachVpnGateway = EC2Action('AttachVpnGateway')
AuthorizeSecurityGroupEgress = EC2Action('AuthorizeSecurityGroupEgress')
AuthorizeSecurityGroupIngress = EC2Action('AuthorizeSecurityGroupIngress')
BundleInstance = EC2Action('BundleInstance')
CancelBundleTask = EC2Action('CancelBundleTask')
CancelConversionTask = EC2Action('CancelConversionTask')
CancelExportTask = EC2Action('CancelExportTask')
CancelReservedInstancesListing = EC2Action('CancelReservedInstancesListing')
CancelSpotInstanceRequests = EC2Action('CancelSpotInstanceRequests')
ConfirmProductInstance = EC2Action('ConfirmProductInstance')
CopyImage = EC2Action('CopyImage')
CopySnapshot = EC2Action('CopySnapshot')
CreateCustomerGateway = EC2Action('CreateCustomerGateway')
CreateDhcpOptions = EC2Action('CreateDhcpOptions')
CreateImage = EC2Action('CreateImage')
CreateInstanceExportTask = EC2Action('CreateInstanceExportTask')
CreateInternetGateway = EC2Action('CreateInternetGateway')
CreateKeyPair = EC2Action('CreateKeyPair')
CreateNetworkAcl = EC2Action('CreateNetworkAcl')
CreateNetworkAclEntry = EC2Action('CreateNetworkAclEntry')
CreateNetworkInterface = EC2Action('CreateNetworkInterface')
CreatePlacementGroup = EC2Action('CreatePlacementGroup')
CreateReservedInstancesListing = EC2Action('CreateReservedInstancesListing')
CreateRoute = EC2Action('CreateRoute')
CreateRouteTable = EC2Action('CreateRouteTable')
CreateSecurityGroup = EC2Action('CreateSecurityGroup')
CreateSnapshot = EC2Action('CreateSnapshot')
CreateSpotDatafeedSubscription = EC2Action('CreateSpotDatafeedSubscription')
CreateSubnet = EC2Action('CreateSubnet')
CreateTags = EC2Action('CreateTags')
CreateVolume = EC2Action('CreateVolume')
CreateVpc = EC2Action('CreateVpc')
CreateVpcPeeringConnection = EC2Action('CreateVpcPeeringConnection')
CreateVpnConnection = EC2Action('CreateVpnConnection')
CreateVpnConnectionRoute = EC2Action('CreateVpnConnectionRoute')
CreateVpnGateway = EC2Action('CreateVpnGateway')
DeactivateLicense = EC2Action('DeactivateLicense')
DeleteCustomerGateway = EC2Action('DeleteCustomerGateway')
DeleteDhcpOptions = EC2Action('DeleteDhcpOptions')
DeleteInternetGateway = EC2Action('DeleteInternetGateway')
DeleteKeyPair = EC2Action('DeleteKeyPair')
DeleteNetworkAcl = EC2Action('DeleteNetworkAcl')
DeleteNetworkAclEntry = EC2Action('DeleteNetworkAclEntry')
DeleteNetworkInterface = EC2Action('DeleteNetworkInterface')
DeletePlacementGroup = EC2Action('DeletePlacementGroup')
DeleteRoute = EC2Action('DeleteRoute')
DeleteRouteTable = EC2Action('DeleteRouteTable')
DeleteSecurityGroup = EC2Action('DeleteSecurityGroup')
DeleteSnapshot = EC2Action('DeleteSnapshot')
DeleteSpotDatafeedSubscription = EC2Action('DeleteSpotDatafeedSubscription')
DeleteSubnet = EC2Action('DeleteSubnet')
DeleteTags = EC2Action('DeleteTags')
DeleteVolume = EC2Action('DeleteVolume')
DeleteVpc = EC2Action('DeleteVpc')
DeleteVpcPeeringConnection = EC2Action('DeleteVpcPeeringConnection')
DeleteVpnConnection = EC2Action('DeleteVpnConnection')
DeleteVpnConnectionRoute = EC2Action('DeleteVpnConnectionRoute')
DeleteVpnGateway = EC2Action('DeleteVpnGateway')
DeregisterImage = EC2Action('DeregisterImage')
DescribeAccountAttributes = EC2Action('DescribeAccountAttributes')
DescribeAddresses = EC2Action('DescribeAddresses')
DescribeAvailabilityZones = EC2Action('DescribeAvailabilityZones')
DescribeBundleTasks = EC2Action('DescribeBundleTasks')
DescribeConversionTasks = EC2Action('DescribeConversionTasks')
DescribeCustomerGateways = EC2Action('DescribeCustomerGateways')
DescribeDhcpOptions = EC2Action('DescribeDhcpOptions')
DescribeExportTasks = EC2Action('DescribeExportTasks')
DescribeImageAttribute = EC2Action('DescribeImageAttribute')
DescribeImages = EC2Action('DescribeImages')
DescribeInstanceAttribute = EC2Action('DescribeInstanceAttribute')
DescribeInstanceStatus = EC2Action('DescribeInstanceStatus')
DescribeInstances = EC2Action('DescribeInstances')
DescribeInternetGateways = EC2Action('DescribeInternetGateways')
DescribeKeyPairs = EC2Action('DescribeKeyPairs')
DescribeLicenses = EC2Action('DescribeLicenses')
DescribeNetworkAcls = EC2Action('DescribeNetworkAcls')
DescribeNetworkInterfaceAttribute = \
    EC2Action('DescribeNetworkInterfaceAttribute')
DescribeNetworkInterfaces = EC2Action('DescribeNetworkInterfaces')
DescribePlacementGroups = EC2Action('DescribePlacementGroups')
DescribeRegions = EC2Action('DescribeRegions')
DescribeReservedInstances = EC2Action('DescribeReservedInstances')
DescribeReservedInstancesListings = \
    EC2Action('DescribeReservedInstancesListings')
DescribeReservedInstancesModifications = \
    EC2Action('DescribeReservedInstancesModifications')
DescribeReservedInstancesOfferings = \
    EC2Action('DescribeReservedInstancesOfferings')
DescribeRouteTables = EC2Action('DescribeRouteTables')
DescribeSecurityGroups = EC2Action('DescribeSecurityGroups')
DescribeSnapshotAttribute = EC2Action('DescribeSnapshotAttribute')
DescribeSnapshots = EC2Action('DescribeSnapshots')
DescribeSpotDatafeedSubscription = \
    EC2Action('DescribeSpotDatafeedSubscription')
DescribeSpotInstanceRequests = EC2Action('DescribeSpotInstanceRequests')
DescribeSpotPriceHistory = EC2Action('DescribeSpotPriceHistory')
DescribeSubnets = EC2Action('DescribeSubnets')
DescribeTags = EC2Action('DescribeTags')
DescribeVolumeAttribute = EC2Action('DescribeVolumeAttribute')
DescribeVolumeStatus = EC2Action('DescribeVolumeStatus')
DescribeVolumes = EC2Action('DescribeVolumes')
DescribeVpcAttribute = EC2Action('DescribeVpcAttribute')
DescribeVpcs = EC2Action('DescribeVpcs')
DescribeVpcPeeringConnection = EC2Action('DescribeVpcPeeringConnection')
DescribeVpnConnections = EC2Action('DescribeVpnConnections')
DescribeVpnGateways = EC2Action('DescribeVpnGateways')
DetachInternetGateway = EC2Action('DetachInternetGateway')
DetachNetworkInterface = EC2Action('DetachNetworkInterface')
DetachVolume = EC2Action('DetachVolume')
DetachVpnGateway = EC2Action('DetachVpnGateway')
DisableVgwRoutePropagation = EC2Action('DisableVgwRoutePropagation')
DisassociateAddress = EC2Action('DisassociateAddress')
DisassociateRouteTable = EC2Action('DisassociateRouteTable')
EnableVgwRoutePropagation = EC2Action('EnableVgwRoutePropagation')
EnableVolumeIO = EC2Action('EnableVolumeIO')
GetConsoleOutput = EC2Action('GetConsoleOutput')
GetPasswordData = EC2Action('GetPasswordData')
ImportInstance = EC2Action('ImportInstance')
ImportKeyPair = EC2Action('ImportKeyPair')
ImportVolume = EC2Action('ImportVolume')
ModifyImageAttribute = EC2Action('ModifyImageAttribute')
ModifyInstanceAttribute = EC2Action('ModifyInstanceAttribute')
ModifyNetworkInterfaceAttribute = EC2Action('ModifyNetworkInterfaceAttribute')
ModifyReservedInstances = EC2Action('ModifyReservedInstances')
ModifySnapshotAttribute = EC2Action('ModifySnapshotAttribute')
ModifyVolumeAttribute = EC2Action('ModifyVolumeAttribute')
ModifyVpcAttribute = EC2Action('ModifyVpcAttribute')
MonitorInstances = EC2Action('MonitorInstances')
PurchaseReservedInstancesOffering = \
    EC2Action('PurchaseReservedInstancesOffering')
RebootInstances = EC2Action('RebootInstances')
RegisterImage = EC2Action('RegisterImage')
RejectVpcPeeringConnection = EC2Action('RejectVpcPeeringConnection')
ReleaseAddress = EC2Action('ReleaseAddress')
ReplaceNetworkAclAssociation = EC2Action('ReplaceNetworkAclAssociation')
ReplaceNetworkAclEntry = EC2Action('ReplaceNetworkAclEntry')
ReplaceRoute = EC2Action('ReplaceRoute')
ReplaceRouteTableAssociation = EC2Action('ReplaceRouteTableAssociation')
ReportInstanceStatus = EC2Action('ReportInstanceStatus')
RequestSpotInstances = EC2Action('RequestSpotInstances')
ResetImageAttribute = EC2Action('ResetImageAttribute')
ResetInstanceAttribute = EC2Action('ResetInstanceAttribute')
ResetNetworkInterfaceAttribute = EC2Action('ResetNetworkInterfaceAttribute')
ResetSnapshotAttribute = EC2Action('ResetSnapshotAttribute')
RevokeSecurityGroupEgress = EC2Action('RevokeSecurityGroupEgress')
RevokeSecurityGroupIngress = EC2Action('RevokeSecurityGroupIngress')
RunInstances = EC2Action('RunInstances')
StartInstances = EC2Action('StartInstances')
StopInstances = EC2Action('StopInstances')
TerminateInstances = EC2Action('TerminateInstances')
UnassignPrivateIpAddresses = EC2Action('UnassignPrivateIpAddresses')
UnmonitorInstances = EC2Action('UnmonitorInstances')
