// Code generated by protoc-gen-go. DO NOT EDIT.
// source: controller.proto

package api

import (
	context "context"
	fmt "fmt"
	proto "github.com/golang/protobuf/proto"
	duration "github.com/golang/protobuf/ptypes/duration"
	empty "github.com/golang/protobuf/ptypes/empty"
	timestamp "github.com/golang/protobuf/ptypes/timestamp"
	field_mask "google.golang.org/genproto/protobuf/field_mask"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	math "math"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

type ReleaseType int32

const (
	ReleaseType_ANY    ReleaseType = 0
	ReleaseType_CODE   ReleaseType = 1
	ReleaseType_CONFIG ReleaseType = 2
)

var ReleaseType_name = map[int32]string{
	0: "ANY",
	1: "CODE",
	2: "CONFIG",
}

var ReleaseType_value = map[string]int32{
	"ANY":    0,
	"CODE":   1,
	"CONFIG": 2,
}

func (x ReleaseType) String() string {
	return proto.EnumName(ReleaseType_name, int32(x))
}

func (ReleaseType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{0}
}

type ScaleRequestState int32

const (
	ScaleRequestState_SCALE_PENDING   ScaleRequestState = 0
	ScaleRequestState_SCALE_CANCELLED ScaleRequestState = 1
	ScaleRequestState_SCALE_COMPLETE  ScaleRequestState = 2
)

var ScaleRequestState_name = map[int32]string{
	0: "SCALE_PENDING",
	1: "SCALE_CANCELLED",
	2: "SCALE_COMPLETE",
}

var ScaleRequestState_value = map[string]int32{
	"SCALE_PENDING":   0,
	"SCALE_CANCELLED": 1,
	"SCALE_COMPLETE":  2,
}

func (x ScaleRequestState) String() string {
	return proto.EnumName(ScaleRequestState_name, int32(x))
}

func (ScaleRequestState) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{1}
}

type DeploymentStatus int32

const (
	DeploymentStatus_PENDING  DeploymentStatus = 0
	DeploymentStatus_FAILED   DeploymentStatus = 1
	DeploymentStatus_RUNNING  DeploymentStatus = 2
	DeploymentStatus_COMPLETE DeploymentStatus = 3
)

var DeploymentStatus_name = map[int32]string{
	0: "PENDING",
	1: "FAILED",
	2: "RUNNING",
	3: "COMPLETE",
}

var DeploymentStatus_value = map[string]int32{
	"PENDING":  0,
	"FAILED":   1,
	"RUNNING":  2,
	"COMPLETE": 3,
}

func (x DeploymentStatus) String() string {
	return proto.EnumName(DeploymentStatus_name, int32(x))
}

func (DeploymentStatus) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{2}
}

type StatusResponse_Code int32

const (
	StatusResponse_HEALTHY   StatusResponse_Code = 0
	StatusResponse_UNHEALTHY StatusResponse_Code = 1
)

var StatusResponse_Code_name = map[int32]string{
	0: "HEALTHY",
	1: "UNHEALTHY",
}

var StatusResponse_Code_value = map[string]int32{
	"HEALTHY":   0,
	"UNHEALTHY": 1,
}

func (x StatusResponse_Code) String() string {
	return proto.EnumName(StatusResponse_Code_name, int32(x))
}

func (StatusResponse_Code) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{0, 0}
}

type LabelFilter_Expression_Operator int32

const (
	// OP_IN matches if there is a label entry where the value is in the given
	// values for the given key
	LabelFilter_Expression_OP_IN LabelFilter_Expression_Operator = 0
	// OP_NOT_IN matches if there are no label entries where the value is in
	// the given values for the given key
	LabelFilter_Expression_OP_NOT_IN LabelFilter_Expression_Operator = 1
	// OP_EXISTS matches if there is a label entry with the given key (it is
	// an error to provide a value)
	LabelFilter_Expression_OP_EXISTS LabelFilter_Expression_Operator = 2
	// OP_NOT_EXISTS matches if there are no label entries for the given key
	// (it is an error to provide a value)
	LabelFilter_Expression_OP_NOT_EXISTS LabelFilter_Expression_Operator = 3
)

var LabelFilter_Expression_Operator_name = map[int32]string{
	0: "OP_IN",
	1: "OP_NOT_IN",
	2: "OP_EXISTS",
	3: "OP_NOT_EXISTS",
}

var LabelFilter_Expression_Operator_value = map[string]int32{
	"OP_IN":         0,
	"OP_NOT_IN":     1,
	"OP_EXISTS":     2,
	"OP_NOT_EXISTS": 3,
}

func (x LabelFilter_Expression_Operator) String() string {
	return proto.EnumName(LabelFilter_Expression_Operator_name, int32(x))
}

func (LabelFilter_Expression_Operator) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{1, 0, 0}
}

type DeploymentEvent_JobState int32

const (
	DeploymentEvent_PENDING  DeploymentEvent_JobState = 0
	DeploymentEvent_BLOCKED  DeploymentEvent_JobState = 1
	DeploymentEvent_STARTING DeploymentEvent_JobState = 2
	DeploymentEvent_UP       DeploymentEvent_JobState = 3
	DeploymentEvent_STOPPING DeploymentEvent_JobState = 5
	DeploymentEvent_DOWN     DeploymentEvent_JobState = 6
	// CRASHED and FAILURE are no longer valid job states,
	// but we still need to handle them in case they are set by old
	// schedulers still using the legacy code.
	DeploymentEvent_CRASHED DeploymentEvent_JobState = 7
	DeploymentEvent_FAILED  DeploymentEvent_JobState = 8
)

var DeploymentEvent_JobState_name = map[int32]string{
	0: "PENDING",
	1: "BLOCKED",
	2: "STARTING",
	3: "UP",
	5: "STOPPING",
	6: "DOWN",
	7: "CRASHED",
	8: "FAILED",
}

var DeploymentEvent_JobState_value = map[string]int32{
	"PENDING":  0,
	"BLOCKED":  1,
	"STARTING": 2,
	"UP":       3,
	"STOPPING": 5,
	"DOWN":     6,
	"CRASHED":  7,
	"FAILED":   8,
}

func (x DeploymentEvent_JobState) String() string {
	return proto.EnumName(DeploymentEvent_JobState_name, int32(x))
}

func (DeploymentEvent_JobState) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{27, 0}
}

type StatusResponse struct {
	Status               StatusResponse_Code `protobuf:"varint,1,opt,name=status,proto3,enum=flynn.api.v1.StatusResponse_Code" json:"status,omitempty"`
	Detail               []byte              `protobuf:"bytes,2,opt,name=detail,proto3" json:"detail,omitempty"`
	Version              string              `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

func (m *StatusResponse) Reset()         { *m = StatusResponse{} }
func (m *StatusResponse) String() string { return proto.CompactTextString(m) }
func (*StatusResponse) ProtoMessage()    {}
func (*StatusResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{0}
}

func (m *StatusResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_StatusResponse.Unmarshal(m, b)
}
func (m *StatusResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_StatusResponse.Marshal(b, m, deterministic)
}
func (m *StatusResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_StatusResponse.Merge(m, src)
}
func (m *StatusResponse) XXX_Size() int {
	return xxx_messageInfo_StatusResponse.Size(m)
}
func (m *StatusResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_StatusResponse.DiscardUnknown(m)
}

var xxx_messageInfo_StatusResponse proto.InternalMessageInfo

func (m *StatusResponse) GetStatus() StatusResponse_Code {
	if m != nil {
		return m.Status
	}
	return StatusResponse_HEALTHY
}

func (m *StatusResponse) GetDetail() []byte {
	if m != nil {
		return m.Detail
	}
	return nil
}

func (m *StatusResponse) GetVersion() string {
	if m != nil {
		return m.Version
	}
	return ""
}

type LabelFilter struct {
	// expressions are ANDed together.
	Expressions          []*LabelFilter_Expression `protobuf:"bytes,1,rep,name=expressions,proto3" json:"expressions,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
	XXX_unrecognized     []byte                    `json:"-"`
	XXX_sizecache        int32                     `json:"-"`
}

func (m *LabelFilter) Reset()         { *m = LabelFilter{} }
func (m *LabelFilter) String() string { return proto.CompactTextString(m) }
func (*LabelFilter) ProtoMessage()    {}
func (*LabelFilter) Descriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{1}
}

func (m *LabelFilter) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_LabelFilter.Unmarshal(m, b)
}
func (m *LabelFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_LabelFilter.Marshal(b, m, deterministic)
}
func (m *LabelFilter) XXX_Merge(src proto.Message) {
	xxx_messageInfo_LabelFilter.Merge(m, src)
}
func (m *LabelFilter) XXX_Size() int {
	return xxx_messageInfo_LabelFilter.Size(m)
}
func (m *LabelFilter) XXX_DiscardUnknown() {
	xxx_messageInfo_LabelFilter.DiscardUnknown(m)
}

var xxx_messageInfo_LabelFilter proto.InternalMessageInfo

func (m *LabelFilter) GetExpressions() []*LabelFilter_Expression {
	if m != nil {
		return m.Expressions
	}
	return nil
}

type LabelFilter_Expression struct {
	Key                  string                          `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	Op                   LabelFilter_Expression_Operator `protobuf:"varint,2,opt,name=op,proto3,enum=flynn.api.v1.LabelFilter_Expression_Operator" json:"op,omitempty"`
	Values               []string                        `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                        `json:"-"`
	XXX_unrecognized     []byte                          `json:"-"`
	XXX_sizecache        int32                           `json:"-"`
}

func (m *LabelFilter_Expression) Reset()         { *m = LabelFilter_Expression{} }
func (m *LabelFilter_Expression) String() string { return proto.CompactTextString(m) }
func (*LabelFilter_Expression) ProtoMessage()    {}
func (*LabelFilter_Expression) Descriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{1, 0}
}

func (m *LabelFilter_Expression) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_LabelFilter_Expression.Unmarshal(m, b)
}
func (m *LabelFilter_Expression) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_LabelFilter_Expression.Marshal(b, m, deterministic)
}
func (m *LabelFilter_Expression) XXX_Merge(src proto.Message) {
	xxx_messageInfo_LabelFilter_Expression.Merge(m, src)
}
func (m *LabelFilter_Expression) XXX_Size() int {
	return xxx_messageInfo_LabelFilter_Expression.Size(m)
}
func (m *LabelFilter_Expression) XXX_DiscardUnknown() {
	xxx_messageInfo_LabelFilter_Expression.DiscardUnknown(m)
}

var xxx_messageInfo_LabelFilter_Expression proto.InternalMessageInfo

func (m *LabelFilter_Expression) GetKey() string {
	if m != nil {
		return m.Key
	}
	return ""
}

func (m *LabelFilter_Expression) GetOp() LabelFilter_Expression_Operator {
	if m != nil {
		return m.Op
	}
	return LabelFilter_Expression_OP_IN
}

func (m *LabelFilter_Expression) GetValues() []string {
	if m != nil {
		return m.Values
	}
	return nil
}

