// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Sync protocol datatype extension for desks on Chrome OS.

// If you change or add any fields in this file, update proto_visitors.h and
// potentially proto_enum_conversions.{h, cc}.

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.31.0
// 	protoc        v3.6.1
// source: workspace_desk_specifics.proto

package sync_pb

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

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

// Enumeration for the container an app was launched from as used by
// (components/services/app_services/public/mojom/types.mojom:490).
type WorkspaceDeskSpecifics_LaunchContainer int32

const (
	WorkspaceDeskSpecifics_LAUNCH_CONTAINER_UNSPECIFIED      WorkspaceDeskSpecifics_LaunchContainer = 0
	WorkspaceDeskSpecifics_LAUNCH_CONTAINER_WINDOW           WorkspaceDeskSpecifics_LaunchContainer = 1
	WorkspaceDeskSpecifics_LAUNCH_CONTAINER_PANEL_DEPRECATED WorkspaceDeskSpecifics_LaunchContainer = 2
	WorkspaceDeskSpecifics_LAUNCH_CONTAINER_TAB              WorkspaceDeskSpecifics_LaunchContainer = 3
	WorkspaceDeskSpecifics_LAUNCH_CONTAINER_NONE             WorkspaceDeskSpecifics_LaunchContainer = 4
)

// Enum value maps for WorkspaceDeskSpecifics_LaunchContainer.
var (
	WorkspaceDeskSpecifics_LaunchContainer_name = map[int32]string{
		0: "LAUNCH_CONTAINER_UNSPECIFIED",
		1: "LAUNCH_CONTAINER_WINDOW",
		2: "LAUNCH_CONTAINER_PANEL_DEPRECATED",
		3: "LAUNCH_CONTAINER_TAB",
		4: "LAUNCH_CONTAINER_NONE",
	}
	WorkspaceDeskSpecifics_LaunchContainer_value = map[string]int32{
		"LAUNCH_CONTAINER_UNSPECIFIED":      0,
		"LAUNCH_CONTAINER_WINDOW":           1,
		"LAUNCH_CONTAINER_PANEL_DEPRECATED": 2,
		"LAUNCH_CONTAINER_TAB":              3,
		"LAUNCH_CONTAINER_NONE":             4,
	}
)

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

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

func (WorkspaceDeskSpecifics_LaunchContainer) Descriptor() protoreflect.EnumDescriptor {
	return file_workspace_desk_specifics_proto_enumTypes[0].Descriptor()
}

func (WorkspaceDeskSpecifics_LaunchContainer) Type() protoreflect.EnumType {
	return &file_workspace_desk_specifics_proto_enumTypes[0]
}

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

// Deprecated: Do not use.
func (x *WorkspaceDeskSpecifics_LaunchContainer) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = WorkspaceDeskSpecifics_LaunchContainer(num)
	return nil
}

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

// The state of a generic window.
type WorkspaceDeskSpecifics_WindowState int32

const (
	WorkspaceDeskSpecifics_UNKNOWN_WINDOW_STATE WorkspaceDeskSpecifics_WindowState = 0
	// Normal window state (not minimized, maximized, or fullscreen).
	WorkspaceDeskSpecifics_NORMAL WorkspaceDeskSpecifics_WindowState = 1
	// Minimized window state.
	WorkspaceDeskSpecifics_MINIMIZED WorkspaceDeskSpecifics_WindowState = 2
	// Maximized window state.
	WorkspaceDeskSpecifics_MAXIMIZED WorkspaceDeskSpecifics_WindowState = 3
	// Fullscreen window state.
	WorkspaceDeskSpecifics_FULLSCREEN WorkspaceDeskSpecifics_WindowState = 4
	// Snapped to primary half of the screen. Primary half is on the left in
	// landscape screen orientation and top in portrait screen orientation.
	WorkspaceDeskSpecifics_PRIMARY_SNAPPED WorkspaceDeskSpecifics_WindowState = 5
	// Snapped to secondary half of the screen. Secondary half is on the right
	// in landscape screen orientation and bottom in portrait screen
	// orientation.
	WorkspaceDeskSpecifics_SECONDARY_SNAPPED WorkspaceDeskSpecifics_WindowState = 6
	// Floated window state.
	WorkspaceDeskSpecifics_FLOATED WorkspaceDeskSpecifics_WindowState = 7
)

// Enum value maps for WorkspaceDeskSpecifics_WindowState.
var (
	WorkspaceDeskSpecifics_WindowState_name = map[int32]string{
		0: "UNKNOWN_WINDOW_STATE",
		1: "NORMAL",
		2: "MINIMIZED",
		3: "MAXIMIZED",
		4: "FULLSCREEN",
		5: "PRIMARY_SNAPPED",
		6: "SECONDARY_SNAPPED",
		7: "FLOATED",
	}
	WorkspaceDeskSpecifics_WindowState_value = map[string]int32{
		"UNKNOWN_WINDOW_STATE": 0,
		"NORMAL":               1,
		"MINIMIZED":            2,
		"MAXIMIZED":            3,
		"FULLSCREEN":           4,
		"PRIMARY_SNAPPED":      5,
		"SECONDARY_SNAPPED":    6,
		"FLOATED":              7,
	}
)

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

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

func (WorkspaceDeskSpecifics_WindowState) Descriptor() protoreflect.EnumDescriptor {
	return file_workspace_desk_specifics_proto_enumTypes[1].Descriptor()
}

func (WorkspaceDeskSpecifics_WindowState) Type() protoreflect.EnumType {
	return &file_workspace_desk_specifics_proto_enumTypes[1]
}

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

// Deprecated: Do not use.
func (x *WorkspaceDeskSpecifics_WindowState) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = WorkspaceDeskSpecifics_WindowState(num)
	return nil
}

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

// Enumeration for how a window opens.  Maps to base::WindowOpenDisposition.
// (found in ui/base/window_open_disposition.h:10).  Does not include
// MAX_VALUE as MAX_VALUE is equivalent to NEW_PICTURE_IN_PICTURE.  All
// comments are copied verbatim from aforementioned header.
type WorkspaceDeskSpecifics_WindowOpenDisposition int32

const (
	WorkspaceDeskSpecifics_UNKNOWN     WorkspaceDeskSpecifics_WindowOpenDisposition = 0
	WorkspaceDeskSpecifics_CURRENT_TAB WorkspaceDeskSpecifics_WindowOpenDisposition = 1
	// Indicates that only one tab with the URL shoul exist in the same window.
	WorkspaceDeskSpecifics_SINGLETON_TAB      WorkspaceDeskSpecifics_WindowOpenDisposition = 2
	WorkspaceDeskSpecifics_NEW_FOREGROUND_TAB WorkspaceDeskSpecifics_WindowOpenDisposition = 3
	WorkspaceDeskSpecifics_NEW_BACKGROUND_TAB WorkspaceDeskSpecifics_WindowOpenDisposition = 4
	WorkspaceDeskSpecifics_NEW_POPUP          WorkspaceDeskSpecifics_WindowOpenDisposition = 5
	WorkspaceDeskSpecifics_NEW_WINDOW         WorkspaceDeskSpecifics_WindowOpenDisposition = 6
	WorkspaceDeskSpecifics_SAVE_TO_DISK       WorkspaceDeskSpecifics_WindowOpenDisposition = 7
	WorkspaceDeskSpecifics_OFF_THE_RECORD     WorkspaceDeskSpecifics_WindowOpenDisposition = 8
	WorkspaceDeskSpecifics_IGNORE_ACTION      WorkspaceDeskSpecifics_WindowOpenDisposition = 9
	// Activates an existing tab containing the URL, rather than navigating.
	// This is similar to SINGLETON_TAB, but searches across all windows
	// from the current profile and anymity (instead of tjust the current one);
	// closes the current tab on switching if the current ta was the NTP with
	// no session history; and behaves like CURRENT_TAB instead of
	// NEW_FOREGROUND_TAB when no existing tab is found.
	WorkspaceDeskSpecifics_SWITCH_TO_TAB WorkspaceDeskSpecifics_WindowOpenDisposition = 10
	// creates a new document picture-in-picture window showing a child WebView.
	WorkspaceDeskSpecifics_NEW_PICTURE_IN_PICTURE WorkspaceDeskSpecifics_WindowOpenDisposition = 11
)

