Source code for hpeOneView.oneview_client

# -*- coding: utf-8 -*-
###
# (C) Copyright [2021] Hewlett Packard Enterprise Development LP
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
###
"""
This module implements a common client for HPE OneView REST API.
"""
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals

from future import standard_library


standard_library.install_aliases()

import json
import os

from hpeOneView.connection import connection
from hpeOneView.resources.security.certificate_authority import CertificateAuthority
from hpeOneView.resources.servers.connections import Connections
from hpeOneView.resources.networking.fc_networks import FcNetworks
from hpeOneView.resources.networking.fcoe_networks import FcoeNetworks
from hpeOneView.resources.networking.ethernet_networks import EthernetNetworks
from hpeOneView.resources.networking.connection_templates import ConnectionTemplates
from hpeOneView.resources.networking.fabrics import Fabrics
from hpeOneView.resources.networking.network_sets import NetworkSets
from hpeOneView.resources.data_services.metric_streaming import MetricStreaming
from hpeOneView.resources.networking.switches import Switches
from hpeOneView.resources.networking.switch_types import SwitchTypes
from hpeOneView.resources.activity.tasks import Tasks
from hpeOneView.resources.settings.restores import Restores
from hpeOneView.resources.settings.scopes import Scopes
from hpeOneView.resources.settings.licenses import Licenses
from hpeOneView.resources.servers.enclosures import Enclosures
from hpeOneView.resources.servers.logical_enclosures import LogicalEnclosures
from hpeOneView.resources.servers.enclosure_groups import EnclosureGroups
from hpeOneView.resources.servers.server_hardware import ServerHardware
from hpeOneView.resources.servers.server_hardware_types import ServerHardwareTypes
from hpeOneView.resources.servers.rack_manager import RackManager
from hpeOneView.resources.servers.id_pools_ranges import IdPoolsRanges
from hpeOneView.resources.servers.id_pools_ipv4_ranges import IdPoolsIpv4Ranges
from hpeOneView.resources.servers.id_pools_ipv4_subnets import IdPoolsIpv4Subnets
from hpeOneView.resources.servers.id_pools import IdPools
from hpeOneView.resources.networking.interconnects import Interconnects
from hpeOneView.resources.networking.interconnect_types import InterconnectTypes
from hpeOneView.resources.networking.interconnect_link_topologies import InterconnectLinkTopologies
from hpeOneView.resources.networking.sas_interconnect_types import SasInterconnectTypes
from hpeOneView.resources.networking.internal_link_sets import InternalLinkSets
from hpeOneView.resources.uncategorized.unmanaged_devices import UnmanagedDevices
from hpeOneView.resources.networking.logical_downlinks import LogicalDownlinks
from hpeOneView.resources.facilities.power_devices import PowerDevices
from hpeOneView.resources.facilities.racks import Racks
from hpeOneView.resources.facilities.datacenters import Datacenters
from hpeOneView.resources.fc_sans.managed_sans import ManagedSANs
from hpeOneView.resources.fc_sans.san_managers import SanManagers
from hpeOneView.resources.fc_sans.san_providers import SanProviders
from hpeOneView.resources.fc_sans.endpoints import Endpoints
from hpeOneView.resources.networking.logical_interconnects import LogicalInterconnects
from hpeOneView.resources.networking.logical_interconnect_groups import LogicalInterconnectGroups
from hpeOneView.resources.networking.sas_logical_interconnects import SasLogicalInterconnects
from hpeOneView.resources.networking.logical_switch_groups import LogicalSwitchGroups
from hpeOneView.resources.networking.logical_switches import LogicalSwitches
from hpeOneView.resources.networking.sas_interconnects import SasInterconnects
from hpeOneView.resources.servers.server_profiles import ServerProfiles
from hpeOneView.resources.servers.server_profile_templates import ServerProfileTemplate
from hpeOneView.resources.storage.sas_logical_jbods import SasLogicalJbods
from hpeOneView.resources.storage.storage_systems import StorageSystems
from hpeOneView.resources.storage.storage_pools import StoragePools
from hpeOneView.resources.storage.storage_volume_templates import StorageVolumeTemplates
from hpeOneView.resources.storage.storage_volume_attachments import StorageVolumeAttachments
from hpeOneView.resources.storage.drive_enclosures import DriveEnclosures
from hpeOneView.resources.settings.firmware_drivers import FirmwareDrivers
from hpeOneView.resources.settings.firmware_bundles import FirmwareBundles
from hpeOneView.resources.settings.backups import Backups
from hpeOneView.resources.settings.repositories import Repositories
from hpeOneView.resources.storage.volumes import Volumes
from hpeOneView.resources.storage.sas_logical_jbod_attachments import SasLogicalJbodAttachments
from hpeOneView.resources.networking.uplink_sets import UplinkSets
from hpeOneView.resources.servers.migratable_vc_domains import MigratableVcDomains
from hpeOneView.resources.networking.sas_logical_interconnect_groups import SasLogicalInterconnectGroups
from hpeOneView.resources.search.index_resources import IndexResources
from hpeOneView.resources.search.labels import Labels
from hpeOneView.resources.activity.alerts import Alerts
from hpeOneView.resources.activity.events import Events
from hpeOneView.resources.security.certificate_rabbitmq import CertificateRabbitMQ
from hpeOneView.resources.security.login_details import LoginDetails
from hpeOneView.resources.security.roles import Roles
from hpeOneView.resources.security.users import Users
from hpeOneView.resources.settings.appliance_device_read_community import ApplianceDeviceReadCommunity
from hpeOneView.resources.settings.appliance_device_snmp_v1_trap_destinations import ApplianceDeviceSNMPv1TrapDestinations
from hpeOneView.resources.settings.appliance_device_snmp_v3_trap_destinations import ApplianceDeviceSNMPv3TrapDestinations
from hpeOneView.resources.settings.appliance_device_snmp_v3_users import ApplianceDeviceSNMPv3Users
from hpeOneView.resources.settings.appliance_node_information import ApplianceNodeInformation
from hpeOneView.resources.settings.appliance_health_status import ApplianceHealthStatus
from hpeOneView.resources.settings.appliance_proxy_configuration import ApplianceProxyConfiguration
from hpeOneView.resources.settings.appliance_network_interfaces import ApplianceNetworkInterfaces
from hpeOneView.resources.settings.ha_nodes import HANodes
from hpeOneView.resources.settings.appliance_time_and_locale_configuration import ApplianceTimeAndLocaleConfiguration
from hpeOneView.resources.settings.versions import Versions
from hpeOneView.resources.hypervisors.hypervisor_managers import HypervisorManagers
from hpeOneView.resources.security.certificates_server import CertificatesServer
from hpeOneView.resources.hypervisors.hypervisor_cluster_profiles import HypervisorClusterProfiles
from hpeOneView.resources.settings.appliance_configuration_timeconfig import ApplianceConfigurationTimeconfig
from hpeOneView.resources.settings.appliance_ssh_access import ApplianceSshAccess