type StreamAppsRequest struct {
	// The maximum number of resources to return in the initial page.
	PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// Used for pagination. Must be a next_page_token returned from a previous response.
	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	// Specifies an optional list of resource names that should be looked up. The
	// list length must be smaller than page_size. This can be used to request a
	// known set of one or more resources and optionally receive updates about
	// them, and can also be used to retrieve a single resource.
	NameFilters []string `protobuf:"bytes,3,rep,name=name_filters,json=nameFilters,proto3" json:"name_filters,omitempty"`
	// filters are ORed
	LabelFilters []*LabelFilter `protobuf:"bytes,4,rep,name=label_filters,json=labelFilters,proto3" json:"label_filters,omitempty"`
	// When true, leaves the stream open and sends any updates to each resource
	// returned in the initial page until the stream is closed.
	StreamUpdates bool `protobuf:"varint,5,opt,name=stream_updates,json=streamUpdates,proto3" json:"stream_updates,omitempty"`
	// When true, leaves the stream open and sends newly created resources
	// matching the filters until the stream is closed. page_token must not be
	// set.
	StreamCreates        bool     `protobuf:"varint,6,opt,name=stream_creates,json=streamCreates,proto3" json:"stream_creates,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *StreamAppsRequest) Reset()         { *m = StreamAppsRequest{} }
func (m *StreamAppsRequest) String() string { return proto.CompactTextString(m) }
func (*StreamAppsRequest) ProtoMessage()    {}
func (*StreamAppsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{2}
}

func (m *StreamAppsRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_StreamAppsRequest.Unmarshal(m, b)
}
func (m *StreamAppsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_StreamAppsRequest.Marshal(b, m, deterministic)
}
func (m *StreamAppsRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_StreamAppsRequest.Merge(m, src)
}
func (m *StreamAppsRequest) XXX_Size() int {
	return xxx_messageInfo_StreamAppsRequest.Size(m)
}
func (m *StreamAppsRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_StreamAppsRequest.DiscardUnknown(m)
}

var xxx_messageInfo_StreamAppsRequest proto.InternalMessageInfo

func (m *StreamAppsRequest) GetPageSize() int32 {
	if m != nil {
		return m.PageSize
	}
	return 0
}

func (m *StreamAppsRequest) GetPageToken() string {
	if m != nil {
		return m.PageToken
	}
	return ""
}

func (m *StreamAppsRequest) GetNameFilters() []string {
	if m != nil {
		return m.NameFilters
	}
	return nil
}

func (m *StreamAppsRequest) GetLabelFilters() []*LabelFilter {
	if m != nil {
		return m.LabelFilters
	}
	return nil
}

func (m *StreamAppsRequest) GetStreamUpdates() bool {
	if m != nil {
		return m.StreamUpdates
	}
	return false
}

func (m *StreamAppsRequest) GetStreamCreates() bool {
	if m != nil {
		return m.StreamCreates
	}
	return false
}

type StreamAppsResponse struct {
	Apps []*App `protobuf:"bytes,1,rep,name=apps,proto3" json:"apps,omitempty"`
	// Set to true on the last response for the initial page.
	PageComplete         bool     `protobuf:"varint,2,opt,name=page_complete,json=pageComplete,proto3" json:"page_complete,omitempty"`
	NextPageToken        string   `protobuf:"bytes,3,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *StreamAppsResponse) Reset()         { *m = StreamAppsResponse{} }
func (m *StreamAppsResponse) String() string { return proto.CompactTextString(m) }
func (*StreamAppsResponse) ProtoMessage()    {}
func (*StreamAppsResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{3}
}

func (m *StreamAppsResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_StreamAppsResponse.Unmarshal(m, b)
}
func (m *StreamAppsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_StreamAppsResponse.Marshal(b, m, deterministic)
}
func (m *StreamAppsResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_StreamAppsResponse.Merge(m, src)
}
func (m *StreamAppsResponse) XXX_Size() int {
	return xxx_messageInfo_StreamAppsResponse.Size(m)
}
func (m *StreamAppsResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_StreamAppsResponse.DiscardUnknown(m)
}

var xxx_messageInfo_StreamAppsResponse proto.InternalMessageInfo

func (m *StreamAppsResponse) GetApps() []*App {
	if m != nil {
		return m.Apps
	}
	return nil
}

func (m *StreamAppsResponse) GetPageComplete() bool {
	if m != nil {
		return m.PageComplete
	}
	return false
}

func (m *StreamAppsResponse) GetNextPageToken() string {
	if m != nil {
		return m.NextPageToken
	}
	return ""
}

type StreamReleasesRequest struct {
	// The maximum number of resources to return in the initial page.
	PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// Used for pagination. Must be a next_page_token returned from a previous response.
	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	// Specifies an optional list of resource names that should be looked up. The
	// list length must be smaller than page_size. This can be used to request a
	// known set of one or more resources and optionally receive updates about
	// them, and can also be used to retrieve a single resource. Parent resource
	// names may also be used to filter resources.
	NameFilters []string `protobuf:"bytes,3,rep,name=name_filters,json=nameFilters,proto3" json:"name_filters,omitempty"`
	// filters are ORed
	LabelFilters []*LabelFilter `protobuf:"bytes,4,rep,name=label_filters,json=labelFilters,proto3" json:"label_filters,omitempty"`
	// When true, leaves the stream open and sends any updates (i.e. resource
	// deletions) to each resource returned in the initial page until the stream
	// is closed.
	StreamUpdates bool `protobuf:"varint,5,opt,name=stream_updates,json=streamUpdates,proto3" json:"stream_updates,omitempty"`
	// When true, leaves the stream open and sends newly created resources
	// matching the filters until the stream is closed. page_token must not be
	// set.
	StreamCreates        bool     `protobuf:"varint,6,opt,name=stream_creates,json=streamCreates,proto3" json:"stream_creates,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *StreamReleasesRequest) Reset()         { *m = StreamReleasesRequest{} }
func (m *StreamReleasesRequest) String() string { return proto.CompactTextString(m) }
func (*StreamReleasesRequest) ProtoMessage()    {}
func (*StreamReleasesRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{4}
}

func (m *StreamReleasesRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_StreamReleasesRequest.Unmarshal(m, b)
}
func (m *StreamReleasesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_StreamReleasesRequest.Marshal(b, m, deterministic)
}
func (m *StreamReleasesRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_StreamReleasesRequest.Merge(m, src)
}
func (m *StreamReleasesRequest) XXX_Size() int {
	return xxx_messageInfo_StreamReleasesRequest.Size(m)
}
func (m *StreamReleasesRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_StreamReleasesRequest.DiscardUnknown(m)
}

var xxx_messageInfo_StreamReleasesRequest proto.InternalMessageInfo

func (m *StreamReleasesRequest) GetPageSize() int32 {
	if m != nil {
		return m.PageSize
	}
	return 0
}

func (m *StreamReleasesRequest) GetPageToken() string {
	if m != nil {
		return m.PageToken
	}
	return ""
}

func (m *StreamReleasesRequest) GetNameFilters() []string {
	if m != nil {
		return m.NameFilters
	}
	return nil
}

func (m *StreamReleasesRequest) GetLabelFilters() []*LabelFilter {
	if m != nil {
		return m.LabelFilters
	}
	return nil
}

func (m *StreamReleasesRequest) GetStreamUpdates() bool {
	if m != nil {
		return m.StreamUpdates
	}
	return false
}

func (m *StreamReleasesRequest) GetStreamCreates() bool {
	if m != nil {
		return m.StreamCreates
	}
	return false
}

type StreamReleasesResponse struct {
	Releases []*Release `protobuf:"bytes,1,rep,name=releases,proto3" json:"releases,omitempty"`
	// Set to true on the last response for the initial page.
	PageComplete         bool     `protobuf:"varint,2,opt,name=page_complete,json=pageComplete,proto3" json:"page_complete,omitempty"`
	NextPageToken        string   `protobuf:"bytes,3,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *StreamReleasesResponse) Reset()         { *m = StreamReleasesResponse{} }
func (m *StreamReleasesResponse) String() string { return proto.CompactTextString(m) }
func (*StreamReleasesResponse) ProtoMessage()    {}
func (*StreamReleasesResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{5}
}

func (m *StreamReleasesResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_StreamReleasesResponse.Unmarshal(m, b)
}
func (m *StreamReleasesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_StreamReleasesResponse.Marshal(b, m, deterministic)
}
func (m *StreamReleasesResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_StreamReleasesResponse.Merge(m, src)
}
func (m *StreamReleasesResponse) XXX_Size() int {
	return xxx_messageInfo_StreamReleasesResponse.Size(m)
}
func (m *StreamReleasesResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_StreamReleasesResponse.DiscardUnknown(m)
}

var xxx_messageInfo_StreamReleasesResponse proto.InternalMessageInfo

func (m *StreamReleasesResponse) GetReleases() []*Release {
	if m != nil {
		return m.Releases
	}
	return nil
}

func (m *StreamReleasesResponse) GetPageComplete() bool {
	if m != nil {
		return m.PageComplete
	}
	return false
}

func (m *StreamReleasesResponse) GetNextPageToken() string {
	if m != nil {
		return m.NextPageToken
	}
	return ""
}

type StreamScalesRequest struct {
	// The maximum number of resources to return in the initial page.
	PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// Used for pagination. Must be a next_page_token returned from a previous response.
	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	// Specifies an optional list of resource names that should be looked up. The
	// list length must be smaller than page_size. This can be used to request a
	// known set of one or more resources and optionally receive updates about
	// them, and can also be used to retrieve a single resource. Parent resource
	// names may also be used to filter resources.
	NameFilters []string `protobuf:"bytes,3,rep,name=name_filters,json=nameFilters,proto3" json:"name_filters,omitempty"`
	// When set, only includes resources having one of the specified states
	StateFilters []ScaleRequestState `protobuf:"varint,4,rep,packed,name=state_filters,json=stateFilters,proto3,enum=flynn.api.v1.ScaleRequestState" json:"state_filters,omitempty"`
	// When true, leaves the stream open and sends any updates to each resource
	// returned in the initial page until the stream is closed.
	StreamUpdates bool `protobuf:"varint,5,opt,name=stream_updates,json=streamUpdates,proto3" json:"stream_updates,omitempty"`
	// When true, leaves the stream open and sends newly created resources
	// matching the filters until the stream is closed. page_token must not be
	// set.
	StreamCreates        bool     `protobuf:"varint,6,opt,name=stream_creates,json=streamCreates,proto3" json:"stream_creates,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *StreamScalesRequest) Reset()         { *m = StreamScalesRequest{} }
func (m *StreamScalesRequest) String() string { return proto.CompactTextString(m) }
func (*StreamScalesRequest) ProtoMessage()    {}
func (*StreamScalesRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{6}
}

func (m *StreamScalesRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_StreamScalesRequest.Unmarshal(m, b)
}
func (m *StreamScalesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_StreamScalesRequest.Marshal(b, m, deterministic)
}
func (m *StreamScalesRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_StreamScalesRequest.Merge(m, src)
}
func (m *StreamScalesRequest) XXX_Size() int {
	return xxx_messageInfo_StreamScalesRequest.Size(m)
}
func (m *StreamScalesRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_StreamScalesRequest.DiscardUnknown(m)
}

var xxx_messageInfo_StreamScalesRequest proto.InternalMessageInfo

func (m *StreamScalesRequest) GetPageSize() int32 {
	if m != nil {
		return m.PageSize
	}
	return 0
}

func (m *StreamScalesRequest) GetPageToken() string {
	if m != nil {
		return m.PageToken
	}
	return ""
}

func (m *StreamScalesRequest) GetNameFilters() []string {
	if m != nil {
		return m.NameFilters
	}
	return nil
}

func (m *StreamScalesRequest) GetStateFilters() []ScaleRequestState {
	if m != nil {
		return m.StateFilters
	}
	return nil
}

func (m *StreamScalesRequest) GetStreamUpdates() bool {
	if m != nil {
		return m.StreamUpdates
	}
	return false
}

func (m *StreamScalesRequest) GetStreamCreates() bool {
	if m != nil {
		return m.StreamCreates
	}
	return false
}

type StreamScalesResponse struct {
	ScaleRequests []*ScaleRequest `protobuf:"bytes,1,rep,name=scale_requests,json=scaleRequests,proto3" json:"scale_requests,omitempty"`
	// Set to true on the last response for the initial page.
	PageComplete         bool     `protobuf:"varint,2,opt,name=page_complete,json=pageComplete,proto3" json:"page_complete,omitempty"`
	NextPageToken        string   `protobuf:"bytes,3,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *StreamScalesResponse) Reset()         { *m = StreamScalesResponse{} }
func (m *StreamScalesResponse) String() string { return proto.CompactTextString(m) }
func (*StreamScalesResponse) ProtoMessage()    {}
func (*StreamScalesResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{7}
}

func (m *StreamScalesResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_StreamScalesResponse.Unmarshal(m, b)
}
func (m *StreamScalesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_StreamScalesResponse.Marshal(b, m, deterministic)
}
func (m *StreamScalesResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_StreamScalesResponse.Merge(m, src)
}
func (m *StreamScalesResponse) XXX_Size() int {
	return xxx_messageInfo_StreamScalesResponse.Size(m)
}
func (m *StreamScalesResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_StreamScalesResponse.DiscardUnknown(m)
}

var xxx_messageInfo_StreamScalesResponse proto.InternalMessageInfo

func (m *StreamScalesResponse) GetScaleRequests() []*ScaleRequest {
	if m != nil {
		return m.ScaleRequests
	}
	return nil
}

func (m *StreamScalesResponse) GetPageComplete() bool {
	if m != nil {
		return m.PageComplete
	}
	return false
}

func (m *StreamScalesResponse) GetNextPageToken() string {
	if m != nil {
		return m.NextPageToken
	}
	return ""
}

type StreamDeploymentsRequest struct {
	// The maximum number of resources to return in the initial page.
	PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// Used for pagination. Must be a next_page_token returned from a previous response.
	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	// Specifies an optional list of resource names that should be looked up. The
	// list length must be smaller than page_size. This can be used to request a
	// known set of one or more resources and optionally receive updates about
	// them, and can also be used to retrieve a single resource. Parent resource
	// names may also be used to filter resources.
	NameFilters []string `protobuf:"bytes,3,rep,name=name_filters,json=nameFilters,proto3" json:"name_filters,omitempty"`
	// Specified an optional list of release types. If provided, only resources
	// with these release types will be returned.
	TypeFilters []ReleaseType `protobuf:"varint,4,rep,packed,name=type_filters,json=typeFilters,proto3,enum=flynn.api.v1.ReleaseType" json:"type_filters,omitempty"`
	// Specifies an optional list of statuses. If provided, only deployments
	// matching one of the given statuses will be returned.
	StatusFilters []DeploymentStatus `protobuf:"varint,6,rep,packed,name=status_filters,json=statusFilters,proto3,enum=flynn.api.v1.DeploymentStatus" json:"status_filters,omitempty"`
	// When true, leaves the stream open and sends any updates to each resource
	// returned in the initial page until the stream is closed.
	StreamUpdates bool `protobuf:"varint,7,opt,name=stream_updates,json=streamUpdates,proto3" json:"stream_updates,omitempty"`
	// When true, leaves the stream open and sends newly created resources
	// matching the filters until the stream is closed. page_token must not be
	// set.
	StreamCreates        bool     `protobuf:"varint,8,opt,name=stream_creates,json=streamCreates,proto3" json:"stream_creates,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *StreamDeploymentsRequest) Reset()         { *m = StreamDeploymentsRequest{} }
func (m *StreamDeploymentsRequest) String() string { return proto.CompactTextString(m) }
func (*StreamDeploymentsRequest) ProtoMessage()    {}
func (*StreamDeploymentsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{8}
}

func (m *StreamDeploymentsRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_StreamDeploymentsRequest.Unmarshal(m, b)
}
func (m *StreamDeploymentsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_StreamDeploymentsRequest.Marshal(b, m, deterministic)
}
func (m *StreamDeploymentsRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_StreamDeploymentsRequest.Merge(m, src)
}
func (m *StreamDeploymentsRequest) XXX_Size() int {
	return xxx_messageInfo_StreamDeploymentsRequest.Size(m)
}
func (m *StreamDeploymentsRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_StreamDeploymentsRequest.DiscardUnknown(m)
}

var xxx_messageInfo_StreamDeploymentsRequest proto.InternalMessageInfo

func (m *StreamDeploymentsRequest) GetPageSize() int32 {
	if m != nil {
		return m.PageSize
	}
	return 0
}

func (m *StreamDeploymentsRequest) GetPageToken() string {
	if m != nil {
		return m.PageToken
	}
	return ""
}

func (m *StreamDeploymentsRequest) GetNameFilters() []string {
	if m != nil {
		return m.NameFilters
	}
	return nil
}

func (m *StreamDeploymentsRequest) GetTypeFilters() []ReleaseType {
	if m != nil {
		return m.TypeFilters
	}
	return nil
}

func (m *StreamDeploymentsRequest) GetStatusFilters() []DeploymentStatus {
	if m != nil {
		return m.StatusFilters
	}
	return nil
}

func (m *StreamDeploymentsRequest) GetStreamUpdates() bool {
	if m != nil {
		return m.StreamUpdates
	}
	return false
}

func (m *StreamDeploymentsRequest) GetStreamCreates() bool {
	if m != nil {
		return m.StreamCreates
	}
	return false
}

type StreamDeploymentsResponse struct {
	Deployments []*ExpandedDeployment `protobuf:"bytes,1,rep,name=deployments,proto3" json:"deployments,omitempty"`
	// Set to true on the last response for the initial page.
	PageComplete         bool     `protobuf:"varint,2,opt,name=page_complete,json=pageComplete,proto3" json:"page_complete,omitempty"`
	NextPageToken        string   `protobuf:"bytes,3,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *StreamDeploymentsResponse) Reset()         { *m = StreamDeploymentsResponse{} }
func (m *StreamDeploymentsResponse) String() string { return proto.CompactTextString(m) }
func (*StreamDeploymentsResponse) ProtoMessage()    {}
func (*StreamDeploymentsResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{9}
}

func (m *StreamDeploymentsResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_StreamDeploymentsResponse.Unmarshal(m, b)
}
func (m *StreamDeploymentsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_StreamDeploymentsResponse.Marshal(b, m, deterministic)
}
func (m *StreamDeploymentsResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_StreamDeploymentsResponse.Merge(m, src)
}
func (m *StreamDeploymentsResponse) XXX_Size() int {
	return xxx_messageInfo_StreamDeploymentsResponse.Size(m)
}
func (m *StreamDeploymentsResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_StreamDeploymentsResponse.DiscardUnknown(m)
}

var xxx_messageInfo_StreamDeploymentsResponse proto.InternalMessageInfo

func (m *StreamDeploymentsResponse) GetDeployments() []*ExpandedDeployment {
	if m != nil {
		return m.Deployments
	}
	return nil
}

func (m *StreamDeploymentsResponse) GetPageComplete() bool {
	if m != nil {
		return m.PageComplete
	}
	return false
}

func (m *StreamDeploymentsResponse) GetNextPageToken() string {
	if m != nil {
		return m.NextPageToken
	}
	return ""
}

type UpdateAppRequest struct {
	App                  *App                  `protobuf:"bytes,1,opt,name=app,proto3" json:"app,omitempty"`
	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *UpdateAppRequest) Reset()         { *m = UpdateAppRequest{} }
func (m *UpdateAppRequest) String() string { return proto.CompactTextString(m) }
func (*UpdateAppRequest) ProtoMessage()    {}
func (*UpdateAppRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{10}
}

func (m *UpdateAppRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UpdateAppRequest.Unmarshal(m, b)
}
func (m *UpdateAppRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UpdateAppRequest.Marshal(b, m, deterministic)
}
func (m *UpdateAppRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UpdateAppRequest.Merge(m, src)
}
func (m *UpdateAppRequest) XXX_Size() int {
	return xxx_messageInfo_UpdateAppRequest.Size(m)
}
func (m *UpdateAppRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_UpdateAppRequest.DiscardUnknown(m)
}

var xxx_messageInfo_UpdateAppRequest proto.InternalMessageInfo

func (m *UpdateAppRequest) GetApp() *App {
	if m != nil {
		return m.App
	}
	return nil
}

func (m *UpdateAppRequest) GetUpdateMask() *field_mask.FieldMask {
	if m != nil {
		return m.UpdateMask
	}
	return nil
}

type CreateScaleRequest struct {
	// parent = "apps/APP_ID/releases/RELEASE_ID"
	Parent               string                            `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	Processes            map[string]int32                  `protobuf:"bytes,2,rep,name=processes,proto3" json:"processes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
	Tags                 map[string]*DeploymentProcessTags `protobuf:"bytes,3,rep,name=tags,proto3" json:"tags,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	XXX_NoUnkeyedLiteral struct{}                          `json:"-"`
	XXX_unrecognized     []byte                            `json:"-"`
	XXX_sizecache        int32                             `json:"-"`
}

func (m *CreateScaleRequest) Reset()         { *m = CreateScaleRequest{} }
func (m *CreateScaleRequest) String() string { return proto.CompactTextString(m) }
func (*CreateScaleRequest) ProtoMessage()    {}
func (*CreateScaleRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{11}
}

func (m *CreateScaleRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CreateScaleRequest.Unmarshal(m, b)
}
func (m *CreateScaleRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CreateScaleRequest.Marshal(b, m, deterministic)
}
func (m *CreateScaleRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CreateScaleRequest.Merge(m, src)
}
func (m *CreateScaleRequest) XXX_Size() int {
	return xxx_messageInfo_CreateScaleRequest.Size(m)
}
func (m *CreateScaleRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_CreateScaleRequest.DiscardUnknown(m)
}

var xxx_messageInfo_CreateScaleRequest proto.InternalMessageInfo

func (m *CreateScaleRequest) GetParent() string {
	if m != nil {
		return m.Parent
	}
	return ""
}

func (m *CreateScaleRequest) GetProcesses() map[string]int32 {
	if m != nil {
		return m.Processes
	}
	return nil
}

func (m *CreateScaleRequest) GetTags() map[string]*DeploymentProcessTags {
	if m != nil {
		return m.Tags
	}
	return nil
}

type CreateReleaseRequest struct {
	// parent = "apps/APP_ID"
	Parent               string   `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	Release              *Release `protobuf:"bytes,2,opt,name=release,proto3" json:"release,omitempty"`
	RequestId            string   `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CreateReleaseRequest) Reset()         { *m = CreateReleaseRequest{} }
func (m *CreateReleaseRequest) String() string { return proto.CompactTextString(m) }
func (*CreateReleaseRequest) ProtoMessage()    {}
func (*CreateReleaseRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{12}
}

func (m *CreateReleaseRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CreateReleaseRequest.Unmarshal(m, b)
}
func (m *CreateReleaseRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CreateReleaseRequest.Marshal(b, m, deterministic)
}
func (m *CreateReleaseRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CreateReleaseRequest.Merge(m, src)
}
func (m *CreateReleaseRequest) XXX_Size() int {
	return xxx_messageInfo_CreateReleaseRequest.Size(m)
}
func (m *CreateReleaseRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_CreateReleaseRequest.DiscardUnknown(m)
}

var xxx_messageInfo_CreateReleaseRequest proto.InternalMessageInfo

func (m *CreateReleaseRequest) GetParent() string {
	if m != nil {
		return m.Parent
	}
	return ""
}

func (m *CreateReleaseRequest) GetRelease() *Release {
	if m != nil {
		return m.Release
	}
	return nil
}

func (m *CreateReleaseRequest) GetRequestId() string {
	if m != nil {
		return m.RequestId
	}
	return ""
}

type CreateDeploymentRequest struct {
	// parent = "apps/APP_ID/releases/RELEASE_ID"
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// optional scale request
	ScaleRequest         *CreateScaleRequest `protobuf:"bytes,2,opt,name=scale_request,json=scaleRequest,proto3" json:"scale_request,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

func (m *CreateDeploymentRequest) Reset()         { *m = CreateDeploymentRequest{} }
func (m *CreateDeploymentRequest) String() string { return proto.CompactTextString(m) }
func (*CreateDeploymentRequest) ProtoMessage()    {}
func (*CreateDeploymentRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{13}
}

func (m *CreateDeploymentRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CreateDeploymentRequest.Unmarshal(m, b)
}
func (m *CreateDeploymentRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CreateDeploymentRequest.Marshal(b, m, deterministic)
}
func (m *CreateDeploymentRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CreateDeploymentRequest.Merge(m, src)
}
func (m *CreateDeploymentRequest) XXX_Size() int {
	return xxx_messageInfo_CreateDeploymentRequest.Size(m)
}
func (m *CreateDeploymentRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_CreateDeploymentRequest.DiscardUnknown(m)
}

var xxx_messageInfo_CreateDeploymentRequest proto.InternalMessageInfo

func (m *CreateDeploymentRequest) GetParent() string {
	if m != nil {
		return m.Parent
	}
	return ""
}

func (m *CreateDeploymentRequest) GetScaleRequest() *CreateScaleRequest {
	if m != nil {
		return m.ScaleRequest
	}
	return nil
}

type App struct {
	// name = "apps/APP_ID"
	Name          string            `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	DisplayName   string            `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	Labels        map[string]string `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	DeployTimeout int32             `protobuf:"varint,4,opt,name=deploy_timeout,json=deployTimeout,proto3" json:"deploy_timeout,omitempty"`
	Strategy      string            `protobuf:"bytes,5,opt,name=strategy,proto3" json:"strategy,omitempty"`
	// release = Release.name
	Release              string               `protobuf:"bytes,6,opt,name=release,proto3" json:"release,omitempty"`
	CreateTime           *timestamp.Timestamp `protobuf:"bytes,7,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	UpdateTime           *timestamp.Timestamp `protobuf:"bytes,8,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
	DeleteTime           *timestamp.Timestamp `protobuf:"bytes,9,opt,name=delete_time,json=deleteTime,proto3" json:"delete_time,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *App) Reset()         { *m = App{} }
func (m *App) String() string { return proto.CompactTextString(m) }
func (*App) ProtoMessage()    {}
func (*App) Descriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{14}
}

func (m *App) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_App.Unmarshal(m, b)
}
func (m *App) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_App.Marshal(b, m, deterministic)
}
func (m *App) XXX_Merge(src proto.Message) {
	xxx_messageInfo_App.Merge(m, src)
}
func (m *App) XXX_Size() int {
	return xxx_messageInfo_App.Size(m)
}
func (m *App) XXX_DiscardUnknown() {
	xxx_messageInfo_App.DiscardUnknown(m)
}

var xxx_messageInfo_App proto.InternalMessageInfo

func (m *App) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *App) GetDisplayName() string {
	if m != nil {
		return m.DisplayName
	}
	return ""
}

func (m *App) GetLabels() map[string]string {
	if m != nil {
		return m.Labels
	}
	return nil
}

func (m *App) GetDeployTimeout() int32 {
	if m != nil {
		return m.DeployTimeout
	}
	return 0
}

func (m *App) GetStrategy() string {
	if m != nil {
		return m.Strategy
	}
	return ""
}

func (m *App) GetRelease() string {
	if m != nil {
		return m.Release
	}
	return ""
}

func (m *App) GetCreateTime() *timestamp.Timestamp {
	if m != nil {
		return m.CreateTime
	}
	return nil
}

func (m *App) GetUpdateTime() *timestamp.Timestamp {
	if m != nil {
		return m.UpdateTime
	}
	return nil
}

func (m *App) GetDeleteTime() *timestamp.Timestamp {
	if m != nil {
		return m.DeleteTime
	}
	return nil
}

// See github.com/flynn/flynn/host/types Mount
type HostHealthCheck struct {
	// Type is one of tcp, http, https
	Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
	// Interval is the time to wait between checks after the service has been
	// marked as up. It defaults to two seconds.
	Interval *duration.Duration `protobuf:"bytes,3,opt,name=interval,proto3" json:"interval,omitempty"`
	// Threshold is the number of consecutive checks of the same status before
	// a service will be marked as up or down after coming up for the first
	// time. It defaults to 2.
	Threshold int32 `protobuf:"varint,4,opt,name=threshold,proto3" json:"threshold,omitempty"`
	// If KillDown is true, the job will be killed if the service goes down (or
	// does not come up)
	KillDown bool `protobuf:"varint,5,opt,name=kill_down,json=killDown,proto3" json:"kill_down,omitempty"`
	// StartTimeout is the maximum duration that a service can take to come up
	// for the first time if KillDown is true. It defaults to ten seconds.
	StartTimeout *duration.Duration `protobuf:"bytes,6,opt,name=start_timeout,json=startTimeout,proto3" json:"start_timeout,omitempty"`
	// Extra optional config fields for http/https checks
	Path                 string   `protobuf:"bytes,7,opt,name=path,proto3" json:"path,omitempty"`
	Host                 string   `protobuf:"bytes,8,opt,name=host,proto3" json:"host,omitempty"`
	Match                string   `protobuf:"bytes,9,opt,name=match,proto3" json:"match,omitempty"`
	Status               int32    `protobuf:"varint,10,opt,name=status,proto3" json:"status,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *HostHealthCheck) Reset()         { *m = HostHealthCheck{} }
func (m *HostHealthCheck) String() string { return proto.CompactTextString(m) }
func (*HostHealthCheck) ProtoMessage()    {}
func (*HostHealthCheck) Descriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{15}
}

func (m *HostHealthCheck) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_HostHealthCheck.Unmarshal(m, b)
}
func (m *HostHealthCheck) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_HostHealthCheck.Marshal(b, m, deterministic)
}
func (m *HostHealthCheck) XXX_Merge(src proto.Message) {
	xxx_messageInfo_HostHealthCheck.Merge(m, src)
}
func (m *HostHealthCheck) XXX_Size() int {
	return xxx_messageInfo_HostHealthCheck.Size(m)
}
func (m *HostHealthCheck) XXX_DiscardUnknown() {
	xxx_messageInfo_HostHealthCheck.DiscardUnknown(m)
}

var xxx_messageInfo_HostHealthCheck proto.InternalMessageInfo

func (m *HostHealthCheck) GetType() string {
	if m != nil {
		return m.Type
	}
	return ""
}

func (m *HostHealthCheck) GetInterval() *duration.Duration {
	if m != nil {
		return m.Interval
	}
	return nil
}

func (m *HostHealthCheck) GetThreshold() int32 {
	if m != nil {
		return m.Threshold
	}
	return 0
}

func (m *HostHealthCheck) GetKillDown() bool {
	if m != nil {
		return m.KillDown
	}
	return false
}

func (m *HostHealthCheck) GetStartTimeout() *duration.Duration {
	if m != nil {
		return m.StartTimeout
	}
	return nil
}

func (m *HostHealthCheck) GetPath() string {
	if m != nil {
		return m.Path
	}
	return ""
}

func (m *HostHealthCheck) GetHost() string {
	if m != nil {
		return m.Host
	}
	return ""
}

func (m *HostHealthCheck) GetMatch() string {
	if m != nil {
		return m.Match
	}
	return ""
}

func (m *HostHealthCheck) GetStatus() int32 {
	if m != nil {
		return m.Status
	}
	return 0
}

// See github.com/flynn/flynn/host/types Mount
type HostService struct {
	DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// Create the service in service discovery
	Create               bool             `protobuf:"varint,2,opt,name=create,proto3" json:"create,omitempty"`
	Check                *HostHealthCheck `protobuf:"bytes,3,opt,name=check,proto3" json:"check,omitempty"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *HostService) Reset()         { *m = HostService{} }
func (m *HostService) String() string { return proto.CompactTextString(m) }
func (*HostService) ProtoMessage()    {}
func (*HostService) Descriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{16}
}

func (m *HostService) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_HostService.Unmarshal(m, b)
}
func (m *HostService) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_HostService.Marshal(b, m, deterministic)
}
func (m *HostService) XXX_Merge(src proto.Message) {
	xxx_messageInfo_HostService.Merge(m, src)
}
func (m *HostService) XXX_Size() int {
	return xxx_messageInfo_HostService.Size(m)
}
func (m *HostService) XXX_DiscardUnknown() {
	xxx_messageInfo_HostService.DiscardUnknown(m)
}

var xxx_messageInfo_HostService proto.InternalMessageInfo

func (m *HostService) GetDisplayName() string {
	if m != nil {
		return m.DisplayName
	}
	return ""
}

func (m *HostService) GetCreate() bool {
	if m != nil {
		return m.Create
	}
	return false
}

func (m *HostService) GetCheck() *HostHealthCheck {
	if m != nil {
		return m.Check
	}
	return nil
}

type Port struct {
	Port                 int32        `protobuf:"varint,1,opt,name=port,proto3" json:"port,omitempty"`
	Proto                string       `protobuf:"bytes,2,opt,name=proto,proto3" json:"proto,omitempty"`
	Service              *HostService `protobuf:"bytes,3,opt,name=service,proto3" json:"service,omitempty"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

func (m *Port) Reset()         { *m = Port{} }
func (m *Port) String() string { return proto.CompactTextString(m) }
func (*Port) ProtoMessage()    {}
func (*Port) Descriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{17}
}

func (m *Port) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Port.Unmarshal(m, b)
}
func (m *Port) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Port.Marshal(b, m, deterministic)
}
func (m *Port) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Port.Merge(m, src)
}
func (m *Port) XXX_Size() int {
	return xxx_messageInfo_Port.Size(m)
}
func (m *Port) XXX_DiscardUnknown() {
	xxx_messageInfo_Port.DiscardUnknown(m)
}

