github.com/DaAlbrecht/cf-cli@v0.0.0-20231128151943-1fe19bb400b9/cf/configuration/coreconfig/config_data.go (about)

     1  package coreconfig
     2  
     3  import (
     4  	"encoding/json"
     5  
     6  	"code.cloudfoundry.org/cli/cf/models"
     7  	"code.cloudfoundry.org/cli/util/configv3"
     8  )
     9  
    10  type AuthPromptType string
    11  
    12  const (
    13  	AuthPromptTypeText     AuthPromptType = "TEXT"
    14  	AuthPromptTypePassword AuthPromptType = "PASSWORD"
    15  	AuthPromptTypeMenu     AuthPromptType = "MENU"
    16  )
    17  
    18  type AuthPrompt struct {
    19  	Type        AuthPromptType
    20  	DisplayName string
    21  	Entries     []string
    22  }
    23  
    24  type Data struct {
    25  	AccessToken              string
    26  	APIVersion               string
    27  	AsyncTimeout             uint
    28  	AuthorizationEndpoint    string
    29  	ColorEnabled             string
    30  	ConfigVersion            int
    31  	DopplerEndPoint          string
    32  	Locale                   string
    33  	LogCacheEndPoint         string
    34  	MinCLIVersion            string
    35  	MinRecommendedCLIVersion string
    36  	OrganizationFields       models.OrganizationFields
    37  	PluginRepos              []models.PluginRepo
    38  	RefreshToken             string
    39  	RoutingAPIEndpoint       string
    40  	SpaceFields              models.SpaceFields
    41  	SSHOAuthClient           string
    42  	SSLDisabled              bool
    43  	Target                   string
    44  	Trace                    string
    45  	UaaEndpoint              string
    46  	UAAGrantType             string
    47  	UAAOAuthClient           string
    48  	UAAOAuthClientSecret     string
    49  }
    50  
    51  func NewData() *Data {
    52  	data := new(Data)
    53  
    54  	data.UAAOAuthClient = "cf"
    55  	data.UAAOAuthClientSecret = ""
    56  
    57  	return data
    58  }
    59  
    60  func (d *Data) JSONMarshalV3() ([]byte, error) {
    61  	d.ConfigVersion = configv3.CurrentConfigVersion
    62  	return json.MarshalIndent(d, "", "  ")
    63  }
    64  
    65  func (d *Data) JSONUnmarshalV3(input []byte) error {
    66  	err := json.Unmarshal(input, d)
    67  	if err != nil {
    68  		return err
    69  	}
    70  
    71  	if d.ConfigVersion != configv3.CurrentConfigVersion {
    72  		*d = Data{}
    73  		return nil
    74  	}
    75  
    76  	return nil
    77  }