Outscale Driver Documentation

Outscale provides an IaaS platform allowing developers to benefit from all the flexibility of the Cloud. This IaaS platform relies on TINA OS, its Cloud manager whose purpose is to provide great performances on the Cloud. TINA OS is software developed by Outscale.

../../_images/outscale.jpg

Outscale users can start virtual machines in the following regions:

  • cloudgouv-west-1, France

  • eu-west-2, France

  • us-est-2, US

  • us-west-1, US

  • cn-southeast-1, China

Outscale is an European company and is priced in Euros.

Instantiating a driver

When you instantiate a driver you need to pass the following arguments to the driver constructor:

  • key - Your Outscale access key

  • secret - Your Outscale secret key

  • region - The region you want to make action on

  • service - The Outscale service you want to use

Once you have some credentials you can instantiate the driver as shown below.

from libcloud.compute.types import Provider
from libcloud.compute.providers import get_driver

cls = get_driver(Provider.OUTSCALE)
driver = cls(key="my_key", secret="my_secret", region="my_region", service="my_service")

List the Virtual Machines (node)

Listing the Virtual Machines on Outscale using libcloud works the same as on any other platform. This example is just to show exactly that.

This example will list the Virtual Machines in eu-west-2 region.

from libcloud.compute.types import Provider
from libcloud.compute.providers import get_driver

key = "my_key"
secret = "my_secret"
region = "eu-west-2"
service = "api"

Driver = get_driver(Provider.OUTSCALE)
driver = Driver(key=key, secret=secret, region=region, service=service)

nodes = driver.list_nodes()

print(nodes)

API Documentation

class libcloud.compute.drivers.outscale.OutscaleNodeDriver(key: Optional[str] = None, secret: Optional[str] = None, region: str = 'eu-west-2', service: str = 'api', version: str = 'latest', base_uri: str = 'outscale.com')[source]

Outscale SDK node driver

Parameters:
  • key (str) – API key or username to be used (required)

  • secret (str) – Secret password to be used (required)

  • secure (bool) – Whether to use HTTPS or HTTP. Note: Some providers only support HTTPS, and it is on by default.

  • host (str) – Override hostname used for connections.

  • port (int) – Override port used for connections.

  • api_version (str) – Optional API version. Only used by drivers which support multiple API versions.

  • region (str) – Optional driver region. Only used by drivers which support multiple regions.

Return type:

None

attach_volume(node: Node, volume: StorageVolume, device: Optional[str] = None)[source]

Attach a volume to a node.

Parameters:
  • node (Node) – the ID of the VM you want to attach the volume to (required)

  • volume (StorageVolume) – the ID of the volume you want to attach (required)

  • device (str) – the name of the device (required)

Returns:

the attached volume

Return type:

dict

connectionCls

alias of ConnectionKey

copy_image(source_region: str, node_image: NodeImage, name: str, description: Optional[str] = None) NodeImage

Copies an image from a source region to the current region.

Parameters:
  • source_region (str) – Region to copy the node from.

  • node_image (NodeImage:) – NodeImage to copy.

  • name (str) – name for new image.

  • description – description for new image.

Return type:

NodeImage:

Returns:

NodeImage instance on success.

create_image(ex_architecture: Optional[str] = None, node: Optional[Node] = None, name: Optional[str] = None, description: Optional[str] = None, ex_block_device_mapping: Optional[dict] = None, ex_no_reboot: bool = False, ex_root_device_name: Optional[str] = None, ex_dry_run: bool = False, ex_source_region_name: Optional[str] = None, ex_file_location: Optional[str] = None)[source]

Create a new image.

Parameters:
  • node (str) – a valid Node object

  • ex_architecture – The architecture of the OMI (by default,

i386). :type ex_architecture: str

Parameters:
  • description (str) – a description for the new OMI

  • name (str) – A unique name for the new OMI.

  • ex_block_device_mapping (dict) – One or more block device mappings.

  • ex_no_reboot – If false, the VM shuts down before creating

the OMI and then reboots. If true, the VM does not. :type ex_no_reboot: bool

Parameters:
  • ex_root_device_name (str) – The name of the root device.

  • ex_source_region_name – The name of the source Region,

which must be the same as the Region of your account. :type ex_source_region_name: str

Parameters:

ex_file_location – The pre-signed URL of the OMI manifest

file, or the full path to the OMI stored in an OSU bucket. If you specify this parameter, a copy of the OMI is created in your account. :type ex_file_location: str

Parameters:

ex_dry_run – If true, checks whether you have the required

permissions to perform the action. :type ex_dry_run: bool

Returns:

the created image

Return type:

dict

create_key_pair(name: str, ex_dry_run: bool = False, ex_public_key: Optional[str] = None)[source]

Create a new key pair.

Parameters:

name – A unique name for the keypair, with a maximum

length of 255 ASCII printable characters. :type name: str

Parameters:

ex_dry_run – If true, checks whether you have the required

permissions to perform the action. :type ex_dry_run: bool

Parameters:

ex_public_key (str) – The public key. It must be base64-encoded.

Returns:

the created key pair

Return type:

dict

create_node(image: NodeImage, name: Optional[str] = None, ex_dry_run: bool = False, ex_block_device_mapping: Optional[dict] = None, ex_boot_on_creation: bool = True, ex_bsu_optimized: bool = True, ex_client_token: Optional[str] = None, ex_deletion_protection: bool = False, ex_keypair_name: Optional[str] = None, ex_max_vms_count: Optional[int] = None, ex_min_vms_count: Optional[int] = None, ex_nics: Optional[List[dict]] = None, ex_performance: Optional[str] = None, ex_placement: Optional[dict] = None, ex_private_ips: Optional[List[str]] = None, ex_security_group_ids: Optional[List[str]] = None, ex_security_groups: Optional[List[str]] = None, ex_subnet_id: Optional[str] = None, ex_user_data: Optional[str] = None, ex_vm_initiated_shutdown_behavior: Optional[str] = None, ex_vm_type: Optional[str] = None)[source]

Create a new instance.

Parameters:
  • image (NodeImage) – The image used to create the VM.

  • name (str) – The name of the Node.

  • ex_dry_run – If true, checks whether you have the required

permissions to perform the action. :type ex_dry_run: bool

Parameters:
  • ex_block_device_mapping (dict) – One or more block device mappings.

  • ex_boot_on_creation – By default or if true, the VM is

started on creation. If false, the VM is stopped on creation. :type ex_boot_on_creation: bool

Parameters:

ex_bsu_optimized – If true, the VM is created with optimized

BSU I/O. :type ex_bsu_optimized: bool

Parameters:

ex_client_token – A unique identifier which enables you to

manage the idempotency. :type ex_client_token: bool

Parameters:

ex_deletion_protection – If true, you cannot terminate the

VM using Cockpit, the CLI or the API. If false, you can. :type ex_deletion_protection: bool

Parameters:
  • ex_keypair_name (str) – The name of the keypair.

  • ex_max_vms_count – The maximum number of VMs you want to

create. If all the VMs cannot be created, the largest possible number of VMs above MinVmsCount is created. :type ex_max_vms_count: integer

Parameters:

ex_min_vms_count – The minimum number of VMs you want to

create. If this number of VMs cannot be created, no VMs are created. :type ex_min_vms_count: integer

Parameters:

ex_nics – One or more NICs. If you specify this parameter,

you must define one NIC as the primary network interface of the VM with 0 as its device number. :type ex_nics: list of dict

Parameters:

ex_performance – The performance of the VM (standard | high

highest).
Parameters:
  • ex_placement (dict) – Information about the placement of the VM.

  • ex_private_ips (list) – One or more private IP addresses of the VM.

  • ex_security_group_ids – One or more IDs of security group

for the VMs. :type ex_security_group_ids: list

Parameters:

ex_security_groups – One or more names of security groups

for the VMs. :type ex_security_groups: list

Parameters:

ex_subnet_id – The ID of the Subnet in which you want to

create the VM. :type ex_subnet_id: str

Parameters:

ex_user_data – Data or script used to add a specific

configuration to the VM. It must be base64-encoded. :type ex_user_data: str

Parameters:

ex_vm_initiated_shutdown_behavior – The VM behavior when

you stop it. By default or if set to stop, the VM stops. If set to restart, the VM stops then automatically restarts. If set to terminate, the VM stops and is terminated. create the VM. :type ex_vm_initiated_shutdown_behavior: str

Parameters:

ex_vm_type (str) – The type of VM (t2.small by default).

Returns:

the created instance

Return type:

dict

create_volume(ex_subregion_name: str, ex_dry_run: bool = False, ex_iops: Optional[int] = None, size: Optional[int] = None, snapshot: Optional[VolumeSnapshot] = None, ex_volume_type: Optional[str] = None)[source]

Create a new volume.

Parameters:
  • snapshot (str) – the ID of the snapshot from which you want to create the volume (required)

  • ex_dry_run – If true, checks whether you have the required

permissions to perform the action. :type ex_dry_run: bool

Parameters:
  • size (int) – the size of the volume, in gibibytes (GiB), the maximum allowed size for a volume is 14,901 GiB

  • ex_subregion_name – The Subregion in which you want to

create the volume. :type ex_subregion_name: str

Parameters:

ex_volume_type – the type of volume you want to create (io1

gp2 | standard)
Parameters:

ex_iops – The number of I/O operations per second (IOPS).

This parameter must be specified only if you create an io1 volume. The maximum number of IOPS allowed for io1 volumes is 13000. :type ex_iops: integer

Returns:

the created volume

Return type:

dict

create_volume_snapshot(ex_description: Optional[str] = None, ex_dry_run: bool = False, ex_file_location: Optional[str] = None, ex_snapshot_size: Optional[int] = None, ex_source_region_name: Optional[str] = None, ex_source_snapshot: Optional[VolumeSnapshot] = None, volume: Optional[StorageVolume] = None)[source]

Create a new volume snapshot.

Parameters:
  • ex_description (str) – a description for the new OMI

  • ex_snapshot_size – The size of the snapshot created in your

account, in bytes. This size must be exactly the same as the source snapshot one. :type ex_snapshot_size: integer

Parameters:

ex_source_snapshot – The ID of the snapshot you want to

copy. :type ex_source_snapshot: str

Parameters:

volume – The ID of the volume you want to create a

snapshot of. :type volume: str

Parameters:

ex_source_region_name – The name of the source Region,

which must be the same as the Region of your account. :type ex_source_region_name: str

Parameters:

ex_file_location – The pre-signed URL of the OMI manifest

file, or the full path to the OMI stored in an OSU bucket. If you specify this parameter, a copy of the OMI is created in your account. :type ex_file_location: str

Parameters:

ex_dry_run – If true, checks whether you have the required

permissions to perform the action. :type ex_dry_run: bool

Returns:

the created snapshot

Return type:

dict

delete_image(node_image: NodeImage)[source]

Delete an image.

Parameters:

node_image (str) – the ID of the OMI you want to delete (required)

Returns:

request

Return type:

bool

delete_key_pair(key_pair: KeyPair)[source]

Delete a key pair.

Parameters:

key_pair – the name of the keypair

you want to delete (required) :type key_pair: KeyPair

Returns:

bool

Return type:

bool

deploy_node(deploy: Deployment, ssh_username: str = 'root', ssh_alternate_usernames: Optional[List[str]] = None, ssh_port: int = 22, ssh_timeout: int = 10, ssh_key: Optional[T_Ssh_key] = None, ssh_key_password: Optional[str] = None, auth: T_Auth = None, timeout: int = 300, max_tries: int = 3, ssh_interface: str = 'public_ips', at_exit_func: Callable = None, wait_period: int = 5, **create_node_kwargs) Node

Create a new node, and start deployment.

In order to be able to SSH into a created node access credentials are required.

A user can pass either a NodeAuthPassword or NodeAuthSSHKey to the auth argument. If the create_node implementation supports that kind if credential (as declared in self.features['create_node']) then it is passed on to create_node. Otherwise it is not passed on to create_node and it is only used for authentication.

If the auth parameter is not supplied but the driver declares it supports generates_password then the password returned by create_node will be used to SSH into the server.

Finally, if the ssh_key_file is supplied that key will be used to SSH into the server.

This function may raise a DeploymentException, if a create_node call was successful, but there is a later error (like SSH failing or timing out). This exception includes a Node object which you may want to destroy if incomplete deployments are not desirable.

>>> from libcloud.compute.drivers.dummy import DummyNodeDriver
>>> from libcloud.compute.deployment import ScriptDeployment
>>> from libcloud.compute.deployment import MultiStepDeployment
>>> from libcloud.compute.base import NodeAuthSSHKey
>>> driver = DummyNodeDriver(0)
>>> key = NodeAuthSSHKey('...') # read from file
>>> script = ScriptDeployment("yum -y install emacs strace tcpdump")
>>> msd = MultiStepDeployment([key, script])
>>> def d():
...     try:
...         driver.deploy_node(deploy=msd)
...     except NotImplementedError:
...         print ("not implemented for dummy driver")
>>> d()
not implemented for dummy driver

Deploy node is typically not overridden in subclasses. The existing implementation should be able to handle most such.

Parameters:
  • deploy (Deployment) – Deployment to run once machine is online and available to SSH.

  • ssh_username (str) – Optional name of the account which is used when connecting to SSH server (default is root)

  • ssh_alternate_usernames (list) – Optional list of ssh usernames to try to connect with if using the default one fails

  • ssh_port (int) – Optional SSH server port (default is 22)

  • ssh_timeout (float) – Optional SSH connection timeout in seconds (default is 10)

  • auth (NodeAuthSSHKey or NodeAuthPassword) – Initial authentication information for the node (optional)

  • ssh_key (str or list of str) – A path (or paths) to an SSH private key with which to attempt to authenticate. (optional)

  • ssh_key_password (str) – Optional password used for encrypted keys.

  • timeout (int) – How many seconds to wait before timing out. (default is 600)

  • max_tries (int) – How many times to retry if a deployment fails before giving up (default is 3)

  • ssh_interface (str) – The interface to wait for. Default is ‘public_ips’, other option is ‘private_ips’.

  • at_exit_func (func) –

    Optional atexit handler function which will be registered and called with created node if user cancels the deploy process (e.g. CTRL+C), after the node has been created, but before the deploy process has finished.

    This method gets passed in two keyword arguments:

    • driver -> node driver in question

    • node -> created Node object

    Keep in mind that this function will only be called in such scenario. In case the method finishes (this includes throwing an exception), at exit handler function won’t be called.

  • wait_period (int) – How many seconds to wait between each iteration while waiting for node to transition into running state and have IP assigned. (default is 5)

destroy_node(node: Node)[source]

Delete instance.

Parameters:

node (Node) – one or more IDs of VMs (required)

Returns:

request

Return type:

bool

destroy_volume(volume: StorageVolume)[source]

Delete a volume.

Parameters:

volume (StorageVolume) – the ID of the volume you want to delete (required)

Returns:

request

Return type:

bool

destroy_volume_snapshot(snapshot: VolumeSnapshot)[source]

Delete a volume snapshot.

Parameters:

snapshot (VolumeSnapshot) – the ID of the snapshot you want to delete (required)

Returns:

request

Return type:

bool

detach_volume(volume: StorageVolume, ex_dry_run: bool = False, ex_force_unlink: bool = False)[source]

Detach a volume from a node.

Parameters:

volume – the ID of the volume you want to detach

(required) :type volume: str

Parameters:

ex_force_unlink – Forces the detachment of the volume in

case of previous failure. Important: This action may damage your data or file systems. :type ex_force_unlink: bool

Parameters:

ex_dry_run – If true, checks whether you have the required

permissions to perform the action. :type ex_dry_run: bool

Returns:

the attached volume

Return type:

dict

ex_accept_net_peering(net_peering_id: Optional[List[str]] = None, dry_run: bool = False)[source]

Accepts a Net peering connection request. To accept this request, you must be the owner of the peer Net. If you do not accept the request within 7 days, the state of the Net peering connection becomes expired.

Parameters:

net_peering_id – The ID of the Net peering connection you

want to accept. (required) :type net_peering_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

The accepted Net Peering

Return type:

dict

ex_attach_public_ip(allow_relink: Optional[bool] = None, dry_run: bool = False, nic_id: Optional[str] = None, vm_id: Optional[str] = None, public_ip: Optional[str] = None, public_ip_id: Optional[str] = None)[source]