var xxx_messageInfo_Port proto.InternalMessageInfo

func (m *Port) GetPort() int32 {
	if m != nil {
		return m.Port
	}
	return 0
}

func (m *Port) GetProto() string {
	if m != nil {
		return m.Proto
	}
	return ""
}

func (m *Port) GetService() *HostService {
	if m != nil {
		return m.Service
	}
	return nil
}

type VolumeReq struct {
	Path                 string   `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
	DeleteOnStop         bool     `protobuf:"varint,2,opt,name=delete_on_stop,json=deleteOnStop,proto3" json:"delete_on_stop,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *VolumeReq) Reset()         { *m = VolumeReq{} }
func (m *VolumeReq) String() string { return proto.CompactTextString(m) }
func (*VolumeReq) ProtoMessage()    {}
func (*VolumeReq) Descriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{18}
}

func (m *VolumeReq) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_VolumeReq.Unmarshal(m, b)
}
func (m *VolumeReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_VolumeReq.Marshal(b, m, deterministic)
}
func (m *VolumeReq) XXX_Merge(src proto.Message) {
	xxx_messageInfo_VolumeReq.Merge(m, src)
}
func (m *VolumeReq) XXX_Size() int {
	return xxx_messageInfo_VolumeReq.Size(m)
}
func (m *VolumeReq) XXX_DiscardUnknown() {
	xxx_messageInfo_VolumeReq.DiscardUnknown(m)
}

var xxx_messageInfo_VolumeReq proto.InternalMessageInfo

func (m *VolumeReq) GetPath() string {
	if m != nil {
		return m.Path
	}
	return ""
}

func (m *VolumeReq) GetDeleteOnStop() bool {
	if m != nil {
		return m.DeleteOnStop
	}
	return false
}

// See github.com/flynn/flynn/host/resource Spec
type HostResourceSpec struct {
	// Request, if set, is the amount of resource a job expects to consume,
	// so the job should only be placed on a host with at least this amount
	// of resource available, and once scheduled this amount of resource
	// should then be unavailable on the given host.
	Request int64 `protobuf:"varint,1,opt,name=request,proto3" json:"request,omitempty"`
	// Limit, if set, is an upper limit on the amount of resource a job can
	// consume, the outcome of hitting this limit being implementation
	// defined (e.g. a system error, throttling, catchable / uncatchable
	// signals etc.)
	Limit                int64    `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *HostResourceSpec) Reset()         { *m = HostResourceSpec{} }
func (m *HostResourceSpec) String() string { return proto.CompactTextString(m) }
func (*HostResourceSpec) ProtoMessage()    {}
func (*HostResourceSpec) Descriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{19}
}

func (m *HostResourceSpec) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_HostResourceSpec.Unmarshal(m, b)
}
func (m *HostResourceSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_HostResourceSpec.Marshal(b, m, deterministic)
}
func (m *HostResourceSpec) XXX_Merge(src proto.Message) {
	xxx_messageInfo_HostResourceSpec.Merge(m, src)
}
func (m *HostResourceSpec) XXX_Size() int {
	return xxx_messageInfo_HostResourceSpec.Size(m)
}
func (m *HostResourceSpec) XXX_DiscardUnknown() {
	xxx_messageInfo_HostResourceSpec.DiscardUnknown(m)
}

var xxx_messageInfo_HostResourceSpec proto.InternalMessageInfo

func (m *HostResourceSpec) GetRequest() int64 {
	if m != nil {
		return m.Request
	}
	return 0
}

func (m *HostResourceSpec) GetLimit() int64 {
	if m != nil {
		return m.Limit
	}
	return 0
}

// See github.com/flynn/flynn/host/types Mount
type HostMount struct {
	Location             string   `protobuf:"bytes,1,opt,name=location,proto3" json:"location,omitempty"`
	Target               string   `protobuf:"bytes,2,opt,name=target,proto3" json:"target,omitempty"`
	Writeable            bool     `protobuf:"varint,3,opt,name=writeable,proto3" json:"writeable,omitempty"`
	Device               string   `protobuf:"bytes,4,opt,name=device,proto3" json:"device,omitempty"`
	Data                 string   `protobuf:"bytes,5,opt,name=data,proto3" json:"data,omitempty"`
	Flags                int32    `protobuf:"varint,6,opt,name=flags,proto3" json:"flags,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *HostMount) Reset()         { *m = HostMount{} }
func (m *HostMount) String() string { return proto.CompactTextString(m) }
func (*HostMount) ProtoMessage()    {}
func (*HostMount) Descriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{20}
}

