// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.6
// 	protoc        v3.19.0
// source: external/cfgmgmt/response/rollouts.proto

package response

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type SCMType int32

const (
	SCMType_SCM_TYPE_UNSPECIFIED SCMType = 0
	SCMType_SCM_TYPE_UNKNOWN_SCM SCMType = 1
	SCMType_SCM_TYPE_GIT         SCMType = 2
)

// Enum value maps for SCMType.
var (
	SCMType_name = map[int32]string{
		0: "SCM_TYPE_UNSPECIFIED",
		1: "SCM_TYPE_UNKNOWN_SCM",
		2: "SCM_TYPE_GIT",
	}
	SCMType_value = map[string]int32{
		"SCM_TYPE_UNSPECIFIED": 0,
		"SCM_TYPE_UNKNOWN_SCM": 1,
		"SCM_TYPE_GIT":         2,
	}
)

func (x SCMType) Enum() *SCMType {
	p := new(SCMType)
	*p = x
	return p
}

func (x SCMType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (SCMType) Descriptor() protoreflect.EnumDescriptor {
	return file_external_cfgmgmt_response_rollouts_proto_enumTypes[0].Descriptor()
}

func (SCMType) Type() protoreflect.EnumType {
	return &file_external_cfgmgmt_response_rollouts_proto_enumTypes[0]
}

func (x SCMType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use SCMType.Descriptor instead.
func (SCMType) EnumDescriptor() ([]byte, []int) {
	return file_external_cfgmgmt_response_rollouts_proto_rawDescGZIP(), []int{0}
}

type SCMWebType int32

const (
	SCMWebType_SCM_WEB_TYPE_UNSPECIFIED     SCMWebType = 0
	SCMWebType_SCM_WEB_TYPE_UNKNOWN_SCM_WEB SCMWebType = 1
	SCMWebType_SCM_WEB_TYPE_GITHUB          SCMWebType = 2
)

// Enum value maps for SCMWebType.
var (
	SCMWebType_name = map[int32]string{
		0: "SCM_WEB_TYPE_UNSPECIFIED",
		1: "SCM_WEB_TYPE_UNKNOWN_SCM_WEB",
		2: "SCM_WEB_TYPE_GITHUB",
	}
	SCMWebType_value = map[string]int32{
		"SCM_WEB_TYPE_UNSPECIFIED":     0,
		"SCM_WEB_TYPE_UNKNOWN_SCM_WEB": 1,
		"SCM_WEB_TYPE_GITHUB":          2,
	}
)

func (x SCMWebType) Enum() *SCMWebType {
	p := new(SCMWebType)
	*p = x
	return p
}

func (x SCMWebType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (SCMWebType) Descriptor() protoreflect.EnumDescriptor {
	return file_external_cfgmgmt_response_rollouts_proto_enumTypes[1].Descriptor()
}

func (SCMWebType) Type() protoreflect.EnumType {
	return &file_external_cfgmgmt_response_rollouts_proto_enumTypes[1]
}

func (x SCMWebType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use SCMWebType.Descriptor instead.
func (SCMWebType) EnumDescriptor() ([]byte, []int) {
	return file_external_cfgmgmt_response_rollouts_proto_rawDescGZIP(), []int{1}
}

// A Rollout represents the process of distributing Chef Infra code (with
// Policyfiles) to a set of nodes. It's used to track which nodes have run the
// latest version of the Chef Infra code assigned to them and also provide the
// user insights about the code by aggregating Chef Client run results
// according to the version of Chef Infra code applied. Metadata about the code
// is stored in order to provide the user with convenient references back to
// systems they already use (such as SCM and Ci/CD systems) to manage their code.
//
// Nodes are segmented by a triple of policy name, policy group, and policy domain URL:
// policy name generally describes what kind of system it is, e.g., a database server
// policy group generally describes where the system fits in the user's code
// lifecycle, e.g., "QA" or "production." Policy groups may also represent a
// subset of nodes within a code lifecycle stage, such as a "production-canary"
// group.
// policy domain URL identifies the system that distributes the Chef Infra code
// and is the owner of the namespaces for policy name and group. E.g., a Chef
// Server URL with the `/organizations/:orgname` part.
//
// There is one (or zero) revision(s) of the Chef Infra code applied to any
// segment at a time. Rollouts track the changes to which revision of the code is
// applied to the node segments over time.
type Rollout struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The name of the policy, i.e., the `name` attribute in the Policyfile
	PolicyName string `protobuf:"bytes,1,opt,name=policy_name,json=policyName,proto3" json:"policy_name,omitempty"`
	// The group of nodes which are targeted by the rollout. In the Chef Server
	// case, this is the policy_group to which the user is pushing the policy.
	PolicyNodeGroup string `protobuf:"bytes,2,opt,name=policy_node_group,json=policyNodeGroup,proto3" json:"policy_node_group,omitempty"`
	// The revision_id of the compiled policy being rolled out
	PolicyRevisionId string `protobuf:"bytes,3,opt,name=policy_revision_id,json=policyRevisionId,proto3" json:"policy_revision_id,omitempty"`
	// In the Chef Server case, the policy domain URL is the Chef Server URL
	// with the `/organizations/:orgname` portion of the URL path included. In
	// general, this can be a URL for any content storage/distribution service,
	// as long as the combination of policy_name and policy_node_group is unique
	// on that system.
	//
	// The set of nodes configured to fetch policy content from the
	// policy_domain_url and configured with the same policy_name and
	// policy_node_group form the target set of nodes for a rollout and are
	// expected to apply the policy revision described by the rollout.
	PolicyDomainUrl string `protobuf:"bytes,4,opt,name=policy_domain_url,json=policyDomainUrl,proto3" json:"policy_domain_url,omitempty"`
	// The source control system used with the policyfile
	ScmType SCMType `protobuf:"varint,5,opt,name=scm_type,json=scmType,proto3,enum=chef.automate.api.cfgmgmt.response.SCMType" json:"scm_type,omitempty"`
	// The software/service used to host the source code repository
	ScmWebType SCMWebType `protobuf:"varint,6,opt,name=scm_web_type,json=scmWebType,proto3,enum=chef.automate.api.cfgmgmt.response.SCMWebType" json:"scm_web_type,omitempty"`
	// The URL used to obtain a copy of the source code repository
	PolicyScmUrl string `protobuf:"bytes,7,opt,name=policy_scm_url,json=policyScmUrl,proto3" json:"policy_scm_url,omitempty"`
	// The URL used to view the source code repository via the web
	PolicyScmWebUrl string `protobuf:"bytes,8,opt,name=policy_scm_web_url,json=policyScmWebUrl,proto3" json:"policy_scm_web_url,omitempty"`
	// The source control system's identifier for the repository version. This
	// should be the version where the policy's lockfile was committed.
	PolicyScmCommit string `protobuf:"bytes,9,opt,name=policy_scm_commit,json=policyScmCommit,proto3" json:"policy_scm_commit,omitempty"`
	// A free-form description of the rollout, as given by the user. Long
	// messages may be displayed in a truncated form in the UI. The content may
	// be entered manually by the user or extracted from another system, for
	// example a git commit message.
	Description string `protobuf:"bytes,10,opt,name=description,proto3" json:"description,omitempty"`
	// If the rollout was initiated via Ci/CD or similar system, the web URL
	// for the job that initiated the rollout.
	CiJobUrl string `protobuf:"bytes,11,opt,name=ci_job_url,json=ciJobUrl,proto3" json:"ci_job_url,omitempty"`
	// If the rollout was initiated by Ci/CD or similar system, the id of the job
	// that initiated the rollout. Should include the Ci system's nickname or
	// other identifying information users would need to associate the job ID to
	// the Ci/CD system.
	CiJobId string `protobuf:"bytes,12,opt,name=ci_job_id,json=ciJobId,proto3" json:"ci_job_id,omitempty"`
	// The system-generated ID for this rollout. The system currently provides
	// autoincrementing integers for the Ids.
	Id string `protobuf:"bytes,13,opt,name=id,proto3" json:"id,omitempty"`
	// The time that the rollout began. Whenever a new rollout is created, it
	// becomes the "current" rollout for its node segment; that is, any nodes
	// that start a Chef Infra Client run will run the policy revision described
	// by this "current" rollout. The system will populate the previously current
	// rollout's `end_time` attribute with the current time.
	StartTime string `protobuf:"bytes,14,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
	// The time that the rollout was replaced with another rollout.
	EndTime string `protobuf:"bytes,15,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
	// The username of the author of the most recent commit to the source code
	// repository. In git, this is the setting `user.name`.
	ScmAuthorName string `protobuf:"bytes,16,opt,name=scm_author_name,json=scmAuthorName,proto3" json:"scm_author_name,omitempty"`
	// The email address of the author of the most recent commit to the source
	// code repository. In git, this is the setting `user.email`.
	ScmAuthorEmail string `protobuf:"bytes,17,opt,name=scm_author_email,json=scmAuthorEmail,proto3" json:"scm_author_email,omitempty"`
	// The username of the entity who uploaded/promoted the policy code to the
	// code host. In a Chef Server architecture, this is the name of the Chef
	// Server user who ran the `chef push` command to upload the policy.
	PolicyDomainUsername string `protobuf:"bytes,18,opt,name=policy_domain_username,json=policyDomainUsername,proto3" json:"policy_domain_username,omitempty"`
	unknownFields        protoimpl.UnknownFields
	sizeCache            protoimpl.SizeCache
}

func (x *Rollout) Reset() {
	*x = Rollout{}
	mi := &file_external_cfgmgmt_response_rollouts_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Rollout) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Rollout) ProtoMessage() {}

func (x *Rollout) ProtoReflect() protoreflect.Message {
	mi := &file_external_cfgmgmt_response_rollouts_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Rollout.ProtoReflect.Descriptor instead.
func (*Rollout) Descriptor() ([]byte, []int) {
	return file_external_cfgmgmt_response_rollouts_proto_rawDescGZIP(), []int{0}
}

func (x *Rollout) GetPolicyName() string {
	if x != nil {
		return x.PolicyName
	}
	return ""
}

func (x *Rollout) GetPolicyNodeGroup() string {
	if x != nil {
		return x.PolicyNodeGroup
	}
	return ""
}

func (x *Rollout) GetPolicyRevisionId() string {
	if x != nil {
		return x.PolicyRevisionId
	}
	return ""
}

func (x *Rollout) GetPolicyDomainUrl() string {
	if x != nil {
		return x.PolicyDomainUrl
	}
	return ""
}

func (x *Rollout) GetScmType() SCMType {
	if x != nil {
		return x.ScmType
	}
	return SCMType_SCM_TYPE_UNSPECIFIED
}

func (x *Rollout) GetScmWebType() SCMWebType {
	if x != nil {
		return x.ScmWebType
	}
	return SCMWebType_SCM_WEB_TYPE_UNSPECIFIED
}

func (x *Rollout) GetPolicyScmUrl() string {
	if x != nil {
		return x.PolicyScmUrl
	}
	return ""
}

func (x *Rollout) GetPolicyScmWebUrl() string {
	if x != nil {
		return x.PolicyScmWebUrl
	}
	return ""
}

func (x *Rollout) GetPolicyScmCommit() string {
	if x != nil {
		return x.PolicyScmCommit
	}
	return ""
}

func (x *Rollout) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *Rollout) GetCiJobUrl() string {
	if x != nil {
		return x.CiJobUrl
	}
	return ""
}

func (x *Rollout) GetCiJobId() string {
	if x != nil {
		return x.CiJobId
	}
	return ""
}

func (x *Rollout) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *Rollout) GetStartTime() string {
	if x != nil {
		return x.StartTime
	}
	return ""
}

func (x *Rollout) GetEndTime() string {
	if x != nil {
		return x.EndTime
	}
	return ""
}

func (x *Rollout) GetScmAuthorName() string {
	if x != nil {
		return x.ScmAuthorName
	}
	return ""
}

func (x *Rollout) GetScmAuthorEmail() string {
	if x != nil {
		return x.ScmAuthorEmail
	}
	return ""
}

func (x *Rollout) GetPolicyDomainUsername() string {
	if x != nil {
		return x.PolicyDomainUsername
	}
	return ""
}

type Rollouts struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Rollouts      []*Rollout             `protobuf:"bytes,1,rep,name=rollouts,proto3" json:"rollouts,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Rollouts) Reset() {
	*x = Rollouts{}
	mi := &file_external_cfgmgmt_response_rollouts_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Rollouts) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Rollouts) ProtoMessage() {}

func (x *Rollouts) ProtoReflect() protoreflect.Message {
	mi := &file_external_cfgmgmt_response_rollouts_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Rollouts.ProtoReflect.Descriptor instead.
func (*Rollouts) Descriptor() ([]byte, []int) {
	return file_external_cfgmgmt_response_rollouts_proto_rawDescGZIP(), []int{1}
}

func (x *Rollouts) GetRollouts() []*Rollout {
	if x != nil {
		return x.Rollouts
	}
	return nil
}

// NodeSegmentsWithRolloutProgress
//
// A Node Segment is the set of Chef Infra nodes with a shared policy_name,
// policy_node_group, and policy_domain_url.
//
// NodeSegmentsWithRolloutProgress lists all of the node segments matching the
// request with information about the progress and status of the code rollouts for each segment.
type NodeSegmentsWithRolloutProgress struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The NodeSegmentRolloutProgress are sorted by policy group, policy
	// name, then domain URL.
	NodeSegmentRolloutProgress []*NodeSegmentRolloutProgress `protobuf:"bytes,1,rep,name=node_segment_rollout_progress,json=nodeSegmentRolloutProgress,proto3" json:"node_segment_rollout_progress,omitempty"`
	unknownFields              protoimpl.UnknownFields
	sizeCache                  protoimpl.SizeCache
}

func (x *NodeSegmentsWithRolloutProgress) Reset() {
	*x = NodeSegmentsWithRolloutProgress{}
	mi := &file_external_cfgmgmt_response_rollouts_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *NodeSegmentsWithRolloutProgress) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NodeSegmentsWithRolloutProgress) ProtoMessage() {}

func (x *NodeSegmentsWithRolloutProgress) ProtoReflect() protoreflect.Message {
	mi := &file_external_cfgmgmt_response_rollouts_proto_msgTypes[2]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use NodeSegmentsWithRolloutProgress.ProtoReflect.Descriptor instead.
func (*NodeSegmentsWithRolloutProgress) Descriptor() ([]byte, []int) {
	return file_external_cfgmgmt_response_rollouts_proto_rawDescGZIP(), []int{2}
}

func (x *NodeSegmentsWithRolloutProgress) GetNodeSegmentRolloutProgress() []*NodeSegmentRolloutProgress {
	if x != nil {
		return x.NodeSegmentRolloutProgress
	}
	return nil
}

type NodeSegmentRolloutProgress struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// policy_name, policy_node_group, policy_domain_url make up a "compound
	// id" for the node segment
	PolicyName      string `protobuf:"bytes,1,opt,name=policy_name,json=policyName,proto3" json:"policy_name,omitempty"`
	PolicyNodeGroup string `protobuf:"bytes,2,opt,name=policy_node_group,json=policyNodeGroup,proto3" json:"policy_node_group,omitempty"`
	PolicyDomainUrl string `protobuf:"bytes,3,opt,name=policy_domain_url,json=policyDomainUrl,proto3" json:"policy_domain_url,omitempty"`
	// total nodes in elasticsearch in the node segment
	TotalNodes             int32                   `protobuf:"varint,4,opt,name=total_nodes,json=totalNodes,proto3" json:"total_nodes,omitempty"`
	CurrentRolloutProgress *CurrentRolloutProgress `protobuf:"bytes,5,opt,name=current_rollout_progress,json=currentRolloutProgress,proto3" json:"current_rollout_progress,omitempty"`
	// This is the last, say 2 or 4 rollouts before the current one (to give a
	// total of 3 or 5)
	PreviousRollouts []*PastRolloutProgress `protobuf:"bytes,6,rep,name=previous_rollouts,json=previousRollouts,proto3" json:"previous_rollouts,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

func (x *NodeSegmentRolloutProgress) Reset() {
	*x = NodeSegmentRolloutProgress{}
	mi := &file_external_cfgmgmt_response_rollouts_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *NodeSegmentRolloutProgress) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NodeSegmentRolloutProgress) ProtoMessage() {}