Attach public ip to a node.

Parameters:

allow_relink – If true, allows the EIP to be associated

with the VM or NIC that you specify even if it is already associated with another VM or NIC. :type allow_relink: bool

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

:param nic_id:(Net only) The ID of the NIC. This parameter is required if the VM has more than one NIC attached. Otherwise, you need to specify the VmId parameter instead. You cannot specify both parameters at the same time. :type nic_id: str

Parameters:
  • vm_id – the ID of the VM

  • public_ip – The EIP. In the public Cloud, this parameter

is required. :type public_ip: str

Parameters:

public_ip_id – The allocation ID of the EIP. In a Net,

this parameter is required. :type public_ip_id: str

Returns:

the attached volume

Return type:

dict

ex_check_account(login: str, password: str, dry_run: bool = False)[source]

Validates the authenticity of the account.

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Parameters:
  • login (str) – the login of the account

  • password (str) – the password of the account

  • dry_run (bool) – the password of the account

Returns:

True if the action successful

Return type:

bool

ex_create_access_key(expiration_date: Optional[datetime] = None, dry_run: bool = False)[source]

Creates a new secret access key and the corresponding access key ID for a specified user. The created key is automatically set to ACTIVE.

Parameters:

expiration_date – The date and time at which you want the

access key to expire, in ISO 8601 format (for example, 2017-06-14 or 2017-06-14T00:00:00Z). If not specified, the access key has no expiration date. :type expiration_date: datetime

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

access key if action is successful

Return type:

dict

ex_create_account(city: Optional[str] = None, company_name: Optional[str] = None, country: Optional[str] = None, customer_id: Optional[str] = None, email: Optional[str] = None, first_name: Optional[str] = None, last_name: Optional[str] = None, zip_code: Optional[str] = None, job_title: Optional[str] = None, mobile_number: Optional[str] = None, phone_number: Optional[str] = None, state_province: Optional[str] = None, vat_number: Optional[str] = None, dry_run: bool = False)[source]

Creates a new 3DS OUTSCALE account.

You need 3DS OUTSCALE credentials and the appropriate quotas to create a new account via API. To get quotas, you can send an email to sales@outscale.com. If you want to pass a numeral value as a string instead of an integer, you must wrap your string in additional quotes (for example, ‘“92000”’).

Parameters:
  • city (str) – The city of the account owner.

  • company_name – The name of the company for the account.

permissions to perform the action. :type company_name: str

Parameters:
  • country (str) – The country of the account owner.

  • customer_id (str) – The ID of the customer. It must be 8 digits.

  • email (str) – The email address for the account.

  • first_name (str) – The first name of the account owner.

  • last_name (str) – The last name of the account owner.

  • zip_code (str) – The ZIP code of the city.

  • job_title (str) – The job title of the account owner.

  • mobile_number – The mobile phone number of the account

owner. :type mobile_number: str

Parameters:

phone_number – The landline phone number of the account

owner. :type phone_number: str

Parameters:
  • state_province (str) – The state/province of the account.

  • vat_number – The value added tax (VAT) number for

the account. :type vat_number: str

Parameters:

dry_run (bool) – the password of the account

Returns:

True if the action is successful

Return type:

bool

ex_create_api_access_rule(description: Optional[str] = None, ip_ranges: Optional[List[str]] = None, ca_ids: Optional[List[str]] = None, cns: Optional[List[str]] = None, dry_run: bool = False)[source]

Create an API access rule. It is a rule to allow access to the API from your account. You need to specify at least the CaIds or the IpRanges parameter.

Parameters:
  • description (str) – The description of the new rule.

  • ip_ranges – One or more IP ranges, in CIDR notation

(for example, 192.0.2.0/16). :type ip_ranges: List of str

Parameters:

ca_ids – One or more IDs of Client Certificate Authorities

(CAs). :type ca_ids: List of str

Parameters:

cns – One or more Client Certificate Common Names (CNs).

If this parameter is specified, you must also specify the ca_ids parameter. :type cns: List of str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

a dict containing the API access rule created.

Return type:

dict

ex_create_certificate_authority(ca_perm: str, description: Optional[str] = None, dry_run: bool = False)[source]

Creates a Client Certificate Authority (CA).

Parameters:
  • ca_perm (str) – The CA in PEM format. (required)

  • description (bool) – The description of the CA.

  • dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

the created Ca.

Return type:

dict

ex_create_client_gateway(bgp_asn: Optional[int] = None, connection_type: Optional[str] = None, public_ip: Optional[str] = None, dry_run: bool = False)[source]

Provides information about your client gateway. This action registers information to identify the client gateway that you deployed in your network. To open a tunnel to the client gateway, you must provide the communication protocol type, the valid fixed public IP address of the gateway, and an Autonomous System Number (ASN).

Parameters:

bgp_asn – An Autonomous System Number (ASN) used by

the Border Gateway Protocol (BGP) to find the path to your client gateway through the Internet. (required) :type bgp_asn: int (required)

Parameters:

connection_type – The communication protocol used to

establish tunnel with your client gateway (only ipsec.1 is supported). (required) :type connection_type: str

Parameters:

public_ip – The public fixed IPv4 address of your

client gateway. (required) :type public_ip: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

Client Gateway as dict

Return type:

dict

ex_create_dhcp_options(domaine_name: Optional[str] = None, domaine_name_servers: Optional[list] = None, ntp_servers: Optional[list] = None, dry_run: bool = False)[source]

Creates a new set of DHCP options, that you can then associate with a Net using the UpdateNet method.

Parameters:

domaine_name – Specify a domain name

(for example, MyCompany.com). You can specify only one domain name. :type domaine_name: str

Parameters:

domaine_name_servers – The IP addresses of domain name

servers. If no IP addresses are specified, the OutscaleProvidedDNS value is set by default. :type domaine_name_servers: list of str

Parameters:

ntp_servers – The IP addresses of the Network Time

Protocol (NTP) servers. :type ntp_servers: list of str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

The created Dhcp Options

Return type:

dict

Creates a new DirectLink between a customer network and a specified DirectLink location.

Parameters:

bandwidth – The bandwidth of the DirectLink

(1Gbps | 10Gbps). (required) :type bandwidth: str

Parameters:
  • direct_link_name (str) – The name of the DirectLink. (required)

  • location – The code of the requested location for

the DirectLink, returned by the list_locations method. Protocol (NTP) servers. :type location: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

The new Direct Link

Return type:

dict

Creates a DirectLink interface. DirectLink interfaces enable you to reach one of your Nets through a virtual gateway.

Parameters:

direct_link_id – The ID of the existing DirectLink for which

you want to create the DirectLink interface. (required) :type direct_link_id: str

Parameters:

bgp_asn – The BGP (Border Gateway Protocol) ASN (Autonomous

System Number) on the customer’s side of the DirectLink interface. (required) :type bgp_asn: int

Parameters:
  • bgp_key (str) – The BGP authentication key.

  • client_private_ip – The IP address on the customer’s side

of the DirectLink interface. (required) :type client_private_ip: str

Parameters:

direct_link_interface_name – The name of the DirectLink

interface. (required) :type direct_link_interface_name: str

Parameters:

outscale_private_ip – The IP address on 3DS OUTSCALE’s side

of the DirectLink interface. :type outscale_private_ip: str

:param virtual_gateway_id:The ID of the target virtual gateway. (required) :type virtual_gateway_id: str

Parameters:

vlan – The VLAN number associated with the DirectLink

interface. (required) :type vlan: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

The new Direct Link Interface

Return type:

dict

ex_create_flexible_gpu(delete_on_vm_deletion: Optional[bool] = None, generation: Optional[str] = None, model_name: Optional[str] = None, subregion_name: Optional[str] = None, dry_run: bool = False)[source]

Allocates a flexible GPU (fGPU) to your account. You can then attach this fGPU to a virtual machine (VM).

Parameters:

delete_on_vm_deletion – If true, the fGPU is deleted when

the VM is terminated. :type delete_on_vm_deletion: bool

Parameters:

generation – The processor generation that the fGPU must be

compatible with. If not specified, the oldest possible processor generation is selected (as provided by ReadFlexibleGpuCatalog for the specified model of fGPU). :type generation: str

Parameters:

model_name – The model of fGPU you want to allocate. For

more information, see About Flexible GPUs: https://wiki.outscale.net/display/EN/About+Flexible+GPUs (required) :type model_name: str

Parameters:

subregion_name – The Subregion in which you want to create

the fGPU. (required) :type subregion_name: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

The new Flexible GPU

Return type:

dict

ex_create_image_export_task(image: Optional[NodeImage] = None, osu_export_disk_image_format: Optional[str] = None, osu_export_api_key_id: Optional[str] = None, osu_export_api_secret_key: Optional[str] = None, osu_export_bucket: Optional[str] = None, osu_export_manifest_url: Optional[str] = None, osu_export_prefix: Optional[str] = None, dry_run: bool = False)[source]

Exports an Outscale machine image (OMI) to an Object Storage Unit (OSU) bucket. This action enables you to copy an OMI between accounts in different Regions. To copy an OMI in the same Region, you can also use the CreateImage method. The copy of the OMI belongs to you and is independent from the source OMI.

Parameters:
  • image (NodeImage) – The ID of the OMI to export. (required)

  • dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Parameters:

osu_export_disk_image_format – The format of the

export disk (qcow2 | vdi | vmdk). (required) :type osu_export_disk_image_format: str

Parameters:

osu_export_api_key_id – The API key of the OSU

account that enables you to access the bucket. :type osu_export_api_key_id: str

Parameters:

osu_export_api_secret_key – The secret key of the

OSU account that enables you to access the bucket. :type osu_export_api_secret_key: str

Parameters:

osu_export_bucket – The name of the OSU bucket

you want to export the object to. (required) :type osu_export_bucket: str

Parameters:
  • osu_export_manifest_url (str) – The URL of the manifest file.

  • osu_export_prefix – The prefix for the key of

the OSU object. This key follows this format: prefix + object_export_task_id + ‘.’ + disk_image_format. :type osu_export_prefix: str

Returns:

the created image export task

Return type:

dict

ex_create_internet_service(dry_run: bool = False)[source]

Creates an Internet service you can use with a Net. An Internet service enables your virtual machines (VMs) launched in a Net to connect to the Internet. By default, a Net includes an Internet service, and each Subnet is public. Every VM launched within a default Subnet has a private and a public IP addresses.

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

The new Internet Service

Return type:

dict

ex_create_listener_rule(vms: [<class 'libcloud.compute.base.Node'>] = None, l_load_balancer_name: str = None, l_load_balancer_port: str = None, lr_action: str = None, lr_host_name_pattern: str = None, lr_id: str = None, lr_name: str = None, lr_path_pattern: str = None, lr_priority: int = None, dry_run: bool = False)[source]

Creates a rule for traffic redirection for the specified listener. Each rule must have either the HostNamePattern or PathPattern parameter specified. Rules are treated in priority order, from the highest value to the lowest value. Once the rule is created, you need to register backend VMs with it. For more information, see the RegisterVmsInLoadBalancer method. https://docs.outscale.com/api#registervmsinloadbalancer

Parameters:
  • vms (list of Node) – The IDs of the backend VMs. (required)

  • l_load_balancer_name – The name of the load balancer to

which the listener is attached. (required) :type l_load_balancer_name: str

Parameters:

l_load_balancer_port – The port of load balancer on which

the load balancer is listening (between 1 and 65535 both included). (required) :type l_load_balancer_port: int

Parameters:

lr_action – The type of action for the rule

(always forward). :type lr_action: str

Parameters:

lr_host_name_pattern – A host-name pattern for the rule,

with a maximum length of 128 characters. This host-name pattern supports maximum three wildcards, and must not contain any special characters except [-.?]. :type lr_host_name_pattern: str

Parameters:
  • lr_id (str) – The ID of the listener.

  • lr_name (str) – A human-readable name for the listener rule.

  • lr_path_pattern – A path pattern for the rule, with a

maximum length of 128 characters. This path pattern supports maximum three wildcards, and must not contain any special characters except [_-.$/~”’@:+?]. :type lr_path_pattern: str

Parameters:

lr_priority – The priority level of the listener rule,

between 1 and 19999 both included. Each rule must have a unique priority level. Otherwise, an error is returned. (required) :type lr_priority: int

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

The new Listener Rule

Return type:

dict

ex_create_load_balancer(load_balancer_name: Optional[str] = None, load_balancer_type: Optional[str] = None, security_groups: Optional[List[str]] = None, subnets: Optional[List[str]] = None, subregion_names: Optional[str] = None, tag_keys: Optional[List[str]] = None, tag_values: Optional[List[str]] = None, l_backend_port: Optional[int] = None, l_backend_protocol: Optional[str] = None, l_load_balancer_port: Optional[int] = None, l_load_balancer_protocol: Optional[str] = None, l_server_certificate_id: Optional[str] = None, dry_run: bool = False)[source]

Creates a load balancer. The load balancer is created with a unique Domain Name Service (DNS) name. It receives the incoming traffic and routes it to its registered virtual machines (VMs). By default, this action creates an Internet-facing load balancer, resolving to public IP addresses. To create an internal load balancer in a Net, resolving to private IP addresses, use the LoadBalancerType parameter.

Parameters:

load_balancer_name – The name of the load balancer for

which you want to create listeners. (required) :type load_balancer_name: str

Parameters:

load_balancer_type – The type of load balancer:

internet-facing or internal. Use this parameter only for load balancers in a Net. :type load_balancer_type: str

Parameters:

security_groups – One or more IDs of security groups you

want to assign to the load balancer. :type security_groups: list of str

Parameters:

subnets – One or more IDs of Subnets in your Net that you

want to attach to the load balancer. :type subnets: list of str

Parameters:

subregion_names – One or more names of Subregions

(currently, only one Subregion is supported). This parameter is not required if you create a load balancer in a Net. To create an internal load balancer, use the LoadBalancerType parameter. :type subregion_names: list of str

Parameters:

tag_keys – The key of the tag, with a minimum of 1

character. (required) :type tag_keys: list of str

Parameters:

tag_values – The value of the tag, between 0 and 255

characters. (required) :type tag_values: list of str

Parameters:

l_backend_port – The port on which the back-end VM is

listening (between 1 and 65535, both included). (required) :type l_backend_port: int

Parameters:

l_backend_protocol – The protocol for routing traffic to

back-end VMs (HTTP | HTTPS | TCP | SSL | UDP). :type l_backend_protocol: int

Parameters:

l_load_balancer_port – The port on which the load balancer

is listening (between 1 and 65535, both included). (required) :type l_load_balancer_port: int

Parameters:

l_load_balancer_protocol – The routing protocol

(HTTP | HTTPS | TCP | SSL | UDP). (required) :type l_load_balancer_protocol: str

Parameters:

l_server_certificate_id – The ID of the server certificate.

(required) :type l_server_certificate_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

The new Load Balancer

Return type:

dict

ex_create_load_balancer_listeners(load_balancer_name: Optional[str] = None, l_backend_port: Optional[int] = None, l_backend_protocol: Optional[str] = None, l_load_balancer_port: Optional[int] = None, l_load_balancer_protocol: Optional[str] = None, l_server_certificate_id: Optional[str] = None, dry_run: bool = False)[source]

Creates one or more listeners for a specified load balancer.

Parameters:

load_balancer_name – The name of the load balancer for

which you want to create listeners. (required) :type load_balancer_name: str

Parameters:

l_backend_port – The port on which the back-end VM is

listening (between 1 and 65535, both included). (required) :type l_backend_port: int

Parameters:

l_backend_protocol – The protocol for routing traffic to

back-end VMs (HTTP | HTTPS | TCP | SSL | UDP). :type l_backend_protocol: int

Parameters:

l_load_balancer_port – The port on which the load balancer

is listening (between 1 and 65535, both included). (required) :type l_load_balancer_port: int

Parameters:

l_load_balancer_protocol – The routing protocol

(HTTP | HTTPS | TCP | SSL | UDP). (required) :type l_load_balancer_protocol: str

Parameters:

l_server_certificate_id – The ID of the server certificate.

(required) :type l_server_certificate_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

The new Load Balancer Listener

Return type:

dict

ex_create_load_balancer_policy(cookie_name: Optional[str] = None, load_balancer_name: Optional[str] = None, policy_name: Optional[str] = None, policy_type: Optional[str] = None, dry_run: bool = False)[source]