func (m *HostMount) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_HostMount.Unmarshal(m, b)
}
func (m *HostMount) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_HostMount.Marshal(b, m, deterministic)
}
func (m *HostMount) XXX_Merge(src proto.Message) {
	xxx_messageInfo_HostMount.Merge(m, src)
}
func (m *HostMount) XXX_Size() int {
	return xxx_messageInfo_HostMount.Size(m)
}
func (m *HostMount) XXX_DiscardUnknown() {
	xxx_messageInfo_HostMount.DiscardUnknown(m)
}

var xxx_messageInfo_HostMount proto.InternalMessageInfo

func (m *HostMount) GetLocation() string {
	if m != nil {
		return m.Location
	}
	return ""
}

func (m *HostMount) GetTarget() string {
	if m != nil {
		return m.Target
	}
	return ""
}

func (m *HostMount) GetWriteable() bool {
	if m != nil {
		return m.Writeable
	}
	return false
}

func (m *HostMount) GetDevice() string {
	if m != nil {
		return m.Device
	}
	return ""
}

func (m *HostMount) GetData() string {
	if m != nil {
		return m.Data
	}
	return ""
}

func (m *HostMount) GetFlags() int32 {
	if m != nil {
		return m.Flags
	}
	return 0
}

// See github.com/opencontainers/runc/libcontainer/configs Device
type LibContainerDevice struct {
	// Device type, block, char, etc.
	Type int32 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"`
	// Path to the device.
	Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
	// Major is the device's major number.
	Major int64 `protobuf:"varint,3,opt,name=major,proto3" json:"major,omitempty"`
	// Minor is the device's minor number.
	Minor int64 `protobuf:"varint,4,opt,name=minor,proto3" json:"minor,omitempty"`
	// Cgroup permissions format, rwm.
	Permissions string `protobuf:"bytes,5,opt,name=permissions,proto3" json:"permissions,omitempty"`
	// FileMode permission bits for the device.
	FileMode uint32 `protobuf:"varint,6,opt,name=file_mode,json=fileMode,proto3" json:"file_mode,omitempty"`
	// Uid of the device.
	Uid uint32 `protobuf:"varint,7,opt,name=uid,proto3" json:"uid,omitempty"`
	// Gid of the device.
	Gid uint32 `protobuf:"varint,8,opt,name=gid,proto3" json:"gid,omitempty"`
	// Write the file to the allowed list
	Allow                bool     `protobuf:"varint,9,opt,name=allow,proto3" json:"allow,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *LibContainerDevice) Reset()         { *m = LibContainerDevice{} }
func (m *LibContainerDevice) String() string { return proto.CompactTextString(m) }
func (*LibContainerDevice) ProtoMessage()    {}
func (*LibContainerDevice) Descriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{21}
}

func (m *LibContainerDevice) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_LibContainerDevice.Unmarshal(m, b)
}
func (m *LibContainerDevice) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_LibContainerDevice.Marshal(b, m, deterministic)
}
func (m *LibContainerDevice) XXX_Merge(src proto.Message) {
	xxx_messageInfo_LibContainerDevice.Merge(m, src)
}
func (m *LibContainerDevice) XXX_Size() int {
	return xxx_messageInfo_LibContainerDevice.Size(m)
}
func (m *LibContainerDevice) XXX_DiscardUnknown() {
	xxx_messageInfo_LibContainerDevice.DiscardUnknown(m)
}

var xxx_messageInfo_LibContainerDevice proto.InternalMessageInfo

func (m *LibContainerDevice) GetType() int32 {
	if m != nil {
		return m.Type
	}
	return 0
}

func (m *LibContainerDevice) GetPath() string {
	if m != nil {
		return m.Path
	}
	return ""
}

func (m *LibContainerDevice) GetMajor() int64 {
	if m != nil {
		return m.Major
	}
	return 0
}

func (m *LibContainerDevice) GetMinor() int64 {
	if m != nil {
		return m.Minor
	}
	return 0
}

func (m *LibContainerDevice) GetPermissions() string {
	if m != nil {
		return m.Permissions
	}
	return ""
}

func (m *LibContainerDevice) GetFileMode() uint32 {
	if m != nil {
		return m.FileMode
	}
	return 0
}

func (m *LibContainerDevice) GetUid() uint32 {
	if m != nil {
		return m.Uid
	}
	return 0
}

func (m *LibContainerDevice) GetGid() uint32 {
	if m != nil {
		return m.Gid
	}
	return 0
}

func (m *LibContainerDevice) GetAllow() bool {
	if m != nil {
		return m.Allow
	}
	return false
}

type ProcessType struct {
	Args                 []string                     `protobuf:"bytes,1,rep,name=args,proto3" json:"args,omitempty"`
	Env                  map[string]string            `protobuf:"bytes,2,rep,name=env,proto3" json:"env,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	Ports                []*Port                      `protobuf:"bytes,3,rep,name=ports,proto3" json:"ports,omitempty"`
	Volumes              []*VolumeReq                 `protobuf:"bytes,4,rep,name=volumes,proto3" json:"volumes,omitempty"`
	Omni                 bool                         `protobuf:"varint,5,opt,name=omni,proto3" json:"omni,omitempty"`
	HostNetwork          bool                         `protobuf:"varint,6,opt,name=host_network,json=hostNetwork,proto3" json:"host_network,omitempty"`
	HostPidNamespace     bool                         `protobuf:"varint,7,opt,name=host_pid_namespace,json=hostPidNamespace,proto3" json:"host_pid_namespace,omitempty"`
	Service              string                       `protobuf:"bytes,8,opt,name=service,proto3" json:"service,omitempty"`
	Resurrect            bool                         `protobuf:"varint,9,opt,name=resurrect,proto3" json:"resurrect,omitempty"`
	Resources            map[string]*HostResourceSpec `protobuf:"bytes,10,rep,name=resources,proto3" json:"resources,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	Mounts               []*HostMount                 `protobuf:"bytes,11,rep,name=mounts,proto3" json:"mounts,omitempty"`
	LinuxCapabilities    []string                     `protobuf:"bytes,12,rep,name=linux_capabilities,json=linuxCapabilities,proto3" json:"linux_capabilities,omitempty"`
	AllowedDevices       []*LibContainerDevice        `protobuf:"bytes,13,rep,name=allowed_devices,json=allowedDevices,proto3" json:"allowed_devices,omitempty"`
	WriteableCgroups     bool                         `protobuf:"varint,14,opt,name=writeable_cgroups,json=writeableCgroups,proto3" json:"writeable_cgroups,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                     `json:"-"`
	XXX_unrecognized     []byte                       `json:"-"`
	XXX_sizecache        int32                        `json:"-"`
}

func (m *ProcessType) Reset()         { *m = ProcessType{} }
func (m *ProcessType) String() string { return proto.CompactTextString(m) }
func (*ProcessType) ProtoMessage()    {}
func (*ProcessType) Descriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{22}
}

func (m *ProcessType) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ProcessType.Unmarshal(m, b)
}
func (m *ProcessType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ProcessType.Marshal(b, m, deterministic)
}
func (m *ProcessType) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ProcessType.Merge(m, src)
}
func (m *ProcessType) XXX_Size() int {
	return xxx_messageInfo_ProcessType.Size(m)
}
func (m *ProcessType) XXX_DiscardUnknown() {
	xxx_messageInfo_ProcessType.DiscardUnknown(m)
}

var xxx_messageInfo_ProcessType proto.InternalMessageInfo

func (m *ProcessType) GetArgs() []string {
	if m != nil {
		return m.Args
	}
	return nil
}

func (m *ProcessType) GetEnv() map[string]string {
	if m != nil {
		return m.Env
	}
	return nil
}

func (m *ProcessType) GetPorts() []*Port {
	if m != nil {
		return m.Ports
	}
	return nil
}

func (m *ProcessType) GetVolumes() []*VolumeReq {
	if m != nil {
		return m.Volumes
	}
	return nil
}

func (m *ProcessType) GetOmni() bool {
	if m != nil {
		return m.Omni
	}
	return false
}

func (m *ProcessType) GetHostNetwork() bool {
	if m != nil {
		return m.HostNetwork
	}
	return false
}

func (m *ProcessType) GetHostPidNamespace() bool {
	if m != nil {
		return m.HostPidNamespace
	}
	return false
}

func (m *ProcessType) GetService() string {
	if m != nil {
		return m.Service
	}
	return ""
}

func (m *ProcessType) GetResurrect() bool {
	if m != nil {
		return m.Resurrect
	}
	return false
}

func (m *ProcessType) GetResources() map[string]*HostResourceSpec {
	if m != nil {
		return m.Resources
	}
	return nil
}

func (m *ProcessType) GetMounts() []*HostMount {
	if m != nil {
		return m.Mounts
	}
	return nil
}

func (m *ProcessType) GetLinuxCapabilities() []string {
	if m != nil {
		return m.LinuxCapabilities
	}
	return nil
}

func (m *ProcessType) GetAllowedDevices() []*LibContainerDevice {
	if m != nil {
		return m.AllowedDevices
	}
	return nil
}

func (m *ProcessType) GetWriteableCgroups() bool {
	if m != nil {
		return m.WriteableCgroups
	}
	return false
}

type Release struct {
	// name = "apps/APP_ID/releases/RELEASE_ID"
	Name                 string                  `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Artifacts            []string                `protobuf:"bytes,3,rep,name=artifacts,proto3" json:"artifacts,omitempty"`
	Env                  map[string]string       `protobuf:"bytes,4,rep,name=env,proto3" json:"env,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	Labels               map[string]string       `protobuf:"bytes,5,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	Processes            map[string]*ProcessType `protobuf:"bytes,6,rep,name=processes,proto3" json:"processes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	Type                 ReleaseType             `protobuf:"varint,7,opt,name=type,proto3,enum=flynn.api.v1.ReleaseType" json:"type,omitempty"`
	CreateTime           *timestamp.Timestamp    `protobuf:"bytes,8,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	DeleteTime           *timestamp.Timestamp    `protobuf:"bytes,9,opt,name=delete_time,json=deleteTime,proto3" json:"delete_time,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
	XXX_unrecognized     []byte                  `json:"-"`
	XXX_sizecache        int32                   `json:"-"`
}

func (m *Release) Reset()         { *m = Release{} }
func (m *Release) String() string { return proto.CompactTextString(m) }
func (*Release) ProtoMessage()    {}
func (*Release) Descriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{23}
}

func (m *Release) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Release.Unmarshal(m, b)
}
func (m *Release) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Release.Marshal(b, m, deterministic)
}
func (m *Release) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Release.Merge(m, src)
}
func (m *Release) XXX_Size() int {
	return xxx_messageInfo_Release.Size(m)
}
func (m *Release) XXX_DiscardUnknown() {
	xxx_messageInfo_Release.DiscardUnknown(m)
}

var xxx_messageInfo_Release proto.InternalMessageInfo

func (m *Release) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *Release) GetArtifacts() []string {
	if m != nil {
		return m.Artifacts
	}
	return nil
}

func (m *Release) GetEnv() map[string]string {
	if m != nil {
		return m.Env
	}
	return nil
}

func (m *Release) GetLabels() map[string]string {
	if m != nil {
		return m.Labels
	}
	return nil
}

func (m *Release) GetProcesses() map[string]*ProcessType {
	if m != nil {
		return m.Processes
	}
	return nil
}

func (m *Release) GetType() ReleaseType {
	if m != nil {
		return m.Type
	}
	return ReleaseType_ANY
}

func (m *Release) GetCreateTime() *timestamp.Timestamp {
	if m != nil {
		return m.CreateTime
	}
	return nil
}

func (m *Release) GetDeleteTime() *timestamp.Timestamp {
	if m != nil {
		return m.DeleteTime
	}
	return nil
}

type ScaleRequest struct {
	// parent = "apps/APP_ID/releases/RELEASE_ID"
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// name = "apps/APP_ID/releases/RELEASE_ID/scales/SCALE_REQUEST_ID"
	Name                 string                            `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	State                ScaleRequestState                 `protobuf:"varint,3,opt,name=state,proto3,enum=flynn.api.v1.ScaleRequestState" json:"state,omitempty"`
	OldProcesses         map[string]int32                  `protobuf:"bytes,4,rep,name=old_processes,json=oldProcesses,proto3" json:"old_processes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
	NewProcesses         map[string]int32                  `protobuf:"bytes,5,rep,name=new_processes,json=newProcesses,proto3" json:"new_processes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
	OldTags              map[string]*DeploymentProcessTags `protobuf:"bytes,6,rep,name=old_tags,json=oldTags,proto3" json:"old_tags,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	NewTags              map[string]*DeploymentProcessTags `protobuf:"bytes,7,rep,name=new_tags,json=newTags,proto3" json:"new_tags,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	CreateTime           *timestamp.Timestamp              `protobuf:"bytes,8,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	UpdateTime           *timestamp.Timestamp              `protobuf:"bytes,9,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                          `json:"-"`
	XXX_unrecognized     []byte                            `json:"-"`
	XXX_sizecache        int32                             `json:"-"`
}

func (m *ScaleRequest) Reset()         { *m = ScaleRequest{} }
func (m *ScaleRequest) String() string { return proto.CompactTextString(m) }
func (*ScaleRequest) ProtoMessage()    {}
func (*ScaleRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{24}
}

func (m *ScaleRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ScaleRequest.Unmarshal(m, b)
}
func (m *ScaleRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ScaleRequest.Marshal(b, m, deterministic)
}
func (m *ScaleRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ScaleRequest.Merge(m, src)
}
func (m *ScaleRequest) XXX_Size() int {
	return xxx_messageInfo_ScaleRequest.Size(m)
}
func (m *ScaleRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_ScaleRequest.DiscardUnknown(m)
}

var xxx_messageInfo_ScaleRequest proto.InternalMessageInfo

func (m *ScaleRequest) GetParent() string {
	if m != nil {
		return m.Parent
	}
	return ""
}

func (m *ScaleRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *ScaleRequest) GetState() ScaleRequestState {
	if m != nil {
		return m.State
	}
	return ScaleRequestState_SCALE_PENDING
}

func (m *ScaleRequest) GetOldProcesses() map[string]int32 {
	if m != nil {
		return m.OldProcesses
	}
	return nil
}

func (m *ScaleRequest) GetNewProcesses() map[string]int32 {
	if m != nil {
		return m.NewProcesses
	}
	return nil
}

func (m *ScaleRequest) GetOldTags() map[string]*DeploymentProcessTags {
	if m != nil {
		return m.OldTags
	}
	return nil
}

func (m *ScaleRequest) GetNewTags() map[string]*DeploymentProcessTags {
	if m != nil {
		return m.NewTags
	}
	return nil
}

func (m *ScaleRequest) GetCreateTime() *timestamp.Timestamp {
	if m != nil {
		return m.CreateTime
	}
	return nil
}

func (m *ScaleRequest) GetUpdateTime() *timestamp.Timestamp {
	if m != nil {
		return m.UpdateTime
	}
	return nil
}

