Repository: googleapis/google-api-python-client

Issue:
Documentation for people v1 API `create_contact` has unused kwarg `parent`
I am trying to create a contact, but I am getting the following error message.

**Exception Class:** TypeError
**Exception Message:** Got an unexpected keyword argument "parent"

**Lib version:** 1.2

```python
import httplib2
from apiclient.discovery import build
from oauth2client.file import Storage

storage = Storage('session.dat')
credentials = storage.get()

http = httplib2.Http()
credentials.authorize(http)

created_contacts = list()

new_contact = {
    'names': [
        {
            'displayName': 'Test Contact',
            'givenName': 'Test Contact',
            'displayNameLastFirst': 'Test Contact'
        }
    ],
    'phoneNumbers': [
        {
            'value': '+55 11 99999-9999',
            'canonicalForm': '+55 11 99999-9999'
        }
    ]
}

contact_info = build(serviceName='people', version='v1', http=http) \
    .people() \
    .createContact(parent='people/me', body=new_contact) \
    .execute()
```


Discussion:
@edilson-silva 

Oddly `parent` is listed as a kwarg but there is no more information about it in the [generated docs](http://googleapis.github.io/google-api-python-client/docs/dyn/people_v1.people.html#createContact).  It also isn't in the [REST documentation](https://developers.google.com/people/api/rest/v1/people/createContact). That may be a bug in the documentation generator. Can you try removing `parent`?

This is unrelated to the question, but please use a different library for credentials storage as oauth2client is deprecated. 
I experience the same issue unfortunately.
@bertin0 can you try sending a request without `parent`?

```python

contact_info = build(serviceName='people', version='v1', http=http) \
    .people() \
    .createContact(body=new_contact) \
    .execute()
```
I just checked and it seems to work. Thanks for the workaround. (Why didn't I think about this?)
Thanks for reporting back! It looks like this is a documentation bug.

Resolving patch:
diff --git a/describe.py b/describe.py
--- a/describe.py
+++ b/describe.py
@@ -38,6 +38,8 @@
 from googleapiclient.discovery import build_from_document
 from googleapiclient.discovery import UnknownApiNameOrVersion
 from googleapiclient.http import build_http
+from googleapiclient.errors import HttpError
+
 import uritemplate
 
 CSS = """<style>
@@ -389,6 +391,9 @@ def document_api(name, version):
     except UnknownApiNameOrVersion as e:
         print("Warning: {} {} found but could not be built.".format(name, version))
         return
+    except HttpError as e:
+        print("Warning: {} {} returned {}.".format(name, version, e))
+        return
 
     http = build_http()
     response, content = http.request(


Test patch:
diff --git a/docs/dyn/testing_v1.applicationDetailService.html b/docs/dyn/testing_v1.applicationDetailService.html
--- a/docs/dyn/testing_v1.applicationDetailService.html
+++ b/docs/dyn/testing_v1.applicationDetailService.html
@@ -75,15 +75,15 @@
 <h1><a href="testing_v1.html">Cloud Testing API</a> . <a href="testing_v1.applicationDetailService.html">applicationDetailService</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#getApkDetails">getApkDetails(body, x__xgafv=None)</a></code></p>
+  <code><a href="#getApkDetails">getApkDetails(body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the details of an Android application APK.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="getApkDetails">getApkDetails(body, x__xgafv=None)</code>
+    <code class="details" id="getApkDetails">getApkDetails(body=None, x__xgafv=None)</code>
   <pre>Gets the details of an Android application APK.
 
 Args:
-  body: object, The request body. (required)
+  body: object, The request body.
     The object takes the form of:
 
 { # A reference to a file, used for user inputs.
@@ -111,13 +111,13 @@ <h3>Method Details</h3>
         "targetSdkVersion": 42, # Specifies the API Level on which the application is designed to run.
         "applicationLabel": "A String", # User-readable name for the application.
         "intentFilters": [
-          { # The <intent-filter> section of an <activity> tag.
+          { # The &lt;intent-filter&gt; section of an &lt;activity&gt; tag.
               # https://developer.android.com/guide/topics/manifest/intent-filter-element.html
-            "mimeType": "A String", # The android:mimeType value of the <data> tag.
-            "actionNames": [ # The android:name value of the <action> tag.
+            "mimeType": "A String", # The android:mimeType value of the &lt;data&gt; tag.
+            "actionNames": [ # The android:name value of the &lt;action&gt; tag.
               "A String",
             ],
-            "categoryNames": [ # The android:name value of the <category> tag.
+            "categoryNames": [ # The android:name value of the &lt;category&gt; tag.
               "A String",
             ],
           },
diff --git a/docs/dyn/testing_v1.projects.testMatrices.html b/docs/dyn/testing_v1.projects.testMatrices.html
--- a/docs/dyn/testing_v1.projects.testMatrices.html
+++ b/docs/dyn/testing_v1.projects.testMatrices.html
@@ -78,7 +78,7 @@ <h2>Instance Methods</h2>
   <code><a href="#cancel">cancel(projectId, testMatrixId, x__xgafv=None)</a></code></p>
 <p class="firstline">Cancels unfinished test executions in a test matrix.</p>
 <p class="toc_element">
-  <code><a href="#create">create(projectId, body, requestId=None, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(projectId, body=None, requestId=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates and runs a matrix of tests according to the given specifications.</p>
 <p class="toc_element">
   <code><a href="#get">get(projectId, testMatrixId, x__xgafv=None)</a></code></p>
@@ -115,7 +115,7 @@ <h3>Method Details</h3>
 </div>
 
 <div class="method">
-    <code class="details" id="create">create(projectId, body, requestId=None, x__xgafv=None)</code>
+    <code class="details" id="create">create(projectId, body=None, requestId=None, x__xgafv=None)</code>
   <pre>Creates and runs a matrix of tests according to the given specifications.
 Unsupported environments will be returned in the state UNSUPPORTED.
 Matrices are limited to at most 200 supported executions.
@@ -128,7 +128,7 @@ <h3>Method Details</h3>
 
 Args:
   projectId: string, The GCE project under which this job will run. (required)
-  body: object, The request body. (required)
+  body: object, The request body.
     The object takes the form of:
 
 { # TestMatrix captures all details about a test. It contains the environment
@@ -179,6 +179,44 @@ <h3>Method Details</h3>
       { # A single test executed in a single environment.
         "timestamp": "A String", # Output only. The time this test execution was initially created.
         "matrixId": "A String", # Output only. Id of the containing TestMatrix.
+        "shard": { # Output only. Details about the shard. # Output only. Details about the shard.
+          "numShards": 42, # Output only. The total number of shards.
+          "testTargetsForShard": { # Test targets for a shard. # Output only. Test targets for each shard.
+            "testTargets": [ # Group of packages, classes, and/or test methods to be run for each shard.
+                # The targets need to be specified in AndroidJUnitRunner argument format. For
+                # example, “package com.my.packages” “class com.my.package.MyClass”.
+                #
+                # The number of shard_test_targets must be greater than 0.
+              "A String",
+            ],
+          },
+          "shardIndex": 42, # Output only. The index of the shard among all the shards.
+        },
+        "id": "A String", # Output only. Unique id set by the service.
+        "environment": { # The environment in which the test is run. # Output only. How the host machine(s) are configured.
+          "iosDevice": { # A single iOS device. # An iOS device which must be used with an iOS test.
+            "locale": "A String", # Required. The locale the test device used for testing.
+                # Use the TestEnvironmentDiscoveryService to get supported options.
+            "iosVersionId": "A String", # Required. The id of the iOS major software version to be used.
+                # Use the TestEnvironmentDiscoveryService to get supported options.
+            "orientation": "A String", # Required. How the device is oriented during the test.
+                # Use the TestEnvironmentDiscoveryService to get supported options.
+            "iosModelId": "A String", # Required. The id of the iOS device to be used.
+                # Use the TestEnvironmentDiscoveryService to get supported options.
+          },
+          "androidDevice": { # A single Android device. # An Android device which must be used with an Android test.
+            "locale": "A String", # Required. The locale the test device used for testing.
+                # Use the TestEnvironmentDiscoveryService to get supported options.
+            "androidVersionId": "A String", # Required. The id of the Android OS version to be used.
+                # Use the TestEnvironmentDiscoveryService to get supported options.
+            "androidModelId": "A String", # Required. The id of the Android device to be used.
+                # Use the TestEnvironmentDiscoveryService to get supported options.
+            "orientation": "A String", # Required. How the device is oriented during the test.
+                # Use the TestEnvironmentDiscoveryService to get supported options.
+          },
+        },
+        "state": "A String", # Output only. Indicates the current progress of the test execution
+            # (e.g., FINISHED).
         "testSpecification": { # A description of how to run the test. # Output only. How to run the test.
           "iosTestSetup": { # A description of how to set up an iOS device prior to running the test. # Test setup requirements for iOS.
             "networkProfile": "A String", # The network traffic profile used for running the test.
@@ -211,6 +249,19 @@ <h3>Method Details</h3>
               },
             "appBundleId": "A String", # Output only. The bundle id for the application under test.
           },
+          "iosTestLoop": { # A test of an iOS application that implements one or more game loop scenarios. # An iOS application with a test loop.
+              # This test type accepts an archived application (.ipa file) and a list of
+              # integer scenarios that will be executed on the app sequentially.
+            "scenarios": [ # The list of scenarios that should be run during the test. Defaults to the
+                # single scenario 0 if unspecified.
+              42,
+            ],
+            "appBundleId": "A String", # Output only. The bundle id for the application under test.
+            "appIpa": { # A reference to a file, used for user inputs. # Required. The .ipa of the application to test.
+                "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+                    # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+              },
+          },
           "testTimeout": "A String", # Max time a test execution is allowed to run before it is
               # automatically cancelled.
               # The default value is 5 min.
@@ -226,6 +277,13 @@ <h3>Method Details</h3>
                   # allows testing more functionalities.
               },
             },
+            "systrace": { # Systrace configuration for the run.
+                # If set a systrace will be taken, starting on test start and lasting for the
+                # configured duration. The systrace file thus obtained is put in the results
+                # bucket together with the other artifacts from the run.
+              "durationSeconds": 42, # Systrace duration in seconds.
+                  # Should be between 1 and 30 seconds. 0 disables systrace.
+            },
             "networkProfile": "A String", # The network traffic profile used for running the test.
                 # Available network profiles can be queried by using the
                 # NETWORK_CONFIGURATION environment type when calling
@@ -240,6 +298,13 @@ <h3>Method Details</h3>
                 # storage path prefix for that device.
               "A String",
             ],
+            "environmentVariables": [ # Environment variables to set for the test (only applicable for
+                # instrumentation tests).
+              { # A key-value pair passed as an environment variable to the test.
+                "key": "A String", # Key for the environment variable.
+                "value": "A String", # Value for the environment variable.
+              },
+            ],
             "filesToPush": [ # List of files to push to the device before starting the test.
               { # A single device file description.
                 "regularFile": { # A file or directory to install on the device before the test starts. # A reference to a regular file.
@@ -251,18 +316,18 @@ <h3>Method Details</h3>
                       # whitelisted path. If the file exists, it will be replaced.
                       # The following device-side directories and any of their subdirectories are
                       # whitelisted:
-                      # <p>${EXTERNAL_STORAGE}, or /sdcard</p>
-                      # <p>${ANDROID_DATA}/local/tmp, or /data/local/tmp</p>
-                      # <p>Specifying a path outside of these directory trees is invalid.
+                      # &lt;p&gt;${EXTERNAL_STORAGE}, or /sdcard&lt;/p&gt;
+                      # &lt;p&gt;${ANDROID_DATA}/local/tmp, or /data/local/tmp&lt;/p&gt;
+                      # &lt;p&gt;Specifying a path outside of these directory trees is invalid.
                       #
-                      # <p> The paths /sdcard and /data will be made available and treated as
+                      # &lt;p&gt; The paths /sdcard and /data will be made available and treated as
                       # implicit path substitutions. E.g. if /sdcard on a particular device does
                       # not map to external storage, the system will replace it with the external
                       # storage path prefix for that device and copy the file there.
                       #
-                      # <p> It is strongly advised to use the <a href=
-                      # "http://developer.android.com/reference/android/os/Environment.html">
-                      # Environment API</a> in app and test code to access files on the device in a
+                      # &lt;p&gt; It is strongly advised to use the &lt;a href=
+                      # "http://developer.android.com/reference/android/os/Environment.html"&gt;
+                      # Environment API&lt;/a&gt; in app and test code to access files on the device in a
                       # portable way.
                 },
                 "obbFile": { # An opaque binary blob file to install on the device before the test starts. # A reference to an opaque binary blob file.
@@ -270,7 +335,7 @@ <h3>Method Details</h3>
                       # Android
                       # e.g. [main|patch].0300110.com.example.android.obb
                       # which will be installed into
-                      #   \<shared-storage\>/Android/obb/\<package-name\>/
+                      #   \&lt;shared-storage\&gt;/Android/obb/\&lt;package-name\&gt;/
                       # on the device.
                   "obb": { # A reference to a file, used for user inputs. # Required. Opaque Binary Blob (OBB) file(s) to install on the device.
                       "gcsPath": "A String", # A path to a file in Google Cloud Storage.
@@ -290,27 +355,11 @@ <h3>Method Details</h3>
                   },
               },
             ],
-            "environmentVariables": [ # Environment variables to set for the test (only applicable for
-                # instrumentation tests).
-              { # A key-value pair passed as an environment variable to the test.
-                "value": "A String", # Value for the environment variable.
-                "key": "A String", # Key for the environment variable.
-              },
-            ],
           },
           "disableVideoRecording": True or False, # Disables video recording. May reduce test latency.
           "androidTestLoop": { # A test of an Android Application with a Test Loop. # An Android Application with a Test Loop.
-              # The intent \<intent-name\> will be implicitly added, since Games is the only
+              # The intent \&lt;intent-name\&gt; will be implicitly added, since Games is the only
               # user of this api, for the time being.
-            "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
-                # a base module directory, zero or more dynamic feature module directories.
-                # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
-                # building App Bundles.
-              "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
-                  "gcsPath": "A String", # A path to a file in Google Cloud Storage.
-                      # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
-                },
-            },
             "scenarios": [ # The list of scenarios that should be run during the test.
                 # The default is all test loops, derived from the application's
                 # manifest.
@@ -327,6 +376,15 @@ <h3>Method Details</h3>
                 # Scenarios can also be specified in the scenarios field.
               "A String",
             ],
+            "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
+                # a base module directory, zero or more dynamic feature module directories.
+                # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
+                # building App Bundles.
+              "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
+                  "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+                      # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+                },
+            },
             "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test.
                 "gcsPath": "A String", # A path to a file in Google Cloud Storage.
                     # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
@@ -337,7 +395,7 @@ <h3>Method Details</h3>
               # or physical Android Device, finding culprits and crashes as it goes.
             "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
                 # a base module directory, zero or more dynamic feature module directories.
-                # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
+                # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
                 # building App Bundles.
               "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
                   "gcsPath": "A String", # A path to a file in Google Cloud Storage.
@@ -379,6 +437,7 @@ <h3>Method Details</h3>
                 # If some are provided, then only those provided are launched (the main
                 # launcher activity must be provided explicitly).
               { # Message for specifying the start activities to crawl.
+                "timeout": "A String", # Timeout in seconds for each intent.
                 "startActivity": { # A starting intent specified by an action, uri, and categories. # An intent that starts an activity with specific details.
                   "action": "A String", # Action name.
                       # Required for START_ACTIVITY.
@@ -387,7 +446,6 @@ <h3>Method Details</h3>
                     "A String",
                   ],
                 },
-                "timeout": "A String", # Timeout in seconds for each intent.
                 "launcherActivity": { # Specifies an intent that starts the main launcher activity. # An intent that starts the main launcher activity.
                 },
               },
@@ -405,11 +463,11 @@ <h3>Method Details</h3>
               # a test runner class, such as com.google.GoogleTestRunner, which can vary
               # on the specific instrumentation framework chosen.
               #
-              # See <http://developer.android.com/tools/testing/testing_android.html> for
+              # See &lt;http://developer.android.com/tools/testing/testing_android.html&gt; for
               # more information on types of Android tests.
             "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
                 # a base module directory, zero or more dynamic feature module directories.
-                # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
+                # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
                 # building App Bundles.
               "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
                   "gcsPath": "A String", # A path to a file in Google Cloud Storage.
@@ -440,10 +498,38 @@ <h3>Method Details</h3>
                 #  - Logs are scoped per test
                 #
                 # See
-                # <https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator>
+                # &lt;https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator&gt;
                 # for more information about Android Test Orchestrator.
                 #
                 # If not set, the test will be run without the orchestrator.
+            "shardingOption": { # Options for enabling sharding. # The option to run tests in multiple shards in parallel.
+              "manualSharding": { # Shards test cases into the specified groups of packages, classes, and/or # Shards test cases into the specified groups of packages, classes, and/or
+                  # methods.
+                  # methods.
+                  #
+                  # With manual sharding enabled, specifying test targets via
+                  # environment_variables or in InstrumentationTest is invalid.
+                "testTargetsForShard": [ # Required. Group of packages, classes, and/or test methods to be run for
+                    # each shard. The number of shard_test_targets must be &gt;= 1 and &lt;= 50.
+                  { # Test targets for a shard.
+                    "testTargets": [ # Group of packages, classes, and/or test methods to be run for each shard.
+                        # The targets need to be specified in AndroidJUnitRunner argument format. For
+                        # example, “package com.my.packages” “class com.my.package.MyClass”.
+                        #
+                        # The number of shard_test_targets must be greater than 0.
+                      "A String",
+                    ],
+                  },
+                ],
+              },
+              "uniformSharding": { # Uniformly shards test cases given a total number of shards. # Uniformly shards test cases given a total number of shards.
+                  #
+                  # For Instrumentation test, it will be translated to “-e numShard” “-e
+                  # shardIndex” AndroidJUnitRunner arguments. With uniform sharding enabled,
+                  # specifying these sharding arguments via environment_variables is invalid.
+                "numShards": 42, # Required. Total number of shards. The number must be &gt;= 1 and &lt;= 50.
+              },
+            },
             "testTargets": [ # Each target must be fully qualified with the package name or class name,
                 # in one of these formats:
                 #  - "package package_name"
@@ -455,6 +541,15 @@ <h3>Method Details</h3>
             ],
           },
         },
+        "projectId": "A String", # Output only. The cloud project that owns the test execution.
+        "toolResultsStep": { # Represents a tool results step resource. # Output only. Where the results for this execution are written.
+            #
+            # This has the results of a TestExecution.
+          "projectId": "A String", # Output only. The cloud project that owns the tool results step.
+          "executionId": "A String", # Output only. A tool results execution ID.
+          "stepId": "A String", # Output only. A tool results step ID.
+          "historyId": "A String", # Output only. A tool results history ID.
+        },
         "testDetails": { # Additional details about the progress of the running test. # Output only. Additional details about the running test.
           "progressMessages": [ # Output only. Human-readable, detailed descriptions of the test's progress.
               # For example: "Provisioning a device", "Starting Test".
@@ -466,40 +561,6 @@ <h3>Method Details</h3>
           "errorMessage": "A String", # Output only. If the TestState is ERROR, then this string will contain
               # human-readable details about the error.
         },
-        "environment": { # The environment in which the test is run. # Output only. How the host machine(s) are configured.
-          "iosDevice": { # A single iOS device. # An iOS device which must be used with an iOS test.
-            "locale": "A String", # Required. The locale the test device used for testing.
-                # Use the TestEnvironmentDiscoveryService to get supported options.
-            "iosVersionId": "A String", # Required. The id of the iOS major software version to be used.
-                # Use the TestEnvironmentDiscoveryService to get supported options.
-            "orientation": "A String", # Required. How the device is oriented during the test.
-                # Use the TestEnvironmentDiscoveryService to get supported options.
-            "iosModelId": "A String", # Required. The id of the iOS device to be used.
-                # Use the TestEnvironmentDiscoveryService to get supported options.
-          },
-          "androidDevice": { # A single Android device. # An Android device which must be used with an Android test.
-            "locale": "A String", # Required. The locale the test device used for testing.
-                # Use the TestEnvironmentDiscoveryService to get supported options.
-            "androidVersionId": "A String", # Required. The id of the Android OS version to be used.
-                # Use the TestEnvironmentDiscoveryService to get supported options.
-            "androidModelId": "A String", # Required. The id of the Android device to be used.
-                # Use the TestEnvironmentDiscoveryService to get supported options.
-            "orientation": "A String", # Required. How the device is oriented during the test.
-                # Use the TestEnvironmentDiscoveryService to get supported options.
-          },
-        },
-        "state": "A String", # Output only. Indicates the current progress of the test execution
-            # (e.g., FINISHED).
-        "projectId": "A String", # Output only. The cloud project that owns the test execution.
-        "toolResultsStep": { # Represents a tool results step resource. # Output only. Where the results for this execution are written.
-            #
-            # This has the results of a TestExecution.
-          "projectId": "A String", # Output only. The cloud project that owns the tool results step.
-          "executionId": "A String", # Output only. A tool results execution ID.
-          "stepId": "A String", # Output only. A tool results step ID.
-          "historyId": "A String", # Output only. A tool results history ID.
-        },
-        "id": "A String", # Output only. Unique id set by the service.
       },
     ],
     "testSpecification": { # A description of how to run the test. # Required. How to run the test.
@@ -534,6 +595,19 @@ <h3>Method Details</h3>
           },
         "appBundleId": "A String", # Output only. The bundle id for the application under test.
       },
+      "iosTestLoop": { # A test of an iOS application that implements one or more game loop scenarios. # An iOS application with a test loop.
+          # This test type accepts an archived application (.ipa file) and a list of
+          # integer scenarios that will be executed on the app sequentially.
+        "scenarios": [ # The list of scenarios that should be run during the test. Defaults to the
+            # single scenario 0 if unspecified.
+          42,
+        ],
+        "appBundleId": "A String", # Output only. The bundle id for the application under test.
+        "appIpa": { # A reference to a file, used for user inputs. # Required. The .ipa of the application to test.
+            "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+                # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+          },
+      },
       "testTimeout": "A String", # Max time a test execution is allowed to run before it is
           # automatically cancelled.
           # The default value is 5 min.
@@ -549,6 +623,13 @@ <h3>Method Details</h3>
               # allows testing more functionalities.
           },
         },
+        "systrace": { # Systrace configuration for the run.
+            # If set a systrace will be taken, starting on test start and lasting for the
+            # configured duration. The systrace file thus obtained is put in the results
+            # bucket together with the other artifacts from the run.
+          "durationSeconds": 42, # Systrace duration in seconds.
+              # Should be between 1 and 30 seconds. 0 disables systrace.
+        },
         "networkProfile": "A String", # The network traffic profile used for running the test.
             # Available network profiles can be queried by using the
             # NETWORK_CONFIGURATION environment type when calling
@@ -563,6 +644,13 @@ <h3>Method Details</h3>
             # storage path prefix for that device.
           "A String",
         ],
+        "environmentVariables": [ # Environment variables to set for the test (only applicable for
+            # instrumentation tests).
+          { # A key-value pair passed as an environment variable to the test.
+            "key": "A String", # Key for the environment variable.
+            "value": "A String", # Value for the environment variable.
+          },
+        ],
         "filesToPush": [ # List of files to push to the device before starting the test.
           { # A single device file description.
             "regularFile": { # A file or directory to install on the device before the test starts. # A reference to a regular file.
@@ -574,18 +662,18 @@ <h3>Method Details</h3>
                   # whitelisted path. If the file exists, it will be replaced.
                   # The following device-side directories and any of their subdirectories are
                   # whitelisted:
-                  # <p>${EXTERNAL_STORAGE}, or /sdcard</p>
-                  # <p>${ANDROID_DATA}/local/tmp, or /data/local/tmp</p>
-                  # <p>Specifying a path outside of these directory trees is invalid.
+                  # &lt;p&gt;${EXTERNAL_STORAGE}, or /sdcard&lt;/p&gt;
+                  # &lt;p&gt;${ANDROID_DATA}/local/tmp, or /data/local/tmp&lt;/p&gt;
+                  # &lt;p&gt;Specifying a path outside of these directory trees is invalid.
                   #
-                  # <p> The paths /sdcard and /data will be made available and treated as
+                  # &lt;p&gt; The paths /sdcard and /data will be made available and treated as
                   # implicit path substitutions. E.g. if /sdcard on a particular device does
                   # not map to external storage, the system will replace it with the external
                   # storage path prefix for that device and copy the file there.
                   #
-                  # <p> It is strongly advised to use the <a href=
-                  # "http://developer.android.com/reference/android/os/Environment.html">
-                  # Environment API</a> in app and test code to access files on the device in a
+                  # &lt;p&gt; It is strongly advised to use the &lt;a href=
+                  # "http://developer.android.com/reference/android/os/Environment.html"&gt;
+                  # Environment API&lt;/a&gt; in app and test code to access files on the device in a
                   # portable way.
             },
             "obbFile": { # An opaque binary blob file to install on the device before the test starts. # A reference to an opaque binary blob file.
@@ -593,7 +681,7 @@ <h3>Method Details</h3>
                   # Android
                   # e.g. [main|patch].0300110.com.example.android.obb
                   # which will be installed into
-                  #   \<shared-storage\>/Android/obb/\<package-name\>/
+                  #   \&lt;shared-storage\&gt;/Android/obb/\&lt;package-name\&gt;/
                   # on the device.
               "obb": { # A reference to a file, used for user inputs. # Required. Opaque Binary Blob (OBB) file(s) to install on the device.
                   "gcsPath": "A String", # A path to a file in Google Cloud Storage.
@@ -613,27 +701,11 @@ <h3>Method Details</h3>
               },
           },
         ],
-        "environmentVariables": [ # Environment variables to set for the test (only applicable for
-            # instrumentation tests).
-          { # A key-value pair passed as an environment variable to the test.
-            "value": "A String", # Value for the environment variable.
-            "key": "A String", # Key for the environment variable.
-          },
-        ],
       },
       "disableVideoRecording": True or False, # Disables video recording. May reduce test latency.
       "androidTestLoop": { # A test of an Android Application with a Test Loop. # An Android Application with a Test Loop.
-          # The intent \<intent-name\> will be implicitly added, since Games is the only
+          # The intent \&lt;intent-name\&gt; will be implicitly added, since Games is the only
           # user of this api, for the time being.
-        "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
-            # a base module directory, zero or more dynamic feature module directories.
-            # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
-            # building App Bundles.
-          "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
-              "gcsPath": "A String", # A path to a file in Google Cloud Storage.
-                  # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
-            },
-        },
         "scenarios": [ # The list of scenarios that should be run during the test.
             # The default is all test loops, derived from the application's
             # manifest.
@@ -650,6 +722,15 @@ <h3>Method Details</h3>
             # Scenarios can also be specified in the scenarios field.
           "A String",
         ],
+        "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
+            # a base module directory, zero or more dynamic feature module directories.
+            # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
+            # building App Bundles.
+          "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
+              "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+                  # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+            },
+        },
         "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test.
             "gcsPath": "A String", # A path to a file in Google Cloud Storage.
                 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
@@ -660,7 +741,7 @@ <h3>Method Details</h3>
           # or physical Android Device, finding culprits and crashes as it goes.
         "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
             # a base module directory, zero or more dynamic feature module directories.
-            # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
+            # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
             # building App Bundles.
           "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
               "gcsPath": "A String", # A path to a file in Google Cloud Storage.
@@ -702,6 +783,7 @@ <h3>Method Details</h3>
             # If some are provided, then only those provided are launched (the main
             # launcher activity must be provided explicitly).
           { # Message for specifying the start activities to crawl.
+            "timeout": "A String", # Timeout in seconds for each intent.
             "startActivity": { # A starting intent specified by an action, uri, and categories. # An intent that starts an activity with specific details.
               "action": "A String", # Action name.
                   # Required for START_ACTIVITY.
@@ -710,7 +792,6 @@ <h3>Method Details</h3>
                 "A String",
               ],
             },
-            "timeout": "A String", # Timeout in seconds for each intent.
             "launcherActivity": { # Specifies an intent that starts the main launcher activity. # An intent that starts the main launcher activity.
             },
           },
@@ -728,11 +809,11 @@ <h3>Method Details</h3>
           # a test runner class, such as com.google.GoogleTestRunner, which can vary
           # on the specific instrumentation framework chosen.
           #
-          # See <http://developer.android.com/tools/testing/testing_android.html> for
+          # See &lt;http://developer.android.com/tools/testing/testing_android.html&gt; for
           # more information on types of Android tests.
         "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
             # a base module directory, zero or more dynamic feature module directories.
-            # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
+            # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
             # building App Bundles.
           "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
               "gcsPath": "A String", # A path to a file in Google Cloud Storage.
@@ -763,10 +844,38 @@ <h3>Method Details</h3>
             #  - Logs are scoped per test
             #
             # See
-            # <https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator>
+            # &lt;https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator&gt;
             # for more information about Android Test Orchestrator.
             #
             # If not set, the test will be run without the orchestrator.
+        "shardingOption": { # Options for enabling sharding. # The option to run tests in multiple shards in parallel.
+          "manualSharding": { # Shards test cases into the specified groups of packages, classes, and/or # Shards test cases into the specified groups of packages, classes, and/or
+              # methods.
+              # methods.
+              #
+              # With manual sharding enabled, specifying test targets via
+              # environment_variables or in InstrumentationTest is invalid.
+            "testTargetsForShard": [ # Required. Group of packages, classes, and/or test methods to be run for
+                # each shard. The number of shard_test_targets must be &gt;= 1 and &lt;= 50.
+              { # Test targets for a shard.
+                "testTargets": [ # Group of packages, classes, and/or test methods to be run for each shard.
+                    # The targets need to be specified in AndroidJUnitRunner argument format. For
+                    # example, “package com.my.packages” “class com.my.package.MyClass”.
+                    #
+                    # The number of shard_test_targets must be greater than 0.
+                  "A String",
+                ],
+              },
+            ],
+          },
+          "uniformSharding": { # Uniformly shards test cases given a total number of shards. # Uniformly shards test cases given a total number of shards.
+              #
+              # For Instrumentation test, it will be translated to “-e numShard” “-e
+              # shardIndex” AndroidJUnitRunner arguments. With uniform sharding enabled,
+              # specifying these sharding arguments via environment_variables is invalid.
+            "numShards": 42, # Required. Total number of shards. The number must be &gt;= 1 and &lt;= 50.
+          },
+        },
         "testTargets": [ # Each target must be fully qualified with the package name or class name,
             # in one of these formats:
             #  - "package package_name"
@@ -804,11 +913,11 @@ <h3>Method Details</h3>
           #
           # Only supported permutations will be instantiated.  Invalid permutations
           # (e.g., incompatible models/versions) are ignored.
-        "locales": [ # Required. The set of locales the test device will enable for testing.
+        "orientations": [ # Required. The set of orientations to test with.
             # Use the TestEnvironmentDiscoveryService to get supported options.
           "A String",
         ],
-        "androidModelIds": [ # Required. The ids of the set of Android device to be used.
+        "locales": [ # Required. The set of locales the test device will enable for testing.
             # Use the TestEnvironmentDiscoveryService to get supported options.
           "A String",
         ],
@@ -816,7 +925,7 @@ <h3>Method Details</h3>
             # Use the TestEnvironmentDiscoveryService to get supported options.
           "A String",
         ],
-        "orientations": [ # Required. The set of orientations to test with.
+        "androidModelIds": [ # Required. The ids of the set of Android device to be used.
             # Use the TestEnvironmentDiscoveryService to get supported options.
           "A String",
         ],
@@ -902,6 +1011,44 @@ <h3>Method Details</h3>
         { # A single test executed in a single environment.
           "timestamp": "A String", # Output only. The time this test execution was initially created.
           "matrixId": "A String", # Output only. Id of the containing TestMatrix.
+          "shard": { # Output only. Details about the shard. # Output only. Details about the shard.
+            "numShards": 42, # Output only. The total number of shards.
+            "testTargetsForShard": { # Test targets for a shard. # Output only. Test targets for each shard.
+              "testTargets": [ # Group of packages, classes, and/or test methods to be run for each shard.
+                  # The targets need to be specified in AndroidJUnitRunner argument format. For
+                  # example, “package com.my.packages” “class com.my.package.MyClass”.
+                  #
+                  # The number of shard_test_targets must be greater than 0.
+                "A String",
+              ],
+            },
+            "shardIndex": 42, # Output only. The index of the shard among all the shards.
+          },
+          "id": "A String", # Output only. Unique id set by the service.
+          "environment": { # The environment in which the test is run. # Output only. How the host machine(s) are configured.
+            "iosDevice": { # A single iOS device. # An iOS device which must be used with an iOS test.
+              "locale": "A String", # Required. The locale the test device used for testing.
+                  # Use the TestEnvironmentDiscoveryService to get supported options.
+              "iosVersionId": "A String", # Required. The id of the iOS major software version to be used.
+                  # Use the TestEnvironmentDiscoveryService to get supported options.
+              "orientation": "A String", # Required. How the device is oriented during the test.
+                  # Use the TestEnvironmentDiscoveryService to get supported options.
+              "iosModelId": "A String", # Required. The id of the iOS device to be used.
+                  # Use the TestEnvironmentDiscoveryService to get supported options.
+            },
+            "androidDevice": { # A single Android device. # An Android device which must be used with an Android test.
+              "locale": "A String", # Required. The locale the test device used for testing.
+                  # Use the TestEnvironmentDiscoveryService to get supported options.
+              "androidVersionId": "A String", # Required. The id of the Android OS version to be used.
+                  # Use the TestEnvironmentDiscoveryService to get supported options.
+              "androidModelId": "A String", # Required. The id of the Android device to be used.
+                  # Use the TestEnvironmentDiscoveryService to get supported options.
+              "orientation": "A String", # Required. How the device is oriented during the test.
+                  # Use the TestEnvironmentDiscoveryService to get supported options.
+            },
+          },
+          "state": "A String", # Output only. Indicates the current progress of the test execution
+              # (e.g., FINISHED).
           "testSpecification": { # A description of how to run the test. # Output only. How to run the test.
             "iosTestSetup": { # A description of how to set up an iOS device prior to running the test. # Test setup requirements for iOS.
               "networkProfile": "A String", # The network traffic profile used for running the test.
@@ -934,6 +1081,19 @@ <h3>Method Details</h3>
                 },
               "appBundleId": "A String", # Output only. The bundle id for the application under test.
             },
+            "iosTestLoop": { # A test of an iOS application that implements one or more game loop scenarios. # An iOS application with a test loop.
+                # This test type accepts an archived application (.ipa file) and a list of
+                # integer scenarios that will be executed on the app sequentially.
+              "scenarios": [ # The list of scenarios that should be run during the test. Defaults to the
+                  # single scenario 0 if unspecified.
+                42,
+              ],
+              "appBundleId": "A String", # Output only. The bundle id for the application under test.
+              "appIpa": { # A reference to a file, used for user inputs. # Required. The .ipa of the application to test.
+                  "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+                      # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+                },
+            },
             "testTimeout": "A String", # Max time a test execution is allowed to run before it is
                 # automatically cancelled.
                 # The default value is 5 min.
@@ -949,6 +1109,13 @@ <h3>Method Details</h3>
                     # allows testing more functionalities.
                 },
               },
+              "systrace": { # Systrace configuration for the run.
+                  # If set a systrace will be taken, starting on test start and lasting for the
+                  # configured duration. The systrace file thus obtained is put in the results
+                  # bucket together with the other artifacts from the run.
+                "durationSeconds": 42, # Systrace duration in seconds.
+                    # Should be between 1 and 30 seconds. 0 disables systrace.
+              },
               "networkProfile": "A String", # The network traffic profile used for running the test.
                   # Available network profiles can be queried by using the
                   # NETWORK_CONFIGURATION environment type when calling
@@ -963,6 +1130,13 @@ <h3>Method Details</h3>
                   # storage path prefix for that device.
                 "A String",
               ],
+              "environmentVariables": [ # Environment variables to set for the test (only applicable for
+                  # instrumentation tests).
+                { # A key-value pair passed as an environment variable to the test.
+                  "key": "A String", # Key for the environment variable.
+                  "value": "A String", # Value for the environment variable.
+                },
+              ],
               "filesToPush": [ # List of files to push to the device before starting the test.
                 { # A single device file description.
                   "regularFile": { # A file or directory to install on the device before the test starts. # A reference to a regular file.
@@ -974,18 +1148,18 @@ <h3>Method Details</h3>
                         # whitelisted path. If the file exists, it will be replaced.
                         # The following device-side directories and any of their subdirectories are
                         # whitelisted:
-                        # <p>${EXTERNAL_STORAGE}, or /sdcard</p>
-                        # <p>${ANDROID_DATA}/local/tmp, or /data/local/tmp</p>
-                        # <p>Specifying a path outside of these directory trees is invalid.
+                        # &lt;p&gt;${EXTERNAL_STORAGE}, or /sdcard&lt;/p&gt;
+                        # &lt;p&gt;${ANDROID_DATA}/local/tmp, or /data/local/tmp&lt;/p&gt;
+                        # &lt;p&gt;Specifying a path outside of these directory trees is invalid.
                         #
-                        # <p> The paths /sdcard and /data will be made available and treated as
+                        # &lt;p&gt; The paths /sdcard and /data will be made available and treated as
                         # implicit path substitutions. E.g. if /sdcard on a particular device does
                         # not map to external storage, the system will replace it with the external
                         # storage path prefix for that device and copy the file there.
                         #
-                        # <p> It is strongly advised to use the <a href=
-                        # "http://developer.android.com/reference/android/os/Environment.html">
-                        # Environment API</a> in app and test code to access files on the device in a
+                        # &lt;p&gt; It is strongly advised to use the &lt;a href=
+                        # "http://developer.android.com/reference/android/os/Environment.html"&gt;
+                        # Environment API&lt;/a&gt; in app and test code to access files on the device in a
                         # portable way.
                   },
                   "obbFile": { # An opaque binary blob file to install on the device before the test starts. # A reference to an opaque binary blob file.
@@ -993,7 +1167,7 @@ <h3>Method Details</h3>
                         # Android
                         # e.g. [main|patch].0300110.com.example.android.obb
                         # which will be installed into
-                        #   \<shared-storage\>/Android/obb/\<package-name\>/
+                        #   \&lt;shared-storage\&gt;/Android/obb/\&lt;package-name\&gt;/
                         # on the device.
                     "obb": { # A reference to a file, used for user inputs. # Required. Opaque Binary Blob (OBB) file(s) to install on the device.
                         "gcsPath": "A String", # A path to a file in Google Cloud Storage.
@@ -1013,27 +1187,11 @@ <h3>Method Details</h3>
                     },
                 },
               ],
-              "environmentVariables": [ # Environment variables to set for the test (only applicable for
-                  # instrumentation tests).
-                { # A key-value pair passed as an environment variable to the test.
-                  "value": "A String", # Value for the environment variable.
-                  "key": "A String", # Key for the environment variable.
-                },
-              ],
             },
             "disableVideoRecording": True or False, # Disables video recording. May reduce test latency.
             "androidTestLoop": { # A test of an Android Application with a Test Loop. # An Android Application with a Test Loop.
-                # The intent \<intent-name\> will be implicitly added, since Games is the only
+                # The intent \&lt;intent-name\&gt; will be implicitly added, since Games is the only
                 # user of this api, for the time being.
-              "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
-                  # a base module directory, zero or more dynamic feature module directories.
-                  # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
-                  # building App Bundles.
-                "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
-                    "gcsPath": "A String", # A path to a file in Google Cloud Storage.
-                        # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
-                  },
-              },
               "scenarios": [ # The list of scenarios that should be run during the test.
                   # The default is all test loops, derived from the application's
                   # manifest.
@@ -1050,6 +1208,15 @@ <h3>Method Details</h3>
                   # Scenarios can also be specified in the scenarios field.
                 "A String",
               ],
+              "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
+                  # a base module directory, zero or more dynamic feature module directories.
+                  # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
+                  # building App Bundles.
+                "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
+                    "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+                        # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+                  },
+              },
               "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test.
                   "gcsPath": "A String", # A path to a file in Google Cloud Storage.
                       # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
@@ -1060,7 +1227,7 @@ <h3>Method Details</h3>
                 # or physical Android Device, finding culprits and crashes as it goes.
               "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
                   # a base module directory, zero or more dynamic feature module directories.
-                  # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
+                  # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
                   # building App Bundles.
                 "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
                     "gcsPath": "A String", # A path to a file in Google Cloud Storage.
@@ -1102,6 +1269,7 @@ <h3>Method Details</h3>
                   # If some are provided, then only those provided are launched (the main
                   # launcher activity must be provided explicitly).
                 { # Message for specifying the start activities to crawl.
+                  "timeout": "A String", # Timeout in seconds for each intent.
                   "startActivity": { # A starting intent specified by an action, uri, and categories. # An intent that starts an activity with specific details.
                     "action": "A String", # Action name.
                         # Required for START_ACTIVITY.
@@ -1110,7 +1278,6 @@ <h3>Method Details</h3>
                       "A String",
                     ],
                   },
-                  "timeout": "A String", # Timeout in seconds for each intent.
                   "launcherActivity": { # Specifies an intent that starts the main launcher activity. # An intent that starts the main launcher activity.
                   },
                 },
@@ -1128,11 +1295,11 @@ <h3>Method Details</h3>
                 # a test runner class, such as com.google.GoogleTestRunner, which can vary
                 # on the specific instrumentation framework chosen.
                 #
-                # See <http://developer.android.com/tools/testing/testing_android.html> for
+                # See &lt;http://developer.android.com/tools/testing/testing_android.html&gt; for
                 # more information on types of Android tests.
               "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
                   # a base module directory, zero or more dynamic feature module directories.
-                  # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
+                  # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
                   # building App Bundles.
                 "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
                     "gcsPath": "A String", # A path to a file in Google Cloud Storage.
@@ -1163,56 +1330,49 @@ <h3>Method Details</h3>
                   #  - Logs are scoped per test
                   #
                   # See
-                  # <https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator>
+                  # &lt;https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator&gt;
                   # for more information about Android Test Orchestrator.
                   #
                   # If not set, the test will be run without the orchestrator.
-              "testTargets": [ # Each target must be fully qualified with the package name or class name,
-                  # in one of these formats:
-                  #  - "package package_name"
-                  #  - "class package_name.class_name"
-                  #  - "class package_name.class_name#method_name"
-                  #
-                  # If empty, all targets in the module will be run.
-                "A String",
-              ],
-            },
-          },
-          "testDetails": { # Additional details about the progress of the running test. # Output only. Additional details about the running test.
-            "progressMessages": [ # Output only. Human-readable, detailed descriptions of the test's progress.
-                # For example: "Provisioning a device", "Starting Test".
-                #
-                # During the course of execution new data may be appended
-                # to the end of progress_messages.
-              "A String",
-            ],
-            "errorMessage": "A String", # Output only. If the TestState is ERROR, then this string will contain
-                # human-readable details about the error.
-          },
-          "environment": { # The environment in which the test is run. # Output only. How the host machine(s) are configured.
-            "iosDevice": { # A single iOS device. # An iOS device which must be used with an iOS test.
-              "locale": "A String", # Required. The locale the test device used for testing.
-                  # Use the TestEnvironmentDiscoveryService to get supported options.
-              "iosVersionId": "A String", # Required. The id of the iOS major software version to be used.
-                  # Use the TestEnvironmentDiscoveryService to get supported options.
-              "orientation": "A String", # Required. How the device is oriented during the test.
-                  # Use the TestEnvironmentDiscoveryService to get supported options.
-              "iosModelId": "A String", # Required. The id of the iOS device to be used.
-                  # Use the TestEnvironmentDiscoveryService to get supported options.
-            },
-            "androidDevice": { # A single Android device. # An Android device which must be used with an Android test.
-              "locale": "A String", # Required. The locale the test device used for testing.
-                  # Use the TestEnvironmentDiscoveryService to get supported options.
-              "androidVersionId": "A String", # Required. The id of the Android OS version to be used.
-                  # Use the TestEnvironmentDiscoveryService to get supported options.
-              "androidModelId": "A String", # Required. The id of the Android device to be used.
-                  # Use the TestEnvironmentDiscoveryService to get supported options.
-              "orientation": "A String", # Required. How the device is oriented during the test.
-                  # Use the TestEnvironmentDiscoveryService to get supported options.
+              "shardingOption": { # Options for enabling sharding. # The option to run tests in multiple shards in parallel.
+                "manualSharding": { # Shards test cases into the specified groups of packages, classes, and/or # Shards test cases into the specified groups of packages, classes, and/or
+                    # methods.
+                    # methods.
+                    #
+                    # With manual sharding enabled, specifying test targets via
+                    # environment_variables or in InstrumentationTest is invalid.
+                  "testTargetsForShard": [ # Required. Group of packages, classes, and/or test methods to be run for
+                      # each shard. The number of shard_test_targets must be &gt;= 1 and &lt;= 50.
+                    { # Test targets for a shard.
+                      "testTargets": [ # Group of packages, classes, and/or test methods to be run for each shard.
+                          # The targets need to be specified in AndroidJUnitRunner argument format. For
+                          # example, “package com.my.packages” “class com.my.package.MyClass”.
+                          #
+                          # The number of shard_test_targets must be greater than 0.
+                        "A String",
+                      ],
+                    },
+                  ],
+                },
+                "uniformSharding": { # Uniformly shards test cases given a total number of shards. # Uniformly shards test cases given a total number of shards.
+                    #
+                    # For Instrumentation test, it will be translated to “-e numShard” “-e
+                    # shardIndex” AndroidJUnitRunner arguments. With uniform sharding enabled,
+                    # specifying these sharding arguments via environment_variables is invalid.
+                  "numShards": 42, # Required. Total number of shards. The number must be &gt;= 1 and &lt;= 50.
+                },
+              },
+              "testTargets": [ # Each target must be fully qualified with the package name or class name,
+                  # in one of these formats:
+                  #  - "package package_name"
+                  #  - "class package_name.class_name"
+                  #  - "class package_name.class_name#method_name"
+                  #
+                  # If empty, all targets in the module will be run.
+                "A String",
+              ],
             },
           },
-          "state": "A String", # Output only. Indicates the current progress of the test execution
-              # (e.g., FINISHED).
           "projectId": "A String", # Output only. The cloud project that owns the test execution.
           "toolResultsStep": { # Represents a tool results step resource. # Output only. Where the results for this execution are written.
               #
@@ -1222,7 +1382,17 @@ <h3>Method Details</h3>
             "stepId": "A String", # Output only. A tool results step ID.
             "historyId": "A String", # Output only. A tool results history ID.
           },
-          "id": "A String", # Output only. Unique id set by the service.
+          "testDetails": { # Additional details about the progress of the running test. # Output only. Additional details about the running test.
+            "progressMessages": [ # Output only. Human-readable, detailed descriptions of the test's progress.
+                # For example: "Provisioning a device", "Starting Test".
+                #
+                # During the course of execution new data may be appended
+                # to the end of progress_messages.
+              "A String",
+            ],
+            "errorMessage": "A String", # Output only. If the TestState is ERROR, then this string will contain
+                # human-readable details about the error.
+          },
         },
       ],
       "testSpecification": { # A description of how to run the test. # Required. How to run the test.
@@ -1257,6 +1427,19 @@ <h3>Method Details</h3>
             },
           "appBundleId": "A String", # Output only. The bundle id for the application under test.
         },
+        "iosTestLoop": { # A test of an iOS application that implements one or more game loop scenarios. # An iOS application with a test loop.
+            # This test type accepts an archived application (.ipa file) and a list of
+            # integer scenarios that will be executed on the app sequentially.
+          "scenarios": [ # The list of scenarios that should be run during the test. Defaults to the
+              # single scenario 0 if unspecified.
+            42,
+          ],
+          "appBundleId": "A String", # Output only. The bundle id for the application under test.
+          "appIpa": { # A reference to a file, used for user inputs. # Required. The .ipa of the application to test.
+              "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+                  # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+            },
+        },
         "testTimeout": "A String", # Max time a test execution is allowed to run before it is
             # automatically cancelled.
             # The default value is 5 min.
@@ -1272,6 +1455,13 @@ <h3>Method Details</h3>
                 # allows testing more functionalities.
             },
           },
+          "systrace": { # Systrace configuration for the run.
+              # If set a systrace will be taken, starting on test start and lasting for the
+              # configured duration. The systrace file thus obtained is put in the results
+              # bucket together with the other artifacts from the run.
+            "durationSeconds": 42, # Systrace duration in seconds.
+                # Should be between 1 and 30 seconds. 0 disables systrace.
+          },
           "networkProfile": "A String", # The network traffic profile used for running the test.
               # Available network profiles can be queried by using the
               # NETWORK_CONFIGURATION environment type when calling
@@ -1286,6 +1476,13 @@ <h3>Method Details</h3>
               # storage path prefix for that device.
             "A String",
           ],
+          "environmentVariables": [ # Environment variables to set for the test (only applicable for
+              # instrumentation tests).
+            { # A key-value pair passed as an environment variable to the test.
+              "key": "A String", # Key for the environment variable.
+              "value": "A String", # Value for the environment variable.
+            },
+          ],
           "filesToPush": [ # List of files to push to the device before starting the test.
             { # A single device file description.
               "regularFile": { # A file or directory to install on the device before the test starts. # A reference to a regular file.
@@ -1297,18 +1494,18 @@ <h3>Method Details</h3>
                     # whitelisted path. If the file exists, it will be replaced.
                     # The following device-side directories and any of their subdirectories are
                     # whitelisted:
-                    # <p>${EXTERNAL_STORAGE}, or /sdcard</p>
-                    # <p>${ANDROID_DATA}/local/tmp, or /data/local/tmp</p>
-                    # <p>Specifying a path outside of these directory trees is invalid.
+                    # &lt;p&gt;${EXTERNAL_STORAGE}, or /sdcard&lt;/p&gt;
+                    # &lt;p&gt;${ANDROID_DATA}/local/tmp, or /data/local/tmp&lt;/p&gt;
+                    # &lt;p&gt;Specifying a path outside of these directory trees is invalid.
                     #
-                    # <p> The paths /sdcard and /data will be made available and treated as
+                    # &lt;p&gt; The paths /sdcard and /data will be made available and treated as
                     # implicit path substitutions. E.g. if /sdcard on a particular device does
                     # not map to external storage, the system will replace it with the external
                     # storage path prefix for that device and copy the file there.
                     #
-                    # <p> It is strongly advised to use the <a href=
-                    # "http://developer.android.com/reference/android/os/Environment.html">
-                    # Environment API</a> in app and test code to access files on the device in a
+                    # &lt;p&gt; It is strongly advised to use the &lt;a href=
+                    # "http://developer.android.com/reference/android/os/Environment.html"&gt;
+                    # Environment API&lt;/a&gt; in app and test code to access files on the device in a
                     # portable way.
               },
               "obbFile": { # An opaque binary blob file to install on the device before the test starts. # A reference to an opaque binary blob file.
@@ -1316,7 +1513,7 @@ <h3>Method Details</h3>
                     # Android
                     # e.g. [main|patch].0300110.com.example.android.obb
                     # which will be installed into
-                    #   \<shared-storage\>/Android/obb/\<package-name\>/
+                    #   \&lt;shared-storage\&gt;/Android/obb/\&lt;package-name\&gt;/
                     # on the device.
                 "obb": { # A reference to a file, used for user inputs. # Required. Opaque Binary Blob (OBB) file(s) to install on the device.
                     "gcsPath": "A String", # A path to a file in Google Cloud Storage.
@@ -1336,27 +1533,11 @@ <h3>Method Details</h3>
                 },
             },
           ],
-          "environmentVariables": [ # Environment variables to set for the test (only applicable for
-              # instrumentation tests).
-            { # A key-value pair passed as an environment variable to the test.
-              "value": "A String", # Value for the environment variable.
-              "key": "A String", # Key for the environment variable.
-            },
-          ],
         },
         "disableVideoRecording": True or False, # Disables video recording. May reduce test latency.
         "androidTestLoop": { # A test of an Android Application with a Test Loop. # An Android Application with a Test Loop.
-            # The intent \<intent-name\> will be implicitly added, since Games is the only
+            # The intent \&lt;intent-name\&gt; will be implicitly added, since Games is the only
             # user of this api, for the time being.
-          "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
-              # a base module directory, zero or more dynamic feature module directories.
-              # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
-              # building App Bundles.
-            "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
-                "gcsPath": "A String", # A path to a file in Google Cloud Storage.
-                    # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
-              },
-          },
           "scenarios": [ # The list of scenarios that should be run during the test.
               # The default is all test loops, derived from the application's
               # manifest.
@@ -1373,6 +1554,15 @@ <h3>Method Details</h3>
               # Scenarios can also be specified in the scenarios field.
             "A String",
           ],
+          "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
+              # a base module directory, zero or more dynamic feature module directories.
+              # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
+              # building App Bundles.
+            "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
+                "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+                    # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+              },
+          },
           "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test.
               "gcsPath": "A String", # A path to a file in Google Cloud Storage.
                   # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
@@ -1383,7 +1573,7 @@ <h3>Method Details</h3>
             # or physical Android Device, finding culprits and crashes as it goes.
           "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
               # a base module directory, zero or more dynamic feature module directories.
-              # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
+              # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
               # building App Bundles.
             "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
                 "gcsPath": "A String", # A path to a file in Google Cloud Storage.
@@ -1425,6 +1615,7 @@ <h3>Method Details</h3>
               # If some are provided, then only those provided are launched (the main
               # launcher activity must be provided explicitly).
             { # Message for specifying the start activities to crawl.
+              "timeout": "A String", # Timeout in seconds for each intent.
               "startActivity": { # A starting intent specified by an action, uri, and categories. # An intent that starts an activity with specific details.
                 "action": "A String", # Action name.
                     # Required for START_ACTIVITY.
@@ -1433,7 +1624,6 @@ <h3>Method Details</h3>
                   "A String",
                 ],
               },
-              "timeout": "A String", # Timeout in seconds for each intent.
               "launcherActivity": { # Specifies an intent that starts the main launcher activity. # An intent that starts the main launcher activity.
               },
             },
@@ -1451,11 +1641,11 @@ <h3>Method Details</h3>
             # a test runner class, such as com.google.GoogleTestRunner, which can vary
             # on the specific instrumentation framework chosen.
             #
-            # See <http://developer.android.com/tools/testing/testing_android.html> for
+            # See &lt;http://developer.android.com/tools/testing/testing_android.html&gt; for
             # more information on types of Android tests.
           "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
               # a base module directory, zero or more dynamic feature module directories.
-              # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
+              # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
               # building App Bundles.
             "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
                 "gcsPath": "A String", # A path to a file in Google Cloud Storage.
@@ -1486,10 +1676,38 @@ <h3>Method Details</h3>
               #  - Logs are scoped per test
               #
               # See
-              # <https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator>
+              # &lt;https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator&gt;
               # for more information about Android Test Orchestrator.
               #
               # If not set, the test will be run without the orchestrator.
+          "shardingOption": { # Options for enabling sharding. # The option to run tests in multiple shards in parallel.
+            "manualSharding": { # Shards test cases into the specified groups of packages, classes, and/or # Shards test cases into the specified groups of packages, classes, and/or
+                # methods.
+                # methods.
+                #
+                # With manual sharding enabled, specifying test targets via
+                # environment_variables or in InstrumentationTest is invalid.
+              "testTargetsForShard": [ # Required. Group of packages, classes, and/or test methods to be run for
+                  # each shard. The number of shard_test_targets must be &gt;= 1 and &lt;= 50.
+                { # Test targets for a shard.
+                  "testTargets": [ # Group of packages, classes, and/or test methods to be run for each shard.
+                      # The targets need to be specified in AndroidJUnitRunner argument format. For
+                      # example, “package com.my.packages” “class com.my.package.MyClass”.
+                      #
+                      # The number of shard_test_targets must be greater than 0.
+                    "A String",
+                  ],
+                },
+              ],
+            },
+            "uniformSharding": { # Uniformly shards test cases given a total number of shards. # Uniformly shards test cases given a total number of shards.
+                #
+                # For Instrumentation test, it will be translated to “-e numShard” “-e
+                # shardIndex” AndroidJUnitRunner arguments. With uniform sharding enabled,
+                # specifying these sharding arguments via environment_variables is invalid.
+              "numShards": 42, # Required. Total number of shards. The number must be &gt;= 1 and &lt;= 50.
+            },
+          },
           "testTargets": [ # Each target must be fully qualified with the package name or class name,
               # in one of these formats:
               #  - "package package_name"
@@ -1527,11 +1745,11 @@ <h3>Method Details</h3>
             #
             # Only supported permutations will be instantiated.  Invalid permutations
             # (e.g., incompatible models/versions) are ignored.
-          "locales": [ # Required. The set of locales the test device will enable for testing.
+          "orientations": [ # Required. The set of orientations to test with.
               # Use the TestEnvironmentDiscoveryService to get supported options.
             "A String",
           ],
-          "androidModelIds": [ # Required. The ids of the set of Android device to be used.
+          "locales": [ # Required. The set of locales the test device will enable for testing.
               # Use the TestEnvironmentDiscoveryService to get supported options.
             "A String",
           ],
@@ -1539,7 +1757,7 @@ <h3>Method Details</h3>
               # Use the TestEnvironmentDiscoveryService to get supported options.
             "A String",
           ],
-          "orientations": [ # Required. The set of orientations to test with.
+          "androidModelIds": [ # Required. The ids of the set of Android device to be used.
               # Use the TestEnvironmentDiscoveryService to get supported options.
             "A String",
           ],
@@ -1633,6 +1851,44 @@ <h3>Method Details</h3>
         { # A single test executed in a single environment.
           "timestamp": "A String", # Output only. The time this test execution was initially created.
           "matrixId": "A String", # Output only. Id of the containing TestMatrix.
+          "shard": { # Output only. Details about the shard. # Output only. Details about the shard.
+            "numShards": 42, # Output only. The total number of shards.
+            "testTargetsForShard": { # Test targets for a shard. # Output only. Test targets for each shard.
+              "testTargets": [ # Group of packages, classes, and/or test methods to be run for each shard.
+                  # The targets need to be specified in AndroidJUnitRunner argument format. For
+                  # example, “package com.my.packages” “class com.my.package.MyClass”.
+                  #
+                  # The number of shard_test_targets must be greater than 0.
+                "A String",
+              ],
+            },
+            "shardIndex": 42, # Output only. The index of the shard among all the shards.
+          },
+          "id": "A String", # Output only. Unique id set by the service.
+          "environment": { # The environment in which the test is run. # Output only. How the host machine(s) are configured.
+            "iosDevice": { # A single iOS device. # An iOS device which must be used with an iOS test.
+              "locale": "A String", # Required. The locale the test device used for testing.
+                  # Use the TestEnvironmentDiscoveryService to get supported options.
+              "iosVersionId": "A String", # Required. The id of the iOS major software version to be used.
+                  # Use the TestEnvironmentDiscoveryService to get supported options.
+              "orientation": "A String", # Required. How the device is oriented during the test.
+                  # Use the TestEnvironmentDiscoveryService to get supported options.
+              "iosModelId": "A String", # Required. The id of the iOS device to be used.
+                  # Use the TestEnvironmentDiscoveryService to get supported options.
+            },
+            "androidDevice": { # A single Android device. # An Android device which must be used with an Android test.
+              "locale": "A String", # Required. The locale the test device used for testing.
+                  # Use the TestEnvironmentDiscoveryService to get supported options.
+              "androidVersionId": "A String", # Required. The id of the Android OS version to be used.
+                  # Use the TestEnvironmentDiscoveryService to get supported options.
+              "androidModelId": "A String", # Required. The id of the Android device to be used.
+                  # Use the TestEnvironmentDiscoveryService to get supported options.
+              "orientation": "A String", # Required. How the device is oriented during the test.
+                  # Use the TestEnvironmentDiscoveryService to get supported options.
+            },
+          },
+          "state": "A String", # Output only. Indicates the current progress of the test execution
+              # (e.g., FINISHED).
           "testSpecification": { # A description of how to run the test. # Output only. How to run the test.
             "iosTestSetup": { # A description of how to set up an iOS device prior to running the test. # Test setup requirements for iOS.
               "networkProfile": "A String", # The network traffic profile used for running the test.
@@ -1665,6 +1921,19 @@ <h3>Method Details</h3>
                 },
               "appBundleId": "A String", # Output only. The bundle id for the application under test.
             },
+            "iosTestLoop": { # A test of an iOS application that implements one or more game loop scenarios. # An iOS application with a test loop.
+                # This test type accepts an archived application (.ipa file) and a list of
+                # integer scenarios that will be executed on the app sequentially.
+              "scenarios": [ # The list of scenarios that should be run during the test. Defaults to the
+                  # single scenario 0 if unspecified.
+                42,
+              ],
+              "appBundleId": "A String", # Output only. The bundle id for the application under test.
+              "appIpa": { # A reference to a file, used for user inputs. # Required. The .ipa of the application to test.
+                  "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+                      # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+                },
+            },
             "testTimeout": "A String", # Max time a test execution is allowed to run before it is
                 # automatically cancelled.
                 # The default value is 5 min.
@@ -1680,6 +1949,13 @@ <h3>Method Details</h3>
                     # allows testing more functionalities.
                 },
               },
+              "systrace": { # Systrace configuration for the run.
+                  # If set a systrace will be taken, starting on test start and lasting for the
+                  # configured duration. The systrace file thus obtained is put in the results
+                  # bucket together with the other artifacts from the run.
+                "durationSeconds": 42, # Systrace duration in seconds.
+                    # Should be between 1 and 30 seconds. 0 disables systrace.
+              },
               "networkProfile": "A String", # The network traffic profile used for running the test.
                   # Available network profiles can be queried by using the
                   # NETWORK_CONFIGURATION environment type when calling
@@ -1694,6 +1970,13 @@ <h3>Method Details</h3>
                   # storage path prefix for that device.
                 "A String",
               ],
+              "environmentVariables": [ # Environment variables to set for the test (only applicable for
+                  # instrumentation tests).
+                { # A key-value pair passed as an environment variable to the test.
+                  "key": "A String", # Key for the environment variable.
+                  "value": "A String", # Value for the environment variable.
+                },
+              ],
               "filesToPush": [ # List of files to push to the device before starting the test.
                 { # A single device file description.
                   "regularFile": { # A file or directory to install on the device before the test starts. # A reference to a regular file.
@@ -1705,18 +1988,18 @@ <h3>Method Details</h3>
                         # whitelisted path. If the file exists, it will be replaced.
                         # The following device-side directories and any of their subdirectories are
                         # whitelisted:
-                        # <p>${EXTERNAL_STORAGE}, or /sdcard</p>
-                        # <p>${ANDROID_DATA}/local/tmp, or /data/local/tmp</p>
-                        # <p>Specifying a path outside of these directory trees is invalid.
+                        # &lt;p&gt;${EXTERNAL_STORAGE}, or /sdcard&lt;/p&gt;
+                        # &lt;p&gt;${ANDROID_DATA}/local/tmp, or /data/local/tmp&lt;/p&gt;
+                        # &lt;p&gt;Specifying a path outside of these directory trees is invalid.
                         #
-                        # <p> The paths /sdcard and /data will be made available and treated as
+                        # &lt;p&gt; The paths /sdcard and /data will be made available and treated as
                         # implicit path substitutions. E.g. if /sdcard on a particular device does
                         # not map to external storage, the system will replace it with the external
                         # storage path prefix for that device and copy the file there.
                         #
-                        # <p> It is strongly advised to use the <a href=
-                        # "http://developer.android.com/reference/android/os/Environment.html">
-                        # Environment API</a> in app and test code to access files on the device in a
+                        # &lt;p&gt; It is strongly advised to use the &lt;a href=
+                        # "http://developer.android.com/reference/android/os/Environment.html"&gt;
+                        # Environment API&lt;/a&gt; in app and test code to access files on the device in a
                         # portable way.
                   },
                   "obbFile": { # An opaque binary blob file to install on the device before the test starts. # A reference to an opaque binary blob file.
@@ -1724,7 +2007,7 @@ <h3>Method Details</h3>
                         # Android
                         # e.g. [main|patch].0300110.com.example.android.obb
                         # which will be installed into
-                        #   \<shared-storage\>/Android/obb/\<package-name\>/
+                        #   \&lt;shared-storage\&gt;/Android/obb/\&lt;package-name\&gt;/
                         # on the device.
                     "obb": { # A reference to a file, used for user inputs. # Required. Opaque Binary Blob (OBB) file(s) to install on the device.
                         "gcsPath": "A String", # A path to a file in Google Cloud Storage.
@@ -1744,27 +2027,11 @@ <h3>Method Details</h3>
                     },
                 },
               ],
-              "environmentVariables": [ # Environment variables to set for the test (only applicable for
-                  # instrumentation tests).
-                { # A key-value pair passed as an environment variable to the test.
-                  "value": "A String", # Value for the environment variable.
-                  "key": "A String", # Key for the environment variable.
-                },
-              ],
             },
             "disableVideoRecording": True or False, # Disables video recording. May reduce test latency.
             "androidTestLoop": { # A test of an Android Application with a Test Loop. # An Android Application with a Test Loop.
-                # The intent \<intent-name\> will be implicitly added, since Games is the only
+                # The intent \&lt;intent-name\&gt; will be implicitly added, since Games is the only
                 # user of this api, for the time being.
-              "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
-                  # a base module directory, zero or more dynamic feature module directories.
-                  # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
-                  # building App Bundles.
-                "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
-                    "gcsPath": "A String", # A path to a file in Google Cloud Storage.
-                        # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
-                  },
-              },
               "scenarios": [ # The list of scenarios that should be run during the test.
                   # The default is all test loops, derived from the application's
                   # manifest.
@@ -1781,6 +2048,15 @@ <h3>Method Details</h3>
                   # Scenarios can also be specified in the scenarios field.
                 "A String",
               ],
+              "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
+                  # a base module directory, zero or more dynamic feature module directories.
+                  # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
+                  # building App Bundles.
+                "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
+                    "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+                        # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+                  },
+              },
               "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test.
                   "gcsPath": "A String", # A path to a file in Google Cloud Storage.
                       # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
@@ -1791,7 +2067,7 @@ <h3>Method Details</h3>
                 # or physical Android Device, finding culprits and crashes as it goes.
               "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
                   # a base module directory, zero or more dynamic feature module directories.
-                  # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
+                  # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
                   # building App Bundles.
                 "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
                     "gcsPath": "A String", # A path to a file in Google Cloud Storage.
@@ -1833,6 +2109,7 @@ <h3>Method Details</h3>
                   # If some are provided, then only those provided are launched (the main
                   # launcher activity must be provided explicitly).
                 { # Message for specifying the start activities to crawl.
+                  "timeout": "A String", # Timeout in seconds for each intent.
                   "startActivity": { # A starting intent specified by an action, uri, and categories. # An intent that starts an activity with specific details.
                     "action": "A String", # Action name.
                         # Required for START_ACTIVITY.
@@ -1841,7 +2118,6 @@ <h3>Method Details</h3>
                       "A String",
                     ],
                   },
-                  "timeout": "A String", # Timeout in seconds for each intent.
                   "launcherActivity": { # Specifies an intent that starts the main launcher activity. # An intent that starts the main launcher activity.
                   },
                 },
@@ -1859,11 +2135,11 @@ <h3>Method Details</h3>
                 # a test runner class, such as com.google.GoogleTestRunner, which can vary
                 # on the specific instrumentation framework chosen.
                 #
-                # See <http://developer.android.com/tools/testing/testing_android.html> for
+                # See &lt;http://developer.android.com/tools/testing/testing_android.html&gt; for
                 # more information on types of Android tests.
               "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
                   # a base module directory, zero or more dynamic feature module directories.
-                  # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
+                  # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
                   # building App Bundles.
                 "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
                     "gcsPath": "A String", # A path to a file in Google Cloud Storage.
@@ -1894,10 +2170,38 @@ <h3>Method Details</h3>
                   #  - Logs are scoped per test
                   #
                   # See
-                  # <https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator>
+                  # &lt;https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator&gt;
                   # for more information about Android Test Orchestrator.
                   #
                   # If not set, the test will be run without the orchestrator.
+              "shardingOption": { # Options for enabling sharding. # The option to run tests in multiple shards in parallel.
+                "manualSharding": { # Shards test cases into the specified groups of packages, classes, and/or # Shards test cases into the specified groups of packages, classes, and/or
+                    # methods.
+                    # methods.
+                    #
+                    # With manual sharding enabled, specifying test targets via
+                    # environment_variables or in InstrumentationTest is invalid.
+                  "testTargetsForShard": [ # Required. Group of packages, classes, and/or test methods to be run for
+                      # each shard. The number of shard_test_targets must be &gt;= 1 and &lt;= 50.
+                    { # Test targets for a shard.
+                      "testTargets": [ # Group of packages, classes, and/or test methods to be run for each shard.
+                          # The targets need to be specified in AndroidJUnitRunner argument format. For
+                          # example, “package com.my.packages” “class com.my.package.MyClass”.
+                          #
+                          # The number of shard_test_targets must be greater than 0.
+                        "A String",
+                      ],
+                    },
+                  ],
+                },
+                "uniformSharding": { # Uniformly shards test cases given a total number of shards. # Uniformly shards test cases given a total number of shards.
+                    #
+                    # For Instrumentation test, it will be translated to “-e numShard” “-e
+                    # shardIndex” AndroidJUnitRunner arguments. With uniform sharding enabled,
+                    # specifying these sharding arguments via environment_variables is invalid.
+                  "numShards": 42, # Required. Total number of shards. The number must be &gt;= 1 and &lt;= 50.
+                },
+              },
               "testTargets": [ # Each target must be fully qualified with the package name or class name,
                   # in one of these formats:
                   #  - "package package_name"
@@ -1909,6 +2213,15 @@ <h3>Method Details</h3>
               ],
             },
           },
+          "projectId": "A String", # Output only. The cloud project that owns the test execution.
+          "toolResultsStep": { # Represents a tool results step resource. # Output only. Where the results for this execution are written.
+              #
+              # This has the results of a TestExecution.
+            "projectId": "A String", # Output only. The cloud project that owns the tool results step.
+            "executionId": "A String", # Output only. A tool results execution ID.
+            "stepId": "A String", # Output only. A tool results step ID.
+            "historyId": "A String", # Output only. A tool results history ID.
+          },
           "testDetails": { # Additional details about the progress of the running test. # Output only. Additional details about the running test.
             "progressMessages": [ # Output only. Human-readable, detailed descriptions of the test's progress.
                 # For example: "Provisioning a device", "Starting Test".
@@ -1920,40 +2233,6 @@ <h3>Method Details</h3>
             "errorMessage": "A String", # Output only. If the TestState is ERROR, then this string will contain
                 # human-readable details about the error.
           },
-          "environment": { # The environment in which the test is run. # Output only. How the host machine(s) are configured.
-            "iosDevice": { # A single iOS device. # An iOS device which must be used with an iOS test.
-              "locale": "A String", # Required. The locale the test device used for testing.
-                  # Use the TestEnvironmentDiscoveryService to get supported options.
-              "iosVersionId": "A String", # Required. The id of the iOS major software version to be used.
-                  # Use the TestEnvironmentDiscoveryService to get supported options.
-              "orientation": "A String", # Required. How the device is oriented during the test.
-                  # Use the TestEnvironmentDiscoveryService to get supported options.
-              "iosModelId": "A String", # Required. The id of the iOS device to be used.
-                  # Use the TestEnvironmentDiscoveryService to get supported options.
-            },
-            "androidDevice": { # A single Android device. # An Android device which must be used with an Android test.
-              "locale": "A String", # Required. The locale the test device used for testing.
-                  # Use the TestEnvironmentDiscoveryService to get supported options.
-              "androidVersionId": "A String", # Required. The id of the Android OS version to be used.
-                  # Use the TestEnvironmentDiscoveryService to get supported options.
-              "androidModelId": "A String", # Required. The id of the Android device to be used.
-                  # Use the TestEnvironmentDiscoveryService to get supported options.
-              "orientation": "A String", # Required. How the device is oriented during the test.
-                  # Use the TestEnvironmentDiscoveryService to get supported options.
-            },
-          },
-          "state": "A String", # Output only. Indicates the current progress of the test execution
-              # (e.g., FINISHED).
-          "projectId": "A String", # Output only. The cloud project that owns the test execution.
-          "toolResultsStep": { # Represents a tool results step resource. # Output only. Where the results for this execution are written.
-              #
-              # This has the results of a TestExecution.
-            "projectId": "A String", # Output only. The cloud project that owns the tool results step.
-            "executionId": "A String", # Output only. A tool results execution ID.
-            "stepId": "A String", # Output only. A tool results step ID.
-            "historyId": "A String", # Output only. A tool results history ID.
-          },
-          "id": "A String", # Output only. Unique id set by the service.
         },
       ],
       "testSpecification": { # A description of how to run the test. # Required. How to run the test.
@@ -1988,6 +2267,19 @@ <h3>Method Details</h3>
             },
           "appBundleId": "A String", # Output only. The bundle id for the application under test.
         },
+        "iosTestLoop": { # A test of an iOS application that implements one or more game loop scenarios. # An iOS application with a test loop.
+            # This test type accepts an archived application (.ipa file) and a list of
+            # integer scenarios that will be executed on the app sequentially.
+          "scenarios": [ # The list of scenarios that should be run during the test. Defaults to the
+              # single scenario 0 if unspecified.
+            42,
+          ],
+          "appBundleId": "A String", # Output only. The bundle id for the application under test.
+          "appIpa": { # A reference to a file, used for user inputs. # Required. The .ipa of the application to test.
+              "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+                  # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+            },
+        },
         "testTimeout": "A String", # Max time a test execution is allowed to run before it is
             # automatically cancelled.
             # The default value is 5 min.
@@ -2003,6 +2295,13 @@ <h3>Method Details</h3>
                 # allows testing more functionalities.
             },
           },
+          "systrace": { # Systrace configuration for the run.
+              # If set a systrace will be taken, starting on test start and lasting for the
+              # configured duration. The systrace file thus obtained is put in the results
+              # bucket together with the other artifacts from the run.
+            "durationSeconds": 42, # Systrace duration in seconds.
+                # Should be between 1 and 30 seconds. 0 disables systrace.
+          },
           "networkProfile": "A String", # The network traffic profile used for running the test.
               # Available network profiles can be queried by using the
               # NETWORK_CONFIGURATION environment type when calling
@@ -2017,6 +2316,13 @@ <h3>Method Details</h3>
               # storage path prefix for that device.
             "A String",
           ],
+          "environmentVariables": [ # Environment variables to set for the test (only applicable for
+              # instrumentation tests).
+            { # A key-value pair passed as an environment variable to the test.
+              "key": "A String", # Key for the environment variable.
+              "value": "A String", # Value for the environment variable.
+            },
+          ],
           "filesToPush": [ # List of files to push to the device before starting the test.
             { # A single device file description.
               "regularFile": { # A file or directory to install on the device before the test starts. # A reference to a regular file.
@@ -2028,18 +2334,18 @@ <h3>Method Details</h3>
                     # whitelisted path. If the file exists, it will be replaced.
                     # The following device-side directories and any of their subdirectories are
                     # whitelisted:
-                    # <p>${EXTERNAL_STORAGE}, or /sdcard</p>
-                    # <p>${ANDROID_DATA}/local/tmp, or /data/local/tmp</p>
-                    # <p>Specifying a path outside of these directory trees is invalid.
+                    # &lt;p&gt;${EXTERNAL_STORAGE}, or /sdcard&lt;/p&gt;
+                    # &lt;p&gt;${ANDROID_DATA}/local/tmp, or /data/local/tmp&lt;/p&gt;
+                    # &lt;p&gt;Specifying a path outside of these directory trees is invalid.
                     #
-                    # <p> The paths /sdcard and /data will be made available and treated as
+                    # &lt;p&gt; The paths /sdcard and /data will be made available and treated as
                     # implicit path substitutions. E.g. if /sdcard on a particular device does
                     # not map to external storage, the system will replace it with the external
                     # storage path prefix for that device and copy the file there.
                     #
-                    # <p> It is strongly advised to use the <a href=
-                    # "http://developer.android.com/reference/android/os/Environment.html">
-                    # Environment API</a> in app and test code to access files on the device in a
+                    # &lt;p&gt; It is strongly advised to use the &lt;a href=
+                    # "http://developer.android.com/reference/android/os/Environment.html"&gt;
+                    # Environment API&lt;/a&gt; in app and test code to access files on the device in a
                     # portable way.
               },
               "obbFile": { # An opaque binary blob file to install on the device before the test starts. # A reference to an opaque binary blob file.
@@ -2047,7 +2353,7 @@ <h3>Method Details</h3>
                     # Android
                     # e.g. [main|patch].0300110.com.example.android.obb
                     # which will be installed into
-                    #   \<shared-storage\>/Android/obb/\<package-name\>/
+                    #   \&lt;shared-storage\&gt;/Android/obb/\&lt;package-name\&gt;/
                     # on the device.
                 "obb": { # A reference to a file, used for user inputs. # Required. Opaque Binary Blob (OBB) file(s) to install on the device.
                     "gcsPath": "A String", # A path to a file in Google Cloud Storage.
@@ -2067,27 +2373,11 @@ <h3>Method Details</h3>
                 },
             },
           ],
-          "environmentVariables": [ # Environment variables to set for the test (only applicable for
-              # instrumentation tests).
-            { # A key-value pair passed as an environment variable to the test.
-              "value": "A String", # Value for the environment variable.
-              "key": "A String", # Key for the environment variable.
-            },
-          ],
         },
         "disableVideoRecording": True or False, # Disables video recording. May reduce test latency.
         "androidTestLoop": { # A test of an Android Application with a Test Loop. # An Android Application with a Test Loop.
-            # The intent \<intent-name\> will be implicitly added, since Games is the only
+            # The intent \&lt;intent-name\&gt; will be implicitly added, since Games is the only
             # user of this api, for the time being.
-          "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
-              # a base module directory, zero or more dynamic feature module directories.
-              # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
-              # building App Bundles.
-            "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
-                "gcsPath": "A String", # A path to a file in Google Cloud Storage.
-                    # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
-              },
-          },
           "scenarios": [ # The list of scenarios that should be run during the test.
               # The default is all test loops, derived from the application's
               # manifest.
@@ -2104,6 +2394,15 @@ <h3>Method Details</h3>
               # Scenarios can also be specified in the scenarios field.
             "A String",
           ],
+          "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
+              # a base module directory, zero or more dynamic feature module directories.
+              # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
+              # building App Bundles.
+            "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
+                "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+                    # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+              },
+          },
           "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test.
               "gcsPath": "A String", # A path to a file in Google Cloud Storage.
                   # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
@@ -2114,7 +2413,7 @@ <h3>Method Details</h3>
             # or physical Android Device, finding culprits and crashes as it goes.
           "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
               # a base module directory, zero or more dynamic feature module directories.
-              # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
+              # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
               # building App Bundles.
             "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
                 "gcsPath": "A String", # A path to a file in Google Cloud Storage.
@@ -2156,6 +2455,7 @@ <h3>Method Details</h3>
               # If some are provided, then only those provided are launched (the main
               # launcher activity must be provided explicitly).
             { # Message for specifying the start activities to crawl.
+              "timeout": "A String", # Timeout in seconds for each intent.
               "startActivity": { # A starting intent specified by an action, uri, and categories. # An intent that starts an activity with specific details.
                 "action": "A String", # Action name.
                     # Required for START_ACTIVITY.
@@ -2164,7 +2464,6 @@ <h3>Method Details</h3>
                   "A String",
                 ],
               },
-              "timeout": "A String", # Timeout in seconds for each intent.
               "launcherActivity": { # Specifies an intent that starts the main launcher activity. # An intent that starts the main launcher activity.
               },
             },
@@ -2182,11 +2481,11 @@ <h3>Method Details</h3>
             # a test runner class, such as com.google.GoogleTestRunner, which can vary
             # on the specific instrumentation framework chosen.
             #
-            # See <http://developer.android.com/tools/testing/testing_android.html> for
+            # See &lt;http://developer.android.com/tools/testing/testing_android.html&gt; for
             # more information on types of Android tests.
           "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
               # a base module directory, zero or more dynamic feature module directories.
-              # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
+              # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
               # building App Bundles.
             "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
                 "gcsPath": "A String", # A path to a file in Google Cloud Storage.
@@ -2217,10 +2516,38 @@ <h3>Method Details</h3>
               #  - Logs are scoped per test
               #
               # See
-              # <https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator>
+              # &lt;https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator&gt;
               # for more information about Android Test Orchestrator.
               #
               # If not set, the test will be run without the orchestrator.
+          "shardingOption": { # Options for enabling sharding. # The option to run tests in multiple shards in parallel.
+            "manualSharding": { # Shards test cases into the specified groups of packages, classes, and/or # Shards test cases into the specified groups of packages, classes, and/or
+                # methods.
+                # methods.
+                #
+                # With manual sharding enabled, specifying test targets via
+                # environment_variables or in InstrumentationTest is invalid.
+              "testTargetsForShard": [ # Required. Group of packages, classes, and/or test methods to be run for
+                  # each shard. The number of shard_test_targets must be &gt;= 1 and &lt;= 50.
+                { # Test targets for a shard.
+                  "testTargets": [ # Group of packages, classes, and/or test methods to be run for each shard.
+                      # The targets need to be specified in AndroidJUnitRunner argument format. For
+                      # example, “package com.my.packages” “class com.my.package.MyClass”.
+                      #
+                      # The number of shard_test_targets must be greater than 0.
+                    "A String",
+                  ],
+                },
+              ],
+            },
+            "uniformSharding": { # Uniformly shards test cases given a total number of shards. # Uniformly shards test cases given a total number of shards.
+                #
+                # For Instrumentation test, it will be translated to “-e numShard” “-e
+                # shardIndex” AndroidJUnitRunner arguments. With uniform sharding enabled,
+                # specifying these sharding arguments via environment_variables is invalid.
+              "numShards": 42, # Required. Total number of shards. The number must be &gt;= 1 and &lt;= 50.
+            },
+          },
           "testTargets": [ # Each target must be fully qualified with the package name or class name,
               # in one of these formats:
               #  - "package package_name"
@@ -2258,11 +2585,11 @@ <h3>Method Details</h3>
             #
             # Only supported permutations will be instantiated.  Invalid permutations
             # (e.g., incompatible models/versions) are ignored.
-          "locales": [ # Required. The set of locales the test device will enable for testing.
+          "orientations": [ # Required. The set of orientations to test with.
               # Use the TestEnvironmentDiscoveryService to get supported options.
             "A String",
           ],
-          "androidModelIds": [ # Required. The ids of the set of Android device to be used.
+          "locales": [ # Required. The set of locales the test device will enable for testing.
               # Use the TestEnvironmentDiscoveryService to get supported options.
             "A String",
           ],
@@ -2270,7 +2597,7 @@ <h3>Method Details</h3>
               # Use the TestEnvironmentDiscoveryService to get supported options.
             "A String",
           ],
-          "orientations": [ # Required. The set of orientations to test with.
+          "androidModelIds": [ # Required. The ids of the set of Android device to be used.
               # Use the TestEnvironmentDiscoveryService to get supported options.
             "A String",
           ],
diff --git a/docs/dyn/testing_v1.testEnvironmentCatalog.html b/docs/dyn/testing_v1.testEnvironmentCatalog.html
--- a/docs/dyn/testing_v1.testEnvironmentCatalog.html
+++ b/docs/dyn/testing_v1.testEnvironmentCatalog.html
@@ -105,14 +105,14 @@ <h3>Method Details</h3>
         {
           "id": "A String", # The unique opaque id for this network traffic configuration.
           "downRule": { # Network emulation parameters. # The emulation rule applying to the download traffic.
-            "delay": "A String", # Packet delay, must be >= 0.
+            "delay": "A String", # Packet delay, must be &gt;= 0.
             "packetLossRatio": 3.14, # Packet loss ratio (0.0 - 1.0).
             "bandwidth": 3.14, # Bandwidth in kbits/second.
             "packetDuplicationRatio": 3.14, # Packet duplication ratio (0.0 - 1.0).
             "burst": 3.14, # Burst size in kbits.
           },
           "upRule": { # Network emulation parameters. # The emulation rule applying to the upload traffic.
-            "delay": "A String", # Packet delay, must be >= 0.
+            "delay": "A String", # Packet delay, must be &gt;= 0.
             "packetLossRatio": 3.14, # Packet loss ratio (0.0 - 1.0).
             "bandwidth": 3.14, # Bandwidth in kbits/second.
             "packetDuplicationRatio": 3.14, # Packet duplication ratio (0.0 - 1.0).
@@ -125,6 +125,7 @@ <h3>Method Details</h3>
       "models": [ # The set of supported Android device models.
         { # A description of an Android device tests may be run on.
           "formFactor": "A String", # Whether this device is a phone, tablet, wearable, etc.
+          "thumbnailUrl": "A String", # URL of a thumbnail image of the device.
           "name": "A String", # The human-readable marketing name for this device model.
               # Examples: "Nexus 5", "Galaxy S5".
           "form": "A String", # Whether this device is virtual or physical.
@@ -177,14 +178,14 @@ <h3>Method Details</h3>
           { # A location/region designation for language.
             "region": "A String", # A human-friendly string representing the region for this
                 # locale. Example: "United States". Not present for every locale.
-            "id": "A String", # The id for this locale.
-                # Example: "en_US".
-            "name": "A String", # A human-friendly name for this language/locale.
-                # Example: "English".
             "tags": [ # Tags for this dimension.
                 # Example: "default".
               "A String",
             ],
+            "name": "A String", # A human-friendly name for this language/locale.
+                # Example: "English".
+            "id": "A String", # The id for this locale.
+                # Example: "en_US".
           },
         ],
       },
@@ -232,6 +233,7 @@ <h3>Method Details</h3>
     "iosDeviceCatalog": { # The currently supported iOS devices. # Supported iOS devices.
       "models": [ # The set of supported iOS device models.
         { # A description of an iOS device tests may be run on.
+            # Next tag: 12
           "formFactor": "A String", # Whether this device is a phone, tablet, wearable, etc.
           "name": "A String", # The human-readable name for this device model.
               # Examples: "iPhone 4s", "iPad Mini 2".
@@ -239,9 +241,12 @@ <h3>Method Details</h3>
               # Examples: "default", "preview", "deprecated".
             "A String",
           ],
+          "screenDensity": 42, # Screen density in DPI.
           "supportedVersionIds": [ # The set of iOS major software versions this device supports.
             "A String",
           ],
+          "screenY": 42, # Screen size in the vertical (Y) dimension measured in pixels.
+          "screenX": 42, # Screen size in the horizontal (X) dimension measured in pixels.
           "id": "A String", # The unique opaque id for this model.
               # Use this for invoking the TestExecutionService.
           "deviceCapabilities": [ # Device capabilities.
@@ -278,14 +283,14 @@ <h3>Method Details</h3>
           { # A location/region designation for language.
             "region": "A String", # A human-friendly string representing the region for this
                 # locale. Example: "United States". Not present for every locale.
-            "id": "A String", # The id for this locale.
-                # Example: "en_US".
-            "name": "A String", # A human-friendly name for this language/locale.
-                # Example: "English".
             "tags": [ # Tags for this dimension.
                 # Example: "default".
               "A String",
             ],
+            "name": "A String", # A human-friendly name for this language/locale.
+                # Example: "English".
+            "id": "A String", # The id for this locale.
+                # Example: "en_US".
           },
         ],
       },
@@ -297,13 +302,13 @@ <h3>Method Details</h3>
               # Examples: "default", "preview", "deprecated".
             "A String",
           ],
+          "minorVersion": 42, # An integer representing the minor iOS version.
+              # Examples: "1", "2".
+          "id": "A String", # An opaque id for this iOS version.
+              # Use this id to invoke the TestExecutionService.
           "supportedXcodeVersionIds": [ # The available Xcode versions for this version.
             "A String",
           ],
-          "id": "A String", # An opaque id for this iOS version.
-              # Use this id to invoke the TestExecutionService.
-          "minorVersion": 42, # An integer representing the minor iOS version.
-              # Examples: "1", "2".
         },
       ],
     },