Creates a stickiness policy with sticky session lifetimes defined by the browser lifetime. The created policy can be used with HTTP or HTTPS listeners only. If this policy is implemented by a load balancer, this load balancer uses this cookie in all incoming requests to direct them to the specified back-end server virtual machine (VM). If this cookie is not present, the load balancer sends the request to any other server according to its load-balancing algorithm.

You can also create a stickiness policy with sticky session lifetimes following the lifetime of an application-generated cookie. Unlike the other type of stickiness policy, the lifetime of the special Load Balancer Unit (LBU) cookie follows the lifetime of the application-generated cookie specified in the policy configuration. The load balancer inserts a new stickiness cookie only when the application response includes a new application cookie. The session stops being sticky if the application cookie is removed or expires, until a new application cookie is issued.

Parameters:

cookie_name – The name of the application cookie used for

stickiness. This parameter is required if you create a stickiness policy based on an application-generated cookie. :type cookie_name: str

Parameters:

load_balancer_name – The name of the load balancer for

which you want to create a policy. (required) :type load_balancer_name: str

Parameters:

policy_name – The name of the policy. This name must be

unique and consist of alphanumeric characters and dashes (-). (required) :type policy_name: str

Parameters:

policy_type – The type of stickiness policy you want to

create: app or load_balancer. (required) :type policy_type: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

The new Load Balancer Policy

Return type:

dict

ex_create_load_balancer_tags(load_balancer_names: Optional[List[str]] = None, tag_keys: Optional[List[str]] = None, tag_values: Optional[List[str]] = None, dry_run: bool = False)[source]

Adds one or more tags to the specified load balancers. If a tag with the same key already exists for the load balancer, the tag value is replaced.

Parameters:

load_balancer_names – The name of the load balancer for

which you want to create listeners. (required) :type load_balancer_names: str

Parameters:

tag_keys – The key of the tag, with a minimum of 1

character. (required) :type tag_keys: list of str

Parameters:

tag_values – The value of the tag, between 0 and 255

characters. (required) :type tag_values: list of str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

The new Load Balancer Tags

Return type:

dict

ex_create_nat_service(public_ip: Optional[str] = None, subnet_id: Optional[str] = None, dry_run: bool = False)[source]

Creates a network address translation (NAT) service in the specified public Subnet of a Net. A NAT service enables virtual machines (VMs) placed in the private Subnet of this Net to connect to the Internet, without being accessible from the Internet. When creating a NAT service, you specify the allocation ID of the External IP (EIP) you want to use as public IP for the NAT service. Once the NAT service is created, you need to create a route in the route table of the private Subnet, with 0.0.0.0/0 as destination and the ID of the NAT service as target. For more information, see LinkPublicIP and CreateRoute. This action also enables you to create multiple NAT services in the same Net (one per public Subnet).

Parameters:

public_ip – The allocation ID of the EIP to associate

with the NAT service. (required) :type public_ip: str

Parameters:

subnet_id – The ID of the Subnet in which you want to

create the NAT service. (required) :type subnet_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

The new Nat Service

Return type:

dict

ex_create_net(ip_range: Optional[str] = None, tenancy: Optional[str] = None, dry_run: bool = False)[source]

Creates a Net with a specified IP range. The IP range (network range) of your Net must be between a /28 netmask (16 IP addresses) and a /16 netmask (65 536 IP addresses).

Parameters:

ip_range – The IP range for the Net, in CIDR notation

(for example, 10.0.0.0/16). (required) :type ip_range: str

Parameters:

tenancy – The tenancy options for the VMs (default if a VM

created in a Net can be launched with any tenancy, dedicated if it can be launched with dedicated tenancy VMs running on single-tenant hardware). :type tenancy: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

The new Nat Service

Return type:

dict

ex_create_net_access_point(net_id: Optional[str] = None, route_table_ids: Optional[List[str]] = None, service_name: Optional[str] = None, dry_run: bool = False)[source]

Creates a Net access point to access a 3DS OUTSCALE service from this Net without using the Internet and External IP addresses. You specify the service using its prefix list name. For more information, see DescribePrefixLists: https://docs.outscale.com/api#describeprefixlists To control the routing of traffic between the Net and the specified service, you can specify one or more route tables. Virtual machines placed in Subnets associated with the specified route table thus use the Net access point to access the service. When you specify a route table, a route is automatically added to it with the destination set to the prefix list ID of the service, and the target set to the ID of the access point.

Parameters:
  • net_id (str) – The ID of the Net. (required)

  • route_table_ids – One or more IDs of route tables to use

for the connection. :type route_table_ids: list of str

Parameters:

service_name – The prefix list name corresponding to the

service (for example, com.outscale.eu-west-2.osu for OSU). (required) :type service_name: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

The new Access Net Point

Return type:

dict

ex_create_net_peering(accepter_net_id: Optional[str] = None, source_net_id: Optional[str] = None, dry_run: bool = False)[source]

Requests a Net peering connection between a Net you own and a peer Net that belongs to you or another account. This action creates a Net peering connection that remains in the pending-acceptance state until it is accepted by the owner of the peer Net. If the owner of the peer Net does not accept the request within 7 days, the state of the Net peering connection becomes expired. For more information, see AcceptNetPeering: https://docs.outscale.com/api#acceptnetpeering

Parameters:

accepter_net_id – The ID of the Net you want to connect

with. (required) :type accepter_net_id: str

Parameters:

source_net_id – The ID of the Net you send the peering

request from. (required) :type source_net_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

The new Net Peering

Return type:

dict

ex_create_nic(description: Optional[str] = None, private_ips_is_primary: Optional[List[str]] = None, private_ips: Optional[List[str]] = None, security_group_ids: Optional[List[str]] = None, subnet_id: Optional[str] = None, dry_run: bool = False)[source]

Creates a network interface card (NIC) in the specified Subnet.

Parameters:
  • description (str) – A description for the NIC.

  • private_ips_is_primary – If true, the IP address is the

primary private IP address of the NIC. :type private_ips_is_primary: list of str

Parameters:
  • private_ips (list of str) – The private IP addresses of the NIC.

  • security_group_ids – One or more IDs of security groups for

the NIC. :type security_group_ids: list of str

Parameters:

subnet_id – The ID of the Subnet in which you want to

create the NIC. (required) :type subnet_id: list of str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

The new Nic

Return type:

dict

ex_create_public_ip(dry_run: bool = False)[source]

Create a new public ip.

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

the created public ip

Return type:

dict

ex_create_route(destination_ip_range: Optional[str] = None, gateway_id: Optional[str] = None, nat_service_id: Optional[str] = None, net_peering_id: Optional[str] = None, nic_id: Optional[str] = None, route_table_id: Optional[str] = None, vm_id: Optional[str] = None, dry_run: bool = False)[source]

Creates a route in a specified route table within a specified Net. You must specify one of the following elements as the target:

  • Net peering connection

  • NAT VM

  • Internet service

  • Virtual gateway

  • NAT service

  • Network interface card (NIC)

The routing algorithm is based on the most specific match.

Parameters:

destination_ip_range – The IP range used for the

destination match, in CIDR notation (for example, 10.0.0.0/24). (required) :type destination_ip_range: str

Parameters:

gateway_id – The ID of an Internet service or virtual

gateway attached to your Net. :type gateway_id: str

Parameters:
  • nat_service_id (str) – The ID of a NAT service.

  • net_peering_id (str) – The ID of a Net peering connection.

  • nic_id (str) – The ID of a NIC.

  • vm_id – The ID of a NAT VM in your Net (attached to exactly

one NIC). :type vm_id: str

Parameters:

route_table_id – The ID of the route table for which you