type DeploymentProcessTags struct {
	Tags                 map[string]string `protobuf:"bytes,1,rep,name=tags,proto3" json:"tags,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *DeploymentProcessTags) Reset()         { *m = DeploymentProcessTags{} }
func (m *DeploymentProcessTags) String() string { return proto.CompactTextString(m) }
func (*DeploymentProcessTags) ProtoMessage()    {}
func (*DeploymentProcessTags) Descriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{25}
}

func (m *DeploymentProcessTags) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DeploymentProcessTags.Unmarshal(m, b)
}
func (m *DeploymentProcessTags) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DeploymentProcessTags.Marshal(b, m, deterministic)
}
func (m *DeploymentProcessTags) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DeploymentProcessTags.Merge(m, src)
}
func (m *DeploymentProcessTags) XXX_Size() int {
	return xxx_messageInfo_DeploymentProcessTags.Size(m)
}
func (m *DeploymentProcessTags) XXX_DiscardUnknown() {
	xxx_messageInfo_DeploymentProcessTags.DiscardUnknown(m)
}

var xxx_messageInfo_DeploymentProcessTags proto.InternalMessageInfo

func (m *DeploymentProcessTags) GetTags() map[string]string {
	if m != nil {
		return m.Tags
	}
	return nil
}

type ExpandedDeployment struct {
	// name = "apps/APP_ID/deployments/DEPLOYMENT_ID"
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// old_release = Release.name
	OldRelease *Release `protobuf:"bytes,3,opt,name=old_release,json=oldRelease,proto3" json:"old_release,omitempty"`
	// new_release = Release.name
	NewRelease           *Release                          `protobuf:"bytes,4,opt,name=new_release,json=newRelease,proto3" json:"new_release,omitempty"`
	Type                 ReleaseType                       `protobuf:"varint,5,opt,name=type,proto3,enum=flynn.api.v1.ReleaseType" json:"type,omitempty"`
	Strategy             string                            `protobuf:"bytes,6,opt,name=strategy,proto3" json:"strategy,omitempty"`
	Status               DeploymentStatus                  `protobuf:"varint,7,opt,name=status,proto3,enum=flynn.api.v1.DeploymentStatus" json:"status,omitempty"`
	Processes            map[string]int32                  `protobuf:"bytes,8,rep,name=processes,proto3" json:"processes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
	Tags                 map[string]*DeploymentProcessTags `protobuf:"bytes,9,rep,name=tags,proto3" json:"tags,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	DeployTimeout        int32                             `protobuf:"varint,10,opt,name=deploy_timeout,json=deployTimeout,proto3" json:"deploy_timeout,omitempty"`
	CreateTime           *timestamp.Timestamp              `protobuf:"bytes,11,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	ExpireTime           *timestamp.Timestamp              `protobuf:"bytes,12,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"`
	EndTime              *timestamp.Timestamp              `protobuf:"bytes,13,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                          `json:"-"`
	XXX_unrecognized     []byte                            `json:"-"`
	XXX_sizecache        int32                             `json:"-"`
}

func (m *ExpandedDeployment) Reset()         { *m = ExpandedDeployment{} }
func (m *ExpandedDeployment) String() string { return proto.CompactTextString(m) }
func (*ExpandedDeployment) ProtoMessage()    {}
func (*ExpandedDeployment) Descriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{26}
}

func (m *ExpandedDeployment) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ExpandedDeployment.Unmarshal(m, b)
}
func (m *ExpandedDeployment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ExpandedDeployment.Marshal(b, m, deterministic)
}
func (m *ExpandedDeployment) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ExpandedDeployment.Merge(m, src)
}
func (m *ExpandedDeployment) XXX_Size() int {
	return xxx_messageInfo_ExpandedDeployment.Size(m)
}
func (m *ExpandedDeployment) XXX_DiscardUnknown() {
	xxx_messageInfo_ExpandedDeployment.DiscardUnknown(m)
}

var xxx_messageInfo_ExpandedDeployment proto.InternalMessageInfo

func (m *ExpandedDeployment) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *ExpandedDeployment) GetOldRelease() *Release {
	if m != nil {
		return m.OldRelease
	}
	return nil
}

func (m *ExpandedDeployment) GetNewRelease() *Release {
	if m != nil {
		return m.NewRelease
	}
	return nil
}

func (m *ExpandedDeployment) GetType() ReleaseType {
	if m != nil {
		return m.Type
	}
	return ReleaseType_ANY
}

func (m *ExpandedDeployment) GetStrategy() string {
	if m != nil {
		return m.Strategy
	}
	return ""
}

func (m *ExpandedDeployment) GetStatus() DeploymentStatus {
	if m != nil {
		return m.Status
	}
	return DeploymentStatus_PENDING
}

func (m *ExpandedDeployment) GetProcesses() map[string]int32 {
	if m != nil {
		return m.Processes
	}
	return nil
}

func (m *ExpandedDeployment) GetTags() map[string]*DeploymentProcessTags {
	if m != nil {
		return m.Tags
	}
	return nil
}

func (m *ExpandedDeployment) GetDeployTimeout() int32 {
	if m != nil {
		return m.DeployTimeout
	}
	return 0
}

func (m *ExpandedDeployment) GetCreateTime() *timestamp.Timestamp {
	if m != nil {
		return m.CreateTime
	}
	return nil
}

func (m *ExpandedDeployment) GetExpireTime() *timestamp.Timestamp {
	if m != nil {
		return m.ExpireTime
	}
	return nil
}

func (m *ExpandedDeployment) GetEndTime() *timestamp.Timestamp {
	if m != nil {
		return m.EndTime
	}
	return nil
}

type DeploymentEvent struct {
	// parent = "apps/APP_ID/deployments/DEPLOYMENT_ID"
	Parent               string                   `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	JobType              string                   `protobuf:"bytes,2,opt,name=job_type,json=jobType,proto3" json:"job_type,omitempty"`
	JobState             DeploymentEvent_JobState `protobuf:"varint,3,opt,name=job_state,json=jobState,proto3,enum=flynn.api.v1.DeploymentEvent_JobState" json:"job_state,omitempty"`
	Error                string                   `protobuf:"bytes,4,opt,name=Error,proto3" json:"Error,omitempty"`
	CreateTime           *timestamp.Timestamp     `protobuf:"bytes,5,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
	XXX_unrecognized     []byte                   `json:"-"`
	XXX_sizecache        int32                    `json:"-"`
}

func (m *DeploymentEvent) Reset()         { *m = DeploymentEvent{} }
func (m *DeploymentEvent) String() string { return proto.CompactTextString(m) }
func (*DeploymentEvent) ProtoMessage()    {}
func (*DeploymentEvent) Descriptor() ([]byte, []int) {
	return fileDescriptor_ed7f10298fa1d90f, []int{27}
}

func (m *DeploymentEvent) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DeploymentEvent.Unmarshal(m, b)
}
func (m *DeploymentEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DeploymentEvent.Marshal(b, m, deterministic)
}
func (m *DeploymentEvent) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DeploymentEvent.Merge(m, src)
}
func (m *DeploymentEvent) XXX_Size() int {
	return xxx_messageInfo_DeploymentEvent.Size(m)
}
func (m *DeploymentEvent) XXX_DiscardUnknown() {
	xxx_messageInfo_DeploymentEvent.DiscardUnknown(m)
}

var xxx_messageInfo_DeploymentEvent proto.InternalMessageInfo

func (m *DeploymentEvent) GetParent() string {
	if m != nil {
		return m.Parent
	}
	return ""
}

func (m *DeploymentEvent) GetJobType() string {
	if m != nil {
		return m.JobType
	}
	return ""
}

func (m *DeploymentEvent) GetJobState() DeploymentEvent_JobState {
	if m != nil {
		return m.JobState
	}
	return DeploymentEvent_PENDING
}

func (m *DeploymentEvent) GetError() string {
	if m != nil {
		return m.Error
	}
	return ""
}

func (m *DeploymentEvent) GetCreateTime() *timestamp.Timestamp {
	if m != nil {
		return m.CreateTime
	}
	return nil
}

func init() {
	proto.RegisterEnum("flynn.api.v1.ReleaseType", ReleaseType_name, ReleaseType_value)
	proto.RegisterEnum("flynn.api.v1.ScaleRequestState", ScaleRequestState_name, ScaleRequestState_value)
	proto.RegisterEnum("flynn.api.v1.DeploymentStatus", DeploymentStatus_name, DeploymentStatus_value)
	proto.RegisterEnum("flynn.api.v1.StatusResponse_Code", StatusResponse_Code_name, StatusResponse_Code_value)
	proto.RegisterEnum("flynn.api.v1.LabelFilter_Expression_Operator", LabelFilter_Expression_Operator_name, LabelFilter_Expression_Operator_value)
	proto.RegisterEnum("flynn.api.v1.DeploymentEvent_JobState", DeploymentEvent_JobState_name, DeploymentEvent_JobState_value)
	proto.RegisterType((*StatusResponse)(nil), "flynn.api.v1.StatusResponse")
	proto.RegisterType((*LabelFilter)(nil), "flynn.api.v1.LabelFilter")
	proto.RegisterType((*LabelFilter_Expression)(nil), "flynn.api.v1.LabelFilter.Expression")
	proto.RegisterType((*StreamAppsRequest)(nil), "flynn.api.v1.StreamAppsRequest")
	proto.RegisterType((*StreamAppsResponse)(nil), "flynn.api.v1.StreamAppsResponse")
	proto.RegisterType((*StreamReleasesRequest)(nil), "flynn.api.v1.StreamReleasesRequest")
	proto.RegisterType((*StreamReleasesResponse)(nil), "flynn.api.v1.StreamReleasesResponse")
	proto.RegisterType((*StreamScalesRequest)(nil), "flynn.api.v1.StreamScalesRequest")
	proto.RegisterType((*StreamScalesResponse)(nil), "flynn.api.v1.StreamScalesResponse")
	proto.RegisterType((*StreamDeploymentsRequest)(nil), "flynn.api.v1.StreamDeploymentsRequest")
	proto.RegisterType((*StreamDeploymentsResponse)(nil), "flynn.api.v1.StreamDeploymentsResponse")
	proto.RegisterType((*UpdateAppRequest)(nil), "flynn.api.v1.UpdateAppRequest")
	proto.RegisterType((*CreateScaleRequest)(nil), "flynn.api.v1.CreateScaleRequest")
	proto.RegisterMapType((map[string]int32)(nil), "flynn.api.v1.CreateScaleRequest.ProcessesEntry")
	proto.RegisterMapType((map[string]*DeploymentProcessTags)(nil), "flynn.api.v1.CreateScaleRequest.TagsEntry")
	proto.RegisterType((*CreateReleaseRequest)(nil), "flynn.api.v1.CreateReleaseRequest")
	proto.RegisterType((*CreateDeploymentRequest)(nil), "flynn.api.v1.CreateDeploymentRequest")
	proto.RegisterType((*App)(nil), "flynn.api.v1.App")
	proto.RegisterMapType((map[string]string)(nil), "flynn.api.v1.App.LabelsEntry")
	proto.RegisterType((*HostHealthCheck)(nil), "flynn.api.v1.HostHealthCheck")
	proto.RegisterType((*HostService)(nil), "flynn.api.v1.HostService")
	proto.RegisterType((*Port)(nil), "flynn.api.v1.Port")
	proto.RegisterType((*VolumeReq)(nil), "flynn.api.v1.VolumeReq")
	proto.RegisterType((*HostResourceSpec)(nil), "flynn.api.v1.HostResourceSpec")
	proto.RegisterType((*HostMount)(nil), "flynn.api.v1.HostMount")
	proto.RegisterType((*LibContainerDevice)(nil), "flynn.api.v1.LibContainerDevice")
	proto.RegisterType((*ProcessType)(nil), "flynn.api.v1.ProcessType")
	proto.RegisterMapType((map[string]string)(nil), "flynn.api.v1.ProcessType.EnvEntry")
	proto.RegisterMapType((map[string]*HostResourceSpec)(nil), "flynn.api.v1.ProcessType.ResourcesEntry")
	proto.RegisterType((*Release)(nil), "flynn.api.v1.Release")
	proto.RegisterMapType((map[string]string)(nil), "flynn.api.v1.Release.EnvEntry")
	proto.RegisterMapType((map[string]string)(nil), "flynn.api.v1.Release.LabelsEntry")
	proto.RegisterMapType((map[string]*ProcessType)(nil), "flynn.api.v1.Release.ProcessesEntry")
	proto.RegisterType((*ScaleRequest)(nil), "flynn.api.v1.ScaleRequest")
	proto.RegisterMapType((map[string]int32)(nil), "flynn.api.v1.ScaleRequest.NewProcessesEntry")
	proto.RegisterMapType((map[string]*DeploymentProcessTags)(nil), "flynn.api.v1.ScaleRequest.NewTagsEntry")
	proto.RegisterMapType((map[string]int32)(nil), "flynn.api.v1.ScaleRequest.OldProcessesEntry")
	proto.RegisterMapType((map[string]*DeploymentProcessTags)(nil), "flynn.api.v1.ScaleRequest.OldTagsEntry")
	proto.RegisterType((*DeploymentProcessTags)(nil), "flynn.api.v1.DeploymentProcessTags")
	proto.RegisterMapType((map[string]string)(nil), "flynn.api.v1.DeploymentProcessTags.TagsEntry")
	proto.RegisterType((*ExpandedDeployment)(nil), "flynn.api.v1.ExpandedDeployment")
	proto.RegisterMapType((map[string]int32)(nil), "flynn.api.v1.ExpandedDeployment.ProcessesEntry")
	proto.RegisterMapType((map[string]*DeploymentProcessTags)(nil), "flynn.api.v1.ExpandedDeployment.TagsEntry")
	proto.RegisterType((*DeploymentEvent)(nil), "flynn.api.v1.DeploymentEvent")
}

func init() { proto.RegisterFile("controller.proto", fileDescriptor_ed7f10298fa1d90f) }

var fileDescriptor_ed7f10298fa1d90f = []byte{
	// 2721 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x3a, 0xcd, 0x6f, 0x1b, 0xc7,
	0xf5, 0x22, 0x29, 0x92, 0xbb, 0x8f, 0xa4, 0x4c, 0x4d, 0x12, 0x87, 0x66, 0x12, 0x47, 0x5e, 0xe7,
	0x43, 0xf0, 0x2f, 0xa6, 0x13, 0x25, 0xf6, 0xaf, 0x6e, 0xd2, 0xa4, 0x34, 0x45, 0xc5, 0x6a, 0x65,
	0x52, 0x1d, 0xca, 0x4d, 0x53, 0x04, 0x20, 0x56, 0xdc, 0x91, 0xb4, 0xd1, 0x72, 0x77, 0xbb, 0x3b,
	0xd4, 0x47, 0x80, 0x16, 0x3d, 0x04, 0x68, 0xee, 0x45, 0x81, 0x9e, 0x5a, 0xf4, 0xd2, 0x53, 0xfb,
	0x27, 0xf4, 0xd2, 0x5b, 0x81, 0xde, 0x7b, 0xea, 0x21, 0xff, 0x49, 0xf1, 0x66, 0x66, 0xc9, 0xe5,
	0x72, 0x29, 0x4a, 0xa9, 0x1b, 0x14, 0xe8, 0x6d, 0xdf, 0x9b, 0xf7, 0x1e, 0xdf, 0xbc, 0xef, 0x99,
	0x21, 0x54, 0x07, 0x9e, 0xcb, 0x03, 0xcf, 0x71, 0x58, 0xd0, 0xf0, 0x03, 0x8f, 0x7b, 0xa4, 0x7c,
	0xe0, 0x9c, 0xbb, 0x6e, 0xc3, 0xf4, 0xed, 0xc6, 0xc9, 0x3b, 0xf5, 0x57, 0x0f, 0x3d, 0xef, 0xd0,
	0x61, 0xf7, 0xc4, 0xda, 0xfe, 0xe8, 0xe0, 0x1e, 0xb7, 0x87, 0x2c, 0xe4, 0xe6, 0xd0, 0x97, 0xe4,
	0xf5, 0x9b, 0x49, 0x02, 0x6b, 0x14, 0x98, 0xdc, 0xf6, 0x5c, 0xb5, 0xbe, 0x96, 0x5c, 0x3f, 0xb0,
	0x99, 0x63, 0xf5, 0x87, 0x66, 0x78, 0xac, 0x28, 0x5e, 0x4a, 0x52, 0xb0, 0xa1, 0xcf, 0xcf, 0xe5,
	0xa2, 0xf1, 0x87, 0x0c, 0xac, 0xf4, 0xb8, 0xc9, 0x47, 0x21, 0x65, 0xa1, 0xef, 0xb9, 0x21, 0x23,
	0x0f, 0xa1, 0x10, 0x0a, 0x4c, 0x2d, 0xb3, 0x96, 0x59, 0x5f, 0xd9, 0xb8, 0xd5, 0x88, 0x6b, 0xdc,
	0x98, 0xa6, 0x6e, 0xb4, 0x3c, 0x8b, 0x51, 0xc5, 0x40, 0xae, 0x43, 0xc1, 0x62, 0xdc, 0xb4, 0x9d,
	0x5a, 0x76, 0x2d, 0xb3, 0x5e, 0xa6, 0x0a, 0x22, 0x35, 0x28, 0x9e, 0xb0, 0x20, 0xb4, 0x3d, 0xb7,
	0x96, 0x5b, 0xcb, 0xac, 0xeb, 0x34, 0x02, 0x0d, 0x03, 0x96, 0x51, 0x02, 0x29, 0x41, 0xf1, 0x71,
	0xbb, 0xb9, 0xb3, 0xf7, 0xf8, 0xd3, 0xea, 0x12, 0xa9, 0x80, 0xfe, 0xb4, 0x13, 0x81, 0x19, 0xe3,
	0x37, 0x59, 0x28, 0xed, 0x98, 0xfb, 0xcc, 0xd9, 0xb2, 0x1d, 0xce, 0x02, 0xb2, 0x05, 0x25, 0x76,
	0xe6, 0x07, 0x2c, 0x44, 0x09, 0xa8, 0x65, 0x6e, 0xbd, 0xb4, 0xf1, 0xda, 0xb4, 0x96, 0x31, 0xfa,
	0x46, 0x7b, 0x4c, 0x4c, 0xe3, 0x8c, 0xf5, 0xbf, 0x64, 0x00, 0x26, 0x6b, 0xa4, 0x0a, 0xb9, 0x63,
	0x76, 0x2e, 0x36, 0xad, 0x53, 0xfc, 0x24, 0xdf, 0x83, 0xac, 0xe7, 0x8b, 0xad, 0xac, 0x6c, 0xdc,
	0xbd, 0x8c, 0xfc, 0x46, 0xd7, 0x67, 0x81, 0xc9, 0xbd, 0x80, 0x66, 0x3d, 0x1f, 0xad, 0x71, 0x62,
	0x3a, 0x23, 0x16, 0xd6, 0x72, 0x6b, 0xb9, 0x75, 0x9d, 0x2a, 0xc8, 0xd8, 0x02, 0x2d, 0xa2, 0x23,
	0x3a, 0xe4, 0xbb, 0xbb, 0xfd, 0xed, 0x8e, 0xdc, 0x75, 0x77, 0xb7, 0xdf, 0xe9, 0xee, 0x21, 0x98,
	0x51, 0x60, 0xfb, 0x27, 0xdb, 0xbd, 0xbd, 0x5e, 0x35, 0x4b, 0x56, 0xa1, 0xa2, 0x56, 0x15, 0x2a,
	0x67, 0xfc, 0x32, 0x0b, 0xab, 0x3d, 0x1e, 0x30, 0x73, 0xd8, 0xf4, 0xfd, 0x90, 0xb2, 0x9f, 0x8d,
	0x58, 0xc8, 0xc9, 0x4b, 0xa0, 0xfb, 0xe6, 0x21, 0xeb, 0x87, 0xf6, 0x17, 0x4c, 0x6c, 0x26, 0x4f,
	0x35, 0x44, 0xf4, 0xec, 0x2f, 0x18, 0x79, 0x05, 0x40, 0x2c, 0x72, 0xef, 0x98, 0xb9, 0x62, 0x67,
	0x3a, 0x15, 0xe4, 0x7b, 0x88, 0x20, 0xb7, 0xa0, 0xec, 0x9a, 0x43, 0xd6, 0x3f, 0x10, 0x1b, 0x8b,
	0xf4, 0x2e, 0x21, 0x4e, 0xee, 0x35, 0x24, 0x1f, 0x42, 0xc5, 0xc1, 0xbd, 0x8f, 0x69, 0x96, 0x85,
	0xf9, 0x6f, 0xcc, 0x35, 0x0f, 0x2d, 0x3b, 0x13, 0x20, 0x24, 0xaf, 0xc3, 0x4a, 0x28, 0x74, 0xee,
	0x8f, 0x7c, 0xcb, 0xe4, 0x2c, 0xac, 0xe5, 0xd7, 0x32, 0xeb, 0x1a, 0xad, 0x48, 0xec, 0x53, 0x89,
	0x8c, 0x91, 0x0d, 0x02, 0x26, 0xc8, 0x0a, 0x71, 0xb2, 0x96, 0x44, 0x1a, 0x5f, 0x65, 0x80, 0xc4,
	0x4d, 0xa0, 0x42, 0xf8, 0x75, 0x58, 0x36, 0x7d, 0x3f, 0x0a, 0x8d, 0xd5, 0x69, 0xdd, 0x9a, 0xbe,
	0x4f, 0xc5, 0x32, 0xb9, 0x0d, 0x15, 0x61, 0x8d, 0x81, 0x37, 0xf4, 0x1d, 0xc6, 0x99, 0x30, 0x88,
	0x46, 0xcb, 0x88, 0x6c, 0x29, 0x1c, 0x79, 0x03, 0xae, 0xb9, 0xec, 0x8c, 0xf7, 0x63, 0x76, 0x93,
	0x31, 0x5c, 0x41, 0xf4, 0x6e, 0x64, 0x3b, 0xe3, 0xcb, 0x2c, 0xbc, 0x20, 0x55, 0xa1, 0xcc, 0x61,
	0x66, 0xc8, 0xfe, 0x37, 0x3d, 0xf2, 0xdb, 0x0c, 0x5c, 0x4f, 0x9a, 0x41, 0x79, 0xe5, 0x1d, 0xd0,
	0x02, 0x85, 0x53, 0x9e, 0x79, 0x61, 0x5a, 0x47, 0xc5, 0x41, 0xc7, 0x64, 0xcf, 0xd6, 0x43, 0x5f,
	0x65, 0xe1, 0x39, 0xa9, 0x5a, 0x6f, 0x60, 0x3a, 0xdf, 0x9a, 0x7f, 0x36, 0xa1, 0x82, 0xe5, 0x91,
	0x4d, 0xf9, 0x67, 0x65, 0xe3, 0xd5, 0x44, 0x59, 0x45, 0x95, 0x94, 0x46, 0x58, 0x62, 0x19, 0x2d,
	0x0b, 0xae, 0xff, 0x8c, 0x97, 0xfe, 0x98, 0x81, 0xe7, 0xa7, 0x4d, 0xa1, 0x7c, 0xd4, 0x84, 0x95,
	0x10, 0x31, 0xfd, 0x40, 0xaa, 0x12, 0x79, 0xaa, 0x3e, 0x5f, 0x5b, 0x5a, 0x09, 0x63, 0xd0, 0x33,
	0xf6, 0xd9, 0xdf, 0xb3, 0x50, 0x93, 0x8a, 0x6e, 0x32, 0xdf, 0xf1, 0xce, 0x87, 0xcc, 0xe5, 0xdf,
	0x96, 0xe3, 0x3e, 0x80, 0x32, 0x3f, 0xf7, 0x93, 0x7e, 0xbb, 0x91, 0x1a, 0xb3, 0x7b, 0xe7, 0x3e,
	0xa3, 0x25, 0x24, 0x8f, 0xb8, 0xdb, 0xe8, 0x09, 0xec, 0x8a, 0x63, 0xfe, 0x82, 0xe0, 0xbf, 0x39,
	0xcd, 0x3f, 0xd9, 0x96, 0x6a, 0xac, 0x15, 0xc9, 0x35, 0xdf, 0xef, 0xc5, 0xcb, 0xf9, 0x5d, 0x4b,
	0xf3, 0xfb, 0x9f, 0x32, 0x70, 0x23, 0xc5, 0x9c, 0xca, 0xf9, 0x8f, 0xa0, 0x64, 0x4d, 0xd0, 0xca,
	0xf3, 0x6b, 0xd3, 0xfa, 0xb6, 0xcf, 0x7c, 0xd3, 0xb5, 0x98, 0x35, 0xe1, 0xa7, 0x71, 0xa6, 0x67,
	0xeb, 0x7d, 0x0e, 0x55, 0xb9, 0x41, 0xac, 0xd9, 0xca, 0xe9, 0xb7, 0x21, 0x67, 0xfa, 0xbe, 0x70,
	0x77, 0x6a, 0x69, 0xc7, 0x55, 0xf2, 0x3e, 0x94, 0xa4, 0xb9, 0xc4, 0x20, 0x24, 0x74, 0xc0, 0x18,
	0x96, 0x93, 0x50, 0x23, 0x9a, 0x84, 0x1a, 0x5b, 0x38, 0x2b, 0x3d, 0x31, 0xc3, 0x63, 0x0a, 0x92,
	0x1c, 0xbf, 0x8d, 0x7f, 0x64, 0x81, 0x48, 0x83, 0xc5, 0xc3, 0x1c, 0xdb, 0xb9, 0x6f, 0x06, 0xcc,
	0xe5, 0x6a, 0x44, 0x50, 0x10, 0x79, 0x02, 0xba, 0x1f, 0x78, 0x03, 0x16, 0x62, 0x5d, 0xcb, 0x0a,
	0x9b, 0xdd, 0x9b, 0x56, 0x6b, 0x56, 0x58, 0x63, 0x37, 0xe2, 0x68, 0xbb, 0x3c, 0x38, 0xa7, 0x13,
	0x09, 0xe4, 0x43, 0x58, 0xe6, 0xe6, 0xa1, 0x0c, 0xc8, 0xd2, 0xc6, 0x9d, 0x85, 0x92, 0xf6, 0xcc,
	0x43, 0x25, 0x44, 0xf0, 0xd5, 0x3f, 0x80, 0x95, 0x69, 0xe1, 0x29, 0x83, 0xcd, 0xf3, 0x90, 0x17,
	0xb3, 0x88, 0x30, 0x4c, 0x9e, 0x4a, 0xe0, 0xbb, 0xd9, 0xef, 0x64, 0xea, 0x9f, 0x81, 0x3e, 0x16,
	0x98, 0xc2, 0xf8, 0x30, 0xce, 0x58, 0xda, 0xb8, 0x3d, 0x2f, 0x96, 0x95, 0x06, 0x28, 0x2a, 0x26,
	0xdd, 0xf8, 0x05, 0x3c, 0x2f, 0x77, 0x10, 0x55, 0xfa, 0x05, 0xa6, 0xbd, 0x07, 0x45, 0xd5, 0x0a,
	0xd4, 0x0f, 0xce, 0x69, 0x18, 0x11, 0x15, 0x26, 0xbd, 0x2a, 0x5c, 0x7d, 0xdb, 0x52, 0x31, 0xa5,
	0x2b, 0xcc, 0xb6, 0x65, 0x9c, 0xc1, 0x8b, 0xf2, 0xf7, 0x63, 0xd1, 0xbb, 0x40, 0x85, 0x36, 0x54,
	0xa6, 0x0a, 0xa2, 0x52, 0x64, 0x6d, 0x91, 0x5f, 0x68, 0x39, 0x5e, 0x15, 0x8d, 0xbf, 0xe6, 0x20,
	0xd7, 0xf4, 0x7d, 0x42, 0x60, 0x19, 0x4b, 0x8c, 0xfa, 0x11, 0xf1, 0x8d, 0xa5, 0xc8, 0xb2, 0x43,
	0xdf, 0x31, 0xcf, 0xfb, 0x62, 0x4d, 0xd6, 0xaa, 0x92, 0xc2, 0x75, 0x90, 0xe4, 0x3e, 0x14, 0x44,
	0xcf, 0x8e, 0xc2, 0xe2, 0x95, 0x99, 0xb8, 0x97, 0x0d, 0x5e, 0x45, 0x82, 0x22, 0xc6, 0xaa, 0x20,
	0x73, 0xb3, 0x8f, 0xc7, 0x0a, 0x6f, 0xc4, 0x6b, 0xcb, 0xc2, 0xe1, 0x15, 0x89, 0xdd, 0x93, 0x48,
	0x52, 0x07, 0x2d, 0xe4, 0x81, 0xc9, 0xd9, 0xe1, 0xb9, 0xe8, 0x2a, 0x3a, 0x1d, 0xc3, 0x38, 0xba,
	0x47, 0x2e, 0x28, 0xc8, 0xd1, 0x3d, 0xb2, 0xf5, 0xfb, 0x50, 0x92, 0xb5, 0x46, 0x08, 0x17, 0x65,
	0x29, 0x2d, 0xc7, 0xf6, 0xa2, 0x03, 0x0d, 0x05, 0x49, 0x8e, 0x88, 0x58, 0x82, 0x0a, 0x66, 0x6d,
	0x31, 0xb3, 0x24, 0x8f, 0x98, 0x2d, 0x86, 0x85, 0x44, 0x32, 0xeb, 0x8b, 0x99, 0x25, 0x39, 0x22,
	0xea, 0x0f, 0xd5, 0x61, 0xe2, 0x72, 0xc9, 0xa1, 0xc7, 0xc3, 0xf7, 0xcf, 0x59, 0xb8, 0xf6, 0xd8,
	0x0b, 0xf9, 0x63, 0x66, 0x3a, 0xfc, 0xa8, 0x75, 0xc4, 0x06, 0xc7, 0xe8, 0x50, 0xac, 0xfa, 0x91,
	0x43, 0xf1, 0x9b, 0xdc, 0x07, 0xcd, 0x76, 0x39, 0x0b, 0x4e, 0x4c, 0x47, 0xc4, 0x20, 0x0e, 0x63,
	0x49, 0xe5, 0x36, 0xd5, 0x31, 0x8e, 0x8e, 0x49, 0xc9, 0xcb, 0xa0, 0xf3, 0xa3, 0x80, 0x85, 0x47,
	0x9e, 0x63, 0x29, 0x47, 0x4d, 0x10, 0xd8, 0xec, 0x8e, 0x6d, 0xc7, 0xe9, 0x5b, 0xde, 0xa9, 0xab,
	0x7a, 0xbf, 0x86, 0x88, 0x4d, 0xef, 0xd4, 0xc5, 0x19, 0x30, 0xe4, 0x66, 0xc0, 0xc7, 0x7e, 0x2e,
	0x2c, 0xfa, 0xd9, 0xb2, 0xa0, 0x8f, 0x22, 0x80, 0xc0, 0xb2, 0x6f, 0xf2, 0x23, 0xe1, 0x44, 0x9d,
	0x8a, 0x6f, 0xc4, 0x1d, 0x79, 0x21, 0x17, 0xbe, 0xd1, 0xa9, 0xf8, 0x46, 0xdb, 0x0c, 0x4d, 0x3e,
	0x38, 0x12, 0x36, 0xd7, 0xa9, 0x04, 0x30, 0x77, 0xd4, 0x89, 0x11, 0x84, 0xd6, 0x0a, 0x32, 0x7e,
	0x0e, 0x25, 0x34, 0x57, 0x8f, 0x05, 0x27, 0xf6, 0x60, 0x36, 0xce, 0x33, 0xb3, 0x71, 0x7e, 0x1d,
	0x0a, 0x32, 0x48, 0x54, 0xdb, 0x50, 0x10, 0x79, 0x17, 0xf2, 0x03, 0x34, 0xb7, 0x32, 0x67, 0x22,
	0xfc, 0x13, 0x3e, 0xa1, 0x92, 0xd6, 0x60, 0xb0, 0xbc, 0xeb, 0x05, 0x72, 0x73, 0x5e, 0xc0, 0xd5,
	0x84, 0x20, 0xbe, 0x71, 0x23, 0xc2, 0x26, 0x91, 0x93, 0xe5, 0xd9, 0xfc, 0x5d, 0x28, 0x86, 0x52,
	0xd9, 0xb1, 0xdf, 0x66, 0x7e, 0x48, 0xed, 0x86, 0x46, 0x94, 0x46, 0x1b, 0xf4, 0x1f, 0x7b, 0xce,
	0x68, 0x88, 0xb9, 0x3e, 0x36, 0x64, 0x26, 0x66, 0xc8, 0xd7, 0x30, 0x0b, 0x45, 0xb8, 0x7a, 0x6e,
	0x3f, 0xe4, 0xea, 0x48, 0xa9, 0xd1, 0xb2, 0xc4, 0x76, 0xdd, 0x1e, 0xf7, 0x7c, 0xe3, 0x11, 0x54,
	0x51, 0x3c, 0x65, 0xa1, 0x37, 0x0a, 0x06, 0xac, 0xe7, 0xb3, 0x81, 0x4c, 0x3e, 0x59, 0x76, 0x50,
	0x60, 0x8e, 0x46, 0x20, 0xea, 0xef, 0xd8, 0x43, 0x5b, 0x96, 0xa3, 0x1c, 0x95, 0x80, 0xf1, 0xfb,
	0x0c, 0xe8, 0x28, 0xe4, 0x89, 0x37, 0x72, 0x45, 0x5a, 0x3b, 0xde, 0x40, 0xb8, 0x5b, 0xe9, 0x33,
	0x86, 0xd1, 0xd0, 0xdc, 0x0c, 0x0e, 0x19, 0x57, 0x06, 0x50, 0x10, 0xc6, 0xe0, 0x69, 0x60, 0x73,
	0x66, 0xee, 0x3b, 0xd2, 0x06, 0x1a, 0x9d, 0x20, 0xe4, 0xf9, 0x5e, 0x98, 0x67, 0x59, 0x72, 0x49,
	0x08, 0x77, 0x6d, 0x99, 0xdc, 0x54, 0xc5, 0x43, 0x7c, 0xa3, 0x86, 0x07, 0x0e, 0x36, 0xb2, 0x82,
	0xec, 0x31, 0x02, 0x30, 0xbe, 0xce, 0x00, 0xd9, 0xb1, 0xf7, 0x5b, 0x9e, 0xcb, 0x4d, 0xdb, 0x65,
	0xc1, 0xe6, 0x58, 0xc0, 0x38, 0x8b, 0xf2, 0x2a, 0x8b, 0x22, 0x53, 0x66, 0x63, 0xa6, 0x14, 0xf1,
	0xf7, 0xb9, 0x17, 0x08, 0xd5, 0x72, 0x54, 0x02, 0x02, 0x6b, 0xbb, 0x5e, 0x20, 0xb4, 0x42, 0x2c,
	0x02, 0x64, 0x0d, 0x4a, 0x3e, 0x0b, 0x86, 0xb6, 0xba, 0x26, 0x90, 0xba, 0xc5, 0x51, 0x98, 0x52,
	0x07, 0xb6, 0xc3, 0xfa, 0x43, 0xcf, 0x92, 0xd5, 0xad, 0x42, 0x35, 0x44, 0x3c, 0xf1, 0x2c, 0x86,
	0x85, 0x61, 0x64, 0x5b, 0x22, 0x23, 0x2a, 0x14, 0x3f, 0x11, 0x73, 0x68, 0x5b, 0x22, 0x1f, 0x2a,
	0x14, 0x3f, 0xf1, 0x87, 0x4d, 0xc7, 0xf1, 0x4e, 0x45, 0x3a, 0x68, 0x54, 0x02, 0xc6, 0xaf, 0x0a,
	0x50, 0x8a, 0x1a, 0xa0, 0xda, 0x88, 0x19, 0x1c, 0xca, 0x79, 0x4a, 0xa7, 0xe2, 0x9b, 0xbc, 0x07,
	0x39, 0xe6, 0x9e, 0xa8, 0x71, 0xc1, 0x98, 0x8e, 0xb2, 0x18, 0x6f, 0xa3, 0xed, 0x9e, 0xc8, 0x92,
	0x8e, 0xe4, 0x64, 0x1d, 0xf2, 0x18, 0xbd, 0x51, 0x17, 0x20, 0x09, 0x3e, 0x2f, 0xe0, 0x54, 0x12,
	0x90, 0x77, 0xa0, 0x78, 0x22, 0x82, 0x32, 0x3a, 0x0e, 0xbe, 0x38, 0x4d, 0x3b, 0x8e, 0x58, 0x1a,
	0xd1, 0xa1, 0x9a, 0xde, 0xd0, 0xb5, 0x55, 0x6d, 0x11, 0xdf, 0x98, 0xb2, 0x98, 0xf7, 0x7d, 0x97,
	0xf1, 0x53, 0x2f, 0x38, 0x56, 0x87, 0x89, 0x12, 0xe2, 0x3a, 0x12, 0x45, 0xde, 0x02, 0x22, 0x48,
	0x7c, 0xdb, 0x12, 0x69, 0x1d, 0xfa, 0xe6, 0x80, 0xa9, 0x21, 0xb5, 0x8a, 0x2b, 0xbb, 0xb6, 0xd5,
	0x89, 0xf0, 0x18, 0xd1, 0x51, 0x86, 0xc9, 0xba, 0x12, 0x81, 0x18, 0x79, 0x01, 0x0b, 0x47, 0x41,
	0xc0, 0x06, 0x5c, 0xd9, 0x73, 0x82, 0x20, 0x5b, 0x62, 0x55, 0x64, 0x06, 0x56, 0x19, 0xdc, 0xd1,
	0xfa, 0x7c, 0xab, 0x45, 0x49, 0x14, 0x4d, 0x57, 0x63, 0x56, 0x72, 0x0f, 0x0a, 0x43, 0x4c, 0x8e,
	0xb0, 0x56, 0x4a, 0x33, 0xcb, 0x38, 0x79, 0xa8, 0x22, 0x23, 0x77, 0x81, 0x38, 0xb6, 0x3b, 0x3a,
	0xeb, 0x0f, 0x4c, 0xdf, 0xdc, 0xb7, 0x1d, 0x9b, 0xdb, 0x2c, 0xac, 0x95, 0x85, 0x2b, 0x57, 0xc5,
	0x4a, 0x2b, 0xb6, 0x40, 0xb6, 0xe1, 0x9a, 0x08, 0x02, 0x66, 0xf5, 0x65, 0x6e, 0x84, 0xb5, 0x4a,
	0xda, 0x18, 0x3d, 0x9b, 0x03, 0x74, 0x45, 0x31, 0x4a, 0x30, 0x24, 0xff, 0x07, 0xab, 0xe3, 0xcc,
	0xeb, 0x0f, 0x0e, 0x03, 0x6f, 0xe4, 0x87, 0xb5, 0x15, 0x69, 0xd7, 0xf1, 0x42, 0x4b, 0xe2, 0xeb,
	0x0f, 0x40, 0x8b, 0x42, 0xe5, 0x2a, 0x2d, 0xad, 0xfe, 0x19, 0xac, 0x4c, 0x1b, 0x2b, 0x85, 0xfb,
	0xbd, 0xe9, 0xa1, 0xef, 0xe6, 0xac, 0xc9, 0xe2, 0x45, 0x2b, 0xde, 0x30, 0xbf, 0x5e, 0x86, 0xa2,
	0x9a, 0xd1, 0x52, 0x27, 0x9f, 0x97, 0x41, 0x37, 0x03, 0x6e, 0x1f, 0x98, 0x03, 0x1e, 0x9d, 0xc0,
	0x26, 0x08, 0xf2, 0xb6, 0xcc, 0x11, 0x19, 0xbf, 0x37, 0x53, 0x27, 0xbf, 0x44, 0x7e, 0x3c, 0x1c,
	0x8f, 0x49, 0x79, 0xc1, 0x74, 0x2b, 0x9d, 0x29, 0x6d, 0x54, 0x7a, 0x14, 0x9f, 0xe2, 0x0b, 0x69,
	0x57, 0x8a, 0x11, 0xf7, 0xfc, 0xd1, 0xfd, 0xae, 0xaa, 0x62, 0x45, 0x71, 0x63, 0x78, 0xc1, 0x41,
	0x51, 0x16, 0xb8, 0xc4, 0x00, 0xa5, 0x5d, 0x75, 0x80, 0xfa, 0xe6, 0x33, 0xd0, 0x37, 0x8d, 0x96,
	0x6f, 0x3e, 0x3b, 0xd5, 0x3f, 0xb9, 0xc4, 0xb1, 0xe4, 0xde, 0x74, 0xa0, 0xdd, 0x98, 0x9b, 0xe0,
	0xf1, 0x18, 0xfb, 0x67, 0x01, 0xca, 0x97, 0x3a, 0xa7, 0x45, 0x01, 0x98, 0x8d, 0x05, 0xe0, 0x7d,
	0xc8, 0x8b, 0x5b, 0x16, 0xd1, 0x4f, 0x2e, 0x71, 0x27, 0x23, 0xa9, 0xc9, 0x8f, 0xa0, 0xe2, 0x39,
	0x56, 0x7f, 0x12, 0x30, 0x32, 0x46, 0xdf, 0x9a, 0xcf, 0xde, 0xe8, 0x3a, 0x56, 0x22, 0x70, 0xca,
	0x5e, 0x0c, 0x85, 0x22, 0x5d, 0x76, 0x1a, 0x13, 0x99, 0x5f, 0x28, 0xb2, 0xc3, 0x4e, 0x93, 0x22,
	0xdd, 0x18, 0x8a, 0x3c, 0x02, 0x0d, 0xb5, 0xe4, 0xb2, 0x09, 0xa3, 0xb4, 0x37, 0x2f, 0x56, 0x70,
	0x72, 0x94, 0x2c, 0x7a, 0x12, 0x42, 0x19, 0xa8, 0x96, 0x90, 0x51, 0x5c, 0x28, 0xa3, 0xc3, 0x4e,
	0x63, 0x32, 0x5c, 0x09, 0xfd, 0xdb, 0x71, 0x1e, 0x3f, 0x28, 0xe8, 0x57, 0x39, 0x28, 0xd4, 0x3f,
	0x82, 0xd5, 0x19, 0xbb, 0x5f, 0xe9, 0x38, 0xfc, 0x11, 0xac, 0xce, 0x58, 0xf9, 0x4a, 0x02, 0xfa,
	0x50, 0x8e, 0x1b, 0xf6, 0x99, 0x1f, 0xa9, 0xf1, 0x07, 0xe2, 0x56, 0x7f, 0xf6, 0x67, 0xf6, 0x5f,
	0x67, 0xe0, 0x85, 0x54, 0x22, 0xd2, 0x54, 0x37, 0x15, 0xf2, 0x9e, 0xe8, 0xee, 0x25, 0xe4, 0xce,
	0x5c, 0x56, 0xfc, 0xff, 0xc5, 0xd7, 0x0d, 0xf3, 0x8f, 0x62, 0xbf, 0x2b, 0x00, 0x99, 0xbd, 0x8a,
	0x4a, 0x6d, 0x32, 0x0f, 0xa0, 0x84, 0x69, 0x10, 0x9d, 0x62, 0x73, 0x17, 0x5d, 0x24, 0x80, 0xe7,
	0x58, 0x51, 0xc3, 0x7a, 0x00, 0x25, 0x0c, 0xfd, 0x88, 0x6f, 0xf9, 0x42, 0x3e, 0x97, 0x9d, 0x46,
	0x7c, 0x51, 0x17, 0xc8, 0x5f, 0xae, 0x0b, 0xc4, 0x0f, 0xdf, 0x85, 0xc4, 0xe1, 0xfb, 0xc1, 0xf8,
	0x60, 0x25, 0x5b, 0xca, 0xa2, 0xbb, 0xc3, 0xe8, 0x1d, 0x6e, 0xea, 0x4a, 0x4a, 0x4b, 0xbb, 0x92,
	0x9a, 0xb5, 0xdd, 0x25, 0xae, 0xa4, 0xf4, 0xb4, 0x2b, 0xa9, 0x14, 0x49, 0x09, 0x2f, 0xa7, 0x5c,
	0x43, 0x40, 0xda, 0x35, 0x44, 0xa2, 0x4e, 0x94, 0xae, 0x5a, 0x27, 0xd8, 0x99, 0x6f, 0x07, 0x8a,
	0xb9, 0xbc, 0x98, 0x59, 0x92, 0x0b, 0xe6, 0xfb, 0xa0, 0x31, 0xd7, 0x92, 0x9c, 0x95, 0x85, 0x9c,
	0x45, 0xe6, 0x5a, 0xa2, 0xbc, 0xfc, 0x37, 0x5f, 0xb5, 0xfd, 0x2d, 0x0b, 0xd7, 0x26, 0x44, 0xed,
	0x13, 0xcc, 0x8e, 0x79, 0x9d, 0xf1, 0x06, 0x68, 0x9f, 0x7b, 0xfb, 0x7d, 0x11, 0xb5, 0x32, 0xd3,
	0x8a, 0x9f, 0x7b, 0xfb, 0xe2, 0xec, 0xd2, 0x02, 0x1d, 0x97, 0xe2, 0x4d, 0xf2, 0x8d, 0x79, 0x9a,
	0x88, 0x1f, 0x69, 0xfc, 0xc0, 0xdb, 0x97, 0xbd, 0x12, 0x65, 0x8a, 0x2f, 0xb4, 0x41, 0x3b, 0x08,
	0xd4, 0xf9, 0x4c, 0xa7, 0x12, 0x48, 0xba, 0x3b, 0x7f, 0x15, 0x77, 0x1b, 0xc7, 0xa0, 0x45, 0x3f,
	0x44, 0x4a, 0x50, 0xdc, 0x6d, 0x77, 0x36, 0xb7, 0x3b, 0x1f, 0x57, 0x97, 0x10, 0x78, 0xb4, 0xd3,
	0x6d, 0xfd, 0xb0, 0xbd, 0x59, 0xcd, 0x90, 0x32, 0x68, 0xbd, 0xbd, 0x26, 0xdd, 0xc3, 0xa5, 0x2c,
	0x29, 0x40, 0xf6, 0xe9, 0x6e, 0x35, 0x27, 0xb1, 0xdd, 0xdd, 0x5d, 0xc4, 0xe6, 0x89, 0x06, 0xcb,
	0x9b, 0xdd, 0x4f, 0x3a, 0xd5, 0x02, 0xb2, 0xb6, 0x68, 0xb3, 0xf7, 0xb8, 0xbd, 0x59, 0x2d, 0x12,
	0x80, 0xc2, 0x56, 0x73, 0x7b, 0xa7, 0xbd, 0x59, 0xd5, 0xee, 0xbc, 0x05, 0xa5, 0x58, 0xde, 0x92,
	0x22, 0xe4, 0x9a, 0x9d, 0x4f, 0xab, 0x4b, 0xc8, 0xda, 0xea, 0x6e, 0xb6, 0xab, 0x19, 0xa4, 0x6e,
	0x75, 0x3b, 0x5b, 0xdb, 0x1f, 0x57, 0xb3, 0x77, 0xba, 0xb0, 0x3a, 0x33, 0x38, 0x90, 0x55, 0xa8,
	0xf4, 0x5a, 0xcd, 0x9d, 0x76, 0x7f, 0xa2, 0xe9, 0x73, 0x70, 0x4d, 0xa2, 0x5a, 0xcd, 0x4e, 0xab,
	0xbd, 0xb3, 0x23, 0x34, 0x26, 0xb0, 0xa2, 0x90, 0xdd, 0x27, 0xbb, 0x3b, 0xed, 0xbd, 0x76, 0x35,
	0x7b, 0x67, 0x0b, 0xaa, 0xc9, 0x4c, 0x9f, 0xde, 0xf3, 0x44, 0xd7, 0x0c, 0x2e, 0xd0, 0xa7, 0x9d,
	0x8e, 0xdc, 0x71, 0x19, 0xb4, 0xb1, 0x9c, 0xdc, 0xc6, 0x97, 0x05, 0x80, 0xd6, 0xf8, 0xef, 0x08,
	0xe4, 0x43, 0x28, 0x28, 0x61, 0xd7, 0x67, 0x8c, 0xde, 0x1e, 0xfa, 0xfc, 0xbc, 0xfe, 0xf2, 0x45,
	0x2f, 0xff, 0xa4, 0x07, 0x30, 0x79, 0x7a, 0x25, 0xc9, 0xd1, 0x29, 0xf9, 0x2e, 0x5d, 0x5f, 0x9b,
	0x4f, 0x20, 0x05, 0x1a, 0x4b, 0x6f, 0x67, 0x48, 0x1f, 0x56, 0xa6, 0x5f, 0x0f, 0xc9, 0xed, 0x34,
	0xbe, 0xc4, 0x13, 0x6b, 0xfd, 0xb5, 0x8b, 0x89, 0x62, 0x3f, 0xf0, 0x29, 0x94, 0xe3, 0x0f, 0x5f,
	0xe4, 0x56, 0x1a, 0xe7, 0xd4, 0xfb, 0x60, 0xdd, 0xb8, 0x88, 0x24, 0x26, 0xfa, 0x28, 0x7a, 0x8e,
	0x8f, 0xbd, 0xad, 0x90, 0x37, 0xd2, 0x98, 0x67, 0xdf, 0xb2, 0xea, 0x6f, 0x2e, 0xa4, 0x8b, 0xfd,
	0xd2, 0xf7, 0x41, 0x1f, 0xbf, 0x8b, 0x90, 0x44, 0x53, 0x48, 0x3e, 0x98, 0xd4, 0x67, 0xdf, 0x48,
	0x8c, 0x25, 0xf2, 0x04, 0x4a, 0xb1, 0x3b, 0x6b, 0xb2, 0xf0, 0x3a, 0xbb, 0x7e, 0xc1, 0x03, 0xa0,
	0xb1, 0x44, 0x76, 0xa0, 0x32, 0x75, 0xb1, 0x4f, 0x8c, 0x34, 0x81, 0xd3, 0xb7, 0xfe, 0xf5, 0xf4,
	0x5e, 0x6a, 0x2c, 0x91, 0xcf, 0xa0, 0x9a, 0xbc, 0xa6, 0x27, 0xaf, 0xa7, 0x09, 0x9c, 0xb9, 0xc6,
	0xaf, 0xbf, 0x72, 0x61, 0x71, 0x42, 0xe3, 0x3d, 0xca, 0xff, 0x34, 0x67, 0xfa, 0xf6, 0x7e, 0x41,
	0x04, 0xfb, 0xbb, 0xff, 0x0a, 0x00, 0x00, 0xff, 0xff, 0x74, 0xfa, 0x56, 0xa2, 0xa2, 0x23, 0x00,
	0x00,
}

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConn

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion4

// ControllerClient is the client API for Controller service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type ControllerClient interface {
	Status(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*StatusResponse, error)
	StreamApps(ctx context.Context, in *StreamAppsRequest, opts ...grpc.CallOption) (Controller_StreamAppsClient, error)
	StreamReleases(ctx context.Context, in *StreamReleasesRequest, opts ...grpc.CallOption) (Controller_StreamReleasesClient, error)
	StreamScales(ctx context.Context, in *StreamScalesRequest, opts ...grpc.CallOption) (Controller_StreamScalesClient, error)
	StreamDeployments(ctx context.Context, in *StreamDeploymentsRequest, opts ...grpc.CallOption) (Controller_StreamDeploymentsClient, error)
	UpdateApp(ctx context.Context, in *UpdateAppRequest, opts ...grpc.CallOption) (*App, error)
	CreateScale(ctx context.Context, in *CreateScaleRequest, opts ...grpc.CallOption) (*ScaleRequest, error)
	CreateRelease(ctx context.Context, in *CreateReleaseRequest, opts ...grpc.CallOption) (*Release, error)
	CreateDeployment(ctx context.Context, in *CreateDeploymentRequest, opts ...grpc.CallOption) (Controller_CreateDeploymentClient, error)
}

type controllerClient struct {
	cc *grpc.ClientConn
}

func NewControllerClient(cc *grpc.ClientConn) ControllerClient {
	return &controllerClient{cc}
}

func (c *controllerClient) Status(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*StatusResponse, error) {
	out := new(StatusResponse)
	err := c.cc.Invoke(ctx, "/flynn.api.v1.Controller/Status", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *controllerClient) StreamApps(ctx context.Context, in *StreamAppsRequest, opts ...grpc.CallOption) (Controller_StreamAppsClient, error) {
	stream, err := c.cc.NewStream(ctx, &_Controller_serviceDesc.Streams[0], "/flynn.api.v1.Controller/StreamApps", opts...)
	if err != nil {
		return nil, err
	}
	x := &controllerStreamAppsClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type Controller_StreamAppsClient interface {
	Recv() (*StreamAppsResponse, error)
	grpc.ClientStream
}

type controllerStreamAppsClient struct {
	grpc.ClientStream
}

func (x *controllerStreamAppsClient) Recv() (*StreamAppsResponse, error) {
	m := new(StreamAppsResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *controllerClient) StreamReleases(ctx context.Context, in *StreamReleasesRequest, opts ...grpc.CallOption) (Controller_StreamReleasesClient, error) {
	stream, err := c.cc.NewStream(ctx, &_Controller_serviceDesc.Streams[1], "/flynn.api.v1.Controller/StreamReleases", opts...)
	if err != nil {
		return nil, err
	}
	x := &controllerStreamReleasesClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type Controller_StreamReleasesClient interface {
	Recv() (*StreamReleasesResponse, error)
	grpc.ClientStream
}

type controllerStreamReleasesClient struct {
	grpc.ClientStream
}

func (x *controllerStreamReleasesClient) Recv() (*StreamReleasesResponse, error) {
	m := new(StreamReleasesResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *controllerClient) StreamScales(ctx context.Context, in *StreamScalesRequest, opts ...grpc.CallOption) (Controller_StreamScalesClient, error) {
	stream, err := c.cc.NewStream(ctx, &_Controller_serviceDesc.Streams[2], "/flynn.api.v1.Controller/StreamScales", opts...)
	if err != nil {
		return nil, err
	}
	x := &controllerStreamScalesClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type Controller_StreamScalesClient interface {
	Recv() (*StreamScalesResponse, error)
	grpc.ClientStream
}

type controllerStreamScalesClient struct {
	grpc.ClientStream
}

func (x *controllerStreamScalesClient) Recv() (*StreamScalesResponse, error) {
	m := new(StreamScalesResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *controllerClient) StreamDeployments(ctx context.Context, in *StreamDeploymentsRequest, opts ...grpc.CallOption) (Controller_StreamDeploymentsClient, error) {
	stream, err := c.cc.NewStream(ctx, &_Controller_serviceDesc.Streams[3], "/flynn.api.v1.Controller/StreamDeployments", opts...)
	if err != nil {
		return nil, err
	}
	x := &controllerStreamDeploymentsClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type Controller_StreamDeploymentsClient interface {
	Recv() (*StreamDeploymentsResponse, error)
	grpc.ClientStream
}

type controllerStreamDeploymentsClient struct {
	grpc.ClientStream
}

func (x *controllerStreamDeploymentsClient) Recv() (*StreamDeploymentsResponse, error) {
	m := new(StreamDeploymentsResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *controllerClient) UpdateApp(ctx context.Context, in *UpdateAppRequest, opts ...grpc.CallOption) (*App, error) {
	out := new(App)
	err := c.cc.Invoke(ctx, "/flynn.api.v1.Controller/UpdateApp", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *controllerClient) CreateScale(ctx context.Context, in *CreateScaleRequest, opts ...grpc.CallOption) (*ScaleRequest, error) {
	out := new(ScaleRequest)
	err := c.cc.Invoke(ctx, "/flynn.api.v1.Controller/CreateScale", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *controllerClient) CreateRelease(ctx context.Context, in *CreateReleaseRequest, opts ...grpc.CallOption) (*Release, error) {
	out := new(Release)
	err := c.cc.Invoke(ctx, "/flynn.api.v1.Controller/CreateRelease", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *controllerClient) CreateDeployment(ctx context.Context, in *CreateDeploymentRequest, opts ...grpc.CallOption) (Controller_CreateDeploymentClient, error) {
	stream, err := c.cc.NewStream(ctx, &_Controller_serviceDesc.Streams[4], "/flynn.api.v1.Controller/CreateDeployment", opts...)
	if err != nil {
		return nil, err
	}
	x := &controllerCreateDeploymentClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type Controller_CreateDeploymentClient interface {
	Recv() (*DeploymentEvent, error)
	grpc.ClientStream
}

type controllerCreateDeploymentClient struct {
	grpc.ClientStream
}

func (x *controllerCreateDeploymentClient) Recv() (*DeploymentEvent, error) {
	m := new(DeploymentEvent)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

// ControllerServer is the server API for Controller service.
type ControllerServer interface {
	Status(context.Context, *empty.Empty) (*StatusResponse, error)
	StreamApps(*StreamAppsRequest, Controller_StreamAppsServer) error
	StreamReleases(*StreamReleasesRequest, Controller_StreamReleasesServer) error
	StreamScales(*StreamScalesRequest, Controller_StreamScalesServer) error
	StreamDeployments(*StreamDeploymentsRequest, Controller_StreamDeploymentsServer) error
	UpdateApp(context.Context, *UpdateAppRequest) (*App, error)
	CreateScale(context.Context, *CreateScaleRequest) (*ScaleRequest, error)
	CreateRelease(context.Context, *CreateReleaseRequest) (*Release, error)
	CreateDeployment(*CreateDeploymentRequest, Controller_CreateDeploymentServer) error
}

// UnimplementedControllerServer can be embedded to have forward compatible implementations.
type UnimplementedControllerServer struct {
}

func (*UnimplementedControllerServer) Status(ctx context.Context, req *empty.Empty) (*StatusResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Status not implemented")
}
func (*UnimplementedControllerServer) StreamApps(req *StreamAppsRequest, srv Controller_StreamAppsServer) error {
	return status.Errorf(codes.Unimplemented, "method StreamApps not implemented")
}
func (*UnimplementedControllerServer) StreamReleases(req *StreamReleasesRequest, srv Controller_StreamReleasesServer) error {
	return status.Errorf(codes.Unimplemented, "method StreamReleases not implemented")
}
func (*UnimplementedControllerServer) StreamScales(req *StreamScalesRequest, srv Controller_StreamScalesServer) error {
	return status.Errorf(codes.Unimplemented, "method StreamScales not implemented")
}
func (*UnimplementedControllerServer) StreamDeployments(req *StreamDeploymentsRequest, srv Controller_StreamDeploymentsServer) error {
	return status.Errorf(codes.Unimplemented, "method StreamDeployments not implemented")
}
func (*UnimplementedControllerServer) UpdateApp(ctx context.Context, req *UpdateAppRequest) (*App, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateApp not implemented")
}
func (*UnimplementedControllerServer) CreateScale(ctx context.Context, req *CreateScaleRequest) (*ScaleRequest, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateScale not implemented")
}
func (*UnimplementedControllerServer) CreateRelease(ctx context.Context, req *CreateReleaseRequest) (*Release, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateRelease not implemented")
}
func (*UnimplementedControllerServer) CreateDeployment(req *CreateDeploymentRequest, srv Controller_CreateDeploymentServer) error {
	return status.Errorf(codes.Unimplemented, "method CreateDeployment not implemented")
}

func RegisterControllerServer(s *grpc.Server, srv ControllerServer) {
	s.RegisterService(&_Controller_serviceDesc, srv)
}

func _Controller_Status_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(empty.Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ControllerServer).Status(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/flynn.api.v1.Controller/Status",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ControllerServer).Status(ctx, req.(*empty.Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _Controller_StreamApps_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(StreamAppsRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(ControllerServer).StreamApps(m, &controllerStreamAppsServer{stream})
}

type Controller_StreamAppsServer interface {
	Send(*StreamAppsResponse) error
	grpc.ServerStream
}

type controllerStreamAppsServer struct {
	grpc.ServerStream
}

func (x *controllerStreamAppsServer) Send(m *StreamAppsResponse) error {
	return x.ServerStream.SendMsg(m)
}

func _Controller_StreamReleases_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(StreamReleasesRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(ControllerServer).StreamReleases(m, &controllerStreamReleasesServer{stream})
}

type Controller_StreamReleasesServer interface {
	Send(*StreamReleasesResponse) error
	grpc.ServerStream
}

type controllerStreamReleasesServer struct {
	grpc.ServerStream
}

func (x *controllerStreamReleasesServer) Send(m *StreamReleasesResponse) error {
	return x.ServerStream.SendMsg(m)
}

func _Controller_StreamScales_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(StreamScalesRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(ControllerServer).StreamScales(m, &controllerStreamScalesServer{stream})
}

type Controller_StreamScalesServer interface {
	Send(*StreamScalesResponse) error
	grpc.ServerStream
}

type controllerStreamScalesServer struct {
	grpc.ServerStream
}

func (x *controllerStreamScalesServer) Send(m *StreamScalesResponse) error {
	return x.ServerStream.SendMsg(m)
}

func _Controller_StreamDeployments_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(StreamDeploymentsRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(ControllerServer).StreamDeployments(m, &controllerStreamDeploymentsServer{stream})
}

type Controller_StreamDeploymentsServer interface {
	Send(*StreamDeploymentsResponse) error
	grpc.ServerStream
}

type controllerStreamDeploymentsServer struct {
	grpc.ServerStream
}

func (x *controllerStreamDeploymentsServer) Send(m *StreamDeploymentsResponse) error {
	return x.ServerStream.SendMsg(m)
}

func _Controller_UpdateApp_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateAppRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ControllerServer).UpdateApp(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/flynn.api.v1.Controller/UpdateApp",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ControllerServer).UpdateApp(ctx, req.(*UpdateAppRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Controller_CreateScale_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateScaleRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ControllerServer).CreateScale(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/flynn.api.v1.Controller/CreateScale",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ControllerServer).CreateScale(ctx, req.(*CreateScaleRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Controller_CreateRelease_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateReleaseRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ControllerServer).CreateRelease(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/flynn.api.v1.Controller/CreateRelease",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ControllerServer).CreateRelease(ctx, req.(*CreateReleaseRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Controller_CreateDeployment_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(CreateDeploymentRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(ControllerServer).CreateDeployment(m, &controllerCreateDeploymentServer{stream})
}

type Controller_CreateDeploymentServer interface {
	Send(*DeploymentEvent) error
	grpc.ServerStream
}

type controllerCreateDeploymentServer struct {
	grpc.ServerStream
}

func (x *controllerCreateDeploymentServer) Send(m *DeploymentEvent) error {
	return x.ServerStream.SendMsg(m)
}

var _Controller_serviceDesc = grpc.ServiceDesc{
	ServiceName: "flynn.api.v1.Controller",
	HandlerType: (*ControllerServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "Status",
			Handler:    _Controller_Status_Handler,
		},
		{
			MethodName: "UpdateApp",
			Handler:    _Controller_UpdateApp_Handler,
		},
		{
			MethodName: "CreateScale",
			Handler:    _Controller_CreateScale_Handler,
		},
		{
			MethodName: "CreateRelease",
			Handler:    _Controller_CreateRelease_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "StreamApps",
			Handler:       _Controller_StreamApps_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "StreamReleases",
			Handler:       _Controller_StreamReleases_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "StreamScales",
			Handler:       _Controller_StreamScales_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "StreamDeployments",
			Handler:       _Controller_StreamDeployments_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "CreateDeployment",
			Handler:       _Controller_CreateDeployment_Handler,
			ServerStreams: true,
		},
	},
	Metadata: "controller.proto",
}