// Enum value maps for WorkspaceDeskSpecifics_WindowOpenDisposition.
var (
	WorkspaceDeskSpecifics_WindowOpenDisposition_name = map[int32]string{
		0:  "UNKNOWN",
		1:  "CURRENT_TAB",
		2:  "SINGLETON_TAB",
		3:  "NEW_FOREGROUND_TAB",
		4:  "NEW_BACKGROUND_TAB",
		5:  "NEW_POPUP",
		6:  "NEW_WINDOW",
		7:  "SAVE_TO_DISK",
		8:  "OFF_THE_RECORD",
		9:  "IGNORE_ACTION",
		10: "SWITCH_TO_TAB",
		11: "NEW_PICTURE_IN_PICTURE",
	}
	WorkspaceDeskSpecifics_WindowOpenDisposition_value = map[string]int32{
		"UNKNOWN":                0,
		"CURRENT_TAB":            1,
		"SINGLETON_TAB":          2,
		"NEW_FOREGROUND_TAB":     3,
		"NEW_BACKGROUND_TAB":     4,
		"NEW_POPUP":              5,
		"NEW_WINDOW":             6,
		"SAVE_TO_DISK":           7,
		"OFF_THE_RECORD":         8,
		"IGNORE_ACTION":          9,
		"SWITCH_TO_TAB":          10,
		"NEW_PICTURE_IN_PICTURE": 11,
	}
)

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

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

func (WorkspaceDeskSpecifics_WindowOpenDisposition) Descriptor() protoreflect.EnumDescriptor {
	return file_workspace_desk_specifics_proto_enumTypes[2].Descriptor()
}

func (WorkspaceDeskSpecifics_WindowOpenDisposition) Type() protoreflect.EnumType {
	return &file_workspace_desk_specifics_proto_enumTypes[2]
}

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

// Deprecated: Do not use.
func (x *WorkspaceDeskSpecifics_WindowOpenDisposition) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = WorkspaceDeskSpecifics_WindowOpenDisposition(num)
	return nil
}

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

// Enumerates the type of desk, namely to differentiate desks between desks
// saved for desk templates and desks saved for save and recall.
type WorkspaceDeskSpecifics_DeskType int32

const (
	WorkspaceDeskSpecifics_UNKNOWN_TYPE       WorkspaceDeskSpecifics_DeskType = 0
	WorkspaceDeskSpecifics_TEMPLATE           WorkspaceDeskSpecifics_DeskType = 1
	WorkspaceDeskSpecifics_SAVE_AND_RECALL    WorkspaceDeskSpecifics_DeskType = 2
	WorkspaceDeskSpecifics_FLOATING_WORKSPACE WorkspaceDeskSpecifics_DeskType = 3
)

// Enum value maps for WorkspaceDeskSpecifics_DeskType.
var (
	WorkspaceDeskSpecifics_DeskType_name = map[int32]string{
		0: "UNKNOWN_TYPE",
		1: "TEMPLATE",
		2: "SAVE_AND_RECALL",
		3: "FLOATING_WORKSPACE",
	}
	WorkspaceDeskSpecifics_DeskType_value = map[string]int32{
		"UNKNOWN_TYPE":       0,
		"TEMPLATE":           1,
		"SAVE_AND_RECALL":    2,
		"FLOATING_WORKSPACE": 3,
	}
)

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

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

func (WorkspaceDeskSpecifics_DeskType) Descriptor() protoreflect.EnumDescriptor {
	return file_workspace_desk_specifics_proto_enumTypes[3].Descriptor()
}

func (WorkspaceDeskSpecifics_DeskType) Type() protoreflect.EnumType {
	return &file_workspace_desk_specifics_proto_enumTypes[3]
}

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

// Deprecated: Do not use.
func (x *WorkspaceDeskSpecifics_DeskType) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = WorkspaceDeskSpecifics_DeskType(num)
	return nil
}

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

// Enumerates the possible colors that a tab group can have.  This mirrors
// the enumeration that can be found in
// components/tab_groups/tab_group_color.h
type WorkspaceDeskSpecifics_TabGroupColor int32

const (
	WorkspaceDeskSpecifics_UNKNOWN_COLOR WorkspaceDeskSpecifics_TabGroupColor = 0
	WorkspaceDeskSpecifics_GREY          WorkspaceDeskSpecifics_TabGroupColor = 1
	WorkspaceDeskSpecifics_BLUE          WorkspaceDeskSpecifics_TabGroupColor = 2
	WorkspaceDeskSpecifics_RED           WorkspaceDeskSpecifics_TabGroupColor = 3
	WorkspaceDeskSpecifics_YELLOW        WorkspaceDeskSpecifics_TabGroupColor = 4
	WorkspaceDeskSpecifics_GREEN         WorkspaceDeskSpecifics_TabGroupColor = 5
	WorkspaceDeskSpecifics_PINK          WorkspaceDeskSpecifics_TabGroupColor = 6
	WorkspaceDeskSpecifics_PURPLE        WorkspaceDeskSpecifics_TabGroupColor = 7
	WorkspaceDeskSpecifics_CYAN          WorkspaceDeskSpecifics_TabGroupColor = 8
	WorkspaceDeskSpecifics_ORANGE        WorkspaceDeskSpecifics_TabGroupColor = 9
)

// Enum value maps for WorkspaceDeskSpecifics_TabGroupColor.
var (
	WorkspaceDeskSpecifics_TabGroupColor_name = map[int32]string{
		0: "UNKNOWN_COLOR",
		1: "GREY",
		2: "BLUE",
		3: "RED",
		4: "YELLOW",
		5: "GREEN",
		6: "PINK",
		7: "PURPLE",
		8: "CYAN",
		9: "ORANGE",
	}
	WorkspaceDeskSpecifics_TabGroupColor_value = map[string]int32{
		"UNKNOWN_COLOR": 0,
		"GREY":          1,
		"BLUE":          2,
		"RED":           3,
		"YELLOW":        4,
		"GREEN":         5,
		"PINK":          6,
		"PURPLE":        7,
		"CYAN":          8,
		"ORANGE":        9,
	}
)

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

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

func (WorkspaceDeskSpecifics_TabGroupColor) Descriptor() protoreflect.EnumDescriptor {
	return file_workspace_desk_specifics_proto_enumTypes[4].Descriptor()
}

func (WorkspaceDeskSpecifics_TabGroupColor) Type() protoreflect.EnumType {
	return &file_workspace_desk_specifics_proto_enumTypes[4]
}

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

// Deprecated: Do not use.
func (x *WorkspaceDeskSpecifics_TabGroupColor) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = WorkspaceDeskSpecifics_TabGroupColor(num)
	return nil
}

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

// A workspace desk entry. This proto contains the fields synced to represent
// a saved desk in user's workspace.
type WorkspaceDeskSpecifics struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// A random unique identifier for each desk.
	// Required.
	Uuid *string `protobuf:"bytes,1,opt,name=uuid" json:"uuid,omitempty"`
	// The name of the desk being saved.
	Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
	// The time this snapshot of desk was created.
	CreatedTimeWindowsEpochMicros *int64 `protobuf:"varint,3,opt,name=created_time_windows_epoch_micros,json=createdTimeWindowsEpochMicros" json:"created_time_windows_epoch_micros,omitempty"`
	// The time this snapshot of desk was updated.
	UpdatedTimeWindowsEpochMicros *int64                       `protobuf:"varint,5,opt,name=updated_time_windows_epoch_micros,json=updatedTimeWindowsEpochMicros" json:"updated_time_windows_epoch_micros,omitempty"`
	Desk                          *WorkspaceDeskSpecifics_Desk `protobuf:"bytes,4,opt,name=desk" json:"desk,omitempty"`
	// The type of a desk.
	DeskType *WorkspaceDeskSpecifics_DeskType `protobuf:"varint,6,opt,name=desk_type,json=deskType,enum=sync_pb.WorkspaceDeskSpecifics_DeskType" json:"desk_type,omitempty"`
	// The cache guid of the syncing client. Used to identify a unique device
	// that's syncing data.
	ClientCacheGuid *string `protobuf:"bytes,7,opt,name=client_cache_guid,json=clientCacheGuid" json:"client_cache_guid,omitempty"`
	// The form factor of the device.
	DeviceFormFactor *SyncEnums_DeviceFormFactor `protobuf:"varint,8,opt,name=device_form_factor,json=deviceFormFactor,enum=sync_pb.SyncEnums_DeviceFormFactor" json:"device_form_factor,omitempty"`
}