want to create a route. (required) :type route_table_id: str`

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

The new Route

Return type:

dict

ex_create_route_table(net_id: Optional[str] = None, dry_run: bool = False)[source]

Creates a route table for a specified Net. You can then add routes and associate this route table with a Subnet.

Parameters:

net_id – The ID of the Net for which you want to create a

route table. (required) :type net_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

The new Route Table

Return type:

dict

ex_create_security_group(description: Optional[str] = None, net_id: Optional[str] = None, security_group_name: Optional[str] = None, dry_run: bool = False)[source]

Creates a security group. This action creates a security group either in the public Cloud or in a specified Net. By default, a default security group for use in the public Cloud and a default security group for use in a Net are created. When launching a virtual machine (VM), if no security group is explicitly specified, the appropriate default security group is assigned to the VM. Default security groups include a default rule granting VMs network access to each other. When creating a security group, you specify a name. Two security groups for use in the public Cloud or for use in a Net cannot have the same name. You can have up to 500 security groups in the public Cloud. You can create up to 500 security groups per Net. To add or remove rules, use the ex_create_security_group_rule method.

Parameters:

description – A description for the security group, with a

maximum length of 255 ASCII printable characters. (required) :type description: str

Parameters:
  • net_id (str) – The ID of the Net for the security group.

  • security_group_name – The name of the security group.

(required) :type security_group_name: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

The new Security Group

Return type:

dict

ex_create_security_group_rule(flow: Optional[str] = None, from_port_range: Optional[int] = None, ip_range: Optional[str] = None, rules: Optional[List[dict]] = None, sg_account_id_to_link: Optional[str] = None, sg_id: Optional[str] = None, sg_name_to_link: Optional[str] = None, to_port_range: Optional[int] = None, dry_run: bool = False)[source]

Configures the rules for a security group. The modifications are effective at virtual machine (VM) level as quickly as possible, but a small delay may occur.

You can add one or more egress rules to a security group for use with a Net. It allows VMs to send traffic to either one or more destination IP address ranges or destination security groups for the same Net. We recommend using a set of IP permissions to authorize outbound access to a destination security group. We also recommended this method to create a rule with a specific IP protocol and a specific port range. In a set of IP permissions, we recommend to specify the the protocol.

You can also add one or more ingress rules to a security group. In the public Cloud, this action allows one or more IP address ranges to access a security group for your account, or allows one or more security groups (source groups) to access a security group for your own 3DS OUTSCALE account or another one. In a Net, this action allows one or more IP address ranges to access a security group for your Net, or allows one or more other security groups (source groups) to access a security group for your Net. All the security groups must be for the same Net.

Parameters:

flow – The direction of the flow: Inbound or Outbound.

You can specify Outbound for Nets only.type (required) description: bool

Parameters:

from_port_range – The beginning of the port range for

the TCP and UDP protocols, or an ICMP type number. :type from_port_range: int

Parameters:

ip_range – The name The IP range for the security group

rule, in CIDR notation (for example, 10.0.0.0/16). :type ip_range: str

Parameters:

rules – Information about the security group rule to create:

https://docs.outscale.com/api#createsecuritygrouprule :type rules: list of dict

Parameters:

sg_account_id_to_link – The account ID of the

owner of the security group for which you want to create a rule. :type sg_account_id_to_link: str

Parameters:

sg_id – The ID of the security group for which

you want to create a rule. (required) :type sg_id: str

Parameters:

sg_name_to_link – The ID of the source security

group. If you are in the Public Cloud, you can also specify the name of the source security group. :type sg_name_to_link: str

Parameters:

to_port_range – TThe end of the port range for the TCP and

UDP protocols, or an ICMP type number. :type to_port_range: int

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

The new Security Group Rule

Return type:

dict

ex_create_server_certificate(body: Optional[str] = None, chain: Optional[str] = None, name: Optional[str] = None, path: Optional[str] = None, private_key: Optional[str] = None, dry_run: bool = False)[source]

Creates a server certificate and its matching private key. These elements can be used with other services (for example, to configure SSL termination on load balancers). You can also specify the chain of intermediate certification authorities if your certificate is not directly signed by a root one. You can specify multiple intermediate certification authorities in the CertificateChain parameter. To do so, concatenate all certificates in the correct order (the first certificate must be the authority of your certificate, the second must the the authority of the first one, and so on). The private key must be a RSA key in PKCS1 form. To check this, open the PEM file and ensure its header reads as follows: BEGIN RSA PRIVATE KEY. [IMPORTANT] This private key must not be protected by a password or a passphrase.

Parameters:
  • body (str) – The PEM-encoded X509 certificate. (required)

  • chain – The PEM-encoded intermediate certification

authorities. :type chain: str

Parameters:

name – A unique name for the certificate. Constraints:

1-128 alphanumeric characters, pluses (+), equals (=), commas (,), periods (.), at signs (@), minuses (-), or underscores (_). (required) :type name: str

Parameters:

path – The path to the server certificate, set to a slash

(/) if not specified. :type path: str

Parameters:

private_key – The PEM-encoded private key matching

the certificate. (required) :type private_key: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

The new server certificate

Return type:

dict

ex_create_snapshot_export_task(osu_export_disk_image_format: Optional[str] = None, osu_export_api_key_id: Optional[str] = None, osu_export_api_secret_key: Optional[str] = None, osu_export_bucket: Optional[str] = None, osu_export_manifest_url: Optional[str] = None, osu_export_prefix: Optional[str] = None, snapshot: Optional[VolumeSnapshot] = None, dry_run: bool = False)[source]

Exports a snapshot to an Object Storage Unit (OSU) bucket. This action enables you to create a backup of your snapshot or to copy it to another account. You, or other users you send a pre-signed URL to, can then download this snapshot from the OSU bucket using the CreateSnapshot method. This procedure enables you to copy a snapshot between accounts within the same Region or in different Regions. To copy a snapshot within the same Region, you can also use the CreateSnapshot direct method. The copy of the source snapshot is independent and belongs to you.

Parameters:

osu_export_disk_image_format – The format of the export

disk (qcow2 | vdi | vmdk). (required) :type osu_export_disk_image_format: str

Parameters:

osu_export_api_key_id – The API key of the OSU account

that enables you to access the bucket. :type osu_export_api_key_id : str

Parameters:

osu_export_api_secret_key – The secret key of the OSU

account that enables you to access the bucket. :type osu_export_api_secret_key : str

Parameters:

osu_export_bucket – The name of the OSU bucket you want

to export the object to. (required) :type osu_export_bucket : str

Parameters:

osu_export_manifest_url – The URL of the manifest file.

:type osu_export_manifest_url : str

Parameters:

osu_export_prefix – The prefix for the key of the OSU

object. This key follows this format: prefix + object_export_task_id + ‘.’ + disk_image_format. :type osu_export_prefix : str

Parameters:

snapshot – The ID of the snapshot to export. (required)

:type snapshot : VolumeSnapshot

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run : bool

Returns:

the created snapshot export task

Return type:

dict

ex_create_subnet(ip_range: Optional[str] = None, net_id: Optional[str] = None, subregion_name: Optional[str] = None, dry_run: bool = False)[source]

Creates a Subnet in an existing Net. To create a Subnet in a Net, you have to provide the ID of the Net and the IP range for the Subnet (its network range). Once the Subnet is created, you cannot modify its IP range. The IP range of the Subnet can be either the same as the Net one if you create only a single Subnet in this Net, or a subset of the Net one. In case of several Subnets in a Net, their IP ranges must not overlap. The smallest Subnet you can create uses a /30 netmask (four IP addresses).

Parameters:

ip_range – The IP range in the Subnet, in CIDR notation

(for example, 10.0.0.0/16). (required) :type ip_range: str

Parameters:

net_id – The ID of the Net for which you want to create a

Subnet. (required) :type net_id: str

Parameters:

subregion_name – TThe name of the Subregion in which you

want to create the Subnet. :type subregion_name: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

The new Subnet

Return type:

dict

ex_create_tag(resource_ids: list, tag_key: Optional[str] = None, tag_value: Optional[str] = None, dry_run: bool = False)[source]

Adds one tag to the specified resources. If a tag with the same key already exists for the resource, the tag value is replaced. You can tag the following resources using their IDs:

Parameters:
  • resource_ids (list) – One or more resource IDs. (required)

  • tag_key – The key of the tag, with a minimum of 1 character.

(required) :type tag_key: str

Parameters:

tag_value – The value of the tag, between

0 and 255 characters. (required) :type tag_value: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. (required) :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

ex_create_tags(resource_ids: list, tags: Optional[list] = None, dry_run: bool = False)[source]

Adds one or more tags to the specified resources. If a tag with the same key already exists for the resource, the tag value is replaced. You can tag the following resources using their IDs:

Parameters:
  • resource_ids (list) – One or more resource IDs. (required)

  • tags – The key of the tag, with a minimum of 1 character.

(required) :type tags: list of dict

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

ex_create_virtual_gateway(connection_type: Optional[str] = None, dry_run: bool = False)[source]

Creates a virtual gateway. A virtual gateway is the access point on the Net side of a VPN connection.

Parameters:

connection_type – The type of VPN connection supported

by the virtual gateway (only ipsec.1 is supported). (required) :type connection_type: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

The new virtual gateway

Return type:

dict

ex_create_vpn_connection(client_gateway_id: Optional[str] = None, connection_type: Optional[str] = None, static_routes_only: Optional[bool] = None, virtual_gateway_id: Optional[str] = None, dry_run: bool = False)[source]

Creates a VPN connection between a specified virtual gateway and a specified client gateway. You can create only one VPN connection between a virtual gateway and a client gateway.

Parameters:
  • client_gateway_id (str) – The ID of the client gateway. (required)

  • connection_type – The type of VPN connection (only ipsec.1

is supported). (required) :type connection_type: str

Parameters:

static_routes_only – If false, the VPN connection uses

dynamic routing with Border Gateway Protocol (BGP). If true, routing is controlled using static routes. For more information about how to create and delete static routes, see CreateVpnConnectionRoute: https://docs.outscale.com/api#createvpnconnectionroute and DeleteVpnConnectionRoute: https://docs.outscale.com/api#deletevpnconnectionroute :type static_routes_only: bool

Parameters:

virtual_gateway_id – The ID of the virtual gateway.

(required) :type virtual_gateway_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

The new Vpn Connection

Return type:

dict

ex_create_vpn_connection_route(destination_ip_range: Optional[str] = None, vpn_connection_id: Optional[str] = None, dry_run: bool = False)[source]

Creates a static route to a VPN connection. This enables you to select the network flows sent by the virtual gateway to the target VPN connection.

Parameters:

destination_ip_range – The network prefix of the route, in

CIDR notation (for example, 10.12.0.0/16).(required) :type destination_ip_range: str

Parameters:

vpn_connection_id – The ID of the target VPN connection of

the static route. (required) :type vpn_connection_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

ex_delete_access_key(access_key_id: str, dry_run: bool = False)[source]

Deletes the specified access key associated with the account that sends the request.

Parameters:

access_key_id – The ID of the access key you want to

delete. (required) :type access_key_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

ex_delete_api_access_rule(api_access_rule_id: str, dry_run: bool = False)[source]

Delete an API access rule. You cannot delete the last remaining API access rule.

Parameters:

api_access_rule_id – The id of the targeted rule

(required). :type api_access_rule_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

true if successfull.

Return type:

bool if successful or dict

ex_delete_certificate_authority(ca_id: str, dry_run: bool = False)[source]

Deletes a specified Client Certificate Authority (CA).

Parameters:
  • ca_id (str) – The ID of the CA you want to delete. (required)

  • dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

ex_delete_client_gateway(client_gateway_id: Optional[str] = None, dry_run: bool = False)[source]

Deletes a client gateway. You must delete the VPN connection before deleting the client gateway.

Parameters:

client_gateway_id – The ID of the client gateway

you want to delete. (required) :type client_gateway_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

Returns True if action is successful

Return type:

bool

ex_delete_dhcp_options(dhcp_options_set_id: Optional[str] = None, dry_run: bool = False)[source]

Deletes a specified DHCP options set. Before deleting a DHCP options set, you must disassociate it from the Nets you associated it with. To do so, you need to associate with each Net a new set of DHCP options, or the default one if you do not want to associate any DHCP options with the Net.

Parameters:

dhcp_options_set_id – The ID of the DHCP options set

you want to delete. (required) :type dhcp_options_set_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

Deletes a specified DirectLink. Before deleting a DirectLink, ensure that all your DirectLink interfaces related to this DirectLink are deleted.

Parameters:

direct_link_id – The ID of the DirectLink you want to

delete. (required) :type direct_link_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

Deletes a specified DirectLink interface.

Parameters:

direct_link_interface_id – TThe ID of the DirectLink

interface you want to delete. (required) :type direct_link_interface_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

ex_delete_export_task(export_task_id: Optional[str] = None, dry_run: bool = False)[source]

Deletes an export task. If the export task is not running, the command fails and an error is returned.

Parameters:

export_task_id – The ID of the export task to delete.

(required) :type export_task_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

ex_delete_flexible_gpu(flexible_gpu_id: Optional[str] = None, dry_run: bool = False)[source]

Releases a flexible GPU (fGPU) from your account. The fGPU becomes free to be used by someone else.

Parameters:

flexible_gpu_id – The ID of the fGPU you want

to delete. (required) :type flexible_gpu_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

ex_delete_internet_service(internet_service_id: Optional[str] = None, dry_run: bool = False)[source]

Deletes an Internet service. Before deleting an Internet service, you must detach it from any Net it is attached to.

Parameters:

internet_service_id – The ID of the Internet service you

want to delete.(required) :type internet_service_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

ex_delete_listener_rule(listener_rule_name: Optional[str] = None, dry_run: bool = False)[source]

Deletes a listener rule. The previously active rule is disabled after deletion.

Parameters:

listener_rule_name – The name of the rule you want to

delete. (required) :type listener_rule_name: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

ex_delete_load_balancer(load_balancer_name: Optional[str] = None, dry_run: bool = False)[source]

Deletes a specified load balancer.

Parameters:

load_balancer_name – The name of the load balancer you want

to delete. (required) :type load_balancer_name: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

ex_delete_load_balancer_listeners(load_balancer_name: Optional[str] = None, load_balancer_ports: Optional[List[int]] = None, dry_run: bool = False)[source]

Deletes listeners of a specified load balancer.

Parameters:

load_balancer_name – The name of the load balancer for

which you want to delete listeners. (required) :type load_balancer_name: str

Parameters:

load_balancer_ports – One or more port numbers of the

listeners you want to delete.. (required) :type load_balancer_ports: list of int

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

ex_delete_load_balancer_policy(load_balancer_name: Optional[str] = None, policy_name: Optional[str] = None, dry_run: bool = False)[source]

Deletes a specified policy from a load balancer. In order to be deleted, the policy must not be enabled for any listener.

Parameters:

load_balancer_name – The name of the load balancer for

which you want to delete a policy. (required) :type load_balancer_name: str

Parameters:

policy_name – The name of the policy you want to delete.

(required) :type policy_name: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

ex_delete_load_balancer_tags(load_balancer_names: Optional[List[str]] = None, tag_keys: Optional[List[str]] = None, dry_run: bool = False)[source]

Deletes a specified load balancer tags.

Parameters:

load_balancer_names – The names of the load balancer for

which you want to delete tags. (required) :type load_balancer_names: str

Parameters:

tag_keys – The key of the tag, with a minimum of

1 character. :type tag_keys: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

ex_delete_nat_service(nat_service_id: Optional[str] = None, dry_run: bool = False)[source]

Deletes a specified network address translation (NAT) service. This action disassociates the External IP address (EIP) from the NAT service, but does not release this EIP from your account. However, it does not delete any NAT service routes in your route tables.

Parameters:

nat_service_id – TThe ID of the NAT service you want to

delete. (required) :type nat_service_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

ex_delete_net(net_id: Optional[str] = None, dry_run: bool = False)[source]

Deletes a specified Net. Before deleting the Net, you need to delete or detach all the resources associated with the Net:

  • Virtual machines (VMs)

  • Net peering connections

  • Custom route tables

  • External IP addresses (EIPs) allocated to resources in the Net

  • Network Interface Cards (NICs) created in the Subnets

  • Virtual gateways, Internet services and NAT services

  • Load balancers

  • Security groups

  • Subnets

Parameters:
  • net_id (str) – The ID of the Net you want to delete. (required)

  • dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

ex_delete_net_access_point(net_access_point_id: Optional[str] = None, dry_run: bool = False)[source]

Deletes one or more Net access point. This action also deletes the corresponding routes added to the route tables you specified for the Net access point.

Parameters:

net_access_point_id – The ID of the Net access point.

(required) :type net_access_point_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

ex_delete_net_peering(net_peering_id: Optional[List[str]] = None, dry_run: bool = False)[source]

Deletes a Net peering connection. If the Net peering connection is in the active state, it can be deleted either by the owner of the requester Net or the owner of the peer Net. If it is in the pending-acceptance state, it can be deleted only by the owner of the requester Net. If it is in the rejected, failed, or expired states, it cannot be deleted.

Parameters:

net_peering_id – The ID of the Net peering connection you

want to delete. (required) :type net_peering_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

ex_delete_nic(nic_id: Optional[str] = None, dry_run: bool = False)[source]

Deletes the specified network interface card (NIC). The network interface must not be attached to any virtual machine (VM).

Parameters:
  • nic_id (str) – The ID of the NIC you want to delete. (required)

  • dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

ex_delete_public_ip(dry_run: bool = False, public_ip: Optional[str] = None, public_ip_id: Optional[str] = None)[source]

Delete public ip.

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Parameters:

public_ip – The EIP. In the public Cloud, this parameter is

required. :type public_ip: str

Parameters:

public_ip_id – The ID representing the association of the

EIP with the VM or the NIC. In a Net, this parameter is required. :type public_ip_id: str

Returns:

request

Return type:

dict

ex_delete_route(destination_ip_range: Optional[str] = None, route_table_id: Optional[str] = None, dry_run: bool = False)[source]

Deletes a route from a specified route table.

Parameters:

destination_ip_range – The exact IP range for the route.

(required) :type destination_ip_range: str

Parameters:

route_table_id – The ID of the route table from which you

want to delete a route. (required) :type route_table_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

ex_delete_route_table(route_table_id: Optional[str] = None, dry_run: bool = False)[source]

Deletes a specified route table. Before deleting a route table, you must disassociate it from any Subnet. You cannot delete the main route table.

Parameters:

route_table_id – The ID of the route table you want to

delete. (required) :type route_table_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

ex_delete_security_group(security_group_id: Optional[str] = None, security_group_name: Optional[str] = None, dry_run: bool = False)[source]

Deletes a specified security group. You can specify either the name of the security group or its ID. This action fails if the specified group is associated with a virtual machine (VM) or referenced by another security group.

Parameters:

security_group_id – The ID of the security group you want

to delete. :type security_group_id: str

Parameters:
  • security_group_name (str) – TThe name of the security group.

  • dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

ex_delete_security_group_rule(flow: Optional[str] = None, from_port_range: Optional[int] = None, ip_protocol: Optional[str] = None, ip_range: Optional[str] = None, rules: Optional[List[dict]] = None, sg_account_id_to_unlink: Optional[str] = None, sg_id: Optional[str] = None, sg_name_to_unlink: Optional[str] = None, to_port_range: Optional[int] = None, dry_run: bool = False)[source]

Deletes one or more inbound or outbound rules from a security group. For the rule to be deleted, the values specified in the deletion request must exactly match the value of the existing rule. In case of TCP and UDP protocols, you have to indicate the destination port or range of ports. In case of ICMP protocol, you have to specify the ICMP type and code. Rules (IP permissions) consist of the protocol, IP address range or source security group. To remove outbound access to a destination security group, we recommend to use a set of IP permissions. We also recommend to specify the protocol in a set of IP permissions.

Parameters:

flow – The direction of the flow: Inbound or Outbound.

You can specify Outbound for Nets only.type (required) description: bool

Parameters:

from_port_range – The beginning of the port range for

the TCP and UDP protocols, or an ICMP type number. :type from_port_range: int

Parameters:

ip_range – The name The IP range for the security group

rule, in CIDR notation (for example, 10.0.0.0/16). :type ip_range: str

Parameters:

ip_protocol – The IP protocol name (tcp, udp, icmp) or

protocol number. By default, -1, which means all protocols. :type ip_protocol: str

Parameters:

rules – Information about the security group rule to create:

https://docs.outscale.com/api#createsecuritygrouprule :type rules: list of dict

Parameters:

sg_account_id_to_unlink – The account ID of the

owner of the security group for which you want to delete a rule. :type sg_account_id_to_unlink: str

Parameters:

sg_id – The ID of the security group for which

you want to delete a rule. (required) :type sg_id: str

Parameters:

sg_name_to_unlink – The ID of the source security

group. If you are in the Public Cloud, you can also specify the name of the source security group. :type sg_name_to_unlink: str

Parameters:

to_port_range – TThe end of the port range for the TCP and

UDP protocols, or an ICMP type number. :type to_port_range: int

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

The new Security Group Rule

Return type:

dict

ex_delete_server_certificate(name: Optional[str] = None, dry_run: bool = False)[source]

Deletes a specified server certificate.

Parameters:

name – The name of the server certificate you

want to delete. (required) :type name: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

ex_delete_subnet(subnet_id: Optional[str] = None, dry_run: bool = False)[source]

Deletes a specified Subnet. You must terminate all the running virtual machines (VMs) in the Subnet before deleting it.

Parameters:

subnet_id – The ID of the Subnet you want to delete.

(required) :type subnet_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

ex_delete_tags(resource_ids: list, tags: Optional[list] = None, dry_run: bool = False)[source]

Deletes one or more tags from the specified resources.

Parameters:
  • resource_ids (list) – One or more resource IDs. (required)

  • tags – The key of the tag, with a minimum of 1 character.

(required) :type tags: list of dict

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

ex_delete_virtual_gateway(virtual_gateway_id: Optional[str] = None, dry_run: bool = False)[source]

Deletes a specified virtual gateway. Before deleting a virtual gateway, we recommend to detach it from the Net and delete the VPN connection.

Parameters:

virtual_gateway_id – The ID of the virtual gateway

you want to delete. (required) :type virtual_gateway_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

ex_delete_vpn_connection(vpn_connection_id: Optional[str] = None, dry_run: bool = False)[source]

Deletes a specified VPN connection. If you want to delete a Net and all its dependencies, we recommend to detach the virtual gateway from the Net and delete the Net before deleting the VPN connection. This enables you to delete the Net without waiting for the VPN connection to be deleted.

Parameters:

vpn_connection_id – TThe ID of the VPN connection you want

to delete. (required) :type vpn_connection_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

ex_delete_vpn_connection_route(vpn_connection_id: Optional[str] = None, destination_ip_range: Optional[str] = None, dry_run: bool = False)[source]

Deletes a specified VPN connection. If you want to delete a Net and all its dependencies, we recommend to detach the virtual gateway from the Net and delete the Net before deleting the VPN connection. This enables you to delete the Net without waiting for the VPN connection to be deleted.

Parameters:

vpn_connection_id – TThe ID of the VPN connection you want

to delete. (required) :type vpn_connection_id: str

Parameters:

destination_ip_range – The network prefix of the route to

delete, in CIDR notation (for example, 10.12.0.0/16). (required) :type destination_ip_range: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

ex_deregister_vms_in_load_balancer(backend_vm_ids: Optional[List[str]] = None, load_balancer_name: Optional[str] = None, dry_run: bool = False)[source]

Deregisters a specified virtual machine (VM) from a load balancer.

Parameters:

backend_vm_ids – One or more IDs of back-end VMs.

(required) :type backend_vm_ids: str

Parameters:

load_balancer_name – The name of the load balancer.

(required) :type load_balancer_name: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

ex_detach_public_ip(public_ip: Optional[str] = None, link_public_ip_id: Optional[str] = None, dry_run: bool = False)[source]

Detach public ip from a node.

Parameters:

public_ip – (Required in a Net) The ID representing the

association of the EIP with the VM or the NIC :type public_ip: str

Parameters:

link_public_ip_id – (Required in a Net) The ID

representing the association of the EIP with the VM or the NIC. :type link_public_ip_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

the attached volume

Return type:

dict

Attaches one of your allocated flexible GPUs (fGPUs) to one of your virtual machines (Nodes). The fGPU is in the attaching state until the VM is stopped, after which it becomes attached.

Parameters:

flexible_gpu_id – The ID of the fGPU you want to attach.

(required) :type flexible_gpu_id: str

Parameters:

vm_id – The ID of the VM you want to attach the fGPU to.

(required) :type vm_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

Attaches an Internet service to a Net. To enable the connection between the Internet and a Net, you must attach an Internet service to this Net.

Parameters:

internet_service_id – The ID of the Internet service you

want to attach. (required) :type internet_service_id: str

Parameters:

net_id – The ID of the Net to which you want to attach the

Internet service. (required) :type net_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

Attaches a network interface card (NIC) to a virtual machine (VM). The interface and the VM must be in the same Subregion. The VM can be either running or stopped. The NIC must be in the available state.

Parameters:
  • nic_id (str) – The ID of the NIC you want to delete. (required)

  • device_number – The ID of the NIC you want to delete.

(required) :type device_number: str

Parameters:

node – The index of the VM device for the NIC attachment

(between 1 and 7, both included). :type node: Node

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

a Link Id

Return type:

str

Assigns one or more secondary private IP addresses to a specified network interface card (NIC). This action is only available in a Net. The private IP addresses to be assigned can be added individually using the PrivateIps parameter, or you can specify the number of private IP addresses to be automatically chosen within the Subnet range using the SecondaryPrivateIpCount parameter. You can specify only one of these two parameters. If none of these parameters are specified, a private IP address is chosen within the Subnet range.

Parameters:

allow_relink – If true, allows an IP address that is

already assigned to another NIC in the same Subnet to be assigned to the NIC you specified. :type allow_relink: str

Parameters:
  • nic_id (str) – The ID of the NIC. (required)

  • private_ips – The secondary private IP address or addresses

you want to assign to the NIC within the IP address range of the Subnet. :type private_ips: list of str

Parameters:

secondary_private_ip_count – The secondary private IP a

ddress or addresses you want to assign to the NIC within the IP address range of the Subnet. :type secondary_private_ip_count: int

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

:return:True if the action is successful :rtype: bool

Associates a Subnet with a route table. The Subnet and the route table must be in the same Net. The traffic is routed according to the route table defined within this Net. You can associate a route table with several Subnets.

Parameters:
  • route_table_id (str) – The ID of the route table. (required)

  • subnet_id (str) – The ID of the Subnet. (required)

  • dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

Link Route Table Id

Return type:

str

Attaches a virtual gateway to a Net.

Parameters:

net_id – The ID of the Net to which you want to attach

the virtual gateway. (required) :type net_id: str

Parameters:

virtual_gateway_id – The ID of the virtual

gateway. (required) :type virtual_gateway_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

Return type:

dict

ex_list_access_keys(access_key_ids: Optional[list] = None, states: Optional[list] = None, dry_run: bool = False)[source]

Returns information about the access key IDs of a specified user. If the user does not have any access key ID, this action returns an empty list.

Parameters:
  • access_key_ids (list of str) – The IDs of the access keys.

  • states (list of str) – The states of the access keys (ACTIVE | INACTIVE).

  • dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

list of Access Keys

Return type:

list of dict

ex_list_client_gateways(client_gateway_ids: Optional[list] = None, bgp_asns: Optional[list] = None, connection_types: Optional[list] = None, public_ips: Optional[list] = None, states: Optional[list] = None, tag_keys: Optional[list] = None, tag_values: Optional[list] = None, tags: Optional[list] = None, dry_run: bool = False)[source]

Deletes a client gateway. You must delete the VPN connection before deleting the client gateway.

Parameters:

client_gateway_ids – The IDs of the client gateways.

you want to delete. (required) :type client_gateway_ids: list of ``str`

