github.com/johnnyeven/libtools@v0.0.0-20191126065708-61829c1adf46/clients/rancher/types.go (about)

     1  package rancher
     2  
     3  type Services struct {
     4  	Type           string             `json:"type"`
     5  	ResourceType   string             `json:"resourceType"`
     6  	Links          ServicesLinks      `json:"links"`
     7  	CreateTypes    CreateTypes        `json:"createTypes"`
     8  	Actions        ServicesActions    `json:"actions"`
     9  	Data           []Datum            `json:"data"`
    10  	SortLinks      map[string]*string `json:"sortLinks"`
    11  	Pagination     Pagination         `json:"pagination"`
    12  	Sort           interface{}        `json:"sort"`
    13  	Filters        map[string]*string `json:"filters"`
    14  	CreateDefaults CreateDefaults     `json:"createDefaults"`
    15  }
    16  
    17  type ServicesActions struct {
    18  }
    19  
    20  type CreateDefaults struct {
    21  	StackID string `json:"stackId"`
    22  }
    23  
    24  type CreateTypes struct {
    25  	DNSService           string `json:"dnsService"`
    26  	ExternalService      string `json:"externalService"`
    27  	LoadBalancerService  string `json:"loadBalancerService"`
    28  	NetworkDriverService string `json:"networkDriverService"`
    29  	Service              string `json:"service"`
    30  	StorageDriverService string `json:"storageDriverService"`
    31  }
    32  
    33  type Datum struct {
    34  	ID                     string        `json:"id"`
    35  	Type                   string        `json:"type"`
    36  	Links                  DatumLinks    `json:"links"`
    37  	Actions                DatumActions  `json:"actions"`
    38  	BaseType               string        `json:"baseType"`
    39  	Name                   string        `json:"name"`
    40  	State                  string        `json:"state"`
    41  	AccountID              string        `json:"accountId"`
    42  	AssignServiceIPAddress bool          `json:"assignServiceIpAddress"`
    43  	CreateIndex            int64         `json:"createIndex"`
    44  	Created                string        `json:"created"`
    45  	CreatedTS              int64         `json:"createdTS"`
    46  	CurrentScale           int64         `json:"currentScale"`
    47  	Description            interface{}   `json:"description"`
    48  	ExternalID             interface{}   `json:"externalId"`
    49  	FQDN                   interface{}   `json:"fqdn"`
    50  	HealthState            string        `json:"healthState"`
    51  	InstanceIDS            []string      `json:"instanceIds"`
    52  	Kind                   string        `json:"kind"`
    53  	LaunchConfig           LaunchConfig  `json:"launchConfig"`
    54  	LBConfig               interface{}   `json:"lbConfig"`
    55  	LinkedServices         interface{}   `json:"linkedServices"`
    56  	Metadata               Metadata      `json:"metadata"`
    57  	PublicEndpoints        interface{}   `json:"publicEndpoints"`
    58  	Removed                interface{}   `json:"removed"`
    59  	RetainIP               interface{}   `json:"retainIp"`
    60  	Scale                  int64         `json:"scale"`
    61  	ScalePolicy            interface{}   `json:"scalePolicy"`
    62  	SecondaryLaunchConfigs []interface{} `json:"secondaryLaunchConfigs"`
    63  	SelectorContainer      interface{}   `json:"selectorContainer"`
    64  	SelectorLink           interface{}   `json:"selectorLink"`
    65  	StackID                string        `json:"stackId"`
    66  	StartOnCreate          bool          `json:"startOnCreate"`
    67  	System                 bool          `json:"system"`
    68  	Transitioning          string        `json:"transitioning"`
    69  	TransitioningMessage   interface{}   `json:"transitioningMessage"`
    70  	TransitioningProgress  interface{}   `json:"transitioningProgress"`
    71  	Upgrade                Upgrade       `json:"upgrade"`
    72  	UUID                   string        `json:"uuid"`
    73  	Vip                    interface{}   `json:"vip"`
    74  }
    75  
    76  type DatumActions struct {
    77  	Upgrade           string `json:"upgrade"`
    78  	Restart           string `json:"restart"`
    79  	Update            string `json:"update"`
    80  	Remove            string `json:"remove"`
    81  	Deactivate        string `json:"deactivate"`
    82  	Removeservicelink string `json:"removeservicelink"`
    83  	Addservicelink    string `json:"addservicelink"`
    84  	Setservicelinks   string `json:"setservicelinks"`
    85  }
    86  
    87  type LaunchConfig struct {
    88  	Type                  string      `json:"type"`
    89  	DNS                   []string    `json:"dns"`
    90  	DNSSearch             []string    `json:"dnsSearch"`
    91  	Environment           Environment `json:"environment"`
    92  	ImageUUID             string      `json:"imageUuid"`
    93  	InstanceTriggeredStop string      `json:"instanceTriggeredStop"`
    94  	Kind                  string      `json:"kind"`
    95  	Labels                Labels      `json:"labels"`
    96  	LogConfig             LogConfig   `json:"logConfig"`
    97  	Memory                int64       `json:"memory"`
    98  	NetworkMode           string      `json:"networkMode"`
    99  	Privileged            bool        `json:"privileged"`
   100  	PublishAllPorts       bool        `json:"publishAllPorts"`
   101  	ReadOnly              bool        `json:"readOnly"`
   102  	RunInit               bool        `json:"runInit"`
   103  	StartOnCreate         bool        `json:"startOnCreate"`
   104  	StdinOpen             bool        `json:"stdinOpen"`
   105  	System                bool        `json:"system"`
   106  	TTY                   bool        `json:"tty"`
   107  	Version               string      `json:"version"`
   108  	Vcpu                  int64       `json:"vcpu"`
   109  	DrainTimeoutMS        int64       `json:"drainTimeoutMs"`
   110  }
   111  
   112  type Environment struct {
   113  	Goenv                    string  `json:"GOENV"`
   114  	SGeneratealgorithm       *string `json:"S_GENERATEALGORITHM,omitempty"`
   115  	SLogLevel                string  `json:"S_LOG_LEVEL"`
   116  	SSnowflakeconfigEpoch    *string `json:"S_SNOWFLAKECONFIG_EPOCH,omitempty"`
   117  	SSnowflakeconfigNodebits *string `json:"S_SNOWFLAKECONFIG_NODEBITS,omitempty"`
   118  	SSnowflakeconfigStepbits *string `json:"S_SNOWFLAKECONFIG_STEPBITS,omitempty"`
   119  	SClientidHost            *string `json:"S_CLIENTID_HOST,omitempty"`
   120  	SMasterdbPassword        *string `json:"S_MASTERDB_PASSWORD,omitempty"`
   121  	SMasterdbUser            *string `json:"S_MASTERDB_USER,omitempty"`
   122  	SSlavedbPassword         *string `json:"S_SLAVEDB_PASSWORD,omitempty"`
   123  	SSlavedbUser             *string `json:"S_SLAVEDB_USER,omitempty"`
   124  }
   125  
   126  type Labels struct {
   127  	BasePath                    string  `json:"base_path"`
   128  	IoRancherContainerPullImage string  `json:"io.rancher.container.pull_image"`
   129  	IoRancherContainerStartOnce string  `json:"io.rancher.container.start_once"`
   130  	IoRancherServiceHash        string  `json:"io.rancher.service.hash"`
   131  	LBG7PayExpose80             string  `json:"lb.g7pay.expose80"`
   132  	ProjectDescription          string  `json:"projects.description"`
   133  	ProjectGroup                string  `json:"projects.group"`
   134  	ProjectName                 string  `json:"projects.name"`
   135  	ProjectVersion              string  `json:"projects.version"`
   136  	Upstreams                   *string `json:"upstreams,omitempty"`
   137  }
   138  
   139  type LogConfig struct {
   140  	Type string `json:"type"`
   141  }
   142  
   143  type DatumLinks struct {
   144  	Self               string `json:"self"`
   145  	Account            string `json:"account"`
   146  	Consumedbyservices string `json:"consumedbyservices"`
   147  	Consumedservices   string `json:"consumedservices"`
   148  	Instances          string `json:"instances"`
   149  	NetworkDrivers     string `json:"networkDrivers"`
   150  	ServiceExposeMaps  string `json:"serviceExposeMaps"`
   151  	ServiceLogs        string `json:"serviceLogs"`
   152  	Stack              string `json:"stack"`
   153  	StorageDrivers     string `json:"storageDrivers"`
   154  	ContainerStats     string `json:"containerStats"`
   155  }
   156  
   157  type Metadata struct {
   158  	IoRancherServiceHash string `json:"io.rancher.service.hash"`
   159  }
   160  
   161  type Upgrade struct {
   162  	Type              string            `json:"type"`
   163  	InServiceStrategy InServiceStrategy `json:"inServiceStrategy"`
   164  	ToServiceStrategy interface{}       `json:"toServiceStrategy"`
   165  }
   166  
   167  type InServiceStrategy struct {
   168  	Type                           string        `json:"type"`
   169  	BatchSize                      int64         `json:"batchSize"`
   170  	IntervalMillis                 int64         `json:"intervalMillis"`
   171  	LaunchConfig                   LaunchConfig  `json:"launchConfig"`
   172  	PreviousLaunchConfig           LaunchConfig  `json:"previousLaunchConfig"`
   173  	PreviousSecondaryLaunchConfigs []interface{} `json:"previousSecondaryLaunchConfigs"`
   174  	SecondaryLaunchConfigs         []interface{} `json:"secondaryLaunchConfigs"`
   175  	StartFirst                     bool          `json:"startFirst"`
   176  }
   177  
   178  type ServicesLinks struct {
   179  	Self string `json:"self"`
   180  }
   181  
   182  type Pagination struct {
   183  	First    interface{} `json:"first"`
   184  	Previous interface{} `json:"previous"`
   185  	Next     interface{} `json:"next"`
   186  	Limit    int64       `json:"limit"`
   187  	Total    interface{} `json:"total"`
   188  	Partial  bool        `json:"partial"`
   189  }
   190