func (x *WorkspaceDeskSpecifics) Reset() {
	*x = WorkspaceDeskSpecifics{}
	if protoimpl.UnsafeEnabled {
		mi := &file_workspace_desk_specifics_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*WorkspaceDeskSpecifics) ProtoMessage() {}

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

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

func (x *WorkspaceDeskSpecifics) GetUuid() string {
	if x != nil && x.Uuid != nil {
		return *x.Uuid
	}
	return ""
}

func (x *WorkspaceDeskSpecifics) GetName() string {
	if x != nil && x.Name != nil {
		return *x.Name
	}
	return ""
}

func (x *WorkspaceDeskSpecifics) GetCreatedTimeWindowsEpochMicros() int64 {
	if x != nil && x.CreatedTimeWindowsEpochMicros != nil {
		return *x.CreatedTimeWindowsEpochMicros
	}
	return 0
}

func (x *WorkspaceDeskSpecifics) GetUpdatedTimeWindowsEpochMicros() int64 {
	if x != nil && x.UpdatedTimeWindowsEpochMicros != nil {
		return *x.UpdatedTimeWindowsEpochMicros
	}
	return 0
}

func (x *WorkspaceDeskSpecifics) GetDesk() *WorkspaceDeskSpecifics_Desk {
	if x != nil {
		return x.Desk
	}
	return nil
}

func (x *WorkspaceDeskSpecifics) GetDeskType() WorkspaceDeskSpecifics_DeskType {
	if x != nil && x.DeskType != nil {
		return *x.DeskType
	}
	return WorkspaceDeskSpecifics_UNKNOWN_TYPE
}

func (x *WorkspaceDeskSpecifics) GetClientCacheGuid() string {
	if x != nil && x.ClientCacheGuid != nil {
		return *x.ClientCacheGuid
	}
	return ""
}

func (x *WorkspaceDeskSpecifics) GetDeviceFormFactor() SyncEnums_DeviceFormFactor {
	if x != nil && x.DeviceFormFactor != nil {
		return *x.DeviceFormFactor
	}
	return SyncEnums_DEVICE_FORM_FACTOR_UNSPECIFIED
}

// Represent a snapshot of the information on a desk.
type WorkspaceDeskSpecifics_Desk struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The apps in this template.
	Apps []*WorkspaceDeskSpecifics_App `protobuf:"bytes,1,rep,name=apps" json:"apps,omitempty"`
}

func (x *WorkspaceDeskSpecifics_Desk) Reset() {
	*x = WorkspaceDeskSpecifics_Desk{}
	if protoimpl.UnsafeEnabled {
		mi := &file_workspace_desk_specifics_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*WorkspaceDeskSpecifics_Desk) ProtoMessage() {}

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

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

func (x *WorkspaceDeskSpecifics_Desk) GetApps() []*WorkspaceDeskSpecifics_App {
	if x != nil {
		return x.Apps
	}
	return nil
}

// A Launchable app in template.
type WorkspaceDeskSpecifics_App struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The on-display location of this window.
	WindowBound *WorkspaceDeskSpecifics_WindowBound `protobuf:"bytes,1,opt,name=window_bound,json=windowBound" json:"window_bound,omitempty"`
	WindowState *WorkspaceDeskSpecifics_WindowState `protobuf:"varint,2,opt,name=window_state,json=windowState,enum=sync_pb.WorkspaceDeskSpecifics_WindowState" json:"window_state,omitempty"`
	// The z-index of this app relative to other apps in this template.
	// App with larger z-index appears in front of app with smaller z-index.
	ZIndex *int32                           `protobuf:"varint,3,opt,name=z_index,json=zIndex" json:"z_index,omitempty"`
	App    *WorkspaceDeskSpecifics_AppOneOf `protobuf:"bytes,4,opt,name=app" json:"app,omitempty"`
	// window_id used to instantiate proto as a restore_data object.  The
	// restore_data object in question can be found at:
	// //components/app_restore/restore_data.h
	WindowId *int32 `protobuf:"varint,5,opt,name=window_id,json=windowId" json:"window_id,omitempty"`
	// Display ID this app is on.
	DisplayId *int64 `protobuf:"varint,6,opt,name=display_id,json=displayId" json:"display_id,omitempty"`
	// State of a window before it was minimized. Empty/unset for non-minimized
	// windows.
	PreMinimizedWindowState *WorkspaceDeskSpecifics_WindowState `protobuf:"varint,7,opt,name=pre_minimized_window_state,json=preMinimizedWindowState,enum=sync_pb.WorkspaceDeskSpecifics_WindowState" json:"pre_minimized_window_state,omitempty"`
	// Container this app was launched from.  Empty/unset for Arc apps.
	Container *WorkspaceDeskSpecifics_LaunchContainer `protobuf:"varint,8,opt,name=container,enum=sync_pb.WorkspaceDeskSpecifics_LaunchContainer" json:"container,omitempty"`
	// Window open disposition, defines how a window opens. Empty/unset for Arc
	// apps.
	Disposition *WorkspaceDeskSpecifics_WindowOpenDisposition `protobuf:"varint,9,opt,name=disposition,enum=sync_pb.WorkspaceDeskSpecifics_WindowOpenDisposition" json:"disposition,omitempty"`
	// Name of the app which is used by the browser to determine whether to
	// launch an app as an app or a tab. Does not contain a human readable name
	// but contains the app ID and a prefix.
	AppName *string `protobuf:"bytes,10,opt,name=app_name,json=appName" json:"app_name,omitempty"`
	// Human readable title of the app.
	Title *string `protobuf:"bytes,11,opt,name=title" json:"title,omitempty"`
	// This is used to determine the size of a snapped window is in clamshell
	// mode. Empty/unset for non-snapped windows. This should be a value between
	// 0 and 100.
	SnapPercentage *int32 `protobuf:"varint,12,opt,name=snap_percentage,json=snapPercentage" json:"snap_percentage,omitempty"`
	// The override URL can be specified by apps to override the default URL at
	// launch.
	OverrideUrl *string `protobuf:"bytes,13,opt,name=override_url,json=overrideUrl" json:"override_url,omitempty"`
}

func (x *WorkspaceDeskSpecifics_App) Reset() {
	*x = WorkspaceDeskSpecifics_App{}
	if protoimpl.UnsafeEnabled {
		mi := &file_workspace_desk_specifics_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*WorkspaceDeskSpecifics_App) ProtoMessage() {}

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

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

func (x *WorkspaceDeskSpecifics_App) GetWindowBound() *WorkspaceDeskSpecifics_WindowBound {
	if x != nil {
		return x.WindowBound
	}
	return nil
}

func (x *WorkspaceDeskSpecifics_App) GetWindowState() WorkspaceDeskSpecifics_WindowState {
	if x != nil && x.WindowState != nil {
		return *x.WindowState
	}
	return WorkspaceDeskSpecifics_UNKNOWN_WINDOW_STATE
}

func (x *WorkspaceDeskSpecifics_App) GetZIndex() int32 {
	if x != nil && x.ZIndex != nil {
		return *x.ZIndex
	}
	return 0
}

func (x *WorkspaceDeskSpecifics_App) GetApp() *WorkspaceDeskSpecifics_AppOneOf {
	if x != nil {
		return x.App
	}
	return nil
}

func (x *WorkspaceDeskSpecifics_App) GetWindowId() int32 {
	if x != nil && x.WindowId != nil {
		return *x.WindowId
	}
	return 0
}

func (x *WorkspaceDeskSpecifics_App) GetDisplayId() int64 {
	if x != nil && x.DisplayId != nil {
		return *x.DisplayId
	}
	return 0
}

func (x *WorkspaceDeskSpecifics_App) GetPreMinimizedWindowState() WorkspaceDeskSpecifics_WindowState {
	if x != nil && x.PreMinimizedWindowState != nil {
		return *x.PreMinimizedWindowState
	}
	return WorkspaceDeskSpecifics_UNKNOWN_WINDOW_STATE
}

func (x *WorkspaceDeskSpecifics_App) GetContainer() WorkspaceDeskSpecifics_LaunchContainer {
	if x != nil && x.Container != nil {
		return *x.Container
	}
	return WorkspaceDeskSpecifics_LAUNCH_CONTAINER_UNSPECIFIED
}

func (x *WorkspaceDeskSpecifics_App) GetDisposition() WorkspaceDeskSpecifics_WindowOpenDisposition {
	if x != nil && x.Disposition != nil {
		return *x.Disposition
	}
	return WorkspaceDeskSpecifics_UNKNOWN
}

func (x *WorkspaceDeskSpecifics_App) GetAppName() string {
	if x != nil && x.AppName != nil {
		return *x.AppName
	}
	return ""
}

func (x *WorkspaceDeskSpecifics_App) GetTitle() string {
	if x != nil && x.Title != nil {
		return *x.Title
	}
	return ""
}

func (x *WorkspaceDeskSpecifics_App) GetSnapPercentage() int32 {
	if x != nil && x.SnapPercentage != nil {
		return *x.SnapPercentage
	}
	return 0
}

func (x *WorkspaceDeskSpecifics_App) GetOverrideUrl() string {
	if x != nil && x.OverrideUrl != nil {
		return *x.OverrideUrl
	}
	return ""
}

type WorkspaceDeskSpecifics_AppOneOf struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to App:
	//	*WorkspaceDeskSpecifics_AppOneOf_BrowserAppWindow
	//	*WorkspaceDeskSpecifics_AppOneOf_ChromeApp
	//	*WorkspaceDeskSpecifics_AppOneOf_ProgressWebApp
	//	*WorkspaceDeskSpecifics_AppOneOf_ArcApp
	App isWorkspaceDeskSpecifics_AppOneOf_App `protobuf_oneof:"app"`
}

