// Code generated by "make api"; DO NOT EDIT. package hosts import ( "encoding/json" "strings" "time" "github.com/fatih/structs" "github.com/hashicorp/watchtower/api" "github.com/hashicorp/watchtower/api/info" "github.com/hashicorp/watchtower/api/internal/strutil" ) type HostSet struct { Client *api.Client `json:"-"` defaultFields []string // The ID of the host // Output only. Id string `json:"id,omitempty"` // Scope information for this resource // Output only. Scope info.Scope `json:"scope,omitempty"` // The type of the resource, to help differentiate schemas Type *string `json:"type,omitempty"` // Optional name for identification purposes Name *string `json:"name,omitempty"` // Optional user-set description for identification purposes Description *string `json:"description,omitempty"` // The time this resource was created // Output only. CreatedTime time.Time `json:"created_time,omitempty"` // The time this resource was last updated // Output only. UpdatedTime time.Time `json:"updated_time,omitempty"` // Whether the host set is disabled Disabled *bool `json:"disabled,omitempty"` // The total count of hosts in this host set // Output only. Size *int64 `json:"size,omitempty"` // A list of hosts in this host set // TODO: Figure out if this should be in the basic HostSet view and what // view to use on the Hosts. // Output only. Hosts []*Host `json:"hosts,omitempty"` } func (s *HostSet) SetDefault(key string) { lowerKey := strings.ToLower(key) validMap := map[string]string{"createdtime": "created_time", "description": "description", "disabled": "disabled", "hosts": "hosts", "id": "id", "name": "name", "scope": "scope", "size": "size", "type": "type", "updatedtime": "updated_time"} for k, v := range validMap { if k == lowerKey || v == lowerKey { s.defaultFields = strutil.AppendIfMissing(s.defaultFields, v) return } } } func (s *HostSet) UnsetDefault(key string) { lowerKey := strings.ToLower(key) validMap := map[string]string{"createdtime": "created_time", "description": "description", "disabled": "disabled", "hosts": "hosts", "id": "id", "name": "name", "scope": "scope", "size": "size", "type": "type", "updatedtime": "updated_time"} for k, v := range validMap { if k == lowerKey || v == lowerKey { s.defaultFields = strutil.StrListDelete(s.defaultFields, v) return } } } func (s HostSet) MarshalJSON() ([]byte, error) { m := structs.Map(s) if m == nil { m = make(map[string]interface{}) } for _, k := range s.defaultFields { m[k] = nil } return json.Marshal(m) }