func (x *NodeSegmentRolloutProgress) ProtoReflect() protoreflect.Message {
	mi := &file_external_cfgmgmt_response_rollouts_proto_msgTypes[3]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use NodeSegmentRolloutProgress.ProtoReflect.Descriptor instead.
func (*NodeSegmentRolloutProgress) Descriptor() ([]byte, []int) {
	return file_external_cfgmgmt_response_rollouts_proto_rawDescGZIP(), []int{3}
}

func (x *NodeSegmentRolloutProgress) GetPolicyName() string {
	if x != nil {
		return x.PolicyName
	}
	return ""
}

func (x *NodeSegmentRolloutProgress) GetPolicyNodeGroup() string {
	if x != nil {
		return x.PolicyNodeGroup
	}
	return ""
}

func (x *NodeSegmentRolloutProgress) GetPolicyDomainUrl() string {
	if x != nil {
		return x.PolicyDomainUrl
	}
	return ""
}

func (x *NodeSegmentRolloutProgress) GetTotalNodes() int32 {
	if x != nil {
		return x.TotalNodes
	}
	return 0
}

func (x *NodeSegmentRolloutProgress) GetCurrentRolloutProgress() *CurrentRolloutProgress {
	if x != nil {
		return x.CurrentRolloutProgress
	}
	return nil
}

func (x *NodeSegmentRolloutProgress) GetPreviousRollouts() []*PastRolloutProgress {
	if x != nil {
		return x.PreviousRollouts
	}
	return nil
}

type CurrentRolloutProgress struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Rollout is the full rollout object, but we can change this to be a subset only.
	Rollout *Rollout `protobuf:"bytes,1,opt,name=rollout,proto3" json:"rollout,omitempty"`
	// Nodes that have run the code being rolled out thus far
	NodeCount int32 `protobuf:"varint,2,opt,name=node_count,json=nodeCount,proto3" json:"node_count,omitempty"`
	// I'm assuming it's easy to get the status when we get the counts.
	LatestRunSuccessfulCount int32  `protobuf:"varint,3,opt,name=latest_run_successful_count,json=latestRunSuccessfulCount,proto3" json:"latest_run_successful_count,omitempty"`
	LatestRunErroredCount    int32  `protobuf:"varint,4,opt,name=latest_run_errored_count,json=latestRunErroredCount,proto3" json:"latest_run_errored_count,omitempty"`
	SourceLink               string `protobuf:"bytes,5,opt,name=source_link,json=sourceLink,proto3" json:"source_link,omitempty"`
	BuildLink                string `protobuf:"bytes,6,opt,name=build_link,json=buildLink,proto3" json:"build_link,omitempty"`
	unknownFields            protoimpl.UnknownFields
	sizeCache                protoimpl.SizeCache
}

