156 lines
6.9 KiB
Go
156 lines
6.9 KiB
Go
package metadata
|
|
|
|
type Stack struct {
|
|
EnvironmentName string `json:"environment_name"`
|
|
EnvironmentUUID string `json:"environment_uuid"`
|
|
Name string `json:"name"`
|
|
UUID string `json:"uuid"`
|
|
Services []Service `json:"services"`
|
|
System bool `json:"system"`
|
|
}
|
|
|
|
type HealthCheck struct {
|
|
HealthyThreshold int `json:"healthy_threshold"`
|
|
Interval int `json:"interval"`
|
|
Port int `json:"port"`
|
|
RequestLine string `json:"request_line"`
|
|
ResponseTimeout int `json:"response_timeout"`
|
|
UnhealthyThreshold int `json:"unhealthy_threshold"`
|
|
}
|
|
|
|
type Service struct {
|
|
Scale int `json:"scale"`
|
|
Name string `json:"name"`
|
|
StackName string `json:"stack_name"`
|
|
StackUUID string `json:"stack_uuid"`
|
|
Kind string `json:"kind"`
|
|
Hostname string `json:"hostname"`
|
|
Vip string `json:"vip"`
|
|
CreateIndex int `json:"create_index"`
|
|
UUID string `json:"uuid"`
|
|
ExternalIps []string `json:"external_ips"`
|
|
Sidekicks []string `json:"sidekicks"`
|
|
Containers []Container `json:"containers"`
|
|
Ports []string `json:"ports"`
|
|
Labels map[string]string `json:"labels"`
|
|
Links map[string]string `json:"links"`
|
|
Metadata map[string]interface{} `json:"metadata"`
|
|
Token string `json:"token"`
|
|
Fqdn string `json:"fqdn"`
|
|
HealthCheck HealthCheck `json:"health_check"`
|
|
PrimaryServiceName string `json:"primary_service_name"`
|
|
LBConfig LBConfig `json:"lb_config"`
|
|
EnvironmentUUID string `json:"environment_uuid"`
|
|
State string `json:"state"`
|
|
System bool `json:"system"`
|
|
EnvironmentName string `json:"environment_name"`
|
|
Selector string `json:"selector"`
|
|
}
|
|
|
|
type Container struct {
|
|
Name string `json:"name"`
|
|
PrimaryIp string `json:"primary_ip"`
|
|
PrimaryMacAddress string `json:"primary_mac_address"`
|
|
Ips []string `json:"ips"`
|
|
Ports []string `json:"ports"`
|
|
ServiceName string `json:"service_name"`
|
|
ServiceIndex string `json:"service_index"`
|
|
StackName string `json:"stack_name"`
|
|
StackUUID string `json:"stack_uuid"`
|
|
Labels map[string]string `json:"labels"`
|
|
CreateIndex int `json:"create_index"`
|
|
HostUUID string `json:"host_uuid"`
|
|
UUID string `json:"uuid"`
|
|
State string `json:"state"`
|
|
HealthState string `json:"health_state"`
|
|
ExternalId string `json:"external_id"`
|
|
StartCount int `json:"start_count"`
|
|
MemoryReservation int64 `json:"memory_reservation"`
|
|
MilliCPUReservation int64 `json:"milli_cpu_reservation"`
|
|
Dns []string `json:"dns"`
|
|
DnsSearch []string `json:"dns_search"`
|
|
HealthCheckHosts []string `json:"health_check_hosts"`
|
|
NetworkFromContainerUUID string `json:"network_from_container_uuid"`
|
|
NetworkUUID string `json:"network_uuid"`
|
|
Links map[string]string `json:"links"`
|
|
System bool `json:"system"`
|
|
EnvironmentUUID string `json:"environment_uuid"`
|
|
HealthCheck HealthCheck `json:"health_check"`
|
|
EnvironmentName string `json:"environment_name"`
|
|
ServiceUUID string `json:"service_uuid"`
|
|
}
|
|
|
|
type Network struct {
|
|
Name string `json:"name"`
|
|
UUID string `json:"uuid"`
|
|
EnvironmentUUID string `json:"environment_uuid"`
|
|
Metadata map[string]interface{} `json:"metadata"`
|
|
HostPorts bool `json:"host_ports"`
|
|
Default bool `json:"is_default"`
|
|
Policy []NetworkPolicyRule `json:"policy,omitempty"`
|
|
DefaultPolicyAction string `json:"default_policy_action"`
|
|
}
|
|
|
|
type Host struct {
|
|
Name string `json:"name"`
|
|
AgentIP string `json:"agent_ip"`
|
|
HostId int `json:"host_id"`
|
|
Labels map[string]string `json:"labels"`
|
|
UUID string `json:"uuid"`
|
|
Hostname string `json:"hostname"`
|
|
Memory int64 `json:"memory"`
|
|
MilliCPU int64 `json:"milli_cpu"`
|
|
LocalStorageMb int64 `json:"local_storage_mb"`
|
|
EnvironmentUUID string `json:"environment_uuid"`
|
|
State string `json:"state"`
|
|
}
|
|
|
|
type PortRule struct {
|
|
SourcePort int `json:"source_port"`
|
|
Protocol string `json:"protocol"`
|
|
Path string `json:"path"`
|
|
Hostname string `json:"hostname"`
|
|
Service string `json:"service"`
|
|
TargetPort int `json:"target_port"`
|
|
Priority int `json:"priority"`
|
|
BackendName string `json:"backend_name"`
|
|
Selector string `json:"selector"`
|
|
Container string `json:"container"`
|
|
ContainerUUID string `json:"container_uuid"`
|
|
}
|
|
|
|
type LBConfig struct {
|
|
CertificateIDs []string `json:"certificate_ids"`
|
|
DefaultCertificateID string `json:"default_certificate_id"`
|
|
PortRules []PortRule `json:"port_rules"`
|
|
Config string `json:"config"`
|
|
StickinessPolicy LBStickinessPolicy `json:"stickiness_policy"`
|
|
}
|
|
|
|
type LBStickinessPolicy struct {
|
|
Name string `json:"name"`
|
|
Cookie string `json:"cookie"`
|
|
Domain string `json:"domain"`
|
|
Indirect bool `json:"indirect"`
|
|
Nocache bool `json:"nocache"`
|
|
Postonly bool `json:"postonly"`
|
|
Mode string `json:"mode"`
|
|
}
|
|
|
|
type NetworkPolicyRuleBetween struct {
|
|
Selector string `yaml:"selector,omitempty"`
|
|
GroupBy string `yaml:"groupBy,omitempty"`
|
|
}
|
|
|
|
type NetworkPolicyRuleMember struct {
|
|
Selector string `yaml:"selector,omitempty"`
|
|
}
|
|
|
|
type NetworkPolicyRule struct {
|
|
From *NetworkPolicyRuleMember `yaml:"from"`
|
|
To *NetworkPolicyRuleMember `yaml:"to"`
|
|
Ports []string `yaml:"ports"`
|
|
Within string `yaml:"within"`
|
|
Between *NetworkPolicyRuleBetween `yaml:"between"`
|
|
Action string `yaml:"action"`
|
|
}
|