Parameters:

bgp_asns – The Border Gateway Protocol (BGP) Autonomous

System Numbers (ASNs) of the connections. :type bgp_asns: list of int

Parameters:

connection_types – The types of communication tunnels

used by the client gateways (only ipsec.1 is supported). (required) :type connection_types: list```of ``str

Parameters:

public_ips – The public IPv4 addresses of the

client gateways. :type public_ips: list of str

Parameters:

states – The states of the client gateways

(pending | available | deleting | deleted). :type states: list of str

Parameters:

tag_keys – The keys of the tags associated with

the client gateways. :type tag_keys: list of str

Parameters:

tag_values – The values of the tags associated with the

client gateways. :type tag_values: list of str

Parameters:

tags – TThe key/value combination of the tags

associated with the client gateways, in the following format: “Filters”:{“Tags”:[“TAGKEY=TAGVALUE”]}. :type tags: list of str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

Returns list of Client Gateway

Return type:

list of dict

ex_list_consumption_account(from_date: Optional[str] = None, to_date: Optional[str] = None, dry_run: bool = False)[source]

Displays information about the consumption of your account for each billable resource within the specified time period.

Parameters:

from_date – The beginning of the time period, in

ISO 8601 date-time format (for example, 2017-06-14 or 2017-06-14T00:00:00Z). (required) :type from_date: str

Parameters:

to_date – The end of the time period, in

ISO 8601 date-time format (for example, 2017-06-30 or 2017-06-30T00:00:00Z). (required) :type to_date: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

a list of Consumption Entries

Return type:

list of dict

ex_list_dhcp_options(default: Optional[bool] = None, dhcp_options_set_id: Optional[list] = None, domaine_names: Optional[list] = None, domaine_name_servers: Optional[list] = None, ntp_servers: Optional[list] = None, tag_keys: Optional[list] = None, tag_values: Optional[list] = None, tags: Optional[list] = None, dry_run: bool = False)[source]

Retrieves information about the content of one or more DHCP options sets.

Parameters:

default – SIf true, lists all default DHCP options set.

If false, lists all non-default DHCP options set. :type default: list of bool

Parameters:
  • dhcp_options_set_id (list of str) – The IDs of the DHCP options sets.

  • domaine_names – The domain names used for the DHCP

options sets. :type domaine_names: list of str

Parameters:

domaine_name_servers – The domain name servers used for

the DHCP options sets. :type domaine_name_servers: list of str

Parameters:

ntp_servers – The Network Time Protocol (NTP) servers used

for the DHCP options sets. :type ntp_servers: list of str

Parameters:

tag_keys – The keys of the tags associated with the DHCP

options sets. :type ntp_servers: list of str

Parameters:

tag_values – The values of the tags associated with the

DHCP options sets. :type tag_values: list of str

Parameters:

tags – The key/value combination of the tags associated

with the DHCP options sets, in the following format: “Filters”:{“Tags”:[“TAGKEY=TAGVALUE”]}. :type tags: list of str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

a list of Dhcp Options

Return type:

list of dict

Lists all DirectLinks in the Region.

Parameters:

direct_link_interface_ids – The IDs of the DirectLink

interfaces. :type direct_link_interface_ids: list of str

Parameters:
  • direct_link_ids (list of str) – The IDs of the DirectLinks.

  • dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

list of Direct Link interfaces

Return type:

list of dict

Lists all DirectLinks in the Region.

Parameters:
  • direct_link_ids (list of str) – The IDs of the DirectLinks. (required)

  • dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

list of Direct Links

Return type:

list of dict

ex_list_flexible_gpu_catalog(dry_run: bool = False)[source]

Lists all flexible GPUs available in the public catalog.

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

Returns the Flexible Gpu Catalog

Return type:

list of dict

ex_list_flexible_gpus(delete_on_vm_deletion: Optional[bool] = None, flexible_gpu_ids: Optional[list] = None, generations: Optional[list] = None, model_names: Optional[list] = None, states: Optional[list] = None, subregion_names: Optional[list] = None, vm_ids: Optional[list] = None, dry_run: bool = False)[source]

Lists one or more flexible GPUs (fGPUs) allocated to your account.

Parameters:

delete_on_vm_deletion – Indicates whether the fGPU is

deleted when terminating the VM. :type delete_on_vm_deletion: bool

Parameters:
  • flexible_gpu_ids (list of str) – One or more IDs of fGPUs.

  • generations – The processor generations that the fGPUs are

compatible with. (required) :type generations: list of str

Parameters:

model_names – One or more models of fGPUs. For more

information, see About Flexible GPUs: https://wiki.outscale.net/display/EN/About+Flexible+GPUs :type model_names: list of str

Parameters:

states – The states of the fGPUs

(allocated | attaching | attached | detaching). :type states: list of str

Parameters:

subregion_names – The Subregions where the fGPUs are

located. :type subregion_names: list of str

Parameters:
  • vm_ids (list of str) – One or more IDs of VMs.

  • dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

Returns the Flexible Gpu Catalog

Return type:

list of dict

ex_list_image_export_tasks(dry_run: bool = False, task_ids: Optional[List[str]] = None)[source]

Lists one or more image export tasks.

Parameters:
  • task_ids (list of str) – The IDs of the export tasks.

  • dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

image export tasks

Return type:

list of dict

ex_list_internet_services(internet_service_ids: Optional[List[str]] = None, link_net_ids: Optional[List[str]] = None, link_states: Optional[List[str]] = None, tag_keys: Optional[List[str]] = None, tag_values: Optional[List[str]] = None, tags: Optional[List[str]] = None, dry_run: bool = False)[source]

Lists one or more of your Internet services. An Internet service enables your virtual machines (VMs) launched in a Net to connect to the Internet. By default, a Net includes an Internet service, and each Subnet is public. Every VM launched within a default Subnet has a private and a public IP addresses.

Parameters:
  • internet_service_ids (list of str) – One or more filters.

  • link_net_ids – The IDs of the Nets the Internet services

are attached to. :type link_net_ids: list of str

Parameters:

link_states – The current states of the attachments

between the Internet services and the Nets (only available, if the Internet gateway is attached to a VPC). (required) :type link_states: list of str

Parameters:

tag_keys – The keys of the tags associated with the

Internet services. :type tag_keys: list of str

Parameters:

tag_values – The values of the tags associated with the

Internet services. :type tag_values: list of str

Parameters:

tags – The key/value combination of the tags associated

with the Internet services, in the following format: “Filters”:{“Tags”:[“TAGKEY=TAGVALUE”]}. :type tags: list of str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

Returns the list of Internet Services

Return type:

list of dict

ex_list_listener_rules(listener_rule_names: Optional[List[str]] = None, dry_run: bool = False)[source]

Describes one or more listener rules. By default, this action returns the full list of listener rules for the account.

Parameters:
  • listener_rule_names (list of str) – The names of the listener rules.

  • dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

Returns the list of Listener Rules

Return type:

list of dict

ex_list_load_balancer_tags(load_balancer_names: Optional[List[str]] = None, dry_run: bool = False)[source]

Describes the tags associated with one or more specified load balancers.

Parameters:

load_balancer_names – The names of the load balancer.

(required) :type load_balancer_names: list of str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

a list of load balancer tags

Return type:

list of dict

ex_list_load_balancers(load_balancer_names: Optional[List[str]] = None, dry_run: bool = False)[source]

Lists one or more load balancers and their attributes.

Parameters:

load_balancer_names – The names of the load balancer.

(required) :type load_balancer_names: list of str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

a list of load balancer

Return type:

list of dict

ex_list_nat_services(nat_service_ids: Optional[List[str]] = None, net_ids: Optional[List[str]] = None, states: Optional[List[str]] = None, subnet_ids: Optional[List[str]] = None, tag_keys: Optional[List[str]] = None, tag_values: Optional[List[str]] = None, tags: Optional[List[str]] = None, dry_run: bool = False)[source]

Lists one or more network address translation (NAT) services.

Parameters:
  • nat_service_ids (list of str) – The IDs of the NAT services.

  • net_ids (list of str) – The IDs of the Nets in which the NAT services are.

  • states – The states of the NAT services

(pending | available | deleting | deleted). :type states: list of str

Parameters:

subnet_ids – The IDs of the Subnets in which the NAT

services are. :type subnet_ids: list of str

Parameters:

tag_keys – The keys of the tags associated with the NAT

services. :type tag_keys: list of str

Parameters:

tag_values – The values of the tags associated with the NAT

services. :type tag_values: list of str

Parameters:

tags – The values of the tags associated with the NAT

services. :type tags: list of str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

a list of back end vms health

Return type:

list of dict

ex_list_net_peerings(accepter_net_account_ids: Optional[List[str]] = None, accepter_net_ip_ranges: Optional[List[str]] = None, accepter_net_net_ids: Optional[List[str]] = None, net_peering_ids: Optional[List[str]] = None, source_net_account_ids: Optional[List[str]] = None, source_net_ip_ranges: Optional[List[str]] = None, source_net_net_ids: Optional[List[str]] = None, state_messages: Optional[List[str]] = None, states_names: Optional[List[str]] = None, tag_keys: Optional[List[str]] = None, tag_values: Optional[List[str]] = None, tags: Optional[List[str]] = None, dry_run: bool = False)[source]

Lists one or more peering connections between two Nets.

Parameters:

accepter_net_account_ids – The account IDs of the owners of

the peer Nets. :type accepter_net_account_ids: list of str

Parameters:

accepter_net_ip_ranges – The IP ranges of the peer Nets, in

CIDR notation (for example, 10.0.0.0/24). :type accepter_net_ip_ranges: list of str

Parameters:
  • accepter_net_net_ids (list of str) – The IDs of the peer Nets.

  • source_net_account_ids – The account IDs of the owners of

the peer Nets. :type source_net_account_ids: list of str

Parameters:
  • source_net_ip_ranges (list of str) – The IP ranges of the peer Nets.

  • source_net_net_ids (list of str) – The IDs of the peer Nets.

  • net_peering_ids (list of str) – The IDs of the Net peering connections.

  • state_messages – Additional information about the states of

the Net peering connections. :type state_messages: list of str

Parameters:

states_names – The states of the Net peering connections

(pending-acceptance | active | rejected | failed | expired | deleted). :type states_names: list of str

Parameters:

tag_keys – The keys of the tags associated with the Net

peering connections. :type tag_keys: list of str

Parameters:

tag_values – TThe values of the tags associated with the

Net peering connections. :type tag_values: list of str

Parameters:

tags – The key/value combination of the tags associated

with the Net peering connections, in the following format: “Filters”:{“Tags”:[“TAGKEY=TAGVALUE”]}. :type tags: list of str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

A list of Net Access Points

Return type:

list of dict

ex_list_nets(dhcp_options_set_ids: Optional[List[str]] = None, ip_ranges: Optional[List[str]] = None, is_default: Optional[bool] = None, net_ids: Optional[List[str]] = None, states: Optional[List[str]] = None, tag_keys: Optional[List[str]] = None, tag_values: Optional[List[str]] = None, tags: Optional[List[str]] = None, dry_run: bool = False)[source]

Lists one or more Nets.

Parameters:
  • dhcp_options_set_ids (list of str) – The IDs of the DHCP options sets.

  • ip_ranges – The IP ranges for the Nets, in CIDR notation

(for example, 10.0.0.0/16). :type ip_ranges: list of str

Parameters:
  • is_default (bool) – If true, the Net used is the default one.

  • net_ids (list of str) – The IDs of the Nets.

  • states (list of str) – The states of the Nets (pending | available).

  • tag_keys (list of str) – The keys of the tags associated with the Nets.

  • tag_values – The values of the tags associated with the

Nets. :type tag_values: list of str

Parameters:

tags – The key/value combination of the tags associated

with the Nets, in the following format: “Filters”:{“Tags”:[“TAGKEY=TAGVALUE”]}. :type tags: list of str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

A list of Nets

Return type:

list of dict

ex_list_nets_access_point_services(service_ids: Optional[List[str]] = None, service_names: Optional[List[str]] = None, dry_run: bool = False)[source]

Describes 3DS OUTSCALE services available to create Net access points. For more information, see CreateNetAccessPoint: https://docs.outscale.com/api#createnetaccesspoint

Parameters:
  • service_ids (list of str) – The IDs of the services.

  • service_names – The names of the prefix lists, which

identify the 3DS OUTSCALE services they are associated with. :type service_names: list of str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

A list of Services

Return type:

list of dict

ex_list_nets_access_points(net_access_point_ids: Optional[List[str]] = None, net_ids: Optional[List[str]] = None, service_names: Optional[List[str]] = None, states: Optional[List[str]] = None, tag_keys: Optional[List[str]] = None, tag_values: Optional[List[str]] = None, tags: Optional[List[str]] = None, dry_run: bool = False)[source]

Describes one or more Net access points.

Parameters:
  • net_access_point_ids (list of str) – The IDs of the Net access points.

  • net_ids (list of str) – The IDs of the Nets.

  • service_names – The The names of the prefix lists

corresponding to the services. For more information, see DescribePrefixLists: https://docs.outscale.com/api#describeprefixlists :type service_names: list of str

Parameters:

states – The states of the Net access points

(pending | available | deleting | deleted). :type states: list of str

Parameters:

tag_keys – The keys of the tags associated with the Net

access points. :type tag_keys: list of str

Parameters:

tag_values – The values of the tags associated with the

Net access points. :type tag_values: list of str

Parameters:

tags – The key/value combination of the tags associated

with the Net access points, in the following format: “Filters”:{“Tags”:[“TAGKEY=TAGVALUE”]}. :type tags: list of str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

A list of Net Access Points

Return type:

list of dict

ex_list_nics(link_nic_sort_numbers: Optional[List[int]] = None, link_nic_vm_ids: Optional[List[str]] = None, nic_ids: Optional[List[str]] = None, private_ips_private_ips: Optional[List[str]] = None, subnet_ids: Optional[List[str]] = None, dry_run: bool = False)[source]

Lists one or more network interface cards (NICs). A NIC is a virtual network interface that you can attach to a virtual machine (VM) in a Net.

Parameters:

link_nic_sort_numbers – The device numbers the NICs are

attached to. :type link_nic_sort_numbers: list of int

Parameters:

link_nic_vm_ids – The IDs of the VMs the NICs are attached

to. :type link_nic_vm_ids: list of str

Parameters:
  • nic_ids (list of str) – The IDs of the NICs.

  • private_ips_private_ips – The private IP addresses of the

NICs. :type private_ips_private_ips: list of str

Parameters:
  • subnet_ids (list of str) – The IDs of the Subnets for the NICs.

  • dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

A list of the Nics

Return type:

list of dict

ex_list_node_types(bsu_optimized: Optional[bool] = None, memory_sizes: Optional[List[int]] = None, vcore_counts: Optional[List[int]] = None, vm_type_names: Optional[List[str]] = None, volume_counts: Optional[List[int]] = None, volume_sizes: Optional[List[int]] = None, dry_run: bool = False)[source]

Lists one or more predefined VM types.

Parameters:

bsu_optimized – Indicates whether the VM is optimized for

BSU I/O. :type bsu_optimized: bool

Parameters:
  • memory_sizes (list of int) – The amounts of memory, in gibibytes (GiB).

  • vcore_counts (list of int) – The numbers of vCores.

  • vm_type_names – The names of the VM types. For more

information, see Instance Types. :type vm_type_names: list of str

Parameters:

volume_counts – The maximum number of ephemeral storage

disks. :type volume_counts: list of int

Parameters:

volume_sizes – The size of one ephemeral storage disk,

in gibibytes (GiB). :type volume_sizes: list of int

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

list of vm types

Return type:

list of dict

ex_list_nodes_states(all_vms: Optional[bool] = None, subregion_names: Optional[List[str]] = None, vm_ids: Optional[List[str]] = None, vm_states: Optional[List[str]] = None, dry_run: bool = False)[source]

Lists the status of one or more virtual machines (VMs).

Parameters:

all_vms – If true, includes the status of all VMs. By

default or if set to false, only includes the status of running VMs. :type all_vms: bool

Parameters:
  • subregion_names (list of str) – The names of the Subregions of the VMs.

  • vm_ids (list of str) – One or more IDs of VMs.

  • vm_states – The states of the VMs

(pending | running | stopping | stopped | shutting-down | terminated | quarantine) :type vm_states: list of str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

list the status of one ore more vms

Return type:

list of dict

ex_list_product_types(product_type_ids: Optional[List[str]] = None, dry_run: bool = False)[source]

Describes one or more product types.

Parameters:
  • product_type_ids (list of str) – The IDs of the product types.

  • dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

A list of Product Type

Return type:

list of dict

ex_list_public_ip_ranges(dry_run: bool = False)[source]

Lists available regions details.

Parameters:

dry_run – If true, checks whether you have the

required permissions to perform the action. :type dry_run: bool

Returns:

regions details

Return type:

dict

ex_list_public_ips(data: str = '{}')[source]

List all public IPs.

Parameters:

data – json stringify following the outscale api

documentation for filter :type data: string

Returns:

nodes

Return type:

dict

ex_list_quotas(collections: Optional[List[str]] = None, quota_names: Optional[List[str]] = None, quota_types: Optional[List[str]] = None, short_descriptions: Optional[List[str]] = None, dry_run: bool = False)[source]

Describes one or more of your quotas.

Parameters:
  • collections (list of str) – The group names of the quotas.

  • quota_names (list of str) – The names of the quotas.

  • quota_types – The resource IDs if these are

resource-specific quotas, global if they are not. :type quota_types: list of str

Parameters:
  • short_descriptions (list of str) – The description of the quotas.

  • dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

A list of Product Type

Return type:

list of dict

ex_list_regions(ex_dry_run: bool = False)[source]

Lists available regions details.

Parameters:

ex_dry_run – If true, checks whether you have the required

permissions to perform the action. :type ex_dry_run: bool :return: regions details :rtype: dict

ex_list_route_tables(link_route_table_ids: Optional[List[str]] = None, link_route_table_link_route_table_ids: Optional[List[str]] = None, link_route_table_main: Optional[bool] = None, link_subnet_ids: Optional[List[str]] = None, net_ids: Optional[List[str]] = None, route_creation_methods: Optional[List[str]] = None, route_destination_ip_ranges: Optional[List[str]] = None, route_destination_service_ids: Optional[List[str]] = None, route_gateway_ids: Optional[List[str]] = None, route_nat_service_ids: Optional[List[str]] = None, route_net_peering_ids: Optional[List[str]] = None, route_states: Optional[List[str]] = None, route_table_ids: Optional[List[str]] = None, route_vm_ids: Optional[List[str]] = None, tag_keys: Optional[List[str]] = None, tag_values: Optional[List[str]] = None, tags: Optional[List[str]] = None, dry_run: bool = False)[source]

Lists one or more of your route tables. In your Net, each Subnet must be associated with a route table. If a Subnet is not explicitly associated with a route table, it is implicitly associated with the main route table of the Net.

Parameters:

link_route_table_ids – The IDs of the route tables involved

in the associations. :type link_route_table_ids: list of str

Parameters:

link_route_table_link_route_table_ids – The IDs of the

associations between the route tables and the Subnets. :type link_route_table_link_route_table_ids: list of str

Parameters:

link_route_table_main – If true, the route tables are the

main ones for their Nets. :type link_route_table_main: bool

Parameters:

link_subnet_ids – The IDs of the Subnets involved in the

associations. :type link_subnet_ids: list of str

Parameters:

net_ids – The IDs of the route tables involved

in the associations. :type net_ids: list of str

Parameters:
  • route_creation_methods (list of str) – The methods used to create a route.

  • route_destination_ip_ranges – The IP ranges specified in

routes in the tables. :type route_destination_ip_ranges: list of str

Parameters:

route_destination_service_ids – The service IDs specified

in routes in the tables. :type route_destination_service_ids: list of str

Parameters:

route_gateway_ids – The IDs of the gateways specified in

routes in the tables. :type route_gateway_ids: list of str

Parameters:

route_nat_service_ids – The IDs of the NAT services

specified in routes in the tables. :type route_nat_service_ids: list of str

Parameters:

route_net_peering_ids – The IDs of the Net peering

connections specified in routes in the tables. :type route_net_peering_ids: list of str

Parameters:

route_states – The states of routes in the route tables

(active | blackhole). The blackhole state indicates that the target of the route is not available. :type route_states: list of str

Parameters:
  • route_table_ids (list of str) – The IDs of the route tables.

  • route_vm_ids – The IDs of the VMs specified in routes in

the tables. :type route_vm_ids: list of str

Parameters:

tag_keys – The keys of the tags associated with the route

tables. :type tag_keys: list of str

Parameters:

tag_values – The values of the tags associated with the

route tables. :type tag_values: list of str

Parameters:

tags – The key/value combination of the tags associated

with the route tables, in the following format: “Filters”:{“Tags”:[“TAGKEY=TAGVALUE”]}. :type tags: list of str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

list of Route Tables

Return type:

list of dict

ex_list_secret_access_key(access_key_id: Optional[str] = None, dry_run: bool = False)[source]

Gets information about the secret access key associated with the account that sends the request.

Parameters:
  • access_key_id (str) – The ID of the access key. (required)

  • dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

Access Key

Return type:

dict

ex_list_security_groups(account_ids: Optional[List[str]] = None, net_ids: Optional[List[str]] = None, security_group_ids: Optional[List[str]] = None, security_group_names: Optional[List[str]] = None, tag_keys: Optional[List[str]] = None, tag_values: Optional[List[str]] = None, tags: Optional[List[str]] = None, dry_run: bool = False)[source]

Lists one or more security groups. You can specify either the name of the security groups or their IDs.

Parameters:

account_ids – The account IDs of the owners of the security

groups. :type account_ids: list of str

Parameters:

net_ids – The IDs of the Nets specified when the security

groups were created. :type net_ids: list of str

Parameters:
  • security_group_ids (list of str) – The IDs of the security groups.

  • security_group_names (list of str) – The names of the security groups.

  • tag_keys – TThe keys of the tags associated with the

security groups. :type tag_keys: list of str

Parameters:

tag_values – The values of the tags associated with the

security groups. :type tag_values: list of str

Parameters:

tags – TThe key/value combination of the tags associated

with the security groups, in the following format: “Filters”:{“Tags”:[“TAGKEY=TAGVALUE”]}. :type tags: list of str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

a list of Security Groups

Return type:

list of dict

ex_list_server_certificates(paths: Optional[str] = None, dry_run: bool = False)[source]

List your server certificates.

Parameters:
  • paths (str) – The path to the server certificate.

  • dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

server certificate

Return type:

list of dict

ex_list_snapshot_export_tasks(dry_run: bool = False, task_ids: Optional[List[str]] = None)[source]

Lists one or more image export tasks.

Parameters:
  • task_ids (list of str) – The IDs of the export tasks.

  • dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

snapshot export tasks

Return type:

list of dict

ex_list_subnets(available_ip_counts: Optional[List[str]] = None, ip_ranges: Optional[List[str]] = None, net_ids: Optional[List[str]] = None, states: Optional[List[str]] = None, subnet_ids: Optional[List[str]] = None, subregion_names: Optional[List[str]] = None, tag_keys: Optional[List[str]] = None, tag_values: Optional[List[str]] = None, tags: Optional[List[str]] = None, dry_run: bool = False)[source]

Lists one or more of your Subnets. If you do not specify any Subnet ID, this action describes all of your Subnets.

Parameters:
  • available_ip_counts (str) – The number of available IPs.

  • ip_ranges – The IP ranges in the Subnets, in CIDR notation

(for example, 10.0.0.0/16). :type ip_ranges: str

Parameters:
  • net_ids (str) – The IDs of the Nets in which the Subnets are.

  • states (str) – The states of the Subnets (pending | available).

  • subnet_ids (str) – The IDs of the Subnets.

  • subregion_names – The names of the Subregions in which the

Subnets are located. :type subregion_names: str

Parameters:

tag_keys – TThe keys of the tags associated with the

subnets. :type tag_keys: list of str

Parameters:

tag_values – The values of the tags associated with the

subnets. :type tag_values: list of str

Parameters:

tags – TThe key/value combination of the tags associated

with the subnets, in the following format: “Filters”:{“Tags”:[“TAGKEY=TAGVALUE”]}. :type tags: list of str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

a list of Subnets

Return type:

list of dict

ex_list_subregions(ex_dry_run: bool = False)[source]

Lists available subregions details.

Parameters:

ex_dry_run – If true, checks whether you have the required

permissions to perform the action. :type ex_dry_run: bool :return: subregions details :rtype: dict

ex_list_tags(resource_ids: Optional[list] = None, resource_types: Optional[list] = None, keys: Optional[list] = None, values: Optional[list] = None, dry_run: bool = False)[source]

Lists one or more tags for your resources.

Parameters:
  • resource_ids (list) – One or more resource IDs.

  • resource_types (list) – One or more resource IDs.

  • keys (list) – One or more resource IDs.

  • values (list) – One or more resource IDs.

  • dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

list of tags

Return type:

list of dict

ex_list_virtual_gateways(connection_types: Optional[List[str]] = None, link_net_ids: Optional[List[str]] = None, link_states: Optional[List[str]] = None, states: Optional[List[str]] = None, tag_keys: Optional[List[str]] = None, tag_values: Optional[List[str]] = None, tags: Optional[List[str]] = None, virtual_gateway_id: Optional[List[str]] = None, dry_run: bool = False)[source]

Lists one or more virtual gateways.

Parameters:

connection_types – The types of the virtual gateways

(only ipsec.1 is supported). :type connection_types: list of dict

Parameters:

link_net_ids – The IDs of the Nets the virtual gateways

are attached to. :type link_net_ids: list of dict

Parameters:

link_states – The current states of the attachments

between the virtual gateways and the Nets (attaching | attached | detaching | detached). :type link_states: list of dict

Parameters:

states – The states of the virtual gateways

(pending | available | deleting | deleted). :type states: list of dict

Parameters:

tag_keys – The keys of the tags associated with the

virtual gateways. :type tag_keys: list of dict

Parameters:

tag_values – The values of the tags associated with

the virtual gateways. :type tag_values: list of dict

Parameters:

tags – The key/value combination of the tags associated

with the virtual gateways, in the following format: “Filters”:{“Tags”:[“TAGKEY=TAGVALUE”]}. :type tags: list of dict

Parameters:
  • virtual_gateway_id (list of dict) – The IDs of the virtual gateways.

  • dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

list of virtual gateway

Return type:

list of dict

ex_list_vms_health(backend_vm_ids: Optional[List[str]] = None, load_balancer_name: Optional[str] = None, dry_run: bool = False)[source]

Lists the state of one or more back-end virtual machines (VMs) registered with a specified load balancer.

Parameters:

load_balancer_name – The name of the load balancer.

(required) :type load_balancer_name: str

Parameters:
  • backend_vm_ids (list of str) – One or more IDs of back-end VMs.

  • dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

a list of back end vms health

Return type:

list of dict

ex_list_vpn_connections(bgp_asns: Optional[List[int]] = None, client_gateway_ids: Optional[List[str]] = None, connection_types: Optional[List[str]] = None, route_destination_ip_ranges: Optional[List[str]] = None, states: Optional[List[str]] = None, static_routes_only: Optional[bool] = None, tag_keys: Optional[List[str]] = None, tag_values: Optional[List[str]] = None, tags: Optional[List[str]] = None, dry_run: bool = False)[source]

Describes one or more VPN connections.

Parameters:

bgp_asns – The Border Gateway Protocol (BGP) Autonomous

System Numbers (ASNs) of the connections. :type bgp_asns: list of int

Parameters:
  • client_gateway_ids (list of str) – The IDs of the client gateways.

  • connection_types – The types of the VPN connections (only

ipsec.1 is supported). :type connection_types: list of str

Parameters:

states – The states of the vpn connections

(pending | available). :type states: str

Parameters:
  • route_destination_ip_ranges (str) – The destination IP ranges.

  • static_routes_only – If false, the VPN connection uses

dynamic routing with Border Gateway Protocol (BGP). If true, routing is controlled using static routes. For more information about how to create and delete static routes, see CreateVpnConnectionRoute: https://docs.outscale.com/api#createvpnconnectionroute and DeleteVpnConnectionRoute: https://docs.outscale.com/api#deletevpnconnectionroute :type static_routes_only: bool

Parameters:

tag_keys – TThe keys of the tags associated with the

subnets. :type tag_keys: list of str

Parameters:

tag_values – The values of the tags associated with the

subnets. :type tag_values: list of str

Parameters:

tags – TThe key/value combination of the tags associated

with the subnets, in the following format: “Filters”:{“Tags”:[“TAGKEY=TAGVALUE”]}. :type tags: list of str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

a list of Subnets

Return type:

list of dict

ex_read_account(dry_run: bool = False)[source]

Gets information about the account that sent the request.

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

the account information

Return type:

dict

ex_read_admin_password_node(node: Node, dry_run: bool = False)[source]

Retrieves the administrator password for a Windows running virtual machine (VM). The administrator password is encrypted using the keypair you specified when launching the VM.

Parameters:
  • node (Node) – the ID of the VM (required)

  • dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

The Admin Password of the specified Node.

Return type:

str

ex_read_api_access_rules(api_access_rules_ids: Optional[List[str]] = None, ca_ids: Optional[List[str]] = None, cns: Optional[List[str]] = None, descriptions: Optional[List[str]] = None, ip_ranges: Optional[List[str]] = None, dry_run: bool = False)[source]

Read API access rules.

Parameters:

api_access_rules_ids – The List containing rules ids to

filter the request. :type api_access_rules_ids: List of str

Parameters:
  • ca_ids (List of str) – The List containing CA ids to filter the request.

  • cns (List of str) – The List containing cns to filter the request.

  • descriptions – The List containing descriptions to filter

the request. :type descriptions: List of str

Parameters:

ip_ranges – The List containing ip ranges in CIDR notation

(for example, 192.0.2.0/16) to filter the request. :type ip_ranges: List of str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

a List of API access rules.

Return type:

List of dict if successfull or dict

ex_read_certificate_authorities(ca_fingerprints: Optional[List[str]] = None, ca_ids: Optional[List[str]] = None, descriptions: Optional[List[str]] = None, dry_run: bool = False)[source]

Returns information about one or more of your Client Certificate Authorities (CAs).

Parameters:
  • ca_fingerprints (list of str) – The fingerprints of the CAs.

  • ca_ids (list of str) – The IDs of the CAs.

  • descriptions (list of str) – The descriptions of the CAs.

  • dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

a list of all Ca matching filled filters.

Return type:

list of dict

ex_read_console_output_node(node: Node, dry_run: bool = False)[source]

Gets the console output for a virtual machine (VM). This console provides the most recent 64 KiB output.

Parameters:
  • node (Node) – the ID of the VM (required)

  • dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

The Console Output of the specified Node.

Return type:

str

ex_register_vms_in_load_balancer(backend_vm_ids: Optional[List[str]] = None, load_balancer_name: Optional[str] = None, dry_run: bool = False)[source]

Registers one or more virtual machines (VMs) with a specified load balancer. The VMs must be running in the same network as the load balancer (in the public Cloud or in the same Net). It may take a little time for a VM to be registered with the load balancer. Once the VM is registered with a load balancer, it receives traffic and requests from this load balancer and is called a back-end VM.

Parameters:

load_balancer_name – The name of the load balancer.

(required) :type load_balancer_name: str

Parameters:
  • backend_vm_ids (list of str) – One or more IDs of back-end VMs.

  • dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

a list of back end vms health

Return type:

list of dict

ex_reject_net_peering(net_peering_id: Optional[List[str]] = None, dry_run: bool = False)[source]

Rejects a Net peering connection request. The Net peering connection must be in the pending-acceptance state to be rejected. The rejected Net peering connection is then in the rejected state.

Parameters:

net_peering_id – The ID of the Net peering connection you

want to reject. (required) :type net_peering_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

The rejected Net Peering

Return type:

dict

ex_reset_account_password(password: str = '', token: str = '', dry_run: bool = False)[source]

Sends an email to the email address provided for the account with a token to reset your password.

Parameters:
  • password (str) – The new password for the account.

  • token – The token you received at the email address

provided for the account. :type token: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

ex_send_reset_password_email(email: str, dry_run: bool = False)[source]

Replaces the account password with the new one you provide. You must also provide the token you received by email when asking for a password reset using the SendResetPasswordEmail method.

Parameters:
  • email (str) – The email address provided for the account.

  • dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

Detaches a flexible GPU (fGPU) from a virtual machine (VM). The fGPU is in the detaching state until the VM is stopped, after which it becomes available for allocation again.

Parameters:

flexible_gpu_id – The ID of the fGPU you want to attach.

(required) :type flexible_gpu_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

Detaches an Internet service from a Net. This action disables and detaches an Internet service from a Net. The Net must not contain any running virtual machine (VM) using an External IP address (EIP).

Parameters:

internet_service_id – The ID of the Internet service you

want to detach. (required) :type internet_service_id: str

Parameters:

net_id – The ID of the Net from which you want to detach

the Internet service. (required) :type net_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

Detaches a network interface card (NIC) from a virtual machine (VM). The primary NIC cannot be detached.

Parameters:

link_nic_id – The ID of the NIC you want to delete.

(required) :type link_nic_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

Unassigns one or more secondary private IPs from a network interface card (NIC).

Parameters:
  • nic_id (str) – The ID of the NIC. (required)

  • private_ips – One or more secondary private IP addresses

you want to unassign from the NIC. (required) :type private_ips: list of str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

Disassociates a Subnet from a route table. After disassociation, the Subnet can no longer use the routes in this route table, but uses the routes in the main route table of the Net instead.

Parameters:
  • link_route_table_id (str) – The ID of the route table. (required)

  • dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

Detaches a virtual gateway from a Net. You must wait until the virtual gateway is in the detached state before you can attach another Net to it or delete the Net it was previously attached to.

Parameters:

net_id – The ID of the Net from which you want to detach

the virtual gateway. (required) :type net_id: str

Parameters:

virtual_gateway_id – The ID of the Net from which you

want to detach the virtual gateway. (required) :type virtual_gateway_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

True if the action is successful

Return type:

bool

ex_update_access_key(access_key_id: Optional[str] = None, state: Optional[str] = None, dry_run: bool = False)[source]

Modifies the status of the specified access key associated with the account that sends the request. When set to ACTIVE, the access key is enabled and can be used to send requests. When set to INACTIVE, the access key is disabled.

Parameters:
  • access_key_id (str) – The ID of the access key. (required)

  • state – The new state of the access key

(ACTIVE | INACTIVE). (required) :type state: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

Access Key

Return type:

dict

ex_update_account(city: Optional[str] = None, company_name: Optional[str] = None, country: Optional[str] = None, email: Optional[str] = None, first_name: Optional[str] = None, last_name: Optional[str] = None, zip_code: Optional[str] = None, job_title: Optional[str] = None, mobile_number: Optional[str] = None, phone_number: Optional[str] = None, state_province: Optional[str] = None, vat_number: Optional[str] = None, dry_run: bool = False)[source]

Updates the account information for the account that sends the request.

Parameters:
  • city (str) – The city of the account owner.

  • company_name – The name of the company for the account.

permissions to perform the action. :type company_name: str

Parameters:
  • country (str) – The country of the account owner.

  • email (str) – The email address for the account.

  • first_name (str) – The first name of the account owner.

  • last_name (str) – The last name of the account owner.

  • zip_code (str) – The ZIP code of the city.

  • job_title (str) – The job title of the account owner.

  • mobile_number – The mobile phone number of the account

owner. :type mobile_number: str

Parameters:

phone_number – The landline phone number of the account

owner. :type phone_number: str

Parameters:
  • state_province (str) – The state/province of the account.

  • vat_number – The value added tax (VAT) number for

the account. :type vat_number: str

Parameters:

dry_run (bool) – the password of the account

Returns:

The new account information

Return type:

dict

ex_update_api_access_rule(api_access_rule_id: str, ca_ids: Optional[List[str]] = None, cns: Optional[List[str]] = None, description: Optional[str] = None, ip_ranges: Optional[List[str]] = None, dry_run: bool = False)[source]

Update an API access rules. The new rule you specify fully replaces the old rule. Therefore, for a parameter that is not specified, any previously set value is deleted.

Parameters:

api_access_rule_id – The id of the rule we want to update

(required). :type api_access_rule_id: str

Parameters:

ca_ids – One or more IDs of Client Certificate Authorities

(CAs). :type ca_ids: List of str

Parameters:

cns – One or more Client Certificate Common Names (CNs).

If this parameter is specified, you must also specify the ca_ids parameter. :type cns: List of str

Parameters:
  • description (str) – The description of the new rule.

  • ip_ranges – One or more IP ranges, in CIDR notation

(for example, 192.0.2.0/16). :type ip_ranges: List of str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

a List of API access rules.

Return type:

List of dict if successfull or dict

ex_update_certificate_authority(ca_id: str, description: Optional[str] = None, dry_run: bool = False)[source]

Modifies the specified attribute of a Client Certificate Authority (CA).

Parameters:
  • ca_id (str) – The ID of the CA. (required)

  • description (str) – The description of the CA.

  • dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

a the created Ca or the request result.

Return type:

dict

ex_update_flexible_gpu(delete_on_vm_deletion: Optional[bool] = None, flexible_gpu_id: Optional[str] = None, dry_run: bool = False)[source]

Modifies a flexible GPU (fGPU) behavior.

Parameters:

delete_on_vm_deletion – If true, the fGPU is deleted when

the VM is terminated. :type delete_on_vm_deletion: bool

Parameters:
  • flexible_gpu_id (str) – The ID of the fGPU you want to modify.

  • dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

the updated Flexible GPU

Return type:

dict

ex_update_image(dry_run: bool = False, image: Optional[NodeImage] = None, perm_to_launch_addition_account_ids: Optional[List[str]] = None, perm_to_launch_addition_global_permission: Optional[bool] = None, perm_to_launch_removals_account_ids: Optional[List[str]] = None, perm_to_launch_removals_global_permission: Optional[bool] = None)[source]

Modifies the specified attribute of an Outscale machine image (OMI). You can specify only one attribute at a time. You can modify the permissions to access the OMI by adding or removing account IDs or groups. You can share an OMI with a user that is in the same Region. The user can create a copy of the OMI you shared, obtaining all the rights for the copy of the OMI. For more information, see CreateImage.

Parameters:
  • image (NodeImage) – The ID of the OMI to export. (required)

  • perm_to_launch_addition_account_ids – The account

ID of one or more users who have permissions for the resource. :type perm_to_launch_addition_account_ids: list of dict

Parameters:

perm_to_launch_addition_global_permission

If true, the resource is public. If false, the resource is private. :type perm_to_launch_addition_global_permission: boolean

Parameters:

perm_to_launch_removals_account_ids – The account

ID of one or more users who have permissions for the resource. :type perm_to_launch_removals_account_ids: list of dict

Parameters:

perm_to_launch_removals_global_permission – If true,

the resource is public. If false, the resource is private. :type perm_to_launch_removals_global_permission: boolean

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

the new image

Return type:

dict

ex_update_listener_rule(host_pattern: Optional[str] = None, listener_rule_name: Optional[str] = None, path_pattern: Optional[str] = None, dry_run: bool = False)[source]

Updates the pattern of the listener rule. This call updates the pattern matching algorithm for incoming traffic.

Parameters:

host_pattern – TA host-name pattern for the rule, with a

maximum length of 128 characters. This host-name pattern supports maximum three wildcards, and must not contain any special characters except [-.?]. :type host_pattern: ``str`

