Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
:type label: ``str``
:param label: The label for the snapshot.
:type description: ``str``
:param description: An optional description that may be supported by
some providers. Providers that do not support this
property will return None.
:rtype: ``object`` of :class:`.Snapshot`
:return: a newly created Snapshot object.
"""
pass
class StorageService(CloudService):
"""
The Storage Service interface provides access to block device services,
such as volume and snapshot services, as well as object store services,
such as buckets, in the provider.
"""
__metaclass__ = ABCMeta
@abstractproperty
def volumes(self):
"""
Provides access to volumes (i.e., block storage) for this provider.
Example:
.. code-block:: python
print(buck_obj.name)
:type object_name: str
:param object_name: The name of this bucket.
:type bucket: str
:param bucket: A bucket object.
:return: a BucketObject instance
:rtype: ``object`` of :class:`.BucketObject`
"""
pass
class SecurityService(CloudService):
"""
The security service interface can be used to access security related
functions in the provider, such as firewall control and keypairs.
"""
__metaclass__ = ABCMeta
@abstractproperty
def key_pairs(self):
"""
Provides access to key pairs for this provider.
Example:
.. code-block:: python
:type snapshot: ``str`` or :class:`.Snapshot` object
:param snapshot: An optional reference to a snapshot from which this
volume should be created.
:type description: ``str``
:param description: An optional description that may be supported by
some providers. Providers that do not support this
property will return ``None``.
:rtype: ``object`` of :class:`.Volume`
:return: a newly created Volume object.
"""
pass
class SnapshotService(PageableObjectMixin, CloudService):
"""
Base interface for a Snapshot Service.
"""
__metaclass__ = ABCMeta
@abstractmethod
def get(self, volume_id):
"""
Returns a snapshot given its id.
:rtype: ``object`` of :class:`.Snapshot`
:return: a Snapshot object or ``None`` if the snapshot does not exist.
"""
pass
@abstractmethod
Example:
.. code-block:: python
for region in provider.compute.regions:
print("Region: ", region.name)
for zone in region.zones:
print("\\tZone: ", zone.name)
:rtype: :class:`.RegionService`
:return: a RegionService object
"""
pass
class InstanceService(PageableObjectMixin, CloudService):
"""
Provides access to instances in a provider, including creating,
listing and deleting instances.
"""
__metaclass__ = ABCMeta
@abstractmethod
def __iter__(self):
"""
Iterate through the list of instances.
Example:
```
for instance in provider.compute.instances:
print(instance.name)
```
pass
@abstractmethod
def find(self, **kwargs):
"""
Searches for a region by a given list of attributes.
Supported attributes: name
:rtype: ``object`` of :class:`.Region`
:return: a Region object
"""
pass
class GatewayService(CloudService):
"""
Manage internet gateway resources.
"""
__metaclass__ = ABCMeta
@abstractmethod
def get_or_create(self, network):
"""
Creates new or returns an existing internet gateway for a network.
The returned gateway object can subsequently be attached to a router to
provide internet routing to a network.
:type network: ``Network``
:param network: The network to which the gateway should be attached.
"""
pass
def create_launch_config(self):
"""
Creates a ``LaunchConfig`` object which can be used
to set additional options when launching an instance, such as
block device mappings and network interfaces.
:rtype: ``object`` of :class:`.LaunchConfig`
:return: an instance of a LaunchConfig class
"""
pass
class VolumeService(PageableObjectMixin, CloudService):
"""
Base interface for a Volume Service.
"""
__metaclass__ = ABCMeta
@abstractmethod
def get(self, volume_id):
"""
Returns a volume given its id.
:rtype: ``object`` of :class:`.Volume`
:return: a Volume object or ``None`` if the volume does not exist.
"""
pass
@abstractmethod