func (x *WorkspaceDeskSpecifics_AppOneOf) Reset() {
	*x = WorkspaceDeskSpecifics_AppOneOf{}
	if protoimpl.UnsafeEnabled {
		mi := &file_workspace_desk_specifics_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*WorkspaceDeskSpecifics_AppOneOf) ProtoMessage() {}

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

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

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

func (x *WorkspaceDeskSpecifics_AppOneOf) GetBrowserAppWindow() *WorkspaceDeskSpecifics_BrowserAppWindow {
	if x, ok := x.GetApp().(*WorkspaceDeskSpecifics_AppOneOf_BrowserAppWindow); ok {
		return x.BrowserAppWindow
	}
	return nil
}

func (x *WorkspaceDeskSpecifics_AppOneOf) GetChromeApp() *WorkspaceDeskSpecifics_ChromeApp {
	if x, ok := x.GetApp().(*WorkspaceDeskSpecifics_AppOneOf_ChromeApp); ok {
		return x.ChromeApp
	}
	return nil
}

func (x *WorkspaceDeskSpecifics_AppOneOf) GetProgressWebApp() *WorkspaceDeskSpecifics_ProgressiveWebApp {
	if x, ok := x.GetApp().(*WorkspaceDeskSpecifics_AppOneOf_ProgressWebApp); ok {
		return x.ProgressWebApp
	}
	return nil
}

func (x *WorkspaceDeskSpecifics_AppOneOf) GetArcApp() *WorkspaceDeskSpecifics_ArcApp {
	if x, ok := x.GetApp().(*WorkspaceDeskSpecifics_AppOneOf_ArcApp); ok {
		return x.ArcApp
	}
	return nil
}

type isWorkspaceDeskSpecifics_AppOneOf_App interface {
	isWorkspaceDeskSpecifics_AppOneOf_App()
}

type WorkspaceDeskSpecifics_AppOneOf_BrowserAppWindow struct {
	BrowserAppWindow *WorkspaceDeskSpecifics_BrowserAppWindow `protobuf:"bytes,1,opt,name=browser_app_window,json=browserAppWindow,oneof"`
}

type WorkspaceDeskSpecifics_AppOneOf_ChromeApp struct {
	ChromeApp *WorkspaceDeskSpecifics_ChromeApp `protobuf:"bytes,2,opt,name=chrome_app,json=chromeApp,oneof"`
}

type WorkspaceDeskSpecifics_AppOneOf_ProgressWebApp struct {
	ProgressWebApp *WorkspaceDeskSpecifics_ProgressiveWebApp `protobuf:"bytes,3,opt,name=progress_web_app,json=progressWebApp,oneof"`
}

type WorkspaceDeskSpecifics_AppOneOf_ArcApp struct {
	ArcApp *WorkspaceDeskSpecifics_ArcApp `protobuf:"bytes,4,opt,name=arc_app,json=arcApp,oneof"`
}

func (*WorkspaceDeskSpecifics_AppOneOf_BrowserAppWindow) isWorkspaceDeskSpecifics_AppOneOf_App() {}

func (*WorkspaceDeskSpecifics_AppOneOf_ChromeApp) isWorkspaceDeskSpecifics_AppOneOf_App() {}

func (*WorkspaceDeskSpecifics_AppOneOf_ProgressWebApp) isWorkspaceDeskSpecifics_AppOneOf_App() {}

func (*WorkspaceDeskSpecifics_AppOneOf_ArcApp) isWorkspaceDeskSpecifics_AppOneOf_App() {}

// A Chrome or Lacros Browser app window.
type WorkspaceDeskSpecifics_BrowserAppWindow struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The tabs in this browser window.
	Tabs []*WorkspaceDeskSpecifics_BrowserAppWindow_BrowserAppTab `protobuf:"bytes,1,rep,name=tabs" json:"tabs,omitempty"`
	// The index of the currently active tab.
	ActiveTabIndex *int32 `protobuf:"varint,2,opt,name=active_tab_index,json=activeTabIndex" json:"active_tab_index,omitempty"`
	// Indicates whether to show as a dedicated app window.
	ShowAsApp *bool `protobuf:"varint,3,opt,name=show_as_app,json=showAsApp" json:"show_as_app,omitempty"`
	// Tab groups associated with this window.
	TabGroups []*WorkspaceDeskSpecifics_BrowserAppWindow_TabGroup `protobuf:"bytes,4,rep,name=tab_groups,json=tabGroups" json:"tab_groups,omitempty"`
	// The index of the first non-pinned tab.
	FirstNonPinnedTabIndex *int32 `protobuf:"varint,5,opt,name=first_non_pinned_tab_index,json=firstNonPinnedTabIndex" json:"first_non_pinned_tab_index,omitempty"`
}

func (x *WorkspaceDeskSpecifics_BrowserAppWindow) Reset() {
	*x = WorkspaceDeskSpecifics_BrowserAppWindow{}
	if protoimpl.UnsafeEnabled {
		mi := &file_workspace_desk_specifics_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*WorkspaceDeskSpecifics_BrowserAppWindow) ProtoMessage() {}

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

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

func (x *WorkspaceDeskSpecifics_BrowserAppWindow) GetTabs() []*WorkspaceDeskSpecifics_BrowserAppWindow_BrowserAppTab {
	if x != nil {
		return x.Tabs
	}
	return nil
}

func (x *WorkspaceDeskSpecifics_BrowserAppWindow) GetActiveTabIndex() int32 {
	if x != nil && x.ActiveTabIndex != nil {
		return *x.ActiveTabIndex
	}
	return 0
}

func (x *WorkspaceDeskSpecifics_BrowserAppWindow) GetShowAsApp() bool {
	if x != nil && x.ShowAsApp != nil {
		return *x.ShowAsApp
	}
	return false
}

func (x *WorkspaceDeskSpecifics_BrowserAppWindow) GetTabGroups() []*WorkspaceDeskSpecifics_BrowserAppWindow_TabGroup {
	if x != nil {
		return x.TabGroups
	}
	return nil
}

func (x *WorkspaceDeskSpecifics_BrowserAppWindow) GetFirstNonPinnedTabIndex() int32 {
	if x != nil && x.FirstNonPinnedTabIndex != nil {
		return *x.FirstNonPinnedTabIndex
	}
	return 0
}

// A Chrome App window.
type WorkspaceDeskSpecifics_ChromeApp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The Chrome App's App ID.
	AppId *string `protobuf:"bytes,1,opt,name=app_id,json=appId" json:"app_id,omitempty"`
}

func (x *WorkspaceDeskSpecifics_ChromeApp) Reset() {
	*x = WorkspaceDeskSpecifics_ChromeApp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_workspace_desk_specifics_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*WorkspaceDeskSpecifics_ChromeApp) ProtoMessage() {}

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

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

func (x *WorkspaceDeskSpecifics_ChromeApp) GetAppId() string {
	if x != nil && x.AppId != nil {
		return *x.AppId
	}
	return ""
}

// A PWA window.
type WorkspaceDeskSpecifics_ProgressiveWebApp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The PWA's App ID.
	AppId *string `protobuf:"bytes,1,opt,name=app_id,json=appId" json:"app_id,omitempty"`
}

func (x *WorkspaceDeskSpecifics_ProgressiveWebApp) Reset() {
	*x = WorkspaceDeskSpecifics_ProgressiveWebApp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_workspace_desk_specifics_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*WorkspaceDeskSpecifics_ProgressiveWebApp) ProtoMessage() {}

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

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

func (x *WorkspaceDeskSpecifics_ProgressiveWebApp) GetAppId() string {
	if x != nil && x.AppId != nil {
		return *x.AppId
	}
	return ""
}