Parameters:

listener_rule_name – The name of the listener rule.

(required) :type listener_rule_name: str

Parameters:

path_pattern – A path pattern for the rule, with a maximum

length of 128 characters. This path pattern supports maximum three wildcards, and must not contain any special characters except [_-.$/~”’@:+?]. :type path_pattern: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

Update the specified Listener Rule

Return type:

dict

ex_update_load_balancer(access_log_is_enabled: Optional[bool] = None, access_log_osu_bucket_name: Optional[str] = None, access_log_osu_bucket_prefix: Optional[str] = None, access_log_publication_interval: Optional[int] = None, health_check_interval: Optional[int] = None, health_check_healthy_threshold: Optional[int] = None, health_check_path: Optional[str] = None, health_check_port: Optional[int] = None, health_check_protocol: Optional[str] = None, health_check_timeout: Optional[int] = None, health_check_unhealthy_threshold: Optional[int] = None, load_balancer_name: Optional[str] = None, load_balancer_port: Optional[int] = None, policy_names: Optional[List[str]] = None, server_certificate_id: Optional[str] = None, dry_run: bool = False)[source]

Modifies the specified attributes of a load balancer.

You can set a new SSL certificate to an SSL or HTTPS listener of a load balancer. This certificate replaces any certificate used on the same load balancer and port.

