.. NOTE: This file has been generated automatically using generate_provider_feature_matrix_table.py script, don't manually edit it

===================================== =========== ========= ============ ============ ==========
Provider                              list images get image create image delete image copy image
===================================== =========== ========= ============ ============ ==========
`Abiquo`_                             yes         no        no           no           no        
`Aliyun ECS`_                         yes         yes       yes          yes          yes       
`PCextreme AuroraCompute`_            yes         no        no           no           no        
`Azure Virtual machines`_             yes         no        no           no           no        
`Azure Virtual machines`_             yes         yes       no           no           no        
`Bluebox Blocks`_                     yes         no        no           no           no        
`Brightbox`_                          yes         no        no           no           no        
`BSNL`_                               yes         no        no           no           no        
`Cloudscale`_                         yes         no        no           no           no        
`CloudSigma (API v2.0)`_              yes         no        no           no           no        
`CloudStack`_                         yes         no        no           no           no        
`Cloudwatt`_                          yes         yes       yes          yes          no        
`DigitalOcean`_                       yes         yes       yes          yes          no        
`DimensionData`_                      yes         no        no           no           no        
`Amazon EC2`_                         yes         yes       yes          yes          yes       
`Enomaly Elastic Computing Platform`_ yes         no        no           no           no        
`ElasticHosts`_                       yes         no        no           no           no        
`Eucalyptus`_                         yes         yes       yes          yes          yes       
`Exoscale`_                           yes         no        no           no           no        
`Gandi`_                              yes         no        no           no           no        
`Google Compute Engine`_              yes         no        no           no           no        
`GoGrid`_                             yes         no        no           no           no        
`HostVirtual`_                        yes         no        no           no           no        
`Ikoula`_                             yes         no        no           no           no        
`Indosat`_                            yes         no        no           no           no        
`InternetSolutions`_                  yes         no        no           no           no        
`Joyent`_                             yes         no        no           no           no        
`Kili Public Cloud`_                  yes         yes       yes          yes          no        
`KTUCloud`_                           yes         no        no           no           no        
`Libvirt`_                            no          no        no           no           no        
`Linode`_                             yes         no        no           no           no        
`MedOne`_                             yes         no        no           no           no        
`NephoScale`_                         yes         no        no           no           no        
`Nimbus`_                             yes         yes       yes          yes          yes       
`NTTAmerica`_                         yes         no        no           no           no        
`OnApp`_                              yes         no        no           no           no        
`1and1`_                              yes         yes       no           no           no        
`OpenNebula (v3.8)`_                  yes         no        no           no           no        
`OpenStack`_                          yes         yes       no           no           no        
`Outscale INC`_                       yes         yes       yes          yes          yes       
`Outscale SAS`_                       yes         yes       yes          yes          yes       
`Ovh`_                                yes         yes       no           no           no        
`Packet`_                             yes         no        no           no           no        
`ProfitBricks`_                       yes         no        no           no           no        
`Rackspace Cloud (Next Gen)`_         yes         yes       yes          yes          no        
`Rackspace Cloud (First Gen)`_        yes         yes       yes          yes          no        
`RimuHosting`_                        yes         no        no           no           no        
`ServerLove`_                         yes         no        no           no           no        
`skalicloud`_                         yes         no        no           no           no        
`SoftLayer`_                          yes         no        no           no           no        
`vCloud`_                             yes         no        no           no           no        
`VCL`_                                yes         no        no           no           no        
`vCloud`_                             yes         no        no           no           no        
`Voxel VoxCLOUD`_                     yes         no        no           no           no        
`vps.net`_                            yes         no        no           no           no        
`Vultr`_                              yes         no        no           no           no        
===================================== =========== ========= ============ ============ ==========

.. _`Abiquo`: http://www.abiquo.com/
.. _`Aliyun ECS`: https://www.aliyun.com/product/ecs
.. _`PCextreme AuroraCompute`: https://www.pcextreme.com/aurora/compute
.. _`Azure Virtual machines`: http://azure.microsoft.com/en-us/services/virtual-machines/
.. _`Azure Virtual machines`: http://azure.microsoft.com/en-us/services/virtual-machines/
.. _`Bluebox Blocks`: http://bluebox.net
.. _`Brightbox`: http://www.brightbox.co.uk/
.. _`BSNL`: http://www.bsnlcloud.com/
.. _`Cloudscale`: https://www.cloudscale.ch
.. _`CloudSigma (API v2.0)`: http://www.cloudsigma.com/
.. _`CloudStack`: http://cloudstack.org/
.. _`Cloudwatt`: https://www.cloudwatt.com/
.. _`DigitalOcean`: https://www.digitalocean.com
.. _`DimensionData`: http://www.dimensiondata.com/
.. _`Amazon EC2`: http://aws.amazon.com/ec2/
.. _`Enomaly Elastic Computing Platform`: http://www.enomaly.com/
.. _`ElasticHosts`: http://www.elastichosts.com/
.. _`Eucalyptus`: http://www.eucalyptus.com/
.. _`Exoscale`: https://www.exoscale.ch/
.. _`Gandi`: http://www.gandi.net/
.. _`Google Compute Engine`: https://cloud.google.com/
.. _`GoGrid`: http://www.gogrid.com/
.. _`HostVirtual`: http://www.hostvirtual.com
.. _`Ikoula`: http://express.ikoula.co.uk/cloudstack
.. _`Indosat`: http://www.indosat.com/
.. _`InternetSolutions`: http://www.is.co.za/
.. _`Joyent`: http://www.joyentcloud.com
.. _`Kili Public Cloud`: http://kili.io/
.. _`KTUCloud`: https://ucloudbiz.olleh.com/
.. _`Libvirt`: http://libvirt.org/
.. _`Linode`: http://www.linode.com/
.. _`MedOne`: http://www.med-1.com/
.. _`NephoScale`: http://www.nephoscale.com
.. _`Nimbus`: http://www.nimbusproject.org/
.. _`NTTAmerica`: http://www.nttamerica.com/
.. _`OnApp`: http://onapp.com/
.. _`1and1`: http://www.1and1.com
.. _`OpenNebula (v3.8)`: http://opennebula.org/
.. _`OpenStack`: http://openstack.org/
.. _`Outscale INC`: http://www.outscale.com
.. _`Outscale SAS`: http://www.outscale.com
.. _`Ovh`: https://www.ovh.com/
.. _`Packet`: http://www.packet.net/
.. _`ProfitBricks`: http://www.profitbricks.com
.. _`Rackspace Cloud (Next Gen)`: http://www.rackspace.com
.. _`Rackspace Cloud (First Gen)`: http://www.rackspace.com
.. _`RimuHosting`: http://rimuhosting.com/
.. _`ServerLove`: http://www.serverlove.com/
.. _`skalicloud`: http://www.skalicloud.com/
.. _`SoftLayer`: http://www.softlayer.com/
.. _`vCloud`: http://www.vmware.com/products/vcloud/
.. _`VCL`: http://incubator.apache.org/vcl/
.. _`vCloud`: http://www.vmware.com/products/vcloud/
.. _`Voxel VoxCLOUD`: http://www.voxel.net/
.. _`vps.net`: http://vps.net/
.. _`Vultr`: https://www.vultr.com
