package cloudconfig

type ClusterComponentVersion struct {
	ClusterType       ClusterType `json:"cluster_type"`
	ClusterID         string      `json:"cluster_id"`
	ComponentName     string      `json:"component_name"`
	Version           string      `json:"version"`
	CloudProvider     string      `json:"cloud_provider"`
	NodeInstance      string      `json:"node_instance"`
	OverwriteImageTag string      `json:"overwrite_image_tag"`
	BaseImage         string      `json:"base_image"`
	EffectiveImageTag string      `json:"effective_image_tag"`
	UpdateStrategy    string      `json:"update_strategy"`
	LogicalRegion     string      `json:"logical_region,omitempty"`
}

type ClusterComponentSearchRegionResult struct {
	LogicalRegion string                     `json:"logical_region"`
	ClusterType   ClusterType                `json:"cluster_type"`
	Total         int64                      `json:"total"`
	HasMore       bool                       `json:"has_more"`
	Items         []*ClusterComponentVersion `json:"items"`
	Error         string                     `json:"error,omitempty"`
}

type ClusterComponentSearchResult struct {
	Total          int64                                 `json:"total"`
	Items          []*ClusterComponentVersion            `json:"items"`
	RegionResults  []*ClusterComponentSearchRegionResult `json:"region_results,omitempty"`
	PartialFailure bool                                  `json:"partial_failure"`
}
