.. meta:: :description: This documentation will guide you through the use of the Memset API. .. index:: double: Methods; create .. _create: Create Methods -------------- These API methods allow you to order Memset services. .. Warning:: Please use the ``dry_run=True`` argument when you are testing, so that invoices are not generated. Payment Methods ^^^^^^^^^^^^^^^ When creating services using the API, the default payment method for your Memset account will be used. The following constraints on the account payment method apply when using the API to create products: - A card or billing account must be used to create services which are billed in arrears. - It is not possible to use PayPal when creating services If you have consolidated billing enabled for your account, any charges will be added to your next consolidated bill by default. If you wish to be invoiced immediately, you can set ``add_to_next_bill=False``, and the default payment method for your Memset account will be used. See :ref:`payment_method` for more information on the payment methods API. Operating Systems ^^^^^^^^^^^^^^^^^ When provisioning servers, you must include the required ``os`` parameter. The ``os`` parameter can be set to one of our stock operating systems or the name of a Memstore snapshot. For a list of our supported operating systems and the required API names, please see our `Operating Systems page `_ for more information. If you wish to provision a server using a snapshot, please obtain the name of the snapshot using :func:`server.snapshot_list` and specify the ``os_option`` as the value for ``os``. See :func:`create.monthly_miniserver`, :func:`create.hourly_miniserver` and :func:`create.monthly_fullserver` for the list of available operating systems for each service type. Control Panel ^^^^^^^^^^^^^ We offer cPanel as a chargeable extra for monthly servers, but not hourly Miniservers. Our cPanel image is based on 64-bit CentOS 7. To specify that you want cPanel, you must specify ``os=centos7_cpanel_64``. Response format for create methods ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :returns: A dictionary with the following keys **sku** String: The SKU of the service. **dry_run** Boolean: As specified in the API call. **currency** String: The currency of the order. You cannot specify the currency in the API request, the account's currency will be used. Currently, the account currency must be changed via the Memset website. Returned value will be one of 'GBP', 'USD', or 'EUR'. **net_setup_price** Float: The setup price for the service, net of VAT. **net_monthly_rental** Float: The monthly rental for the service, net of VAT. **net_hourly_inarrears_rental_price** Float: The hourly rate for this service, net of VAT. This will only be provided when creating hourly miniservers. **net_total** Float: The sum of the setup price and any rental payable in advance, net of VAT. **invoice_ref** Integer: The invoice reference for the order. Will not be provided if the method is called with ``dry_run=True`` or if ``add_to_next_bill=True``. **add_to_next_bill** Boolean: If True, any charges will be added to the next consolidated bill. If False, any charges will be invoiced immediately. Will not be provided it the method is called with ``dry_run=True``. **period** Integer: The period in months of the service. Not provided for services billed in-arrears. **job** Dictionary: Provides the status of the job to set up the requested service. Will not be provided when the method is called with ``dry_run=True``. See :func:`job.status` for further details. Example ^^^^^^^ The following example shows how to create a monthly miniserver. First we call :func:`create.monthly_miniserver` with ``dry_run=True``:: { "sku": "MSVM001", "os": "debian_jessie_64", "dry_run": true, } This will return a response similar to the following:: { 'sku': u'MSVM001' 'currency': u'GBP', 'dry_run': True, 'net_setup_price': 0, 'net_total': 7.50, } If we are happy, we can make the same request, but this time with ``dry_run=False`` so that the service is actually created:: { "sku": "MSVM001", "os": "debian_jessie_64", "dry_run": false } This will give a response similar to the following:: { 'sku': u'MSVM001' 'currency': u'GBP', 'dry_run': False, 'invoice_ref': 100291, 'job': {'error': False, 'finished': False, 'id': '739c99f25ed8d13e48ba94ec6a4a0102', 'status': 'AWAITING-PAYMENT', 'type': 'SETUP-NEW-MINISERVER'}, 'net_setup_price': 0, 'net_total': 7.50 } Note that a job has been created to set up the miniserver, with the status AWAITING-PAYMENT. Once the invoice has been paid, we can check the progress of the setup using the :func:`job.status` method. If we provide an invalid parameter, an :func:`ApiErrorBadParameters` exception will be raised. For example, let's try to provision a Miniserver with Windows and 1GB RAM.:: { "sku": "MSVM001", "os": "win2012serverstd_r2_64", "dry_run": false, } This is an invalid configuration, as Windows miniservers require at least 2 GB of RAM. Therefore we get an exception:: ApiErrorBadParameters: os: Please select a valid choice. Microsoft Windows 2012 Server R2, Standard Edition is not available for the current configuration. Windows requires at least 2 GB RAM. .. function:: create.available Returns the services which can be provisioned using the API. :returns: a list of dictionaries for each available service with the following keys **sku** String: The code used to identify the service. **description** String: Description of the service. **type** String: The type of service. **default_params** Dictionary: The default parameters for this service. The parameters depend on the service type: **miniserver** **ram_mb**: Integer: The number of megabytes of RAM. **disk_gb** Integer: The number of gigabytes of hard disk space. **data_zones** List: list of data zone names where the service is available in. The list can be empty if the service is data zone independent. The data zone name can be used in any create method that has a `data_zone` parameter. .. function:: create.extra_bandwidth Adds bandwidth to a server's extra bandwidth bank. The bandwidth bank is an additional pool of metered bandwidth that will only be used in the event that your monthly inclusive quote is exceeded. It is designed as a "top up tank" in case you have extra usage in any one month. This is only valid for servers with `metered` ``bandwidth_type``. :param name: Name of the service. Service names are 1-64 characters A-Z, a-z, 0-9, -, . and _. Ensure this value has at most 64 characters. :type name: String :param amount: Amount of bandwidth to be added in GB. Acceptable values are: 50, 100, 250, 500 :type amount: Integer :param dry_run: If True, then the service is not provisioned but the information is still returned. :type dry_run: Boolean .. function:: create.hourly_miniserver .. warning:: Our hourly Miniserver VM products are now deprecated and will be removed in a future API release. For cloud compute instances billed by the hour, please view our new Openstack Public Cloud product: https://www.memset.com/hosting-services/cloud/openstack/ Note that the `os`, `firewall`, `intrusion_detection` and `disk_type` options affect the price per hour. :param connection: For `unmetered` ``bandwidth_type`` only. Acceptable values are a combination of burst speed and contention ratio e.g. 5mbps_10to1 means 5Mbps burst with contention of 10:1. Dedicated line speed therefore is burst divided by contention, e.g. the dedicated line speed for a line with a connection value of 5mbps_10to1 is 5 / 10 = 0.5Mbps. === ================== sku connection options === ================== === ================== :type connection: String, Optional, Deprecated: This parameter is deprecated and will be unsupported in future API releases. :param monthly_transfer_gb: For metered bandwidth_type only. Acceptable values === =========================== sku monthly_transfer_gb options === =========================== === =========================== :type monthly_transfer_gb: Integer, Optional, Deprecated: This parameter is deprecated and will be unsupported in future API releases. :param bandwidth_type: Bandwidth type for your connection. Acceptable values 'metered' Charged per Gb of data transferred. 'unmetered' The server has part or all of a dedicated connection; no extra charges :type bandwidth_type: String, Optional, Deprecated: This parameter is deprecated and will be unsupported in future API releases. :param backups: :type backups: Integer, Optional :param lvs: Load-balancing and auto-failover :type lvs: Integer, Optional, Deprecated and ignored: This parameter is deprecated and will be unsupported in future API releases. :param intrusion_detection: Intrusion Detection Acceptable values 'none' No intrusion detection 'basic' Intrusion Detection Self-monitored :type intrusion_detection: String, Optional, Deprecated: This parameter is deprecated and will be unsupported in future API releases. :param monitoring_level: Server Monitoring. Acceptable values 'basic' Server Monitoring Basic 'advanced' Server Monitoring Advanced Self-monitored :type monitoring_level: String, Optional, Deprecated: This parameter is deprecated and will be unsupported in future API releases. :param vulnscan: Vulnerability Management - Powered by F-Secure Radar Acceptable values 'none' No scanning 'basic' Self-monitored :type vulnscan: String, Optional, Deprecated: This parameter is deprecated and will be unsupported in future API releases. :param database: Microsoft SQL server. Available only for Windows servers. Acceptable values: :type database: String, Optional :param antivirus: Antivirus software. Windows servers only. Acceptable values 'none' None 'sophos_antivirus' Sophos Anti-virus :type antivirus: String, Optional :param firewall: The type of firewall you require. For more information see `Memset's Firewalling page `_. 'managed' only available with ``support_level=managed``. Acceptable values 'none' No firewalling 'basic' Basic 'self_managed' Self-managed 'managed' Memset-managed :type firewall: String, Optional :param firewall_rule_group: The name of an existing account firewall rule group to apply. (For the following firewall types only: 'managed', 'self_managed') :type firewall_rule_group: String, Optional :param sku: The SKU of the service you wish to provision. Acceptable values are === =========== sku description === =========== === =========== See also: :func:`create.available` method to get a list with descriptions of available services. :type sku: String :param dry_run: If True, then the service is not provisioned but the information is still returned. :type dry_run: Boolean :param discount_code: Discount code to be applied. :type discount_code: String, Optional :param add_to_next_bill: If True, any charges will be added to the next consolidated bill if possible. If False, an invoice will be generated using the account's default payment method. Defaults to True for accounts with consolidated billing enabled, otherwise False. It is only possible to set `add_to_next_bill=True` for accounts with consolidated billing enabled. :type add_to_next_bill: Boolean, Optional :param os: The Operating System. Acceptable values include a Memstore snapshot name or one of the operating systems below. Please note the snapshot name needs to be the ``os_option`` value obtained from the :func:`server.snapshot_list` method. ======================= ======= ============================================================= ======= ======= os os_bits description min ram max ram ======================= ======= ============================================================= ======= ======= centos6_64 64 CentOS 6 64-bit n/a n/a win2012serverstd_r2_64 64 Windows Server 2012 Standard R2 64-bit 2GB n/a ubuntu_trusty_64 64 Ubuntu 14.04 LTS (Trusty Tahr) 64-bit n/a n/a centos7_64 64 CentOS 7 64-bit n/a n/a ubuntu_trusty_docker_64 64 Ubuntu 14.04 LTS (Trusty Tahr, Docker pre-installed) 64-bit n/a n/a centos7_cpanel_64 64 CentOS 7 cPanel 64-bit 2GB n/a win2016serverstd_64 64 Windows Server 2016 Standard 64-bit 2GB n/a ubuntu_xenial_docker_64 64 Ubuntu 16.04 LTS (Xenial Xerus, Docker pre-installed) 64-bit n/a n/a debian_stretch_64 64 Debian 9 (Stretch) 64-bit n/a n/a ubuntu_bionic_64 64 Ubuntu 18.04 LTS (Bionic Beaver) 64-bit n/a n/a ubuntu_bionic_docker_64 64 Ubuntu 18.04 LTS (Bionic Beaver, Docker pre-installed) 64-bit n/a n/a win2019serverstd_64 64 Windows Server 2019 Standard 2GB n/a debian_buster_64 64 Debian 10 (Buster) 64-bit n/a n/a ======================= ======= ============================================================= ======= ======= See also: `Operating systems`_ for further information. :type os: String :param os_bits: Whether to use a 32 or 64-bit system. Note that some operating systems may not be available in both versions. Deprecated for newly provisioned servers - operating systems of all newly provisioned servers are 64 bit. Acceptable values: '32', '64'. :type os_bits: String, Optional, Deprecated and ignored: This parameter is deprecated and will be unsupported in future API releases. :param support_level: The level of technical support. Default value is "standard" unless the sku is a Standard Cloud VPS sku, in which case the default and only available value is "infrastructure_only". See `our support matrix `_ for further information. Acceptable values 'standard' Standard Support 'premium' Premium Support 'premium' Premium Plus Support 'managed_infrastructure' Standard Support 'managed_platform' Premium Support 'infrastructure_only' For use with Standard VPS and deprecated classic Miniserver VMs. 'basic' Deprecated support level for use with our classic Miniserver VMs. 'managed' Deprecated Support level for use with our classic Miniserver VMs. :type support_level: String, Optional :param vlan: The name of a vLAN product to put the server in when it is created. :type vlan: String, Optional :param network_zone: The Network Zone to deploy your Miniserver VM in. The default network zone is 'dunsfold'. Acceptable values are ============ ========================= network_zone location ============ ========================= reading Maidenhead, Berkshire, UK dunsfold Dunsfold, Surrey, UK ============ ========================= :type network_zone: String, Optional :param data_zone: The Data Zone in which to deploy your Miniserver VM. For regular accounts, defaults to 'Memset Public Cloud'. For community cloud accounts, defaults to that account's community cloud. :type data_zone: String, Optional :param period: The rental period in months. Valid rental period values are: 1, 3, 6, 12. The default period is 1. :type period: Integer, Optional :param pub_ssh_key: Public SSH key to be installed in the server (`root` user). Only available for Linux servers. :type pub_ssh_key: String, Optional :param disk_type: The disk type required. Acceptable values 'hdd' Standard rotating magnetic media 'ssd' High performance Solid State Disk :type disk_type: String, Optional, Deprecated: This parameter is deprecated and will be unsupported in future API releases. .. function:: create.memstore Provisions a Memstore instance. See the `Memstore cloud storage page `_ for pricing and more information. :param sku: The SKU of the service you wish to provision. Acceptable values are === =========== sku description === =========== === =========== See also: :func:`create.available` method to get a list with descriptions of available services. :type sku: String :param dry_run: If True, then the service is not provisioned but the information is still returned. :type dry_run: Boolean :param discount_code: Discount code to be applied. :type discount_code: String, Optional :param add_to_next_bill: If True, any charges will be added to the next consolidated bill if possible. If False, an invoice will be generated using the account's default payment method. Defaults to True for accounts with consolidated billing enabled, otherwise False. It is only possible to set `add_to_next_bill=True` for accounts with consolidated billing enabled. :type add_to_next_bill: Boolean, Optional :param network_zone: The Network Zone to deploy your Memstore. The default network zone is 'reading'. Acceptable values are ============ ========================= network_zone location ============ ========================= reading Maidenhead, Berkshire, UK dunsfold Dunsfold, Surrey, UK ============ ========================= :type network_zone: String, Optional :param data_zone: The Data Zone to deploy your Memstore. The default data zone depends on whether the account belongs to a community cloud or not. For regular accounts, defaults to 'Memset Public Cloud' :type data_zone: String, Optional .. function:: create.monthly_fullserver Provisions a full server for a period of months. See the `Fully Dedicated Server packages page `_ for pricing and more information. Note that the following optional extras will affect the monthly price: `os`, `firewall`, `disk`, `ram`, `net_card_speed_gbps`, `bandwidth_type`, `connection`, `monthly_transfer_gb`, `period` `support_level`, `monitoring_level`, `backups`, `vulnscan`, `database` and `antivirus`. :param bandwidth_type: Bandwidth type for your connection. Acceptable values 'metered' Charged per Gb of data transferred. 'unmetered' The server has part or all of a dedicated connection; no extra charges :type bandwidth_type: String, Optional, Deprecated: This parameter is deprecated and will be unsupported in future API releases. :param backups: Managed daily backups. Capacity required in Gb. Not available for Standard VPS (i.e. skus beginning with VPS0) Acceptable values for Linux operating systems: Acceptable values for Windows operating systems: :type backups: Integer, Optional :param lvs: Load-balancing and auto-failover :type lvs: Integer, Optional, Deprecated and ignored: This parameter is deprecated and will be unsupported in future API releases. :param intrusion_detection: Intrusion Detection. "monitored" and "protected" only available with ``support_level=managed``. Acceptable values 'none' No intrusion detection 'basic' Intrusion Detection Self-monitored 'monitored' Intrusion Detection Memset-monitored 'protected' Intrusion Detection Memset-protected :type intrusion_detection: String, Optional :param monitoring_level: Server Monitoring. "managed" only available with ``support_level=managed``. Acceptable values 'basic' Server Monitoring Basic 'advanced' Server Monitoring Advanced Self-monitored 'managed' Server Monitoring Advanced Memset-monitored :type monitoring_level: String, Optional :param vulnscan: Vulnerability Management - Powered by F-Secure Radar. If you have not already done so for your account, you will be emailed with instructions on how to activate this service. "managed" only available with ``support_level=managed``. Acceptable values 'none' No vulnerability management 'basic' Self-monitored 'managed' Memset-monitored :type vulnscan: String, Optional :param database: Microsoft SQL server. Available only for Windows servers. Acceptable values: :type database: String, Optional :param antivirus: Antivirus software. Windows servers only. Acceptable values 'none' None 'sophos_antivirus' Sophos Anti-virus :type antivirus: String, Optional :param firewall: The type of firewall you require. For more information see `Memset's Firewalling page `_. 'managed' only available with ``support_level=managed``. Acceptable values 'none' No firewalling 'basic' Basic 'self_managed' Self-managed 'managed' Memset-managed :type firewall: String, Optional :param firewall_rule_group: The name of an existing account firewall rule group to apply. (For the following firewall types only: 'managed', 'self_managed') :type firewall_rule_group: String, Optional :param sku: The SKU of the service you wish to provision. Acceptable values are === =========== sku description === =========== === =========== See also: :func:`create.available` method to get a list with descriptions of available services. :type sku: String :param dry_run: If True, then the service is not provisioned but the information is still returned. :type dry_run: Boolean :param discount_code: Discount code to be applied. :type discount_code: String, Optional :param add_to_next_bill: If True, any charges will be added to the next consolidated bill if possible. If False, an invoice will be generated using the account's default payment method. Defaults to True for accounts with consolidated billing enabled, otherwise False. It is only possible to set `add_to_next_bill=True` for accounts with consolidated billing enabled. :type add_to_next_bill: Boolean, Optional :param os: The Operating System. Acceptable values include a Memstore snapshot name or one of the operating systems below. Please note the snapshot name needs to be the ``os_option`` value obtained from the :func:`server.snapshot_list` method. ====================== ======= ======================================== ======= ======= os os_bits description min ram max ram ====================== ======= ======================================== ======= ======= centos6_64 64 CentOS 6 64-bit n/a n/a win2012serverstd_r2_64 64 Windows Server 2012 Standard R2 64-bit 2GB n/a ubuntu_trusty_64 64 Ubuntu 14.04 LTS (Trusty Tahr) 64-bit n/a n/a centos7_64 64 CentOS 7 64-bit n/a n/a win2012serverdc_r2_64 64 Windows Server 2012 Datacenter R2 64-bit 2GB n/a centos7_cpanel_64 64 CentOS 7 cPanel 64-bit 2GB n/a win2016serverstd_64 64 Windows Server 2016 Standard 64-bit 2GB n/a win2016serverdc_64 64 Windows Server 2016 Datacenter 64-bit 2GB n/a debian_stretch_64 64 Debian 9 (Stretch) 64-bit n/a n/a ubuntu_bionic_64 64 Ubuntu 18.04 LTS (Bionic Beaver) 64-bit n/a n/a win2019serverstd_64 64 Windows Server 2019 Standard 2GB n/a debian_buster_64 64 Debian 10 (Buster) 64-bit n/a n/a ====================== ======= ======================================== ======= ======= See also: `Operating systems`_ for further information. :type os: String :param os_bits: Whether to use a 32 or 64-bit system. Note that some operating systems may not be available in both versions. Deprecated for newly provisioned servers - operating systems of all newly provisioned servers are 64 bit. Acceptable values: '32', '64'. :type os_bits: String, Optional, Deprecated and ignored: This parameter is deprecated and will be unsupported in future API releases. :param support_level: The level of technical support. Default value is "standard" unless the sku is a Standard Cloud VPS sku, in which case the default and only available value is "infrastructure_only". See `our support matrix `_ for further information. Acceptable values 'standard' Standard Support 'premium' Premium Support 'premium' Premium Plus Support 'managed_infrastructure' Standard Support 'managed_platform' Premium Support 'infrastructure_only' For use with Standard VPS and deprecated classic Miniserver VMs. 'basic' Deprecated support level for use with our classic Miniserver VMs. 'managed' Deprecated Support level for use with our classic Miniserver VMs. :type support_level: String, Optional :param vlan: The name of a vLAN product to put the server in when it is created. :type vlan: String, Optional :param network_zone: The Network Zone to deploy your server. The default network zone is 'dunsfold'. Acceptable values are ============ ========================= network_zone location ============ ========================= reading Maidenhead, Berkshire, UK dunsfold Dunsfold, Surrey, UK ============ ========================= :type network_zone: String, Optional :param data_zone: The Data Zone to deploy your server. The default data zone depends on whether the account belongs to a community cloud or not. For regular accounts, defaults to 'Memset Public Cloud' :type data_zone: String, Optional :param period: The rental period in months. Valid rental period values are: 1, 3, 6, 12. The default period is 1. :type period: Integer, Optional :param pub_ssh_key: Public SSH key to be installed in the server (`root` user). Only available for Linux servers. :type pub_ssh_key: String, Optional :param disk: RAID disk size. Valid options === ============ sku disk options === ============ === ============ :type disk: String, Optional :param ram: The amount of RAM for your server. === =========== sku ram options === =========== === =========== :type ram: String, Optional :param nvme: NVMe SSDs (PCIE based flash storage). Only available on some product specs Valid options === ============ sku nvme options === ============ === ============ :type nvme: String, Optional :param net_card_speed_gbps: The network card speed for the server (Gbps). Acceptable values are 1 or 10. 10Gbps networking is only available for the following skus: :type net_card_speed_gbps: String, Optional :param partitioning: Disk partitioning scheme. Acceptable values depend on the ``sku``, ``os`` and ``disk`` options. For 4-disk chassis types (SKU `UFS20` and `UFS21`), the value `all_root` is only valid for Linux operating systems. For other chassis types, the value `all_root` is only valid when the disk array is less than or equal to 2 TB. Acceptable values: all_root For Linux operating systems: Single large root partition. For Windows operating systems: Single large drive C: data_home For Linux operating systems, 20 GB root partition and the remainder in /home. For Windows operating systems: 50 GB drive C: and the remainder in drive D: two_volumes Two volumes, C: and D:. Only applicable to 4-disk dedicated servers with Windows operating systems. custom Custom partitioning. If you select this option, you must include your requirements using the ``setup_requirements`` parameter. :type partitioning: String, Optional :param setup_instructions: Special setup instructions, for example custom partitioning requirements. :type setup_instructions: String, Optional .. function:: create.monthly_miniserver Provisions a Miniserver VM instance for a period of months. See the `Miniserver VM packages page `_ for pricing and more information. .. warning:: Please note that the following parameters are deprecated and only supported for our classic Miniservers (e.g. skus beginning with MS0): `disk_type`, `disk_gb`, `bandwidth_type`, `connection`, `monthly_transfer_gb` The following optional extras will affect the monthly price: `os`, `firewall`, `disk_type`, `disk_gb`, `bandwidth_type`, `connection`, `monthly_transfer_gb`, `period`, `support_level`, `monitoring_level`, `backups`, `vulnscan`, `database`, `antivirus` and `intrusion_detection` :param connection: For `unmetered` ``bandwidth_type`` only. Acceptable values are a combination of burst speed and contention ratio e.g. 5mbps_10to1 means 5Mbps burst with contention of 10:1. Dedicated line speed therefore is burst divided by contention, e.g. the dedicated line speed for a line with a connection value of 5mbps_10to1 is 5 / 10 = 0.5Mbps. === ================== sku connection options === ================== === ================== :type connection: String, Optional, Deprecated: This parameter is deprecated and will be unsupported in future API releases. :param monthly_transfer_gb: For metered bandwidth_type only. Acceptable values === =========================== sku monthly_transfer_gb options === =========================== === =========================== :type monthly_transfer_gb: Integer, Optional, Deprecated: This parameter is deprecated and will be unsupported in future API releases. :param bandwidth_type: Bandwidth type for your connection. Acceptable values 'metered' Charged per Gb of data transferred. 'unmetered' The server has part or all of a dedicated connection; no extra charges :type bandwidth_type: String, Optional, Deprecated: This parameter is deprecated and will be unsupported in future API releases. :param backups: Managed daily backups. Capacity required in Gb. Not available for Standard VPS (i.e. skus beginning with VPS0) Acceptable values for Linux operating systems: Acceptable values for Windows operating systems: :type backups: Integer, Optional :param lvs: Load-balancing and auto-failover :type lvs: Integer, Optional, Deprecated and ignored: This parameter is deprecated and will be unsupported in future API releases. :param intrusion_detection: Intrusion Detection. "monitored" and "protected" only available with ``support_level=managed``. Acceptable values 'none' No intrusion detection 'basic' Intrusion Detection Self-monitored 'monitored' Intrusion Detection Memset-monitored 'protected' Intrusion Detection Memset-protected :type intrusion_detection: String, Optional :param monitoring_level: Server Monitoring. "managed" only available with ``support_level=managed``. Acceptable values 'basic' Server Monitoring Basic 'advanced' Server Monitoring Advanced Self-monitored 'managed' Server Monitoring Advanced Memset-monitored :type monitoring_level: String, Optional :param vulnscan: Vulnerability Management - Powered by F-Secure Radar. If you have not already done so for your account, you will be emailed with instructions on how to activate this service. "managed" only available with ``support_level=managed``. Acceptable values 'none' No vulnerability management 'basic' Self-monitored 'managed' Memset-monitored :type vulnscan: String, Optional :param database: Microsoft SQL server. Available only for Windows servers. Acceptable values: :type database: String, Optional :param antivirus: Antivirus software. Windows servers only. Acceptable values 'none' None 'sophos_antivirus' Sophos Anti-virus :type antivirus: String, Optional :param firewall: The type of firewall you require. For more information see `Memset's Firewalling page `_. 'managed' only available with ``support_level=managed``. Acceptable values 'none' No firewalling 'basic' Basic 'self_managed' Self-managed 'managed' Memset-managed :type firewall: String, Optional :param firewall_rule_group: The name of an existing account firewall rule group to apply. (For the following firewall types only: 'managed', 'self_managed') :type firewall_rule_group: String, Optional :param sku: **Premium Cloud VPS skus** === =========== sku description === =========== === =========== **Standard Cloud VPS skus** === =========== sku description === =========== === =========== **Classic Miniserver skus** === =========== sku description === =========== === =========== Please note that our classic Miniserver skus are deprecated and will be unsupported in future API releases. See also: :func:`create.available` method to get a list with descriptions of available services. :type sku: String :param dry_run: If True, then the service is not provisioned but the information is still returned. :type dry_run: Boolean :param discount_code: Discount code to be applied. :type discount_code: String, Optional :param add_to_next_bill: If True, any charges will be added to the next consolidated bill if possible. If False, an invoice will be generated using the account's default payment method. Defaults to True for accounts with consolidated billing enabled, otherwise False. It is only possible to set `add_to_next_bill=True` for accounts with consolidated billing enabled. :type add_to_next_bill: Boolean, Optional :param os: The Operating System. Acceptable values include a Memstore snapshot name or one of the operating systems below. Please note the snapshot name needs to be the ``os_option`` value obtained from the :func:`server.snapshot_list` method. ======================= ======= ============================================================= ======= ======= os os_bits description min ram max ram ======================= ======= ============================================================= ======= ======= centos6_64 64 CentOS 6 64-bit n/a n/a win2012serverstd_r2_64 64 Windows Server 2012 Standard R2 64-bit 2GB n/a ubuntu_trusty_64 64 Ubuntu 14.04 LTS (Trusty Tahr) 64-bit n/a n/a centos7_64 64 CentOS 7 64-bit n/a n/a ubuntu_trusty_docker_64 64 Ubuntu 14.04 LTS (Trusty Tahr, Docker pre-installed) 64-bit n/a n/a centos7_cpanel_64 64 CentOS 7 cPanel 64-bit 2GB n/a win2016serverstd_64 64 Windows Server 2016 Standard 64-bit 2GB n/a ubuntu_xenial_docker_64 64 Ubuntu 16.04 LTS (Xenial Xerus, Docker pre-installed) 64-bit n/a n/a debian_stretch_64 64 Debian 9 (Stretch) 64-bit n/a n/a ubuntu_bionic_64 64 Ubuntu 18.04 LTS (Bionic Beaver) 64-bit n/a n/a ubuntu_bionic_docker_64 64 Ubuntu 18.04 LTS (Bionic Beaver, Docker pre-installed) 64-bit n/a n/a win2019serverstd_64 64 Windows Server 2019 Standard 2GB n/a debian_buster_64 64 Debian 10 (Buster) 64-bit n/a n/a ======================= ======= ============================================================= ======= ======= See also: `Operating systems`_ for further information. :type os: String :param os_bits: Whether to use a 32 or 64-bit system. Note that some operating systems may not be available in both versions. Deprecated for newly provisioned servers - operating systems of all newly provisioned servers are 64 bit. Acceptable values: '32', '64'. :type os_bits: String, Optional, Deprecated and ignored: This parameter is deprecated and will be unsupported in future API releases. :param support_level: The level of technical support. Default value is "standard" unless the sku is a Standard Cloud VPS sku, in which case the default and only available value is "infrastructure_only". See `our support matrix `_ for further information. Acceptable values 'standard' Standard Support 'premium' Premium Support 'premium' Premium Plus Support 'managed_infrastructure' Standard Support 'managed_platform' Premium Support 'infrastructure_only' For use with Standard VPS and deprecated classic Miniserver VMs. 'basic' Deprecated support level for use with our classic Miniserver VMs. 'managed' Deprecated Support level for use with our classic Miniserver VMs. :type support_level: String, Optional :param vlan: The name of a vLAN product to put the server in when it is created. :type vlan: String, Optional :param network_zone: The Network Zone to deploy your Miniserver VM. The default network zone is 'dunsfold'. Acceptable values are ============ ========================= network_zone location ============ ========================= reading Maidenhead, Berkshire, UK dunsfold Dunsfold, Surrey, UK ============ ========================= :type network_zone: String, Optional :param data_zone: The Data Zone to deploy your Miniserver VM. The default data zone depends on whether the account belongs to a community cloud or not. For regular accounts, defaults to 'Memset Public Cloud' :type data_zone: String, Optional :param period: The rental period in months. Valid rental period values are: 1, 3, 6, 12. The default period is 1. :type period: Integer, Optional :param pub_ssh_key: Public SSH key to be installed in the server (`root` user). Only available for Linux servers. :type pub_ssh_key: String, Optional :param disk_type: For classic Miniservers only. All current Miniserver specifications have the 'ssd' disk_type. Acceptable values 'hdd' Standard rotating magnetic media 'ssd' High performance Solid State Disk :type disk_type: String, Optional, Deprecated: This parameter is deprecated and will be unsupported in future API releases. .. function:: create.openstack_project Provisions a Cloud IaaS (powered by OpenStack) project. See the `Cloud IaaS page `_ for pricing and more information. :param sku: The SKU of the service you wish to provision. Acceptable values are === =========== sku description === =========== === =========== See also: :func:`create.available` method to get a list with descriptions of available services. :type sku: String :param dry_run: If True, then the service is not provisioned but the information is still returned. :type dry_run: Boolean :param discount_code: Discount code to be applied. :type discount_code: String, Optional :param add_to_next_bill: If True, any charges will be added to the next consolidated bill if possible. If False, an invoice will be generated using the account's default payment method. Defaults to True for accounts with consolidated billing enabled, otherwise False. It is only possible to set `add_to_next_bill=True` for accounts with consolidated billing enabled. :type add_to_next_bill: Boolean, Optional .. function:: create.verify_discount_code Returns information about a discount code. :param discount_code: Discount code to verify. :type discount_code: String :returns: if the discount code is valid, this method returns a dictionary with following keys: **sku** String: The code used to identify the service to apply the discount code. **description** String: Description of the discount code. **incompatible** List: parameter values that aren't compatible with the discount (format "param:value"). It can be empty. **required** List: parameter values that are implicitly set when using this discount (format "param:value"). Any other value in parameters in this list will be ignored. It can be empty. In order to see how a discount code affects a product price, use the appropriate create method providing the discount code and setting dry_run parameter to True. :raises: :class:`ApiErrorDoesNotExist` if the discount code doesn't exist or is not valid for this account.