You can also replace the current set of policies for a load balancer with another specified one. If the PolicyNames parameter is empty, all current policies are disabled.

Parameters:

access_log_is_enabled – If true, access logs are enabled

for your load balancer. If false, they are not. If you set this to true in your request, the OsuBucketName parameter is required. :type access_log_is_enabled: ``bool`

Parameters:

access_log_osu_bucket_name – The name of the Object Storage

Unit (OSU) bucket for the access logs. :type access_log_osu_bucket_name: str

Parameters:

access_log_osu_bucket_prefix – The path to the folder of

the access logs in your Object Storage Unit (OSU) bucket (by default, the root level of your bucket). :type access_log_osu_bucket_prefix: str

Parameters:

access_log_publication_interval – The time interval for the

publication of access logs in the Object Storage Unit (OSU) bucket, in minutes. This value can be either 5 or 60 (by default, 60). :type access_log_publication_interval: int

Parameters:

health_check_interval – Information about the health check

configuration. (required) :type health_check_interval: int

Parameters:

health_check_path – The path for HTTP or HTTPS requests.

(required) :type health_check_path: str

Parameters:

health_check_port – The port number (between 1 and 65535,

both included). (required) :type health_check_port: int

Parameters:

health_check_protocol – The protocol for the URL of the VM

(HTTP | HTTPS | TCP | SSL | UDP). (required) :type health_check_protocol: str

Parameters:

health_check_timeout – The maximum waiting time for a

response before considering the VM as unhealthy, in seconds (between 2 and 60 both included). (required) :type health_check_timeout: int

Parameters:

health_check_healthy_threshold – The number of consecutive

failed pings before considering the VM as unhealthy (between 2 and 10 both included). (required) :type health_check_healthy_threshold: int

Parameters:

health_check_unhealthy_threshold – The number of

consecutive failed pings before considering the VM as unhealthy (between 2 and 10 both included).(required) :type health_check_unhealthy_threshold: int

Parameters:

load_balancer_name – The name of the load balancer.

(required) :type load_balancer_name: str

Parameters:

load_balancer_port – The port on which the load balancer is

listening (between 1 and 65535, both included). :type load_balancer_port: int

Parameters:

policy_names – The list of policy names (must contain all

the policies to be enabled). :type policy_names: list of str

Parameters:

server_certificate_id – The list of policy names (must

contain all the policies to be enabled). :type server_certificate_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

Update the specified Load Balancer

Return type:

dict

ex_update_net(net_id: Optional[str] = None, dhcp_options_set_id: Optional[str] = None, dry_run: bool = False)[source]

Associates a DHCP options set with a specified Net.

Parameters:
  • net_id (str) – The ID of the Net. (required)

  • dhcp_options_set_id – The ID of the DHCP options set

(or default if you want to associate the default one). (required) :type dhcp_options_set_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

The modified Nat Service

Return type:

dict

ex_update_net_access_point(add_route_table_ids: Optional[List[str]] = None, net_access_point_id: Optional[str] = None, remove_route_table_ids: Optional[List[str]] = None, dry_run: bool = False)[source]

Modifies the attributes of a Net access point. This action enables you to add or remove route tables associated with the specified Net access point.

Parameters:

add_route_table_ids – One or more IDs of route tables to

associate with the specified Net access point. :type add_route_table_ids: list of str

Parameters:

net_access_point_id – The ID of the Net access point.

(required) :type net_access_point_id: str

Parameters:

remove_route_table_ids – One or more IDs of route tables to

disassociate from the specified Net access point. :type remove_route_table_ids: list of str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

The modified Net Access Point

Return type:

dict

ex_update_nic(description: Optional[str] = None, link_nic_delete_on_vm_deletion: Optional[str] = None, link_nic_id: Optional[str] = None, security_group_ids: Optional[List[str]] = None, nic_id: Optional[str] = None, dry_run: bool = False)[source]

Modifies the specified network interface card (NIC). You can specify only one attribute at a time.

Parameters:
  • description (str) – A new description for the NIC.

  • link_nic_delete_on_vm_deletion – If true, the NIC is

deleted when the VM is terminated. :type link_nic_delete_on_vm_deletion: str

Parameters:
  • link_nic_id (str) – The ID of the NIC attachment.

  • security_group_ids – One or more IDs of security groups

for the NIC. :type security_group_ids: list of str

Parameters:
  • nic_id (list of str) – The ID of the NIC you want to modify. (required)

  • dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

The new Nic

Return type:

dict

ex_update_node(block_device_mapping: List[dict], bsu_optimized: Optional[bool] = None, deletion_protection: bool = False, is_source_dest_checked: Optional[bool] = None, keypair_name: str = True, performance: str = True, security_group_ids: Optional[List[str]] = None, user_data: str = False, vm_id: Optional[str] = None, vm_initiated_shutown_behavior: Optional[str] = None, vm_type: Optional[int] = None, dry_run: bool = False)[source]

Modifies a specific attribute of a Node (VM). You can modify only one attribute at a time. You can modify the IsSourceDestChecked attribute only if the VM is in a Net. You must stop the VM before modifying the following attributes:

  • VmType

  • UserData

  • BsuOptimized

Parameters:

block_device_mapping – One or more block device mappings

of the VM. :type block_device_mapping: dict

Parameters:
  • bsu_optimized (bool) – If true, the VM is optimized for BSU I/O.

  • dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Parameters:

deletion_protection – If true, you cannot terminate the VM

using Cockpit, the CLI or the API. If false, you can. :type deletion_protection: bool

Parameters:

is_source_dest_checked – (Net only) If true, the

source/destination check is enabled. If false, it is disabled. This value must be false for a NAT VM to perform network address translation (NAT) in a Net. :type is_source_dest_checked: bool

Parameters:
  • keypair_name (str) – The name of the keypair.

  • performance – The performance of the VM

(standard | high | highest). :type performance: str

Parameters:

security_group_ids – One or more IDs of security groups for

the VM. :type security_group_ids: bool

Parameters:
  • user_data (str) – The Base64-encoded MIME user data.

  • vm_id (str) – The ID of the VM. (required)

  • vm_initiated_shutown_behavior – The VM behavior when you

stop it. By default or if set to stop, the VM stops. If set to restart, the VM stops then automatically restarts. If set to terminate, the VM stops and is terminated. :type vm_initiated_shutown_behavior: str

Parameters:

vm_type – The type of VM. For more information,

see Instance Types: https://wiki.outscale.net/display/EN/Instance+Types :type vm_type: str

Returns:

the updated Node

Return type:

dict

ex_update_route(destination_ip_range: Optional[str] = None, gateway_id: Optional[str] = None, nat_service_id: Optional[str] = None, net_peering_id: Optional[str] = None, nic_id: Optional[str] = None, route_table_id: Optional[str] = None, vm_id: Optional[str] = None, dry_run: bool = False)[source]

Replaces an existing route within a route table in a Net. You must specify one of the following elements as the target:

  • Net peering connection

  • NAT virtual machine (VM)

  • Internet service

  • Virtual gateway

  • NAT service

  • Network interface card (NIC)

The routing algorithm is based on the most specific match.

Parameters:

destination_ip_range – The IP range used for the

destination match, in CIDR notation (for example, 10.0.0.0/24). (required) :type destination_ip_range: str

Parameters:

gateway_id – The ID of an Internet service or virtual

gateway attached to your Net. :type gateway_id: str

Parameters:
  • nat_service_id (str) – The ID of a NAT service.

  • net_peering_id (str) – The ID of a Net peering connection.

  • nic_id (str) – The ID of a NIC.

  • vm_id – The ID of a NAT VM in your Net (attached to exactly

one NIC). :type vm_id: str

Parameters:

route_table_id – The ID of the route table for which you

want to create a route. (required) :type route_table_id: str`

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

