package ingress

import "k8s.io/api/extensions/v1beta1"

type GetIngressListRequestDto struct {
	NameSpace string `json:"nameSpace"` // 命名空间
	PageIndex int    `json:"pageIndex"`
	PageSize  int    `json:"pageSize"`
}

type GetIngressListResultDataResponseDto struct {
	Name       string   `json:"name"`       // service名称
	Host       []string `json:"host"`       // 域名地址
	ExternalIP string   `json:"externalIP"` // 外部ip
	Port       []string `json:"port"`       // 端口
	CreateTime string   `json:"createTime"` // 创建时间
}

type GetDeleteIngressRequestDto struct {
	NameSpace   string `json:"nameSpace"`   // 命名空间
	IngressName string `json:"ingressName"` //负载名称
}

type GetIngressByNameRequestDto struct {
	NameSpace   string `json:"nameSpace"`   // 命名空间
	IngressName string `json:"ingressName"` //负载名称
	PageIndex   int    `json:"pageIndex"`
	PageSize    int    `json:"pageSize"`
}

type EditIngressByNameRequestDto struct {
	NameSpace   string `json:"nameSpace"`   // 命名空间
	IngressName string `json:"ingressName"` //负载名称
}

type CheckIngressContentRequestDto struct {
	NameSpace   string `json:"nameSpace"`   // 命名空间
	OperateType string `json:"operateType"` // 操作类型 更新、新增
	v1beta1.Ingress
}

type SaveAndupdateIngressContentRequestDto struct {
	NameSpace   string `json:"nameSpace"`   // 命名空间
	OperateType string `json:"operateType"` // 操作类型 更新、新增
	v1beta1.Ingress
}

type AddIngressByGuiRequestDto struct {
	Namespace   string            `json:"namespace"`
	Name        string            `json:"name"`
	Annotations map[string]string `json:"annotations"`
	IsHttps     bool              `json:"isHttps"`
	SecretName  string            `json:"secretName"`
	Rules       []RuleReqestDto
}

type RuleReqestDto struct {
	Host        string `json:"host"`
	Path        string `json:"path"`
	ServiceName string `json:"serviceName"`
	ServicePort string `json:"servicePort"`
}

type AddTUdpIngressRequestDto struct {
	ExposurePort string `json:"exposurePort"`
	NameSpace    string `json:"nameSpace"`
	ServiceName  string `json:"serviceName"`
	ServicePort  string `json:"servicePort"`
	ProtocalType string `json:"protocalType"`
}

type GetTUdpIngressListRequestDto struct {
	NameSpace    string `json:"nameSpace"` // 命名空间
	PageIndex    int    `json:"pageIndex"`
	PageSize     int    `json:"pageSize"`
	ProtocalType string `json:"protocalType"`
	Sort         string `json:"sort"`
}

type GetTUdpIngressDetailRequestDto struct {
	ExposurePort string `json:"exposurePort"`
	ProtocalType string `json:"protocalType"`
}
