...

Source file src/google.golang.org/genproto/googleapis/devtools/testing/v1/test_execution.pb.go

Documentation: google.golang.org/genproto/googleapis/devtools/testing/v1

     1  // Copyright 2023 Google LLC
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  // Code generated by protoc-gen-go. DO NOT EDIT.
    16  // versions:
    17  // 	protoc-gen-go v1.26.0
    18  // 	protoc        v3.21.9
    19  // source: google/devtools/testing/v1/test_execution.proto
    20  
    21  package testing
    22  
    23  import (
    24  	context "context"
    25  	reflect "reflect"
    26  	sync "sync"
    27  
    28  	_ "google.golang.org/genproto/googleapis/api/annotations"
    29  	grpc "google.golang.org/grpc"
    30  	codes "google.golang.org/grpc/codes"
    31  	status "google.golang.org/grpc/status"
    32  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    33  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    34  	durationpb "google.golang.org/protobuf/types/known/durationpb"
    35  	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
    36  )
    37  
    38  const (
    39  	// Verify that this generated code is sufficiently up-to-date.
    40  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    41  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    42  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    43  )
    44  
    45  // Specifies how to execute the test.
    46  type OrchestratorOption int32
    47  
    48  const (
    49  	// Default value: the server will choose the mode. Currently implies that
    50  	// the test will run without the orchestrator. In the future,
    51  	// all instrumentation tests will be run with the orchestrator.
    52  	// Using the orchestrator is highly encouraged because of all the benefits it
    53  	// offers.
    54  	OrchestratorOption_ORCHESTRATOR_OPTION_UNSPECIFIED OrchestratorOption = 0
    55  	// Run test using orchestrator.
    56  	// ** Only compatible with AndroidJUnitRunner version 1.1 or higher! **
    57  	// Recommended.
    58  	OrchestratorOption_USE_ORCHESTRATOR OrchestratorOption = 1
    59  	// Run test without using orchestrator.
    60  	OrchestratorOption_DO_NOT_USE_ORCHESTRATOR OrchestratorOption = 2
    61  )
    62  
    63  // Enum value maps for OrchestratorOption.
    64  var (
    65  	OrchestratorOption_name = map[int32]string{
    66  		0: "ORCHESTRATOR_OPTION_UNSPECIFIED",
    67  		1: "USE_ORCHESTRATOR",
    68  		2: "DO_NOT_USE_ORCHESTRATOR",
    69  	}
    70  	OrchestratorOption_value = map[string]int32{
    71  		"ORCHESTRATOR_OPTION_UNSPECIFIED": 0,
    72  		"USE_ORCHESTRATOR":                1,
    73  		"DO_NOT_USE_ORCHESTRATOR":         2,
    74  	}
    75  )
    76  
    77  func (x OrchestratorOption) Enum() *OrchestratorOption {
    78  	p := new(OrchestratorOption)
    79  	*p = x
    80  	return p
    81  }
    82  
    83  func (x OrchestratorOption) String() string {
    84  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
    85  }
    86  
    87  func (OrchestratorOption) Descriptor() protoreflect.EnumDescriptor {
    88  	return file_google_devtools_testing_v1_test_execution_proto_enumTypes[0].Descriptor()
    89  }
    90  
    91  func (OrchestratorOption) Type() protoreflect.EnumType {
    92  	return &file_google_devtools_testing_v1_test_execution_proto_enumTypes[0]
    93  }
    94  
    95  func (x OrchestratorOption) Number() protoreflect.EnumNumber {
    96  	return protoreflect.EnumNumber(x)
    97  }
    98  
    99  // Deprecated: Use OrchestratorOption.Descriptor instead.
   100  func (OrchestratorOption) EnumDescriptor() ([]byte, []int) {
   101  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{0}
   102  }
   103  
   104  // The mode in which Robo should run.
   105  type RoboMode int32
   106  
   107  const (
   108  	// This means that the server should choose the mode.
   109  	// Recommended.
   110  	RoboMode_ROBO_MODE_UNSPECIFIED RoboMode = 0
   111  	// Runs Robo in UIAutomator-only mode without app resigning
   112  	RoboMode_ROBO_VERSION_1 RoboMode = 1
   113  	// Runs Robo in standard Espresso with UIAutomator fallback
   114  	RoboMode_ROBO_VERSION_2 RoboMode = 2
   115  )
   116  
   117  // Enum value maps for RoboMode.
   118  var (
   119  	RoboMode_name = map[int32]string{
   120  		0: "ROBO_MODE_UNSPECIFIED",
   121  		1: "ROBO_VERSION_1",
   122  		2: "ROBO_VERSION_2",
   123  	}
   124  	RoboMode_value = map[string]int32{
   125  		"ROBO_MODE_UNSPECIFIED": 0,
   126  		"ROBO_VERSION_1":        1,
   127  		"ROBO_VERSION_2":        2,
   128  	}
   129  )
   130  
   131  func (x RoboMode) Enum() *RoboMode {
   132  	p := new(RoboMode)
   133  	*p = x
   134  	return p
   135  }
   136  
   137  func (x RoboMode) String() string {
   138  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   139  }
   140  
   141  func (RoboMode) Descriptor() protoreflect.EnumDescriptor {
   142  	return file_google_devtools_testing_v1_test_execution_proto_enumTypes[1].Descriptor()
   143  }
   144  
   145  func (RoboMode) Type() protoreflect.EnumType {
   146  	return &file_google_devtools_testing_v1_test_execution_proto_enumTypes[1]
   147  }
   148  
   149  func (x RoboMode) Number() protoreflect.EnumNumber {
   150  	return protoreflect.EnumNumber(x)
   151  }
   152  
   153  // Deprecated: Use RoboMode.Descriptor instead.
   154  func (RoboMode) EnumDescriptor() ([]byte, []int) {
   155  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{1}
   156  }
   157  
   158  // Actions which Robo can perform on UI elements.
   159  type RoboActionType int32
   160  
   161  const (
   162  	// DO NOT USE. For proto versioning only.
   163  	RoboActionType_ACTION_TYPE_UNSPECIFIED RoboActionType = 0
   164  	// Direct Robo to click on the specified element. No-op if specified element
   165  	// is not clickable.
   166  	RoboActionType_SINGLE_CLICK RoboActionType = 1
   167  	// Direct Robo to enter text on the specified element. No-op if specified
   168  	// element is not enabled or does not allow text entry.
   169  	RoboActionType_ENTER_TEXT RoboActionType = 2
   170  	// Direct Robo to ignore interactions with a specific element.
   171  	RoboActionType_IGNORE RoboActionType = 3
   172  )
   173  
   174  // Enum value maps for RoboActionType.
   175  var (
   176  	RoboActionType_name = map[int32]string{
   177  		0: "ACTION_TYPE_UNSPECIFIED",
   178  		1: "SINGLE_CLICK",
   179  		2: "ENTER_TEXT",
   180  		3: "IGNORE",
   181  	}
   182  	RoboActionType_value = map[string]int32{
   183  		"ACTION_TYPE_UNSPECIFIED": 0,
   184  		"SINGLE_CLICK":            1,
   185  		"ENTER_TEXT":              2,
   186  		"IGNORE":                  3,
   187  	}
   188  )
   189  
   190  func (x RoboActionType) Enum() *RoboActionType {
   191  	p := new(RoboActionType)
   192  	*p = x
   193  	return p
   194  }
   195  
   196  func (x RoboActionType) String() string {
   197  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   198  }
   199  
   200  func (RoboActionType) Descriptor() protoreflect.EnumDescriptor {
   201  	return file_google_devtools_testing_v1_test_execution_proto_enumTypes[2].Descriptor()
   202  }
   203  
   204  func (RoboActionType) Type() protoreflect.EnumType {
   205  	return &file_google_devtools_testing_v1_test_execution_proto_enumTypes[2]
   206  }
   207  
   208  func (x RoboActionType) Number() protoreflect.EnumNumber {
   209  	return protoreflect.EnumNumber(x)
   210  }
   211  
   212  // Deprecated: Use RoboActionType.Descriptor instead.
   213  func (RoboActionType) EnumDescriptor() ([]byte, []int) {
   214  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{2}
   215  }
   216  
   217  // The detailed reason that a Matrix was deemed INVALID.
   218  type InvalidMatrixDetails int32
   219  
   220  const (
   221  	// Do not use. For proto versioning only.
   222  	InvalidMatrixDetails_INVALID_MATRIX_DETAILS_UNSPECIFIED InvalidMatrixDetails = 0
   223  	// The matrix is INVALID, but there are no further details available.
   224  	InvalidMatrixDetails_DETAILS_UNAVAILABLE InvalidMatrixDetails = 1
   225  	// The input app APK could not be parsed.
   226  	InvalidMatrixDetails_MALFORMED_APK InvalidMatrixDetails = 2
   227  	// The input test APK could not be parsed.
   228  	InvalidMatrixDetails_MALFORMED_TEST_APK InvalidMatrixDetails = 3
   229  	// The AndroidManifest.xml could not be found.
   230  	InvalidMatrixDetails_NO_MANIFEST InvalidMatrixDetails = 4
   231  	// The APK manifest does not declare a package name.
   232  	InvalidMatrixDetails_NO_PACKAGE_NAME InvalidMatrixDetails = 5
   233  	// The APK application ID (aka package name) is invalid.
   234  	// See also
   235  	// https://developer.android.com/studio/build/application-id
   236  	InvalidMatrixDetails_INVALID_PACKAGE_NAME InvalidMatrixDetails = 31
   237  	// The test package and app package are the same.
   238  	InvalidMatrixDetails_TEST_SAME_AS_APP InvalidMatrixDetails = 6
   239  	// The test apk does not declare an instrumentation.
   240  	InvalidMatrixDetails_NO_INSTRUMENTATION InvalidMatrixDetails = 7
   241  	// The input app apk does not have a signature.
   242  	InvalidMatrixDetails_NO_SIGNATURE InvalidMatrixDetails = 20
   243  	// The test runner class specified by user or in the test APK's manifest file
   244  	// is not compatible with Android Test Orchestrator.
   245  	// Orchestrator is only compatible with AndroidJUnitRunner version 1.1 or
   246  	// higher.
   247  	// Orchestrator can be disabled by using DO_NOT_USE_ORCHESTRATOR
   248  	// OrchestratorOption.
   249  	InvalidMatrixDetails_INSTRUMENTATION_ORCHESTRATOR_INCOMPATIBLE InvalidMatrixDetails = 18
   250  	// The test APK does not contain the test runner class specified by user or in
   251  	// the manifest file.
   252  	// This can be caused by either of the following reasons:
   253  	// - the user provided a runner class name that's incorrect, or
   254  	// - the test runner isn't built into the test APK (might be in the app APK
   255  	// instead).
   256  	InvalidMatrixDetails_NO_TEST_RUNNER_CLASS InvalidMatrixDetails = 19
   257  	// A main launcher activity could not be found.
   258  	InvalidMatrixDetails_NO_LAUNCHER_ACTIVITY InvalidMatrixDetails = 8
   259  	// The app declares one or more permissions that are not allowed.
   260  	InvalidMatrixDetails_FORBIDDEN_PERMISSIONS InvalidMatrixDetails = 9
   261  	// There is a conflict in the provided robo_directives.
   262  	InvalidMatrixDetails_INVALID_ROBO_DIRECTIVES InvalidMatrixDetails = 10
   263  	// There is at least one invalid resource name in the provided
   264  	// robo directives
   265  	InvalidMatrixDetails_INVALID_RESOURCE_NAME InvalidMatrixDetails = 33
   266  	// Invalid definition of action in the robo directives
   267  	// (e.g. a click or ignore action includes an input text field)
   268  	InvalidMatrixDetails_INVALID_DIRECTIVE_ACTION InvalidMatrixDetails = 34
   269  	// There is no test loop intent filter, or the one that is given is
   270  	// not formatted correctly.
   271  	InvalidMatrixDetails_TEST_LOOP_INTENT_FILTER_NOT_FOUND InvalidMatrixDetails = 12
   272  	// The request contains a scenario label that was not declared in the
   273  	// manifest.
   274  	InvalidMatrixDetails_SCENARIO_LABEL_NOT_DECLARED InvalidMatrixDetails = 13
   275  	// There was an error when parsing a label's value.
   276  	InvalidMatrixDetails_SCENARIO_LABEL_MALFORMED InvalidMatrixDetails = 14
   277  	// The request contains a scenario number that was not declared in the
   278  	// manifest.
   279  	InvalidMatrixDetails_SCENARIO_NOT_DECLARED InvalidMatrixDetails = 15
   280  	// Device administrator applications are not allowed.
   281  	InvalidMatrixDetails_DEVICE_ADMIN_RECEIVER InvalidMatrixDetails = 17
   282  	// The zipped XCTest was malformed. The zip did not contain a single
   283  	// .xctestrun file and the contents of the DerivedData/Build/Products
   284  	// directory.
   285  	InvalidMatrixDetails_MALFORMED_XC_TEST_ZIP InvalidMatrixDetails = 11
   286  	// The zipped XCTest was built for the iOS simulator rather than for a
   287  	// physical device.
   288  	InvalidMatrixDetails_BUILT_FOR_IOS_SIMULATOR InvalidMatrixDetails = 24
   289  	// The .xctestrun file did not specify any test targets.
   290  	InvalidMatrixDetails_NO_TESTS_IN_XC_TEST_ZIP InvalidMatrixDetails = 25
   291  	// One or more of the test targets defined in the .xctestrun file specifies
   292  	// "UseDestinationArtifacts", which is disallowed.
   293  	InvalidMatrixDetails_USE_DESTINATION_ARTIFACTS InvalidMatrixDetails = 26
   294  	// XC tests which run on physical devices must have
   295  	// "IsAppHostedTestBundle" == "true" in the xctestrun file.
   296  	InvalidMatrixDetails_TEST_NOT_APP_HOSTED InvalidMatrixDetails = 28
   297  	// An Info.plist file in the XCTest zip could not be parsed.
   298  	InvalidMatrixDetails_PLIST_CANNOT_BE_PARSED InvalidMatrixDetails = 30
   299  	// The APK is marked as "testOnly".
   300  	// Deprecated and not currently used.
   301  	//
   302  	// Deprecated: Do not use.
   303  	InvalidMatrixDetails_TEST_ONLY_APK InvalidMatrixDetails = 21
   304  	// The input IPA could not be parsed.
   305  	InvalidMatrixDetails_MALFORMED_IPA InvalidMatrixDetails = 22
   306  	// The application doesn't register the game loop URL scheme.
   307  	InvalidMatrixDetails_MISSING_URL_SCHEME InvalidMatrixDetails = 35
   308  	// The iOS application bundle (.app) couldn't be processed.
   309  	InvalidMatrixDetails_MALFORMED_APP_BUNDLE InvalidMatrixDetails = 36
   310  	// APK contains no code.
   311  	// See also
   312  	// https://developer.android.com/guide/topics/manifest/application-element.html#code
   313  	InvalidMatrixDetails_NO_CODE_APK InvalidMatrixDetails = 23
   314  	// Either the provided input APK path was malformed,
   315  	// the APK file does not exist, or the user does not have permission to
   316  	// access the APK file.
   317  	InvalidMatrixDetails_INVALID_INPUT_APK InvalidMatrixDetails = 27
   318  	// APK is built for a preview SDK which is unsupported
   319  	InvalidMatrixDetails_INVALID_APK_PREVIEW_SDK InvalidMatrixDetails = 29
   320  	// The matrix expanded to contain too many executions.
   321  	InvalidMatrixDetails_MATRIX_TOO_LARGE InvalidMatrixDetails = 37
   322  	// Not enough test quota to run the executions in this matrix.
   323  	InvalidMatrixDetails_TEST_QUOTA_EXCEEDED InvalidMatrixDetails = 39
   324  	// A required cloud service api is not activated.
   325  	// See:
   326  	// https://firebase.google.com/docs/test-lab/android/continuous#requirements
   327  	InvalidMatrixDetails_SERVICE_NOT_ACTIVATED InvalidMatrixDetails = 40
   328  	// There was an unknown permission issue running this test.
   329  	InvalidMatrixDetails_UNKNOWN_PERMISSION_ERROR InvalidMatrixDetails = 41
   330  )
   331  
   332  // Enum value maps for InvalidMatrixDetails.
   333  var (
   334  	InvalidMatrixDetails_name = map[int32]string{
   335  		0:  "INVALID_MATRIX_DETAILS_UNSPECIFIED",
   336  		1:  "DETAILS_UNAVAILABLE",
   337  		2:  "MALFORMED_APK",
   338  		3:  "MALFORMED_TEST_APK",
   339  		4:  "NO_MANIFEST",
   340  		5:  "NO_PACKAGE_NAME",
   341  		31: "INVALID_PACKAGE_NAME",
   342  		6:  "TEST_SAME_AS_APP",
   343  		7:  "NO_INSTRUMENTATION",
   344  		20: "NO_SIGNATURE",
   345  		18: "INSTRUMENTATION_ORCHESTRATOR_INCOMPATIBLE",
   346  		19: "NO_TEST_RUNNER_CLASS",
   347  		8:  "NO_LAUNCHER_ACTIVITY",
   348  		9:  "FORBIDDEN_PERMISSIONS",
   349  		10: "INVALID_ROBO_DIRECTIVES",
   350  		33: "INVALID_RESOURCE_NAME",
   351  		34: "INVALID_DIRECTIVE_ACTION",
   352  		12: "TEST_LOOP_INTENT_FILTER_NOT_FOUND",
   353  		13: "SCENARIO_LABEL_NOT_DECLARED",
   354  		14: "SCENARIO_LABEL_MALFORMED",
   355  		15: "SCENARIO_NOT_DECLARED",
   356  		17: "DEVICE_ADMIN_RECEIVER",
   357  		11: "MALFORMED_XC_TEST_ZIP",
   358  		24: "BUILT_FOR_IOS_SIMULATOR",
   359  		25: "NO_TESTS_IN_XC_TEST_ZIP",
   360  		26: "USE_DESTINATION_ARTIFACTS",
   361  		28: "TEST_NOT_APP_HOSTED",
   362  		30: "PLIST_CANNOT_BE_PARSED",
   363  		21: "TEST_ONLY_APK",
   364  		22: "MALFORMED_IPA",
   365  		35: "MISSING_URL_SCHEME",
   366  		36: "MALFORMED_APP_BUNDLE",
   367  		23: "NO_CODE_APK",
   368  		27: "INVALID_INPUT_APK",
   369  		29: "INVALID_APK_PREVIEW_SDK",
   370  		37: "MATRIX_TOO_LARGE",
   371  		39: "TEST_QUOTA_EXCEEDED",
   372  		40: "SERVICE_NOT_ACTIVATED",
   373  		41: "UNKNOWN_PERMISSION_ERROR",
   374  	}
   375  	InvalidMatrixDetails_value = map[string]int32{
   376  		"INVALID_MATRIX_DETAILS_UNSPECIFIED":        0,
   377  		"DETAILS_UNAVAILABLE":                       1,
   378  		"MALFORMED_APK":                             2,
   379  		"MALFORMED_TEST_APK":                        3,
   380  		"NO_MANIFEST":                               4,
   381  		"NO_PACKAGE_NAME":                           5,
   382  		"INVALID_PACKAGE_NAME":                      31,
   383  		"TEST_SAME_AS_APP":                          6,
   384  		"NO_INSTRUMENTATION":                        7,
   385  		"NO_SIGNATURE":                              20,
   386  		"INSTRUMENTATION_ORCHESTRATOR_INCOMPATIBLE": 18,
   387  		"NO_TEST_RUNNER_CLASS":                      19,
   388  		"NO_LAUNCHER_ACTIVITY":                      8,
   389  		"FORBIDDEN_PERMISSIONS":                     9,
   390  		"INVALID_ROBO_DIRECTIVES":                   10,
   391  		"INVALID_RESOURCE_NAME":                     33,
   392  		"INVALID_DIRECTIVE_ACTION":                  34,
   393  		"TEST_LOOP_INTENT_FILTER_NOT_FOUND":         12,
   394  		"SCENARIO_LABEL_NOT_DECLARED":               13,
   395  		"SCENARIO_LABEL_MALFORMED":                  14,
   396  		"SCENARIO_NOT_DECLARED":                     15,
   397  		"DEVICE_ADMIN_RECEIVER":                     17,
   398  		"MALFORMED_XC_TEST_ZIP":                     11,
   399  		"BUILT_FOR_IOS_SIMULATOR":                   24,
   400  		"NO_TESTS_IN_XC_TEST_ZIP":                   25,
   401  		"USE_DESTINATION_ARTIFACTS":                 26,
   402  		"TEST_NOT_APP_HOSTED":                       28,
   403  		"PLIST_CANNOT_BE_PARSED":                    30,
   404  		"TEST_ONLY_APK":                             21,
   405  		"MALFORMED_IPA":                             22,
   406  		"MISSING_URL_SCHEME":                        35,
   407  		"MALFORMED_APP_BUNDLE":                      36,
   408  		"NO_CODE_APK":                               23,
   409  		"INVALID_INPUT_APK":                         27,
   410  		"INVALID_APK_PREVIEW_SDK":                   29,
   411  		"MATRIX_TOO_LARGE":                          37,
   412  		"TEST_QUOTA_EXCEEDED":                       39,
   413  		"SERVICE_NOT_ACTIVATED":                     40,
   414  		"UNKNOWN_PERMISSION_ERROR":                  41,
   415  	}
   416  )
   417  
   418  func (x InvalidMatrixDetails) Enum() *InvalidMatrixDetails {
   419  	p := new(InvalidMatrixDetails)
   420  	*p = x
   421  	return p
   422  }
   423  
   424  func (x InvalidMatrixDetails) String() string {
   425  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   426  }
   427  
   428  func (InvalidMatrixDetails) Descriptor() protoreflect.EnumDescriptor {
   429  	return file_google_devtools_testing_v1_test_execution_proto_enumTypes[3].Descriptor()
   430  }
   431  
   432  func (InvalidMatrixDetails) Type() protoreflect.EnumType {
   433  	return &file_google_devtools_testing_v1_test_execution_proto_enumTypes[3]
   434  }
   435  
   436  func (x InvalidMatrixDetails) Number() protoreflect.EnumNumber {
   437  	return protoreflect.EnumNumber(x)
   438  }
   439  
   440  // Deprecated: Use InvalidMatrixDetails.Descriptor instead.
   441  func (InvalidMatrixDetails) EnumDescriptor() ([]byte, []int) {
   442  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{3}
   443  }
   444  
   445  // The state (i.e., progress) of a test execution or matrix.
   446  type TestState int32
   447  
   448  const (
   449  	// Do not use.  For proto versioning only.
   450  	TestState_TEST_STATE_UNSPECIFIED TestState = 0
   451  	// The execution or matrix is being validated.
   452  	TestState_VALIDATING TestState = 8
   453  	// The execution or matrix is waiting for resources to become available.
   454  	TestState_PENDING TestState = 1
   455  	// The execution is currently being processed.
   456  	//
   457  	// Can only be set on an execution.
   458  	TestState_RUNNING TestState = 2
   459  	// The execution or matrix has terminated normally.
   460  	//
   461  	// On a matrix this means that the matrix level processing completed normally,
   462  	// but individual executions may be in an ERROR state.
   463  	TestState_FINISHED TestState = 3
   464  	// The execution or matrix has stopped because it encountered an
   465  	// infrastructure failure.
   466  	TestState_ERROR TestState = 4
   467  	// The execution was not run because it corresponds to a unsupported
   468  	// environment.
   469  	//
   470  	// Can only be set on an execution.
   471  	TestState_UNSUPPORTED_ENVIRONMENT TestState = 5
   472  	// The execution was not run because the provided inputs are incompatible with
   473  	// the requested environment.
   474  	//
   475  	// Example: requested AndroidVersion is lower than APK's minSdkVersion
   476  	//
   477  	// Can only be set on an execution.
   478  	TestState_INCOMPATIBLE_ENVIRONMENT TestState = 9
   479  	// The execution was not run because the provided inputs are incompatible with
   480  	// the requested architecture.
   481  	//
   482  	// Example: requested device does not support running the native code in
   483  	// the supplied APK
   484  	//
   485  	// Can only be set on an execution.
   486  	TestState_INCOMPATIBLE_ARCHITECTURE TestState = 10
   487  	// The user cancelled the execution.
   488  	//
   489  	// Can only be set on an execution.
   490  	TestState_CANCELLED TestState = 6
   491  	// The execution or matrix was not run because the provided inputs are not
   492  	// valid.
   493  	//
   494  	// Examples: input file is not of the expected type, is malformed/corrupt, or
   495  	// was flagged as malware
   496  	TestState_INVALID TestState = 7
   497  )
   498  
   499  // Enum value maps for TestState.
   500  var (
   501  	TestState_name = map[int32]string{
   502  		0:  "TEST_STATE_UNSPECIFIED",
   503  		8:  "VALIDATING",
   504  		1:  "PENDING",
   505  		2:  "RUNNING",
   506  		3:  "FINISHED",
   507  		4:  "ERROR",
   508  		5:  "UNSUPPORTED_ENVIRONMENT",
   509  		9:  "INCOMPATIBLE_ENVIRONMENT",
   510  		10: "INCOMPATIBLE_ARCHITECTURE",
   511  		6:  "CANCELLED",
   512  		7:  "INVALID",
   513  	}
   514  	TestState_value = map[string]int32{
   515  		"TEST_STATE_UNSPECIFIED":    0,
   516  		"VALIDATING":                8,
   517  		"PENDING":                   1,
   518  		"RUNNING":                   2,
   519  		"FINISHED":                  3,
   520  		"ERROR":                     4,
   521  		"UNSUPPORTED_ENVIRONMENT":   5,
   522  		"INCOMPATIBLE_ENVIRONMENT":  9,
   523  		"INCOMPATIBLE_ARCHITECTURE": 10,
   524  		"CANCELLED":                 6,
   525  		"INVALID":                   7,
   526  	}
   527  )
   528  
   529  func (x TestState) Enum() *TestState {
   530  	p := new(TestState)
   531  	*p = x
   532  	return p
   533  }
   534  
   535  func (x TestState) String() string {
   536  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   537  }
   538  
   539  func (TestState) Descriptor() protoreflect.EnumDescriptor {
   540  	return file_google_devtools_testing_v1_test_execution_proto_enumTypes[4].Descriptor()
   541  }
   542  
   543  func (TestState) Type() protoreflect.EnumType {
   544  	return &file_google_devtools_testing_v1_test_execution_proto_enumTypes[4]
   545  }
   546  
   547  func (x TestState) Number() protoreflect.EnumNumber {
   548  	return protoreflect.EnumNumber(x)
   549  }
   550  
   551  // Deprecated: Use TestState.Descriptor instead.
   552  func (TestState) EnumDescriptor() ([]byte, []int) {
   553  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{4}
   554  }
   555  
   556  // Outcome summary for a finished test matrix.
   557  type OutcomeSummary int32
   558  
   559  const (
   560  	// Do not use. For proto versioning only.
   561  	OutcomeSummary_OUTCOME_SUMMARY_UNSPECIFIED OutcomeSummary = 0
   562  	// The test matrix run was successful, for instance:
   563  	// - All the test cases passed.
   564  	// - Robo did not detect a crash of the application under test.
   565  	OutcomeSummary_SUCCESS OutcomeSummary = 1
   566  	// A run failed, for instance:
   567  	// - One or more test case failed.
   568  	// - A test timed out.
   569  	// - The application under test crashed.
   570  	OutcomeSummary_FAILURE OutcomeSummary = 2
   571  	// Something unexpected happened. The run should still be considered
   572  	// unsuccessful but this is likely a transient problem and re-running the
   573  	// test might be successful.
   574  	OutcomeSummary_INCONCLUSIVE OutcomeSummary = 3
   575  	// All tests were skipped, for instance:
   576  	// - All device configurations were incompatible.
   577  	OutcomeSummary_SKIPPED OutcomeSummary = 4
   578  )
   579  
   580  // Enum value maps for OutcomeSummary.
   581  var (
   582  	OutcomeSummary_name = map[int32]string{
   583  		0: "OUTCOME_SUMMARY_UNSPECIFIED",
   584  		1: "SUCCESS",
   585  		2: "FAILURE",
   586  		3: "INCONCLUSIVE",
   587  		4: "SKIPPED",
   588  	}
   589  	OutcomeSummary_value = map[string]int32{
   590  		"OUTCOME_SUMMARY_UNSPECIFIED": 0,
   591  		"SUCCESS":                     1,
   592  		"FAILURE":                     2,
   593  		"INCONCLUSIVE":                3,
   594  		"SKIPPED":                     4,
   595  	}
   596  )
   597  
   598  func (x OutcomeSummary) Enum() *OutcomeSummary {
   599  	p := new(OutcomeSummary)
   600  	*p = x
   601  	return p
   602  }
   603  
   604  func (x OutcomeSummary) String() string {
   605  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   606  }
   607  
   608  func (OutcomeSummary) Descriptor() protoreflect.EnumDescriptor {
   609  	return file_google_devtools_testing_v1_test_execution_proto_enumTypes[5].Descriptor()
   610  }
   611  
   612  func (OutcomeSummary) Type() protoreflect.EnumType {
   613  	return &file_google_devtools_testing_v1_test_execution_proto_enumTypes[5]
   614  }
   615  
   616  func (x OutcomeSummary) Number() protoreflect.EnumNumber {
   617  	return protoreflect.EnumNumber(x)
   618  }
   619  
   620  // Deprecated: Use OutcomeSummary.Descriptor instead.
   621  func (OutcomeSummary) EnumDescriptor() ([]byte, []int) {
   622  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{5}
   623  }
   624  
   625  // Possible invalid request reasons.
   626  type InvalidRequestDetail_Reason int32
   627  
   628  const (
   629  	// No reason has been specified - the default.
   630  	InvalidRequestDetail_REASON_UNSPECIFIED InvalidRequestDetail_Reason = 0
   631  	// The request is not valid.
   632  	InvalidRequestDetail_REQUEST_INVALID InvalidRequestDetail_Reason = 1
   633  	// One or more of the resources specified in the request is too large.
   634  	InvalidRequestDetail_RESOURCE_TOO_BIG InvalidRequestDetail_Reason = 2
   635  	// One or more resources specified in the request cannot be found.
   636  	InvalidRequestDetail_RESOURCE_NOT_FOUND InvalidRequestDetail_Reason = 3
   637  	// This request is not (currently) supported.
   638  	InvalidRequestDetail_UNSUPPORTED InvalidRequestDetail_Reason = 4
   639  	// This request is not currently implemented.
   640  	InvalidRequestDetail_NOT_IMPLEMENTED InvalidRequestDetail_Reason = 5
   641  )
   642  
   643  // Enum value maps for InvalidRequestDetail_Reason.
   644  var (
   645  	InvalidRequestDetail_Reason_name = map[int32]string{
   646  		0: "REASON_UNSPECIFIED",
   647  		1: "REQUEST_INVALID",
   648  		2: "RESOURCE_TOO_BIG",
   649  		3: "RESOURCE_NOT_FOUND",
   650  		4: "UNSUPPORTED",
   651  		5: "NOT_IMPLEMENTED",
   652  	}
   653  	InvalidRequestDetail_Reason_value = map[string]int32{
   654  		"REASON_UNSPECIFIED": 0,
   655  		"REQUEST_INVALID":    1,
   656  		"RESOURCE_TOO_BIG":   2,
   657  		"RESOURCE_NOT_FOUND": 3,
   658  		"UNSUPPORTED":        4,
   659  		"NOT_IMPLEMENTED":    5,
   660  	}
   661  )
   662  
   663  func (x InvalidRequestDetail_Reason) Enum() *InvalidRequestDetail_Reason {
   664  	p := new(InvalidRequestDetail_Reason)
   665  	*p = x
   666  	return p
   667  }
   668  
   669  func (x InvalidRequestDetail_Reason) String() string {
   670  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   671  }
   672  
   673  func (InvalidRequestDetail_Reason) Descriptor() protoreflect.EnumDescriptor {
   674  	return file_google_devtools_testing_v1_test_execution_proto_enumTypes[6].Descriptor()
   675  }
   676  
   677  func (InvalidRequestDetail_Reason) Type() protoreflect.EnumType {
   678  	return &file_google_devtools_testing_v1_test_execution_proto_enumTypes[6]
   679  }
   680  
   681  func (x InvalidRequestDetail_Reason) Number() protoreflect.EnumNumber {
   682  	return protoreflect.EnumNumber(x)
   683  }
   684  
   685  // Deprecated: Use InvalidRequestDetail_Reason.Descriptor instead.
   686  func (InvalidRequestDetail_Reason) EnumDescriptor() ([]byte, []int) {
   687  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{40, 0}
   688  }
   689  
   690  // TestMatrix captures all details about a test. It contains the environment
   691  // configuration, test specification, test executions and overall state and
   692  // outcome.
   693  type TestMatrix struct {
   694  	state         protoimpl.MessageState
   695  	sizeCache     protoimpl.SizeCache
   696  	unknownFields protoimpl.UnknownFields
   697  
   698  	// Output only. Unique id set by the service.
   699  	TestMatrixId string `protobuf:"bytes,1,opt,name=test_matrix_id,json=testMatrixId,proto3" json:"test_matrix_id,omitempty"`
   700  	// The cloud project that owns the test matrix.
   701  	ProjectId string `protobuf:"bytes,7,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
   702  	// Information about the client which invoked the test.
   703  	ClientInfo *ClientInfo `protobuf:"bytes,10,opt,name=client_info,json=clientInfo,proto3" json:"client_info,omitempty"`
   704  	// Required. How to run the test.
   705  	TestSpecification *TestSpecification `protobuf:"bytes,3,opt,name=test_specification,json=testSpecification,proto3" json:"test_specification,omitempty"`
   706  	// Required. The devices the tests are being executed on.
   707  	EnvironmentMatrix *EnvironmentMatrix `protobuf:"bytes,4,opt,name=environment_matrix,json=environmentMatrix,proto3" json:"environment_matrix,omitempty"`
   708  	// Output only. The list of test executions that the service creates for
   709  	// this matrix.
   710  	TestExecutions []*TestExecution `protobuf:"bytes,5,rep,name=test_executions,json=testExecutions,proto3" json:"test_executions,omitempty"`
   711  	// Required. Where the results for the matrix are written.
   712  	ResultStorage *ResultStorage `protobuf:"bytes,6,opt,name=result_storage,json=resultStorage,proto3" json:"result_storage,omitempty"`
   713  	// Output only. Indicates the current progress of the test matrix.
   714  	State TestState `protobuf:"varint,8,opt,name=state,proto3,enum=google.devtools.testing.v1.TestState" json:"state,omitempty"`
   715  	// Output only. The time this test matrix was initially created.
   716  	Timestamp *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
   717  	// Output only. Describes why the matrix is considered invalid.
   718  	// Only useful for matrices in the INVALID state.
   719  	InvalidMatrixDetails InvalidMatrixDetails `protobuf:"varint,11,opt,name=invalid_matrix_details,json=invalidMatrixDetails,proto3,enum=google.devtools.testing.v1.InvalidMatrixDetails" json:"invalid_matrix_details,omitempty"`
   720  	// The number of times a TestExecution should be re-attempted if one or more
   721  	// of its test cases fail for any reason.
   722  	// The maximum number of reruns allowed is 10.
   723  	//
   724  	// Default is 0, which implies no reruns.
   725  	FlakyTestAttempts int32 `protobuf:"varint,13,opt,name=flaky_test_attempts,json=flakyTestAttempts,proto3" json:"flaky_test_attempts,omitempty"`
   726  	// Output Only. The overall outcome of the test.
   727  	// Only set when the test matrix state is FINISHED.
   728  	OutcomeSummary OutcomeSummary `protobuf:"varint,14,opt,name=outcome_summary,json=outcomeSummary,proto3,enum=google.devtools.testing.v1.OutcomeSummary" json:"outcome_summary,omitempty"`
   729  	// If true, only a single attempt at most will be made to run each
   730  	// execution/shard in the matrix. Flaky test attempts are not affected.
   731  	//
   732  	// Normally, 2 or more attempts are made if a potential infrastructure issue
   733  	// is detected.
   734  	//
   735  	// This feature is for latency sensitive workloads. The incidence of
   736  	// execution failures may be significantly greater for fail-fast matrices
   737  	// and support is more limited because of that expectation.
   738  	FailFast bool `protobuf:"varint,17,opt,name=fail_fast,json=failFast,proto3" json:"fail_fast,omitempty"`
   739  }
   740  
   741  func (x *TestMatrix) Reset() {
   742  	*x = TestMatrix{}
   743  	if protoimpl.UnsafeEnabled {
   744  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[0]
   745  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   746  		ms.StoreMessageInfo(mi)
   747  	}
   748  }
   749  
   750  func (x *TestMatrix) String() string {
   751  	return protoimpl.X.MessageStringOf(x)
   752  }
   753  
   754  func (*TestMatrix) ProtoMessage() {}
   755  
   756  func (x *TestMatrix) ProtoReflect() protoreflect.Message {
   757  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[0]
   758  	if protoimpl.UnsafeEnabled && x != nil {
   759  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   760  		if ms.LoadMessageInfo() == nil {
   761  			ms.StoreMessageInfo(mi)
   762  		}
   763  		return ms
   764  	}
   765  	return mi.MessageOf(x)
   766  }
   767  
   768  // Deprecated: Use TestMatrix.ProtoReflect.Descriptor instead.
   769  func (*TestMatrix) Descriptor() ([]byte, []int) {
   770  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{0}
   771  }
   772  
   773  func (x *TestMatrix) GetTestMatrixId() string {
   774  	if x != nil {
   775  		return x.TestMatrixId
   776  	}
   777  	return ""
   778  }
   779  
   780  func (x *TestMatrix) GetProjectId() string {
   781  	if x != nil {
   782  		return x.ProjectId
   783  	}
   784  	return ""
   785  }
   786  
   787  func (x *TestMatrix) GetClientInfo() *ClientInfo {
   788  	if x != nil {
   789  		return x.ClientInfo
   790  	}
   791  	return nil
   792  }
   793  
   794  func (x *TestMatrix) GetTestSpecification() *TestSpecification {
   795  	if x != nil {
   796  		return x.TestSpecification
   797  	}
   798  	return nil
   799  }
   800  
   801  func (x *TestMatrix) GetEnvironmentMatrix() *EnvironmentMatrix {
   802  	if x != nil {
   803  		return x.EnvironmentMatrix
   804  	}
   805  	return nil
   806  }
   807  
   808  func (x *TestMatrix) GetTestExecutions() []*TestExecution {
   809  	if x != nil {
   810  		return x.TestExecutions
   811  	}
   812  	return nil
   813  }
   814  
   815  func (x *TestMatrix) GetResultStorage() *ResultStorage {
   816  	if x != nil {
   817  		return x.ResultStorage
   818  	}
   819  	return nil
   820  }
   821  
   822  func (x *TestMatrix) GetState() TestState {
   823  	if x != nil {
   824  		return x.State
   825  	}
   826  	return TestState_TEST_STATE_UNSPECIFIED
   827  }
   828  
   829  func (x *TestMatrix) GetTimestamp() *timestamppb.Timestamp {
   830  	if x != nil {
   831  		return x.Timestamp
   832  	}
   833  	return nil
   834  }
   835  
   836  func (x *TestMatrix) GetInvalidMatrixDetails() InvalidMatrixDetails {
   837  	if x != nil {
   838  		return x.InvalidMatrixDetails
   839  	}
   840  	return InvalidMatrixDetails_INVALID_MATRIX_DETAILS_UNSPECIFIED
   841  }
   842  
   843  func (x *TestMatrix) GetFlakyTestAttempts() int32 {
   844  	if x != nil {
   845  		return x.FlakyTestAttempts
   846  	}
   847  	return 0
   848  }
   849  
   850  func (x *TestMatrix) GetOutcomeSummary() OutcomeSummary {
   851  	if x != nil {
   852  		return x.OutcomeSummary
   853  	}
   854  	return OutcomeSummary_OUTCOME_SUMMARY_UNSPECIFIED
   855  }
   856  
   857  func (x *TestMatrix) GetFailFast() bool {
   858  	if x != nil {
   859  		return x.FailFast
   860  	}
   861  	return false
   862  }
   863  
   864  // A single test executed in a single environment.
   865  type TestExecution struct {
   866  	state         protoimpl.MessageState
   867  	sizeCache     protoimpl.SizeCache
   868  	unknownFields protoimpl.UnknownFields
   869  
   870  	// Output only. Unique id set by the service.
   871  	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   872  	// Output only. Id of the containing TestMatrix.
   873  	MatrixId string `protobuf:"bytes,9,opt,name=matrix_id,json=matrixId,proto3" json:"matrix_id,omitempty"`
   874  	// Output only. The cloud project that owns the test execution.
   875  	ProjectId string `protobuf:"bytes,10,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
   876  	// Output only. How to run the test.
   877  	TestSpecification *TestSpecification `protobuf:"bytes,3,opt,name=test_specification,json=testSpecification,proto3" json:"test_specification,omitempty"`
   878  	// Output only. Details about the shard.
   879  	Shard *Shard `protobuf:"bytes,12,opt,name=shard,proto3" json:"shard,omitempty"`
   880  	// Output only. How the host machine(s) are configured.
   881  	Environment *Environment `protobuf:"bytes,4,opt,name=environment,proto3" json:"environment,omitempty"`
   882  	// Output only. Indicates the current progress of the test execution
   883  	// (e.g., FINISHED).
   884  	State TestState `protobuf:"varint,5,opt,name=state,proto3,enum=google.devtools.testing.v1.TestState" json:"state,omitempty"`
   885  	// Output only. Where the results for this execution are written.
   886  	ToolResultsStep *ToolResultsStep `protobuf:"bytes,11,opt,name=tool_results_step,json=toolResultsStep,proto3" json:"tool_results_step,omitempty"`
   887  	// Output only. The time this test execution was initially created.
   888  	Timestamp *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
   889  	// Output only. Additional details about the running test.
   890  	TestDetails *TestDetails `protobuf:"bytes,8,opt,name=test_details,json=testDetails,proto3" json:"test_details,omitempty"`
   891  }
   892  
   893  func (x *TestExecution) Reset() {
   894  	*x = TestExecution{}
   895  	if protoimpl.UnsafeEnabled {
   896  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[1]
   897  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   898  		ms.StoreMessageInfo(mi)
   899  	}
   900  }
   901  
   902  func (x *TestExecution) String() string {
   903  	return protoimpl.X.MessageStringOf(x)
   904  }
   905  
   906  func (*TestExecution) ProtoMessage() {}
   907  
   908  func (x *TestExecution) ProtoReflect() protoreflect.Message {
   909  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[1]
   910  	if protoimpl.UnsafeEnabled && x != nil {
   911  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   912  		if ms.LoadMessageInfo() == nil {
   913  			ms.StoreMessageInfo(mi)
   914  		}
   915  		return ms
   916  	}
   917  	return mi.MessageOf(x)
   918  }
   919  
   920  // Deprecated: Use TestExecution.ProtoReflect.Descriptor instead.
   921  func (*TestExecution) Descriptor() ([]byte, []int) {
   922  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{1}
   923  }
   924  
   925  func (x *TestExecution) GetId() string {
   926  	if x != nil {
   927  		return x.Id
   928  	}
   929  	return ""
   930  }
   931  
   932  func (x *TestExecution) GetMatrixId() string {
   933  	if x != nil {
   934  		return x.MatrixId
   935  	}
   936  	return ""
   937  }
   938  
   939  func (x *TestExecution) GetProjectId() string {
   940  	if x != nil {
   941  		return x.ProjectId
   942  	}
   943  	return ""
   944  }
   945  
   946  func (x *TestExecution) GetTestSpecification() *TestSpecification {
   947  	if x != nil {
   948  		return x.TestSpecification
   949  	}
   950  	return nil
   951  }
   952  
   953  func (x *TestExecution) GetShard() *Shard {
   954  	if x != nil {
   955  		return x.Shard
   956  	}
   957  	return nil
   958  }
   959  
   960  func (x *TestExecution) GetEnvironment() *Environment {
   961  	if x != nil {
   962  		return x.Environment
   963  	}
   964  	return nil
   965  }
   966  
   967  func (x *TestExecution) GetState() TestState {
   968  	if x != nil {
   969  		return x.State
   970  	}
   971  	return TestState_TEST_STATE_UNSPECIFIED
   972  }
   973  
   974  func (x *TestExecution) GetToolResultsStep() *ToolResultsStep {
   975  	if x != nil {
   976  		return x.ToolResultsStep
   977  	}
   978  	return nil
   979  }
   980  
   981  func (x *TestExecution) GetTimestamp() *timestamppb.Timestamp {
   982  	if x != nil {
   983  		return x.Timestamp
   984  	}
   985  	return nil
   986  }
   987  
   988  func (x *TestExecution) GetTestDetails() *TestDetails {
   989  	if x != nil {
   990  		return x.TestDetails
   991  	}
   992  	return nil
   993  }
   994  
   995  // A description of how to run the test.
   996  type TestSpecification struct {
   997  	state         protoimpl.MessageState
   998  	sizeCache     protoimpl.SizeCache
   999  	unknownFields protoimpl.UnknownFields
  1000  
  1001  	// Max time a test execution is allowed to run before it is
  1002  	// automatically cancelled.
  1003  	// The default value is 5 min.
  1004  	TestTimeout *durationpb.Duration `protobuf:"bytes,1,opt,name=test_timeout,json=testTimeout,proto3" json:"test_timeout,omitempty"`
  1005  	// Test setup requirements.
  1006  	//
  1007  	// Types that are assignable to Setup:
  1008  	//
  1009  	//	*TestSpecification_TestSetup
  1010  	//	*TestSpecification_IosTestSetup
  1011  	Setup isTestSpecification_Setup `protobuf_oneof:"setup"`
  1012  	// Required. The type of test to run.
  1013  	//
  1014  	// Types that are assignable to Test:
  1015  	//
  1016  	//	*TestSpecification_AndroidInstrumentationTest
  1017  	//	*TestSpecification_AndroidRoboTest
  1018  	//	*TestSpecification_AndroidTestLoop
  1019  	//	*TestSpecification_IosXcTest
  1020  	//	*TestSpecification_IosTestLoop
  1021  	Test isTestSpecification_Test `protobuf_oneof:"test"`
  1022  	// Disables video recording. May reduce test latency.
  1023  	DisableVideoRecording bool `protobuf:"varint,10,opt,name=disable_video_recording,json=disableVideoRecording,proto3" json:"disable_video_recording,omitempty"`
  1024  	// Disables performance metrics recording. May reduce test latency.
  1025  	DisablePerformanceMetrics bool `protobuf:"varint,11,opt,name=disable_performance_metrics,json=disablePerformanceMetrics,proto3" json:"disable_performance_metrics,omitempty"`
  1026  }
  1027  
  1028  func (x *TestSpecification) Reset() {
  1029  	*x = TestSpecification{}
  1030  	if protoimpl.UnsafeEnabled {
  1031  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[2]
  1032  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1033  		ms.StoreMessageInfo(mi)
  1034  	}
  1035  }
  1036  
  1037  func (x *TestSpecification) String() string {
  1038  	return protoimpl.X.MessageStringOf(x)
  1039  }
  1040  
  1041  func (*TestSpecification) ProtoMessage() {}
  1042  
  1043  func (x *TestSpecification) ProtoReflect() protoreflect.Message {
  1044  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[2]
  1045  	if protoimpl.UnsafeEnabled && x != nil {
  1046  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1047  		if ms.LoadMessageInfo() == nil {
  1048  			ms.StoreMessageInfo(mi)
  1049  		}
  1050  		return ms
  1051  	}
  1052  	return mi.MessageOf(x)
  1053  }
  1054  
  1055  // Deprecated: Use TestSpecification.ProtoReflect.Descriptor instead.
  1056  func (*TestSpecification) Descriptor() ([]byte, []int) {
  1057  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{2}
  1058  }
  1059  
  1060  func (x *TestSpecification) GetTestTimeout() *durationpb.Duration {
  1061  	if x != nil {
  1062  		return x.TestTimeout
  1063  	}
  1064  	return nil
  1065  }
  1066  
  1067  func (m *TestSpecification) GetSetup() isTestSpecification_Setup {
  1068  	if m != nil {
  1069  		return m.Setup
  1070  	}
  1071  	return nil
  1072  }
  1073  
  1074  func (x *TestSpecification) GetTestSetup() *TestSetup {
  1075  	if x, ok := x.GetSetup().(*TestSpecification_TestSetup); ok {
  1076  		return x.TestSetup
  1077  	}
  1078  	return nil
  1079  }
  1080  
  1081  func (x *TestSpecification) GetIosTestSetup() *IosTestSetup {
  1082  	if x, ok := x.GetSetup().(*TestSpecification_IosTestSetup); ok {
  1083  		return x.IosTestSetup
  1084  	}
  1085  	return nil
  1086  }
  1087  
  1088  func (m *TestSpecification) GetTest() isTestSpecification_Test {
  1089  	if m != nil {
  1090  		return m.Test
  1091  	}
  1092  	return nil
  1093  }
  1094  
  1095  func (x *TestSpecification) GetAndroidInstrumentationTest() *AndroidInstrumentationTest {
  1096  	if x, ok := x.GetTest().(*TestSpecification_AndroidInstrumentationTest); ok {
  1097  		return x.AndroidInstrumentationTest
  1098  	}
  1099  	return nil
  1100  }
  1101  
  1102  func (x *TestSpecification) GetAndroidRoboTest() *AndroidRoboTest {
  1103  	if x, ok := x.GetTest().(*TestSpecification_AndroidRoboTest); ok {
  1104  		return x.AndroidRoboTest
  1105  	}
  1106  	return nil
  1107  }
  1108  
  1109  func (x *TestSpecification) GetAndroidTestLoop() *AndroidTestLoop {
  1110  	if x, ok := x.GetTest().(*TestSpecification_AndroidTestLoop); ok {
  1111  		return x.AndroidTestLoop
  1112  	}
  1113  	return nil
  1114  }
  1115  
  1116  func (x *TestSpecification) GetIosXcTest() *IosXcTest {
  1117  	if x, ok := x.GetTest().(*TestSpecification_IosXcTest); ok {
  1118  		return x.IosXcTest
  1119  	}
  1120  	return nil
  1121  }
  1122  
  1123  func (x *TestSpecification) GetIosTestLoop() *IosTestLoop {
  1124  	if x, ok := x.GetTest().(*TestSpecification_IosTestLoop); ok {
  1125  		return x.IosTestLoop
  1126  	}
  1127  	return nil
  1128  }
  1129  
  1130  func (x *TestSpecification) GetDisableVideoRecording() bool {
  1131  	if x != nil {
  1132  		return x.DisableVideoRecording
  1133  	}
  1134  	return false
  1135  }
  1136  
  1137  func (x *TestSpecification) GetDisablePerformanceMetrics() bool {
  1138  	if x != nil {
  1139  		return x.DisablePerformanceMetrics
  1140  	}
  1141  	return false
  1142  }
  1143  
  1144  type isTestSpecification_Setup interface {
  1145  	isTestSpecification_Setup()
  1146  }
  1147  
  1148  type TestSpecification_TestSetup struct {
  1149  	// Test setup requirements for Android e.g. files to install, bootstrap
  1150  	// scripts.
  1151  	TestSetup *TestSetup `protobuf:"bytes,6,opt,name=test_setup,json=testSetup,proto3,oneof"`
  1152  }
  1153  
  1154  type TestSpecification_IosTestSetup struct {
  1155  	// Test setup requirements for iOS.
  1156  	IosTestSetup *IosTestSetup `protobuf:"bytes,14,opt,name=ios_test_setup,json=iosTestSetup,proto3,oneof"`
  1157  }
  1158  
  1159  func (*TestSpecification_TestSetup) isTestSpecification_Setup() {}
  1160  
  1161  func (*TestSpecification_IosTestSetup) isTestSpecification_Setup() {}
  1162  
  1163  type isTestSpecification_Test interface {
  1164  	isTestSpecification_Test()
  1165  }
  1166  
  1167  type TestSpecification_AndroidInstrumentationTest struct {
  1168  	// An Android instrumentation test.
  1169  	AndroidInstrumentationTest *AndroidInstrumentationTest `protobuf:"bytes,2,opt,name=android_instrumentation_test,json=androidInstrumentationTest,proto3,oneof"`
  1170  }
  1171  
  1172  type TestSpecification_AndroidRoboTest struct {
  1173  	// An Android robo test.
  1174  	AndroidRoboTest *AndroidRoboTest `protobuf:"bytes,3,opt,name=android_robo_test,json=androidRoboTest,proto3,oneof"`
  1175  }
  1176  
  1177  type TestSpecification_AndroidTestLoop struct {
  1178  	// An Android Application with a Test Loop.
  1179  	AndroidTestLoop *AndroidTestLoop `protobuf:"bytes,9,opt,name=android_test_loop,json=androidTestLoop,proto3,oneof"`
  1180  }
  1181  
  1182  type TestSpecification_IosXcTest struct {
  1183  	// An iOS XCTest, via an .xctestrun file.
  1184  	IosXcTest *IosXcTest `protobuf:"bytes,13,opt,name=ios_xc_test,json=iosXcTest,proto3,oneof"`
  1185  }
  1186  
  1187  type TestSpecification_IosTestLoop struct {
  1188  	// An iOS application with a test loop.
  1189  	IosTestLoop *IosTestLoop `protobuf:"bytes,15,opt,name=ios_test_loop,json=iosTestLoop,proto3,oneof"`
  1190  }
  1191  
  1192  func (*TestSpecification_AndroidInstrumentationTest) isTestSpecification_Test() {}
  1193  
  1194  func (*TestSpecification_AndroidRoboTest) isTestSpecification_Test() {}
  1195  
  1196  func (*TestSpecification_AndroidTestLoop) isTestSpecification_Test() {}
  1197  
  1198  func (*TestSpecification_IosXcTest) isTestSpecification_Test() {}
  1199  
  1200  func (*TestSpecification_IosTestLoop) isTestSpecification_Test() {}
  1201  
  1202  type SystraceSetup struct {
  1203  	state         protoimpl.MessageState
  1204  	sizeCache     protoimpl.SizeCache
  1205  	unknownFields protoimpl.UnknownFields
  1206  
  1207  	// Systrace duration in seconds.
  1208  	// Should be between 1 and 30 seconds. 0 disables systrace.
  1209  	DurationSeconds int32 `protobuf:"varint,1,opt,name=duration_seconds,json=durationSeconds,proto3" json:"duration_seconds,omitempty"`
  1210  }
  1211  
  1212  func (x *SystraceSetup) Reset() {
  1213  	*x = SystraceSetup{}
  1214  	if protoimpl.UnsafeEnabled {
  1215  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[3]
  1216  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1217  		ms.StoreMessageInfo(mi)
  1218  	}
  1219  }
  1220  
  1221  func (x *SystraceSetup) String() string {
  1222  	return protoimpl.X.MessageStringOf(x)
  1223  }
  1224  
  1225  func (*SystraceSetup) ProtoMessage() {}
  1226  
  1227  func (x *SystraceSetup) ProtoReflect() protoreflect.Message {
  1228  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[3]
  1229  	if protoimpl.UnsafeEnabled && x != nil {
  1230  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1231  		if ms.LoadMessageInfo() == nil {
  1232  			ms.StoreMessageInfo(mi)
  1233  		}
  1234  		return ms
  1235  	}
  1236  	return mi.MessageOf(x)
  1237  }
  1238  
  1239  // Deprecated: Use SystraceSetup.ProtoReflect.Descriptor instead.
  1240  func (*SystraceSetup) Descriptor() ([]byte, []int) {
  1241  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{3}
  1242  }
  1243  
  1244  func (x *SystraceSetup) GetDurationSeconds() int32 {
  1245  	if x != nil {
  1246  		return x.DurationSeconds
  1247  	}
  1248  	return 0
  1249  }
  1250  
  1251  // A description of how to set up the Android device prior to running the test.
  1252  type TestSetup struct {
  1253  	state         protoimpl.MessageState
  1254  	sizeCache     protoimpl.SizeCache
  1255  	unknownFields protoimpl.UnknownFields
  1256  
  1257  	// List of files to push to the device before starting the test.
  1258  	FilesToPush []*DeviceFile `protobuf:"bytes,1,rep,name=files_to_push,json=filesToPush,proto3" json:"files_to_push,omitempty"`
  1259  	// List of directories on the device to upload to GCS at the end of the test;
  1260  	// they must be absolute paths under /sdcard, /storage or /data/local/tmp.
  1261  	// Path names are restricted to characters a-z A-Z 0-9 _ - . + and /
  1262  	//
  1263  	// Note: The paths /sdcard and /data will be made available and treated as
  1264  	// implicit path substitutions. E.g. if /sdcard on a particular device does
  1265  	// not map to external storage, the system will replace it with the external
  1266  	// storage path prefix for that device.
  1267  	DirectoriesToPull []string `protobuf:"bytes,2,rep,name=directories_to_pull,json=directoriesToPull,proto3" json:"directories_to_pull,omitempty"`
  1268  	// APKs to install in addition to those being directly tested.
  1269  	// Currently capped at 100.
  1270  	AdditionalApks []*Apk `protobuf:"bytes,3,rep,name=additional_apks,json=additionalApks,proto3" json:"additional_apks,omitempty"`
  1271  	// The device will be logged in on this account for the duration of the test.
  1272  	Account *Account `protobuf:"bytes,4,opt,name=account,proto3" json:"account,omitempty"`
  1273  	// The network traffic profile used for running the test.
  1274  	// Available network profiles can be queried by using the
  1275  	// NETWORK_CONFIGURATION environment type when calling
  1276  	// TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
  1277  	NetworkProfile string `protobuf:"bytes,5,opt,name=network_profile,json=networkProfile,proto3" json:"network_profile,omitempty"`
  1278  	// Environment variables to set for the test (only applicable for
  1279  	// instrumentation tests).
  1280  	EnvironmentVariables []*EnvironmentVariable `protobuf:"bytes,6,rep,name=environment_variables,json=environmentVariables,proto3" json:"environment_variables,omitempty"`
  1281  	// Deprecated: Systrace uses Python 2 which has been sunset 2020-01-01.
  1282  	// Support of Systrace may stop at any time, at which point no Systrace file
  1283  	// will be provided in the results.
  1284  	//
  1285  	// Systrace configuration for the run.
  1286  	// If set a systrace will be taken, starting on test start and lasting for the
  1287  	// configured duration. The systrace file thus obtained is put in the results
  1288  	// bucket together with the other artifacts from the run.
  1289  	//
  1290  	// Deprecated: Do not use.
  1291  	Systrace *SystraceSetup `protobuf:"bytes,9,opt,name=systrace,proto3" json:"systrace,omitempty"`
  1292  	// Whether to prevent all runtime permissions to be granted at app install
  1293  	DontAutograntPermissions bool `protobuf:"varint,23,opt,name=dont_autogrant_permissions,json=dontAutograntPermissions,proto3" json:"dont_autogrant_permissions,omitempty"`
  1294  }
  1295  
  1296  func (x *TestSetup) Reset() {
  1297  	*x = TestSetup{}
  1298  	if protoimpl.UnsafeEnabled {
  1299  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[4]
  1300  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1301  		ms.StoreMessageInfo(mi)
  1302  	}
  1303  }
  1304  
  1305  func (x *TestSetup) String() string {
  1306  	return protoimpl.X.MessageStringOf(x)
  1307  }
  1308  
  1309  func (*TestSetup) ProtoMessage() {}
  1310  
  1311  func (x *TestSetup) ProtoReflect() protoreflect.Message {
  1312  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[4]
  1313  	if protoimpl.UnsafeEnabled && x != nil {
  1314  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1315  		if ms.LoadMessageInfo() == nil {
  1316  			ms.StoreMessageInfo(mi)
  1317  		}
  1318  		return ms
  1319  	}
  1320  	return mi.MessageOf(x)
  1321  }
  1322  
  1323  // Deprecated: Use TestSetup.ProtoReflect.Descriptor instead.
  1324  func (*TestSetup) Descriptor() ([]byte, []int) {
  1325  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{4}
  1326  }
  1327  
  1328  func (x *TestSetup) GetFilesToPush() []*DeviceFile {
  1329  	if x != nil {
  1330  		return x.FilesToPush
  1331  	}
  1332  	return nil
  1333  }
  1334  
  1335  func (x *TestSetup) GetDirectoriesToPull() []string {
  1336  	if x != nil {
  1337  		return x.DirectoriesToPull
  1338  	}
  1339  	return nil
  1340  }
  1341  
  1342  func (x *TestSetup) GetAdditionalApks() []*Apk {
  1343  	if x != nil {
  1344  		return x.AdditionalApks
  1345  	}
  1346  	return nil
  1347  }
  1348  
  1349  func (x *TestSetup) GetAccount() *Account {
  1350  	if x != nil {
  1351  		return x.Account
  1352  	}
  1353  	return nil
  1354  }
  1355  
  1356  func (x *TestSetup) GetNetworkProfile() string {
  1357  	if x != nil {
  1358  		return x.NetworkProfile
  1359  	}
  1360  	return ""
  1361  }
  1362  
  1363  func (x *TestSetup) GetEnvironmentVariables() []*EnvironmentVariable {
  1364  	if x != nil {
  1365  		return x.EnvironmentVariables
  1366  	}
  1367  	return nil
  1368  }
  1369  
  1370  // Deprecated: Do not use.
  1371  func (x *TestSetup) GetSystrace() *SystraceSetup {
  1372  	if x != nil {
  1373  		return x.Systrace
  1374  	}
  1375  	return nil
  1376  }
  1377  
  1378  func (x *TestSetup) GetDontAutograntPermissions() bool {
  1379  	if x != nil {
  1380  		return x.DontAutograntPermissions
  1381  	}
  1382  	return false
  1383  }
  1384  
  1385  // A description of how to set up an iOS device prior to running the test.
  1386  type IosTestSetup struct {
  1387  	state         protoimpl.MessageState
  1388  	sizeCache     protoimpl.SizeCache
  1389  	unknownFields protoimpl.UnknownFields
  1390  
  1391  	// The network traffic profile used for running the test.
  1392  	// Available network profiles can be queried by using the
  1393  	// NETWORK_CONFIGURATION environment type when calling
  1394  	// TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
  1395  	NetworkProfile string `protobuf:"bytes,1,opt,name=network_profile,json=networkProfile,proto3" json:"network_profile,omitempty"`
  1396  	// iOS apps to install in addition to those being directly tested.
  1397  	AdditionalIpas []*FileReference `protobuf:"bytes,2,rep,name=additional_ipas,json=additionalIpas,proto3" json:"additional_ipas,omitempty"`
  1398  	// List of files to push to the device before starting the test.
  1399  	PushFiles []*IosDeviceFile `protobuf:"bytes,3,rep,name=push_files,json=pushFiles,proto3" json:"push_files,omitempty"`
  1400  	// List of directories on the device to upload to Cloud Storage at the end of
  1401  	// the test.
  1402  	//
  1403  	// Directories should either be in a shared directory (such as
  1404  	// /private/var/mobile/Media) or within an accessible directory inside the
  1405  	// app's filesystem (such as /Documents) by specifying the bundle ID.
  1406  	PullDirectories []*IosDeviceFile `protobuf:"bytes,4,rep,name=pull_directories,json=pullDirectories,proto3" json:"pull_directories,omitempty"`
  1407  }
  1408  
  1409  func (x *IosTestSetup) Reset() {
  1410  	*x = IosTestSetup{}
  1411  	if protoimpl.UnsafeEnabled {
  1412  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[5]
  1413  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1414  		ms.StoreMessageInfo(mi)
  1415  	}
  1416  }
  1417  
  1418  func (x *IosTestSetup) String() string {
  1419  	return protoimpl.X.MessageStringOf(x)
  1420  }
  1421  
  1422  func (*IosTestSetup) ProtoMessage() {}
  1423  
  1424  func (x *IosTestSetup) ProtoReflect() protoreflect.Message {
  1425  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[5]
  1426  	if protoimpl.UnsafeEnabled && x != nil {
  1427  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1428  		if ms.LoadMessageInfo() == nil {
  1429  			ms.StoreMessageInfo(mi)
  1430  		}
  1431  		return ms
  1432  	}
  1433  	return mi.MessageOf(x)
  1434  }
  1435  
  1436  // Deprecated: Use IosTestSetup.ProtoReflect.Descriptor instead.
  1437  func (*IosTestSetup) Descriptor() ([]byte, []int) {
  1438  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{5}
  1439  }
  1440  
  1441  func (x *IosTestSetup) GetNetworkProfile() string {
  1442  	if x != nil {
  1443  		return x.NetworkProfile
  1444  	}
  1445  	return ""
  1446  }
  1447  
  1448  func (x *IosTestSetup) GetAdditionalIpas() []*FileReference {
  1449  	if x != nil {
  1450  		return x.AdditionalIpas
  1451  	}
  1452  	return nil
  1453  }
  1454  
  1455  func (x *IosTestSetup) GetPushFiles() []*IosDeviceFile {
  1456  	if x != nil {
  1457  		return x.PushFiles
  1458  	}
  1459  	return nil
  1460  }
  1461  
  1462  func (x *IosTestSetup) GetPullDirectories() []*IosDeviceFile {
  1463  	if x != nil {
  1464  		return x.PullDirectories
  1465  	}
  1466  	return nil
  1467  }
  1468  
  1469  // A key-value pair passed as an environment variable to the test.
  1470  type EnvironmentVariable struct {
  1471  	state         protoimpl.MessageState
  1472  	sizeCache     protoimpl.SizeCache
  1473  	unknownFields protoimpl.UnknownFields
  1474  
  1475  	// Key for the environment variable.
  1476  	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
  1477  	// Value for the environment variable.
  1478  	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
  1479  }
  1480  
  1481  func (x *EnvironmentVariable) Reset() {
  1482  	*x = EnvironmentVariable{}
  1483  	if protoimpl.UnsafeEnabled {
  1484  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[6]
  1485  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1486  		ms.StoreMessageInfo(mi)
  1487  	}
  1488  }
  1489  
  1490  func (x *EnvironmentVariable) String() string {
  1491  	return protoimpl.X.MessageStringOf(x)
  1492  }
  1493  
  1494  func (*EnvironmentVariable) ProtoMessage() {}
  1495  
  1496  func (x *EnvironmentVariable) ProtoReflect() protoreflect.Message {
  1497  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[6]
  1498  	if protoimpl.UnsafeEnabled && x != nil {
  1499  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1500  		if ms.LoadMessageInfo() == nil {
  1501  			ms.StoreMessageInfo(mi)
  1502  		}
  1503  		return ms
  1504  	}
  1505  	return mi.MessageOf(x)
  1506  }
  1507  
  1508  // Deprecated: Use EnvironmentVariable.ProtoReflect.Descriptor instead.
  1509  func (*EnvironmentVariable) Descriptor() ([]byte, []int) {
  1510  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{6}
  1511  }
  1512  
  1513  func (x *EnvironmentVariable) GetKey() string {
  1514  	if x != nil {
  1515  		return x.Key
  1516  	}
  1517  	return ""
  1518  }
  1519  
  1520  func (x *EnvironmentVariable) GetValue() string {
  1521  	if x != nil {
  1522  		return x.Value
  1523  	}
  1524  	return ""
  1525  }
  1526  
  1527  // Identifies an account and how to log into it.
  1528  type Account struct {
  1529  	state         protoimpl.MessageState
  1530  	sizeCache     protoimpl.SizeCache
  1531  	unknownFields protoimpl.UnknownFields
  1532  
  1533  	// Required. The type of account, based what it's for (e.g. Google) and what
  1534  	// its login mechanism is (e.g. username and password).
  1535  	//
  1536  	// Types that are assignable to AccountType:
  1537  	//
  1538  	//	*Account_GoogleAuto
  1539  	AccountType isAccount_AccountType `protobuf_oneof:"account_type"`
  1540  }
  1541  
  1542  func (x *Account) Reset() {
  1543  	*x = Account{}
  1544  	if protoimpl.UnsafeEnabled {
  1545  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[7]
  1546  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1547  		ms.StoreMessageInfo(mi)
  1548  	}
  1549  }
  1550  
  1551  func (x *Account) String() string {
  1552  	return protoimpl.X.MessageStringOf(x)
  1553  }
  1554  
  1555  func (*Account) ProtoMessage() {}
  1556  
  1557  func (x *Account) ProtoReflect() protoreflect.Message {
  1558  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[7]
  1559  	if protoimpl.UnsafeEnabled && x != nil {
  1560  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1561  		if ms.LoadMessageInfo() == nil {
  1562  			ms.StoreMessageInfo(mi)
  1563  		}
  1564  		return ms
  1565  	}
  1566  	return mi.MessageOf(x)
  1567  }
  1568  
  1569  // Deprecated: Use Account.ProtoReflect.Descriptor instead.
  1570  func (*Account) Descriptor() ([]byte, []int) {
  1571  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{7}
  1572  }
  1573  
  1574  func (m *Account) GetAccountType() isAccount_AccountType {
  1575  	if m != nil {
  1576  		return m.AccountType
  1577  	}
  1578  	return nil
  1579  }
  1580  
  1581  func (x *Account) GetGoogleAuto() *GoogleAuto {
  1582  	if x, ok := x.GetAccountType().(*Account_GoogleAuto); ok {
  1583  		return x.GoogleAuto
  1584  	}
  1585  	return nil
  1586  }
  1587  
  1588  type isAccount_AccountType interface {
  1589  	isAccount_AccountType()
  1590  }
  1591  
  1592  type Account_GoogleAuto struct {
  1593  	// An automatic google login account.
  1594  	GoogleAuto *GoogleAuto `protobuf:"bytes,1,opt,name=google_auto,json=googleAuto,proto3,oneof"`
  1595  }
  1596  
  1597  func (*Account_GoogleAuto) isAccount_AccountType() {}
  1598  
  1599  // Enables automatic Google account login.
  1600  // If set, the service automatically generates a Google test account and adds
  1601  // it to the device, before executing the test. Note that test accounts might be
  1602  // reused.
  1603  // Many applications show their full set of functionalities when an account is
  1604  // present on the device. Logging into the device with these generated accounts
  1605  // allows testing more functionalities.
  1606  type GoogleAuto struct {
  1607  	state         protoimpl.MessageState
  1608  	sizeCache     protoimpl.SizeCache
  1609  	unknownFields protoimpl.UnknownFields
  1610  }
  1611  
  1612  func (x *GoogleAuto) Reset() {
  1613  	*x = GoogleAuto{}
  1614  	if protoimpl.UnsafeEnabled {
  1615  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[8]
  1616  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1617  		ms.StoreMessageInfo(mi)
  1618  	}
  1619  }
  1620  
  1621  func (x *GoogleAuto) String() string {
  1622  	return protoimpl.X.MessageStringOf(x)
  1623  }
  1624  
  1625  func (*GoogleAuto) ProtoMessage() {}
  1626  
  1627  func (x *GoogleAuto) ProtoReflect() protoreflect.Message {
  1628  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[8]
  1629  	if protoimpl.UnsafeEnabled && x != nil {
  1630  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1631  		if ms.LoadMessageInfo() == nil {
  1632  			ms.StoreMessageInfo(mi)
  1633  		}
  1634  		return ms
  1635  	}
  1636  	return mi.MessageOf(x)
  1637  }
  1638  
  1639  // Deprecated: Use GoogleAuto.ProtoReflect.Descriptor instead.
  1640  func (*GoogleAuto) Descriptor() ([]byte, []int) {
  1641  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{8}
  1642  }
  1643  
  1644  // An Android package file to install.
  1645  type Apk struct {
  1646  	state         protoimpl.MessageState
  1647  	sizeCache     protoimpl.SizeCache
  1648  	unknownFields protoimpl.UnknownFields
  1649  
  1650  	// The path to an APK to be installed on the device before the test begins.
  1651  	Location *FileReference `protobuf:"bytes,1,opt,name=location,proto3" json:"location,omitempty"`
  1652  	// The java package for the APK to be installed.
  1653  	// Value is determined by examining the application's manifest.
  1654  	PackageName string `protobuf:"bytes,2,opt,name=package_name,json=packageName,proto3" json:"package_name,omitempty"`
  1655  }
  1656  
  1657  func (x *Apk) Reset() {
  1658  	*x = Apk{}
  1659  	if protoimpl.UnsafeEnabled {
  1660  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[9]
  1661  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1662  		ms.StoreMessageInfo(mi)
  1663  	}
  1664  }
  1665  
  1666  func (x *Apk) String() string {
  1667  	return protoimpl.X.MessageStringOf(x)
  1668  }
  1669  
  1670  func (*Apk) ProtoMessage() {}
  1671  
  1672  func (x *Apk) ProtoReflect() protoreflect.Message {
  1673  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[9]
  1674  	if protoimpl.UnsafeEnabled && x != nil {
  1675  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1676  		if ms.LoadMessageInfo() == nil {
  1677  			ms.StoreMessageInfo(mi)
  1678  		}
  1679  		return ms
  1680  	}
  1681  	return mi.MessageOf(x)
  1682  }
  1683  
  1684  // Deprecated: Use Apk.ProtoReflect.Descriptor instead.
  1685  func (*Apk) Descriptor() ([]byte, []int) {
  1686  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{9}
  1687  }
  1688  
  1689  func (x *Apk) GetLocation() *FileReference {
  1690  	if x != nil {
  1691  		return x.Location
  1692  	}
  1693  	return nil
  1694  }
  1695  
  1696  func (x *Apk) GetPackageName() string {
  1697  	if x != nil {
  1698  		return x.PackageName
  1699  	}
  1700  	return ""
  1701  }
  1702  
  1703  // An Android App Bundle file format, containing a BundleConfig.pb file,
  1704  // a base module directory, zero or more dynamic feature module directories.
  1705  // <p>See https://developer.android.com/guide/app-bundle/build for guidance on
  1706  // building App Bundles.
  1707  type AppBundle struct {
  1708  	state         protoimpl.MessageState
  1709  	sizeCache     protoimpl.SizeCache
  1710  	unknownFields protoimpl.UnknownFields
  1711  
  1712  	// Required. Bundle location information.
  1713  	//
  1714  	// Types that are assignable to Bundle:
  1715  	//
  1716  	//	*AppBundle_BundleLocation
  1717  	Bundle isAppBundle_Bundle `protobuf_oneof:"bundle"`
  1718  }
  1719  
  1720  func (x *AppBundle) Reset() {
  1721  	*x = AppBundle{}
  1722  	if protoimpl.UnsafeEnabled {
  1723  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[10]
  1724  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1725  		ms.StoreMessageInfo(mi)
  1726  	}
  1727  }
  1728  
  1729  func (x *AppBundle) String() string {
  1730  	return protoimpl.X.MessageStringOf(x)
  1731  }
  1732  
  1733  func (*AppBundle) ProtoMessage() {}
  1734  
  1735  func (x *AppBundle) ProtoReflect() protoreflect.Message {
  1736  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[10]
  1737  	if protoimpl.UnsafeEnabled && x != nil {
  1738  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1739  		if ms.LoadMessageInfo() == nil {
  1740  			ms.StoreMessageInfo(mi)
  1741  		}
  1742  		return ms
  1743  	}
  1744  	return mi.MessageOf(x)
  1745  }
  1746  
  1747  // Deprecated: Use AppBundle.ProtoReflect.Descriptor instead.
  1748  func (*AppBundle) Descriptor() ([]byte, []int) {
  1749  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{10}
  1750  }
  1751  
  1752  func (m *AppBundle) GetBundle() isAppBundle_Bundle {
  1753  	if m != nil {
  1754  		return m.Bundle
  1755  	}
  1756  	return nil
  1757  }
  1758  
  1759  func (x *AppBundle) GetBundleLocation() *FileReference {
  1760  	if x, ok := x.GetBundle().(*AppBundle_BundleLocation); ok {
  1761  		return x.BundleLocation
  1762  	}
  1763  	return nil
  1764  }
  1765  
  1766  type isAppBundle_Bundle interface {
  1767  	isAppBundle_Bundle()
  1768  }
  1769  
  1770  type AppBundle_BundleLocation struct {
  1771  	// .aab file representing the app bundle under test.
  1772  	BundleLocation *FileReference `protobuf:"bytes,1,opt,name=bundle_location,json=bundleLocation,proto3,oneof"`
  1773  }
  1774  
  1775  func (*AppBundle_BundleLocation) isAppBundle_Bundle() {}
  1776  
  1777  // A single device file description.
  1778  type DeviceFile struct {
  1779  	state         protoimpl.MessageState
  1780  	sizeCache     protoimpl.SizeCache
  1781  	unknownFields protoimpl.UnknownFields
  1782  
  1783  	// Required.
  1784  	//
  1785  	// Types that are assignable to DeviceFile:
  1786  	//
  1787  	//	*DeviceFile_ObbFile
  1788  	//	*DeviceFile_RegularFile
  1789  	DeviceFile isDeviceFile_DeviceFile `protobuf_oneof:"device_file"`
  1790  }
  1791  
  1792  func (x *DeviceFile) Reset() {
  1793  	*x = DeviceFile{}
  1794  	if protoimpl.UnsafeEnabled {
  1795  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[11]
  1796  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1797  		ms.StoreMessageInfo(mi)
  1798  	}
  1799  }
  1800  
  1801  func (x *DeviceFile) String() string {
  1802  	return protoimpl.X.MessageStringOf(x)
  1803  }
  1804  
  1805  func (*DeviceFile) ProtoMessage() {}
  1806  
  1807  func (x *DeviceFile) ProtoReflect() protoreflect.Message {
  1808  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[11]
  1809  	if protoimpl.UnsafeEnabled && x != nil {
  1810  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1811  		if ms.LoadMessageInfo() == nil {
  1812  			ms.StoreMessageInfo(mi)
  1813  		}
  1814  		return ms
  1815  	}
  1816  	return mi.MessageOf(x)
  1817  }
  1818  
  1819  // Deprecated: Use DeviceFile.ProtoReflect.Descriptor instead.
  1820  func (*DeviceFile) Descriptor() ([]byte, []int) {
  1821  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{11}
  1822  }
  1823  
  1824  func (m *DeviceFile) GetDeviceFile() isDeviceFile_DeviceFile {
  1825  	if m != nil {
  1826  		return m.DeviceFile
  1827  	}
  1828  	return nil
  1829  }
  1830  
  1831  func (x *DeviceFile) GetObbFile() *ObbFile {
  1832  	if x, ok := x.GetDeviceFile().(*DeviceFile_ObbFile); ok {
  1833  		return x.ObbFile
  1834  	}
  1835  	return nil
  1836  }
  1837  
  1838  func (x *DeviceFile) GetRegularFile() *RegularFile {
  1839  	if x, ok := x.GetDeviceFile().(*DeviceFile_RegularFile); ok {
  1840  		return x.RegularFile
  1841  	}
  1842  	return nil
  1843  }
  1844  
  1845  type isDeviceFile_DeviceFile interface {
  1846  	isDeviceFile_DeviceFile()
  1847  }
  1848  
  1849  type DeviceFile_ObbFile struct {
  1850  	// A reference to an opaque binary blob file.
  1851  	ObbFile *ObbFile `protobuf:"bytes,1,opt,name=obb_file,json=obbFile,proto3,oneof"`
  1852  }
  1853  
  1854  type DeviceFile_RegularFile struct {
  1855  	// A reference to a regular file.
  1856  	RegularFile *RegularFile `protobuf:"bytes,2,opt,name=regular_file,json=regularFile,proto3,oneof"`
  1857  }
  1858  
  1859  func (*DeviceFile_ObbFile) isDeviceFile_DeviceFile() {}
  1860  
  1861  func (*DeviceFile_RegularFile) isDeviceFile_DeviceFile() {}
  1862  
  1863  // An opaque binary blob file to install on the device before the test starts.
  1864  type ObbFile struct {
  1865  	state         protoimpl.MessageState
  1866  	sizeCache     protoimpl.SizeCache
  1867  	unknownFields protoimpl.UnknownFields
  1868  
  1869  	// Required. OBB file name which must conform to the format as specified by
  1870  	// Android
  1871  	// e.g. [main|patch].0300110.com.example.android.obb
  1872  	// which will be installed into
  1873  	//
  1874  	//	\<shared-storage\>/Android/obb/\<package-name\>/
  1875  	//
  1876  	// on the device.
  1877  	ObbFileName string `protobuf:"bytes,1,opt,name=obb_file_name,json=obbFileName,proto3" json:"obb_file_name,omitempty"`
  1878  	// Required. Opaque Binary Blob (OBB) file(s) to install on the device.
  1879  	Obb *FileReference `protobuf:"bytes,2,opt,name=obb,proto3" json:"obb,omitempty"`
  1880  }
  1881  
  1882  func (x *ObbFile) Reset() {
  1883  	*x = ObbFile{}
  1884  	if protoimpl.UnsafeEnabled {
  1885  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[12]
  1886  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1887  		ms.StoreMessageInfo(mi)
  1888  	}
  1889  }
  1890  
  1891  func (x *ObbFile) String() string {
  1892  	return protoimpl.X.MessageStringOf(x)
  1893  }
  1894  
  1895  func (*ObbFile) ProtoMessage() {}
  1896  
  1897  func (x *ObbFile) ProtoReflect() protoreflect.Message {
  1898  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[12]
  1899  	if protoimpl.UnsafeEnabled && x != nil {
  1900  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1901  		if ms.LoadMessageInfo() == nil {
  1902  			ms.StoreMessageInfo(mi)
  1903  		}
  1904  		return ms
  1905  	}
  1906  	return mi.MessageOf(x)
  1907  }
  1908  
  1909  // Deprecated: Use ObbFile.ProtoReflect.Descriptor instead.
  1910  func (*ObbFile) Descriptor() ([]byte, []int) {
  1911  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{12}
  1912  }
  1913  
  1914  func (x *ObbFile) GetObbFileName() string {
  1915  	if x != nil {
  1916  		return x.ObbFileName
  1917  	}
  1918  	return ""
  1919  }
  1920  
  1921  func (x *ObbFile) GetObb() *FileReference {
  1922  	if x != nil {
  1923  		return x.Obb
  1924  	}
  1925  	return nil
  1926  }
  1927  
  1928  // A file or directory to install on the device before the test starts.
  1929  type RegularFile struct {
  1930  	state         protoimpl.MessageState
  1931  	sizeCache     protoimpl.SizeCache
  1932  	unknownFields protoimpl.UnknownFields
  1933  
  1934  	// Required. The source file.
  1935  	Content *FileReference `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"`
  1936  	// Required. Where to put the content on the device. Must be an absolute,
  1937  	// allowlisted path. If the file exists, it will be replaced.
  1938  	// The following device-side directories and any of their subdirectories are
  1939  	// allowlisted:
  1940  	// <p>${EXTERNAL_STORAGE}, /sdcard, or /storage</p>
  1941  	// <p>${ANDROID_DATA}/local/tmp, or /data/local/tmp</p>
  1942  	// <p>Specifying a path outside of these directory trees is invalid.
  1943  	//
  1944  	// <p> The paths /sdcard and /data will be made available and treated as
  1945  	// implicit path substitutions. E.g. if /sdcard on a particular device does
  1946  	// not map to external storage, the system will replace it with the external
  1947  	// storage path prefix for that device and copy the file there.
  1948  	//
  1949  	// <p> It is strongly advised to use the <a href=
  1950  	// "http://developer.android.com/reference/android/os/Environment.html">
  1951  	// Environment API</a> in app and test code to access files on the device in a
  1952  	// portable way.
  1953  	DevicePath string `protobuf:"bytes,2,opt,name=device_path,json=devicePath,proto3" json:"device_path,omitempty"`
  1954  }
  1955  
  1956  func (x *RegularFile) Reset() {
  1957  	*x = RegularFile{}
  1958  	if protoimpl.UnsafeEnabled {
  1959  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[13]
  1960  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1961  		ms.StoreMessageInfo(mi)
  1962  	}
  1963  }
  1964  
  1965  func (x *RegularFile) String() string {
  1966  	return protoimpl.X.MessageStringOf(x)
  1967  }
  1968  
  1969  func (*RegularFile) ProtoMessage() {}
  1970  
  1971  func (x *RegularFile) ProtoReflect() protoreflect.Message {
  1972  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[13]
  1973  	if protoimpl.UnsafeEnabled && x != nil {
  1974  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1975  		if ms.LoadMessageInfo() == nil {
  1976  			ms.StoreMessageInfo(mi)
  1977  		}
  1978  		return ms
  1979  	}
  1980  	return mi.MessageOf(x)
  1981  }
  1982  
  1983  // Deprecated: Use RegularFile.ProtoReflect.Descriptor instead.
  1984  func (*RegularFile) Descriptor() ([]byte, []int) {
  1985  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{13}
  1986  }
  1987  
  1988  func (x *RegularFile) GetContent() *FileReference {
  1989  	if x != nil {
  1990  		return x.Content
  1991  	}
  1992  	return nil
  1993  }
  1994  
  1995  func (x *RegularFile) GetDevicePath() string {
  1996  	if x != nil {
  1997  		return x.DevicePath
  1998  	}
  1999  	return ""
  2000  }
  2001  
  2002  // A file or directory to install on the device before the test starts.
  2003  type IosDeviceFile struct {
  2004  	state         protoimpl.MessageState
  2005  	sizeCache     protoimpl.SizeCache
  2006  	unknownFields protoimpl.UnknownFields
  2007  
  2008  	// The source file
  2009  	Content *FileReference `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"`
  2010  	// The bundle id of the app where this file lives.
  2011  	//
  2012  	// iOS apps sandbox their own filesystem, so app files must specify which app
  2013  	// installed on the device.
  2014  	BundleId string `protobuf:"bytes,2,opt,name=bundle_id,json=bundleId,proto3" json:"bundle_id,omitempty"`
  2015  	// Location of the file on the device, inside the app's sandboxed filesystem
  2016  	DevicePath string `protobuf:"bytes,3,opt,name=device_path,json=devicePath,proto3" json:"device_path,omitempty"`
  2017  }
  2018  
  2019  func (x *IosDeviceFile) Reset() {
  2020  	*x = IosDeviceFile{}
  2021  	if protoimpl.UnsafeEnabled {
  2022  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[14]
  2023  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2024  		ms.StoreMessageInfo(mi)
  2025  	}
  2026  }
  2027  
  2028  func (x *IosDeviceFile) String() string {
  2029  	return protoimpl.X.MessageStringOf(x)
  2030  }
  2031  
  2032  func (*IosDeviceFile) ProtoMessage() {}
  2033  
  2034  func (x *IosDeviceFile) ProtoReflect() protoreflect.Message {
  2035  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[14]
  2036  	if protoimpl.UnsafeEnabled && x != nil {
  2037  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2038  		if ms.LoadMessageInfo() == nil {
  2039  			ms.StoreMessageInfo(mi)
  2040  		}
  2041  		return ms
  2042  	}
  2043  	return mi.MessageOf(x)
  2044  }
  2045  
  2046  // Deprecated: Use IosDeviceFile.ProtoReflect.Descriptor instead.
  2047  func (*IosDeviceFile) Descriptor() ([]byte, []int) {
  2048  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{14}
  2049  }
  2050  
  2051  func (x *IosDeviceFile) GetContent() *FileReference {
  2052  	if x != nil {
  2053  		return x.Content
  2054  	}
  2055  	return nil
  2056  }
  2057  
  2058  func (x *IosDeviceFile) GetBundleId() string {
  2059  	if x != nil {
  2060  		return x.BundleId
  2061  	}
  2062  	return ""
  2063  }
  2064  
  2065  func (x *IosDeviceFile) GetDevicePath() string {
  2066  	if x != nil {
  2067  		return x.DevicePath
  2068  	}
  2069  	return ""
  2070  }
  2071  
  2072  // A test of an Android Application with a Test Loop.
  2073  // The intent \<intent-name\> will be implicitly added, since Games is the only
  2074  // user of this api, for the time being.
  2075  type AndroidTestLoop struct {
  2076  	state         protoimpl.MessageState
  2077  	sizeCache     protoimpl.SizeCache
  2078  	unknownFields protoimpl.UnknownFields
  2079  
  2080  	// Required. The Android package to test.
  2081  	//
  2082  	// Types that are assignable to AppUnderTest:
  2083  	//
  2084  	//	*AndroidTestLoop_AppApk
  2085  	//	*AndroidTestLoop_AppBundle
  2086  	AppUnderTest isAndroidTestLoop_AppUnderTest `protobuf_oneof:"app_under_test"`
  2087  	// The java package for the application under test.
  2088  	// The default is determined by examining the application's manifest.
  2089  	AppPackageId string `protobuf:"bytes,2,opt,name=app_package_id,json=appPackageId,proto3" json:"app_package_id,omitempty"`
  2090  	// The list of scenarios that should be run during the test.
  2091  	// The default is all test loops, derived from the application's
  2092  	// manifest.
  2093  	Scenarios []int32 `protobuf:"varint,3,rep,packed,name=scenarios,proto3" json:"scenarios,omitempty"`
  2094  	// The list of scenario labels that should be run during the test.
  2095  	// The scenario labels should map to labels defined in the application's
  2096  	// manifest. For example, player_experience and
  2097  	// com.google.test.loops.player_experience add all of the loops labeled in the
  2098  	// manifest with the com.google.test.loops.player_experience name to the
  2099  	// execution.
  2100  	// Scenarios can also be specified in the scenarios field.
  2101  	ScenarioLabels []string `protobuf:"bytes,4,rep,name=scenario_labels,json=scenarioLabels,proto3" json:"scenario_labels,omitempty"`
  2102  }
  2103  
  2104  func (x *AndroidTestLoop) Reset() {
  2105  	*x = AndroidTestLoop{}
  2106  	if protoimpl.UnsafeEnabled {
  2107  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[15]
  2108  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2109  		ms.StoreMessageInfo(mi)
  2110  	}
  2111  }
  2112  
  2113  func (x *AndroidTestLoop) String() string {
  2114  	return protoimpl.X.MessageStringOf(x)
  2115  }
  2116  
  2117  func (*AndroidTestLoop) ProtoMessage() {}
  2118  
  2119  func (x *AndroidTestLoop) ProtoReflect() protoreflect.Message {
  2120  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[15]
  2121  	if protoimpl.UnsafeEnabled && x != nil {
  2122  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2123  		if ms.LoadMessageInfo() == nil {
  2124  			ms.StoreMessageInfo(mi)
  2125  		}
  2126  		return ms
  2127  	}
  2128  	return mi.MessageOf(x)
  2129  }
  2130  
  2131  // Deprecated: Use AndroidTestLoop.ProtoReflect.Descriptor instead.
  2132  func (*AndroidTestLoop) Descriptor() ([]byte, []int) {
  2133  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{15}
  2134  }
  2135  
  2136  func (m *AndroidTestLoop) GetAppUnderTest() isAndroidTestLoop_AppUnderTest {
  2137  	if m != nil {
  2138  		return m.AppUnderTest
  2139  	}
  2140  	return nil
  2141  }
  2142  
  2143  func (x *AndroidTestLoop) GetAppApk() *FileReference {
  2144  	if x, ok := x.GetAppUnderTest().(*AndroidTestLoop_AppApk); ok {
  2145  		return x.AppApk
  2146  	}
  2147  	return nil
  2148  }
  2149  
  2150  func (x *AndroidTestLoop) GetAppBundle() *AppBundle {
  2151  	if x, ok := x.GetAppUnderTest().(*AndroidTestLoop_AppBundle); ok {
  2152  		return x.AppBundle
  2153  	}
  2154  	return nil
  2155  }
  2156  
  2157  func (x *AndroidTestLoop) GetAppPackageId() string {
  2158  	if x != nil {
  2159  		return x.AppPackageId
  2160  	}
  2161  	return ""
  2162  }
  2163  
  2164  func (x *AndroidTestLoop) GetScenarios() []int32 {
  2165  	if x != nil {
  2166  		return x.Scenarios
  2167  	}
  2168  	return nil
  2169  }
  2170  
  2171  func (x *AndroidTestLoop) GetScenarioLabels() []string {
  2172  	if x != nil {
  2173  		return x.ScenarioLabels
  2174  	}
  2175  	return nil
  2176  }
  2177  
  2178  type isAndroidTestLoop_AppUnderTest interface {
  2179  	isAndroidTestLoop_AppUnderTest()
  2180  }
  2181  
  2182  type AndroidTestLoop_AppApk struct {
  2183  	// The APK for the application under test.
  2184  	AppApk *FileReference `protobuf:"bytes,1,opt,name=app_apk,json=appApk,proto3,oneof"`
  2185  }
  2186  
  2187  type AndroidTestLoop_AppBundle struct {
  2188  	// A multi-apk app bundle for the application under test.
  2189  	AppBundle *AppBundle `protobuf:"bytes,5,opt,name=app_bundle,json=appBundle,proto3,oneof"`
  2190  }
  2191  
  2192  func (*AndroidTestLoop_AppApk) isAndroidTestLoop_AppUnderTest() {}
  2193  
  2194  func (*AndroidTestLoop_AppBundle) isAndroidTestLoop_AppUnderTest() {}
  2195  
  2196  // A test of an iOS application that uses the XCTest framework.
  2197  // Xcode supports the option to "build for testing", which generates an
  2198  // .xctestrun file that contains a test specification (arguments, test methods,
  2199  // etc). This test type accepts a zip file containing the .xctestrun file and
  2200  // the corresponding contents of the Build/Products directory that contains all
  2201  // the binaries needed to run the tests.
  2202  type IosXcTest struct {
  2203  	state         protoimpl.MessageState
  2204  	sizeCache     protoimpl.SizeCache
  2205  	unknownFields protoimpl.UnknownFields
  2206  
  2207  	// Required. The .zip containing the .xctestrun file and the contents of the
  2208  	// DerivedData/Build/Products directory.
  2209  	// The .xctestrun file in this zip is ignored if the xctestrun field is
  2210  	// specified.
  2211  	TestsZip *FileReference `protobuf:"bytes,1,opt,name=tests_zip,json=testsZip,proto3" json:"tests_zip,omitempty"`
  2212  	// An .xctestrun file that will override the .xctestrun file in the
  2213  	// tests zip. Because the .xctestrun file contains environment variables along
  2214  	// with test methods to run and/or ignore, this can be useful for sharding
  2215  	// tests. Default is taken from the tests zip.
  2216  	Xctestrun *FileReference `protobuf:"bytes,2,opt,name=xctestrun,proto3" json:"xctestrun,omitempty"`
  2217  	// The Xcode version that should be used for the test.
  2218  	// Use the TestEnvironmentDiscoveryService to get supported options.
  2219  	// Defaults to the latest Xcode version Firebase Test Lab supports.
  2220  	XcodeVersion string `protobuf:"bytes,3,opt,name=xcode_version,json=xcodeVersion,proto3" json:"xcode_version,omitempty"`
  2221  	// Output only. The bundle id for the application under test.
  2222  	AppBundleId string `protobuf:"bytes,4,opt,name=app_bundle_id,json=appBundleId,proto3" json:"app_bundle_id,omitempty"`
  2223  	// The option to test special app entitlements. Setting this would re-sign the
  2224  	// app having special entitlements with an explicit application-identifier.
  2225  	// Currently supports testing aps-environment entitlement.
  2226  	TestSpecialEntitlements bool `protobuf:"varint,6,opt,name=test_special_entitlements,json=testSpecialEntitlements,proto3" json:"test_special_entitlements,omitempty"`
  2227  }
  2228  
  2229  func (x *IosXcTest) Reset() {
  2230  	*x = IosXcTest{}
  2231  	if protoimpl.UnsafeEnabled {
  2232  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[16]
  2233  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2234  		ms.StoreMessageInfo(mi)
  2235  	}
  2236  }
  2237  
  2238  func (x *IosXcTest) String() string {
  2239  	return protoimpl.X.MessageStringOf(x)
  2240  }
  2241  
  2242  func (*IosXcTest) ProtoMessage() {}
  2243  
  2244  func (x *IosXcTest) ProtoReflect() protoreflect.Message {
  2245  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[16]
  2246  	if protoimpl.UnsafeEnabled && x != nil {
  2247  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2248  		if ms.LoadMessageInfo() == nil {
  2249  			ms.StoreMessageInfo(mi)
  2250  		}
  2251  		return ms
  2252  	}
  2253  	return mi.MessageOf(x)
  2254  }
  2255  
  2256  // Deprecated: Use IosXcTest.ProtoReflect.Descriptor instead.
  2257  func (*IosXcTest) Descriptor() ([]byte, []int) {
  2258  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{16}
  2259  }
  2260  
  2261  func (x *IosXcTest) GetTestsZip() *FileReference {
  2262  	if x != nil {
  2263  		return x.TestsZip
  2264  	}
  2265  	return nil
  2266  }
  2267  
  2268  func (x *IosXcTest) GetXctestrun() *FileReference {
  2269  	if x != nil {
  2270  		return x.Xctestrun
  2271  	}
  2272  	return nil
  2273  }
  2274  
  2275  func (x *IosXcTest) GetXcodeVersion() string {
  2276  	if x != nil {
  2277  		return x.XcodeVersion
  2278  	}
  2279  	return ""
  2280  }
  2281  
  2282  func (x *IosXcTest) GetAppBundleId() string {
  2283  	if x != nil {
  2284  		return x.AppBundleId
  2285  	}
  2286  	return ""
  2287  }
  2288  
  2289  func (x *IosXcTest) GetTestSpecialEntitlements() bool {
  2290  	if x != nil {
  2291  		return x.TestSpecialEntitlements
  2292  	}
  2293  	return false
  2294  }
  2295  
  2296  // A test of an iOS application that implements one or more game loop scenarios.
  2297  // This test type accepts an archived application (.ipa file) and a list of
  2298  // integer scenarios that will be executed on the app sequentially.
  2299  type IosTestLoop struct {
  2300  	state         protoimpl.MessageState
  2301  	sizeCache     protoimpl.SizeCache
  2302  	unknownFields protoimpl.UnknownFields
  2303  
  2304  	// Required. The .ipa of the application to test.
  2305  	AppIpa *FileReference `protobuf:"bytes,1,opt,name=app_ipa,json=appIpa,proto3" json:"app_ipa,omitempty"`
  2306  	// The list of scenarios that should be run during the test. Defaults to the
  2307  	// single scenario 0 if unspecified.
  2308  	Scenarios []int32 `protobuf:"varint,2,rep,packed,name=scenarios,proto3" json:"scenarios,omitempty"`
  2309  	// Output only. The bundle id for the application under test.
  2310  	AppBundleId string `protobuf:"bytes,3,opt,name=app_bundle_id,json=appBundleId,proto3" json:"app_bundle_id,omitempty"`
  2311  }
  2312  
  2313  func (x *IosTestLoop) Reset() {
  2314  	*x = IosTestLoop{}
  2315  	if protoimpl.UnsafeEnabled {
  2316  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[17]
  2317  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2318  		ms.StoreMessageInfo(mi)
  2319  	}
  2320  }
  2321  
  2322  func (x *IosTestLoop) String() string {
  2323  	return protoimpl.X.MessageStringOf(x)
  2324  }
  2325  
  2326  func (*IosTestLoop) ProtoMessage() {}
  2327  
  2328  func (x *IosTestLoop) ProtoReflect() protoreflect.Message {
  2329  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[17]
  2330  	if protoimpl.UnsafeEnabled && x != nil {
  2331  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2332  		if ms.LoadMessageInfo() == nil {
  2333  			ms.StoreMessageInfo(mi)
  2334  		}
  2335  		return ms
  2336  	}
  2337  	return mi.MessageOf(x)
  2338  }
  2339  
  2340  // Deprecated: Use IosTestLoop.ProtoReflect.Descriptor instead.
  2341  func (*IosTestLoop) Descriptor() ([]byte, []int) {
  2342  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{17}
  2343  }
  2344  
  2345  func (x *IosTestLoop) GetAppIpa() *FileReference {
  2346  	if x != nil {
  2347  		return x.AppIpa
  2348  	}
  2349  	return nil
  2350  }
  2351  
  2352  func (x *IosTestLoop) GetScenarios() []int32 {
  2353  	if x != nil {
  2354  		return x.Scenarios
  2355  	}
  2356  	return nil
  2357  }
  2358  
  2359  func (x *IosTestLoop) GetAppBundleId() string {
  2360  	if x != nil {
  2361  		return x.AppBundleId
  2362  	}
  2363  	return ""
  2364  }
  2365  
  2366  // A test of an Android application that can control an Android component
  2367  // independently of its normal lifecycle.
  2368  // Android instrumentation tests run an application APK and test APK inside the
  2369  // same process on a virtual or physical AndroidDevice.  They also specify
  2370  // a test runner class, such as com.google.GoogleTestRunner, which can vary
  2371  // on the specific instrumentation framework chosen.
  2372  //
  2373  // See <https://developer.android.com/training/testing/fundamentals> for
  2374  // more information on types of Android tests.
  2375  type AndroidInstrumentationTest struct {
  2376  	state         protoimpl.MessageState
  2377  	sizeCache     protoimpl.SizeCache
  2378  	unknownFields protoimpl.UnknownFields
  2379  
  2380  	// Required.
  2381  	//
  2382  	// Types that are assignable to AppUnderTest:
  2383  	//
  2384  	//	*AndroidInstrumentationTest_AppApk
  2385  	//	*AndroidInstrumentationTest_AppBundle
  2386  	AppUnderTest isAndroidInstrumentationTest_AppUnderTest `protobuf_oneof:"app_under_test"`
  2387  	// Required. The APK containing the test code to be executed.
  2388  	TestApk *FileReference `protobuf:"bytes,2,opt,name=test_apk,json=testApk,proto3" json:"test_apk,omitempty"`
  2389  	// The java package for the application under test.
  2390  	// The default value is determined by examining the application's manifest.
  2391  	AppPackageId string `protobuf:"bytes,3,opt,name=app_package_id,json=appPackageId,proto3" json:"app_package_id,omitempty"`
  2392  	// The java package for the test to be executed.
  2393  	// The default value is determined by examining the application's manifest.
  2394  	TestPackageId string `protobuf:"bytes,4,opt,name=test_package_id,json=testPackageId,proto3" json:"test_package_id,omitempty"`
  2395  	// The InstrumentationTestRunner class.
  2396  	// The default value is determined by examining the application's manifest.
  2397  	TestRunnerClass string `protobuf:"bytes,5,opt,name=test_runner_class,json=testRunnerClass,proto3" json:"test_runner_class,omitempty"`
  2398  	// Each target must be fully qualified with the package name or class name,
  2399  	// in one of these formats:
  2400  	//   - "package package_name"
  2401  	//   - "class package_name.class_name"
  2402  	//   - "class package_name.class_name#method_name"
  2403  	//
  2404  	// If empty, all targets in the module will be run.
  2405  	TestTargets []string `protobuf:"bytes,6,rep,name=test_targets,json=testTargets,proto3" json:"test_targets,omitempty"`
  2406  	// The option of whether running each test within its own invocation of
  2407  	// instrumentation with Android Test Orchestrator or not.
  2408  	// ** Orchestrator is only compatible with AndroidJUnitRunner version 1.1 or
  2409  	// higher! **
  2410  	// Orchestrator offers the following benefits:
  2411  	//   - No shared state
  2412  	//   - Crashes are isolated
  2413  	//   - Logs are scoped per test
  2414  	//
  2415  	// See
  2416  	// <https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator>
  2417  	// for more information about Android Test Orchestrator.
  2418  	//
  2419  	// If not set, the test will be run without the orchestrator.
  2420  	OrchestratorOption OrchestratorOption `protobuf:"varint,7,opt,name=orchestrator_option,json=orchestratorOption,proto3,enum=google.devtools.testing.v1.OrchestratorOption" json:"orchestrator_option,omitempty"`
  2421  	// The option to run tests in multiple shards in parallel.
  2422  	ShardingOption *ShardingOption `protobuf:"bytes,9,opt,name=sharding_option,json=shardingOption,proto3" json:"sharding_option,omitempty"`
  2423  }
  2424  
  2425  func (x *AndroidInstrumentationTest) Reset() {
  2426  	*x = AndroidInstrumentationTest{}
  2427  	if protoimpl.UnsafeEnabled {
  2428  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[18]
  2429  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2430  		ms.StoreMessageInfo(mi)
  2431  	}
  2432  }
  2433  
  2434  func (x *AndroidInstrumentationTest) String() string {
  2435  	return protoimpl.X.MessageStringOf(x)
  2436  }
  2437  
  2438  func (*AndroidInstrumentationTest) ProtoMessage() {}
  2439  
  2440  func (x *AndroidInstrumentationTest) ProtoReflect() protoreflect.Message {
  2441  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[18]
  2442  	if protoimpl.UnsafeEnabled && x != nil {
  2443  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2444  		if ms.LoadMessageInfo() == nil {
  2445  			ms.StoreMessageInfo(mi)
  2446  		}
  2447  		return ms
  2448  	}
  2449  	return mi.MessageOf(x)
  2450  }
  2451  
  2452  // Deprecated: Use AndroidInstrumentationTest.ProtoReflect.Descriptor instead.
  2453  func (*AndroidInstrumentationTest) Descriptor() ([]byte, []int) {
  2454  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{18}
  2455  }
  2456  
  2457  func (m *AndroidInstrumentationTest) GetAppUnderTest() isAndroidInstrumentationTest_AppUnderTest {
  2458  	if m != nil {
  2459  		return m.AppUnderTest
  2460  	}
  2461  	return nil
  2462  }
  2463  
  2464  func (x *AndroidInstrumentationTest) GetAppApk() *FileReference {
  2465  	if x, ok := x.GetAppUnderTest().(*AndroidInstrumentationTest_AppApk); ok {
  2466  		return x.AppApk
  2467  	}
  2468  	return nil
  2469  }
  2470  
  2471  func (x *AndroidInstrumentationTest) GetAppBundle() *AppBundle {
  2472  	if x, ok := x.GetAppUnderTest().(*AndroidInstrumentationTest_AppBundle); ok {
  2473  		return x.AppBundle
  2474  	}
  2475  	return nil
  2476  }
  2477  
  2478  func (x *AndroidInstrumentationTest) GetTestApk() *FileReference {
  2479  	if x != nil {
  2480  		return x.TestApk
  2481  	}
  2482  	return nil
  2483  }
  2484  
  2485  func (x *AndroidInstrumentationTest) GetAppPackageId() string {
  2486  	if x != nil {
  2487  		return x.AppPackageId
  2488  	}
  2489  	return ""
  2490  }
  2491  
  2492  func (x *AndroidInstrumentationTest) GetTestPackageId() string {
  2493  	if x != nil {
  2494  		return x.TestPackageId
  2495  	}
  2496  	return ""
  2497  }
  2498  
  2499  func (x *AndroidInstrumentationTest) GetTestRunnerClass() string {
  2500  	if x != nil {
  2501  		return x.TestRunnerClass
  2502  	}
  2503  	return ""
  2504  }
  2505  
  2506  func (x *AndroidInstrumentationTest) GetTestTargets() []string {
  2507  	if x != nil {
  2508  		return x.TestTargets
  2509  	}
  2510  	return nil
  2511  }
  2512  
  2513  func (x *AndroidInstrumentationTest) GetOrchestratorOption() OrchestratorOption {
  2514  	if x != nil {
  2515  		return x.OrchestratorOption
  2516  	}
  2517  	return OrchestratorOption_ORCHESTRATOR_OPTION_UNSPECIFIED
  2518  }
  2519  
  2520  func (x *AndroidInstrumentationTest) GetShardingOption() *ShardingOption {
  2521  	if x != nil {
  2522  		return x.ShardingOption
  2523  	}
  2524  	return nil
  2525  }
  2526  
  2527  type isAndroidInstrumentationTest_AppUnderTest interface {
  2528  	isAndroidInstrumentationTest_AppUnderTest()
  2529  }
  2530  
  2531  type AndroidInstrumentationTest_AppApk struct {
  2532  	// The APK for the application under test.
  2533  	AppApk *FileReference `protobuf:"bytes,1,opt,name=app_apk,json=appApk,proto3,oneof"`
  2534  }
  2535  
  2536  type AndroidInstrumentationTest_AppBundle struct {
  2537  	// A multi-apk app bundle for the application under test.
  2538  	AppBundle *AppBundle `protobuf:"bytes,8,opt,name=app_bundle,json=appBundle,proto3,oneof"`
  2539  }
  2540  
  2541  func (*AndroidInstrumentationTest_AppApk) isAndroidInstrumentationTest_AppUnderTest() {}
  2542  
  2543  func (*AndroidInstrumentationTest_AppBundle) isAndroidInstrumentationTest_AppUnderTest() {}
  2544  
  2545  // A test of an android application that explores the application on a virtual
  2546  // or physical Android Device, finding culprits and crashes as it goes.
  2547  type AndroidRoboTest struct {
  2548  	state         protoimpl.MessageState
  2549  	sizeCache     protoimpl.SizeCache
  2550  	unknownFields protoimpl.UnknownFields
  2551  
  2552  	// Required.
  2553  	//
  2554  	// Types that are assignable to AppUnderTest:
  2555  	//
  2556  	//	*AndroidRoboTest_AppApk
  2557  	//	*AndroidRoboTest_AppBundle
  2558  	AppUnderTest isAndroidRoboTest_AppUnderTest `protobuf_oneof:"app_under_test"`
  2559  	// The java package for the application under test.
  2560  	// The default value is determined by examining the application's manifest.
  2561  	AppPackageId string `protobuf:"bytes,2,opt,name=app_package_id,json=appPackageId,proto3" json:"app_package_id,omitempty"`
  2562  	// The initial activity that should be used to start the app.
  2563  	AppInitialActivity string `protobuf:"bytes,3,opt,name=app_initial_activity,json=appInitialActivity,proto3" json:"app_initial_activity,omitempty"`
  2564  	// The max depth of the traversal stack Robo can explore. Needs to be at least
  2565  	// 2 to make Robo explore the app beyond the first activity.
  2566  	// Default is 50.
  2567  	//
  2568  	// Deprecated: Do not use.
  2569  	MaxDepth int32 `protobuf:"varint,7,opt,name=max_depth,json=maxDepth,proto3" json:"max_depth,omitempty"`
  2570  	// The max number of steps Robo can execute.
  2571  	// Default is no limit.
  2572  	//
  2573  	// Deprecated: Do not use.
  2574  	MaxSteps int32 `protobuf:"varint,8,opt,name=max_steps,json=maxSteps,proto3" json:"max_steps,omitempty"`
  2575  	// A set of directives Robo should apply during the crawl.
  2576  	// This allows users to customize the crawl. For example, the username and
  2577  	// password for a test account can be provided.
  2578  	RoboDirectives []*RoboDirective `protobuf:"bytes,11,rep,name=robo_directives,json=roboDirectives,proto3" json:"robo_directives,omitempty"`
  2579  	// The mode in which Robo should run. Most clients should allow the server to
  2580  	// populate this field automatically.
  2581  	RoboMode RoboMode `protobuf:"varint,14,opt,name=robo_mode,json=roboMode,proto3,enum=google.devtools.testing.v1.RoboMode" json:"robo_mode,omitempty"`
  2582  	// A JSON file with a sequence of actions Robo should perform as a prologue
  2583  	// for the crawl.
  2584  	RoboScript *FileReference `protobuf:"bytes,13,opt,name=robo_script,json=roboScript,proto3" json:"robo_script,omitempty"`
  2585  	// The intents used to launch the app for the crawl.
  2586  	// If none are provided, then the main launcher activity is launched.
  2587  	// If some are provided, then only those provided are launched (the main
  2588  	// launcher activity must be provided explicitly).
  2589  	StartingIntents []*RoboStartingIntent `protobuf:"bytes,15,rep,name=starting_intents,json=startingIntents,proto3" json:"starting_intents,omitempty"`
  2590  }
  2591  
  2592  func (x *AndroidRoboTest) Reset() {
  2593  	*x = AndroidRoboTest{}
  2594  	if protoimpl.UnsafeEnabled {
  2595  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[19]
  2596  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2597  		ms.StoreMessageInfo(mi)
  2598  	}
  2599  }
  2600  
  2601  func (x *AndroidRoboTest) String() string {
  2602  	return protoimpl.X.MessageStringOf(x)
  2603  }
  2604  
  2605  func (*AndroidRoboTest) ProtoMessage() {}
  2606  
  2607  func (x *AndroidRoboTest) ProtoReflect() protoreflect.Message {
  2608  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[19]
  2609  	if protoimpl.UnsafeEnabled && x != nil {
  2610  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2611  		if ms.LoadMessageInfo() == nil {
  2612  			ms.StoreMessageInfo(mi)
  2613  		}
  2614  		return ms
  2615  	}
  2616  	return mi.MessageOf(x)
  2617  }
  2618  
  2619  // Deprecated: Use AndroidRoboTest.ProtoReflect.Descriptor instead.
  2620  func (*AndroidRoboTest) Descriptor() ([]byte, []int) {
  2621  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{19}
  2622  }
  2623  
  2624  func (m *AndroidRoboTest) GetAppUnderTest() isAndroidRoboTest_AppUnderTest {
  2625  	if m != nil {
  2626  		return m.AppUnderTest
  2627  	}
  2628  	return nil
  2629  }
  2630  
  2631  func (x *AndroidRoboTest) GetAppApk() *FileReference {
  2632  	if x, ok := x.GetAppUnderTest().(*AndroidRoboTest_AppApk); ok {
  2633  		return x.AppApk
  2634  	}
  2635  	return nil
  2636  }
  2637  
  2638  func (x *AndroidRoboTest) GetAppBundle() *AppBundle {
  2639  	if x, ok := x.GetAppUnderTest().(*AndroidRoboTest_AppBundle); ok {
  2640  		return x.AppBundle
  2641  	}
  2642  	return nil
  2643  }
  2644  
  2645  func (x *AndroidRoboTest) GetAppPackageId() string {
  2646  	if x != nil {
  2647  		return x.AppPackageId
  2648  	}
  2649  	return ""
  2650  }
  2651  
  2652  func (x *AndroidRoboTest) GetAppInitialActivity() string {
  2653  	if x != nil {
  2654  		return x.AppInitialActivity
  2655  	}
  2656  	return ""
  2657  }
  2658  
  2659  // Deprecated: Do not use.
  2660  func (x *AndroidRoboTest) GetMaxDepth() int32 {
  2661  	if x != nil {
  2662  		return x.MaxDepth
  2663  	}
  2664  	return 0
  2665  }
  2666  
  2667  // Deprecated: Do not use.
  2668  func (x *AndroidRoboTest) GetMaxSteps() int32 {
  2669  	if x != nil {
  2670  		return x.MaxSteps
  2671  	}
  2672  	return 0
  2673  }
  2674  
  2675  func (x *AndroidRoboTest) GetRoboDirectives() []*RoboDirective {
  2676  	if x != nil {
  2677  		return x.RoboDirectives
  2678  	}
  2679  	return nil
  2680  }
  2681  
  2682  func (x *AndroidRoboTest) GetRoboMode() RoboMode {
  2683  	if x != nil {
  2684  		return x.RoboMode
  2685  	}
  2686  	return RoboMode_ROBO_MODE_UNSPECIFIED
  2687  }
  2688  
  2689  func (x *AndroidRoboTest) GetRoboScript() *FileReference {
  2690  	if x != nil {
  2691  		return x.RoboScript
  2692  	}
  2693  	return nil
  2694  }
  2695  
  2696  func (x *AndroidRoboTest) GetStartingIntents() []*RoboStartingIntent {
  2697  	if x != nil {
  2698  		return x.StartingIntents
  2699  	}
  2700  	return nil
  2701  }
  2702  
  2703  type isAndroidRoboTest_AppUnderTest interface {
  2704  	isAndroidRoboTest_AppUnderTest()
  2705  }
  2706  
  2707  type AndroidRoboTest_AppApk struct {
  2708  	// The APK for the application under test.
  2709  	AppApk *FileReference `protobuf:"bytes,1,opt,name=app_apk,json=appApk,proto3,oneof"`
  2710  }
  2711  
  2712  type AndroidRoboTest_AppBundle struct {
  2713  	// A multi-apk app bundle for the application under test.
  2714  	AppBundle *AppBundle `protobuf:"bytes,16,opt,name=app_bundle,json=appBundle,proto3,oneof"`
  2715  }
  2716  
  2717  func (*AndroidRoboTest_AppApk) isAndroidRoboTest_AppUnderTest() {}
  2718  
  2719  func (*AndroidRoboTest_AppBundle) isAndroidRoboTest_AppUnderTest() {}
  2720  
  2721  // Directs Robo to interact with a specific UI element if it is encountered
  2722  // during the crawl. Currently, Robo can perform text entry or element click.
  2723  type RoboDirective struct {
  2724  	state         protoimpl.MessageState
  2725  	sizeCache     protoimpl.SizeCache
  2726  	unknownFields protoimpl.UnknownFields
  2727  
  2728  	// Required. The android resource name of the target UI element.
  2729  	// For example,
  2730  	//
  2731  	//	in Java: R.string.foo
  2732  	//	in xml: @string/foo
  2733  	//
  2734  	// Only the "foo" part is needed.
  2735  	// Reference doc:
  2736  	// https://developer.android.com/guide/topics/resources/accessing-resources.html
  2737  	ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"`
  2738  	// The text that Robo is directed to set. If left empty, the directive will be
  2739  	// treated as a CLICK on the element matching the resource_name.
  2740  	InputText string `protobuf:"bytes,2,opt,name=input_text,json=inputText,proto3" json:"input_text,omitempty"`
  2741  	// Required. The type of action that Robo should perform on the specified
  2742  	// element.
  2743  	ActionType RoboActionType `protobuf:"varint,3,opt,name=action_type,json=actionType,proto3,enum=google.devtools.testing.v1.RoboActionType" json:"action_type,omitempty"`
  2744  }
  2745  
  2746  func (x *RoboDirective) Reset() {
  2747  	*x = RoboDirective{}
  2748  	if protoimpl.UnsafeEnabled {
  2749  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[20]
  2750  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2751  		ms.StoreMessageInfo(mi)
  2752  	}
  2753  }
  2754  
  2755  func (x *RoboDirective) String() string {
  2756  	return protoimpl.X.MessageStringOf(x)
  2757  }
  2758  
  2759  func (*RoboDirective) ProtoMessage() {}
  2760  
  2761  func (x *RoboDirective) ProtoReflect() protoreflect.Message {
  2762  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[20]
  2763  	if protoimpl.UnsafeEnabled && x != nil {
  2764  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2765  		if ms.LoadMessageInfo() == nil {
  2766  			ms.StoreMessageInfo(mi)
  2767  		}
  2768  		return ms
  2769  	}
  2770  	return mi.MessageOf(x)
  2771  }
  2772  
  2773  // Deprecated: Use RoboDirective.ProtoReflect.Descriptor instead.
  2774  func (*RoboDirective) Descriptor() ([]byte, []int) {
  2775  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{20}
  2776  }
  2777  
  2778  func (x *RoboDirective) GetResourceName() string {
  2779  	if x != nil {
  2780  		return x.ResourceName
  2781  	}
  2782  	return ""
  2783  }
  2784  
  2785  func (x *RoboDirective) GetInputText() string {
  2786  	if x != nil {
  2787  		return x.InputText
  2788  	}
  2789  	return ""
  2790  }
  2791  
  2792  func (x *RoboDirective) GetActionType() RoboActionType {
  2793  	if x != nil {
  2794  		return x.ActionType
  2795  	}
  2796  	return RoboActionType_ACTION_TYPE_UNSPECIFIED
  2797  }
  2798  
  2799  // Message for specifying the start activities to crawl.
  2800  type RoboStartingIntent struct {
  2801  	state         protoimpl.MessageState
  2802  	sizeCache     protoimpl.SizeCache
  2803  	unknownFields protoimpl.UnknownFields
  2804  
  2805  	// Required. Intent details to start an activity.
  2806  	//
  2807  	// Types that are assignable to StartingIntent:
  2808  	//
  2809  	//	*RoboStartingIntent_LauncherActivity
  2810  	//	*RoboStartingIntent_StartActivity
  2811  	StartingIntent isRoboStartingIntent_StartingIntent `protobuf_oneof:"starting_intent"`
  2812  	// Timeout in seconds for each intent.
  2813  	Timeout *durationpb.Duration `protobuf:"bytes,3,opt,name=timeout,proto3" json:"timeout,omitempty"`
  2814  }
  2815  
  2816  func (x *RoboStartingIntent) Reset() {
  2817  	*x = RoboStartingIntent{}
  2818  	if protoimpl.UnsafeEnabled {
  2819  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[21]
  2820  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2821  		ms.StoreMessageInfo(mi)
  2822  	}
  2823  }
  2824  
  2825  func (x *RoboStartingIntent) String() string {
  2826  	return protoimpl.X.MessageStringOf(x)
  2827  }
  2828  
  2829  func (*RoboStartingIntent) ProtoMessage() {}
  2830  
  2831  func (x *RoboStartingIntent) ProtoReflect() protoreflect.Message {
  2832  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[21]
  2833  	if protoimpl.UnsafeEnabled && x != nil {
  2834  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2835  		if ms.LoadMessageInfo() == nil {
  2836  			ms.StoreMessageInfo(mi)
  2837  		}
  2838  		return ms
  2839  	}
  2840  	return mi.MessageOf(x)
  2841  }
  2842  
  2843  // Deprecated: Use RoboStartingIntent.ProtoReflect.Descriptor instead.
  2844  func (*RoboStartingIntent) Descriptor() ([]byte, []int) {
  2845  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{21}
  2846  }
  2847  
  2848  func (m *RoboStartingIntent) GetStartingIntent() isRoboStartingIntent_StartingIntent {
  2849  	if m != nil {
  2850  		return m.StartingIntent
  2851  	}
  2852  	return nil
  2853  }
  2854  
  2855  func (x *RoboStartingIntent) GetLauncherActivity() *LauncherActivityIntent {
  2856  	if x, ok := x.GetStartingIntent().(*RoboStartingIntent_LauncherActivity); ok {
  2857  		return x.LauncherActivity
  2858  	}
  2859  	return nil
  2860  }
  2861  
  2862  func (x *RoboStartingIntent) GetStartActivity() *StartActivityIntent {
  2863  	if x, ok := x.GetStartingIntent().(*RoboStartingIntent_StartActivity); ok {
  2864  		return x.StartActivity
  2865  	}
  2866  	return nil
  2867  }
  2868  
  2869  func (x *RoboStartingIntent) GetTimeout() *durationpb.Duration {
  2870  	if x != nil {
  2871  		return x.Timeout
  2872  	}
  2873  	return nil
  2874  }
  2875  
  2876  type isRoboStartingIntent_StartingIntent interface {
  2877  	isRoboStartingIntent_StartingIntent()
  2878  }
  2879  
  2880  type RoboStartingIntent_LauncherActivity struct {
  2881  	// An intent that starts the main launcher activity.
  2882  	LauncherActivity *LauncherActivityIntent `protobuf:"bytes,1,opt,name=launcher_activity,json=launcherActivity,proto3,oneof"`
  2883  }
  2884  
  2885  type RoboStartingIntent_StartActivity struct {
  2886  	// An intent that starts an activity with specific details.
  2887  	StartActivity *StartActivityIntent `protobuf:"bytes,2,opt,name=start_activity,json=startActivity,proto3,oneof"`
  2888  }
  2889  
  2890  func (*RoboStartingIntent_LauncherActivity) isRoboStartingIntent_StartingIntent() {}
  2891  
  2892  func (*RoboStartingIntent_StartActivity) isRoboStartingIntent_StartingIntent() {}
  2893  
  2894  // Specifies an intent that starts the main launcher activity.
  2895  type LauncherActivityIntent struct {
  2896  	state         protoimpl.MessageState
  2897  	sizeCache     protoimpl.SizeCache
  2898  	unknownFields protoimpl.UnknownFields
  2899  }
  2900  
  2901  func (x *LauncherActivityIntent) Reset() {
  2902  	*x = LauncherActivityIntent{}
  2903  	if protoimpl.UnsafeEnabled {
  2904  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[22]
  2905  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2906  		ms.StoreMessageInfo(mi)
  2907  	}
  2908  }
  2909  
  2910  func (x *LauncherActivityIntent) String() string {
  2911  	return protoimpl.X.MessageStringOf(x)
  2912  }
  2913  
  2914  func (*LauncherActivityIntent) ProtoMessage() {}
  2915  
  2916  func (x *LauncherActivityIntent) ProtoReflect() protoreflect.Message {
  2917  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[22]
  2918  	if protoimpl.UnsafeEnabled && x != nil {
  2919  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2920  		if ms.LoadMessageInfo() == nil {
  2921  			ms.StoreMessageInfo(mi)
  2922  		}
  2923  		return ms
  2924  	}
  2925  	return mi.MessageOf(x)
  2926  }
  2927  
  2928  // Deprecated: Use LauncherActivityIntent.ProtoReflect.Descriptor instead.
  2929  func (*LauncherActivityIntent) Descriptor() ([]byte, []int) {
  2930  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{22}
  2931  }
  2932  
  2933  // A starting intent specified by an action, uri, and categories.
  2934  type StartActivityIntent struct {
  2935  	state         protoimpl.MessageState
  2936  	sizeCache     protoimpl.SizeCache
  2937  	unknownFields protoimpl.UnknownFields
  2938  
  2939  	// Action name.
  2940  	// Required for START_ACTIVITY.
  2941  	Action string `protobuf:"bytes,2,opt,name=action,proto3" json:"action,omitempty"`
  2942  	// URI for the action.
  2943  	Uri string `protobuf:"bytes,3,opt,name=uri,proto3" json:"uri,omitempty"`
  2944  	// Intent categories to set on the intent.
  2945  	Categories []string `protobuf:"bytes,4,rep,name=categories,proto3" json:"categories,omitempty"`
  2946  }
  2947  
  2948  func (x *StartActivityIntent) Reset() {
  2949  	*x = StartActivityIntent{}
  2950  	if protoimpl.UnsafeEnabled {
  2951  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[23]
  2952  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2953  		ms.StoreMessageInfo(mi)
  2954  	}
  2955  }
  2956  
  2957  func (x *StartActivityIntent) String() string {
  2958  	return protoimpl.X.MessageStringOf(x)
  2959  }
  2960  
  2961  func (*StartActivityIntent) ProtoMessage() {}
  2962  
  2963  func (x *StartActivityIntent) ProtoReflect() protoreflect.Message {
  2964  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[23]
  2965  	if protoimpl.UnsafeEnabled && x != nil {
  2966  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2967  		if ms.LoadMessageInfo() == nil {
  2968  			ms.StoreMessageInfo(mi)
  2969  		}
  2970  		return ms
  2971  	}
  2972  	return mi.MessageOf(x)
  2973  }
  2974  
  2975  // Deprecated: Use StartActivityIntent.ProtoReflect.Descriptor instead.
  2976  func (*StartActivityIntent) Descriptor() ([]byte, []int) {
  2977  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{23}
  2978  }
  2979  
  2980  func (x *StartActivityIntent) GetAction() string {
  2981  	if x != nil {
  2982  		return x.Action
  2983  	}
  2984  	return ""
  2985  }
  2986  
  2987  func (x *StartActivityIntent) GetUri() string {
  2988  	if x != nil {
  2989  		return x.Uri
  2990  	}
  2991  	return ""
  2992  }
  2993  
  2994  func (x *StartActivityIntent) GetCategories() []string {
  2995  	if x != nil {
  2996  		return x.Categories
  2997  	}
  2998  	return nil
  2999  }
  3000  
  3001  // The matrix of environments in which the test is to be executed.
  3002  type EnvironmentMatrix struct {
  3003  	state         protoimpl.MessageState
  3004  	sizeCache     protoimpl.SizeCache
  3005  	unknownFields protoimpl.UnknownFields
  3006  
  3007  	// Required. The environment matrix.
  3008  	//
  3009  	// Types that are assignable to EnvironmentMatrix:
  3010  	//
  3011  	//	*EnvironmentMatrix_AndroidMatrix
  3012  	//	*EnvironmentMatrix_AndroidDeviceList
  3013  	//	*EnvironmentMatrix_IosDeviceList
  3014  	EnvironmentMatrix isEnvironmentMatrix_EnvironmentMatrix `protobuf_oneof:"environment_matrix"`
  3015  }
  3016  
  3017  func (x *EnvironmentMatrix) Reset() {
  3018  	*x = EnvironmentMatrix{}
  3019  	if protoimpl.UnsafeEnabled {
  3020  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[24]
  3021  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3022  		ms.StoreMessageInfo(mi)
  3023  	}
  3024  }
  3025  
  3026  func (x *EnvironmentMatrix) String() string {
  3027  	return protoimpl.X.MessageStringOf(x)
  3028  }
  3029  
  3030  func (*EnvironmentMatrix) ProtoMessage() {}
  3031  
  3032  func (x *EnvironmentMatrix) ProtoReflect() protoreflect.Message {
  3033  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[24]
  3034  	if protoimpl.UnsafeEnabled && x != nil {
  3035  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3036  		if ms.LoadMessageInfo() == nil {
  3037  			ms.StoreMessageInfo(mi)
  3038  		}
  3039  		return ms
  3040  	}
  3041  	return mi.MessageOf(x)
  3042  }
  3043  
  3044  // Deprecated: Use EnvironmentMatrix.ProtoReflect.Descriptor instead.
  3045  func (*EnvironmentMatrix) Descriptor() ([]byte, []int) {
  3046  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{24}
  3047  }
  3048  
  3049  func (m *EnvironmentMatrix) GetEnvironmentMatrix() isEnvironmentMatrix_EnvironmentMatrix {
  3050  	if m != nil {
  3051  		return m.EnvironmentMatrix
  3052  	}
  3053  	return nil
  3054  }
  3055  
  3056  func (x *EnvironmentMatrix) GetAndroidMatrix() *AndroidMatrix {
  3057  	if x, ok := x.GetEnvironmentMatrix().(*EnvironmentMatrix_AndroidMatrix); ok {
  3058  		return x.AndroidMatrix
  3059  	}
  3060  	return nil
  3061  }
  3062  
  3063  func (x *EnvironmentMatrix) GetAndroidDeviceList() *AndroidDeviceList {
  3064  	if x, ok := x.GetEnvironmentMatrix().(*EnvironmentMatrix_AndroidDeviceList); ok {
  3065  		return x.AndroidDeviceList
  3066  	}
  3067  	return nil
  3068  }
  3069  
  3070  func (x *EnvironmentMatrix) GetIosDeviceList() *IosDeviceList {
  3071  	if x, ok := x.GetEnvironmentMatrix().(*EnvironmentMatrix_IosDeviceList); ok {
  3072  		return x.IosDeviceList
  3073  	}
  3074  	return nil
  3075  }
  3076  
  3077  type isEnvironmentMatrix_EnvironmentMatrix interface {
  3078  	isEnvironmentMatrix_EnvironmentMatrix()
  3079  }
  3080  
  3081  type EnvironmentMatrix_AndroidMatrix struct {
  3082  	// A matrix of Android devices.
  3083  	AndroidMatrix *AndroidMatrix `protobuf:"bytes,1,opt,name=android_matrix,json=androidMatrix,proto3,oneof"`
  3084  }
  3085  
  3086  type EnvironmentMatrix_AndroidDeviceList struct {
  3087  	// A list of Android devices; the test will be run only on the specified
  3088  	// devices.
  3089  	AndroidDeviceList *AndroidDeviceList `protobuf:"bytes,2,opt,name=android_device_list,json=androidDeviceList,proto3,oneof"`
  3090  }
  3091  
  3092  type EnvironmentMatrix_IosDeviceList struct {
  3093  	// A list of iOS devices.
  3094  	IosDeviceList *IosDeviceList `protobuf:"bytes,3,opt,name=ios_device_list,json=iosDeviceList,proto3,oneof"`
  3095  }
  3096  
  3097  func (*EnvironmentMatrix_AndroidMatrix) isEnvironmentMatrix_EnvironmentMatrix() {}
  3098  
  3099  func (*EnvironmentMatrix_AndroidDeviceList) isEnvironmentMatrix_EnvironmentMatrix() {}
  3100  
  3101  func (*EnvironmentMatrix_IosDeviceList) isEnvironmentMatrix_EnvironmentMatrix() {}
  3102  
  3103  // A list of Android device configurations in which the test is to be executed.
  3104  type AndroidDeviceList struct {
  3105  	state         protoimpl.MessageState
  3106  	sizeCache     protoimpl.SizeCache
  3107  	unknownFields protoimpl.UnknownFields
  3108  
  3109  	// Required. A list of Android devices.
  3110  	AndroidDevices []*AndroidDevice `protobuf:"bytes,1,rep,name=android_devices,json=androidDevices,proto3" json:"android_devices,omitempty"`
  3111  }
  3112  
  3113  func (x *AndroidDeviceList) Reset() {
  3114  	*x = AndroidDeviceList{}
  3115  	if protoimpl.UnsafeEnabled {
  3116  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[25]
  3117  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3118  		ms.StoreMessageInfo(mi)
  3119  	}
  3120  }
  3121  
  3122  func (x *AndroidDeviceList) String() string {
  3123  	return protoimpl.X.MessageStringOf(x)
  3124  }
  3125  
  3126  func (*AndroidDeviceList) ProtoMessage() {}
  3127  
  3128  func (x *AndroidDeviceList) ProtoReflect() protoreflect.Message {
  3129  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[25]
  3130  	if protoimpl.UnsafeEnabled && x != nil {
  3131  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3132  		if ms.LoadMessageInfo() == nil {
  3133  			ms.StoreMessageInfo(mi)
  3134  		}
  3135  		return ms
  3136  	}
  3137  	return mi.MessageOf(x)
  3138  }
  3139  
  3140  // Deprecated: Use AndroidDeviceList.ProtoReflect.Descriptor instead.
  3141  func (*AndroidDeviceList) Descriptor() ([]byte, []int) {
  3142  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{25}
  3143  }
  3144  
  3145  func (x *AndroidDeviceList) GetAndroidDevices() []*AndroidDevice {
  3146  	if x != nil {
  3147  		return x.AndroidDevices
  3148  	}
  3149  	return nil
  3150  }
  3151  
  3152  // A list of iOS device configurations in which the test is to be executed.
  3153  type IosDeviceList struct {
  3154  	state         protoimpl.MessageState
  3155  	sizeCache     protoimpl.SizeCache
  3156  	unknownFields protoimpl.UnknownFields
  3157  
  3158  	// Required. A list of iOS devices.
  3159  	IosDevices []*IosDevice `protobuf:"bytes,1,rep,name=ios_devices,json=iosDevices,proto3" json:"ios_devices,omitempty"`
  3160  }
  3161  
  3162  func (x *IosDeviceList) Reset() {
  3163  	*x = IosDeviceList{}
  3164  	if protoimpl.UnsafeEnabled {
  3165  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[26]
  3166  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3167  		ms.StoreMessageInfo(mi)
  3168  	}
  3169  }
  3170  
  3171  func (x *IosDeviceList) String() string {
  3172  	return protoimpl.X.MessageStringOf(x)
  3173  }
  3174  
  3175  func (*IosDeviceList) ProtoMessage() {}
  3176  
  3177  func (x *IosDeviceList) ProtoReflect() protoreflect.Message {
  3178  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[26]
  3179  	if protoimpl.UnsafeEnabled && x != nil {
  3180  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3181  		if ms.LoadMessageInfo() == nil {
  3182  			ms.StoreMessageInfo(mi)
  3183  		}
  3184  		return ms
  3185  	}
  3186  	return mi.MessageOf(x)
  3187  }
  3188  
  3189  // Deprecated: Use IosDeviceList.ProtoReflect.Descriptor instead.
  3190  func (*IosDeviceList) Descriptor() ([]byte, []int) {
  3191  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{26}
  3192  }
  3193  
  3194  func (x *IosDeviceList) GetIosDevices() []*IosDevice {
  3195  	if x != nil {
  3196  		return x.IosDevices
  3197  	}
  3198  	return nil
  3199  }
  3200  
  3201  // A set of Android device configuration permutations is defined by the
  3202  // the cross-product of the given axes. Internally, the given AndroidMatrix
  3203  // will be expanded into a set of AndroidDevices.
  3204  //
  3205  // Only supported permutations will be instantiated.  Invalid permutations
  3206  // (e.g., incompatible models/versions) are ignored.
  3207  type AndroidMatrix struct {
  3208  	state         protoimpl.MessageState
  3209  	sizeCache     protoimpl.SizeCache
  3210  	unknownFields protoimpl.UnknownFields
  3211  
  3212  	// Required. The ids of the set of Android device to be used.
  3213  	// Use the TestEnvironmentDiscoveryService to get supported options.
  3214  	AndroidModelIds []string `protobuf:"bytes,1,rep,name=android_model_ids,json=androidModelIds,proto3" json:"android_model_ids,omitempty"`
  3215  	// Required. The ids of the set of Android OS version to be used.
  3216  	// Use the TestEnvironmentDiscoveryService to get supported options.
  3217  	AndroidVersionIds []string `protobuf:"bytes,2,rep,name=android_version_ids,json=androidVersionIds,proto3" json:"android_version_ids,omitempty"`
  3218  	// Required. The set of locales the test device will enable for testing.
  3219  	// Use the TestEnvironmentDiscoveryService to get supported options.
  3220  	Locales []string `protobuf:"bytes,3,rep,name=locales,proto3" json:"locales,omitempty"`
  3221  	// Required. The set of orientations to test with.
  3222  	// Use the TestEnvironmentDiscoveryService to get supported options.
  3223  	Orientations []string `protobuf:"bytes,4,rep,name=orientations,proto3" json:"orientations,omitempty"`
  3224  }
  3225  
  3226  func (x *AndroidMatrix) Reset() {
  3227  	*x = AndroidMatrix{}
  3228  	if protoimpl.UnsafeEnabled {
  3229  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[27]
  3230  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3231  		ms.StoreMessageInfo(mi)
  3232  	}
  3233  }
  3234  
  3235  func (x *AndroidMatrix) String() string {
  3236  	return protoimpl.X.MessageStringOf(x)
  3237  }
  3238  
  3239  func (*AndroidMatrix) ProtoMessage() {}
  3240  
  3241  func (x *AndroidMatrix) ProtoReflect() protoreflect.Message {
  3242  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[27]
  3243  	if protoimpl.UnsafeEnabled && x != nil {
  3244  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3245  		if ms.LoadMessageInfo() == nil {
  3246  			ms.StoreMessageInfo(mi)
  3247  		}
  3248  		return ms
  3249  	}
  3250  	return mi.MessageOf(x)
  3251  }
  3252  
  3253  // Deprecated: Use AndroidMatrix.ProtoReflect.Descriptor instead.
  3254  func (*AndroidMatrix) Descriptor() ([]byte, []int) {
  3255  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{27}
  3256  }
  3257  
  3258  func (x *AndroidMatrix) GetAndroidModelIds() []string {
  3259  	if x != nil {
  3260  		return x.AndroidModelIds
  3261  	}
  3262  	return nil
  3263  }
  3264  
  3265  func (x *AndroidMatrix) GetAndroidVersionIds() []string {
  3266  	if x != nil {
  3267  		return x.AndroidVersionIds
  3268  	}
  3269  	return nil
  3270  }
  3271  
  3272  func (x *AndroidMatrix) GetLocales() []string {
  3273  	if x != nil {
  3274  		return x.Locales
  3275  	}
  3276  	return nil
  3277  }
  3278  
  3279  func (x *AndroidMatrix) GetOrientations() []string {
  3280  	if x != nil {
  3281  		return x.Orientations
  3282  	}
  3283  	return nil
  3284  }
  3285  
  3286  // Information about the client which invoked the test.
  3287  type ClientInfo struct {
  3288  	state         protoimpl.MessageState
  3289  	sizeCache     protoimpl.SizeCache
  3290  	unknownFields protoimpl.UnknownFields
  3291  
  3292  	// Required. Client name, such as gcloud.
  3293  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
  3294  	// The list of detailed information about client.
  3295  	ClientInfoDetails []*ClientInfoDetail `protobuf:"bytes,2,rep,name=client_info_details,json=clientInfoDetails,proto3" json:"client_info_details,omitempty"`
  3296  }
  3297  
  3298  func (x *ClientInfo) Reset() {
  3299  	*x = ClientInfo{}
  3300  	if protoimpl.UnsafeEnabled {
  3301  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[28]
  3302  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3303  		ms.StoreMessageInfo(mi)
  3304  	}
  3305  }
  3306  
  3307  func (x *ClientInfo) String() string {
  3308  	return protoimpl.X.MessageStringOf(x)
  3309  }
  3310  
  3311  func (*ClientInfo) ProtoMessage() {}
  3312  
  3313  func (x *ClientInfo) ProtoReflect() protoreflect.Message {
  3314  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[28]
  3315  	if protoimpl.UnsafeEnabled && x != nil {
  3316  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3317  		if ms.LoadMessageInfo() == nil {
  3318  			ms.StoreMessageInfo(mi)
  3319  		}
  3320  		return ms
  3321  	}
  3322  	return mi.MessageOf(x)
  3323  }
  3324  
  3325  // Deprecated: Use ClientInfo.ProtoReflect.Descriptor instead.
  3326  func (*ClientInfo) Descriptor() ([]byte, []int) {
  3327  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{28}
  3328  }
  3329  
  3330  func (x *ClientInfo) GetName() string {
  3331  	if x != nil {
  3332  		return x.Name
  3333  	}
  3334  	return ""
  3335  }
  3336  
  3337  func (x *ClientInfo) GetClientInfoDetails() []*ClientInfoDetail {
  3338  	if x != nil {
  3339  		return x.ClientInfoDetails
  3340  	}
  3341  	return nil
  3342  }
  3343  
  3344  // Key-value pair of detailed information about the client which invoked the
  3345  // test. Examples: {'Version', '1.0'}, {'Release Track', 'BETA'}.
  3346  type ClientInfoDetail struct {
  3347  	state         protoimpl.MessageState
  3348  	sizeCache     protoimpl.SizeCache
  3349  	unknownFields protoimpl.UnknownFields
  3350  
  3351  	// Required. The key of detailed client information.
  3352  	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
  3353  	// Required. The value of detailed client information.
  3354  	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
  3355  }
  3356  
  3357  func (x *ClientInfoDetail) Reset() {
  3358  	*x = ClientInfoDetail{}
  3359  	if protoimpl.UnsafeEnabled {
  3360  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[29]
  3361  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3362  		ms.StoreMessageInfo(mi)
  3363  	}
  3364  }
  3365  
  3366  func (x *ClientInfoDetail) String() string {
  3367  	return protoimpl.X.MessageStringOf(x)
  3368  }
  3369  
  3370  func (*ClientInfoDetail) ProtoMessage() {}
  3371  
  3372  func (x *ClientInfoDetail) ProtoReflect() protoreflect.Message {
  3373  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[29]
  3374  	if protoimpl.UnsafeEnabled && x != nil {
  3375  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3376  		if ms.LoadMessageInfo() == nil {
  3377  			ms.StoreMessageInfo(mi)
  3378  		}
  3379  		return ms
  3380  	}
  3381  	return mi.MessageOf(x)
  3382  }
  3383  
  3384  // Deprecated: Use ClientInfoDetail.ProtoReflect.Descriptor instead.
  3385  func (*ClientInfoDetail) Descriptor() ([]byte, []int) {
  3386  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{29}
  3387  }
  3388  
  3389  func (x *ClientInfoDetail) GetKey() string {
  3390  	if x != nil {
  3391  		return x.Key
  3392  	}
  3393  	return ""
  3394  }
  3395  
  3396  func (x *ClientInfoDetail) GetValue() string {
  3397  	if x != nil {
  3398  		return x.Value
  3399  	}
  3400  	return ""
  3401  }
  3402  
  3403  // Locations where the results of running the test are stored.
  3404  type ResultStorage struct {
  3405  	state         protoimpl.MessageState
  3406  	sizeCache     protoimpl.SizeCache
  3407  	unknownFields protoimpl.UnknownFields
  3408  
  3409  	// Required.
  3410  	GoogleCloudStorage *GoogleCloudStorage `protobuf:"bytes,1,opt,name=google_cloud_storage,json=googleCloudStorage,proto3" json:"google_cloud_storage,omitempty"`
  3411  	// The tool results history that contains the tool results execution that
  3412  	// results are written to.
  3413  	//
  3414  	// If not provided, the service will choose an appropriate value.
  3415  	ToolResultsHistory *ToolResultsHistory `protobuf:"bytes,5,opt,name=tool_results_history,json=toolResultsHistory,proto3" json:"tool_results_history,omitempty"`
  3416  	// Output only. The tool results execution that results are written to.
  3417  	ToolResultsExecution *ToolResultsExecution `protobuf:"bytes,6,opt,name=tool_results_execution,json=toolResultsExecution,proto3" json:"tool_results_execution,omitempty"`
  3418  	// Output only. URL to the results in the Firebase Web Console.
  3419  	ResultsUrl string `protobuf:"bytes,7,opt,name=results_url,json=resultsUrl,proto3" json:"results_url,omitempty"`
  3420  }
  3421  
  3422  func (x *ResultStorage) Reset() {
  3423  	*x = ResultStorage{}
  3424  	if protoimpl.UnsafeEnabled {
  3425  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[30]
  3426  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3427  		ms.StoreMessageInfo(mi)
  3428  	}
  3429  }
  3430  
  3431  func (x *ResultStorage) String() string {
  3432  	return protoimpl.X.MessageStringOf(x)
  3433  }
  3434  
  3435  func (*ResultStorage) ProtoMessage() {}
  3436  
  3437  func (x *ResultStorage) ProtoReflect() protoreflect.Message {
  3438  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[30]
  3439  	if protoimpl.UnsafeEnabled && x != nil {
  3440  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3441  		if ms.LoadMessageInfo() == nil {
  3442  			ms.StoreMessageInfo(mi)
  3443  		}
  3444  		return ms
  3445  	}
  3446  	return mi.MessageOf(x)
  3447  }
  3448  
  3449  // Deprecated: Use ResultStorage.ProtoReflect.Descriptor instead.
  3450  func (*ResultStorage) Descriptor() ([]byte, []int) {
  3451  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{30}
  3452  }
  3453  
  3454  func (x *ResultStorage) GetGoogleCloudStorage() *GoogleCloudStorage {
  3455  	if x != nil {
  3456  		return x.GoogleCloudStorage
  3457  	}
  3458  	return nil
  3459  }
  3460  
  3461  func (x *ResultStorage) GetToolResultsHistory() *ToolResultsHistory {
  3462  	if x != nil {
  3463  		return x.ToolResultsHistory
  3464  	}
  3465  	return nil
  3466  }
  3467  
  3468  func (x *ResultStorage) GetToolResultsExecution() *ToolResultsExecution {
  3469  	if x != nil {
  3470  		return x.ToolResultsExecution
  3471  	}
  3472  	return nil
  3473  }
  3474  
  3475  func (x *ResultStorage) GetResultsUrl() string {
  3476  	if x != nil {
  3477  		return x.ResultsUrl
  3478  	}
  3479  	return ""
  3480  }
  3481  
  3482  // Represents a tool results history resource.
  3483  type ToolResultsHistory struct {
  3484  	state         protoimpl.MessageState
  3485  	sizeCache     protoimpl.SizeCache
  3486  	unknownFields protoimpl.UnknownFields
  3487  
  3488  	// Required. The cloud project that owns the tool results history.
  3489  	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
  3490  	// Required. A tool results history ID.
  3491  	HistoryId string `protobuf:"bytes,2,opt,name=history_id,json=historyId,proto3" json:"history_id,omitempty"`
  3492  }
  3493  
  3494  func (x *ToolResultsHistory) Reset() {
  3495  	*x = ToolResultsHistory{}
  3496  	if protoimpl.UnsafeEnabled {
  3497  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[31]
  3498  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3499  		ms.StoreMessageInfo(mi)
  3500  	}
  3501  }
  3502  
  3503  func (x *ToolResultsHistory) String() string {
  3504  	return protoimpl.X.MessageStringOf(x)
  3505  }
  3506  
  3507  func (*ToolResultsHistory) ProtoMessage() {}
  3508  
  3509  func (x *ToolResultsHistory) ProtoReflect() protoreflect.Message {
  3510  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[31]
  3511  	if protoimpl.UnsafeEnabled && x != nil {
  3512  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3513  		if ms.LoadMessageInfo() == nil {
  3514  			ms.StoreMessageInfo(mi)
  3515  		}
  3516  		return ms
  3517  	}
  3518  	return mi.MessageOf(x)
  3519  }
  3520  
  3521  // Deprecated: Use ToolResultsHistory.ProtoReflect.Descriptor instead.
  3522  func (*ToolResultsHistory) Descriptor() ([]byte, []int) {
  3523  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{31}
  3524  }
  3525  
  3526  func (x *ToolResultsHistory) GetProjectId() string {
  3527  	if x != nil {
  3528  		return x.ProjectId
  3529  	}
  3530  	return ""
  3531  }
  3532  
  3533  func (x *ToolResultsHistory) GetHistoryId() string {
  3534  	if x != nil {
  3535  		return x.HistoryId
  3536  	}
  3537  	return ""
  3538  }
  3539  
  3540  // Represents a tool results execution resource.
  3541  //
  3542  // This has the results of a TestMatrix.
  3543  type ToolResultsExecution struct {
  3544  	state         protoimpl.MessageState
  3545  	sizeCache     protoimpl.SizeCache
  3546  	unknownFields protoimpl.UnknownFields
  3547  
  3548  	// Output only. The cloud project that owns the tool results execution.
  3549  	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
  3550  	// Output only. A tool results history ID.
  3551  	HistoryId string `protobuf:"bytes,2,opt,name=history_id,json=historyId,proto3" json:"history_id,omitempty"`
  3552  	// Output only. A tool results execution ID.
  3553  	ExecutionId string `protobuf:"bytes,3,opt,name=execution_id,json=executionId,proto3" json:"execution_id,omitempty"`
  3554  }
  3555  
  3556  func (x *ToolResultsExecution) Reset() {
  3557  	*x = ToolResultsExecution{}
  3558  	if protoimpl.UnsafeEnabled {
  3559  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[32]
  3560  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3561  		ms.StoreMessageInfo(mi)
  3562  	}
  3563  }
  3564  
  3565  func (x *ToolResultsExecution) String() string {
  3566  	return protoimpl.X.MessageStringOf(x)
  3567  }
  3568  
  3569  func (*ToolResultsExecution) ProtoMessage() {}
  3570  
  3571  func (x *ToolResultsExecution) ProtoReflect() protoreflect.Message {
  3572  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[32]
  3573  	if protoimpl.UnsafeEnabled && x != nil {
  3574  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3575  		if ms.LoadMessageInfo() == nil {
  3576  			ms.StoreMessageInfo(mi)
  3577  		}
  3578  		return ms
  3579  	}
  3580  	return mi.MessageOf(x)
  3581  }
  3582  
  3583  // Deprecated: Use ToolResultsExecution.ProtoReflect.Descriptor instead.
  3584  func (*ToolResultsExecution) Descriptor() ([]byte, []int) {
  3585  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{32}
  3586  }
  3587  
  3588  func (x *ToolResultsExecution) GetProjectId() string {
  3589  	if x != nil {
  3590  		return x.ProjectId
  3591  	}
  3592  	return ""
  3593  }
  3594  
  3595  func (x *ToolResultsExecution) GetHistoryId() string {
  3596  	if x != nil {
  3597  		return x.HistoryId
  3598  	}
  3599  	return ""
  3600  }
  3601  
  3602  func (x *ToolResultsExecution) GetExecutionId() string {
  3603  	if x != nil {
  3604  		return x.ExecutionId
  3605  	}
  3606  	return ""
  3607  }
  3608  
  3609  // Represents a tool results step resource.
  3610  //
  3611  // This has the results of a TestExecution.
  3612  type ToolResultsStep struct {
  3613  	state         protoimpl.MessageState
  3614  	sizeCache     protoimpl.SizeCache
  3615  	unknownFields protoimpl.UnknownFields
  3616  
  3617  	// Output only. The cloud project that owns the tool results step.
  3618  	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
  3619  	// Output only. A tool results history ID.
  3620  	HistoryId string `protobuf:"bytes,2,opt,name=history_id,json=historyId,proto3" json:"history_id,omitempty"`
  3621  	// Output only. A tool results execution ID.
  3622  	ExecutionId string `protobuf:"bytes,3,opt,name=execution_id,json=executionId,proto3" json:"execution_id,omitempty"`
  3623  	// Output only. A tool results step ID.
  3624  	StepId string `protobuf:"bytes,4,opt,name=step_id,json=stepId,proto3" json:"step_id,omitempty"`
  3625  }
  3626  
  3627  func (x *ToolResultsStep) Reset() {
  3628  	*x = ToolResultsStep{}
  3629  	if protoimpl.UnsafeEnabled {
  3630  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[33]
  3631  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3632  		ms.StoreMessageInfo(mi)
  3633  	}
  3634  }
  3635  
  3636  func (x *ToolResultsStep) String() string {
  3637  	return protoimpl.X.MessageStringOf(x)
  3638  }
  3639  
  3640  func (*ToolResultsStep) ProtoMessage() {}
  3641  
  3642  func (x *ToolResultsStep) ProtoReflect() protoreflect.Message {
  3643  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[33]
  3644  	if protoimpl.UnsafeEnabled && x != nil {
  3645  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3646  		if ms.LoadMessageInfo() == nil {
  3647  			ms.StoreMessageInfo(mi)
  3648  		}
  3649  		return ms
  3650  	}
  3651  	return mi.MessageOf(x)
  3652  }
  3653  
  3654  // Deprecated: Use ToolResultsStep.ProtoReflect.Descriptor instead.
  3655  func (*ToolResultsStep) Descriptor() ([]byte, []int) {
  3656  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{33}
  3657  }
  3658  
  3659  func (x *ToolResultsStep) GetProjectId() string {
  3660  	if x != nil {
  3661  		return x.ProjectId
  3662  	}
  3663  	return ""
  3664  }
  3665  
  3666  func (x *ToolResultsStep) GetHistoryId() string {
  3667  	if x != nil {
  3668  		return x.HistoryId
  3669  	}
  3670  	return ""
  3671  }
  3672  
  3673  func (x *ToolResultsStep) GetExecutionId() string {
  3674  	if x != nil {
  3675  		return x.ExecutionId
  3676  	}
  3677  	return ""
  3678  }
  3679  
  3680  func (x *ToolResultsStep) GetStepId() string {
  3681  	if x != nil {
  3682  		return x.StepId
  3683  	}
  3684  	return ""
  3685  }
  3686  
  3687  // A storage location within Google cloud storage (GCS).
  3688  type GoogleCloudStorage struct {
  3689  	state         protoimpl.MessageState
  3690  	sizeCache     protoimpl.SizeCache
  3691  	unknownFields protoimpl.UnknownFields
  3692  
  3693  	// Required. The path to a directory in GCS that will
  3694  	// eventually contain the results for this test.
  3695  	// The requesting user must have write access on the bucket in the supplied
  3696  	// path.
  3697  	GcsPath string `protobuf:"bytes,1,opt,name=gcs_path,json=gcsPath,proto3" json:"gcs_path,omitempty"`
  3698  }
  3699  
  3700  func (x *GoogleCloudStorage) Reset() {
  3701  	*x = GoogleCloudStorage{}
  3702  	if protoimpl.UnsafeEnabled {
  3703  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[34]
  3704  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3705  		ms.StoreMessageInfo(mi)
  3706  	}
  3707  }
  3708  
  3709  func (x *GoogleCloudStorage) String() string {
  3710  	return protoimpl.X.MessageStringOf(x)
  3711  }
  3712  
  3713  func (*GoogleCloudStorage) ProtoMessage() {}
  3714  
  3715  func (x *GoogleCloudStorage) ProtoReflect() protoreflect.Message {
  3716  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[34]
  3717  	if protoimpl.UnsafeEnabled && x != nil {
  3718  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3719  		if ms.LoadMessageInfo() == nil {
  3720  			ms.StoreMessageInfo(mi)
  3721  		}
  3722  		return ms
  3723  	}
  3724  	return mi.MessageOf(x)
  3725  }
  3726  
  3727  // Deprecated: Use GoogleCloudStorage.ProtoReflect.Descriptor instead.
  3728  func (*GoogleCloudStorage) Descriptor() ([]byte, []int) {
  3729  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{34}
  3730  }
  3731  
  3732  func (x *GoogleCloudStorage) GetGcsPath() string {
  3733  	if x != nil {
  3734  		return x.GcsPath
  3735  	}
  3736  	return ""
  3737  }
  3738  
  3739  // A reference to a file, used for user inputs.
  3740  type FileReference struct {
  3741  	state         protoimpl.MessageState
  3742  	sizeCache     protoimpl.SizeCache
  3743  	unknownFields protoimpl.UnknownFields
  3744  
  3745  	// Required. The file reference.
  3746  	//
  3747  	// Types that are assignable to File:
  3748  	//
  3749  	//	*FileReference_GcsPath
  3750  	File isFileReference_File `protobuf_oneof:"file"`
  3751  }
  3752  
  3753  func (x *FileReference) Reset() {
  3754  	*x = FileReference{}
  3755  	if protoimpl.UnsafeEnabled {
  3756  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[35]
  3757  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3758  		ms.StoreMessageInfo(mi)
  3759  	}
  3760  }
  3761  
  3762  func (x *FileReference) String() string {
  3763  	return protoimpl.X.MessageStringOf(x)
  3764  }
  3765  
  3766  func (*FileReference) ProtoMessage() {}
  3767  
  3768  func (x *FileReference) ProtoReflect() protoreflect.Message {
  3769  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[35]
  3770  	if protoimpl.UnsafeEnabled && x != nil {
  3771  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3772  		if ms.LoadMessageInfo() == nil {
  3773  			ms.StoreMessageInfo(mi)
  3774  		}
  3775  		return ms
  3776  	}
  3777  	return mi.MessageOf(x)
  3778  }
  3779  
  3780  // Deprecated: Use FileReference.ProtoReflect.Descriptor instead.
  3781  func (*FileReference) Descriptor() ([]byte, []int) {
  3782  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{35}
  3783  }
  3784  
  3785  func (m *FileReference) GetFile() isFileReference_File {
  3786  	if m != nil {
  3787  		return m.File
  3788  	}
  3789  	return nil
  3790  }
  3791  
  3792  func (x *FileReference) GetGcsPath() string {
  3793  	if x, ok := x.GetFile().(*FileReference_GcsPath); ok {
  3794  		return x.GcsPath
  3795  	}
  3796  	return ""
  3797  }
  3798  
  3799  type isFileReference_File interface {
  3800  	isFileReference_File()
  3801  }
  3802  
  3803  type FileReference_GcsPath struct {
  3804  	// A path to a file in Google Cloud Storage.
  3805  	// Example: gs://build-app-1414623860166/app%40debug-unaligned.apk
  3806  	// These paths are expected to be url encoded (percent encoding)
  3807  	GcsPath string `protobuf:"bytes,1,opt,name=gcs_path,json=gcsPath,proto3,oneof"`
  3808  }
  3809  
  3810  func (*FileReference_GcsPath) isFileReference_File() {}
  3811  
  3812  // The environment in which the test is run.
  3813  type Environment struct {
  3814  	state         protoimpl.MessageState
  3815  	sizeCache     protoimpl.SizeCache
  3816  	unknownFields protoimpl.UnknownFields
  3817  
  3818  	// Required. The environment.
  3819  	//
  3820  	// Types that are assignable to Environment:
  3821  	//
  3822  	//	*Environment_AndroidDevice
  3823  	//	*Environment_IosDevice
  3824  	Environment isEnvironment_Environment `protobuf_oneof:"environment"`
  3825  }
  3826  
  3827  func (x *Environment) Reset() {
  3828  	*x = Environment{}
  3829  	if protoimpl.UnsafeEnabled {
  3830  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[36]
  3831  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3832  		ms.StoreMessageInfo(mi)
  3833  	}
  3834  }
  3835  
  3836  func (x *Environment) String() string {
  3837  	return protoimpl.X.MessageStringOf(x)
  3838  }
  3839  
  3840  func (*Environment) ProtoMessage() {}
  3841  
  3842  func (x *Environment) ProtoReflect() protoreflect.Message {
  3843  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[36]
  3844  	if protoimpl.UnsafeEnabled && x != nil {
  3845  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3846  		if ms.LoadMessageInfo() == nil {
  3847  			ms.StoreMessageInfo(mi)
  3848  		}
  3849  		return ms
  3850  	}
  3851  	return mi.MessageOf(x)
  3852  }
  3853  
  3854  // Deprecated: Use Environment.ProtoReflect.Descriptor instead.
  3855  func (*Environment) Descriptor() ([]byte, []int) {
  3856  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{36}
  3857  }
  3858  
  3859  func (m *Environment) GetEnvironment() isEnvironment_Environment {
  3860  	if m != nil {
  3861  		return m.Environment
  3862  	}
  3863  	return nil
  3864  }
  3865  
  3866  func (x *Environment) GetAndroidDevice() *AndroidDevice {
  3867  	if x, ok := x.GetEnvironment().(*Environment_AndroidDevice); ok {
  3868  		return x.AndroidDevice
  3869  	}
  3870  	return nil
  3871  }
  3872  
  3873  func (x *Environment) GetIosDevice() *IosDevice {
  3874  	if x, ok := x.GetEnvironment().(*Environment_IosDevice); ok {
  3875  		return x.IosDevice
  3876  	}
  3877  	return nil
  3878  }
  3879  
  3880  type isEnvironment_Environment interface {
  3881  	isEnvironment_Environment()
  3882  }
  3883  
  3884  type Environment_AndroidDevice struct {
  3885  	// An Android device which must be used with an Android test.
  3886  	AndroidDevice *AndroidDevice `protobuf:"bytes,1,opt,name=android_device,json=androidDevice,proto3,oneof"`
  3887  }
  3888  
  3889  type Environment_IosDevice struct {
  3890  	// An iOS device which must be used with an iOS test.
  3891  	IosDevice *IosDevice `protobuf:"bytes,2,opt,name=ios_device,json=iosDevice,proto3,oneof"`
  3892  }
  3893  
  3894  func (*Environment_AndroidDevice) isEnvironment_Environment() {}
  3895  
  3896  func (*Environment_IosDevice) isEnvironment_Environment() {}
  3897  
  3898  // A single Android device.
  3899  type AndroidDevice struct {
  3900  	state         protoimpl.MessageState
  3901  	sizeCache     protoimpl.SizeCache
  3902  	unknownFields protoimpl.UnknownFields
  3903  
  3904  	// Required. The id of the Android device to be used.
  3905  	// Use the TestEnvironmentDiscoveryService to get supported options.
  3906  	AndroidModelId string `protobuf:"bytes,1,opt,name=android_model_id,json=androidModelId,proto3" json:"android_model_id,omitempty"`
  3907  	// Required. The id of the Android OS version to be used.
  3908  	// Use the TestEnvironmentDiscoveryService to get supported options.
  3909  	AndroidVersionId string `protobuf:"bytes,2,opt,name=android_version_id,json=androidVersionId,proto3" json:"android_version_id,omitempty"`
  3910  	// Required. The locale the test device used for testing.
  3911  	// Use the TestEnvironmentDiscoveryService to get supported options.
  3912  	Locale string `protobuf:"bytes,3,opt,name=locale,proto3" json:"locale,omitempty"`
  3913  	// Required. How the device is oriented during the test.
  3914  	// Use the TestEnvironmentDiscoveryService to get supported options.
  3915  	Orientation string `protobuf:"bytes,4,opt,name=orientation,proto3" json:"orientation,omitempty"`
  3916  }
  3917  
  3918  func (x *AndroidDevice) Reset() {
  3919  	*x = AndroidDevice{}
  3920  	if protoimpl.UnsafeEnabled {
  3921  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[37]
  3922  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3923  		ms.StoreMessageInfo(mi)
  3924  	}
  3925  }
  3926  
  3927  func (x *AndroidDevice) String() string {
  3928  	return protoimpl.X.MessageStringOf(x)
  3929  }
  3930  
  3931  func (*AndroidDevice) ProtoMessage() {}
  3932  
  3933  func (x *AndroidDevice) ProtoReflect() protoreflect.Message {
  3934  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[37]
  3935  	if protoimpl.UnsafeEnabled && x != nil {
  3936  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3937  		if ms.LoadMessageInfo() == nil {
  3938  			ms.StoreMessageInfo(mi)
  3939  		}
  3940  		return ms
  3941  	}
  3942  	return mi.MessageOf(x)
  3943  }
  3944  
  3945  // Deprecated: Use AndroidDevice.ProtoReflect.Descriptor instead.
  3946  func (*AndroidDevice) Descriptor() ([]byte, []int) {
  3947  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{37}
  3948  }
  3949  
  3950  func (x *AndroidDevice) GetAndroidModelId() string {
  3951  	if x != nil {
  3952  		return x.AndroidModelId
  3953  	}
  3954  	return ""
  3955  }
  3956  
  3957  func (x *AndroidDevice) GetAndroidVersionId() string {
  3958  	if x != nil {
  3959  		return x.AndroidVersionId
  3960  	}
  3961  	return ""
  3962  }
  3963  
  3964  func (x *AndroidDevice) GetLocale() string {
  3965  	if x != nil {
  3966  		return x.Locale
  3967  	}
  3968  	return ""
  3969  }
  3970  
  3971  func (x *AndroidDevice) GetOrientation() string {
  3972  	if x != nil {
  3973  		return x.Orientation
  3974  	}
  3975  	return ""
  3976  }
  3977  
  3978  // A single iOS device.
  3979  type IosDevice struct {
  3980  	state         protoimpl.MessageState
  3981  	sizeCache     protoimpl.SizeCache
  3982  	unknownFields protoimpl.UnknownFields
  3983  
  3984  	// Required. The id of the iOS device to be used.
  3985  	// Use the TestEnvironmentDiscoveryService to get supported options.
  3986  	IosModelId string `protobuf:"bytes,1,opt,name=ios_model_id,json=iosModelId,proto3" json:"ios_model_id,omitempty"`
  3987  	// Required. The id of the iOS major software version to be used.
  3988  	// Use the TestEnvironmentDiscoveryService to get supported options.
  3989  	IosVersionId string `protobuf:"bytes,2,opt,name=ios_version_id,json=iosVersionId,proto3" json:"ios_version_id,omitempty"`
  3990  	// Required. The locale the test device used for testing.
  3991  	// Use the TestEnvironmentDiscoveryService to get supported options.
  3992  	Locale string `protobuf:"bytes,3,opt,name=locale,proto3" json:"locale,omitempty"`
  3993  	// Required. How the device is oriented during the test.
  3994  	// Use the TestEnvironmentDiscoveryService to get supported options.
  3995  	Orientation string `protobuf:"bytes,4,opt,name=orientation,proto3" json:"orientation,omitempty"`
  3996  }
  3997  
  3998  func (x *IosDevice) Reset() {
  3999  	*x = IosDevice{}
  4000  	if protoimpl.UnsafeEnabled {
  4001  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[38]
  4002  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4003  		ms.StoreMessageInfo(mi)
  4004  	}
  4005  }
  4006  
  4007  func (x *IosDevice) String() string {
  4008  	return protoimpl.X.MessageStringOf(x)
  4009  }
  4010  
  4011  func (*IosDevice) ProtoMessage() {}
  4012  
  4013  func (x *IosDevice) ProtoReflect() protoreflect.Message {
  4014  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[38]
  4015  	if protoimpl.UnsafeEnabled && x != nil {
  4016  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4017  		if ms.LoadMessageInfo() == nil {
  4018  			ms.StoreMessageInfo(mi)
  4019  		}
  4020  		return ms
  4021  	}
  4022  	return mi.MessageOf(x)
  4023  }
  4024  
  4025  // Deprecated: Use IosDevice.ProtoReflect.Descriptor instead.
  4026  func (*IosDevice) Descriptor() ([]byte, []int) {
  4027  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{38}
  4028  }
  4029  
  4030  func (x *IosDevice) GetIosModelId() string {
  4031  	if x != nil {
  4032  		return x.IosModelId
  4033  	}
  4034  	return ""
  4035  }
  4036  
  4037  func (x *IosDevice) GetIosVersionId() string {
  4038  	if x != nil {
  4039  		return x.IosVersionId
  4040  	}
  4041  	return ""
  4042  }
  4043  
  4044  func (x *IosDevice) GetLocale() string {
  4045  	if x != nil {
  4046  		return x.Locale
  4047  	}
  4048  	return ""
  4049  }
  4050  
  4051  func (x *IosDevice) GetOrientation() string {
  4052  	if x != nil {
  4053  		return x.Orientation
  4054  	}
  4055  	return ""
  4056  }
  4057  
  4058  // Additional details about the progress of the running test.
  4059  type TestDetails struct {
  4060  	state         protoimpl.MessageState
  4061  	sizeCache     protoimpl.SizeCache
  4062  	unknownFields protoimpl.UnknownFields
  4063  
  4064  	// Output only. Human-readable, detailed descriptions of the test's progress.
  4065  	// For example: "Provisioning a device", "Starting Test".
  4066  	//
  4067  	// During the course of execution new data may be appended
  4068  	// to the end of progress_messages.
  4069  	ProgressMessages []string `protobuf:"bytes,3,rep,name=progress_messages,json=progressMessages,proto3" json:"progress_messages,omitempty"`
  4070  	// Output only. If the TestState is ERROR, then this string will contain
  4071  	// human-readable details about the error.
  4072  	ErrorMessage string `protobuf:"bytes,4,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
  4073  }
  4074  
  4075  func (x *TestDetails) Reset() {
  4076  	*x = TestDetails{}
  4077  	if protoimpl.UnsafeEnabled {
  4078  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[39]
  4079  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4080  		ms.StoreMessageInfo(mi)
  4081  	}
  4082  }
  4083  
  4084  func (x *TestDetails) String() string {
  4085  	return protoimpl.X.MessageStringOf(x)
  4086  }
  4087  
  4088  func (*TestDetails) ProtoMessage() {}
  4089  
  4090  func (x *TestDetails) ProtoReflect() protoreflect.Message {
  4091  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[39]
  4092  	if protoimpl.UnsafeEnabled && x != nil {
  4093  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4094  		if ms.LoadMessageInfo() == nil {
  4095  			ms.StoreMessageInfo(mi)
  4096  		}
  4097  		return ms
  4098  	}
  4099  	return mi.MessageOf(x)
  4100  }
  4101  
  4102  // Deprecated: Use TestDetails.ProtoReflect.Descriptor instead.
  4103  func (*TestDetails) Descriptor() ([]byte, []int) {
  4104  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{39}
  4105  }
  4106  
  4107  func (x *TestDetails) GetProgressMessages() []string {
  4108  	if x != nil {
  4109  		return x.ProgressMessages
  4110  	}
  4111  	return nil
  4112  }
  4113  
  4114  func (x *TestDetails) GetErrorMessage() string {
  4115  	if x != nil {
  4116  		return x.ErrorMessage
  4117  	}
  4118  	return ""
  4119  }
  4120  
  4121  // Details behind an invalid request.
  4122  type InvalidRequestDetail struct {
  4123  	state         protoimpl.MessageState
  4124  	sizeCache     protoimpl.SizeCache
  4125  	unknownFields protoimpl.UnknownFields
  4126  
  4127  	// The reason behind the error.
  4128  	Reason InvalidRequestDetail_Reason `protobuf:"varint,1,opt,name=reason,proto3,enum=google.devtools.testing.v1.InvalidRequestDetail_Reason" json:"reason,omitempty"`
  4129  }
  4130  
  4131  func (x *InvalidRequestDetail) Reset() {
  4132  	*x = InvalidRequestDetail{}
  4133  	if protoimpl.UnsafeEnabled {
  4134  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[40]
  4135  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4136  		ms.StoreMessageInfo(mi)
  4137  	}
  4138  }
  4139  
  4140  func (x *InvalidRequestDetail) String() string {
  4141  	return protoimpl.X.MessageStringOf(x)
  4142  }
  4143  
  4144  func (*InvalidRequestDetail) ProtoMessage() {}
  4145  
  4146  func (x *InvalidRequestDetail) ProtoReflect() protoreflect.Message {
  4147  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[40]
  4148  	if protoimpl.UnsafeEnabled && x != nil {
  4149  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4150  		if ms.LoadMessageInfo() == nil {
  4151  			ms.StoreMessageInfo(mi)
  4152  		}
  4153  		return ms
  4154  	}
  4155  	return mi.MessageOf(x)
  4156  }
  4157  
  4158  // Deprecated: Use InvalidRequestDetail.ProtoReflect.Descriptor instead.
  4159  func (*InvalidRequestDetail) Descriptor() ([]byte, []int) {
  4160  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{40}
  4161  }
  4162  
  4163  func (x *InvalidRequestDetail) GetReason() InvalidRequestDetail_Reason {
  4164  	if x != nil {
  4165  		return x.Reason
  4166  	}
  4167  	return InvalidRequestDetail_REASON_UNSPECIFIED
  4168  }
  4169  
  4170  // Options for enabling sharding.
  4171  type ShardingOption struct {
  4172  	state         protoimpl.MessageState
  4173  	sizeCache     protoimpl.SizeCache
  4174  	unknownFields protoimpl.UnknownFields
  4175  
  4176  	// Types that are assignable to Option:
  4177  	//
  4178  	//	*ShardingOption_UniformSharding
  4179  	//	*ShardingOption_ManualSharding
  4180  	Option isShardingOption_Option `protobuf_oneof:"option"`
  4181  }
  4182  
  4183  func (x *ShardingOption) Reset() {
  4184  	*x = ShardingOption{}
  4185  	if protoimpl.UnsafeEnabled {
  4186  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[41]
  4187  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4188  		ms.StoreMessageInfo(mi)
  4189  	}
  4190  }
  4191  
  4192  func (x *ShardingOption) String() string {
  4193  	return protoimpl.X.MessageStringOf(x)
  4194  }
  4195  
  4196  func (*ShardingOption) ProtoMessage() {}
  4197  
  4198  func (x *ShardingOption) ProtoReflect() protoreflect.Message {
  4199  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[41]
  4200  	if protoimpl.UnsafeEnabled && x != nil {
  4201  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4202  		if ms.LoadMessageInfo() == nil {
  4203  			ms.StoreMessageInfo(mi)
  4204  		}
  4205  		return ms
  4206  	}
  4207  	return mi.MessageOf(x)
  4208  }
  4209  
  4210  // Deprecated: Use ShardingOption.ProtoReflect.Descriptor instead.
  4211  func (*ShardingOption) Descriptor() ([]byte, []int) {
  4212  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{41}
  4213  }
  4214  
  4215  func (m *ShardingOption) GetOption() isShardingOption_Option {
  4216  	if m != nil {
  4217  		return m.Option
  4218  	}
  4219  	return nil
  4220  }
  4221  
  4222  func (x *ShardingOption) GetUniformSharding() *UniformSharding {
  4223  	if x, ok := x.GetOption().(*ShardingOption_UniformSharding); ok {
  4224  		return x.UniformSharding
  4225  	}
  4226  	return nil
  4227  }
  4228  
  4229  func (x *ShardingOption) GetManualSharding() *ManualSharding {
  4230  	if x, ok := x.GetOption().(*ShardingOption_ManualSharding); ok {
  4231  		return x.ManualSharding
  4232  	}
  4233  	return nil
  4234  }
  4235  
  4236  type isShardingOption_Option interface {
  4237  	isShardingOption_Option()
  4238  }
  4239  
  4240  type ShardingOption_UniformSharding struct {
  4241  	// Uniformly shards test cases given a total number of shards.
  4242  	UniformSharding *UniformSharding `protobuf:"bytes,1,opt,name=uniform_sharding,json=uniformSharding,proto3,oneof"`
  4243  }
  4244  
  4245  type ShardingOption_ManualSharding struct {
  4246  	// Shards test cases into the specified groups of packages, classes, and/or
  4247  	// methods.
  4248  	ManualSharding *ManualSharding `protobuf:"bytes,2,opt,name=manual_sharding,json=manualSharding,proto3,oneof"`
  4249  }
  4250  
  4251  func (*ShardingOption_UniformSharding) isShardingOption_Option() {}
  4252  
  4253  func (*ShardingOption_ManualSharding) isShardingOption_Option() {}
  4254  
  4255  // Uniformly shards test cases given a total number of shards.
  4256  //
  4257  // For instrumentation tests, it will be translated to "-e numShard" and "-e
  4258  // shardIndex" AndroidJUnitRunner arguments. With uniform sharding enabled,
  4259  // specifying either of these sharding arguments via `environment_variables` is
  4260  // invalid.
  4261  //
  4262  // Based on the sharding mechanism AndroidJUnitRunner uses, there is no
  4263  // guarantee that test cases will be distributed uniformly across all shards.
  4264  type UniformSharding struct {
  4265  	state         protoimpl.MessageState
  4266  	sizeCache     protoimpl.SizeCache
  4267  	unknownFields protoimpl.UnknownFields
  4268  
  4269  	// Required. The total number of shards to create. This must always be a
  4270  	// positive number that is no greater than the total number of test cases.
  4271  	// When you select one or more physical devices, the number of shards must be
  4272  	// <= 50. When you select one or more ARM virtual devices, it must be <= 100.
  4273  	// When you select only x86 virtual devices, it must be <= 500.
  4274  	NumShards int32 `protobuf:"varint,1,opt,name=num_shards,json=numShards,proto3" json:"num_shards,omitempty"`
  4275  }
  4276  
  4277  func (x *UniformSharding) Reset() {
  4278  	*x = UniformSharding{}
  4279  	if protoimpl.UnsafeEnabled {
  4280  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[42]
  4281  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4282  		ms.StoreMessageInfo(mi)
  4283  	}
  4284  }
  4285  
  4286  func (x *UniformSharding) String() string {
  4287  	return protoimpl.X.MessageStringOf(x)
  4288  }
  4289  
  4290  func (*UniformSharding) ProtoMessage() {}
  4291  
  4292  func (x *UniformSharding) ProtoReflect() protoreflect.Message {
  4293  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[42]
  4294  	if protoimpl.UnsafeEnabled && x != nil {
  4295  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4296  		if ms.LoadMessageInfo() == nil {
  4297  			ms.StoreMessageInfo(mi)
  4298  		}
  4299  		return ms
  4300  	}
  4301  	return mi.MessageOf(x)
  4302  }
  4303  
  4304  // Deprecated: Use UniformSharding.ProtoReflect.Descriptor instead.
  4305  func (*UniformSharding) Descriptor() ([]byte, []int) {
  4306  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{42}
  4307  }
  4308  
  4309  func (x *UniformSharding) GetNumShards() int32 {
  4310  	if x != nil {
  4311  		return x.NumShards
  4312  	}
  4313  	return 0
  4314  }
  4315  
  4316  // Shards test cases into the specified groups of packages, classes, and/or
  4317  // methods.
  4318  //
  4319  // With manual sharding enabled, specifying test targets via
  4320  // environment_variables or in InstrumentationTest is invalid.
  4321  type ManualSharding struct {
  4322  	state         protoimpl.MessageState
  4323  	sizeCache     protoimpl.SizeCache
  4324  	unknownFields protoimpl.UnknownFields
  4325  
  4326  	// Required. Group of packages, classes, and/or test methods to be run for
  4327  	// each manually-created shard. You must specify at least one shard if this
  4328  	// field is present. When you select one or more physical devices, the number
  4329  	// of repeated test_targets_for_shard must be <= 50. When you select one or
  4330  	// more ARM virtual devices, it must be <= 100. When you select only x86
  4331  	// virtual devices, it must be <= 500.
  4332  	TestTargetsForShard []*TestTargetsForShard `protobuf:"bytes,1,rep,name=test_targets_for_shard,json=testTargetsForShard,proto3" json:"test_targets_for_shard,omitempty"`
  4333  }
  4334  
  4335  func (x *ManualSharding) Reset() {
  4336  	*x = ManualSharding{}
  4337  	if protoimpl.UnsafeEnabled {
  4338  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[43]
  4339  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4340  		ms.StoreMessageInfo(mi)
  4341  	}
  4342  }
  4343  
  4344  func (x *ManualSharding) String() string {
  4345  	return protoimpl.X.MessageStringOf(x)
  4346  }
  4347  
  4348  func (*ManualSharding) ProtoMessage() {}
  4349  
  4350  func (x *ManualSharding) ProtoReflect() protoreflect.Message {
  4351  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[43]
  4352  	if protoimpl.UnsafeEnabled && x != nil {
  4353  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4354  		if ms.LoadMessageInfo() == nil {
  4355  			ms.StoreMessageInfo(mi)
  4356  		}
  4357  		return ms
  4358  	}
  4359  	return mi.MessageOf(x)
  4360  }
  4361  
  4362  // Deprecated: Use ManualSharding.ProtoReflect.Descriptor instead.
  4363  func (*ManualSharding) Descriptor() ([]byte, []int) {
  4364  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{43}
  4365  }
  4366  
  4367  func (x *ManualSharding) GetTestTargetsForShard() []*TestTargetsForShard {
  4368  	if x != nil {
  4369  		return x.TestTargetsForShard
  4370  	}
  4371  	return nil
  4372  }
  4373  
  4374  // Test targets for a shard.
  4375  type TestTargetsForShard struct {
  4376  	state         protoimpl.MessageState
  4377  	sizeCache     protoimpl.SizeCache
  4378  	unknownFields protoimpl.UnknownFields
  4379  
  4380  	// Group of packages, classes, and/or test methods to be run for each shard.
  4381  	// The targets need to be specified in AndroidJUnitRunner argument format. For
  4382  	// example, "package com.my.packages" "class com.my.package.MyClass".
  4383  	//
  4384  	// The number of test_targets must be greater than 0.
  4385  	TestTargets []string `protobuf:"bytes,1,rep,name=test_targets,json=testTargets,proto3" json:"test_targets,omitempty"`
  4386  }
  4387  
  4388  func (x *TestTargetsForShard) Reset() {
  4389  	*x = TestTargetsForShard{}
  4390  	if protoimpl.UnsafeEnabled {
  4391  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[44]
  4392  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4393  		ms.StoreMessageInfo(mi)
  4394  	}
  4395  }
  4396  
  4397  func (x *TestTargetsForShard) String() string {
  4398  	return protoimpl.X.MessageStringOf(x)
  4399  }
  4400  
  4401  func (*TestTargetsForShard) ProtoMessage() {}
  4402  
  4403  func (x *TestTargetsForShard) ProtoReflect() protoreflect.Message {
  4404  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[44]
  4405  	if protoimpl.UnsafeEnabled && x != nil {
  4406  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4407  		if ms.LoadMessageInfo() == nil {
  4408  			ms.StoreMessageInfo(mi)
  4409  		}
  4410  		return ms
  4411  	}
  4412  	return mi.MessageOf(x)
  4413  }
  4414  
  4415  // Deprecated: Use TestTargetsForShard.ProtoReflect.Descriptor instead.
  4416  func (*TestTargetsForShard) Descriptor() ([]byte, []int) {
  4417  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{44}
  4418  }
  4419  
  4420  func (x *TestTargetsForShard) GetTestTargets() []string {
  4421  	if x != nil {
  4422  		return x.TestTargets
  4423  	}
  4424  	return nil
  4425  }
  4426  
  4427  // Output only. Details about the shard.
  4428  type Shard struct {
  4429  	state         protoimpl.MessageState
  4430  	sizeCache     protoimpl.SizeCache
  4431  	unknownFields protoimpl.UnknownFields
  4432  
  4433  	// Output only. The index of the shard among all the shards.
  4434  	ShardIndex int32 `protobuf:"varint,1,opt,name=shard_index,json=shardIndex,proto3" json:"shard_index,omitempty"`
  4435  	// Output only. The total number of shards.
  4436  	NumShards int32 `protobuf:"varint,2,opt,name=num_shards,json=numShards,proto3" json:"num_shards,omitempty"`
  4437  	// Output only. Test targets for each shard. Only set for manual sharding.
  4438  	TestTargetsForShard *TestTargetsForShard `protobuf:"bytes,3,opt,name=test_targets_for_shard,json=testTargetsForShard,proto3" json:"test_targets_for_shard,omitempty"`
  4439  }
  4440  
  4441  func (x *Shard) Reset() {
  4442  	*x = Shard{}
  4443  	if protoimpl.UnsafeEnabled {
  4444  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[45]
  4445  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4446  		ms.StoreMessageInfo(mi)
  4447  	}
  4448  }
  4449  
  4450  func (x *Shard) String() string {
  4451  	return protoimpl.X.MessageStringOf(x)
  4452  }
  4453  
  4454  func (*Shard) ProtoMessage() {}
  4455  
  4456  func (x *Shard) ProtoReflect() protoreflect.Message {
  4457  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[45]
  4458  	if protoimpl.UnsafeEnabled && x != nil {
  4459  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4460  		if ms.LoadMessageInfo() == nil {
  4461  			ms.StoreMessageInfo(mi)
  4462  		}
  4463  		return ms
  4464  	}
  4465  	return mi.MessageOf(x)
  4466  }
  4467  
  4468  // Deprecated: Use Shard.ProtoReflect.Descriptor instead.
  4469  func (*Shard) Descriptor() ([]byte, []int) {
  4470  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{45}
  4471  }
  4472  
  4473  func (x *Shard) GetShardIndex() int32 {
  4474  	if x != nil {
  4475  		return x.ShardIndex
  4476  	}
  4477  	return 0
  4478  }
  4479  
  4480  func (x *Shard) GetNumShards() int32 {
  4481  	if x != nil {
  4482  		return x.NumShards
  4483  	}
  4484  	return 0
  4485  }
  4486  
  4487  func (x *Shard) GetTestTargetsForShard() *TestTargetsForShard {
  4488  	if x != nil {
  4489  		return x.TestTargetsForShard
  4490  	}
  4491  	return nil
  4492  }
  4493  
  4494  // Request to submit a matrix of tests for execution.
  4495  type CreateTestMatrixRequest struct {
  4496  	state         protoimpl.MessageState
  4497  	sizeCache     protoimpl.SizeCache
  4498  	unknownFields protoimpl.UnknownFields
  4499  
  4500  	// The GCE project under which this job will run.
  4501  	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
  4502  	// The matrix of tests that the user wants to run.
  4503  	TestMatrix *TestMatrix `protobuf:"bytes,2,opt,name=test_matrix,json=testMatrix,proto3" json:"test_matrix,omitempty"`
  4504  	// A string id used to detect duplicated requests.
  4505  	// Ids are automatically scoped to a project, so
  4506  	// users should ensure the ID is unique per-project.
  4507  	// A UUID is recommended.
  4508  	//
  4509  	// Optional, but strongly recommended.
  4510  	RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
  4511  }
  4512  
  4513  func (x *CreateTestMatrixRequest) Reset() {
  4514  	*x = CreateTestMatrixRequest{}
  4515  	if protoimpl.UnsafeEnabled {
  4516  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[46]
  4517  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4518  		ms.StoreMessageInfo(mi)
  4519  	}
  4520  }
  4521  
  4522  func (x *CreateTestMatrixRequest) String() string {
  4523  	return protoimpl.X.MessageStringOf(x)
  4524  }
  4525  
  4526  func (*CreateTestMatrixRequest) ProtoMessage() {}
  4527  
  4528  func (x *CreateTestMatrixRequest) ProtoReflect() protoreflect.Message {
  4529  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[46]
  4530  	if protoimpl.UnsafeEnabled && x != nil {
  4531  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4532  		if ms.LoadMessageInfo() == nil {
  4533  			ms.StoreMessageInfo(mi)
  4534  		}
  4535  		return ms
  4536  	}
  4537  	return mi.MessageOf(x)
  4538  }
  4539  
  4540  // Deprecated: Use CreateTestMatrixRequest.ProtoReflect.Descriptor instead.
  4541  func (*CreateTestMatrixRequest) Descriptor() ([]byte, []int) {
  4542  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{46}
  4543  }
  4544  
  4545  func (x *CreateTestMatrixRequest) GetProjectId() string {
  4546  	if x != nil {
  4547  		return x.ProjectId
  4548  	}
  4549  	return ""
  4550  }
  4551  
  4552  func (x *CreateTestMatrixRequest) GetTestMatrix() *TestMatrix {
  4553  	if x != nil {
  4554  		return x.TestMatrix
  4555  	}
  4556  	return nil
  4557  }
  4558  
  4559  func (x *CreateTestMatrixRequest) GetRequestId() string {
  4560  	if x != nil {
  4561  		return x.RequestId
  4562  	}
  4563  	return ""
  4564  }
  4565  
  4566  // Request to get the Test Matrix with the given id.
  4567  type GetTestMatrixRequest struct {
  4568  	state         protoimpl.MessageState
  4569  	sizeCache     protoimpl.SizeCache
  4570  	unknownFields protoimpl.UnknownFields
  4571  
  4572  	// Cloud project that owns the test matrix.
  4573  	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
  4574  	// Unique test matrix id which was assigned by the service.
  4575  	TestMatrixId string `protobuf:"bytes,2,opt,name=test_matrix_id,json=testMatrixId,proto3" json:"test_matrix_id,omitempty"`
  4576  }
  4577  
  4578  func (x *GetTestMatrixRequest) Reset() {
  4579  	*x = GetTestMatrixRequest{}
  4580  	if protoimpl.UnsafeEnabled {
  4581  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[47]
  4582  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4583  		ms.StoreMessageInfo(mi)
  4584  	}
  4585  }
  4586  
  4587  func (x *GetTestMatrixRequest) String() string {
  4588  	return protoimpl.X.MessageStringOf(x)
  4589  }
  4590  
  4591  func (*GetTestMatrixRequest) ProtoMessage() {}
  4592  
  4593  func (x *GetTestMatrixRequest) ProtoReflect() protoreflect.Message {
  4594  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[47]
  4595  	if protoimpl.UnsafeEnabled && x != nil {
  4596  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4597  		if ms.LoadMessageInfo() == nil {
  4598  			ms.StoreMessageInfo(mi)
  4599  		}
  4600  		return ms
  4601  	}
  4602  	return mi.MessageOf(x)
  4603  }
  4604  
  4605  // Deprecated: Use GetTestMatrixRequest.ProtoReflect.Descriptor instead.
  4606  func (*GetTestMatrixRequest) Descriptor() ([]byte, []int) {
  4607  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{47}
  4608  }
  4609  
  4610  func (x *GetTestMatrixRequest) GetProjectId() string {
  4611  	if x != nil {
  4612  		return x.ProjectId
  4613  	}
  4614  	return ""
  4615  }
  4616  
  4617  func (x *GetTestMatrixRequest) GetTestMatrixId() string {
  4618  	if x != nil {
  4619  		return x.TestMatrixId
  4620  	}
  4621  	return ""
  4622  }
  4623  
  4624  // Request to stop running all of the tests in the specified matrix.
  4625  type CancelTestMatrixRequest struct {
  4626  	state         protoimpl.MessageState
  4627  	sizeCache     protoimpl.SizeCache
  4628  	unknownFields protoimpl.UnknownFields
  4629  
  4630  	// Cloud project that owns the test.
  4631  	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
  4632  	// Test matrix that will be canceled.
  4633  	TestMatrixId string `protobuf:"bytes,2,opt,name=test_matrix_id,json=testMatrixId,proto3" json:"test_matrix_id,omitempty"`
  4634  }
  4635  
  4636  func (x *CancelTestMatrixRequest) Reset() {
  4637  	*x = CancelTestMatrixRequest{}
  4638  	if protoimpl.UnsafeEnabled {
  4639  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[48]
  4640  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4641  		ms.StoreMessageInfo(mi)
  4642  	}
  4643  }
  4644  
  4645  func (x *CancelTestMatrixRequest) String() string {
  4646  	return protoimpl.X.MessageStringOf(x)
  4647  }
  4648  
  4649  func (*CancelTestMatrixRequest) ProtoMessage() {}
  4650  
  4651  func (x *CancelTestMatrixRequest) ProtoReflect() protoreflect.Message {
  4652  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[48]
  4653  	if protoimpl.UnsafeEnabled && x != nil {
  4654  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4655  		if ms.LoadMessageInfo() == nil {
  4656  			ms.StoreMessageInfo(mi)
  4657  		}
  4658  		return ms
  4659  	}
  4660  	return mi.MessageOf(x)
  4661  }
  4662  
  4663  // Deprecated: Use CancelTestMatrixRequest.ProtoReflect.Descriptor instead.
  4664  func (*CancelTestMatrixRequest) Descriptor() ([]byte, []int) {
  4665  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{48}
  4666  }
  4667  
  4668  func (x *CancelTestMatrixRequest) GetProjectId() string {
  4669  	if x != nil {
  4670  		return x.ProjectId
  4671  	}
  4672  	return ""
  4673  }
  4674  
  4675  func (x *CancelTestMatrixRequest) GetTestMatrixId() string {
  4676  	if x != nil {
  4677  		return x.TestMatrixId
  4678  	}
  4679  	return ""
  4680  }
  4681  
  4682  // Response containing the current state of the specified test matrix.
  4683  type CancelTestMatrixResponse struct {
  4684  	state         protoimpl.MessageState
  4685  	sizeCache     protoimpl.SizeCache
  4686  	unknownFields protoimpl.UnknownFields
  4687  
  4688  	// The current rolled-up state of the test matrix.
  4689  	// If this state is already final, then the cancelation request will
  4690  	// have no effect.
  4691  	TestState TestState `protobuf:"varint,1,opt,name=test_state,json=testState,proto3,enum=google.devtools.testing.v1.TestState" json:"test_state,omitempty"`
  4692  }
  4693  
  4694  func (x *CancelTestMatrixResponse) Reset() {
  4695  	*x = CancelTestMatrixResponse{}
  4696  	if protoimpl.UnsafeEnabled {
  4697  		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[49]
  4698  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4699  		ms.StoreMessageInfo(mi)
  4700  	}
  4701  }
  4702  
  4703  func (x *CancelTestMatrixResponse) String() string {
  4704  	return protoimpl.X.MessageStringOf(x)
  4705  }
  4706  
  4707  func (*CancelTestMatrixResponse) ProtoMessage() {}
  4708  
  4709  func (x *CancelTestMatrixResponse) ProtoReflect() protoreflect.Message {
  4710  	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[49]
  4711  	if protoimpl.UnsafeEnabled && x != nil {
  4712  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4713  		if ms.LoadMessageInfo() == nil {
  4714  			ms.StoreMessageInfo(mi)
  4715  		}
  4716  		return ms
  4717  	}
  4718  	return mi.MessageOf(x)
  4719  }
  4720  
  4721  // Deprecated: Use CancelTestMatrixResponse.ProtoReflect.Descriptor instead.
  4722  func (*CancelTestMatrixResponse) Descriptor() ([]byte, []int) {
  4723  	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{49}
  4724  }
  4725  
  4726  func (x *CancelTestMatrixResponse) GetTestState() TestState {
  4727  	if x != nil {
  4728  		return x.TestState
  4729  	}
  4730  	return TestState_TEST_STATE_UNSPECIFIED
  4731  }
  4732  
  4733  var File_google_devtools_testing_v1_test_execution_proto protoreflect.FileDescriptor
  4734  
  4735  var file_google_devtools_testing_v1_test_execution_proto_rawDesc = []byte{
  4736  	0x0a, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c,
  4737  	0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x65, 0x73,
  4738  	0x74, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74,
  4739  	0x6f, 0x12, 0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f,
  4740  	0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67,
  4741  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61,
  4742  	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f,
  4743  	0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70,
  4744  	0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69,
  4745  	0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e,
  4746  	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72,
  4747  	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
  4748  	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72,
  4749  	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
  4750  	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xfd, 0x06, 0x0a, 0x0a, 0x54, 0x65, 0x73, 0x74, 0x4d,
  4751  	0x61, 0x74, 0x72, 0x69, 0x78, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x61,
  4752  	0x74, 0x72, 0x69, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74,
  4753  	0x65, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70,
  4754  	0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52,
  4755  	0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x47, 0x0a, 0x0b, 0x63, 0x6c,
  4756  	0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32,
  4757  	0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c,
  4758  	0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x69,
  4759  	0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49,
  4760  	0x6e, 0x66, 0x6f, 0x12, 0x5c, 0x0a, 0x12, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63,
  4761  	0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
  4762  	0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c,
  4763  	0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73,
  4764  	0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11,
  4765  	0x74, 0x65, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
  4766  	0x6e, 0x12, 0x5c, 0x0a, 0x12, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74,
  4767  	0x5f, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e,
  4768  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e,
  4769  	0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72,
  4770  	0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x52, 0x11, 0x65, 0x6e,
  4771  	0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x12,
  4772  	0x52, 0x0a, 0x0f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f,
  4773  	0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  4774  	0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69,
  4775  	0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74,
  4776  	0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x74, 0x65, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69,
  4777  	0x6f, 0x6e, 0x73, 0x12, 0x50, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x74,
  4778  	0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f,
  4779  	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65,
  4780  	0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x53,
  4781  	0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x53, 0x74,
  4782  	0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08,
  4783  	0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65,
  4784  	0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76,
  4785  	0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61,
  4786  	0x74, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18,
  4787  	0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
  4788  	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
  4789  	0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x66, 0x0a, 0x16,
  4790  	0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x5f, 0x64,
  4791  	0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x67,
  4792  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74,
  4793  	0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69,
  4794  	0x64, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x14,
  4795  	0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x44, 0x65, 0x74,
  4796  	0x61, 0x69, 0x6c, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x66, 0x6c, 0x61, 0x6b, 0x79, 0x5f, 0x74, 0x65,
  4797  	0x73, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28,
  4798  	0x05, 0x52, 0x11, 0x66, 0x6c, 0x61, 0x6b, 0x79, 0x54, 0x65, 0x73, 0x74, 0x41, 0x74, 0x74, 0x65,
  4799  	0x6d, 0x70, 0x74, 0x73, 0x12, 0x53, 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f,
  4800  	0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e,
  4801  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e,
  4802  	0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x63, 0x6f,
  4803  	0x6d, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x63, 0x6f,
  4804  	0x6d, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x61, 0x69,
  4805  	0x6c, 0x5f, 0x66, 0x61, 0x73, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x61,
  4806  	0x69, 0x6c, 0x46, 0x61, 0x73, 0x74, 0x22, 0xd9, 0x04, 0x0a, 0x0d, 0x54, 0x65, 0x73, 0x74, 0x45,
  4807  	0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
  4808  	0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x74, 0x72,
  4809  	0x69, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x74,
  4810  	0x72, 0x69, 0x78, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
  4811  	0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65,
  4812  	0x63, 0x74, 0x49, 0x64, 0x12, 0x5c, 0x0a, 0x12, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x70, 0x65,
  4813  	0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
  4814  	0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f,
  4815  	0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65,
  4816  	0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
  4817  	0x11, 0x74, 0x65, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
  4818  	0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28,
  4819  	0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f,
  4820  	0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53,
  4821  	0x68, 0x61, 0x72, 0x64, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x12, 0x49, 0x0a, 0x0b, 0x65,
  4822  	0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
  4823  	0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f,
  4824  	0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e,
  4825  	0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72,
  4826  	0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18,
  4827  	0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64,
  4828  	0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e,
  4829  	0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74,
  4830  	0x61, 0x74, 0x65, 0x12, 0x57, 0x0a, 0x11, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x75,
  4831  	0x6c, 0x74, 0x73, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b,
  4832  	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73,
  4833  	0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c,
  4834  	0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x53, 0x74, 0x65, 0x70, 0x52, 0x0f, 0x74, 0x6f, 0x6f,
  4835  	0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x53, 0x74, 0x65, 0x70, 0x12, 0x38, 0x0a, 0x09,
  4836  	0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32,
  4837  	0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
  4838  	0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d,
  4839  	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x4a, 0x0a, 0x0c, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x64,
  4840  	0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67,
  4841  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74,
  4842  	0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x44, 0x65,
  4843  	0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0b, 0x74, 0x65, 0x73, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69,
  4844  	0x6c, 0x73, 0x22, 0xbe, 0x06, 0x0a, 0x11, 0x54, 0x65, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69,
  4845  	0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x0c, 0x74, 0x65, 0x73, 0x74,
  4846  	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
  4847  	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
  4848  	0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x74, 0x65, 0x73, 0x74, 0x54,
  4849  	0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x46, 0x0a, 0x0a, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x73,
  4850  	0x65, 0x74, 0x75, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f,
  4851  	0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73,
  4852  	0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x65, 0x74, 0x75,
  4853  	0x70, 0x48, 0x00, 0x52, 0x09, 0x74, 0x65, 0x73, 0x74, 0x53, 0x65, 0x74, 0x75, 0x70, 0x12, 0x50,
  4854  	0x0a, 0x0e, 0x69, 0x6f, 0x73, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x74, 0x75, 0x70,
  4855  	0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
  4856  	0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67,
  4857  	0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6f, 0x73, 0x54, 0x65, 0x73, 0x74, 0x53, 0x65, 0x74, 0x75, 0x70,
  4858  	0x48, 0x00, 0x52, 0x0c, 0x69, 0x6f, 0x73, 0x54, 0x65, 0x73, 0x74, 0x53, 0x65, 0x74, 0x75, 0x70,
  4859  	0x12, 0x7a, 0x0a, 0x1c, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x5f, 0x69, 0x6e, 0x73, 0x74,
  4860  	0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x65, 0x73, 0x74,
  4861  	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
  4862  	0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67,
  4863  	0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x72,
  4864  	0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x48, 0x01,
  4865  	0x52, 0x1a, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d,
  4866  	0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x12, 0x59, 0x0a, 0x11,
  4867  	0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x5f, 0x72, 0x6f, 0x62, 0x6f, 0x5f, 0x74, 0x65, 0x73,
  4868  	0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  4869  	0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e,
  4870  	0x67, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x52, 0x6f, 0x62, 0x6f,
  4871  	0x54, 0x65, 0x73, 0x74, 0x48, 0x01, 0x52, 0x0f, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x52,
  4872  	0x6f, 0x62, 0x6f, 0x54, 0x65, 0x73, 0x74, 0x12, 0x59, 0x0a, 0x11, 0x61, 0x6e, 0x64, 0x72, 0x6f,
  4873  	0x69, 0x64, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x18, 0x09, 0x20, 0x01,
  4874  	0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74,
  4875  	0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e,
  4876  	0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x6f, 0x70, 0x48,
  4877  	0x01, 0x52, 0x0f, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4c, 0x6f,
  4878  	0x6f, 0x70, 0x12, 0x47, 0x0a, 0x0b, 0x69, 0x6f, 0x73, 0x5f, 0x78, 0x63, 0x5f, 0x74, 0x65, 0x73,
  4879  	0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  4880  	0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e,
  4881  	0x67, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6f, 0x73, 0x58, 0x63, 0x54, 0x65, 0x73, 0x74, 0x48, 0x01,
  4882  	0x52, 0x09, 0x69, 0x6f, 0x73, 0x58, 0x63, 0x54, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x0d, 0x69,
  4883  	0x6f, 0x73, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x18, 0x0f, 0x20, 0x01,
  4884  	0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74,
  4885  	0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e,
  4886  	0x49, 0x6f, 0x73, 0x54, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x6f, 0x70, 0x48, 0x01, 0x52, 0x0b, 0x69,
  4887  	0x6f, 0x73, 0x54, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x6f, 0x70, 0x12, 0x36, 0x0a, 0x17, 0x64, 0x69,
  4888  	0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x5f, 0x72, 0x65, 0x63, 0x6f,
  4889  	0x72, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x64, 0x69, 0x73,
  4890  	0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69,
  4891  	0x6e, 0x67, 0x12, 0x3e, 0x0a, 0x1b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x65,
  4892  	0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
  4893  	0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65,
  4894  	0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69,
  4895  	0x63, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x73, 0x65, 0x74, 0x75, 0x70, 0x42, 0x06, 0x0a, 0x04, 0x74,
  4896  	0x65, 0x73, 0x74, 0x22, 0x3a, 0x0a, 0x0d, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x63, 0x65, 0x53,
  4897  	0x65, 0x74, 0x75, 0x70, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
  4898  	0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f,
  4899  	0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22,
  4900  	0xa8, 0x04, 0x0a, 0x09, 0x54, 0x65, 0x73, 0x74, 0x53, 0x65, 0x74, 0x75, 0x70, 0x12, 0x4a, 0x0a,
  4901  	0x0d, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x18, 0x01,
  4902  	0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65,
  4903  	0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76,
  4904  	0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x0b, 0x66, 0x69,
  4905  	0x6c, 0x65, 0x73, 0x54, 0x6f, 0x50, 0x75, 0x73, 0x68, 0x12, 0x2e, 0x0a, 0x13, 0x64, 0x69, 0x72,
  4906  	0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x75, 0x6c, 0x6c,
  4907  	0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72,
  4908  	0x69, 0x65, 0x73, 0x54, 0x6f, 0x50, 0x75, 0x6c, 0x6c, 0x12, 0x48, 0x0a, 0x0f, 0x61, 0x64, 0x64,
  4909  	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x61, 0x70, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03,
  4910  	0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74,
  4911  	0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e,
  4912  	0x41, 0x70, 0x6b, 0x52, 0x0e, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41,
  4913  	0x70, 0x6b, 0x73, 0x12, 0x3d, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04,
  4914  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65,
  4915  	0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76,
  4916  	0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75,
  4917  	0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x70, 0x72,
  4918  	0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x65, 0x74,
  4919  	0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x64, 0x0a, 0x15, 0x65,
  4920  	0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61,
  4921  	0x62, 0x6c, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f,
  4922  	0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73,
  4923  	0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d,
  4924  	0x65, 0x6e, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x14, 0x65, 0x6e, 0x76,
  4925  	0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65,
  4926  	0x73, 0x12, 0x49, 0x0a, 0x08, 0x73, 0x79, 0x73, 0x74, 0x72, 0x61, 0x63, 0x65, 0x18, 0x09, 0x20,
  4927  	0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76,
  4928  	0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31,
  4929  	0x2e, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x63, 0x65, 0x53, 0x65, 0x74, 0x75, 0x70, 0x42, 0x02,
  4930  	0x18, 0x01, 0x52, 0x08, 0x73, 0x79, 0x73, 0x74, 0x72, 0x61, 0x63, 0x65, 0x12, 0x3c, 0x0a, 0x1a,
  4931  	0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x5f, 0x70,
  4932  	0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08,
  4933  	0x52, 0x18, 0x64, 0x6f, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x50,
  4934  	0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xab, 0x02, 0x0a, 0x0c, 0x49,
  4935  	0x6f, 0x73, 0x54, 0x65, 0x73, 0x74, 0x53, 0x65, 0x74, 0x75, 0x70, 0x12, 0x27, 0x0a, 0x0f, 0x6e,
  4936  	0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01,
  4937  	0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f,
  4938  	0x66, 0x69, 0x6c, 0x65, 0x12, 0x52, 0x0a, 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,
  4939  	0x61, 0x6c, 0x5f, 0x69, 0x70, 0x61, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e,
  4940  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e,
  4941  	0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52,
  4942  	0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0e, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69,
  4943  	0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x70, 0x61, 0x73, 0x12, 0x48, 0x0a, 0x0a, 0x70, 0x75, 0x73, 0x68,
  4944  	0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67,
  4945  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74,
  4946  	0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6f, 0x73, 0x44, 0x65, 0x76,
  4947  	0x69, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x09, 0x70, 0x75, 0x73, 0x68, 0x46, 0x69, 0x6c,
  4948  	0x65, 0x73, 0x12, 0x54, 0x0a, 0x10, 0x70, 0x75, 0x6c, 0x6c, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63,
  4949  	0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67,
  4950  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74,
  4951  	0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6f, 0x73, 0x44, 0x65, 0x76,
  4952  	0x69, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x0f, 0x70, 0x75, 0x6c, 0x6c, 0x44, 0x69, 0x72,
  4953  	0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x22, 0x3d, 0x0a, 0x13, 0x45, 0x6e, 0x76, 0x69,
  4954  	0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12,
  4955  	0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
  4956  	0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
  4957  	0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x64, 0x0a, 0x07, 0x41, 0x63, 0x63, 0x6f, 0x75,
  4958  	0x6e, 0x74, 0x12, 0x49, 0x0a, 0x0b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x61, 0x75, 0x74,
  4959  	0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  4960  	0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e,
  4961  	0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x48,
  4962  	0x00, 0x52, 0x0a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x42, 0x0e, 0x0a,
  4963  	0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x0c, 0x0a,
  4964  	0x0a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x22, 0x6f, 0x0a, 0x03, 0x41,
  4965  	0x70, 0x6b, 0x12, 0x45, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01,
  4966  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65,
  4967  	0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76,
  4968  	0x31, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52,
  4969  	0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x63,
  4970  	0x6b, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
  4971  	0x0b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x6b, 0x0a, 0x09,
  4972  	0x41, 0x70, 0x70, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x54, 0x0a, 0x0f, 0x62, 0x75, 0x6e,
  4973  	0x64, 0x6c, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01,
  4974  	0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74,
  4975  	0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e,
  4976  	0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52,
  4977  	0x0e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42,
  4978  	0x08, 0x0a, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0xab, 0x01, 0x0a, 0x0a, 0x44, 0x65,
  4979  	0x76, 0x69, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x6f, 0x62, 0x62, 0x5f,
  4980  	0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f,
  4981  	0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73,
  4982  	0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x48,
  4983  	0x00, 0x52, 0x07, 0x6f, 0x62, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x4c, 0x0a, 0x0c, 0x72, 0x65,
  4984  	0x67, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
  4985  	0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f,
  4986  	0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65,
  4987  	0x67, 0x75, 0x6c, 0x61, 0x72, 0x46, 0x69, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x65, 0x67,
  4988  	0x75, 0x6c, 0x61, 0x72, 0x46, 0x69, 0x6c, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69,
  4989  	0x63, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x6a, 0x0a, 0x07, 0x4f, 0x62, 0x62, 0x46, 0x69,
  4990  	0x6c, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6f, 0x62, 0x62, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6e,
  4991  	0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x62, 0x62, 0x46, 0x69,
  4992  	0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x03, 0x6f, 0x62, 0x62, 0x18, 0x02, 0x20,
  4993  	0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76,
  4994  	0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31,
  4995  	0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x03,
  4996  	0x6f, 0x62, 0x62, 0x22, 0x73, 0x0a, 0x0b, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x46, 0x69,
  4997  	0x6c, 0x65, 0x12, 0x43, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20,
  4998  	0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76,
  4999  	0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31,
  5000  	0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x07,
  5001  	0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63,
  5002  	0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65,
  5003  	0x76, 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, 0x92, 0x01, 0x0a, 0x0d, 0x49, 0x6f, 0x73,
  5004  	0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x43, 0x0a, 0x07, 0x63, 0x6f,
  5005  	0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f,
  5006  	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65,
  5007  	0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x66,
  5008  	0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12,
  5009  	0x1b, 0x0a, 0x09, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
  5010  	0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b,
  5011  	0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28,
  5012  	0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, 0x9e, 0x02,
  5013  	0x0a, 0x0f, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x6f,
  5014  	0x70, 0x12, 0x44, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x5f, 0x61, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01,
  5015  	0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74,
  5016  	0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e,
  5017  	0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52,
  5018  	0x06, 0x61, 0x70, 0x70, 0x41, 0x70, 0x6b, 0x12, 0x46, 0x0a, 0x0a, 0x61, 0x70, 0x70, 0x5f, 0x62,
  5019  	0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f,
  5020  	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65,
  5021  	0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x42, 0x75, 0x6e, 0x64,
  5022  	0x6c, 0x65, 0x48, 0x00, 0x52, 0x09, 0x61, 0x70, 0x70, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12,
  5023  	0x24, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x69,
  5024  	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x50, 0x61, 0x63, 0x6b,
  5025  	0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x63, 0x65, 0x6e, 0x61, 0x72, 0x69,
  5026  	0x6f, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x73, 0x63, 0x65, 0x6e, 0x61, 0x72,
  5027  	0x69, 0x6f, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x63, 0x65, 0x6e, 0x61, 0x72, 0x69, 0x6f, 0x5f,
  5028  	0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x63,
  5029  	0x65, 0x6e, 0x61, 0x72, 0x69, 0x6f, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x42, 0x10, 0x0a, 0x0e,
  5030  	0x61, 0x70, 0x70, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x22, 0xa1,
  5031  	0x02, 0x0a, 0x09, 0x49, 0x6f, 0x73, 0x58, 0x63, 0x54, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x09,
  5032  	0x74, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x7a, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
  5033  	0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c,
  5034  	0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c,
  5035  	0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x08, 0x74, 0x65, 0x73, 0x74,
  5036  	0x73, 0x5a, 0x69, 0x70, 0x12, 0x47, 0x0a, 0x09, 0x78, 0x63, 0x74, 0x65, 0x73, 0x74, 0x72, 0x75,
  5037  	0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  5038  	0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e,
  5039  	0x67, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,
  5040  	0x63, 0x65, 0x52, 0x09, 0x78, 0x63, 0x74, 0x65, 0x73, 0x74, 0x72, 0x75, 0x6e, 0x12, 0x23, 0x0a,
  5041  	0x0d, 0x78, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03,
  5042  	0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x78, 0x63, 0x6f, 0x64, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69,
  5043  	0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0d, 0x61, 0x70, 0x70, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65,
  5044  	0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x42, 0x75,
  5045  	0x6e, 0x64, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x19, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x73,
  5046  	0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x6d, 0x65,
  5047  	0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x74, 0x65, 0x73, 0x74, 0x53,
  5048  	0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e,
  5049  	0x74, 0x73, 0x22, 0x93, 0x01, 0x0a, 0x0b, 0x49, 0x6f, 0x73, 0x54, 0x65, 0x73, 0x74, 0x4c, 0x6f,
  5050  	0x6f, 0x70, 0x12, 0x42, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x70, 0x61, 0x18, 0x01, 0x20,
  5051  	0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76,
  5052  	0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31,
  5053  	0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x06,
  5054  	0x61, 0x70, 0x70, 0x49, 0x70, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x63, 0x65, 0x6e, 0x61, 0x72,
  5055  	0x69, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x73, 0x63, 0x65, 0x6e, 0x61,
  5056  	0x72, 0x69, 0x6f, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x61, 0x70, 0x70, 0x5f, 0x62, 0x75, 0x6e, 0x64,
  5057  	0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x70, 0x70,
  5058  	0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x64, 0x22, 0xd5, 0x04, 0x0a, 0x1a, 0x41, 0x6e, 0x64,
  5059  	0x72, 0x6f, 0x69, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74,
  5060  	0x69, 0x6f, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x5f, 0x61,
  5061  	0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  5062  	0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69,
  5063  	0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65,
  5064  	0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x06, 0x61, 0x70, 0x70, 0x41, 0x70, 0x6b, 0x12, 0x46, 0x0a,
  5065  	0x0a, 0x61, 0x70, 0x70, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28,
  5066  	0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f,
  5067  	0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x41,
  5068  	0x70, 0x70, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x09, 0x61, 0x70, 0x70, 0x42,
  5069  	0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x44, 0x0a, 0x08, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x70,
  5070  	0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  5071  	0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e,
  5072  	0x67, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,
  5073  	0x63, 0x65, 0x52, 0x07, 0x74, 0x65, 0x73, 0x74, 0x41, 0x70, 0x6b, 0x12, 0x24, 0x0a, 0x0e, 0x61,
  5074  	0x70, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20,
  5075  	0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x49,
  5076  	0x64, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67,
  5077  	0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x65, 0x73, 0x74,
  5078  	0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x65, 0x73,
  5079  	0x74, 0x5f, 0x72, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x05,
  5080  	0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x65, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x6e, 0x65, 0x72,
  5081  	0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x61,
  5082  	0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x73,
  5083  	0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x5f, 0x0a, 0x13, 0x6f, 0x72, 0x63, 0x68,
  5084  	0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18,
  5085  	0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64,
  5086  	0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e,
  5087  	0x76, 0x31, 0x2e, 0x4f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4f,
  5088  	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61,
  5089  	0x74, 0x6f, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x53, 0x0a, 0x0f, 0x73, 0x68, 0x61,
  5090  	0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01,
  5091  	0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74,
  5092  	0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e,
  5093  	0x53, 0x68, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e,
  5094  	0x73, 0x68, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x10,
  5095  	0x0a, 0x0e, 0x61, 0x70, 0x70, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x65, 0x73, 0x74,
  5096  	0x22, 0x89, 0x05, 0x0a, 0x0f, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x52, 0x6f, 0x62, 0x6f,
  5097  	0x54, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x5f, 0x61, 0x70, 0x6b, 0x18,
  5098  	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64,
  5099  	0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e,
  5100  	0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,
  5101  	0x48, 0x00, 0x52, 0x06, 0x61, 0x70, 0x70, 0x41, 0x70, 0x6b, 0x12, 0x46, 0x0a, 0x0a, 0x61, 0x70,
  5102  	0x70, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25,
  5103  	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73,
  5104  	0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x42,
  5105  	0x75, 0x6e, 0x64, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x09, 0x61, 0x70, 0x70, 0x42, 0x75, 0x6e, 0x64,
  5106  	0x6c, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67,
  5107  	0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x50,
  5108  	0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x70, 0x70, 0x5f,
  5109  	0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79,
  5110  	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x70, 0x70, 0x49, 0x6e, 0x69, 0x74, 0x69,
  5111  	0x61, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x09, 0x6d, 0x61,
  5112  	0x78, 0x5f, 0x64, 0x65, 0x70, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x42, 0x02, 0x18,
  5113  	0x01, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x44, 0x65, 0x70, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x09, 0x6d,
  5114  	0x61, 0x78, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x42, 0x02,
  5115  	0x18, 0x01, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x53, 0x74, 0x65, 0x70, 0x73, 0x12, 0x52, 0x0a, 0x0f,
  5116  	0x72, 0x6f, 0x62, 0x6f, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x73, 0x18,
  5117  	0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64,
  5118  	0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e,
  5119  	0x76, 0x31, 0x2e, 0x52, 0x6f, 0x62, 0x6f, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65,
  5120  	0x52, 0x0e, 0x72, 0x6f, 0x62, 0x6f, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x73,
  5121  	0x12, 0x41, 0x0a, 0x09, 0x72, 0x6f, 0x62, 0x6f, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20,
  5122  	0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76,
  5123  	0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31,
  5124  	0x2e, 0x52, 0x6f, 0x62, 0x6f, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x08, 0x72, 0x6f, 0x62, 0x6f, 0x4d,
  5125  	0x6f, 0x64, 0x65, 0x12, 0x4a, 0x0a, 0x0b, 0x72, 0x6f, 0x62, 0x6f, 0x5f, 0x73, 0x63, 0x72, 0x69,
  5126  	0x70, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  5127  	0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69,
  5128  	0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65,
  5129  	0x6e, 0x63, 0x65, 0x52, 0x0a, 0x72, 0x6f, 0x62, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x12,
  5130  	0x59, 0x0a, 0x10, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65,
  5131  	0x6e, 0x74, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  5132  	0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74,
  5133  	0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x62, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x74,
  5134  	0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74,
  5135  	0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x61, 0x70,
  5136  	0x70, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x22, 0xa0, 0x01, 0x0a,
  5137  	0x0d, 0x52, 0x6f, 0x62, 0x6f, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x23,
  5138  	0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
  5139  	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e,
  5140  	0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x65, 0x78,
  5141  	0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x65,
  5142  	0x78, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70,
  5143  	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  5144  	0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e,
  5145  	0x67, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x62, 0x6f, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54,
  5146  	0x79, 0x70, 0x65, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22,
  5147  	0x99, 0x02, 0x0a, 0x12, 0x52, 0x6f, 0x62, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67,
  5148  	0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x61, 0x0a, 0x11, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68,
  5149  	0x65, 0x72, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
  5150  	0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f,
  5151  	0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4c,
  5152  	0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x49,
  5153  	0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x10, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65,
  5154  	0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x58, 0x0a, 0x0e, 0x73, 0x74, 0x61,
  5155  	0x72, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28,
  5156  	0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f,
  5157  	0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53,
  5158  	0x74, 0x61, 0x72, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x74, 0x65,
  5159  	0x6e, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76,
  5160  	0x69, 0x74, 0x79, 0x12, 0x33, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x03,
  5161  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
  5162  	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
  5163  	0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72,
  5164  	0x74, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x18, 0x0a, 0x16, 0x4c,
  5165  	0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x49,
  5166  	0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x5f, 0x0a, 0x13, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x63,
  5167  	0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06,
  5168  	0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63,
  5169  	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28,
  5170  	0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f,
  5171  	0x72, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65,
  5172  	0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x22, 0xb3, 0x02, 0x0a, 0x11, 0x45, 0x6e, 0x76, 0x69, 0x72,
  5173  	0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x12, 0x52, 0x0a, 0x0e,
  5174  	0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x5f, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x18, 0x01,
  5175  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65,
  5176  	0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76,
  5177  	0x31, 0x2e, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x48,
  5178  	0x00, 0x52, 0x0d, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78,
  5179  	0x12, 0x5f, 0x0a, 0x13, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x5f, 0x64, 0x65, 0x76, 0x69,
  5180  	0x63, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e,
  5181  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e,
  5182  	0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x64, 0x72, 0x6f,
  5183  	0x69, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x11,
  5184  	0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73,
  5185  	0x74, 0x12, 0x53, 0x0a, 0x0f, 0x69, 0x6f, 0x73, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f,
  5186  	0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f,
  5187  	0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73,
  5188  	0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6f, 0x73, 0x44, 0x65, 0x76, 0x69, 0x63,
  5189  	0x65, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x69, 0x6f, 0x73, 0x44, 0x65, 0x76, 0x69,
  5190  	0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f,
  5191  	0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x22, 0x67, 0x0a, 0x11,
  5192  	0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73,
  5193  	0x74, 0x12, 0x52, 0x0a, 0x0f, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x5f, 0x64, 0x65, 0x76,
  5194  	0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f,
  5195  	0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73,
  5196  	0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x44,
  5197  	0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x0e, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x44, 0x65,
  5198  	0x76, 0x69, 0x63, 0x65, 0x73, 0x22, 0x57, 0x0a, 0x0d, 0x49, 0x6f, 0x73, 0x44, 0x65, 0x76, 0x69,
  5199  	0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0b, 0x69, 0x6f, 0x73, 0x5f, 0x64, 0x65,
  5200  	0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f,
  5201  	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65,
  5202  	0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6f, 0x73, 0x44, 0x65, 0x76, 0x69,
  5203  	0x63, 0x65, 0x52, 0x0a, 0x69, 0x6f, 0x73, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x22, 0xa9,
  5204  	0x01, 0x0a, 0x0d, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78,
  5205  	0x12, 0x2a, 0x0a, 0x11, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65,
  5206  	0x6c, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x6e, 0x64,
  5207  	0x72, 0x6f, 0x69, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x64, 0x73, 0x12, 0x2e, 0x0a, 0x13,
  5208  	0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f,
  5209  	0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x61, 0x6e, 0x64, 0x72, 0x6f,
  5210  	0x69, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07,
  5211  	0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6c,
  5212  	0x6f, 0x63, 0x61, 0x6c, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74,
  5213  	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x72,
  5214  	0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x7e, 0x0a, 0x0a, 0x43, 0x6c,
  5215  	0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
  5216  	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x5c, 0x0a, 0x13,
  5217  	0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x64, 0x65, 0x74, 0x61,
  5218  	0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  5219  	0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74,
  5220  	0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66,
  5221  	0x6f, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x11, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49,
  5222  	0x6e, 0x66, 0x6f, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x0a, 0x10, 0x43, 0x6c,
  5223  	0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x10,
  5224  	0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
  5225  	0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
  5226  	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xdc, 0x02, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x75, 0x6c,
  5227  	0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x60, 0x0a, 0x14, 0x67, 0x6f, 0x6f, 0x67,
  5228  	0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65,
  5229  	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
  5230  	0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67,
  5231  	0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x53,
  5232  	0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x12, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x43, 0x6c,
  5233  	0x6f, 0x75, 0x64, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x60, 0x0a, 0x14, 0x74, 0x6f,
  5234  	0x6f, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f,
  5235  	0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  5236  	0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69,
  5237  	0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
  5238  	0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x12, 0x74, 0x6f, 0x6f, 0x6c, 0x52, 0x65,
  5239  	0x73, 0x75, 0x6c, 0x74, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x66, 0x0a, 0x16,
  5240  	0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x5f, 0x65, 0x78, 0x65,
  5241  	0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67,
  5242  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74,
  5243  	0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x52, 0x65,
  5244  	0x73, 0x75, 0x6c, 0x74, 0x73, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14,
  5245  	0x74, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x45, 0x78, 0x65, 0x63, 0x75,
  5246  	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x5f,
  5247  	0x75, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c,
  5248  	0x74, 0x73, 0x55, 0x72, 0x6c, 0x22, 0x52, 0x0a, 0x12, 0x54, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73,
  5249  	0x75, 0x6c, 0x74, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x70,
  5250  	0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
  5251  	0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x69,
  5252  	0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
  5253  	0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x22, 0x77, 0x0a, 0x14, 0x54, 0x6f, 0x6f,
  5254  	0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f,
  5255  	0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18,
  5256  	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64,
  5257  	0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02,
  5258  	0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12,
  5259  	0x21, 0x0a, 0x0c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18,
  5260  	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
  5261  	0x49, 0x64, 0x22, 0x8b, 0x01, 0x0a, 0x0f, 0x54, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c,
  5262  	0x74, 0x73, 0x53, 0x74, 0x65, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63,
  5263  	0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a,
  5264  	0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79,
  5265  	0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x69, 0x73, 0x74, 0x6f,
  5266  	0x72, 0x79, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f,
  5267  	0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x78, 0x65, 0x63,
  5268  	0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x70, 0x5f,
  5269  	0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x65, 0x70, 0x49, 0x64,
  5270  	0x22, 0x2f, 0x0a, 0x12, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x53,
  5271  	0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x63, 0x73, 0x5f, 0x70, 0x61,
  5272  	0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x63, 0x73, 0x50, 0x61, 0x74,
  5273  	0x68, 0x22, 0x34, 0x0a, 0x0d, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,
  5274  	0x63, 0x65, 0x12, 0x1b, 0x0a, 0x08, 0x67, 0x63, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01,
  5275  	0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x67, 0x63, 0x73, 0x50, 0x61, 0x74, 0x68, 0x42,
  5276  	0x06, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x22, 0xb8, 0x01, 0x0a, 0x0b, 0x45, 0x6e, 0x76, 0x69,
  5277  	0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x52, 0x0a, 0x0e, 0x61, 0x6e, 0x64, 0x72, 0x6f,
  5278  	0x69, 0x64, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
  5279  	0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c,
  5280  	0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x64,
  5281  	0x72, 0x6f, 0x69, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x6e,
  5282  	0x64, 0x72, 0x6f, 0x69, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x46, 0x0a, 0x0a, 0x69,
  5283  	0x6f, 0x73, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
  5284  	0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c,
  5285  	0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6f, 0x73,
  5286  	0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x48, 0x00, 0x52, 0x09, 0x69, 0x6f, 0x73, 0x44, 0x65, 0x76,
  5287  	0x69, 0x63, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65,
  5288  	0x6e, 0x74, 0x22, 0xa1, 0x01, 0x0a, 0x0d, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x44, 0x65,
  5289  	0x76, 0x69, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x5f,
  5290  	0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e,
  5291  	0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x2c,
  5292  	0x0a, 0x12, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,
  5293  	0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x6e, 0x64, 0x72,
  5294  	0x6f, 0x69, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06,
  5295  	0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x6f,
  5296  	0x63, 0x61, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74,
  5297  	0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x72, 0x69, 0x65, 0x6e,
  5298  	0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x8d, 0x01, 0x0a, 0x09, 0x49, 0x6f, 0x73, 0x44, 0x65,
  5299  	0x76, 0x69, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x69, 0x6f, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65,
  5300  	0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6f, 0x73, 0x4d,
  5301  	0x6f, 0x64, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x69, 0x6f, 0x73, 0x5f, 0x76, 0x65,
  5302  	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
  5303  	0x69, 0x6f, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06,
  5304  	0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x6f,
  5305  	0x63, 0x61, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74,
  5306  	0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x72, 0x69, 0x65, 0x6e,
  5307  	0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5f, 0x0a, 0x0b, 0x54, 0x65, 0x73, 0x74, 0x44, 0x65,
  5308  	0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73,
  5309  	0x73, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09,
  5310  	0x52, 0x10, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
  5311  	0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73,
  5312  	0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72,
  5313  	0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xf3, 0x01, 0x0a, 0x14, 0x49, 0x6e, 0x76, 0x61,
  5314  	0x6c, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c,
  5315  	0x12, 0x4f, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
  5316  	0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f,
  5317  	0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e,
  5318  	0x76, 0x61, 0x6c, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x65, 0x74, 0x61,
  5319  	0x69, 0x6c, 0x2e, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f,
  5320  	0x6e, 0x22, 0x89, 0x01, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x12,
  5321  	0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49,
  5322  	0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5f,
  5323  	0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x45, 0x53,
  5324  	0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x4f, 0x4f, 0x5f, 0x42, 0x49, 0x47, 0x10, 0x02, 0x12,
  5325  	0x16, 0x0a, 0x12, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f,
  5326  	0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x55, 0x50,
  5327  	0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x4f, 0x54, 0x5f,
  5328  	0x49, 0x4d, 0x50, 0x4c, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x45, 0x44, 0x10, 0x05, 0x22, 0xcb, 0x01,
  5329  	0x0a, 0x0e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
  5330  	0x12, 0x58, 0x0a, 0x10, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x73, 0x68, 0x61, 0x72,
  5331  	0x64, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f,
  5332  	0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73,
  5333  	0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x53,
  5334  	0x68, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x0f, 0x75, 0x6e, 0x69, 0x66, 0x6f,
  5335  	0x72, 0x6d, 0x53, 0x68, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x55, 0x0a, 0x0f, 0x6d, 0x61,
  5336  	0x6e, 0x75, 0x61, 0x6c, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20,
  5337  	0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76,
  5338  	0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31,
  5339  	0x2e, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x53, 0x68, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x48,
  5340  	0x00, 0x52, 0x0e, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x53, 0x68, 0x61, 0x72, 0x64, 0x69, 0x6e,
  5341  	0x67, 0x42, 0x08, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x30, 0x0a, 0x0f, 0x55,
  5342  	0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x53, 0x68, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x1d,
  5343  	0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01,
  5344  	0x28, 0x05, 0x52, 0x09, 0x6e, 0x75, 0x6d, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x22, 0x76, 0x0a,
  5345  	0x0e, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x53, 0x68, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x12,
  5346  	0x64, 0x0a, 0x16, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x5f,
  5347  	0x66, 0x6f, 0x72, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
  5348  	0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c,
  5349  	0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73,
  5350  	0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x46, 0x6f, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64,
  5351  	0x52, 0x13, 0x74, 0x65, 0x73, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x46, 0x6f, 0x72,
  5352  	0x53, 0x68, 0x61, 0x72, 0x64, 0x22, 0x38, 0x0a, 0x13, 0x54, 0x65, 0x73, 0x74, 0x54, 0x61, 0x72,
  5353  	0x67, 0x65, 0x74, 0x73, 0x46, 0x6f, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x21, 0x0a, 0x0c,
  5354  	0x74, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03,
  5355  	0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x73, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x22,
  5356  	0xad, 0x01, 0x0a, 0x05, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x68, 0x61,
  5357  	0x72, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a,
  5358  	0x73, 0x68, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x75,
  5359  	0x6d, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09,
  5360  	0x6e, 0x75, 0x6d, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x12, 0x64, 0x0a, 0x16, 0x74, 0x65, 0x73,
  5361  	0x74, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x73, 0x68,
  5362  	0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  5363  	0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74,
  5364  	0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65,
  5365  	0x74, 0x73, 0x46, 0x6f, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x13, 0x74, 0x65, 0x73, 0x74,
  5366  	0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x46, 0x6f, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x22,
  5367  	0xa0, 0x01, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x61,
  5368  	0x74, 0x72, 0x69, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70,
  5369  	0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
  5370  	0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x47, 0x0a, 0x0b, 0x74, 0x65,
  5371  	0x73, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
  5372  	0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c,
  5373  	0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73,
  5374  	0x74, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x52, 0x0a, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x61, 0x74,
  5375  	0x72, 0x69, 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69,
  5376  	0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
  5377  	0x49, 0x64, 0x22, 0x5b, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x61, 0x74,
  5378  	0x72, 0x69, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72,
  5379  	0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
  5380  	0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x65, 0x73,
  5381  	0x74, 0x5f, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
  5382  	0x09, 0x52, 0x0c, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x49, 0x64, 0x22,
  5383  	0x5e, 0x0a, 0x17, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x61, 0x74,
  5384  	0x72, 0x69, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72,
  5385  	0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
  5386  	0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x65, 0x73,
  5387  	0x74, 0x5f, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
  5388  	0x09, 0x52, 0x0c, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x49, 0x64, 0x22,
  5389  	0x60, 0x0a, 0x18, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x61, 0x74,
  5390  	0x72, 0x69, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x74,
  5391  	0x65, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
  5392  	0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c,
  5393  	0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73,
  5394  	0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x09, 0x74, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74,
  5395  	0x65, 0x2a, 0x6c, 0x0a, 0x12, 0x4f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f,
  5396  	0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x1f, 0x4f, 0x52, 0x43, 0x48, 0x45,
  5397  	0x53, 0x54, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55,
  5398  	0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10,
  5399  	0x55, 0x53, 0x45, 0x5f, 0x4f, 0x52, 0x43, 0x48, 0x45, 0x53, 0x54, 0x52, 0x41, 0x54, 0x4f, 0x52,
  5400  	0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x4f, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x55, 0x53, 0x45,
  5401  	0x5f, 0x4f, 0x52, 0x43, 0x48, 0x45, 0x53, 0x54, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x10, 0x02, 0x2a,
  5402  	0x4d, 0x0a, 0x08, 0x52, 0x6f, 0x62, 0x6f, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x52,
  5403  	0x4f, 0x42, 0x4f, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49,
  5404  	0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x4f, 0x42, 0x4f, 0x5f, 0x56,
  5405  	0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x31, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x4f,
  5406  	0x42, 0x4f, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x32, 0x10, 0x02, 0x2a, 0x5b,
  5407  	0x0a, 0x0e, 0x52, 0x6f, 0x62, 0x6f, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65,
  5408  	0x12, 0x1b, 0x0a, 0x17, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f,
  5409  	0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a,
  5410  	0x0c, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x5f, 0x43, 0x4c, 0x49, 0x43, 0x4b, 0x10, 0x01, 0x12,
  5411  	0x0e, 0x0a, 0x0a, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x10, 0x02, 0x12,
  5412  	0x0a, 0x0a, 0x06, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x10, 0x03, 0x2a, 0xa4, 0x08, 0x0a, 0x14,
  5413  	0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x44, 0x65, 0x74,
  5414  	0x61, 0x69, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x22, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f,
  5415  	0x4d, 0x41, 0x54, 0x52, 0x49, 0x58, 0x5f, 0x44, 0x45, 0x54, 0x41, 0x49, 0x4c, 0x53, 0x5f, 0x55,
  5416  	0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13,
  5417  	0x44, 0x45, 0x54, 0x41, 0x49, 0x4c, 0x53, 0x5f, 0x55, 0x4e, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41,
  5418  	0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x4d, 0x41, 0x4c, 0x46, 0x4f, 0x52, 0x4d,
  5419  	0x45, 0x44, 0x5f, 0x41, 0x50, 0x4b, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x4d, 0x41, 0x4c, 0x46,
  5420  	0x4f, 0x52, 0x4d, 0x45, 0x44, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x41, 0x50, 0x4b, 0x10, 0x03,
  5421  	0x12, 0x0f, 0x0a, 0x0b, 0x4e, 0x4f, 0x5f, 0x4d, 0x41, 0x4e, 0x49, 0x46, 0x45, 0x53, 0x54, 0x10,
  5422  	0x04, 0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x4f, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x41, 0x47, 0x45, 0x5f,
  5423  	0x4e, 0x41, 0x4d, 0x45, 0x10, 0x05, 0x12, 0x18, 0x0a, 0x14, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49,
  5424  	0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x41, 0x47, 0x45, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x1f,
  5425  	0x12, 0x14, 0x0a, 0x10, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x53, 0x41, 0x4d, 0x45, 0x5f, 0x41, 0x53,
  5426  	0x5f, 0x41, 0x50, 0x50, 0x10, 0x06, 0x12, 0x16, 0x0a, 0x12, 0x4e, 0x4f, 0x5f, 0x49, 0x4e, 0x53,
  5427  	0x54, 0x52, 0x55, 0x4d, 0x45, 0x4e, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x07, 0x12, 0x10,
  5428  	0x0a, 0x0c, 0x4e, 0x4f, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x54, 0x55, 0x52, 0x45, 0x10, 0x14,
  5429  	0x12, 0x2d, 0x0a, 0x29, 0x49, 0x4e, 0x53, 0x54, 0x52, 0x55, 0x4d, 0x45, 0x4e, 0x54, 0x41, 0x54,
  5430  	0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x52, 0x43, 0x48, 0x45, 0x53, 0x54, 0x52, 0x41, 0x54, 0x4f, 0x52,
  5431  	0x5f, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x54, 0x49, 0x42, 0x4c, 0x45, 0x10, 0x12, 0x12,
  5432  	0x18, 0x0a, 0x14, 0x4e, 0x4f, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x45,
  5433  	0x52, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x10, 0x13, 0x12, 0x18, 0x0a, 0x14, 0x4e, 0x4f, 0x5f,
  5434  	0x4c, 0x41, 0x55, 0x4e, 0x43, 0x48, 0x45, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x49, 0x54,
  5435  	0x59, 0x10, 0x08, 0x12, 0x19, 0x0a, 0x15, 0x46, 0x4f, 0x52, 0x42, 0x49, 0x44, 0x44, 0x45, 0x4e,
  5436  	0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x09, 0x12, 0x1b,
  5437  	0x0a, 0x17, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x52, 0x4f, 0x42, 0x4f, 0x5f, 0x44,
  5438  	0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x56, 0x45, 0x53, 0x10, 0x0a, 0x12, 0x19, 0x0a, 0x15, 0x49,
  5439  	0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f,
  5440  	0x4e, 0x41, 0x4d, 0x45, 0x10, 0x21, 0x12, 0x1c, 0x0a, 0x18, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49,
  5441  	0x44, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49,
  5442  	0x4f, 0x4e, 0x10, 0x22, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x4c, 0x4f, 0x4f,
  5443  	0x50, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f,
  5444  	0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x0c, 0x12, 0x1f, 0x0a, 0x1b, 0x53,
  5445  	0x43, 0x45, 0x4e, 0x41, 0x52, 0x49, 0x4f, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4e, 0x4f,
  5446  	0x54, 0x5f, 0x44, 0x45, 0x43, 0x4c, 0x41, 0x52, 0x45, 0x44, 0x10, 0x0d, 0x12, 0x1c, 0x0a, 0x18,
  5447  	0x53, 0x43, 0x45, 0x4e, 0x41, 0x52, 0x49, 0x4f, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4d,
  5448  	0x41, 0x4c, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x44, 0x10, 0x0e, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x43,
  5449  	0x45, 0x4e, 0x41, 0x52, 0x49, 0x4f, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x44, 0x45, 0x43, 0x4c, 0x41,
  5450  	0x52, 0x45, 0x44, 0x10, 0x0f, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f,
  5451  	0x41, 0x44, 0x4d, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x43, 0x45, 0x49, 0x56, 0x45, 0x52, 0x10, 0x11,
  5452  	0x12, 0x19, 0x0a, 0x15, 0x4d, 0x41, 0x4c, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x44, 0x5f, 0x58, 0x43,
  5453  	0x5f, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x5a, 0x49, 0x50, 0x10, 0x0b, 0x12, 0x1b, 0x0a, 0x17, 0x42,
  5454  	0x55, 0x49, 0x4c, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x5f, 0x49, 0x4f, 0x53, 0x5f, 0x53, 0x49, 0x4d,
  5455  	0x55, 0x4c, 0x41, 0x54, 0x4f, 0x52, 0x10, 0x18, 0x12, 0x1b, 0x0a, 0x17, 0x4e, 0x4f, 0x5f, 0x54,
  5456  	0x45, 0x53, 0x54, 0x53, 0x5f, 0x49, 0x4e, 0x5f, 0x58, 0x43, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x5f,
  5457  	0x5a, 0x49, 0x50, 0x10, 0x19, 0x12, 0x1d, 0x0a, 0x19, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x45, 0x53,
  5458  	0x54, 0x49, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43,
  5459  	0x54, 0x53, 0x10, 0x1a, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x4e, 0x4f, 0x54,
  5460  	0x5f, 0x41, 0x50, 0x50, 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x45, 0x44, 0x10, 0x1c, 0x12, 0x1a, 0x0a,
  5461  	0x16, 0x50, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x43, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x5f, 0x42, 0x45,
  5462  	0x5f, 0x50, 0x41, 0x52, 0x53, 0x45, 0x44, 0x10, 0x1e, 0x12, 0x15, 0x0a, 0x0d, 0x54, 0x45, 0x53,
  5463  	0x54, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x5f, 0x41, 0x50, 0x4b, 0x10, 0x15, 0x1a, 0x02, 0x08, 0x01,
  5464  	0x12, 0x11, 0x0a, 0x0d, 0x4d, 0x41, 0x4c, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x44, 0x5f, 0x49, 0x50,
  5465  	0x41, 0x10, 0x16, 0x12, 0x16, 0x0a, 0x12, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x55,
  5466  	0x52, 0x4c, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x4d, 0x45, 0x10, 0x23, 0x12, 0x18, 0x0a, 0x14, 0x4d,
  5467  	0x41, 0x4c, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x44, 0x5f, 0x41, 0x50, 0x50, 0x5f, 0x42, 0x55, 0x4e,
  5468  	0x44, 0x4c, 0x45, 0x10, 0x24, 0x12, 0x0f, 0x0a, 0x0b, 0x4e, 0x4f, 0x5f, 0x43, 0x4f, 0x44, 0x45,
  5469  	0x5f, 0x41, 0x50, 0x4b, 0x10, 0x17, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49,
  5470  	0x44, 0x5f, 0x49, 0x4e, 0x50, 0x55, 0x54, 0x5f, 0x41, 0x50, 0x4b, 0x10, 0x1b, 0x12, 0x1b, 0x0a,
  5471  	0x17, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x41, 0x50, 0x4b, 0x5f, 0x50, 0x52, 0x45,
  5472  	0x56, 0x49, 0x45, 0x57, 0x5f, 0x53, 0x44, 0x4b, 0x10, 0x1d, 0x12, 0x14, 0x0a, 0x10, 0x4d, 0x41,
  5473  	0x54, 0x52, 0x49, 0x58, 0x5f, 0x54, 0x4f, 0x4f, 0x5f, 0x4c, 0x41, 0x52, 0x47, 0x45, 0x10, 0x25,
  5474  	0x12, 0x17, 0x0a, 0x13, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x51, 0x55, 0x4f, 0x54, 0x41, 0x5f, 0x45,
  5475  	0x58, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x27, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x45, 0x52,
  5476  	0x56, 0x49, 0x43, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x41, 0x54,
  5477  	0x45, 0x44, 0x10, 0x28, 0x12, 0x1c, 0x0a, 0x18, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f,
  5478  	0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52,
  5479  	0x10, 0x29, 0x2a, 0xe0, 0x01, 0x0a, 0x09, 0x54, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65,
  5480  	0x12, 0x1a, 0x0a, 0x16, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55,
  5481  	0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a,
  5482  	0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x08, 0x12, 0x0b, 0x0a, 0x07,
  5483  	0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e,
  5484  	0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48,
  5485  	0x45, 0x44, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x12,
  5486  	0x1b, 0x0a, 0x17, 0x55, 0x4e, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x45,
  5487  	0x4e, 0x56, 0x49, 0x52, 0x4f, 0x4e, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18,
  5488  	0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x54, 0x49, 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x56,
  5489  	0x49, 0x52, 0x4f, 0x4e, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x09, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x4e,
  5490  	0x43, 0x4f, 0x4d, 0x50, 0x41, 0x54, 0x49, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x52, 0x43, 0x48, 0x49,
  5491  	0x54, 0x45, 0x43, 0x54, 0x55, 0x52, 0x45, 0x10, 0x0a, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e,
  5492  	0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x06, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x56, 0x41,
  5493  	0x4c, 0x49, 0x44, 0x10, 0x07, 0x2a, 0x6a, 0x0a, 0x0e, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65,
  5494  	0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x1b, 0x4f, 0x55, 0x54, 0x43, 0x4f,
  5495  	0x4d, 0x45, 0x5f, 0x53, 0x55, 0x4d, 0x4d, 0x41, 0x52, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45,
  5496  	0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43,
  5497  	0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45,
  5498  	0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x4e, 0x43, 0x4f, 0x4e, 0x43, 0x4c, 0x55, 0x53, 0x49,
  5499  	0x56, 0x45, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x4b, 0x49, 0x50, 0x50, 0x45, 0x44, 0x10,
  5500  	0x04, 0x32, 0xc0, 0x05, 0x0a, 0x14, 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74,
  5501  	0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xac, 0x01, 0x0a, 0x10, 0x43,
  5502  	0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x12,
  5503  	0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c,
  5504  	0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65,
  5505  	0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x52, 0x65, 0x71,
  5506  	0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65,
  5507  	0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76,
  5508  	0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x22, 0x3b, 0x82, 0xd3,
  5509  	0xe4, 0x93, 0x02, 0x35, 0x22, 0x26, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63,
  5510  	0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f,
  5511  	0x74, 0x65, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x63, 0x65, 0x73, 0x3a, 0x0b, 0x74, 0x65,
  5512  	0x73, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x12, 0xaa, 0x01, 0x0a, 0x0d, 0x47, 0x65,
  5513  	0x74, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x12, 0x30, 0x2e, 0x67, 0x6f,
  5514  	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65,
  5515  	0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74,
  5516  	0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e,
  5517  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e,
  5518  	0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x4d,
  5519  	0x61, 0x74, 0x72, 0x69, 0x78, 0x22, 0x3f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x12, 0x37, 0x2f,
  5520  	0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f,
  5521  	0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x61, 0x74,
  5522  	0x72, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x72,
  5523  	0x69, 0x78, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xc5, 0x01, 0x0a, 0x10, 0x43, 0x61, 0x6e, 0x63, 0x65,
  5524  	0x6c, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x12, 0x33, 0x2e, 0x67, 0x6f,
  5525  	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65,
  5526  	0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x54,
  5527  	0x65, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
  5528  	0x1a, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f,
  5529  	0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61,
  5530  	0x6e, 0x63, 0x65, 0x6c, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x52, 0x65,
  5531  	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x46, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x22, 0x3e,
  5532  	0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72,
  5533  	0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x61,
  5534  	0x74, 0x72, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x74,
  5535  	0x72, 0x69, 0x78, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x1a, 0x83,
  5536  	0x01, 0xca, 0x41, 0x16, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  5537  	0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x67, 0x68, 0x74, 0x74,
  5538  	0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61,
  5539  	0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f,
  5540  	0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2c, 0x68, 0x74, 0x74, 0x70,
  5541  	0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70,
  5542  	0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75,
  5543  	0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x2d,
  5544  	0x6f, 0x6e, 0x6c, 0x79, 0x42, 0x79, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  5545  	0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74,
  5546  	0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x42, 0x12, 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63,
  5547  	0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x67, 0x6f,
  5548  	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f,
  5549  	0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61,
  5550  	0x70, 0x69, 0x73, 0x2f, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x74, 0x65, 0x73,
  5551  	0x74, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x3b, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x62,
  5552  	0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
  5553  }
  5554  
  5555  var (
  5556  	file_google_devtools_testing_v1_test_execution_proto_rawDescOnce sync.Once
  5557  	file_google_devtools_testing_v1_test_execution_proto_rawDescData = file_google_devtools_testing_v1_test_execution_proto_rawDesc
  5558  )
  5559  
  5560  func file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP() []byte {
  5561  	file_google_devtools_testing_v1_test_execution_proto_rawDescOnce.Do(func() {
  5562  		file_google_devtools_testing_v1_test_execution_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_devtools_testing_v1_test_execution_proto_rawDescData)
  5563  	})
  5564  	return file_google_devtools_testing_v1_test_execution_proto_rawDescData
  5565  }
  5566  
  5567  var file_google_devtools_testing_v1_test_execution_proto_enumTypes = make([]protoimpl.EnumInfo, 7)
  5568  var file_google_devtools_testing_v1_test_execution_proto_msgTypes = make([]protoimpl.MessageInfo, 50)
  5569  var file_google_devtools_testing_v1_test_execution_proto_goTypes = []interface{}{
  5570  	(OrchestratorOption)(0),            // 0: google.devtools.testing.v1.OrchestratorOption
  5571  	(RoboMode)(0),                      // 1: google.devtools.testing.v1.RoboMode
  5572  	(RoboActionType)(0),                // 2: google.devtools.testing.v1.RoboActionType
  5573  	(InvalidMatrixDetails)(0),          // 3: google.devtools.testing.v1.InvalidMatrixDetails
  5574  	(TestState)(0),                     // 4: google.devtools.testing.v1.TestState
  5575  	(OutcomeSummary)(0),                // 5: google.devtools.testing.v1.OutcomeSummary
  5576  	(InvalidRequestDetail_Reason)(0),   // 6: google.devtools.testing.v1.InvalidRequestDetail.Reason
  5577  	(*TestMatrix)(nil),                 // 7: google.devtools.testing.v1.TestMatrix
  5578  	(*TestExecution)(nil),              // 8: google.devtools.testing.v1.TestExecution
  5579  	(*TestSpecification)(nil),          // 9: google.devtools.testing.v1.TestSpecification
  5580  	(*SystraceSetup)(nil),              // 10: google.devtools.testing.v1.SystraceSetup
  5581  	(*TestSetup)(nil),                  // 11: google.devtools.testing.v1.TestSetup
  5582  	(*IosTestSetup)(nil),               // 12: google.devtools.testing.v1.IosTestSetup
  5583  	(*EnvironmentVariable)(nil),        // 13: google.devtools.testing.v1.EnvironmentVariable
  5584  	(*Account)(nil),                    // 14: google.devtools.testing.v1.Account
  5585  	(*GoogleAuto)(nil),                 // 15: google.devtools.testing.v1.GoogleAuto
  5586  	(*Apk)(nil),                        // 16: google.devtools.testing.v1.Apk
  5587  	(*AppBundle)(nil),                  // 17: google.devtools.testing.v1.AppBundle
  5588  	(*DeviceFile)(nil),                 // 18: google.devtools.testing.v1.DeviceFile
  5589  	(*ObbFile)(nil),                    // 19: google.devtools.testing.v1.ObbFile
  5590  	(*RegularFile)(nil),                // 20: google.devtools.testing.v1.RegularFile
  5591  	(*IosDeviceFile)(nil),              // 21: google.devtools.testing.v1.IosDeviceFile
  5592  	(*AndroidTestLoop)(nil),            // 22: google.devtools.testing.v1.AndroidTestLoop
  5593  	(*IosXcTest)(nil),                  // 23: google.devtools.testing.v1.IosXcTest
  5594  	(*IosTestLoop)(nil),                // 24: google.devtools.testing.v1.IosTestLoop
  5595  	(*AndroidInstrumentationTest)(nil), // 25: google.devtools.testing.v1.AndroidInstrumentationTest
  5596  	(*AndroidRoboTest)(nil),            // 26: google.devtools.testing.v1.AndroidRoboTest
  5597  	(*RoboDirective)(nil),              // 27: google.devtools.testing.v1.RoboDirective
  5598  	(*RoboStartingIntent)(nil),         // 28: google.devtools.testing.v1.RoboStartingIntent
  5599  	(*LauncherActivityIntent)(nil),     // 29: google.devtools.testing.v1.LauncherActivityIntent
  5600  	(*StartActivityIntent)(nil),        // 30: google.devtools.testing.v1.StartActivityIntent
  5601  	(*EnvironmentMatrix)(nil),          // 31: google.devtools.testing.v1.EnvironmentMatrix
  5602  	(*AndroidDeviceList)(nil),          // 32: google.devtools.testing.v1.AndroidDeviceList
  5603  	(*IosDeviceList)(nil),              // 33: google.devtools.testing.v1.IosDeviceList
  5604  	(*AndroidMatrix)(nil),              // 34: google.devtools.testing.v1.AndroidMatrix
  5605  	(*ClientInfo)(nil),                 // 35: google.devtools.testing.v1.ClientInfo
  5606  	(*ClientInfoDetail)(nil),           // 36: google.devtools.testing.v1.ClientInfoDetail
  5607  	(*ResultStorage)(nil),              // 37: google.devtools.testing.v1.ResultStorage
  5608  	(*ToolResultsHistory)(nil),         // 38: google.devtools.testing.v1.ToolResultsHistory
  5609  	(*ToolResultsExecution)(nil),       // 39: google.devtools.testing.v1.ToolResultsExecution
  5610  	(*ToolResultsStep)(nil),            // 40: google.devtools.testing.v1.ToolResultsStep
  5611  	(*GoogleCloudStorage)(nil),         // 41: google.devtools.testing.v1.GoogleCloudStorage
  5612  	(*FileReference)(nil),              // 42: google.devtools.testing.v1.FileReference
  5613  	(*Environment)(nil),                // 43: google.devtools.testing.v1.Environment
  5614  	(*AndroidDevice)(nil),              // 44: google.devtools.testing.v1.AndroidDevice
  5615  	(*IosDevice)(nil),                  // 45: google.devtools.testing.v1.IosDevice
  5616  	(*TestDetails)(nil),                // 46: google.devtools.testing.v1.TestDetails
  5617  	(*InvalidRequestDetail)(nil),       // 47: google.devtools.testing.v1.InvalidRequestDetail
  5618  	(*ShardingOption)(nil),             // 48: google.devtools.testing.v1.ShardingOption
  5619  	(*UniformSharding)(nil),            // 49: google.devtools.testing.v1.UniformSharding
  5620  	(*ManualSharding)(nil),             // 50: google.devtools.testing.v1.ManualSharding
  5621  	(*TestTargetsForShard)(nil),        // 51: google.devtools.testing.v1.TestTargetsForShard
  5622  	(*Shard)(nil),                      // 52: google.devtools.testing.v1.Shard
  5623  	(*CreateTestMatrixRequest)(nil),    // 53: google.devtools.testing.v1.CreateTestMatrixRequest
  5624  	(*GetTestMatrixRequest)(nil),       // 54: google.devtools.testing.v1.GetTestMatrixRequest
  5625  	(*CancelTestMatrixRequest)(nil),    // 55: google.devtools.testing.v1.CancelTestMatrixRequest
  5626  	(*CancelTestMatrixResponse)(nil),   // 56: google.devtools.testing.v1.CancelTestMatrixResponse
  5627  	(*timestamppb.Timestamp)(nil),      // 57: google.protobuf.Timestamp
  5628  	(*durationpb.Duration)(nil),        // 58: google.protobuf.Duration
  5629  }
  5630  var file_google_devtools_testing_v1_test_execution_proto_depIdxs = []int32{
  5631  	35, // 0: google.devtools.testing.v1.TestMatrix.client_info:type_name -> google.devtools.testing.v1.ClientInfo
  5632  	9,  // 1: google.devtools.testing.v1.TestMatrix.test_specification:type_name -> google.devtools.testing.v1.TestSpecification
  5633  	31, // 2: google.devtools.testing.v1.TestMatrix.environment_matrix:type_name -> google.devtools.testing.v1.EnvironmentMatrix
  5634  	8,  // 3: google.devtools.testing.v1.TestMatrix.test_executions:type_name -> google.devtools.testing.v1.TestExecution
  5635  	37, // 4: google.devtools.testing.v1.TestMatrix.result_storage:type_name -> google.devtools.testing.v1.ResultStorage
  5636  	4,  // 5: google.devtools.testing.v1.TestMatrix.state:type_name -> google.devtools.testing.v1.TestState
  5637  	57, // 6: google.devtools.testing.v1.TestMatrix.timestamp:type_name -> google.protobuf.Timestamp
  5638  	3,  // 7: google.devtools.testing.v1.TestMatrix.invalid_matrix_details:type_name -> google.devtools.testing.v1.InvalidMatrixDetails
  5639  	5,  // 8: google.devtools.testing.v1.TestMatrix.outcome_summary:type_name -> google.devtools.testing.v1.OutcomeSummary
  5640  	9,  // 9: google.devtools.testing.v1.TestExecution.test_specification:type_name -> google.devtools.testing.v1.TestSpecification
  5641  	52, // 10: google.devtools.testing.v1.TestExecution.shard:type_name -> google.devtools.testing.v1.Shard
  5642  	43, // 11: google.devtools.testing.v1.TestExecution.environment:type_name -> google.devtools.testing.v1.Environment
  5643  	4,  // 12: google.devtools.testing.v1.TestExecution.state:type_name -> google.devtools.testing.v1.TestState
  5644  	40, // 13: google.devtools.testing.v1.TestExecution.tool_results_step:type_name -> google.devtools.testing.v1.ToolResultsStep
  5645  	57, // 14: google.devtools.testing.v1.TestExecution.timestamp:type_name -> google.protobuf.Timestamp
  5646  	46, // 15: google.devtools.testing.v1.TestExecution.test_details:type_name -> google.devtools.testing.v1.TestDetails
  5647  	58, // 16: google.devtools.testing.v1.TestSpecification.test_timeout:type_name -> google.protobuf.Duration
  5648  	11, // 17: google.devtools.testing.v1.TestSpecification.test_setup:type_name -> google.devtools.testing.v1.TestSetup
  5649  	12, // 18: google.devtools.testing.v1.TestSpecification.ios_test_setup:type_name -> google.devtools.testing.v1.IosTestSetup
  5650  	25, // 19: google.devtools.testing.v1.TestSpecification.android_instrumentation_test:type_name -> google.devtools.testing.v1.AndroidInstrumentationTest
  5651  	26, // 20: google.devtools.testing.v1.TestSpecification.android_robo_test:type_name -> google.devtools.testing.v1.AndroidRoboTest
  5652  	22, // 21: google.devtools.testing.v1.TestSpecification.android_test_loop:type_name -> google.devtools.testing.v1.AndroidTestLoop
  5653  	23, // 22: google.devtools.testing.v1.TestSpecification.ios_xc_test:type_name -> google.devtools.testing.v1.IosXcTest
  5654  	24, // 23: google.devtools.testing.v1.TestSpecification.ios_test_loop:type_name -> google.devtools.testing.v1.IosTestLoop
  5655  	18, // 24: google.devtools.testing.v1.TestSetup.files_to_push:type_name -> google.devtools.testing.v1.DeviceFile
  5656  	16, // 25: google.devtools.testing.v1.TestSetup.additional_apks:type_name -> google.devtools.testing.v1.Apk
  5657  	14, // 26: google.devtools.testing.v1.TestSetup.account:type_name -> google.devtools.testing.v1.Account
  5658  	13, // 27: google.devtools.testing.v1.TestSetup.environment_variables:type_name -> google.devtools.testing.v1.EnvironmentVariable
  5659  	10, // 28: google.devtools.testing.v1.TestSetup.systrace:type_name -> google.devtools.testing.v1.SystraceSetup
  5660  	42, // 29: google.devtools.testing.v1.IosTestSetup.additional_ipas:type_name -> google.devtools.testing.v1.FileReference
  5661  	21, // 30: google.devtools.testing.v1.IosTestSetup.push_files:type_name -> google.devtools.testing.v1.IosDeviceFile
  5662  	21, // 31: google.devtools.testing.v1.IosTestSetup.pull_directories:type_name -> google.devtools.testing.v1.IosDeviceFile
  5663  	15, // 32: google.devtools.testing.v1.Account.google_auto:type_name -> google.devtools.testing.v1.GoogleAuto
  5664  	42, // 33: google.devtools.testing.v1.Apk.location:type_name -> google.devtools.testing.v1.FileReference
  5665  	42, // 34: google.devtools.testing.v1.AppBundle.bundle_location:type_name -> google.devtools.testing.v1.FileReference
  5666  	19, // 35: google.devtools.testing.v1.DeviceFile.obb_file:type_name -> google.devtools.testing.v1.ObbFile
  5667  	20, // 36: google.devtools.testing.v1.DeviceFile.regular_file:type_name -> google.devtools.testing.v1.RegularFile
  5668  	42, // 37: google.devtools.testing.v1.ObbFile.obb:type_name -> google.devtools.testing.v1.FileReference
  5669  	42, // 38: google.devtools.testing.v1.RegularFile.content:type_name -> google.devtools.testing.v1.FileReference
  5670  	42, // 39: google.devtools.testing.v1.IosDeviceFile.content:type_name -> google.devtools.testing.v1.FileReference
  5671  	42, // 40: google.devtools.testing.v1.AndroidTestLoop.app_apk:type_name -> google.devtools.testing.v1.FileReference
  5672  	17, // 41: google.devtools.testing.v1.AndroidTestLoop.app_bundle:type_name -> google.devtools.testing.v1.AppBundle
  5673  	42, // 42: google.devtools.testing.v1.IosXcTest.tests_zip:type_name -> google.devtools.testing.v1.FileReference
  5674  	42, // 43: google.devtools.testing.v1.IosXcTest.xctestrun:type_name -> google.devtools.testing.v1.FileReference
  5675  	42, // 44: google.devtools.testing.v1.IosTestLoop.app_ipa:type_name -> google.devtools.testing.v1.FileReference
  5676  	42, // 45: google.devtools.testing.v1.AndroidInstrumentationTest.app_apk:type_name -> google.devtools.testing.v1.FileReference
  5677  	17, // 46: google.devtools.testing.v1.AndroidInstrumentationTest.app_bundle:type_name -> google.devtools.testing.v1.AppBundle
  5678  	42, // 47: google.devtools.testing.v1.AndroidInstrumentationTest.test_apk:type_name -> google.devtools.testing.v1.FileReference
  5679  	0,  // 48: google.devtools.testing.v1.AndroidInstrumentationTest.orchestrator_option:type_name -> google.devtools.testing.v1.OrchestratorOption
  5680  	48, // 49: google.devtools.testing.v1.AndroidInstrumentationTest.sharding_option:type_name -> google.devtools.testing.v1.ShardingOption
  5681  	42, // 50: google.devtools.testing.v1.AndroidRoboTest.app_apk:type_name -> google.devtools.testing.v1.FileReference
  5682  	17, // 51: google.devtools.testing.v1.AndroidRoboTest.app_bundle:type_name -> google.devtools.testing.v1.AppBundle
  5683  	27, // 52: google.devtools.testing.v1.AndroidRoboTest.robo_directives:type_name -> google.devtools.testing.v1.RoboDirective
  5684  	1,  // 53: google.devtools.testing.v1.AndroidRoboTest.robo_mode:type_name -> google.devtools.testing.v1.RoboMode
  5685  	42, // 54: google.devtools.testing.v1.AndroidRoboTest.robo_script:type_name -> google.devtools.testing.v1.FileReference
  5686  	28, // 55: google.devtools.testing.v1.AndroidRoboTest.starting_intents:type_name -> google.devtools.testing.v1.RoboStartingIntent
  5687  	2,  // 56: google.devtools.testing.v1.RoboDirective.action_type:type_name -> google.devtools.testing.v1.RoboActionType
  5688  	29, // 57: google.devtools.testing.v1.RoboStartingIntent.launcher_activity:type_name -> google.devtools.testing.v1.LauncherActivityIntent
  5689  	30, // 58: google.devtools.testing.v1.RoboStartingIntent.start_activity:type_name -> google.devtools.testing.v1.StartActivityIntent
  5690  	58, // 59: google.devtools.testing.v1.RoboStartingIntent.timeout:type_name -> google.protobuf.Duration
  5691  	34, // 60: google.devtools.testing.v1.EnvironmentMatrix.android_matrix:type_name -> google.devtools.testing.v1.AndroidMatrix
  5692  	32, // 61: google.devtools.testing.v1.EnvironmentMatrix.android_device_list:type_name -> google.devtools.testing.v1.AndroidDeviceList
  5693  	33, // 62: google.devtools.testing.v1.EnvironmentMatrix.ios_device_list:type_name -> google.devtools.testing.v1.IosDeviceList
  5694  	44, // 63: google.devtools.testing.v1.AndroidDeviceList.android_devices:type_name -> google.devtools.testing.v1.AndroidDevice
  5695  	45, // 64: google.devtools.testing.v1.IosDeviceList.ios_devices:type_name -> google.devtools.testing.v1.IosDevice
  5696  	36, // 65: google.devtools.testing.v1.ClientInfo.client_info_details:type_name -> google.devtools.testing.v1.ClientInfoDetail
  5697  	41, // 66: google.devtools.testing.v1.ResultStorage.google_cloud_storage:type_name -> google.devtools.testing.v1.GoogleCloudStorage
  5698  	38, // 67: google.devtools.testing.v1.ResultStorage.tool_results_history:type_name -> google.devtools.testing.v1.ToolResultsHistory
  5699  	39, // 68: google.devtools.testing.v1.ResultStorage.tool_results_execution:type_name -> google.devtools.testing.v1.ToolResultsExecution
  5700  	44, // 69: google.devtools.testing.v1.Environment.android_device:type_name -> google.devtools.testing.v1.AndroidDevice
  5701  	45, // 70: google.devtools.testing.v1.Environment.ios_device:type_name -> google.devtools.testing.v1.IosDevice
  5702  	6,  // 71: google.devtools.testing.v1.InvalidRequestDetail.reason:type_name -> google.devtools.testing.v1.InvalidRequestDetail.Reason
  5703  	49, // 72: google.devtools.testing.v1.ShardingOption.uniform_sharding:type_name -> google.devtools.testing.v1.UniformSharding
  5704  	50, // 73: google.devtools.testing.v1.ShardingOption.manual_sharding:type_name -> google.devtools.testing.v1.ManualSharding
  5705  	51, // 74: google.devtools.testing.v1.ManualSharding.test_targets_for_shard:type_name -> google.devtools.testing.v1.TestTargetsForShard
  5706  	51, // 75: google.devtools.testing.v1.Shard.test_targets_for_shard:type_name -> google.devtools.testing.v1.TestTargetsForShard
  5707  	7,  // 76: google.devtools.testing.v1.CreateTestMatrixRequest.test_matrix:type_name -> google.devtools.testing.v1.TestMatrix
  5708  	4,  // 77: google.devtools.testing.v1.CancelTestMatrixResponse.test_state:type_name -> google.devtools.testing.v1.TestState
  5709  	53, // 78: google.devtools.testing.v1.TestExecutionService.CreateTestMatrix:input_type -> google.devtools.testing.v1.CreateTestMatrixRequest
  5710  	54, // 79: google.devtools.testing.v1.TestExecutionService.GetTestMatrix:input_type -> google.devtools.testing.v1.GetTestMatrixRequest
  5711  	55, // 80: google.devtools.testing.v1.TestExecutionService.CancelTestMatrix:input_type -> google.devtools.testing.v1.CancelTestMatrixRequest
  5712  	7,  // 81: google.devtools.testing.v1.TestExecutionService.CreateTestMatrix:output_type -> google.devtools.testing.v1.TestMatrix
  5713  	7,  // 82: google.devtools.testing.v1.TestExecutionService.GetTestMatrix:output_type -> google.devtools.testing.v1.TestMatrix
  5714  	56, // 83: google.devtools.testing.v1.TestExecutionService.CancelTestMatrix:output_type -> google.devtools.testing.v1.CancelTestMatrixResponse
  5715  	81, // [81:84] is the sub-list for method output_type
  5716  	78, // [78:81] is the sub-list for method input_type
  5717  	78, // [78:78] is the sub-list for extension type_name
  5718  	78, // [78:78] is the sub-list for extension extendee
  5719  	0,  // [0:78] is the sub-list for field type_name
  5720  }
  5721  
  5722  func init() { file_google_devtools_testing_v1_test_execution_proto_init() }
  5723  func file_google_devtools_testing_v1_test_execution_proto_init() {
  5724  	if File_google_devtools_testing_v1_test_execution_proto != nil {
  5725  		return
  5726  	}
  5727  	if !protoimpl.UnsafeEnabled {
  5728  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
  5729  			switch v := v.(*TestMatrix); i {
  5730  			case 0:
  5731  				return &v.state
  5732  			case 1:
  5733  				return &v.sizeCache
  5734  			case 2:
  5735  				return &v.unknownFields
  5736  			default:
  5737  				return nil
  5738  			}
  5739  		}
  5740  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
  5741  			switch v := v.(*TestExecution); i {
  5742  			case 0:
  5743  				return &v.state
  5744  			case 1:
  5745  				return &v.sizeCache
  5746  			case 2:
  5747  				return &v.unknownFields
  5748  			default:
  5749  				return nil
  5750  			}
  5751  		}
  5752  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
  5753  			switch v := v.(*TestSpecification); i {
  5754  			case 0:
  5755  				return &v.state
  5756  			case 1:
  5757  				return &v.sizeCache
  5758  			case 2:
  5759  				return &v.unknownFields
  5760  			default:
  5761  				return nil
  5762  			}
  5763  		}
  5764  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
  5765  			switch v := v.(*SystraceSetup); i {
  5766  			case 0:
  5767  				return &v.state
  5768  			case 1:
  5769  				return &v.sizeCache
  5770  			case 2:
  5771  				return &v.unknownFields
  5772  			default:
  5773  				return nil
  5774  			}
  5775  		}
  5776  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
  5777  			switch v := v.(*TestSetup); i {
  5778  			case 0:
  5779  				return &v.state
  5780  			case 1:
  5781  				return &v.sizeCache
  5782  			case 2:
  5783  				return &v.unknownFields
  5784  			default:
  5785  				return nil
  5786  			}
  5787  		}
  5788  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
  5789  			switch v := v.(*IosTestSetup); i {
  5790  			case 0:
  5791  				return &v.state
  5792  			case 1:
  5793  				return &v.sizeCache
  5794  			case 2:
  5795  				return &v.unknownFields
  5796  			default:
  5797  				return nil
  5798  			}
  5799  		}
  5800  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
  5801  			switch v := v.(*EnvironmentVariable); i {
  5802  			case 0:
  5803  				return &v.state
  5804  			case 1:
  5805  				return &v.sizeCache
  5806  			case 2:
  5807  				return &v.unknownFields
  5808  			default:
  5809  				return nil
  5810  			}
  5811  		}
  5812  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
  5813  			switch v := v.(*Account); i {
  5814  			case 0:
  5815  				return &v.state
  5816  			case 1:
  5817  				return &v.sizeCache
  5818  			case 2:
  5819  				return &v.unknownFields
  5820  			default:
  5821  				return nil
  5822  			}
  5823  		}
  5824  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
  5825  			switch v := v.(*GoogleAuto); i {
  5826  			case 0:
  5827  				return &v.state
  5828  			case 1:
  5829  				return &v.sizeCache
  5830  			case 2:
  5831  				return &v.unknownFields
  5832  			default:
  5833  				return nil
  5834  			}
  5835  		}
  5836  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
  5837  			switch v := v.(*Apk); i {
  5838  			case 0:
  5839  				return &v.state
  5840  			case 1:
  5841  				return &v.sizeCache
  5842  			case 2:
  5843  				return &v.unknownFields
  5844  			default:
  5845  				return nil
  5846  			}
  5847  		}
  5848  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
  5849  			switch v := v.(*AppBundle); i {
  5850  			case 0:
  5851  				return &v.state
  5852  			case 1:
  5853  				return &v.sizeCache
  5854  			case 2:
  5855  				return &v.unknownFields
  5856  			default:
  5857  				return nil
  5858  			}
  5859  		}
  5860  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
  5861  			switch v := v.(*DeviceFile); i {
  5862  			case 0:
  5863  				return &v.state
  5864  			case 1:
  5865  				return &v.sizeCache
  5866  			case 2:
  5867  				return &v.unknownFields
  5868  			default:
  5869  				return nil
  5870  			}
  5871  		}
  5872  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
  5873  			switch v := v.(*ObbFile); i {
  5874  			case 0:
  5875  				return &v.state
  5876  			case 1:
  5877  				return &v.sizeCache
  5878  			case 2:
  5879  				return &v.unknownFields
  5880  			default:
  5881  				return nil
  5882  			}
  5883  		}
  5884  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
  5885  			switch v := v.(*RegularFile); i {
  5886  			case 0:
  5887  				return &v.state
  5888  			case 1:
  5889  				return &v.sizeCache
  5890  			case 2:
  5891  				return &v.unknownFields
  5892  			default:
  5893  				return nil
  5894  			}
  5895  		}
  5896  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
  5897  			switch v := v.(*IosDeviceFile); i {
  5898  			case 0:
  5899  				return &v.state
  5900  			case 1:
  5901  				return &v.sizeCache
  5902  			case 2:
  5903  				return &v.unknownFields
  5904  			default:
  5905  				return nil
  5906  			}
  5907  		}
  5908  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
  5909  			switch v := v.(*AndroidTestLoop); i {
  5910  			case 0:
  5911  				return &v.state
  5912  			case 1:
  5913  				return &v.sizeCache
  5914  			case 2:
  5915  				return &v.unknownFields
  5916  			default:
  5917  				return nil
  5918  			}
  5919  		}
  5920  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
  5921  			switch v := v.(*IosXcTest); i {
  5922  			case 0:
  5923  				return &v.state
  5924  			case 1:
  5925  				return &v.sizeCache
  5926  			case 2:
  5927  				return &v.unknownFields
  5928  			default:
  5929  				return nil
  5930  			}
  5931  		}
  5932  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
  5933  			switch v := v.(*IosTestLoop); i {
  5934  			case 0:
  5935  				return &v.state
  5936  			case 1:
  5937  				return &v.sizeCache
  5938  			case 2:
  5939  				return &v.unknownFields
  5940  			default:
  5941  				return nil
  5942  			}
  5943  		}
  5944  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
  5945  			switch v := v.(*AndroidInstrumentationTest); i {
  5946  			case 0:
  5947  				return &v.state
  5948  			case 1:
  5949  				return &v.sizeCache
  5950  			case 2:
  5951  				return &v.unknownFields
  5952  			default:
  5953  				return nil
  5954  			}
  5955  		}
  5956  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
  5957  			switch v := v.(*AndroidRoboTest); i {
  5958  			case 0:
  5959  				return &v.state
  5960  			case 1:
  5961  				return &v.sizeCache
  5962  			case 2:
  5963  				return &v.unknownFields
  5964  			default:
  5965  				return nil
  5966  			}
  5967  		}
  5968  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
  5969  			switch v := v.(*RoboDirective); i {
  5970  			case 0:
  5971  				return &v.state
  5972  			case 1:
  5973  				return &v.sizeCache
  5974  			case 2:
  5975  				return &v.unknownFields
  5976  			default:
  5977  				return nil
  5978  			}
  5979  		}
  5980  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
  5981  			switch v := v.(*RoboStartingIntent); i {
  5982  			case 0:
  5983  				return &v.state
  5984  			case 1:
  5985  				return &v.sizeCache
  5986  			case 2:
  5987  				return &v.unknownFields
  5988  			default:
  5989  				return nil
  5990  			}
  5991  		}
  5992  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
  5993  			switch v := v.(*LauncherActivityIntent); i {
  5994  			case 0:
  5995  				return &v.state
  5996  			case 1:
  5997  				return &v.sizeCache
  5998  			case 2:
  5999  				return &v.unknownFields
  6000  			default:
  6001  				return nil
  6002  			}
  6003  		}
  6004  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
  6005  			switch v := v.(*StartActivityIntent); i {
  6006  			case 0:
  6007  				return &v.state
  6008  			case 1:
  6009  				return &v.sizeCache
  6010  			case 2:
  6011  				return &v.unknownFields
  6012  			default:
  6013  				return nil
  6014  			}
  6015  		}
  6016  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
  6017  			switch v := v.(*EnvironmentMatrix); i {
  6018  			case 0:
  6019  				return &v.state
  6020  			case 1:
  6021  				return &v.sizeCache
  6022  			case 2:
  6023  				return &v.unknownFields
  6024  			default:
  6025  				return nil
  6026  			}
  6027  		}
  6028  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
  6029  			switch v := v.(*AndroidDeviceList); i {
  6030  			case 0:
  6031  				return &v.state
  6032  			case 1:
  6033  				return &v.sizeCache
  6034  			case 2:
  6035  				return &v.unknownFields
  6036  			default:
  6037  				return nil
  6038  			}
  6039  		}
  6040  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
  6041  			switch v := v.(*IosDeviceList); i {
  6042  			case 0:
  6043  				return &v.state
  6044  			case 1:
  6045  				return &v.sizeCache
  6046  			case 2:
  6047  				return &v.unknownFields
  6048  			default:
  6049  				return nil
  6050  			}
  6051  		}
  6052  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
  6053  			switch v := v.(*AndroidMatrix); i {
  6054  			case 0:
  6055  				return &v.state
  6056  			case 1:
  6057  				return &v.sizeCache
  6058  			case 2:
  6059  				return &v.unknownFields
  6060  			default:
  6061  				return nil
  6062  			}
  6063  		}
  6064  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
  6065  			switch v := v.(*ClientInfo); i {
  6066  			case 0:
  6067  				return &v.state
  6068  			case 1:
  6069  				return &v.sizeCache
  6070  			case 2:
  6071  				return &v.unknownFields
  6072  			default:
  6073  				return nil
  6074  			}
  6075  		}
  6076  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
  6077  			switch v := v.(*ClientInfoDetail); i {
  6078  			case 0:
  6079  				return &v.state
  6080  			case 1:
  6081  				return &v.sizeCache
  6082  			case 2:
  6083  				return &v.unknownFields
  6084  			default:
  6085  				return nil
  6086  			}
  6087  		}
  6088  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
  6089  			switch v := v.(*ResultStorage); i {
  6090  			case 0:
  6091  				return &v.state
  6092  			case 1:
  6093  				return &v.sizeCache
  6094  			case 2:
  6095  				return &v.unknownFields
  6096  			default:
  6097  				return nil
  6098  			}
  6099  		}
  6100  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
  6101  			switch v := v.(*ToolResultsHistory); i {
  6102  			case 0:
  6103  				return &v.state
  6104  			case 1:
  6105  				return &v.sizeCache
  6106  			case 2:
  6107  				return &v.unknownFields
  6108  			default:
  6109  				return nil
  6110  			}
  6111  		}
  6112  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
  6113  			switch v := v.(*ToolResultsExecution); i {
  6114  			case 0:
  6115  				return &v.state
  6116  			case 1:
  6117  				return &v.sizeCache
  6118  			case 2:
  6119  				return &v.unknownFields
  6120  			default:
  6121  				return nil
  6122  			}
  6123  		}
  6124  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
  6125  			switch v := v.(*ToolResultsStep); i {
  6126  			case 0:
  6127  				return &v.state
  6128  			case 1:
  6129  				return &v.sizeCache
  6130  			case 2:
  6131  				return &v.unknownFields
  6132  			default:
  6133  				return nil
  6134  			}
  6135  		}
  6136  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
  6137  			switch v := v.(*GoogleCloudStorage); i {
  6138  			case 0:
  6139  				return &v.state
  6140  			case 1:
  6141  				return &v.sizeCache
  6142  			case 2:
  6143  				return &v.unknownFields
  6144  			default:
  6145  				return nil
  6146  			}
  6147  		}
  6148  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
  6149  			switch v := v.(*FileReference); i {
  6150  			case 0:
  6151  				return &v.state
  6152  			case 1:
  6153  				return &v.sizeCache
  6154  			case 2:
  6155  				return &v.unknownFields
  6156  			default:
  6157  				return nil
  6158  			}
  6159  		}
  6160  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
  6161  			switch v := v.(*Environment); i {
  6162  			case 0:
  6163  				return &v.state
  6164  			case 1:
  6165  				return &v.sizeCache
  6166  			case 2:
  6167  				return &v.unknownFields
  6168  			default:
  6169  				return nil
  6170  			}
  6171  		}
  6172  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
  6173  			switch v := v.(*AndroidDevice); i {
  6174  			case 0:
  6175  				return &v.state
  6176  			case 1:
  6177  				return &v.sizeCache
  6178  			case 2:
  6179  				return &v.unknownFields
  6180  			default:
  6181  				return nil
  6182  			}
  6183  		}
  6184  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
  6185  			switch v := v.(*IosDevice); i {
  6186  			case 0:
  6187  				return &v.state
  6188  			case 1:
  6189  				return &v.sizeCache
  6190  			case 2:
  6191  				return &v.unknownFields
  6192  			default:
  6193  				return nil
  6194  			}
  6195  		}
  6196  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
  6197  			switch v := v.(*TestDetails); i {
  6198  			case 0:
  6199  				return &v.state
  6200  			case 1:
  6201  				return &v.sizeCache
  6202  			case 2:
  6203  				return &v.unknownFields
  6204  			default:
  6205  				return nil
  6206  			}
  6207  		}
  6208  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
  6209  			switch v := v.(*InvalidRequestDetail); i {
  6210  			case 0:
  6211  				return &v.state
  6212  			case 1:
  6213  				return &v.sizeCache
  6214  			case 2:
  6215  				return &v.unknownFields
  6216  			default:
  6217  				return nil
  6218  			}
  6219  		}
  6220  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
  6221  			switch v := v.(*ShardingOption); i {
  6222  			case 0:
  6223  				return &v.state
  6224  			case 1:
  6225  				return &v.sizeCache
  6226  			case 2:
  6227  				return &v.unknownFields
  6228  			default:
  6229  				return nil
  6230  			}
  6231  		}
  6232  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
  6233  			switch v := v.(*UniformSharding); i {
  6234  			case 0:
  6235  				return &v.state
  6236  			case 1:
  6237  				return &v.sizeCache
  6238  			case 2:
  6239  				return &v.unknownFields
  6240  			default:
  6241  				return nil
  6242  			}
  6243  		}
  6244  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
  6245  			switch v := v.(*ManualSharding); i {
  6246  			case 0:
  6247  				return &v.state
  6248  			case 1:
  6249  				return &v.sizeCache
  6250  			case 2:
  6251  				return &v.unknownFields
  6252  			default:
  6253  				return nil
  6254  			}
  6255  		}
  6256  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
  6257  			switch v := v.(*TestTargetsForShard); i {
  6258  			case 0:
  6259  				return &v.state
  6260  			case 1:
  6261  				return &v.sizeCache
  6262  			case 2:
  6263  				return &v.unknownFields
  6264  			default:
  6265  				return nil
  6266  			}
  6267  		}
  6268  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
  6269  			switch v := v.(*Shard); i {
  6270  			case 0:
  6271  				return &v.state
  6272  			case 1:
  6273  				return &v.sizeCache
  6274  			case 2:
  6275  				return &v.unknownFields
  6276  			default:
  6277  				return nil
  6278  			}
  6279  		}
  6280  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
  6281  			switch v := v.(*CreateTestMatrixRequest); i {
  6282  			case 0:
  6283  				return &v.state
  6284  			case 1:
  6285  				return &v.sizeCache
  6286  			case 2:
  6287  				return &v.unknownFields
  6288  			default:
  6289  				return nil
  6290  			}
  6291  		}
  6292  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
  6293  			switch v := v.(*GetTestMatrixRequest); i {
  6294  			case 0:
  6295  				return &v.state
  6296  			case 1:
  6297  				return &v.sizeCache
  6298  			case 2:
  6299  				return &v.unknownFields
  6300  			default:
  6301  				return nil
  6302  			}
  6303  		}
  6304  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {
  6305  			switch v := v.(*CancelTestMatrixRequest); i {
  6306  			case 0:
  6307  				return &v.state
  6308  			case 1:
  6309  				return &v.sizeCache
  6310  			case 2:
  6311  				return &v.unknownFields
  6312  			default:
  6313  				return nil
  6314  			}
  6315  		}
  6316  		file_google_devtools_testing_v1_test_execution_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
  6317  			switch v := v.(*CancelTestMatrixResponse); i {
  6318  			case 0:
  6319  				return &v.state
  6320  			case 1:
  6321  				return &v.sizeCache
  6322  			case 2:
  6323  				return &v.unknownFields
  6324  			default:
  6325  				return nil
  6326  			}
  6327  		}
  6328  	}
  6329  	file_google_devtools_testing_v1_test_execution_proto_msgTypes[2].OneofWrappers = []interface{}{
  6330  		(*TestSpecification_TestSetup)(nil),
  6331  		(*TestSpecification_IosTestSetup)(nil),
  6332  		(*TestSpecification_AndroidInstrumentationTest)(nil),
  6333  		(*TestSpecification_AndroidRoboTest)(nil),
  6334  		(*TestSpecification_AndroidTestLoop)(nil),
  6335  		(*TestSpecification_IosXcTest)(nil),
  6336  		(*TestSpecification_IosTestLoop)(nil),
  6337  	}
  6338  	file_google_devtools_testing_v1_test_execution_proto_msgTypes[7].OneofWrappers = []interface{}{
  6339  		(*Account_GoogleAuto)(nil),
  6340  	}
  6341  	file_google_devtools_testing_v1_test_execution_proto_msgTypes[10].OneofWrappers = []interface{}{
  6342  		(*AppBundle_BundleLocation)(nil),
  6343  	}
  6344  	file_google_devtools_testing_v1_test_execution_proto_msgTypes[11].OneofWrappers = []interface{}{
  6345  		(*DeviceFile_ObbFile)(nil),
  6346  		(*DeviceFile_RegularFile)(nil),
  6347  	}
  6348  	file_google_devtools_testing_v1_test_execution_proto_msgTypes[15].OneofWrappers = []interface{}{
  6349  		(*AndroidTestLoop_AppApk)(nil),
  6350  		(*AndroidTestLoop_AppBundle)(nil),
  6351  	}
  6352  	file_google_devtools_testing_v1_test_execution_proto_msgTypes[18].OneofWrappers = []interface{}{
  6353  		(*AndroidInstrumentationTest_AppApk)(nil),
  6354  		(*AndroidInstrumentationTest_AppBundle)(nil),
  6355  	}
  6356  	file_google_devtools_testing_v1_test_execution_proto_msgTypes[19].OneofWrappers = []interface{}{
  6357  		(*AndroidRoboTest_AppApk)(nil),
  6358  		(*AndroidRoboTest_AppBundle)(nil),
  6359  	}
  6360  	file_google_devtools_testing_v1_test_execution_proto_msgTypes[21].OneofWrappers = []interface{}{
  6361  		(*RoboStartingIntent_LauncherActivity)(nil),
  6362  		(*RoboStartingIntent_StartActivity)(nil),
  6363  	}
  6364  	file_google_devtools_testing_v1_test_execution_proto_msgTypes[24].OneofWrappers = []interface{}{
  6365  		(*EnvironmentMatrix_AndroidMatrix)(nil),
  6366  		(*EnvironmentMatrix_AndroidDeviceList)(nil),
  6367  		(*EnvironmentMatrix_IosDeviceList)(nil),
  6368  	}
  6369  	file_google_devtools_testing_v1_test_execution_proto_msgTypes[35].OneofWrappers = []interface{}{
  6370  		(*FileReference_GcsPath)(nil),
  6371  	}
  6372  	file_google_devtools_testing_v1_test_execution_proto_msgTypes[36].OneofWrappers = []interface{}{
  6373  		(*Environment_AndroidDevice)(nil),
  6374  		(*Environment_IosDevice)(nil),
  6375  	}
  6376  	file_google_devtools_testing_v1_test_execution_proto_msgTypes[41].OneofWrappers = []interface{}{
  6377  		(*ShardingOption_UniformSharding)(nil),
  6378  		(*ShardingOption_ManualSharding)(nil),
  6379  	}
  6380  	type x struct{}
  6381  	out := protoimpl.TypeBuilder{
  6382  		File: protoimpl.DescBuilder{
  6383  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  6384  			RawDescriptor: file_google_devtools_testing_v1_test_execution_proto_rawDesc,
  6385  			NumEnums:      7,
  6386  			NumMessages:   50,
  6387  			NumExtensions: 0,
  6388  			NumServices:   1,
  6389  		},
  6390  		GoTypes:           file_google_devtools_testing_v1_test_execution_proto_goTypes,
  6391  		DependencyIndexes: file_google_devtools_testing_v1_test_execution_proto_depIdxs,
  6392  		EnumInfos:         file_google_devtools_testing_v1_test_execution_proto_enumTypes,
  6393  		MessageInfos:      file_google_devtools_testing_v1_test_execution_proto_msgTypes,
  6394  	}.Build()
  6395  	File_google_devtools_testing_v1_test_execution_proto = out.File
  6396  	file_google_devtools_testing_v1_test_execution_proto_rawDesc = nil
  6397  	file_google_devtools_testing_v1_test_execution_proto_goTypes = nil
  6398  	file_google_devtools_testing_v1_test_execution_proto_depIdxs = nil
  6399  }
  6400  
  6401  // Reference imports to suppress errors if they are not otherwise used.
  6402  var _ context.Context
  6403  var _ grpc.ClientConnInterface
  6404  
  6405  // This is a compile-time assertion to ensure that this generated file
  6406  // is compatible with the grpc package it is being compiled against.
  6407  const _ = grpc.SupportPackageIsVersion6
  6408  
  6409  // TestExecutionServiceClient is the client API for TestExecutionService service.
  6410  //
  6411  // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
  6412  type TestExecutionServiceClient interface {
  6413  	// Creates and runs a matrix of tests according to the given specifications.
  6414  	// Unsupported environments will be returned in the state UNSUPPORTED.
  6415  	// A test matrix is limited to use at most 2000 devices in parallel.
  6416  	//
  6417  	// May return any of the following canonical error codes:
  6418  	//
  6419  	//   - PERMISSION_DENIED - if the user is not authorized to write to project
  6420  	//   - INVALID_ARGUMENT - if the request is malformed or if the matrix tries
  6421  	//     to use too many simultaneous devices.
  6422  	CreateTestMatrix(ctx context.Context, in *CreateTestMatrixRequest, opts ...grpc.CallOption) (*TestMatrix, error)
  6423  	// Checks the status of a test matrix.
  6424  	//
  6425  	// May return any of the following canonical error codes:
  6426  	//
  6427  	// - PERMISSION_DENIED - if the user is not authorized to read project
  6428  	// - INVALID_ARGUMENT - if the request is malformed
  6429  	// - NOT_FOUND - if the Test Matrix does not exist
  6430  	GetTestMatrix(ctx context.Context, in *GetTestMatrixRequest, opts ...grpc.CallOption) (*TestMatrix, error)
  6431  	// Cancels unfinished test executions in a test matrix.
  6432  	// This call returns immediately and cancellation proceeds asynchronously.
  6433  	// If the matrix is already final, this operation will have no effect.
  6434  	//
  6435  	// May return any of the following canonical error codes:
  6436  	//
  6437  	// - PERMISSION_DENIED - if the user is not authorized to read project
  6438  	// - INVALID_ARGUMENT - if the request is malformed
  6439  	// - NOT_FOUND - if the Test Matrix does not exist
  6440  	CancelTestMatrix(ctx context.Context, in *CancelTestMatrixRequest, opts ...grpc.CallOption) (*CancelTestMatrixResponse, error)
  6441  }
  6442  
  6443  type testExecutionServiceClient struct {
  6444  	cc grpc.ClientConnInterface
  6445  }
  6446  
  6447  func NewTestExecutionServiceClient(cc grpc.ClientConnInterface) TestExecutionServiceClient {
  6448  	return &testExecutionServiceClient{cc}
  6449  }
  6450  
  6451  func (c *testExecutionServiceClient) CreateTestMatrix(ctx context.Context, in *CreateTestMatrixRequest, opts ...grpc.CallOption) (*TestMatrix, error) {
  6452  	out := new(TestMatrix)
  6453  	err := c.cc.Invoke(ctx, "/google.devtools.testing.v1.TestExecutionService/CreateTestMatrix", in, out, opts...)
  6454  	if err != nil {
  6455  		return nil, err
  6456  	}
  6457  	return out, nil
  6458  }
  6459  
  6460  func (c *testExecutionServiceClient) GetTestMatrix(ctx context.Context, in *GetTestMatrixRequest, opts ...grpc.CallOption) (*TestMatrix, error) {
  6461  	out := new(TestMatrix)
  6462  	err := c.cc.Invoke(ctx, "/google.devtools.testing.v1.TestExecutionService/GetTestMatrix", in, out, opts...)
  6463  	if err != nil {
  6464  		return nil, err
  6465  	}
  6466  	return out, nil
  6467  }
  6468  
  6469  func (c *testExecutionServiceClient) CancelTestMatrix(ctx context.Context, in *CancelTestMatrixRequest, opts ...grpc.CallOption) (*CancelTestMatrixResponse, error) {
  6470  	out := new(CancelTestMatrixResponse)
  6471  	err := c.cc.Invoke(ctx, "/google.devtools.testing.v1.TestExecutionService/CancelTestMatrix", in, out, opts...)
  6472  	if err != nil {
  6473  		return nil, err
  6474  	}
  6475  	return out, nil
  6476  }
  6477  
  6478  // TestExecutionServiceServer is the server API for TestExecutionService service.
  6479  type TestExecutionServiceServer interface {
  6480  	// Creates and runs a matrix of tests according to the given specifications.
  6481  	// Unsupported environments will be returned in the state UNSUPPORTED.
  6482  	// A test matrix is limited to use at most 2000 devices in parallel.
  6483  	//
  6484  	// May return any of the following canonical error codes:
  6485  	//
  6486  	//   - PERMISSION_DENIED - if the user is not authorized to write to project
  6487  	//   - INVALID_ARGUMENT - if the request is malformed or if the matrix tries
  6488  	//     to use too many simultaneous devices.
  6489  	CreateTestMatrix(context.Context, *CreateTestMatrixRequest) (*TestMatrix, error)
  6490  	// Checks the status of a test matrix.
  6491  	//
  6492  	// May return any of the following canonical error codes:
  6493  	//
  6494  	// - PERMISSION_DENIED - if the user is not authorized to read project
  6495  	// - INVALID_ARGUMENT - if the request is malformed
  6496  	// - NOT_FOUND - if the Test Matrix does not exist
  6497  	GetTestMatrix(context.Context, *GetTestMatrixRequest) (*TestMatrix, error)
  6498  	// Cancels unfinished test executions in a test matrix.
  6499  	// This call returns immediately and cancellation proceeds asynchronously.
  6500  	// If the matrix is already final, this operation will have no effect.
  6501  	//
  6502  	// May return any of the following canonical error codes:
  6503  	//
  6504  	// - PERMISSION_DENIED - if the user is not authorized to read project
  6505  	// - INVALID_ARGUMENT - if the request is malformed
  6506  	// - NOT_FOUND - if the Test Matrix does not exist
  6507  	CancelTestMatrix(context.Context, *CancelTestMatrixRequest) (*CancelTestMatrixResponse, error)
  6508  }
  6509  
  6510  // UnimplementedTestExecutionServiceServer can be embedded to have forward compatible implementations.
  6511  type UnimplementedTestExecutionServiceServer struct {
  6512  }
  6513  
  6514  func (*UnimplementedTestExecutionServiceServer) CreateTestMatrix(context.Context, *CreateTestMatrixRequest) (*TestMatrix, error) {
  6515  	return nil, status.Errorf(codes.Unimplemented, "method CreateTestMatrix not implemented")
  6516  }
  6517  func (*UnimplementedTestExecutionServiceServer) GetTestMatrix(context.Context, *GetTestMatrixRequest) (*TestMatrix, error) {
  6518  	return nil, status.Errorf(codes.Unimplemented, "method GetTestMatrix not implemented")
  6519  }
  6520  func (*UnimplementedTestExecutionServiceServer) CancelTestMatrix(context.Context, *CancelTestMatrixRequest) (*CancelTestMatrixResponse, error) {
  6521  	return nil, status.Errorf(codes.Unimplemented, "method CancelTestMatrix not implemented")
  6522  }
  6523  
  6524  func RegisterTestExecutionServiceServer(s *grpc.Server, srv TestExecutionServiceServer) {
  6525  	s.RegisterService(&_TestExecutionService_serviceDesc, srv)
  6526  }
  6527  
  6528  func _TestExecutionService_CreateTestMatrix_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  6529  	in := new(CreateTestMatrixRequest)
  6530  	if err := dec(in); err != nil {
  6531  		return nil, err
  6532  	}
  6533  	if interceptor == nil {
  6534  		return srv.(TestExecutionServiceServer).CreateTestMatrix(ctx, in)
  6535  	}
  6536  	info := &grpc.UnaryServerInfo{
  6537  		Server:     srv,
  6538  		FullMethod: "/google.devtools.testing.v1.TestExecutionService/CreateTestMatrix",
  6539  	}
  6540  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  6541  		return srv.(TestExecutionServiceServer).CreateTestMatrix(ctx, req.(*CreateTestMatrixRequest))
  6542  	}
  6543  	return interceptor(ctx, in, info, handler)
  6544  }
  6545  
  6546  func _TestExecutionService_GetTestMatrix_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  6547  	in := new(GetTestMatrixRequest)
  6548  	if err := dec(in); err != nil {
  6549  		return nil, err
  6550  	}
  6551  	if interceptor == nil {
  6552  		return srv.(TestExecutionServiceServer).GetTestMatrix(ctx, in)
  6553  	}
  6554  	info := &grpc.UnaryServerInfo{
  6555  		Server:     srv,
  6556  		FullMethod: "/google.devtools.testing.v1.TestExecutionService/GetTestMatrix",
  6557  	}
  6558  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  6559  		return srv.(TestExecutionServiceServer).GetTestMatrix(ctx, req.(*GetTestMatrixRequest))
  6560  	}
  6561  	return interceptor(ctx, in, info, handler)
  6562  }
  6563  
  6564  func _TestExecutionService_CancelTestMatrix_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  6565  	in := new(CancelTestMatrixRequest)
  6566  	if err := dec(in); err != nil {
  6567  		return nil, err
  6568  	}
  6569  	if interceptor == nil {
  6570  		return srv.(TestExecutionServiceServer).CancelTestMatrix(ctx, in)
  6571  	}
  6572  	info := &grpc.UnaryServerInfo{
  6573  		Server:     srv,
  6574  		FullMethod: "/google.devtools.testing.v1.TestExecutionService/CancelTestMatrix",
  6575  	}
  6576  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  6577  		return srv.(TestExecutionServiceServer).CancelTestMatrix(ctx, req.(*CancelTestMatrixRequest))
  6578  	}
  6579  	return interceptor(ctx, in, info, handler)
  6580  }
  6581  
  6582  var _TestExecutionService_serviceDesc = grpc.ServiceDesc{
  6583  	ServiceName: "google.devtools.testing.v1.TestExecutionService",
  6584  	HandlerType: (*TestExecutionServiceServer)(nil),
  6585  	Methods: []grpc.MethodDesc{
  6586  		{
  6587  			MethodName: "CreateTestMatrix",
  6588  			Handler:    _TestExecutionService_CreateTestMatrix_Handler,
  6589  		},
  6590  		{
  6591  			MethodName: "GetTestMatrix",
  6592  			Handler:    _TestExecutionService_GetTestMatrix_Handler,
  6593  		},
  6594  		{
  6595  			MethodName: "CancelTestMatrix",
  6596  			Handler:    _TestExecutionService_CancelTestMatrix_Handler,
  6597  		},
  6598  	},
  6599  	Streams:  []grpc.StreamDesc{},
  6600  	Metadata: "google/devtools/testing/v1/test_execution.proto",
  6601  }
  6602  

View as plain text