The updated Route

Return type:

dict

ex_update_route_propagation(enable: Optional[bool] = None, route_table_id: Optional[str] = None, virtual_gateway_id: Optional[str] = None, dry_run: bool = False)[source]

Configures the propagation of routes to a specified route table of a Net by a virtual gateway.

Parameters:

enable – If true, a virtual gateway can propagate routes

to a specified route table of a Net. If false, the propagation is disabled. (required) :type enable: boolean

Parameters:
  • route_table_id (str) – The ID of the route table. (required)

  • virtual_gateway_id – The ID of the virtual

gateway. (required) :type virtual_gateway_id: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

route propagation

Return type:

dict

ex_update_server_certificate(name: Optional[str] = None, new_name: Optional[str] = None, new_path: Optional[str] = None, dry_run: bool = False)[source]

Modifies the name and/or the path of a specified server certificate.

Parameters:

name – The name of the server certificate

you want to modify. :type name: str

Parameters:

new_name (str) – A new name for the server certificate.

:param new_path:A new path for the server certificate. :type new_path: str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

the new server certificate

Return type:

dict

ex_update_snapshot(perm_to_create_volume_addition_account_id: Optional[List[str]] = None, perm_to_create_volume_addition_global_perm: Optional[bool] = None, perm_to_create_volume_removals_account_id: Optional[List[str]] = None, perm_to_create_volume_removals_global_perm: Optional[bool] = None, snapshot: Optional[VolumeSnapshot] = None, dry_run: bool = False)[source]

Modifies the permissions for a specified snapshot. You can add or remove permissions for specified account IDs or groups. You can share a snapshot with a user that is in the same Region. The user can create a copy of the snapshot you shared, obtaining all the rights for the copy of the snapshot.

Parameters:

perm_to_create_volume_addition_account_id

The account ID of one or more users who have permissions for the resource. :type perm_to_create_volume_addition_account_id: list of str

Parameters:

perm_to_create_volume_addition_global_perm – If true,

the resource is public. If false, the resource is private. :type perm_to_create_volume_addition_global_perm: bool

Parameters:

perm_to_create_volume_removals_account_id – The account ID of one or more users who have permissions for the resource.

list of str

Parameters:
  • perm_to_create_volume_removals_global_perm (bool) – If true, the resource is public. If false, the resource is private.

  • snapshot (VolumeSnapshot) – The ID of the snapshot. (required)

  • dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

snapshot export tasks

Return type:

list of dict

ex_update_subnet(subnet_id: Optional[str] = None, map_public_ip_on_launch: Optional[bool] = None, dry_run: bool = False)[source]

Deletes a specified Subnet. You must terminate all the running virtual machines (VMs) in the Subnet before deleting it.

Parameters:

subnet_id – The ID of the Subnet you want to delete.

(required) :type subnet_id: str

Parameters:

map_public_ip_on_launch – If true, a public IP address is

assigned to the network interface cards (NICs) created in the s pecified Subnet. (required) :type map_public_ip_on_launch: bool

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

The updated Subnet

Return type:

dict

features: Dict[str, List[str]] = {'create_node': []}
List of available features for a driver.
get_image(image_id: str)[source]

Get a specific image.

Parameters:

image_id (str) – the ID of the image you want to select (required)

Returns:

the selected image

Return type:

dict

get_key_pair(name: str)[source]

Get a specific key pair.

Parameters:

name (str) – the name of the key pair you want to select (required)

Returns:

the selected key pair

Return type:

dict

import_key_pair_from_file(name: str, key_file_path: str) KeyPair

Import a new public key from string.

Parameters:
  • name (str) – Key pair name.

  • key_file_path (str) – Path to the public key file.

Return type:

KeyPair object

import_key_pair_from_string(name: str, key_material: str) KeyPair

Import a new public key from string.

Parameters:
  • name (str) – Key pair name.

  • key_material (str) – Public key material.

Return type:

KeyPair object

list_images(account_aliases: Optional[List[str]] = None, account_ids: Optional[List[str]] = None, architectures: Optional[List[str]] = None, block_device_mapping_delete_on_vm_deletion: bool = False, block_device_mapping_device_names: Optional[List[str]] = None, block_device_mapping_snapshot_ids: Optional[List[str]] = None, block_device_mapping_volume_sizes: Optional[List[int]] = None, block_device_mapping_volume_types: Optional[List[str]] = None, descriptions: Optional[List[str]] = None, file_locations: Optional[List[str]] = None, image_ids: Optional[List[str]] = None, image_names: Optional[List[str]] = None, permission_to_launch_account_ids: Optional[List[str]] = None, permission_to_lauch_global_permission: bool = False, root_device_names: Optional[List[str]] = None, root_device_types: Optional[List[str]] = None, states: Optional[List[str]] = None, tag_keys: Optional[List[str]] = None, tag_values: Optional[List[str]] = None, tags: Optional[List[str]] = None, virtualization_types: Optional[List[str]] = None, dry_run: bool = False)[source]

Lists one or more Outscale machine images (OMIs) you can use.

Parameters:

account_aliases – The account aliases of the

owners of the OMIs. :type account_aliases: list of str

Parameters:

account_ids – The account IDs of the owners of the

OMIs. By default, all the OMIs for which you have launch permissions are described. :type account_ids: list of str

Parameters:

architectures – The architectures of the

OMIs (i386 | x86_64). :type architectures: list of str

Parameters:

block_device_mapping_delete_on_vm_deletion – Indicates

whether the block device mapping is deleted when terminating the VM. :type block_device_mapping_delete_on_vm_deletion: bool

Parameters:

block_device_mapping_device_names – The device names for

the volumes. :type block_device_mapping_device_names: list of str

Parameters:

block_device_mapping_snapshot_ids – The IDs of the

snapshots used to create the volumes. :type block_device_mapping_snapshot_ids: list of str

Parameters:

block_device_mapping_volume_sizes – The sizes of the

volumes, in gibibytes (GiB). :type block_device_mapping_volume_sizes: list of int

Parameters:

block_device_mapping_volume_types – The types of

volumes (standard | gp2 | io1). :type block_device_mapping_volume_types: list of str

Parameters:

descriptions – The descriptions of the OMIs, provided

when they were created. :type descriptions: list of str

Parameters:

file_locations – The locations where the OMI files are

stored on Object Storage Unit (OSU). :type file_locations: list of str

Parameters:
  • image_ids (list of str) – The IDs of the OMIs.

  • image_names – The names of the OMIs, provided when

they were created. :type image_names: list of str

Parameters:

permission_to_launch_account_ids – The account IDs of the

users who have launch permissions for the OMIs. :type permission_to_launch_account_ids: list of str

Parameters:

permission_to_lauch_global_permission – If true, lists

all public OMIs. If false, lists all private OMIs. :type permission_to_lauch_global_permission: list of str

Parameters:

root_device_names – The device names of the root

devices (for example, /dev/sda1). :type root_device_names: list of str

Parameters:

root_device_types – The types of root device used by

the OMIs (always bsu). :type root_device_types: list of str

Parameters:

states – The states of the OMIs

(pending | available | failed). :type states: list of str

Parameters:
  • tag_keys (list of str) – The keys of the tags associated with the OMIs.

  • tag_values – The values of the tags associated

with the OMIs. :type tag_values: list of str

Parameters:

tags – The key/value combination of the tags associated

with the OMIs, in the following format:”Filters”: {“Tags”:[“TAGKEY=TAGVALUE”]}. :type tags: list of str

Parameters:

virtualization_types – The virtualization types

(always hvm). :type virtualization_types: list of str

Parameters:

dry_run – If true, checks whether you have the required

permissions to perform the action. :type dry_run: bool

Returns:

a list of image

Return type:

list of dict

list_key_pairs(ex_data: str = '{}')[source]

List all key pairs.

Returns:

key pairs

Return type:

dict

list_locations(ex_dry_run: bool = False)[source]

Lists available locations details.

Parameters:

ex_dry_run – If true, checks whether you have the required

permissions to perform the action. :type ex_dry_run: bool :return: locations details :rtype: dict

list_nodes(ex_data: str = '{}')[source]

List all nodes.

Returns:

nodes

Return type:

dict

list_sizes(location: Optional[NodeLocation] = None) List[NodeSize]

List sizes on a provider

Parameters:

location (NodeLocation) – The location at which to list sizes

Returns:

list of node size objects

Return type:

list of NodeSize

list_snapshots(ex_data: str = '{}')[source]

List all volume snapshots.

Returns:

snapshots

Return type:

dict

list_volume_snapshots(volume)[source]

List all snapshot for a given volume.

Parameters:

volume (StorageVolume) – the volume from which to look for snapshots

Return type:

list of :class VolumeSnapshot

list_volumes(ex_data: str = '{}')[source]

List all volumes. :rtype: list of StorageVolume

reboot_node(node: Node)[source]

Reboot instance.

Parameters:

node (list) – VM(s) you want to reboot (required)

Returns:

the rebooted instances

Return type:

dict

start_node(node: Node)[source]

Start a Vm.

Parameters:

node (Node) – the VM(s) you want to start (required)

Returns:

the rebooted instances

Return type:

bool

stop_node(node: Node)[source]

Stop a Vm.

Parameters:

node (Node) – the VM(s) you want to stop (required)

Returns:

the rebooted instances

Return type:

bool

wait_until_running(nodes: List[Node], wait_period: float = 5, timeout: int = 600, ssh_interface: str = 'public_ips', force_ipv4: bool = True, ex_list_nodes_kwargs: Optional[Dict] = None) List[Tuple[Node, List[str]]]

Block until the provided nodes are considered running.

Node is considered running when it’s state is “running” and when it has at least one IP address assigned.

Parameters:
  • nodes (list of Node) – List of nodes to wait for.

  • wait_period (int) – How many seconds to wait between each loop iteration. (default is 3)

  • timeout (int) – How many seconds to wait before giving up. (default is 600)

  • ssh_interface (str) – Which attribute on the node to use to obtain an IP address. Valid options: public_ips, private_ips. Default is public_ips.

  • force_ipv4 (bool) – Ignore IPv6 addresses (default is True).

  • ex_list_nodes_kwargs (dict) – Optional driver-specific keyword arguments which are passed to the list_nodes method.

Returns:

[(Node, ip_addresses)] list of tuple of Node instance and list of ip_address on success.

Return type:

list of tuple

Outscale Implementation of Libcloud

The Outscale driver implements the following NodeDriver functions:

Regions

  • list_locations - Returns a list of NodeLocation

Nodes

  • create_node - Creates a Node

  • reboot_node - Reboots a Node

  • list_nodes - Returns a list of Node

  • destroy_node - Destroys an existing Node

  • start_node - Start a Node

  • stop_node - Stop a Node

Images

  • create_images - Returns a NodeImage

  • list_images - Returns a list of NodeImage

  • get_image - Returns a NodeImage

  • delete_image - Return a bool

  • ex_create_image_export_task - Returns a dict

  • ex_list_image_export_task - Returns a list of dict

  • ex_update_image - Returns a dict

Key Pairs

  • create_key_pair - Returns a KeyPair

  • list_key_pairs - Returns a list of KeyPair

  • get_key_pair - Returns a KeyPair

  • delete_key_pair - Returns a bool

Snapshots

  • create_volume_snapshot - Returns a VolumeSnapshot

  • list_snapshots - Returns a list of VolumeSnapshot

  • destroy_volume_snapshot - Returns a bool

  • list_volume_snapshots - Returns a list of VolumeSnapshot

  • ex_create_snapshot_export_task - Returns a dict

  • ex_list_snapshot_export_tasks - Returns a list of dict

  • ex_update_snapshot - Returns a dict

Volumes

  • create_volume - Returns a StorageVolume

  • list_volumes - Returns a list of StorageVolume

  • destroy_volume - Returns a bool

  • attach_volume - Return a bool

  • detach_volume - Returns a bool

Outscale Extra Functions

The Outscale driver implement the following extra methods:

Public IPs

  • ex_create_public_ip - Returns a bool

  • ex_delete_public_ip - Returns a bool

  • ex_list_public_ips - Returns a dict

  • ex_list_public_ip_ranges - Returns a dict

  • ex_attach_public_ip - Returns a bool

  • ex_detach_public_ip - Returns a bool

Accounts

  • ex_check_account - Returns a bool

  • ex_read_account - Returns a dict

  • ex_reset_account_password - Returns a dict

  • ex_send_reset_password_email - Returns a bool

  • ex_create_account - Returns a bool

  • ex_update_account - Returns a dict

  • ex_list_consumption_account - Returns a list of dict

Tags

  • ex_create_tag - Returns a bool

  • ex_create_tags - Returns a bool

  • ex_delete_tags - Returns a bool

  • ex_list_tags - Returns a dict

Regions and SubRegions

  • ex_list_regions - Returns a list of dict

  • ex_list_subregions - Returns a list of dict

Access Keys

  • ex_create_access_key - Returns a dict

  • ex_delete_access_key - Returns a bool

  • ex_list_access_keys - Returns a list of dict

  • ex_list_secret_access_key - Returns a dict

  • ex_update_access_key - Returns a dict

Client Gateways

  • ex_create_client_gateway - Returns a dict

  • ex_delete_client_gateway - Returns a bool

  • ex_list_client_gateways - Returns a list of dict

Dhcp Options

  • ex_create_dhcp_options - Returns a dict

  • ex_delete_dhcp_options - Returns a bool

  • ex_list_dhcp_options - Returns a list