ONEVIEW_CLIENT_MISSING_IP = 'Oneview ip address is missing'


[docs]class OneViewClient(object): def __init__(self, config, sessionID=None): self.__connection = connection(config.get('ip'), config.get('api_version'), config.get('ssl_certificate', False), config.get('timeout'), config.get("proxy")) self.__validate_host() self.__connection.login(config["credentials"], sessionID=sessionID) self.__certificate_authority = None self.__connections = None self.__connection_templates = None self.__fc_networks = None self.__repositories = None self.__fcoe_networks = None self.__ethernet_networks = None self.__fabrics = None self.__network_sets = None self.__switches = None self.__switch_types = None self.__tasks = None self.__scopes = None self.__enclosures = None self.__logical_enclosures = None self.__enclosure_groups = None self.__metric_streaming = None self.__server_hardware = None self.__server_hardware_types = None self.__rack_managers = None self.__id_pools_vsn_ranges = None self.__id_pools_vmac_ranges = None self.__id_pools_vwwn_ranges = None self.__id_pools_ipv4_ranges = None self.__id_pools_ipv4_subnets = None self.__id_pools = None self.__interconnects = None self.__interconnect_types = None self.__interconnect_link_topologies = None self.__sas_interconnect_types = None self.__internal_link_sets = None self.__power_devices = None self.__unmanaged_devices = None self.__racks = None self.__roles = None self.__datacenters = None self.__san_managers = None self.__san_providers = None self.__endpoints = None self.__logical_interconnects = None self.__sas_logical_interconnects = None self.__logical_interconnect_groups = None self.__logical_switch_groups = None self.__logical_switches = None self.__logical_downlinks = None self.__restores = None self.__server_profiles = None self.__server_profile_templates = None self.__sas_logical_jbods = None self.__storage_systems = None self.__storage_pools = None self.__storage_volume_templates = None self.__storage_volume_attachments = None self.__firmware_drivers = None self.__firmware_bundles = None self.__uplink_sets = None self.__volumes = None self.__sas_logical_jbod_attachments = None self.__managed_sans = None self.__migratable_vc_domains = None self.__sas_interconnects = None self.__index_resources = None self.__labels = None self.__sas_logical_interconnect_groups = None self.__alerts = None self.__events = None self.__drive_enclures = None self.__certificate_rabbitmq = None self.__users = None self.__appliance_device_read_community = None self.__appliance_device_snmp_v1_trap_destinations = None self.__appliance_device_snmp_v3_trap_destinations = None self.__appliance_device_snmp_v3_users = None self.__appliance_time_and_locale_configuration = None self.__appliance_node_information = None self.__appliance_health_status = None self.__appliance_proxy_configuration = None self.__appliance_network_interfaces = None self.__versions = None self.__backups = None self.__login_details = None self.__licenses = None self.__hypervisor_managers = None self.__certificates_server = None self.__appliance_configuration_timeconfig = None self.__appliance_ssh_access = None self.__ha_nodes = None
[docs] @classmethod def from_json_file(cls, file_name, sessionID=None): """ Construct OneViewClient using a json file. Args: file_name: json full path. Returns: OneViewClient: """ with open(file_name) as json_data: config = json.load(json_data) if sessionID is not None: return cls(config, sessionID=sessionID) else: return cls(config)
[docs] @classmethod def from_environment_variables(cls, session_id=None): """ Construct OneViewClient using environment variables. Allowed variables: ONEVIEWSDK_IP (required), ONEVIEWSDK_USERNAME (required), ONEVIEWSDK_PASSWORD (required), ONEVIEWSDK_AUTH_LOGIN_DOMAIN, ONEVIEWSDK_API_VERSION, ONEVIEWSDK_SESSIONID, ONEVIEWSDK_SSL_CERTIFICATE, ONEVIEWSDK_CONNECTION_TIMEOUT and ONEVIEWSDK_PROXY. Returns: OneViewClient: """ ip = os.environ.get('ONEVIEWSDK_IP', '') api_version = os.environ.get('ONEVIEWSDK_API_VERSION', '') ssl_certificate = os.environ.get('ONEVIEWSDK_SSL_CERTIFICATE', '') username = os.environ.get('ONEVIEWSDK_USERNAME', '') auth_login_domain = os.environ.get('ONEVIEWSDK_AUTH_LOGIN_DOMAIN', '') password = os.environ.get('ONEVIEWSDK_PASSWORD', '') proxy = os.environ.get('ONEVIEWSDK_PROXY', '') sessionID = os.environ.get('ONEVIEWSDK_SESSIONID', '') timeout = os.environ.get('ONEVIEWSDK_CONNECTION_TIMEOUT') config = dict(ip=ip, api_version=api_version, ssl_certificate=ssl_certificate, credentials=dict(userName=username, authLoginDomain=auth_login_domain, password=password, sessionID=sessionID), proxy=proxy, timeout=timeout) if session_id is not None: return cls(config, sessionID=session_id) else: return cls(config)
def __validate_host(self): """ Fails if oneview ip is not provided """ if not self.__connection._host: raise ValueError(ONEVIEW_CLIENT_MISSING_IP) @property def api_version(self): """ Gets the OneView API Version. Returns: int: API Version. """ return self.__connection._apiVersion @property def connection(self): """ Gets the underlying HPE OneView connection used by the OneViewClient. Returns: connection: """ return self.__connection @property def certificate_authority(self): """ Gets the Certificate Authority API client. Returns: CertificateAuthority: """ return CertificateAuthority(self.__connection) @property def connections(self): """ Gets the Connections API client. Returns: Connections: """ if not self.__connections: self.__connections = Connections( self.__connection) return self.__connections @property def connection_templates(self): """ Gets the ConnectionTemplates API client. Returns: ConnectionTemplates: """ return ConnectionTemplates(self.__connection) @property def fc_networks(self): """ Gets the FcNetworks API client. Returns: FcNetworks: """ return FcNetworks(self.__connection) @property def fcoe_networks(self): """ Gets the FcoeNetworks API client. Returns: FcoeNetworks: """ return FcoeNetworks(self.__connection) @property def ethernet_networks(self): """ Gets the EthernetNetworks API client. Returns: EthernetNetworks: """ return EthernetNetworks(self.__connection) @property def fabrics(self): """ Gets the Fabrics API client. Returns: Fabrics: """ if not self.__fabrics: self.__fabrics = Fabrics(self.__connection) return self.__fabrics @property def restores(self): """ Gets the Restores API client. Returns: Restores: """ return Restores(self.__connection) @property def scopes(self): """ Gets the Scopes API client. Returns: Scopes: """ return Scopes(self.__connection) @property def datacenters(self): """ Gets the Datacenters API client. Returns: Datacenters: """ if not self.__datacenters: self.__datacenters = Datacenters(self.__connection) return self.__datacenters @property def network_sets(self): """ Gets the NetworkSets API client. Returns: NetworkSets: """ return NetworkSets(self.__connection) @property def server_hardware(self): """ Gets the ServerHardware API client. Returns: ServerHardware: """ return ServerHardware(self.__connection) @property def server_hardware_types(self): """ Gets the ServerHardwareTypes API client. Returns: ServerHardwareTypes: """ return ServerHardwareTypes(self.__connection) @property def rack_managers(self): """ Gets the Rack Manager API client. Returns: RackManager: """ return RackManager(self.__connection) @property def id_pools_vsn_ranges(self): """ Gets the IdPoolsRanges API Client for VSN Ranges. Returns: IdPoolsRanges: """ if not self.__id_pools_vsn_ranges: self.__id_pools_vsn_ranges = IdPoolsRanges('vsn', self.__connection) return self.__id_pools_vsn_ranges @property def id_pools_vmac_ranges(self): """ Gets the IdPoolsRanges API Client for VMAC Ranges. Returns: IdPoolsRanges: """ if not self.__id_pools_vmac_ranges: self.__id_pools_vmac_ranges = IdPoolsRanges('vmac', self.__connection) return self.__id_pools_vmac_ranges @property def id_pools_vwwn_ranges(self): """ Gets the IdPoolsRanges API Client for VWWN Ranges. Returns: IdPoolsRanges: """ if not self.__id_pools_vwwn_ranges: self.__id_pools_vwwn_ranges = IdPoolsRanges('vwwn', self.__connection) return self.__id_pools_vwwn_ranges @property def id_pools_ipv4_ranges(self): """ Gets the IdPoolsIpv4Ranges API client. Returns: IdPoolsIpv4Ranges: """ return IdPoolsIpv4Ranges(self.__connection) @property def id_pools_ipv4_subnets(self): """ Gets the IdPoolsIpv4Subnets API client. Returns: IdPoolsIpv4Subnets: """ return IdPoolsIpv4Subnets(self.__connection) @property def id_pools(self): """ Gets the IdPools API client. Returns: IdPools: """ return IdPools(self.__connection) @property def switches(self): """ Gets the Switches API client. Returns: Switches: """ if not self.__switches: self.__switches = Switches(self.__connection) return self.__switches @property def roles(self): """ Gets the Roles API client. Returns: Roles: """ if not self.__roles: self.__roles = Roles(self.__connection) return self.__roles @property def switch_types(self): """ Gets the SwitchTypes API client. Returns: SwitchTypes: """ return SwitchTypes(self.__connection) @property def logical_switch_groups(self): """ Gets the LogicalSwitchGroups API client. Returns: LogicalSwitchGroups: """ return LogicalSwitchGroups(self.__connection) @property def logical_switches(self): """ Gets the LogicalSwitches API client. Returns: LogicalSwitches: """ if not self.__logical_switches: self.__logical_switches = LogicalSwitches(self.__connection) return self.__logical_switches @property def tasks(self): """ Gets the Tasks API client. Returns: Tasks: """ if not self.__tasks: self.__tasks = Tasks(self.__connection) return self.__tasks @property def enclosure_groups(self): """ Gets the EnclosureGroups API client. Returns: EnclosureGroups: """ return EnclosureGroups(self.__connection) @property def enclosures(self): """ Gets the Enclosures API client. Returns: Enclosures: """ return Enclosures(self.__connection) @property def logical_enclosures(self): """ Gets the LogicalEnclosures API client. Returns: LogicalEnclosures: """ return LogicalEnclosures(self.__connection) @property def metric_streaming(self): """ Gets the MetricStreaming API client. Returns: MetricStreaming: """ if not self.__metric_streaming: self.__metric_streaming = MetricStreaming(self.__connection) return self.__metric_streaming @property def interconnects(self): """ Gets the Interconnects API client. Returns: Interconnects: """ return Interconnects(self.__connection) @property def interconnect_types(self): """ Gets the InterconnectTypes API client. Returns: InterconnectTypes: """ return InterconnectTypes(self.__connection) @property def interconnect_link_topologies(self): """ Gets the InterconnectLinkTopologies API client. Returns: InterconnectLinkTopologies: """ if not self.__interconnect_link_topologies: self.__interconnect_link_topologies = InterconnectLinkTopologies(self.__connection) return self.__interconnect_link_topologies @property def sas_interconnect_types(self): """ Gets the SasInterconnectTypes API client. Returns: SasInterconnectTypes: """ return SasInterconnectTypes(self.__connection) @property def internal_link_sets(self): """ Gets the InternalLinkSets API client. Returns: InternalLinkSets: """ return InternalLinkSets(self.__connection) @property def logical_interconnect_groups(self): """ Gets the LogicalInterconnectGroups API client. Returns: LogicalInterconnectGroups: """ return LogicalInterconnectGroups(self.__connection) @property def logical_interconnects(self): """ Gets the LogicalInterconnects API client. Returns: LogicalInterconnects: """ return LogicalInterconnects(self.__connection) @property def sas_logical_interconnects(self): """ Gets the SasLogicalInterconnects API client. Returns: SasLogicalInterconnects: """ return SasLogicalInterconnects(self.__connection) @property def logical_downlinks(self): """ Gets the LogicalDownlinks API client. Returns: LogicalDownlinks: """ if not self.__logical_downlinks: self.__logical_downlinks = LogicalDownlinks( self.__connection) return self.__logical_downlinks @property def power_devices(self): """ Gets the PowerDevices API client. Returns: PowerDevices: """ if not self.__power_devices: self.__power_devices = PowerDevices(self.__connection) return self.__power_devices @property def unmanaged_devices(self): """ Gets the Unmanaged Devices API client. Returns: UnmanagedDevices: """ if not self.__unmanaged_devices: self.__unmanaged_devices = UnmanagedDevices(self.__connection) return self.__unmanaged_devices @property def racks(self): """ Gets the Racks API client. Returns: Racks: """ if not self.__racks: self.__racks = Racks(self.__connection) return self.__racks @property def san_managers(self): """ Gets the Repositories API client. Returns: Repositories: """ return SanManagers(self.__connection) @property def endpoints(self): """ Gets the Endpoints API client. Returns: Endpoints: """ if not self.__endpoints: self.__endpoints = Endpoints(self.__connection) return self.__endpoints @property def server_profiles(self): """ Gets the ServerProfiles API client. Returns: ServerProfiles: """ return ServerProfiles(self.__connection) @property def server_profile_templates(self): """ Gets the ServerProfileTemplate API client. Returns: ServerProfileTemplate: """ return ServerProfileTemplate(self.__connection) @property def storage_systems(self): """ Gets the StorageSystems API client. Returns: StorageSystems: """ return StorageSystems(self.__connection) @property def storage_pools(self): """ Gets the StoragePools API client. Returns: StoragePools: """ return StoragePools(self.__connection) @property def storage_volume_templates(self): """ Gets the StorageVolumeTemplates API client. Returns: StorageVolumeTemplates: """ return StorageVolumeTemplates(self.__connection) @property def storage_volume_attachments(self): """ Gets the StorageVolumeAttachments API client. Returns: StorageVolumeAttachments: """ return StorageVolumeAttachments(self.__connection) @property def firmware_drivers(self): """ Gets the FirmwareDrivers API client. Returns: FirmwareDrivers: """ return FirmwareDrivers(self.__connection) @property def firmware_bundles(self): """ Gets the FirmwareBundles API client. Returns: FirmwareBundles: """ return FirmwareBundles(self.__connection) @property def uplink_sets(self): """ Gets the UplinkSets API client. Returns: UplinkSets: """ return UplinkSets(self.__connection) @property def volumes(self): """ Gets the Volumes API client. Returns: Volumes: """ return Volumes(self.__connection) @property def sas_logical_jbod_attachments(self): """ Gets the SAS Logical JBOD Attachments client. Returns: SasLogicalJbodAttachments: """ if not self.__sas_logical_jbod_attachments: self.__sas_logical_jbod_attachments = SasLogicalJbodAttachments(self.__connection) return self.__sas_logical_jbod_attachments @property def managed_sans(self): """ Gets the Managed SANs API client. Returns: ManagedSANs: """ return ManagedSANs(self.__connection) @property def migratable_vc_domains(self): """ Gets the VC Migration Manager API client. Returns: MigratableVcDomains: """ if not self.__migratable_vc_domains: self.__migratable_vc_domains = MigratableVcDomains(self.__connection) return self.__migratable_vc_domains @property def sas_interconnects(self): """ Gets the SAS Interconnects API client. Returns: SasInterconnects: """ return SasInterconnects(self.__connection) @property def sas_logical_interconnect_groups(self): """ Gets the SasLogicalInterconnectGroups API client. Returns: SasLogicalInterconnectGroups: """ return SasLogicalInterconnectGroups(self.__connection) @property def drive_enclosures(self): """ Gets the Drive Enclosures API client. Returns: DriveEnclosures: """ if not self.__drive_enclures: self.__drive_enclures = DriveEnclosures(self.__connection) return self.__drive_enclures @property def sas_logical_jbods(self): """ Gets the SAS Logical JBODs API client. Returns: SasLogicalJbod: """ if not self.__sas_logical_jbods: self.__sas_logical_jbods = SasLogicalJbods(self.__connection) return self.__sas_logical_jbods @property def labels(self): """ Gets the Labels API client. Returns: Labels: """ return Labels(self.__connection) @property def index_resources(self): """ Gets the Index Resources API client. Returns: IndexResources: """ return IndexResources(self.__connection) @property def alerts(self): """ Gets the Alerts API client. Returns: Alerts: """ if not self.__alerts: self.__alerts = Alerts(self.__connection) return self.__alerts @property def events(self): """ Gets the Events API client. Returns: Events: """ if not self.__events: self.__events = Events(self.__connection) return self.__events @property def certificate_rabbitmq(self): """ Gets the Certificate RabbitMQ API client. Returns: CertificateRabbitMQ: """ if not self.__certificate_rabbitmq: self.__certificate_rabbitmq = CertificateRabbitMQ(self.__connection) return self.__certificate_rabbitmq @property def users(self): """ Gets the Users API client. Returns: Users: """ return Users(self.__connection) @property def appliance_device_read_community(self): """ Gets the ApplianceDeviceReadCommunity API client. Returns: ApplianceDeviceReadCommunity: """ if not self.__appliance_device_read_community: self.__appliance_device_read_community = ApplianceDeviceReadCommunity(self.__connection) return self.__appliance_device_read_community @property def appliance_device_snmp_v1_trap_destinations(self): """ Gets the ApplianceDeviceSNMPv1TrapDestinations API client. Returns: ApplianceDeviceSNMPv1TrapDestinations: """ return ApplianceDeviceSNMPv1TrapDestinations(self.__connection) @property def appliance_device_snmp_v3_trap_destinations(self): """ Gets the ApplianceDeviceSNMPv3TrapDestinations API client. Returns: ApplianceDeviceSNMPv3TrapDestinations: """ return ApplianceDeviceSNMPv3TrapDestinations(self.__connection) @property def appliance_device_snmp_v3_users(self): """ Gets the ApplianceDeviceSNMPv3Users API client. Returns: ApplianceDeviceSNMPv3Users: """ return ApplianceDeviceSNMPv3Users(self.__connection) @property def appliance_node_information(self): """ Gets the ApplianceNodeInformation API client. Returns: ApplianceNodeInformation: """ return ApplianceNodeInformation(self.__connection) @property def appliance_health_status(self): """ Gets the ApplianceHealthStatus API client. Returns: ApplianceHealthStatus: """ return ApplianceHealthStatus(self.__connection) @property def appliance_proxy_configuration(self): """ Gets the ApplianceProxyConfiguration API client. Returns: ApplianceProxyConfiguration: """ return ApplianceProxyConfiguration(self.__connection) @property def appliance_network_interfaces(self): """ Gets the ApplianceNetworkInterfaces API client. Returns: ApplianceNetworkInterfaces: """ return ApplianceNetworkInterfaces(self.__connection) @property def ha_nodes(self): """ Gets the HANodes API client. Returns: HANodes: """ return HANodes(self.__connection) @property def appliance_time_and_locale_configuration(self): """ Gets the ApplianceTimeAndLocaleConfiguration API client. Returns: ApplianceTimeAndLocaleConfiguration: """ return ApplianceTimeAndLocaleConfiguration(self.__connection) @property def versions(self): """ Gets the Version API client. Returns: Version: """ if not self.__versions: self.__versions = Versions(self.__connection) return self.__versions @property def backups(self): """ Gets the Backup API client. Returns: Backups: """ if not self.__backups: self.__backups = Backups(self.__connection) return self.__backups @property def login_details(self): """ Gets the login details Returns: List of login details """ if not self.__login_details: self.__login_details = LoginDetails(self.__connection) return self.__login_details @property def licenses(self): """ Gets all the licenses Returns: List of licenses """ if not self.__licenses: self.__licenses = Licenses(self.__connection) return self.__licenses @property def hypervisor_managers(self): """ Gets the Hypervisor Managers API client. Returns: HypervisorManagers """ return HypervisorManagers(self.__connection) @property def certificates_server(self): """ Gets the Certificates Server API client. Returns: Server Certificate: """ return CertificatesServer(self.__connection) @property def hypervisor_cluster_profiles(self): """ Gets the Hypervisor Cluster Profiles API client. Returns: Hypervisor Cluster Profiles: """ return HypervisorClusterProfiles(self.__connection) @property def appliance_configuration_timeconfig(self): """ Gets the ApplianceConfigurationTimeconfig API client. Returns: ApplianceConfigurationTimeconfig: """ return ApplianceConfigurationTimeconfig(self.__connection) @property def appliance_ssh_access(self): """ Gets the ApplianceSshAccess API client. Returns: ApplianceSshAccess: """ return ApplianceSshAccess(self.__connection) @property def repositories(self): """ Gets the Repositories API client. Returns: Repositories: """ return Repositories(self.__connection) @property def san_providers(self): """ Gets the Repositories API client. Returns: Repositories: """ return SanProviders(self.__connection)