// An Arc App window.
type WorkspaceDeskSpecifics_ArcApp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The Arc App's ID.
	AppId *string `protobuf:"bytes,1,opt,name=app_id,json=appId" json:"app_id,omitempty"`
	// Arc window information.  This maps
	// to ArcExtraInfo in a WindowInfo struct.
	MinimumSize  *WorkspaceDeskSpecifics_ArcApp_WindowSize `protobuf:"bytes,2,opt,name=minimum_size,json=minimumSize" json:"minimum_size,omitempty"`
	MaximumSize  *WorkspaceDeskSpecifics_ArcApp_WindowSize `protobuf:"bytes,3,opt,name=maximum_size,json=maximumSize" json:"maximum_size,omitempty"`
	BoundsInRoot *WorkspaceDeskSpecifics_WindowBound       `protobuf:"bytes,5,opt,name=bounds_in_root,json=boundsInRoot" json:"bounds_in_root,omitempty"`
}

func (x *WorkspaceDeskSpecifics_ArcApp) Reset() {
	*x = WorkspaceDeskSpecifics_ArcApp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_workspace_desk_specifics_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*WorkspaceDeskSpecifics_ArcApp) ProtoMessage() {}

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

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

func (x *WorkspaceDeskSpecifics_ArcApp) GetAppId() string {
	if x != nil && x.AppId != nil {
		return *x.AppId
	}
	return ""
}

func (x *WorkspaceDeskSpecifics_ArcApp) GetMinimumSize() *WorkspaceDeskSpecifics_ArcApp_WindowSize {
	if x != nil {
		return x.MinimumSize
	}
	return nil
}

func (x *WorkspaceDeskSpecifics_ArcApp) GetMaximumSize() *WorkspaceDeskSpecifics_ArcApp_WindowSize {
	if x != nil {
		return x.MaximumSize
	}
	return nil
}

func (x *WorkspaceDeskSpecifics_ArcApp) GetBoundsInRoot() *WorkspaceDeskSpecifics_WindowBound {
	if x != nil {
		return x.BoundsInRoot
	}
	return nil
}

type WorkspaceDeskSpecifics_WindowBound struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The offset of the window from the top edge of the screen in pixels.
	Top *int32 `protobuf:"varint,1,opt,name=top" json:"top,omitempty"`
	// The offset of the window from the left edge of the screen in pixels.
	Left *int32 `protobuf:"varint,2,opt,name=left" json:"left,omitempty"`
	// The width of the window, including the frame, in pixels.
	Width *int32 `protobuf:"varint,3,opt,name=width" json:"width,omitempty"`
	// The height of the window, including the frame, in pixels.
	Height *int32 `protobuf:"varint,4,opt,name=height" json:"height,omitempty"`
}

func (x *WorkspaceDeskSpecifics_WindowBound) Reset() {
	*x = WorkspaceDeskSpecifics_WindowBound{}
	if protoimpl.UnsafeEnabled {
		mi := &file_workspace_desk_specifics_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*WorkspaceDeskSpecifics_WindowBound) ProtoMessage() {}

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

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

func (x *WorkspaceDeskSpecifics_WindowBound) GetTop() int32 {
	if x != nil && x.Top != nil {
		return *x.Top
	}
	return 0
}

func (x *WorkspaceDeskSpecifics_WindowBound) GetLeft() int32 {
	if x != nil && x.Left != nil {
		return *x.Left
	}
	return 0
}

func (x *WorkspaceDeskSpecifics_WindowBound) GetWidth() int32 {
	if x != nil && x.Width != nil {
		return *x.Width
	}
	return 0
}

func (x *WorkspaceDeskSpecifics_WindowBound) GetHeight() int32 {
	if x != nil && x.Height != nil {
		return *x.Height
	}
	return 0
}

type WorkspaceDeskSpecifics_BrowserAppWindow_BrowserAppTab struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The last committed URL of the main frame of the tab.
	Url *string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
	// The title of the tab.
	Title *string `protobuf:"bytes,2,opt,name=title" json:"title,omitempty"`
}

func (x *WorkspaceDeskSpecifics_BrowserAppWindow_BrowserAppTab) Reset() {
	*x = WorkspaceDeskSpecifics_BrowserAppWindow_BrowserAppTab{}
	if protoimpl.UnsafeEnabled {
		mi := &file_workspace_desk_specifics_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*WorkspaceDeskSpecifics_BrowserAppWindow_BrowserAppTab) ProtoMessage() {}

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

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

func (x *WorkspaceDeskSpecifics_BrowserAppWindow_BrowserAppTab) GetUrl() string {
	if x != nil && x.Url != nil {
		return *x.Url
	}
	return ""
}

func (x *WorkspaceDeskSpecifics_BrowserAppWindow_BrowserAppTab) GetTitle() string {
	if x != nil && x.Title != nil {
		return *x.Title
	}
	return ""
}

// Structure representing a tab group associated with this window.
type WorkspaceDeskSpecifics_BrowserAppWindow_TabGroup struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Zero-based index within the browser app tabs of the first tab in the
	// group.
	FirstIndex *int32 `protobuf:"varint,1,opt,name=first_index,json=firstIndex" json:"first_index,omitempty"`
	// Zero-based Index wotjom the browser app tabs of the last tab in the
	// group.
	LastIndex *int32 `protobuf:"varint,2,opt,name=last_index,json=lastIndex" json:"last_index,omitempty"`
	// User readable title of the tab group.
	Title *string `protobuf:"bytes,3,opt,name=title" json:"title,omitempty"`
	// Color associated with this tab group.
	Color *WorkspaceDeskSpecifics_TabGroupColor `protobuf:"varint,4,opt,name=color,enum=sync_pb.WorkspaceDeskSpecifics_TabGroupColor" json:"color,omitempty"`
	// Indicates whether the tab group is collapsed.
	IsCollapsed *bool `protobuf:"varint,5,opt,name=is_collapsed,json=isCollapsed" json:"is_collapsed,omitempty"`
}

func (x *WorkspaceDeskSpecifics_BrowserAppWindow_TabGroup) Reset() {
	*x = WorkspaceDeskSpecifics_BrowserAppWindow_TabGroup{}
	if protoimpl.UnsafeEnabled {
		mi := &file_workspace_desk_specifics_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*WorkspaceDeskSpecifics_BrowserAppWindow_TabGroup) ProtoMessage() {}

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

// Deprecated: Use WorkspaceDeskSpecifics_BrowserAppWindow_TabGroup.ProtoReflect.Descriptor instead.
func (*WorkspaceDeskSpecifics_BrowserAppWindow_TabGroup) Descriptor() ([]byte, []int) {
	return file_workspace_desk_specifics_proto_rawDescGZIP(), []int{0, 3, 1}
}

func (x *WorkspaceDeskSpecifics_BrowserAppWindow_TabGroup) GetFirstIndex() int32 {
	if x != nil && x.FirstIndex != nil {
		return *x.FirstIndex
	}
	return 0
}

func (x *WorkspaceDeskSpecifics_BrowserAppWindow_TabGroup) GetLastIndex() int32 {
	if x != nil && x.LastIndex != nil {
		return *x.LastIndex
	}
	return 0
}

func (x *WorkspaceDeskSpecifics_BrowserAppWindow_TabGroup) GetTitle() string {
	if x != nil && x.Title != nil {
		return *x.Title
	}
	return ""
}

func (x *WorkspaceDeskSpecifics_BrowserAppWindow_TabGroup) GetColor() WorkspaceDeskSpecifics_TabGroupColor {
	if x != nil && x.Color != nil {
		return *x.Color
	}
	return WorkspaceDeskSpecifics_UNKNOWN_COLOR
}

func (x *WorkspaceDeskSpecifics_BrowserAppWindow_TabGroup) GetIsCollapsed() bool {
	if x != nil && x.IsCollapsed != nil {
		return *x.IsCollapsed
	}
	return false
}

// maps to gfx::Size.  Width of the window, including the frame,
// in pixels.
type WorkspaceDeskSpecifics_ArcApp_WindowSize struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Width  *int32 `protobuf:"varint,1,opt,name=width" json:"width,omitempty"`
	Height *int32 `protobuf:"varint,2,opt,name=height" json:"height,omitempty"`
}

