package requests import "time" // ListNodesRequest struct to filter nodes based on given parameters type ListNodesRequest struct { // Name of the node to filter by partial matching. Ignored if NameExact is provided. // Required: false Name string `url:"name,omitempty" json:"name,omitempty"` // Exact name of the node to filter. // Required: false NameExact string `url:"name_exact,omitempty" json:"name_exact,omitempty"` // Cluster ID where the node is attached. // Required: false ClusterID int `url:"cluster_id,omitempty" json:"cluster_id,omitempty"` // VStorage cluster ID where the node is attached. // Required: false VStorageClusterID int `url:"vstorage_cluster_id,omitempty" json:"vstorage_cluster_id,omitempty"` // Include nodes that do not belong to any cluster or VStorage cluster. // Required: false AddWithoutCluster bool `url:"add_without_cluster,omitempty" json:"add_without_cluster,omitempty"` // Online status filter (multiple choices). // Required: false Status []string `url:"status,omitempty" json:"status,omitempty"` // Maintenance status filter (multiple choices). // Required: false MaintenanceStatus []string `url:"maintenance_status,omitempty" json:"maintenance_status,omitempty" validate:"omitempty,maintenance_status"` // Agent update status filter (multiple choices). // Required: false AgentUpdateStatus []string `url:"agent_update_status,omitempty" json:"agent_update_status,omitempty" validate:"omitempty,agent_update_status"` // Name of the node’s cluster. // Required: false ClusterName string `url:"cluster_name,omitempty" json:"cluster_name,omitempty"` // Text to search within the nodes. // Required: false FilterText string `url:"filter_text,omitempty" json:"filter_text,omitempty"` // Columns to be used for filtering based on FilterText. // Required: false FilterColumns string `url:"filter_columns,omitempty" json:"filter_columns,omitempty"` // OS type filter for the node. // Required: false OS string `url:"os,omitempty" json:"os,omitempty"` // HA status filter (multiple choices). // Required: false HAStatus []string `url:"ha_status,omitempty" json:"ha_status,omitempty" validate:"omitempty,ha_multi_status"` // HA status in Fenix cluster filter (multiple choices). // Required: false NodeStatusInHACluster []string `url:"node_status_in_ha_cluster,omitempty" json:"node_status_in_ha_cluster,omitempty" validate:"omitempty,node_status_in_ha_cluster"` // Filter by IP address. // Required: false IPAddress string `url:"ip_address,omitempty" json:"ip_address,omitempty"` // Filter by node architecture. // Required: false Arch string `url:"arch,omitempty" json:"arch,omitempty"` // Filter entities created before this date. // Required: false CreatedBefore time.Time `url:"created_before,omitempty" json:"created_before,omitempty"` // Filter entities created after this date. // Required: false CreatedAfter time.Time `url:"created_after,omitempty" json:"created_after,omitempty"` // Include node’s current metrics in the response. // Required: false WithMetrics bool `url:"with_metrics,omitempty" json:"with_metrics,omitempty"` // Include current resource scheduler metrics info. // Required: false WithResourceMetrics bool `url:"with_resource_metrics,omitempty" json:"with_resource_metrics,omitempty"` // Include external resource’s nodes. // Required: false IncludeExternal bool `url:"include_external,omitempty" json:"include_external,omitempty"` // Include nodes with enabled traffic shaping. // Required: false TrafficShaping bool `url:"traffic_shaping,omitempty" json:"traffic_shaping,omitempty"` // List of node IDs to exclude from the listing. // Required: false ExcludeIDs []int `url:"exclude_ids,omitempty" json:"exclude_ids,omitempty"` // Column sorting order. // Required: false Sort []string `url:"sort,omitempty" json:"sort,omitempty"` // Visibility options: "visible" (default), "deleted", or "all". // Required: false Visibility string `url:"visibility,omitempty" json:"visibility,omitempty" validate:"omitempty,visibility"` // Number of the page to return. // Required: false Page int `url:"page,omitempty" json:"page,omitempty"` // Number of items to return per page. // Required: false Limit int `url:"limit,omitempty" json:"limit,omitempty"` // Show SDK license information. // Required: false WithLicense bool `url:"with_license,omitempty" json:"with_license,omitempty"` // Storage status filter. // Required: false StorageStatus string `url:"storage_status,omitempty" json:"storage_status,omitempty"` // List of virtual network IDs to filter nodes by. // Required: false VirtualNetworkIDs []int `url:"virtual_network_ids,omitempty" json:"virtual_network_ids,omitempty"` // List of external storage IDs to filter nodes by. Only READY storages are included. // Required: false ExternalStorageIDs []int `url:"external_storage_ids,omitempty" json:"external_storage_ids,omitempty"` }