func (x *CurrentRolloutProgress) Reset() {
	*x = CurrentRolloutProgress{}
	mi := &file_external_cfgmgmt_response_rollouts_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CurrentRolloutProgress) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CurrentRolloutProgress) ProtoMessage() {}

func (x *CurrentRolloutProgress) ProtoReflect() protoreflect.Message {
	mi := &file_external_cfgmgmt_response_rollouts_proto_msgTypes[4]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CurrentRolloutProgress.ProtoReflect.Descriptor instead.
func (*CurrentRolloutProgress) Descriptor() ([]byte, []int) {
	return file_external_cfgmgmt_response_rollouts_proto_rawDescGZIP(), []int{4}
}

func (x *CurrentRolloutProgress) GetRollout() *Rollout {
	if x != nil {
		return x.Rollout
	}
	return nil
}

func (x *CurrentRolloutProgress) GetNodeCount() int32 {
	if x != nil {
		return x.NodeCount
	}
	return 0
}

func (x *CurrentRolloutProgress) GetLatestRunSuccessfulCount() int32 {
	if x != nil {
		return x.LatestRunSuccessfulCount
	}
	return 0
}

func (x *CurrentRolloutProgress) GetLatestRunErroredCount() int32 {
	if x != nil {
		return x.LatestRunErroredCount
	}
	return 0
}

func (x *CurrentRolloutProgress) GetSourceLink() string {
	if x != nil {
		return x.SourceLink
	}
	return ""
}

func (x *CurrentRolloutProgress) GetBuildLink() string {
	if x != nil {
		return x.BuildLink
	}
	return ""
}

type PastRolloutProgress struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Rollout is the full rollout object, but we can change this to be a subset only.
	Rollout *Rollout `protobuf:"bytes,1,opt,name=rollout,proto3" json:"rollout,omitempty"`
	// The number of nodes in the node segment for which the last recorded CCR
	// was part of this rollout. Note that no breakdown of success/errored is
	// provided, since some nodes may have moved on to the current rollout and
	// are not included in the count.
	LatestRunNodeCount int32  `protobuf:"varint,2,opt,name=latest_run_node_count,json=latestRunNodeCount,proto3" json:"latest_run_node_count,omitempty"`
	SourceLink         string `protobuf:"bytes,5,opt,name=source_link,json=sourceLink,proto3" json:"source_link,omitempty"`
	BuildLink          string `protobuf:"bytes,6,opt,name=build_link,json=buildLink,proto3" json:"build_link,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

func (x *PastRolloutProgress) Reset() {
	*x = PastRolloutProgress{}
	mi := &file_external_cfgmgmt_response_rollouts_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *PastRolloutProgress) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PastRolloutProgress) ProtoMessage() {}

func (x *PastRolloutProgress) ProtoReflect() protoreflect.Message {
	mi := &file_external_cfgmgmt_response_rollouts_proto_msgTypes[5]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PastRolloutProgress.ProtoReflect.Descriptor instead.
func (*PastRolloutProgress) Descriptor() ([]byte, []int) {
	return file_external_cfgmgmt_response_rollouts_proto_rawDescGZIP(), []int{5}
}

func (x *PastRolloutProgress) GetRollout() *Rollout {
	if x != nil {
		return x.Rollout
	}
	return nil
}

func (x *PastRolloutProgress) GetLatestRunNodeCount() int32 {
	if x != nil {
		return x.LatestRunNodeCount
	}
	return 0
}

func (x *PastRolloutProgress) GetSourceLink() string {
	if x != nil {
		return x.SourceLink
	}
	return ""
}

func (x *PastRolloutProgress) GetBuildLink() string {
	if x != nil {
		return x.BuildLink
	}
	return ""
}

type CreateRolloutTest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *CreateRolloutTest) Reset() {
	*x = CreateRolloutTest{}
	mi := &file_external_cfgmgmt_response_rollouts_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CreateRolloutTest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateRolloutTest) ProtoMessage() {}

func (x *CreateRolloutTest) ProtoReflect() protoreflect.Message {
	mi := &file_external_cfgmgmt_response_rollouts_proto_msgTypes[6]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CreateRolloutTest.ProtoReflect.Descriptor instead.
func (*CreateRolloutTest) Descriptor() ([]byte, []int) {
	return file_external_cfgmgmt_response_rollouts_proto_rawDescGZIP(), []int{6}
}

var File_external_cfgmgmt_response_rollouts_proto protoreflect.FileDescriptor

const file_external_cfgmgmt_response_rollouts_proto_rawDesc = "" +
	"\n" +
	"(external/cfgmgmt/response/rollouts.proto\x12\"chef.automate.api.cfgmgmt.response\"\xf7\x05\n" +
	"\aRollout\x12\x1f\n" +
	"\vpolicy_name\x18\x01 \x01(\tR\n" +
	"policyName\x12*\n" +
	"\x11policy_node_group\x18\x02 \x01(\tR\x0fpolicyNodeGroup\x12,\n" +
	"\x12policy_revision_id\x18\x03 \x01(\tR\x10policyRevisionId\x12*\n" +
	"\x11policy_domain_url\x18\x04 \x01(\tR\x0fpolicyDomainUrl\x12F\n" +
	"\bscm_type\x18\x05 \x01(\x0e2+.chef.automate.api.cfgmgmt.response.SCMTypeR\ascmType\x12P\n" +
	"\fscm_web_type\x18\x06 \x01(\x0e2..chef.automate.api.cfgmgmt.response.SCMWebTypeR\n" +
	"scmWebType\x12$\n" +
	"\x0epolicy_scm_url\x18\a \x01(\tR\fpolicyScmUrl\x12+\n" +
	"\x12policy_scm_web_url\x18\b \x01(\tR\x0fpolicyScmWebUrl\x12*\n" +
	"\x11policy_scm_commit\x18\t \x01(\tR\x0fpolicyScmCommit\x12 \n" +
	"\vdescription\x18\n" +
	" \x01(\tR\vdescription\x12\x1c\n" +
	"\n" +
	"ci_job_url\x18\v \x01(\tR\bciJobUrl\x12\x1a\n" +
	"\tci_job_id\x18\f \x01(\tR\aciJobId\x12\x0e\n" +
	"\x02id\x18\r \x01(\tR\x02id\x12\x1d\n" +
	"\n" +
	"start_time\x18\x0e \x01(\tR\tstartTime\x12\x19\n" +
	"\bend_time\x18\x0f \x01(\tR\aendTime\x12&\n" +
	"\x0fscm_author_name\x18\x10 \x01(\tR\rscmAuthorName\x12(\n" +
	"\x10scm_author_email\x18\x11 \x01(\tR\x0escmAuthorEmail\x124\n" +
	"\x16policy_domain_username\x18\x12 \x01(\tR\x14policyDomainUsername\"S\n" +
	"\bRollouts\x12G\n" +
	"\brollouts\x18\x01 \x03(\v2+.chef.automate.api.cfgmgmt.response.RolloutR\brollouts\"\xa5\x01\n" +
	"\x1fNodeSegmentsWithRolloutProgress\x12\x81\x01\n" +
	"\x1dnode_segment_rollout_progress\x18\x01 \x03(\v2>.chef.automate.api.cfgmgmt.response.NodeSegmentRolloutProgressR\x1anodeSegmentRolloutProgress\"\x92\x03\n" +
	"\x1aNodeSegmentRolloutProgress\x12\x1f\n" +
	"\vpolicy_name\x18\x01 \x01(\tR\n" +
	"policyName\x12*\n" +
	"\x11policy_node_group\x18\x02 \x01(\tR\x0fpolicyNodeGroup\x12*\n" +
	"\x11policy_domain_url\x18\x03 \x01(\tR\x0fpolicyDomainUrl\x12\x1f\n" +
	"\vtotal_nodes\x18\x04 \x01(\x05R\n" +
	"totalNodes\x12t\n" +
	"\x18current_rollout_progress\x18\x05 \x01(\v2:.chef.automate.api.cfgmgmt.response.CurrentRolloutProgressR\x16currentRolloutProgress\x12d\n" +
	"\x11previous_rollouts\x18\x06 \x03(\v27.chef.automate.api.cfgmgmt.response.PastRolloutProgressR\x10previousRollouts\"\xb6\x02\n" +
	"\x16CurrentRolloutProgress\x12E\n" +
	"\arollout\x18\x01 \x01(\v2+.chef.automate.api.cfgmgmt.response.RolloutR\arollout\x12\x1d\n" +
	"\n" +
	"node_count\x18\x02 \x01(\x05R\tnodeCount\x12=\n" +
	"\x1blatest_run_successful_count\x18\x03 \x01(\x05R\x18latestRunSuccessfulCount\x127\n" +
	"\x18latest_run_errored_count\x18\x04 \x01(\x05R\x15latestRunErroredCount\x12\x1f\n" +
	"\vsource_link\x18\x05 \x01(\tR\n" +
	"sourceLink\x12\x1d\n" +
	"\n" +
	"build_link\x18\x06 \x01(\tR\tbuildLink\"\xcf\x01\n" +
	"\x13PastRolloutProgress\x12E\n" +
	"\arollout\x18\x01 \x01(\v2+.chef.automate.api.cfgmgmt.response.RolloutR\arollout\x121\n" +
	"\x15latest_run_node_count\x18\x02 \x01(\x05R\x12latestRunNodeCount\x12\x1f\n" +
	"\vsource_link\x18\x05 \x01(\tR\n" +
	"sourceLink\x12\x1d\n" +
	"\n" +
	"build_link\x18\x06 \x01(\tR\tbuildLink\"\x13\n" +
	"\x11CreateRolloutTest*O\n" +
	"\aSCMType\x12\x18\n" +
	"\x14SCM_TYPE_UNSPECIFIED\x10\x00\x12\x18\n" +
	"\x14SCM_TYPE_UNKNOWN_SCM\x10\x01\x12\x10\n" +
	"\fSCM_TYPE_GIT\x10\x02*e\n" +
	"\n" +
	"SCMWebType\x12\x1c\n" +
	"\x18SCM_WEB_TYPE_UNSPECIFIED\x10\x00\x12 \n" +
	"\x1cSCM_WEB_TYPE_UNKNOWN_SCM_WEB\x10\x01\x12\x17\n" +
	"\x13SCM_WEB_TYPE_GITHUB\x10\x02B8Z6github.com/chef/automate/api/external/cfgmgmt/responseb\x06proto3"

var (
	file_external_cfgmgmt_response_rollouts_proto_rawDescOnce sync.Once
	file_external_cfgmgmt_response_rollouts_proto_rawDescData []byte
)

func file_external_cfgmgmt_response_rollouts_proto_rawDescGZIP() []byte {
	file_external_cfgmgmt_response_rollouts_proto_rawDescOnce.Do(func() {
		file_external_cfgmgmt_response_rollouts_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_external_cfgmgmt_response_rollouts_proto_rawDesc), len(file_external_cfgmgmt_response_rollouts_proto_rawDesc)))
	})
	return file_external_cfgmgmt_response_rollouts_proto_rawDescData
}

var file_external_cfgmgmt_response_rollouts_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_external_cfgmgmt_response_rollouts_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
var file_external_cfgmgmt_response_rollouts_proto_goTypes = []any{
	(SCMType)(0),                            // 0: chef.automate.api.cfgmgmt.response.SCMType
	(SCMWebType)(0),                         // 1: chef.automate.api.cfgmgmt.response.SCMWebType
	(*Rollout)(nil),                         // 2: chef.automate.api.cfgmgmt.response.Rollout
	(*Rollouts)(nil),                        // 3: chef.automate.api.cfgmgmt.response.Rollouts
	(*NodeSegmentsWithRolloutProgress)(nil), // 4: chef.automate.api.cfgmgmt.response.NodeSegmentsWithRolloutProgress
	(*NodeSegmentRolloutProgress)(nil),      // 5: chef.automate.api.cfgmgmt.response.NodeSegmentRolloutProgress
	(*CurrentRolloutProgress)(nil),          // 6: chef.automate.api.cfgmgmt.response.CurrentRolloutProgress
	(*PastRolloutProgress)(nil),             // 7: chef.automate.api.cfgmgmt.response.PastRolloutProgress
	(*CreateRolloutTest)(nil),               // 8: chef.automate.api.cfgmgmt.response.CreateRolloutTest
}
var file_external_cfgmgmt_response_rollouts_proto_depIdxs = []int32{
	0, // 0: chef.automate.api.cfgmgmt.response.Rollout.scm_type:type_name -> chef.automate.api.cfgmgmt.response.SCMType
	1, // 1: chef.automate.api.cfgmgmt.response.Rollout.scm_web_type:type_name -> chef.automate.api.cfgmgmt.response.SCMWebType
	2, // 2: chef.automate.api.cfgmgmt.response.Rollouts.rollouts:type_name -> chef.automate.api.cfgmgmt.response.Rollout
	5, // 3: chef.automate.api.cfgmgmt.response.NodeSegmentsWithRolloutProgress.node_segment_rollout_progress:type_name -> chef.automate.api.cfgmgmt.response.NodeSegmentRolloutProgress
	6, // 4: chef.automate.api.cfgmgmt.response.NodeSegmentRolloutProgress.current_rollout_progress:type_name -> chef.automate.api.cfgmgmt.response.CurrentRolloutProgress
	7, // 5: chef.automate.api.cfgmgmt.response.NodeSegmentRolloutProgress.previous_rollouts:type_name -> chef.automate.api.cfgmgmt.response.PastRolloutProgress
	2, // 6: chef.automate.api.cfgmgmt.response.CurrentRolloutProgress.rollout:type_name -> chef.automate.api.cfgmgmt.response.Rollout
	2, // 7: chef.automate.api.cfgmgmt.response.PastRolloutProgress.rollout:type_name -> chef.automate.api.cfgmgmt.response.Rollout
	8, // [8:8] is the sub-list for method output_type
	8, // [8:8] is the sub-list for method input_type
	8, // [8:8] is the sub-list for extension type_name
	8, // [8:8] is the sub-list for extension extendee
	0, // [0:8] is the sub-list for field type_name
}

func init() { file_external_cfgmgmt_response_rollouts_proto_init() }
func file_external_cfgmgmt_response_rollouts_proto_init() {
	if File_external_cfgmgmt_response_rollouts_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_external_cfgmgmt_response_rollouts_proto_rawDesc), len(file_external_cfgmgmt_response_rollouts_proto_rawDesc)),
			NumEnums:      2,
			NumMessages:   7,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_external_cfgmgmt_response_rollouts_proto_goTypes,
		DependencyIndexes: file_external_cfgmgmt_response_rollouts_proto_depIdxs,
		EnumInfos:         file_external_cfgmgmt_response_rollouts_proto_enumTypes,
		MessageInfos:      file_external_cfgmgmt_response_rollouts_proto_msgTypes,
	}.Build()
	File_external_cfgmgmt_response_rollouts_proto = out.File
	file_external_cfgmgmt_response_rollouts_proto_goTypes = nil
	file_external_cfgmgmt_response_rollouts_proto_depIdxs = nil
}
