### Install SOLIDserverRest using pip Source: https://gitlab.com/efficientip/solidserverrest/-/blob/master/README.md Install the library using pip in your virtual environment. ```bash pip install SOLIDserverRest ``` -------------------------------- ### Install Publishing Tools Source: https://gitlab.com/efficientip/solidserverrest/-/blob/master/PUBLISH.md Install twine and build tools required for packaging and uploading Python projects. ```bash pip install twine build ``` -------------------------------- ### Call IP Site List API Source: https://gitlab.com/efficientip/solidserverrest/-/blob/master/docs/HOWTO.md Example of calling the ip_site_list API with limit, offset, and a WHERE clause. Ensure parameters are provided as a hash. ```ruby puts sdsapi.ip_site_list(limit: 128, offset: 0, where: "site_name like '%test%'" ).body ``` -------------------------------- ### dhcp_prefix6_create Source: https://gitlab.com/efficientip/solidserverrest/-/blob/master/docs/dhcp_prefix6_create.md Adds a DHCPv6 prefix to the system. This operation requires either the start and end addresses along with the prefix, and either a DHCPv6 subnet ID or name. ```APIDOC ## dhcp_prefix6_create ### Description Add a DHCPv6 prefix. ### Method (Not specified, likely a POST or PUT request based on the operation) ### Endpoint (Not specified, but likely related to a DHCPv6 prefix management endpoint) ### Parameters #### Mandatory Input Parameters Requires `(dhcpprefix6_start_addr && dhcpprefix6_end_addr && dhcpprefix6_prefix) && (dhcpsn6_id || dhcpsn6_name)`. #### Input Parameters * **dhcpprefix6_start_addr** (ipv6_addr) - The starting IPv6 address of the prefix. * **dhcpprefix6_end_addr** (ipv6_addr) - The ending IPv6 address of the prefix. * **dhcpprefix6_prefix** (integer, >0) - The prefix length for the DHCPv6 range. * **dhcpsn6_id** (integer, >0) - The ID of the DHCPv6 subnet. * **dhcp6_id** (integer, >0) - The ID of the DHCPv6 configuration. * **dhcpsn6_name** (string, max length: 255) - The name of the DHCPv6 subnet. * **dhcpprefix6_id** (integer, >0) - The ID of the DHCPv6 prefix. * **add_flag** (enum, default: new_edit) - Flag to control the addition behavior. Values: `new_edit`, `new_only`, `edit_only`. * **apply_write_data_add_update** (bool, default: 1) - Whether to apply write data for add/update operations. ### Returned Values * **ret_oid** - The object ID of the created prefix. * **errno** - Error number. * **errmsg** - Error message. * **msg** - A message indicating the result of the operation. * **severity** - The severity level of the returned message. * **parameters** - A list of parameters returned. * **param_format** - The format of the returned parameters. * **param_value** - The value of the returned parameters. * **ret_code** - The return code of the operation. ``` -------------------------------- ### Get Existing Space Source: https://gitlab.com/efficientip/solidserverrest/-/blob/master/SOLIDserverRest/adv/README.md Retrieves an existing space from SOLIDserver by its name. Requires a pre-established connection. ```python space = sdsadv.Space(sds=sds, name="Local") space.refresh() ``` -------------------------------- ### Prepare Package for Distribution Source: https://gitlab.com/efficientip/solidserverrest/-/blob/master/PUBLISH.md Build the distribution package for the SolidServerREST project. ```bash python -m build ``` -------------------------------- ### Get DHCPv6 Scope Information Source: https://gitlab.com/efficientip/solidserverrest/-/blob/master/docs/dhcp_scope6_info.md Fetches detailed information for a DHCPv6 scope, identified by its unique ID. ```APIDOC ## GET /dhcp/v6/scope/info ### Description Retrieves information about a specific DHCPv6 scope. ### Method GET ### Endpoint /dhcp/v6/scope/info ### Parameters #### Query Parameters - **dhcpscope6_id** (integer) - Required - The ID of the DHCPv6 scope to retrieve information for. - **SELECT** (string) - Optional - A comma-separated list of fields to return. If not specified, all fields are returned. - **NO_PARENT_CLASS_PARAM** (boolean) - Optional - If true, parent class parameters are not included in the response. ``` -------------------------------- ### Connect to SOLIDserver Source: https://gitlab.com/efficientip/solidserverrest/-/blob/master/SOLIDserverRest/adv/README.md Establishes a connection to the SOLIDserver using provided credentials and server details. Handles potential connection errors. ```python from SOLIDserverRest import * from SOLIDserverRest import adv as sdsadv sds = sdsadv.SDS(ip_address=SDS_HOST, user=SDS_LOGIN, pwd=SDS_PWD) try: sds.connect(method="native") except SDSError as e: logging.error(e) exit() ``` -------------------------------- ### Connect with Basic Authentication Source: https://gitlab.com/efficientip/solidserverrest/-/blob/master/README.md Instantiate and connect to SOLIDserver using basic authentication. Handles connection to the manager and API calls. Ensure to handle potential SDSError during connection. ```python from SOLIDserverRest import * from SOLIDserverRest import adv as sdsadv SDS_HOST = "192.168.254.254" SDS_LOGIN = "foo" SDS_PWD = "bar" sds = sdsadv.SDS(ip_address=SDS_HOST, user=SDS_LOGIN, pwd=SDS_PWD) try: sds.connect() except SDSError as e: logging.error(e) exit(1) print(sds) ``` -------------------------------- ### dhcp_range6_update Source: https://gitlab.com/efficientip/solidserverrest/-/blob/master/docs/dhcp_range6_update.md Adds or updates a DHCPv6 range. Requires at least a start and end address, along with a scope or DHCPv6 identifier. ```APIDOC ## dhcp_range6_update ### Description Add a DHCP6 range6 ### Method POST ### Endpoint /api/v1/dhcp/range6/update ### Parameters #### Mandatory Input Parameters (dhcprange6_start_addr && dhcprange6_end_addr && (dhcpscope6_id || dhcp6_id || dhcp6_name || hostaddr)) #### Input Parameters - **dhcp6_id** (int) - Required - >0 - **dhcp6_name** (string) - Required - max length: 255 - **hostaddr** (ipv46_addr) - Required - **dhcpscope6_name** (string) - Required - max length: 255 - **dhcpscope6_id** (int) - Required - >=0 - **dhcprange6_id** (int) - Required - >0 - **dhcprange6_start_addr** (ipv6_addr) - Required - **dhcprange6_end_addr** (ipv6_addr) - Required - **dhcprange6_acl** (string) - Optional - max length: 4000, default: "" - **dhcprange6_class_name** (string) - Optional - max length: 128, default: "", can be empty: true - **dhcprange6_class_parameters** (string) - Optional - default: "", can be empty: true - **add_flag** (enum) - Optional - default: "new_edit", values: new_edit, new_only, edit_only - **class_parameters_to_delete** (string) - Optional - can be empty: true - **dhcprange6_class_parameters_properties** (string) - Optional - can be empty: true - **apply_write_data_add_update** (bool) - Optional - default: 1 - **validate_warnings** (enum) - Optional - values: accept ### Returned Values - **ret_oid** - **errno** - **errmsg** - **msg** - **severity** - **parameters** - **param_format** - **param_value** - **ret_code** ``` -------------------------------- ### Get App Healthcheck Info Source: https://gitlab.com/efficientip/solidserverrest/-/blob/master/docs/app_healthcheck_info.md Retrieves application health check information. You can filter the results by providing a GSLB healthcheck ID. ```APIDOC ## GET /app_healthcheck_info ### Description Retrieves application health check information. You can filter the results by providing a GSLB healthcheck ID. ### Method GET ### Endpoint /app_healthcheck_info ### Parameters #### Query Parameters - **gslb_healthcheck_id** (string) - Optional - The ID of the GSLB healthcheck to filter by. ### Response #### Success Response (200) - **apphealthcheck_id** (string) - The unique identifier for the application health check. - **apphealthcheck_name** (string) - The name of the application health check. - **translated_apphealthcheck_name** (string) - The translated name of the application health check. ``` -------------------------------- ### Upload Package to PyPI Source: https://gitlab.com/efficientip/solidserverrest/-/blob/master/PUBLISH.md Upload the built distribution files to the Python Package Index (PyPI) using twine. ```bash twine upload dist/* ``` -------------------------------- ### dhcp_prefix6_delete Source: https://gitlab.com/efficientip/solidserverrest/-/blob/master/docs/dhcp_prefix6_delete.md Deletes a DHCPv6 prefix. You can identify the prefix to delete by its ID or by its start address along with its associated DHCPv6 server ID or name. ```APIDOC ## Method dhcp_prefix6_delete ### Description Delete a DHCPv6 prefix. ### Parameters #### Mandatory Input Parameters - `dhcpprefix6_id` (integer) OR (`dhcpprefix6_start_addr` (ipv6_addr) AND (`dhcpsn6_id` (integer) OR `dhcpsn6_name` (string))) #### Input Parameters - `dhcpsn6_id` (integer): ID of the DHCPv6 server. - `dhcpsn6_name` (string): Name of the DHCPv6 server (max length: 255). - `dhcpprefix6_id` (integer): The ID of the DHCPv6 prefix to delete. - `dhcpprefix6_start_addr` (ipv6_addr): The starting address of the DHCPv6 prefix. ### Returned Values - `ret_oid` (integer): The object ID of the deleted prefix. - `errno` (integer): Error number. - `errmsg` (string): Error message. - `msg` (string): Informational message. - `severity` (string): Severity level of the message. - `parameters` (object): Returned parameters. - `param_format` (string): Format of the returned parameter. - `param_value` (string): Value of the returned parameter. - `ret_code` (integer): Return code. ``` -------------------------------- ### Connect with Token Authentication (SDS >= 8.4.0) Source: https://gitlab.com/efficientip/solidserverrest/-/blob/master/README.md Connect to SOLIDserver using token-based authentication. This method is available for SDS releases version 8.4.0 and later. Ensure to set token credentials before connecting. ```python from SOLIDserverRest import * from SOLIDserverRest import adv as sdsadv SDS_HOST = "192.168.254.254" SDS_TOKEN_ID = "8628f88cbd40df99903d6f385caa0462" SDS_TOKEN_SEC = "ca8ec3c0f07b380c4723349230901d40a84ba4b4987c12863b66b0b5297ad922" sds = sdsadv.SDS(ip_address=SDS_HOST) sds.set_token_creds(keyid=SDS_TOKEN_ID, keysecret=SDS_TOKEN_SEC) try: sds.connect(method="token") except SDSError as e: logging.error(e) exit(1) print(sds) ``` -------------------------------- ### Create IP Address Source: https://gitlab.com/efficientip/solidserverrest/-/blob/master/SOLIDserverRest/adv/README.md Allocates and creates a specific IP address within a given space. Logs the details of the created IP address. ```python add = sdsadv.IpAddress(sds=sds, space=space, ipv4='172.16.10.135') add.create() logging.info(add) ``` -------------------------------- ### dhcp_scope6_create Source: https://gitlab.com/efficientip/solidserverrest/-/blob/master/docs/dhcp_scope6_create.md Adds a DHCPv6 scope to the SOLIDserver system. This method requires specific start and end addresses or a prefix, along with identification for the DHCPv6 configuration. ```APIDOC ## dhcp_scope6_create ### Description Add a DHCPv6 scope ### Mandatory Input Parameters (dhcpscope6_start_addr && (dhcpscope6_end_addr || dhcpscope6_prefix) && (dhcp6_id || dhcp6_name || hostaddr)) ### Input Parameters * **dhcp6_id** (int) - Required - Identifier for the DHCPv6 configuration. * **dhcp6_name** (string) - Required - Name of the DHCPv6 configuration (max length: 255). * **hostaddr** (ipv46_addr) - Required - Host address associated with the DHCPv6 configuration. * **dhcpscope6_start_addr** (ipv6_addr) - Required - The starting IPv6 address for the scope. * **dhcpscope6_end_addr** (ipv6_addr) - Optional - The ending IPv6 address for the scope. * **dhcpscope6_prefix** (ipv6_prefix) - Optional - The IPv6 prefix for the scope. * **dhcpscope6_id** (int) - Optional - Identifier for the DHCPv6 scope. * **dhcpscope6_name** (string) - Optional - Name of the DHCPv6 scope (max length: 255). * **dhcpfailover6_id** (int) - Optional - Identifier for the DHCPv6 failover configuration (default: 0). * **dhcpfailover6_name** (string) - Optional - Name of the DHCPv6 failover configuration (max length: 255). * **dhcpscope6_site_id** (int) - Optional - Identifier for the site associated with the scope (default: 0). * **dhcpscope6_site_name** (string) - Optional - Name of the site associated with the scope (max length: 128). * **dhcpscope6_class_name** (string) - Optional - Name of the class for the scope (max length: 128, can be empty). * **dhcpscope6_class_parameters** (string) - Optional - Parameters for the class (can be empty). * **add_flag** (enum) - Optional - Flag to control the addition behavior (default: new_edit, values: new_edit, new_only, edit_only). * **class_parameters_to_delete** (string) - Optional - Parameters to delete from the class (can be empty). * **dhcpscope6_class_parameters_properties** (string) - Optional - Properties for the class parameters (can be empty). * **apply_write_data_add_update** (bool) - Optional - Whether to apply write data for add/update operations (default: 1). * **validate_warnings** (enum) - Optional - Whether to accept warnings during validation (values: accept). ### Returned Values * **ret_oid** - The object ID of the created scope. * **errno** - Error number. * **errmsg** - Error message. * **msg** - Informational message. * **severity** - Severity level of the message. * **parameters** - List of parameters. * **param_format** - Format of the parameters. * **param_value** - Value of the parameters. * **ret_code** - Return code. ``` -------------------------------- ### app_application_create Source: https://gitlab.com/efficientip/solidserverrest/-/blob/master/docs/app_application_create.md Adds or modifies an App Application. Requires at least 'name' and 'fqdn'. ```APIDOC ## Method app_application_create ### Description Add/modify an App Application ### Mandatory Input Parameters (name && fqdn) ### Input Parameters * appapplication_id: type: >0 * name: type: regex, max length: 128 * fqdn: type: string, max length: 255 * gslbserver_list: type: string_array * appapplication_class_name: type: string, max length: 128, can be empty: true * appapplication_class_parameters: type: string, default: , can be empty: true * add_flag: type: enum, default: new_edit, values: new_edit,new_only,edit_only * class_parameters_to_delete: type: string, can be empty: true * appapplication_class_parameters_properties: type: string, can be empty: true * validate_warnings: type: enum, values: accept ### Returned Values * ret_oid * errno * errmsg * msg * severity * parameters * param_format * param_value * ret_code ``` -------------------------------- ### ip_pool_delete Source: https://gitlab.com/efficientip/solidserverrest/-/blob/master/docs/ip_pool_delete.md Deletes an IPv4 pool. The pool can be identified by its ID, or by a range (start and end address) along with a subnet or site identifier. Warnings can be accepted during deletion. ```APIDOC ## ip_pool_delete ### Description Delete an IPv4 pool ### Method POST ### Endpoint /api/ip/pool/delete ### Parameters #### Mandatory Input Parameters (pool_id || (start_addr && (end_addr || pool_size) && (subnet_id || site_id || site_name))) #### Input Parameters * **site_id** (int) - Optional - The ID of the site. * **site_name** (string) - Optional - The name of the site (max length: 128). * **subnet_id** (int) - Optional - The ID of the subnet. * **pool_id** (int) - Optional - The ID of the pool. * **start_addr** (ipv4_addr) - Optional - The starting IP address of the pool. * **end_addr** (ipv4_addr) - Optional - The ending IP address of the pool. * **pool_size** (int) - Optional - The size of the pool. * **validate_warnings** (enum) - Optional - Values: accept. Allows accepting warnings during deletion. ### Returned Values * **ret_oid** (int) - The returned object ID. * **errno** (int) - The error number. * **errmsg** (string) - The error message. * **msg** (string) - A message indicating the result. * **severity** (string) - The severity of the message. * **parameters** (object) - Details about the parameters used. * **param_format** (string) - The format of the parameter. * **param_value** (string) - The value of the parameter. * **ret_code** (int) - The return code. ``` -------------------------------- ### Specify Native Connection Method Source: https://gitlab.com/efficientip/solidserverrest/-/blob/master/README.md Configure the connection to use SOLIDserver's native method with authentication via base64 encoded headers. ```python con.use_native_sds(user="apiuser", password="apipwd") ``` -------------------------------- ### Filter Results with LIMIT and OFFSET Source: https://gitlab.com/efficientip/solidserverrest/-/blob/master/docs/HOWTO.md Use LIMIT and OFFSET parameters to control the number of results returned and the starting point for pagination. Values are provided as strings. ```json {"LIMIT" : "100", "OFFSET" : "10"} ``` -------------------------------- ### Specify Basic Authentication Method Source: https://gitlab.com/efficientip/solidserverrest/-/blob/master/README.md Configure the connection to use basic HTTP authentication. ```python con.use_basicauth_sds(user="apiuser", password="apipwd") ``` -------------------------------- ### Filter Results with ORDER BY Clause Source: https://gitlab.com/efficientip/solidserverrest/-/blob/master/docs/HOWTO.md Use an ORDER BY clause with SQL ANSI style syntax to sort API results. Example sorts by alias_name and ip_name_type. ```json {"ORDERBY":"alias_name, ip_name_type"} ``` -------------------------------- ### dhcp_server_create Source: https://gitlab.com/efficientip/solidserverrest/-/blob/master/docs/dhcp_server_create.md Adds a DHCP server to the system. Requires at least the DHCP server name. ```APIDOC ## Method dhcp_server_create ### Description Add a DHCP server ### Mandatory Input Parameters dhcp_name ### Input Parameters * dhcp_id: type: >0 * dhcp_name: type: string, max length: 255 * hostaddr: type: ipv46_addr * dhcp_addr: type: ipv46_addr * service_ip_addr: type: ipv4_addr, default: #, can be empty: true * dhcp_comment: type: string, max length: 255 * dhcp_type: type: enum, values: vdhcp,ms2,msrpc,ipm * vdhcp_arch: type: enum, values: masterslave,star,splitscope,single,cluster * vdhcp_ref1_dhcp_id: type: >=0, can be empty: true * vdhcp_ref2_dhcp_id: type: >=0, can be empty: true * vdhcp_param1: type: string, can be empty: true * cisco_login: type: string, max length: 255 * cisco_password: type: string, max length: 255 * cisco_root_password: type: string, max length: 255 * cisco_use_ssh: max length: 1, default: 0 * snmp_id: type: >0, default: 0 * snmp_port: type: >=0 * snmp_profile_id: type: >0 * snmp_retry: type: >=0 * snmp_timeout: type: >=0 * snmp_use_tcp: type: >=0 * windhcp_port: type: >=0, default: 4000 * ms_use_ssl: type: >=0, default: 0 * windhcp_use_ssl: type: >=0, default: 0 * windhcp_protocol: type: enum, default: plain, values: soap,plain * dhcp_class_name: type: string, max length: 128, default: , can be empty: true * dhcp_class_parameters: type: string, default: , can be empty: true * isolated: type: bool, default: 0 * failover_list: type: string * vdhcp_list: type: string_array * ipmdhcp_protocol: type: enum, default: https, values: snmp,https * ipmdhcp_https_login: type: string * ipmdhcp_https_password: type: string * ipmdhcp_is_package: type: string * msrpc_login: type: string, max length: 64 * msrpc_password: type: string, max length: 64 * msrpc_domain: type: string, max length: 64 * reverse_proxy_conf: type: string * stat_enabled: type: string, default: U * stat_period: type: >0, default: 5 * connectionprofile_name: type: string * connectionprofile_id: type: >=0, default: 0 * cluster_hb_hostaddr: type: ipv46_addr, default: #, can be empty: true * sshkey_encryption_type: type: enum, values: RSA * sshkey_encryption_bits: type: >0, can be empty: true * cluster_ssh_keyring_id: type: >0, default: 0, can be empty: true * cluster_role: type: enum, default: #, values: #,M,B * cluster_vip_phys_hostaddr: type: ipv46_addr, default: #, can be empty: true * mode: type: enum, default: 0, values: active,safe,readonly,unmanaged * add_flag: type: enum, default: new_edit, values: new_edit,new_only,edit_only * class_parameters_to_delete: type: string, can be empty: true * dhcp_class_parameters_properties: type: string, can be empty: true * apply_write_data_add_update: type: bool, default: 1 * validate_warnings: type: enum, values: accept ### Returned Values * ret_oid * errno * errmsg * msg * severity * parameters * param_format * param_value * ret_code ``` -------------------------------- ### Declare API Endpoint Source: https://gitlab.com/efficientip/solidserverrest/-/blob/master/README.md Initialize the SOLIDserverRest object with the SOLIDserver's FQDN or IP address. ```python con = SOLIDserverRest("fqdn_host.org") ``` -------------------------------- ### dhcp_range_create Source: https://gitlab.com/efficientip/solidserverrest/-/blob/master/docs/dhcp_range_create.md Adds a DHCP range to the SOLIDserver configuration. This method requires either a scope ID or DHCP server ID/name, along with the start and end addresses of the range. ```APIDOC ## Method dhcp_range_create ### Description Add a DHCP range ### Mandatory Input Parameters (dhcprange_start_addr && dhcprange_end_addr && (dhcpscope_id || dhcp_id || dhcp_name || hostaddr)) ### Input Parameters * dhcp_id: type: >0 * dhcp_name: type: string, max length: 255 * hostaddr: type: ipv46_addr * dhcp_addr: type: ipv46_addr * dhcpscope_name: type: string, max length: 255 * dhcpscope_id: type: >=0 * scope_id: type: >=0 * dhcprange_id: type: >0 * start_addr: type: ipv4_addr * dhcprange_start_addr: type: ipv4_addr * end_addr: type: ipv4_addr * dhcprange_end_addr: type: ipv4_addr * acl: type: string, max length: 4000, default: * dhcprange_name: type: string, max length: 32 * dhcprange_acl: type: string, max length: 4000, default: * dhcprange_class_name: type: string, max length: 128, default: , can be empty: true * dhcprange_class_parameters: type: string, default: , can be empty: true * add_flag: type: enum, default: new_edit, values: new_edit,new_only,edit_only * class_parameters_to_delete: type: string, can be empty: true * dhcprange_class_parameters_properties: type: string, can be empty: true * apply_write_data_add_update: type: bool, default: 1 * validate_warnings: type: enum, values: accept ### Returned Values * ret_oid * errno * errmsg * msg * severity * parameters * param_format * param_value * ret_code ``` -------------------------------- ### Filter Results with WHERE Clause Source: https://gitlab.com/efficientip/solidserverrest/-/blob/master/docs/HOWTO.md Use a WHERE clause with SQL ANSI style syntax to filter API results based on field combinations. Example filters by name and time_to_expire. ```json {"WHERE":"name LIKE 'eip-%' and time_to_expire<=3600"} ``` -------------------------------- ### dns_server_create Source: https://gitlab.com/efficientip/solidserverrest/-/blob/master/docs/dns_server_create.md Adds a DNS server with specified configuration. This method requires at least a DNS name and type, and accepts a wide range of optional parameters to configure various aspects of the DNS server, including its type, host address, comments, class parameters, replication settings, security configurations, and cloud-specific integrations. ```APIDOC ## Method dns_server_create ### Description Add a DNS server ### Method POST ### Endpoint /api/v1/dns/server ### Parameters #### Mandatory Input Parameters - **dns_name** (string) - Required - The name of the DNS server. - **dns_type** (enum) - Required - The type of the DNS server. Values: ipm, vdns, msdaemon, other, aws, azure. #### Input Parameters - **dns_id** (int) - Optional - The ID of the DNS server. Must be greater than 0. - **hostaddr** (ipv46_addr) - Optional - The host address of the DNS server. Can be empty. - **dns_comment** (string) - Optional - A comment for the DNS server. - **dns_class_name** (string) - Optional - The class name for the DNS server. Max length: 128. Can be empty. - **dns_class_parameters** (string) - Optional - Class parameters for the DNS server. Can be empty. - **vdns_list** (string_array) - Optional - List of vDNS servers. - **vdns_dns_group_role** (string_array) - Optional - Roles for the vDNS group. - **isolated** (bool) - Optional - Whether the DNS server is isolated. Defaults to 0 (false). - **dns_allow_transfer** (string_array) - Optional - List of hosts allowed for zone transfers. Defaults to 'any'. - **dns_allow_query** (string_array) - Optional - List of hosts allowed for queries. Defaults to 'any'. - **dns_allow_query_cache** (string_array) - Optional - List of hosts allowed for query caching. Defaults to 'any'. - **dns_allow_recursion** (string_array) - Optional - List of hosts allowed for recursion. Defaults to 'any'. - **dns_recursion** (string_array) - Optional - Recursion settings for the DNS server. Defaults to 'yes'. - **dns_forward** (string_array) - Optional - Forwarding settings for the DNS server. Defaults to 'none'. - **dns_forwarders** (string_array) - Optional - List of DNS forwarders. - **dns_notify** (string_array) - Optional - Notify settings for the DNS server. Defaults to 'yes'. - **dns_also_notify** (string_array) - Optional - Additional notify settings. - **zone** (string) - Optional - The zone associated with the DNS server. - **snmp_id** (int) - Optional - The SNMP ID. Must be greater than 0. Defaults to 0. - **snmp_port** (int) - Optional - The SNMP port. Must be greater than or equal to 0. - **snmp_profile_id** (int) - Optional - The SNMP profile ID. Must be greater than 0. - **snmp_retry** (int) - Optional - SNMP retry count. Must be greater than or equal to 0. - **snmp_timeout** (int) - Optional - SNMP timeout. Must be greater than 0. - **snmp_use_tcp** (bool) - Optional - Whether to use TCP for SNMP. - **ipmdns_protocol** (enum) - Optional - IPM DNS protocol. Defaults to 'https'. Values: snmp, https. - **ipmdns_https_login** (string) - Optional - HTTPS login for IPM DNS. - **ipmdns_https_password** (string) - Optional - HTTPS password for IPM DNS. - **ipmdns_is_package** (string) - Optional - IPM DNS package information. - **aws_keyid** (string) - Optional - AWS access key ID. - **aws_secret** (string) - Optional - AWS secret access key. - **aws_use_role** (enum) - Optional - Whether to use an AWS role. Defaults to 0 (false). Values: 0, 1. - **aws_role_arn** (string) - Optional - AWS role ARN. Can be empty. - **aws_role_external_id** (string) - Optional - AWS external ID for role assumption. Can be empty. - **aws_role_session_name** (string) - Optional - AWS session name for role assumption. Can be empty. - **aws_delegation_set** (string) - Optional - AWS delegation set. Defaults to '#'. - **az_tenantid** (string) - Optional - Azure tenant ID. - **az_keyid** (string) - Optional - Azure client ID. - **az_subscriptionid** (string) - Optional - Azure subscription ID. - **az_group** (string) - Optional - Azure resource group. - **az_secret** (string) - Optional - Azure client secret. - **ad_domain** (string) - Optional - Active Directory domain. - **ad_user** (string) - Optional - Active Directory user. - **ad_password** (string) - Optional - Active Directory password. - **vdns_arch** (enum) - Optional - vDNS architecture. Values: masterslave, multimaster, stealth, cache, single, farm. - **vdns_ref1_dns_id** (int) - Optional - Reference DNS ID 1. Must be greater than or equal to 0. Can be empty. - **vdns_ref2_dns_id** (int) - Optional - Reference DNS ID 2. Must be greater than or equal to 0. Can be empty. - **vdns_public_ns_list** (string_array) - Optional - List of public nameservers. Can be empty. - **tsig_key_name** (string) - Optional - TSIG key name. - **dns_key_name** (string) - Optional - DNS key name. - **tsig_key_value** (string) - Optional - TSIG key value. - **dns_key_value** (string) - Optional - DNS key value. - **tsig_key_proto** (string) - Optional - TSIG key protocol. - **dns_key_proto** (string) - Optional - DNS key protocol. - **dns_rpz_recursive_only** (bool) - Optional - RPZ recursive only setting. Can be empty. - **dns_rpz_break_dnssec** (bool) - Optional - RPZ break DNSSEC setting. Can be empty. - **dns_rpz_qname_wait_recurse** (bool) - Optional - RPZ QNAME wait recurse setting. Can be empty. - **dns_rpz_max_policy_ttl** (int) - Optional - RPZ max policy TTL. Must be greater than or equal to 0. Can be empty. - **dns_rpz_min_ns_dots** (int) - Optional - RPZ min NS dots. Must be greater than or equal to 0. Can be empty. - **gss_keytab_id** (list) - Optional - GSS keytab ID. Can be empty. - **gss_enabled** (bool) - Optional - Whether GSS is enabled. Defaults to 0 (false). Can be empty. - **windns_use_ssl** (bool) - Optional - Whether to use SSL for Windows DNS. Defaults to 0 (false). - **windns_port** (int) - Optional - Port for Windows DNS. Must be greater than 0. - **windns_protocol** (enum) - Optional - Protocol for Windows DNS. Defaults to 'plain'. Values: plain, soap. - **windns_login** (string) - Optional - Login for Windows DNS. - **windns_password** (string) - Optional - Password for Windows DNS. Defaults to 'password'. - **dns_force_hybrid** (int) - Optional - Force hybrid mode. Must be greater than or equal to 0. Defaults to 0. - **reverse_proxy_conf** (string) - Optional - Reverse proxy configuration. - **stat_enabled** (string) - Optional - Enable statistics. Defaults to 'U'. - **stat_period** (int) - Optional - Statistics period in minutes. Must be greater than 0. Defaults to 5. - **dns_cloud_private** (string) - Optional - Cloud private setting. Defaults to '0'. - **dns_vpc_list** (string) - Optional - List of VPCs. - **connection_type** (bool) - Optional - Connection type. - **connectionprofile_name** (string) - Optional - Connection profile name. - **connectionprofile_id** (int) - Optional - Connection profile ID. Must be greater than or equal to 0. Defaults to 0. - **mode** (enum) - Optional - Operation mode. Defaults to 0. Values: active, safe, readonly, unmanaged. - **publish** (bool) - Optional - Whether to publish the DNS server. - **add_flag** (enum) - Optional - Add flag. Defaults to 'new_edit'. Values: new_edit, new_only, edit_only. - **class_parameters_to_delete** (string) - Optional - Class parameters to delete. Can be empty. - **dns_class_parameters_properties** (string) - Optional - DNS class parameters properties. Can be empty. - **apply_write_data_add_update** (bool) - Optional - Apply write data add/update. Defaults to 1 (true). - **validate_warnings** (enum) - Optional - Validate warnings. Values: accept. ### Response #### Success Response (200) - **ret_oid** (int) - The object ID of the created DNS server. - **errno** (int) - Error number. - **errmsg** (string) - Error message. - **msg** (string) - Success message. - **severity** (string) - Severity of the operation. - **parameters** (object) - Returned parameters. - **param_format** (string) - Parameter format. - **param_value** (string) - Parameter value. - **ret_code** (int) - Return code. ``` -------------------------------- ### View SOLIDserver REST API Methods Source: https://gitlab.com/efficientip/solidserverrest/-/blob/master/README.md Lists the categories of methods available for interacting with SOLIDserver, including Sites, Subnets, Pools, Addresses, DNS, and more. Refer to the specific document for detailed method information. ```markdown Methods are organized to match the ontology used in SOLIDServer, you will find: * Sites - address spaces * Subnets (v4 and v6) * Pools (v4 and v6) * Addresses (v4 and v6) * Aliases (v4 and v6) * DNS servers, views, zones, RR, acl, key * application manager * DHCP server, scope, shared net, range, static, group, options * device manager * VLAN manager * Network Object Manager More information about supported methods in the [specific document](docs/METHODS.md) ``` -------------------------------- ### dhcp_scope6_update Source: https://gitlab.com/efficientip/solidserverrest/-/blob/master/docs/dhcp_scope6_update.md Updates an existing DHCPv6 scope. You must provide either a dhcp6_id, dhcp6_name, or hostaddr, along with the scope's start address and either an end address or a prefix. ```APIDOC ## Method dhcp_scope6_update ### Description Add a DHCP6 scope ### Mandatory Input Parameters (dhcpscope6_start_addr && (dhcpscope6_end_addr || dhcpscope6_prefix) && (dhcp6_id || dhcp6_name || hostaddr)) ### Input Parameters * **dhcp6_id** (int) - Identifier for the DHCPv6 configuration. * **dhcp6_name** (string, max length: 255) - Name of the DHCPv6 configuration. * **hostaddr** (ipv46_addr) - The host address associated with the DHCPv6 configuration. * **dhcpscope6_start_addr** (ipv6_addr) - The starting IPv6 address of the scope. * **dhcpscope6_end_addr** (ipv6_addr) - The ending IPv6 address of the scope. * **dhcpscope6_prefix** (ipv6_prefix) - The IPv6 prefix for the scope. * **dhcpscope6_id** (int) - Identifier for the DHCPv6 scope. * **dhcpscope6_name** (string, max length: 255) - Name of the DHCPv6 scope. * **dhcpfailover6_id** (int, default: 0) - Identifier for the DHCPv6 failover configuration. * **dhcpfailover6_name** (string, max length: 255) - Name of the DHCPv6 failover configuration. * **dhcpscope6_site_id** (int, default: 0) - Identifier for the site associated with the DHCPv6 scope. * **dhcpscope6_site_name** (string, max length: 128) - Name of the site associated with the DHCPv6 scope. * **dhcpscope6_class_name** (string, max length: 128, optional, default: '') - Name of the class for the DHCPv6 scope. * **dhcpscope6_class_parameters** (string, optional, default: '') - Parameters for the DHCPv6 scope class. * **add_flag** (enum, default: new_edit) - Flag to control the update behavior. Possible values: new_edit, new_only, edit_only. * **class_parameters_to_delete** (string, optional) - Class parameters to be deleted. * **dhcpscope6_class_parameters_properties** (string, optional) - Properties for the DHCPv6 scope class parameters. * **apply_write_data_add_update** (bool, default: 1) - Whether to apply write data for add/update operations. * **validate_warnings** (enum) - Enum to validate warnings. Possible values: accept. ### Returned Values * **ret_oid** - The object ID of the updated scope. * **errno** - Error number. * **errmsg** - Error message. * **msg** - Success message. * **severity** - Severity level of the operation. * **parameters** - List of parameters. * **param_format** - Format of the parameters. * **param_value** - Value of the parameters. * **ret_code** - Return code of the operation. ``` -------------------------------- ### Create New Space Source: https://gitlab.com/efficientip/solidserverrest/-/blob/master/SOLIDserverRest/adv/README.md Creates a new space in SOLIDserver with a unique name. Logs the details of the created space. ```python space_name = 'ex_'+str(uuid.uuid4()) space = sdsadv.Space(sds=sds, name=space_name) space.create() logging.info(space) ```