package cloudconfig

import (
	"github.com/tidbcloud/devops/api"
	ccent "github.com/tidbcloud/devops/entity/cloudconfig"
)

type ListDefaultConfigurationChangeReleasesReq struct {
	EnvironmentIs *string `form:"environment_is"`
}

type ListDefaultConfigurationChangeReleasesResp struct {
	api.BaseResp `json:",inline"`

	Releases []*ccent.DefaultConfigurationChangeRelease `json:"items"`
}

type CreateDefaultConfigurationChangeReleaseReq struct {
	Environment string `json:"environment" binding:"required"`
	Description string `json:"description"`
}

type RollbackDefaultConfigurationChangeReleaseReq struct {
	Environment   string `json:"environment"`
	Description   string `json:"description"`
	ReleaseNumber uint64 `json:"release_number"`
}

type GetDefaultConfigurationChangeReleaseReq struct {
	WithReleasedItems bool `form:"with_released_items"`
}

type GetDefaultConfigurationChangeRelease struct {
	api.BaseResp `json:",inline"`

	Releases      *ccent.DefaultConfigurationChangeRelease `json:"release"`
	ReleasedItems []*ccent.DefaultConfigurationChangeItem  `json:"released_items"`
}

type ListDefaultConfigurationChangeItemReleaseReq struct {
}

type ListDefaultConfigurationChangeItemReleaseResp struct {
	api.BaseResp `json:",inline"`
	Items        []*ccent.DefaultConfigurationChangeItemRelease `json:"items"`
}