func (x *WorkspaceDeskSpecifics_ArcApp_WindowSize) Reset() {
	*x = WorkspaceDeskSpecifics_ArcApp_WindowSize{}
	if protoimpl.UnsafeEnabled {
		mi := &file_workspace_desk_specifics_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*WorkspaceDeskSpecifics_ArcApp_WindowSize) ProtoMessage() {}

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

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

func (x *WorkspaceDeskSpecifics_ArcApp_WindowSize) GetWidth() int32 {
	if x != nil && x.Width != nil {
		return *x.Width
	}
	return 0
}

func (x *WorkspaceDeskSpecifics_ArcApp_WindowSize) GetHeight() int32 {
	if x != nil && x.Height != nil {
		return *x.Height
	}
	return 0
}

var File_workspace_desk_specifics_proto protoreflect.FileDescriptor

var file_workspace_desk_specifics_proto_rawDesc = []byte{
	0x0a, 0x1e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x6b,
	0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x12, 0x07, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x1a, 0x10, 0x73, 0x79, 0x6e, 0x63, 0x5f,
	0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xef, 0x1b, 0x0a, 0x16,
	0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65,
	0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x48,
	0x0a, 0x21, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x77,
	0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x6d, 0x69, 0x63,
	0x72, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1d, 0x63, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x45, 0x70, 0x6f,
	0x63, 0x68, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x12, 0x48, 0x0a, 0x21, 0x75, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73,
	0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x1d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65,
	0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x4d, 0x69, 0x63, 0x72,
	0x6f, 0x73, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x24, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73,
	0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63,
	0x73, 0x2e, 0x44, 0x65, 0x73, 0x6b, 0x52, 0x04, 0x64, 0x65, 0x73, 0x6b, 0x12, 0x45, 0x0a, 0x09,
	0x64, 0x65, 0x73, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x28, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70,
	0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73,
	0x2e, 0x44, 0x65, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x64, 0x65, 0x73, 0x6b, 0x54,
	0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x61,
	0x63, 0x68, 0x65, 0x5f, 0x67, 0x75, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f,
	0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x47, 0x75, 0x69, 0x64, 0x12,
	0x51, 0x0a, 0x12, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x66,
	0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x73, 0x79,
	0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e,
	0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72,
	0x52, 0x10, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x46, 0x61, 0x63, 0x74,
	0x6f, 0x72, 0x1a, 0x3f, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x6b, 0x12, 0x37, 0x0a, 0x04, 0x61, 0x70,
	0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f,
	0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b,
	0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x52, 0x04, 0x61,
	0x70, 0x70, 0x73, 0x1a, 0xc5, 0x05, 0x0a, 0x03, 0x41, 0x70, 0x70, 0x12, 0x4e, 0x0a, 0x0c, 0x77,
	0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b,
	0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69,
	0x63, 0x73, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x0b,
	0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x4e, 0x0a, 0x0c, 0x77,
	0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0e, 0x32, 0x2b, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b,
	0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69,
	0x63, 0x73, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b,
	0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x7a,
	0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x7a, 0x49,
	0x6e, 0x64, 0x65, 0x78, 0x12, 0x3a, 0x0a, 0x03, 0x61, 0x70, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x28, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b,
	0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69,
	0x63, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x4f, 0x6e, 0x65, 0x4f, 0x66, 0x52, 0x03, 0x61, 0x70, 0x70,
	0x12, 0x1b, 0x0a, 0x09, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x08, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x1d, 0x0a,
	0x0a, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x09, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x49, 0x64, 0x12, 0x68, 0x0a, 0x1a,
	0x70, 0x72, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x77, 0x69,
	0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x2b, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73,
	0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63,
	0x73, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x17, 0x70,
	0x72, 0x65, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x57, 0x69, 0x6e, 0x64, 0x6f,
	0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x4d, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,
	0x6e, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x73, 0x79, 0x6e, 0x63,
	0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73,
	0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x4c, 0x61, 0x75, 0x6e, 0x63,
	0x68, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74,
	0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x57, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x69,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x73, 0x79, 0x6e,
	0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65,
	0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x57, 0x69, 0x6e, 0x64,
	0x6f, 0x77, 0x4f, 0x70, 0x65, 0x6e, 0x44, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19,
	0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x07, 0x61, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74,
	0x6c, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12,
	0x27, 0x0a, 0x0f, 0x73, 0x6e, 0x61, 0x70, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61,
	0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x6e, 0x61, 0x70, 0x50, 0x65,
	0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x76, 0x65, 0x72,
	0x72, 0x69, 0x64, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
	0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x55, 0x72, 0x6c, 0x1a, 0xe1, 0x02, 0x0a, 0x08,
	0x41, 0x70, 0x70, 0x4f, 0x6e, 0x65, 0x4f, 0x66, 0x12, 0x60, 0x0a, 0x12, 0x62, 0x72, 0x6f, 0x77,
	0x73, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57,
	0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63,
	0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x41, 0x70, 0x70,
	0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x48, 0x00, 0x52, 0x10, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65,
	0x72, 0x41, 0x70, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x4a, 0x0a, 0x0a, 0x63, 0x68,
	0x72, 0x6f, 0x6d, 0x65, 0x5f, 0x61, 0x70, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29,
	0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61,
	0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e,
	0x43, 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x48, 0x00, 0x52, 0x09, 0x63, 0x68, 0x72,
	0x6f, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x12, 0x5d, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65,
	0x73, 0x73, 0x5f, 0x77, 0x65, 0x62, 0x5f, 0x61, 0x70, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x31, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73,
	0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63,
	0x73, 0x2e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x76, 0x65, 0x57, 0x65, 0x62,
	0x41, 0x70, 0x70, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x57,
	0x65, 0x62, 0x41, 0x70, 0x70, 0x12, 0x41, 0x0a, 0x07, 0x61, 0x72, 0x63, 0x5f, 0x61, 0x70, 0x70,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62,
	0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70,
	0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x41, 0x72, 0x63, 0x41, 0x70, 0x70, 0x48, 0x00,
	0x52, 0x06, 0x61, 0x72, 0x63, 0x41, 0x70, 0x70, 0x42, 0x05, 0x0a, 0x03, 0x61, 0x70, 0x70, 0x1a,
	0xca, 0x04, 0x0a, 0x10, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x41, 0x70, 0x70, 0x57, 0x69,
	0x6e, 0x64, 0x6f, 0x77, 0x12, 0x52, 0x0a, 0x04, 0x74, 0x61, 0x62, 0x73, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72,
	0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66,
	0x69, 0x63, 0x73, 0x2e, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x41, 0x70, 0x70, 0x57, 0x69,
	0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x41, 0x70, 0x70, 0x54,
	0x61, 0x62, 0x52, 0x04, 0x74, 0x61, 0x62, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x63, 0x74, 0x69,
	0x76, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x61, 0x62, 0x49, 0x6e, 0x64,
	0x65, 0x78, 0x12, 0x1e, 0x0a, 0x0b, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x61, 0x73, 0x5f, 0x61, 0x70,
	0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x68, 0x6f, 0x77, 0x41, 0x73, 0x41,
	0x70, 0x70, 0x12, 0x58, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73,
	0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62,
	0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70,
	0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x41,
	0x70, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x54, 0x61, 0x62, 0x47, 0x72, 0x6f, 0x75,
	0x70, 0x52, 0x09, 0x74, 0x61, 0x62, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x3a, 0x0a, 0x1a,
	0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x6e, 0x6f, 0x6e, 0x5f, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64,
	0x5f, 0x74, 0x61, 0x62, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x16, 0x66, 0x69, 0x72, 0x73, 0x74, 0x4e, 0x6f, 0x6e, 0x50, 0x69, 0x6e, 0x6e, 0x65, 0x64,
	0x54, 0x61, 0x62, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x1a, 0x37, 0x0a, 0x0d, 0x42, 0x72, 0x6f, 0x77,
	0x73, 0x65, 0x72, 0x41, 0x70, 0x70, 0x54, 0x61, 0x62, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x74,
	0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c,
	0x65, 0x1a, 0xc8, 0x01, 0x0a, 0x08, 0x54, 0x61, 0x62, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1f,
	0x0a, 0x0b, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12,
	0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14,
	0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74,
	0x69, 0x74, 0x6c, 0x65, 0x12, 0x43, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f,
	0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69,
	0x66, 0x69, 0x63, 0x73, 0x2e, 0x54, 0x61, 0x62, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x6c,
	0x6f, 0x72, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f,
	0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x0b, 0x69, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x1a, 0x28, 0x0a, 0x09,
	0x43, 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x12, 0x15, 0x0a, 0x06, 0x61, 0x70, 0x70,
	0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64,
	0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x1a, 0x30, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65,
	0x73, 0x73, 0x69, 0x76, 0x65, 0x57, 0x65, 0x62, 0x41, 0x70, 0x70, 0x12, 0x15, 0x0a, 0x06, 0x61,
	0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x70, 0x70,
	0x49, 0x64, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x1a, 0xe0, 0x02, 0x0a, 0x06, 0x41, 0x72, 0x63,
	0x41, 0x70, 0x70, 0x12, 0x15, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x54, 0x0a, 0x0c, 0x6d, 0x69,
	0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x31, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73,
	0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63,
	0x73, 0x2e, 0x41, 0x72, 0x63, 0x41, 0x70, 0x70, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53,
	0x69, 0x7a, 0x65, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x53, 0x69, 0x7a, 0x65,
	0x12, 0x54, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x73, 0x69, 0x7a, 0x65,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62,
	0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70,
	0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x41, 0x72, 0x63, 0x41, 0x70, 0x70, 0x2e, 0x57,
	0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x69, 0x6d,
	0x75, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x51, 0x0a, 0x0e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x73,
	0x5f, 0x69, 0x6e, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b,
	0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61,
	0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e,
	0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x0c, 0x62, 0x6f, 0x75,
	0x6e, 0x64, 0x73, 0x49, 0x6e, 0x52, 0x6f, 0x6f, 0x74, 0x1a, 0x3a, 0x0a, 0x0a, 0x57, 0x69, 0x6e,
	0x64, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a,
	0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68,
	0x65, 0x69, 0x67, 0x68, 0x74, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x1a, 0x61, 0x0a, 0x0b, 0x57,
	0x69, 0x6e, 0x64, 0x6f, 0x77, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6f,
	0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x74, 0x6f, 0x70, 0x12, 0x12, 0x0a, 0x04,
	0x6c, 0x65, 0x66, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6c, 0x65, 0x66, 0x74,
	0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0xac,
	0x01, 0x0a, 0x0f, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
	0x65, 0x72, 0x12, 0x20, 0x0a, 0x1c, 0x4c, 0x41, 0x55, 0x4e, 0x43, 0x48, 0x5f, 0x43, 0x4f, 0x4e,
	0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49,
	0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x4c, 0x41, 0x55, 0x4e, 0x43, 0x48, 0x5f, 0x43,
	0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10,
	0x01, 0x12, 0x25, 0x0a, 0x21, 0x4c, 0x41, 0x55, 0x4e, 0x43, 0x48, 0x5f, 0x43, 0x4f, 0x4e, 0x54,
	0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x4e, 0x45, 0x4c, 0x5f, 0x44, 0x45, 0x50, 0x52,
	0x45, 0x43, 0x41, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x41, 0x55, 0x4e,
	0x43, 0x48, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x54, 0x41, 0x42,
	0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x41, 0x55, 0x4e, 0x43, 0x48, 0x5f, 0x43, 0x4f, 0x4e,
	0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x04, 0x22, 0x9a, 0x01,
	0x0a, 0x0b, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a,
	0x14, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x5f,
	0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x4f, 0x52, 0x4d, 0x41,
	0x4c, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4d, 0x49, 0x4e, 0x49, 0x4d, 0x49, 0x5a, 0x45, 0x44,
	0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x4d, 0x41, 0x58, 0x49, 0x4d, 0x49, 0x5a, 0x45, 0x44, 0x10,
	0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x46, 0x55, 0x4c, 0x4c, 0x53, 0x43, 0x52, 0x45, 0x45, 0x4e, 0x10,
	0x04, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x52, 0x49, 0x4d, 0x41, 0x52, 0x59, 0x5f, 0x53, 0x4e, 0x41,
	0x50, 0x50, 0x45, 0x44, 0x10, 0x05, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x45, 0x43, 0x4f, 0x4e, 0x44,
	0x41, 0x52, 0x59, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x45, 0x44, 0x10, 0x06, 0x12, 0x0b, 0x0a,
	0x07, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x45, 0x44, 0x10, 0x07, 0x22, 0xff, 0x01, 0x0a, 0x15, 0x57,
	0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4f, 0x70, 0x65, 0x6e, 0x44, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x69,
	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10,
	0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x41, 0x42,
	0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x54, 0x4f, 0x4e, 0x5f,
	0x54, 0x41, 0x42, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x4e, 0x45, 0x57, 0x5f, 0x46, 0x4f, 0x52,
	0x45, 0x47, 0x52, 0x4f, 0x55, 0x4e, 0x44, 0x5f, 0x54, 0x41, 0x42, 0x10, 0x03, 0x12, 0x16, 0x0a,
	0x12, 0x4e, 0x45, 0x57, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x47, 0x52, 0x4f, 0x55, 0x4e, 0x44, 0x5f,
	0x54, 0x41, 0x42, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x4f, 0x50,
	0x55, 0x50, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x45, 0x57, 0x5f, 0x57, 0x49, 0x4e, 0x44,
	0x4f, 0x57, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x41, 0x56, 0x45, 0x5f, 0x54, 0x4f, 0x5f,
	0x44, 0x49, 0x53, 0x4b, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x4f, 0x46, 0x46, 0x5f, 0x54, 0x48,
	0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x10, 0x08, 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x47,
	0x4e, 0x4f, 0x52, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x09, 0x12, 0x11, 0x0a,
	0x0d, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x4f, 0x5f, 0x54, 0x41, 0x42, 0x10, 0x0a,
	0x12, 0x1a, 0x0a, 0x16, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x49, 0x43, 0x54, 0x55, 0x52, 0x45, 0x5f,
	0x49, 0x4e, 0x5f, 0x50, 0x49, 0x43, 0x54, 0x55, 0x52, 0x45, 0x10, 0x0b, 0x22, 0x57, 0x0a, 0x08,
	0x44, 0x65, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x55, 0x4e, 0x4b, 0x4e,
	0x4f, 0x57, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x54, 0x45,
	0x4d, 0x50, 0x4c, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x41, 0x56, 0x45,
	0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x43, 0x41, 0x4c, 0x4c, 0x10, 0x02, 0x12, 0x16, 0x0a,
	0x12, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50,
	0x41, 0x43, 0x45, 0x10, 0x03, 0x22, 0x82, 0x01, 0x0a, 0x0d, 0x54, 0x61, 0x62, 0x47, 0x72, 0x6f,
	0x75, 0x70, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x4e, 0x4b, 0x4e, 0x4f,
	0x57, 0x4e, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x47, 0x52,
	0x45, 0x59, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x4c, 0x55, 0x45, 0x10, 0x02, 0x12, 0x07,
	0x0a, 0x03, 0x52, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x59, 0x45, 0x4c, 0x4c, 0x4f,
	0x57, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x10, 0x05, 0x12, 0x08,
	0x0a, 0x04, 0x50, 0x49, 0x4e, 0x4b, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x55, 0x52, 0x50,
	0x4c, 0x45, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x59, 0x41, 0x4e, 0x10, 0x08, 0x12, 0x0a,
	0x0a, 0x06, 0x4f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x09, 0x52, 0x11, 0x63, 0x72, 0x65, 0x61,
	0x74, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x63, 0x42, 0x36, 0x0a,
	0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f,
	0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79,
	0x6e, 0x63, 0x5f, 0x70, 0x62,
}

var (
	file_workspace_desk_specifics_proto_rawDescOnce sync.Once
	file_workspace_desk_specifics_proto_rawDescData = file_workspace_desk_specifics_proto_rawDesc
)

func file_workspace_desk_specifics_proto_rawDescGZIP() []byte {
	file_workspace_desk_specifics_proto_rawDescOnce.Do(func() {
		file_workspace_desk_specifics_proto_rawDescData = protoimpl.X.CompressGZIP(file_workspace_desk_specifics_proto_rawDescData)
	})
	return file_workspace_desk_specifics_proto_rawDescData
}

var file_workspace_desk_specifics_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
var file_workspace_desk_specifics_proto_msgTypes = make([]protoimpl.MessageInfo, 12)
var file_workspace_desk_specifics_proto_goTypes = []interface{}{
	(WorkspaceDeskSpecifics_LaunchContainer)(0),                   // 0: sync_pb.WorkspaceDeskSpecifics.LaunchContainer
	(WorkspaceDeskSpecifics_WindowState)(0),                       // 1: sync_pb.WorkspaceDeskSpecifics.WindowState
	(WorkspaceDeskSpecifics_WindowOpenDisposition)(0),             // 2: sync_pb.WorkspaceDeskSpecifics.WindowOpenDisposition
	(WorkspaceDeskSpecifics_DeskType)(0),                          // 3: sync_pb.WorkspaceDeskSpecifics.DeskType
	(WorkspaceDeskSpecifics_TabGroupColor)(0),                     // 4: sync_pb.WorkspaceDeskSpecifics.TabGroupColor
	(*WorkspaceDeskSpecifics)(nil),                                // 5: sync_pb.WorkspaceDeskSpecifics
	(*WorkspaceDeskSpecifics_Desk)(nil),                           // 6: sync_pb.WorkspaceDeskSpecifics.Desk
	(*WorkspaceDeskSpecifics_App)(nil),                            // 7: sync_pb.WorkspaceDeskSpecifics.App
	(*WorkspaceDeskSpecifics_AppOneOf)(nil),                       // 8: sync_pb.WorkspaceDeskSpecifics.AppOneOf
	(*WorkspaceDeskSpecifics_BrowserAppWindow)(nil),               // 9: sync_pb.WorkspaceDeskSpecifics.BrowserAppWindow
	(*WorkspaceDeskSpecifics_ChromeApp)(nil),                      // 10: sync_pb.WorkspaceDeskSpecifics.ChromeApp
	(*WorkspaceDeskSpecifics_ProgressiveWebApp)(nil),              // 11: sync_pb.WorkspaceDeskSpecifics.ProgressiveWebApp
	(*WorkspaceDeskSpecifics_ArcApp)(nil),                         // 12: sync_pb.WorkspaceDeskSpecifics.ArcApp
	(*WorkspaceDeskSpecifics_WindowBound)(nil),                    // 13: sync_pb.WorkspaceDeskSpecifics.WindowBound
	(*WorkspaceDeskSpecifics_BrowserAppWindow_BrowserAppTab)(nil), // 14: sync_pb.WorkspaceDeskSpecifics.BrowserAppWindow.BrowserAppTab
	(*WorkspaceDeskSpecifics_BrowserAppWindow_TabGroup)(nil),      // 15: sync_pb.WorkspaceDeskSpecifics.BrowserAppWindow.TabGroup
	(*WorkspaceDeskSpecifics_ArcApp_WindowSize)(nil),              // 16: sync_pb.WorkspaceDeskSpecifics.ArcApp.WindowSize
	(SyncEnums_DeviceFormFactor)(0),                               // 17: sync_pb.SyncEnums.DeviceFormFactor
}
var file_workspace_desk_specifics_proto_depIdxs = []int32{
	6,  // 0: sync_pb.WorkspaceDeskSpecifics.desk:type_name -> sync_pb.WorkspaceDeskSpecifics.Desk
	3,  // 1: sync_pb.WorkspaceDeskSpecifics.desk_type:type_name -> sync_pb.WorkspaceDeskSpecifics.DeskType
	17, // 2: sync_pb.WorkspaceDeskSpecifics.device_form_factor:type_name -> sync_pb.SyncEnums.DeviceFormFactor
	7,  // 3: sync_pb.WorkspaceDeskSpecifics.Desk.apps:type_name -> sync_pb.WorkspaceDeskSpecifics.App
	13, // 4: sync_pb.WorkspaceDeskSpecifics.App.window_bound:type_name -> sync_pb.WorkspaceDeskSpecifics.WindowBound
	1,  // 5: sync_pb.WorkspaceDeskSpecifics.App.window_state:type_name -> sync_pb.WorkspaceDeskSpecifics.WindowState
	8,  // 6: sync_pb.WorkspaceDeskSpecifics.App.app:type_name -> sync_pb.WorkspaceDeskSpecifics.AppOneOf
	1,  // 7: sync_pb.WorkspaceDeskSpecifics.App.pre_minimized_window_state:type_name -> sync_pb.WorkspaceDeskSpecifics.WindowState
	0,  // 8: sync_pb.WorkspaceDeskSpecifics.App.container:type_name -> sync_pb.WorkspaceDeskSpecifics.LaunchContainer
	2,  // 9: sync_pb.WorkspaceDeskSpecifics.App.disposition:type_name -> sync_pb.WorkspaceDeskSpecifics.WindowOpenDisposition
	9,  // 10: sync_pb.WorkspaceDeskSpecifics.AppOneOf.browser_app_window:type_name -> sync_pb.WorkspaceDeskSpecifics.BrowserAppWindow
	10, // 11: sync_pb.WorkspaceDeskSpecifics.AppOneOf.chrome_app:type_name -> sync_pb.WorkspaceDeskSpecifics.ChromeApp
	11, // 12: sync_pb.WorkspaceDeskSpecifics.AppOneOf.progress_web_app:type_name -> sync_pb.WorkspaceDeskSpecifics.ProgressiveWebApp
	12, // 13: sync_pb.WorkspaceDeskSpecifics.AppOneOf.arc_app:type_name -> sync_pb.WorkspaceDeskSpecifics.ArcApp
	14, // 14: sync_pb.WorkspaceDeskSpecifics.BrowserAppWindow.tabs:type_name -> sync_pb.WorkspaceDeskSpecifics.BrowserAppWindow.BrowserAppTab
	15, // 15: sync_pb.WorkspaceDeskSpecifics.BrowserAppWindow.tab_groups:type_name -> sync_pb.WorkspaceDeskSpecifics.BrowserAppWindow.TabGroup
	16, // 16: sync_pb.WorkspaceDeskSpecifics.ArcApp.minimum_size:type_name -> sync_pb.WorkspaceDeskSpecifics.ArcApp.WindowSize
	16, // 17: sync_pb.WorkspaceDeskSpecifics.ArcApp.maximum_size:type_name -> sync_pb.WorkspaceDeskSpecifics.ArcApp.WindowSize
	13, // 18: sync_pb.WorkspaceDeskSpecifics.ArcApp.bounds_in_root:type_name -> sync_pb.WorkspaceDeskSpecifics.WindowBound
	4,  // 19: sync_pb.WorkspaceDeskSpecifics.BrowserAppWindow.TabGroup.color:type_name -> sync_pb.WorkspaceDeskSpecifics.TabGroupColor
	20, // [20:20] is the sub-list for method output_type
	20, // [20:20] is the sub-list for method input_type
	20, // [20:20] is the sub-list for extension type_name
	20, // [20:20] is the sub-list for extension extendee
	0,  // [0:20] is the sub-list for field type_name
}

func init() { file_workspace_desk_specifics_proto_init() }
func file_workspace_desk_specifics_proto_init() {
	if File_workspace_desk_specifics_proto != nil {
		return
	}
	file_sync_enums_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_workspace_desk_specifics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WorkspaceDeskSpecifics); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_workspace_desk_specifics_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WorkspaceDeskSpecifics_Desk); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_workspace_desk_specifics_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WorkspaceDeskSpecifics_App); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_workspace_desk_specifics_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WorkspaceDeskSpecifics_AppOneOf); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_workspace_desk_specifics_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WorkspaceDeskSpecifics_BrowserAppWindow); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_workspace_desk_specifics_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WorkspaceDeskSpecifics_ChromeApp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_workspace_desk_specifics_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WorkspaceDeskSpecifics_ProgressiveWebApp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_workspace_desk_specifics_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WorkspaceDeskSpecifics_ArcApp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_workspace_desk_specifics_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WorkspaceDeskSpecifics_WindowBound); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_workspace_desk_specifics_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WorkspaceDeskSpecifics_BrowserAppWindow_BrowserAppTab); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_workspace_desk_specifics_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WorkspaceDeskSpecifics_BrowserAppWindow_TabGroup); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_workspace_desk_specifics_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WorkspaceDeskSpecifics_ArcApp_WindowSize); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_workspace_desk_specifics_proto_msgTypes[3].OneofWrappers = []interface{}{
		(*WorkspaceDeskSpecifics_AppOneOf_BrowserAppWindow)(nil),
		(*WorkspaceDeskSpecifics_AppOneOf_ChromeApp)(nil),
		(*WorkspaceDeskSpecifics_AppOneOf_ProgressWebApp)(nil),
		(*WorkspaceDeskSpecifics_AppOneOf_ArcApp)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_workspace_desk_specifics_proto_rawDesc,
			NumEnums:      5,
			NumMessages:   12,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_workspace_desk_specifics_proto_goTypes,
		DependencyIndexes: file_workspace_desk_specifics_proto_depIdxs,
		EnumInfos:         file_workspace_desk_specifics_proto_enumTypes,
		MessageInfos:      file_workspace_desk_specifics_proto_msgTypes,
	}.Build()
	File_workspace_desk_specifics_proto = out.File
	file_workspace_desk_specifics_proto_rawDesc = nil
	file_workspace_desk_specifics_proto_goTypes = nil
	file_workspace_desk_specifics_proto_depIdxs = nil
}
