# Cloud Tool Results API . projects . histories . executions . environments

## Instance Methods

Gets an Environment.

Lists Environments for a given Execution.

Retrieves the next page of results.

### Method Details

`get(projectId, historyId, executionId, environmentId, x__xgafv=None)`

    Gets an Environment.

    May return any of the following canonical error codes:

    - PERMISSION_DENIED - if the user is not authorized to read project
    - INVALID_ARGUMENT - if the request is malformed
    - NOT_FOUND - if the Environment does not exist

    Args:
      projectId: string, Required. A Project id. (required)
      historyId: string, Required. A History id. (required)
      executionId: string, Required. An Execution id. (required)
      environmentId: string, Required. An Environment id. (required)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # An Environment represents the set of test runs (Steps) from the parent
          # Execution that are configured with the same set of dimensions (Model,
          # Version, Locale, and Orientation). Multiple such runs occur particularly
          # because of features like sharding (splitting up a test suite to run in
          # parallel across devices) and reruns (running a test multiple times to check
          # for different outcomes).
        "executionId": "A String", # Output only. An Execution id.
        "displayName": "A String", # A short human-readable name to display in the UI.
            # Maximum of 100 characters.
            # For example: Nexus 5, API 27.
        "creationTime": { # A Timestamp represents a point in time independent of any time zone or local # Output only. The time when the Environment was created.
            # calendar, encoded as a count of seconds and fractions of seconds at
            # nanosecond resolution. The count is relative to an epoch at UTC midnight on
            # January 1, 1970, in the proleptic Gregorian calendar which extends the
            # Gregorian calendar backwards to year one.
            #
            # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
            # second table is needed for interpretation, using a [24-hour linear
            # smear](https://developers.google.com/time/smear).
            #
            # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
            # restricting to that range, we ensure that we can convert to and from [RFC
            # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
          "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative
              # second values with fractions must still have non-negative nanos values
              # that count forward in time. Must be from 0 to 999,999,999
              # inclusive.
          "seconds": "A String", # Represents seconds of UTC time since Unix epoch
              # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
              # 9999-12-31T23:59:59Z inclusive.
        },
        "completionTime": { # A Timestamp represents a point in time independent of any time zone or local # Output only. The time when the Environment status was set to complete.
            #
            # This value will be set automatically when state transitions to
            # COMPLETE.
            # calendar, encoded as a count of seconds and fractions of seconds at
            # nanosecond resolution. The count is relative to an epoch at UTC midnight on
            # January 1, 1970, in the proleptic Gregorian calendar which extends the
            # Gregorian calendar backwards to year one.
            #
            # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
            # second table is needed for interpretation, using a [24-hour linear
            # smear](https://developers.google.com/time/smear).
            #
            # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
            # restricting to that range, we ensure that we can convert to and from [RFC
            # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
          "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative
              # second values with fractions must still have non-negative nanos values
              # that count forward in time. Must be from 0 to 999,999,999
              # inclusive.
          "seconds": "A String", # Represents seconds of UTC time since Unix epoch
              # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
              # 9999-12-31T23:59:59Z inclusive.
        },
        "historyId": "A String", # Output only. A History id.
        "environmentId": "A String", # Output only. An Environment id.
        "projectId": "A String", # Output only. A Project id.
        "resultsStorage": { # The storage for test results. # The location where output files are stored in the user bucket.
          "xunitXmlFile": { # A reference to a file. # The path to the Xunit XML file.
            "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
                #
                # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
                # or in gsutil format: gs://mybucket/path/to/test.xml
                # with version-specific info,
                # gs://mybucket/path/to/test.xml#1360383693690000
                #
                # An INVALID_ARGUMENT error will be returned if the URI format is not
                # supported.
                #
                # - In response: always set
                # - In create/update request: always set
          },
          "resultsStoragePath": { # A reference to a file. # The root directory for test results.
            "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
                #
                # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
                # or in gsutil format: gs://mybucket/path/to/test.xml
                # with version-specific info,
                # gs://mybucket/path/to/test.xml#1360383693690000
                #
                # An INVALID_ARGUMENT error will be returned if the URI format is not
                # supported.
                #
                # - In response: always set
                # - In create/update request: always set
          },
        },
        "dimensionValue": [ # Dimension values describing the environment. Dimension values always
            # consist of "Model", "Version", "Locale", and "Orientation".
            #
            # - In response: always set
            # - In create request: always set
            # - In update request: never set
          {
            "value": "A String",
            "key": "A String",
          },
        ],
        "environmentResult": { # Merged test result for environment. # Merged result of the environment.
            #
            # If the environment has only one step (no reruns or shards), then the merged
            # result is the same as the step result. If the environment has multiple shards
            # and/or reruns, then the results of shards and reruns that belong to the same
            # environment are merged into one environment result.
          "state": "A String", # State of the resource
          "outcome": { # Interprets a result so that humans and machines can act on it. # Outcome of the resource
            "inconclusiveDetail": { # Details for an outcome with an INCONCLUSIVE outcome summary. # More information about an INCONCLUSIVE outcome.
                #
                # Returns INVALID_ARGUMENT if this field is set
                # but the summary is not INCONCLUSIVE.
                #
                # Optional
              "hasErrorLogs": True or False, # If results are being provided to the user in certain cases of
                  # infrastructure failures
              "infrastructureFailure": True or False, # If the test runner could not determine success or failure because the test
                  # depends on a component other than the system under test which failed.
                  #
                  # For example, a mobile test requires provisioning a device where the test
                  # executes, and that provisioning can fail.
              "abortedByUser": True or False, # If the end user aborted the test execution before a pass or fail could be
                  # determined.
                  # For example, the user pressed ctrl-c which sent a kill signal to the test
                  # runner while the test was running.
            },
            "skippedDetail": { # Details for an outcome with a SKIPPED outcome summary. # More information about a SKIPPED outcome.
                #
                # Returns INVALID_ARGUMENT if this field is set
                # but the summary is not SKIPPED.
                #
                # Optional
              "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86.
              "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model.
              "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level.
            },
            "summary": "A String", # The simplest way to interpret a result.
                #
                # Required
            "failureDetail": { # Details for an outcome with a FAILURE outcome summary. # More information about a FAILURE outcome.
                #
                # Returns INVALID_ARGUMENT if this field is set
                # but the summary is not FAILURE.
                #
                # Optional
              "otherNativeCrash": True or False, # If a native process (including any other than the app) crashed.
              "notInstalled": True or False, # If an app is not installed and thus no test can be run with the app.
                  # This might be caused by trying to run a test on an unsupported platform.
              "timedOut": True or False, # If the test overran some time limit, and that is why it failed.
              "failedRoboscript": True or False, # If the Roboscript failed to complete successfully, e.g., because a
                  # Roboscript action or assertion failed or a Roboscript action could not be
                  # matched during the entire crawl.
              "crashed": True or False, # If the failure was severe because the system (app) under test crashed.
              "unableToCrawl": True or False, # If the robo was unable to crawl the app; perhaps because the app did not
                  # start.
            },
            "successDetail": { # Details for an outcome with a SUCCESS outcome summary. # More information about a SUCCESS outcome.
                #
                # Returns INVALID_ARGUMENT if this field is set
                # but the summary is not SUCCESS.
                #
                # Optional
                # LINT.IfChange
              "otherNativeCrash": True or False, # If a native process other than the app crashed.
            },
          },
          "testSuiteOverviews": [ # The combined and rolled-up result of each test suite that was run as part
              #  of this environment.
              #
              #  Combining:
              #  When the test cases from a suite are run in different steps (sharding),
              #  the results are added back together in one overview. (e.g., if shard1 has
              #  2 failures and shard2 has 1 failure than the overview failure_count = 3).
              #
              #  Rollup:
              #  When test cases from the same suite are run multiple times (flaky), the
              #  results are combined (e.g., if testcase1.run1 fails, testcase1.run2
              #  passes, and both testcase2.run1 and testcase2.run2 fail then the overview
              #  flaky_count = 1 and failure_count = 1).
            { # A summary of a test suite result either parsed from XML or uploaded
                # directly by a user.
                #
                # Note: the API related comments are for StepService only. This message is
                # also being used in ExecutionService in a read only mode for the corresponding
                # step.
              "xmlSource": { # A reference to a file. # If this test suite was parsed from XML, this is the URI where the original
                  # XML file is stored.
                  #
                  # Note: Multiple test suites can share the same xml_source
                  #
                  # Returns INVALID_ARGUMENT if the uri format is not supported.
                  #
                  # - In create/response: optional
                  # - In update request: never
                "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
                    #
                    # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
                    # or in gsutil format: gs://mybucket/path/to/test.xml
                    # with version-specific info,
                    # gs://mybucket/path/to/test.xml#1360383693690000
                    #
                    # An INVALID_ARGUMENT error will be returned if the URI format is not
                    # supported.
                    #
                    # - In response: always set
                    # - In create/update request: always set
              },
              "elapsedTime": { #  # Elapsed time of test suite.
                  # A Duration represents a signed, fixed-length span of time represented
                  # as a count of seconds and fractions of seconds at nanosecond
                  # resolution. It is independent of any calendar and concepts like "day"
                  # or "month". It is related to Timestamp in that the difference between
                  # two Timestamp values is a Duration and it can be added or subtracted
                  # from a Timestamp. Range is approximately +-10,000 years.
                "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000
                    # to +315,576,000,000 inclusive. Note: these bounds are computed from:
                    # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
                "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span
                    # of time. Durations less than one second are represented with a 0
                    # `seconds` field and a positive or negative `nanos` field. For durations
                    # of one second or more, a non-zero value for the `nanos` field must be
                    # of the same sign as the `seconds` field. Must be from -999,999,999
                    # to +999,999,999 inclusive.
              },
              "name": "A String", # The name of the test suite.
                  #
                  # - In create/response: always set
                  # - In update request: never
              "totalCount": 42, # Number of test cases, typically set by the service by parsing the
                  # xml_source.
                  #
                  # - In create/response: always set
                  # - In update request: never
              "errorCount": 42, # Number of test cases in error, typically set by the service by parsing the
                  # xml_source.
                  #
                  # - In create/response: always set
                  # - In update request: never
              "flakyCount": 42, # Number of flaky test cases, set by the service by rolling up flaky test
                  # attempts.
                  #
                  # Present only for rollup test suite overview at environment level. A step
                  # cannot have flaky test cases.
              "skippedCount": 42, # Number of test cases not run, typically set by the service by parsing the
                  # xml_source.
                  #
                  # - In create/response: always set
                  # - In update request: never
              "failureCount": 42, # Number of failed test cases, typically set by the service by parsing the
                  # xml_source. May also be set by the user.
                  #
                  # - In create/response: always set
                  # - In update request: never
            },
          ],
        },
        "shardSummaries": [ # Output only. Summaries of shards.
            #
            # Only one shard will present unless sharding feature is enabled in
            # TestExecutionService.
          { # Result summary for a shard in an environment.
            "shardResult": { # Merged test result for environment. # Merged result of the shard.
                #
                # If the environment has only one step (no reruns or shards), then the merged
                # result is the same as the step result. If the environment has multiple shards
                # and/or reruns, then the results of shards and reruns that belong to the same
                # environment are merged into one environment result.
              "state": "A String", # State of the resource
              "outcome": { # Interprets a result so that humans and machines can act on it. # Outcome of the resource
                "inconclusiveDetail": { # Details for an outcome with an INCONCLUSIVE outcome summary. # More information about an INCONCLUSIVE outcome.
                    #
                    # Returns INVALID_ARGUMENT if this field is set
                    # but the summary is not INCONCLUSIVE.
                    #
                    # Optional
                  "hasErrorLogs": True or False, # If results are being provided to the user in certain cases of
                      # infrastructure failures
                  "infrastructureFailure": True or False, # If the test runner could not determine success or failure because the test
                      # depends on a component other than the system under test which failed.
                      #
                      # For example, a mobile test requires provisioning a device where the test
                      # executes, and that provisioning can fail.
                  "abortedByUser": True or False, # If the end user aborted the test execution before a pass or fail could be
                      # determined.
                      # For example, the user pressed ctrl-c which sent a kill signal to the test
                      # runner while the test was running.
                },
                "skippedDetail": { # Details for an outcome with a SKIPPED outcome summary. # More information about a SKIPPED outcome.
                    #
                    # Returns INVALID_ARGUMENT if this field is set
                    # but the summary is not SKIPPED.
                    #
                    # Optional
                  "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86.
                  "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model.
                  "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level.
                },
                "summary": "A String", # The simplest way to interpret a result.
                    #
                    # Required
                "failureDetail": { # Details for an outcome with a FAILURE outcome summary. # More information about a FAILURE outcome.
                    #
                    # Returns INVALID_ARGUMENT if this field is set
                    # but the summary is not FAILURE.
                    #
                    # Optional
                  "otherNativeCrash": True or False, # If a native process (including any other than the app) crashed.
                  "notInstalled": True or False, # If an app is not installed and thus no test can be run with the app.
                      # This might be caused by trying to run a test on an unsupported platform.
                  "timedOut": True or False, # If the test overran some time limit, and that is why it failed.
                  "failedRoboscript": True or False, # If the Roboscript failed to complete successfully, e.g., because a
                      # Roboscript action or assertion failed or a Roboscript action could not be
                      # matched during the entire crawl.
                  "crashed": True or False, # If the failure was severe because the system (app) under test crashed.
                  "unableToCrawl": True or False, # If the robo was unable to crawl the app; perhaps because the app did not
                      # start.
                },
                "successDetail": { # Details for an outcome with a SUCCESS outcome summary. # More information about a SUCCESS outcome.
                    #
                    # Returns INVALID_ARGUMENT if this field is set
                    # but the summary is not SUCCESS.
                    #
                    # Optional
                    # LINT.IfChange
                  "otherNativeCrash": True or False, # If a native process other than the app crashed.
                },
              },
              "testSuiteOverviews": [ # The combined and rolled-up result of each test suite that was run as part
                  #  of this environment.
                  #
                  #  Combining:
                  #  When the test cases from a suite are run in different steps (sharding),
                  #  the results are added back together in one overview. (e.g., if shard1 has
                  #  2 failures and shard2 has 1 failure than the overview failure_count = 3).
                  #
                  #  Rollup:
                  #  When test cases from the same suite are run multiple times (flaky), the
                  #  results are combined (e.g., if testcase1.run1 fails, testcase1.run2
                  #  passes, and both testcase2.run1 and testcase2.run2 fail then the overview
                  #  flaky_count = 1 and failure_count = 1).
                { # A summary of a test suite result either parsed from XML or uploaded
                    # directly by a user.
                    #
                    # Note: the API related comments are for StepService only. This message is
                    # also being used in ExecutionService in a read only mode for the corresponding
                    # step.
                  "xmlSource": { # A reference to a file. # If this test suite was parsed from XML, this is the URI where the original
                      # XML file is stored.
                      #
                      # Note: Multiple test suites can share the same xml_source
                      #
                      # Returns INVALID_ARGUMENT if the uri format is not supported.
                      #
                      # - In create/response: optional
                      # - In update request: never
                    "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
                        #
                        # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
                        # or in gsutil format: gs://mybucket/path/to/test.xml
                        # with version-specific info,
                        # gs://mybucket/path/to/test.xml#1360383693690000
                        #
                        # An INVALID_ARGUMENT error will be returned if the URI format is not
                        # supported.
                        #
                        # - In response: always set
                        # - In create/update request: always set
                  },
                  "elapsedTime": { #  # Elapsed time of test suite.
                      # A Duration represents a signed, fixed-length span of time represented
                      # as a count of seconds and fractions of seconds at nanosecond
                      # resolution. It is independent of any calendar and concepts like "day"
                      # or "month". It is related to Timestamp in that the difference between
                      # two Timestamp values is a Duration and it can be added or subtracted
                      # from a Timestamp. Range is approximately +-10,000 years.
                    "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000
                        # to +315,576,000,000 inclusive. Note: these bounds are computed from:
                        # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
                    "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span
                        # of time. Durations less than one second are represented with a 0
                        # `seconds` field and a positive or negative `nanos` field. For durations
                        # of one second or more, a non-zero value for the `nanos` field must be
                        # of the same sign as the `seconds` field. Must be from -999,999,999
                        # to +999,999,999 inclusive.
                  },
                  "name": "A String", # The name of the test suite.
                      #
                      # - In create/response: always set
                      # - In update request: never
                  "totalCount": 42, # Number of test cases, typically set by the service by parsing the
                      # xml_source.
                      #
                      # - In create/response: always set
                      # - In update request: never
                  "errorCount": 42, # Number of test cases in error, typically set by the service by parsing the
                      # xml_source.
                      #
                      # - In create/response: always set
                      # - In update request: never
                  "flakyCount": 42, # Number of flaky test cases, set by the service by rolling up flaky test
                      # attempts.
                      #
                      # Present only for rollup test suite overview at environment level. A step
                      # cannot have flaky test cases.
                  "skippedCount": 42, # Number of test cases not run, typically set by the service by parsing the
                      # xml_source.
                      #
                      # - In create/response: always set
                      # - In update request: never
                  "failureCount": 42, # Number of failed test cases, typically set by the service by parsing the
                      # xml_source. May also be set by the user.
                      #
                      # - In create/response: always set
                      # - In update request: never
                },
              ],
            },
            "runs": [ # Summaries of the steps belonging to the shard.
                #
                # With flaky_test_attempts enabled from TestExecutionService, more than one
                # run (Step) can present. And the runs will be sorted by multistep_number.
              { # Lightweight summary of a step within this execution.
              },
            ],
          },
        ],
      }

`list(projectId, historyId, executionId, pageSize=None, pageToken=None, x__xgafv=None)`

    Lists Environments for a given Execution.

    The Environments are sorted by display name.

    May return any of the following canonical error codes:

    - PERMISSION_DENIED - if the user is not authorized to read project
    - INVALID_ARGUMENT - if the request is malformed
    - NOT_FOUND - if the containing Execution does not exist

    Args:
      projectId: string, Required. A Project id. (required)
      historyId: string, Required. A History id. (required)
      executionId: string, Required. An Execution id. (required)
      pageSize: integer, The maximum number of Environments to fetch.

    Default value: 25. The server will use this default if the field is not set
    or has a value of 0.
      pageToken: string, A continuation token to resume the query at the next item.
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # Response message for EnvironmentService.ListEnvironments.
        "historyId": "A String", # A History id.
            #
            # Always set.
        "environments": [ # Environments.
            #
            # Always set.
          { # An Environment represents the set of test runs (Steps) from the parent
              # Execution that are configured with the same set of dimensions (Model,
              # Version, Locale, and Orientation). Multiple such runs occur particularly
              # because of features like sharding (splitting up a test suite to run in
              # parallel across devices) and reruns (running a test multiple times to check
              # for different outcomes).
            "executionId": "A String", # Output only. An Execution id.
            "displayName": "A String", # A short human-readable name to display in the UI.
                # Maximum of 100 characters.
                # For example: Nexus 5, API 27.
            "creationTime": { # A Timestamp represents a point in time independent of any time zone or local # Output only. The time when the Environment was created.
                # calendar, encoded as a count of seconds and fractions of seconds at
                # nanosecond resolution. The count is relative to an epoch at UTC midnight on
                # January 1, 1970, in the proleptic Gregorian calendar which extends the
                # Gregorian calendar backwards to year one.
                #
                # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
                # second table is needed for interpretation, using a [24-hour linear
                # smear](https://developers.google.com/time/smear).
                #
                # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
                # restricting to that range, we ensure that we can convert to and from [RFC
                # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
              "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative
                  # second values with fractions must still have non-negative nanos values
                  # that count forward in time. Must be from 0 to 999,999,999
                  # inclusive.
              "seconds": "A String", # Represents seconds of UTC time since Unix epoch
                  # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
                  # 9999-12-31T23:59:59Z inclusive.
            },
            "completionTime": { # A Timestamp represents a point in time independent of any time zone or local # Output only. The time when the Environment status was set to complete.
                #
                # This value will be set automatically when state transitions to
                # COMPLETE.
                # calendar, encoded as a count of seconds and fractions of seconds at
                # nanosecond resolution. The count is relative to an epoch at UTC midnight on
                # January 1, 1970, in the proleptic Gregorian calendar which extends the
                # Gregorian calendar backwards to year one.
                #
                # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
                # second table is needed for interpretation, using a [24-hour linear
                # smear](https://developers.google.com/time/smear).
                #
                # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
                # restricting to that range, we ensure that we can convert to and from [RFC
                # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
              "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative
                  # second values with fractions must still have non-negative nanos values
                  # that count forward in time. Must be from 0 to 999,999,999
                  # inclusive.
              "seconds": "A String", # Represents seconds of UTC time since Unix epoch
                  # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
                  # 9999-12-31T23:59:59Z inclusive.
            },
            "historyId": "A String", # Output only. A History id.
            "environmentId": "A String", # Output only. An Environment id.
            "projectId": "A String", # Output only. A Project id.
            "resultsStorage": { # The storage for test results. # The location where output files are stored in the user bucket.
              "xunitXmlFile": { # A reference to a file. # The path to the Xunit XML file.
                "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
                    #
                    # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
                    # or in gsutil format: gs://mybucket/path/to/test.xml
                    # with version-specific info,
                    # gs://mybucket/path/to/test.xml#1360383693690000
                    #
                    # An INVALID_ARGUMENT error will be returned if the URI format is not
                    # supported.
                    #
                    # - In response: always set
                    # - In create/update request: always set
              },
              "resultsStoragePath": { # A reference to a file. # The root directory for test results.
                "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
                    #
                    # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
                    # or in gsutil format: gs://mybucket/path/to/test.xml
                    # with version-specific info,
                    # gs://mybucket/path/to/test.xml#1360383693690000
                    #
                    # An INVALID_ARGUMENT error will be returned if the URI format is not
                    # supported.
                    #
                    # - In response: always set
                    # - In create/update request: always set
              },
            },
            "dimensionValue": [ # Dimension values describing the environment. Dimension values always
                # consist of "Model", "Version", "Locale", and "Orientation".
                #
                # - In response: always set
                # - In create request: always set
                # - In update request: never set
              {
                "value": "A String",
                "key": "A String",
              },
            ],
            "environmentResult": { # Merged test result for environment. # Merged result of the environment.
                #
                # If the environment has only one step (no reruns or shards), then the merged
                # result is the same as the step result. If the environment has multiple shards
                # and/or reruns, then the results of shards and reruns that belong to the same
                # environment are merged into one environment result.
              "state": "A String", # State of the resource
              "outcome": { # Interprets a result so that humans and machines can act on it. # Outcome of the resource
                "inconclusiveDetail": { # Details for an outcome with an INCONCLUSIVE outcome summary. # More information about an INCONCLUSIVE outcome.
                    #
                    # Returns INVALID_ARGUMENT if this field is set
                    # but the summary is not INCONCLUSIVE.
                    #
                    # Optional
                  "hasErrorLogs": True or False, # If results are being provided to the user in certain cases of
                      # infrastructure failures
                  "infrastructureFailure": True or False, # If the test runner could not determine success or failure because the test
                      # depends on a component other than the system under test which failed.
                      #
                      # For example, a mobile test requires provisioning a device where the test
                      # executes, and that provisioning can fail.
                  "abortedByUser": True or False, # If the end user aborted the test execution before a pass or fail could be
                      # determined.
                      # For example, the user pressed ctrl-c which sent a kill signal to the test
                      # runner while the test was running.
                },
                "skippedDetail": { # Details for an outcome with a SKIPPED outcome summary. # More information about a SKIPPED outcome.
                    #
                    # Returns INVALID_ARGUMENT if this field is set
                    # but the summary is not SKIPPED.
                    #
                    # Optional
                  "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86.
                  "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model.
                  "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level.
                },
                "summary": "A String", # The simplest way to interpret a result.
                    #
                    # Required
                "failureDetail": { # Details for an outcome with a FAILURE outcome summary. # More information about a FAILURE outcome.
                    #
                    # Returns INVALID_ARGUMENT if this field is set
                    # but the summary is not FAILURE.
                    #
                    # Optional
                  "otherNativeCrash": True or False, # If a native process (including any other than the app) crashed.
                  "notInstalled": True or False, # If an app is not installed and thus no test can be run with the app.
                      # This might be caused by trying to run a test on an unsupported platform.
                  "timedOut": True or False, # If the test overran some time limit, and that is why it failed.
                  "failedRoboscript": True or False, # If the Roboscript failed to complete successfully, e.g., because a
                      # Roboscript action or assertion failed or a Roboscript action could not be
                      # matched during the entire crawl.
                  "crashed": True or False, # If the failure was severe because the system (app) under test crashed.
                  "unableToCrawl": True or False, # If the robo was unable to crawl the app; perhaps because the app did not
                      # start.
                },
                "successDetail": { # Details for an outcome with a SUCCESS outcome summary. # More information about a SUCCESS outcome.
                    #
                    # Returns INVALID_ARGUMENT if this field is set
                    # but the summary is not SUCCESS.
                    #
                    # Optional
                    # LINT.IfChange
                  "otherNativeCrash": True or False, # If a native process other than the app crashed.
                },
              },
              "testSuiteOverviews": [ # The combined and rolled-up result of each test suite that was run as part
                  #  of this environment.
                  #
                  #  Combining:
                  #  When the test cases from a suite are run in different steps (sharding),
                  #  the results are added back together in one overview. (e.g., if shard1 has
                  #  2 failures and shard2 has 1 failure than the overview failure_count = 3).
                  #
                  #  Rollup:
                  #  When test cases from the same suite are run multiple times (flaky), the
                  #  results are combined (e.g., if testcase1.run1 fails, testcase1.run2
                  #  passes, and both testcase2.run1 and testcase2.run2 fail then the overview
                  #  flaky_count = 1 and failure_count = 1).
                { # A summary of a test suite result either parsed from XML or uploaded
                    # directly by a user.
                    #
                    # Note: the API related comments are for StepService only. This message is
                    # also being used in ExecutionService in a read only mode for the corresponding
                    # step.
                  "xmlSource": { # A reference to a file. # If this test suite was parsed from XML, this is the URI where the original
                      # XML file is stored.
                      #
                      # Note: Multiple test suites can share the same xml_source
                      #
                      # Returns INVALID_ARGUMENT if the uri format is not supported.
                      #
                      # - In create/response: optional
                      # - In update request: never
                    "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
                        #
                        # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
                        # or in gsutil format: gs://mybucket/path/to/test.xml
                        # with version-specific info,
                        # gs://mybucket/path/to/test.xml#1360383693690000
                        #
                        # An INVALID_ARGUMENT error will be returned if the URI format is not
                        # supported.
                        #
                        # - In response: always set
                        # - In create/update request: always set
                  },
                  "elapsedTime": { #  # Elapsed time of test suite.
                      # A Duration represents a signed, fixed-length span of time represented
                      # as a count of seconds and fractions of seconds at nanosecond
                      # resolution. It is independent of any calendar and concepts like "day"
                      # or "month". It is related to Timestamp in that the difference between
                      # two Timestamp values is a Duration and it can be added or subtracted
                      # from a Timestamp. Range is approximately +-10,000 years.
                    "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000
                        # to +315,576,000,000 inclusive. Note: these bounds are computed from:
                        # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
                    "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span
                        # of time. Durations less than one second are represented with a 0
                        # `seconds` field and a positive or negative `nanos` field. For durations
                        # of one second or more, a non-zero value for the `nanos` field must be
                        # of the same sign as the `seconds` field. Must be from -999,999,999
                        # to +999,999,999 inclusive.
                  },
                  "name": "A String", # The name of the test suite.
                      #
                      # - In create/response: always set
                      # - In update request: never
                  "totalCount": 42, # Number of test cases, typically set by the service by parsing the
                      # xml_source.
                      #
                      # - In create/response: always set
                      # - In update request: never
                  "errorCount": 42, # Number of test cases in error, typically set by the service by parsing the
                      # xml_source.
                      #
                      # - In create/response: always set
                      # - In update request: never
                  "flakyCount": 42, # Number of flaky test cases, set by the service by rolling up flaky test
                      # attempts.
                      #
                      # Present only for rollup test suite overview at environment level. A step
                      # cannot have flaky test cases.
                  "skippedCount": 42, # Number of test cases not run, typically set by the service by parsing the
                      # xml_source.
                      #
                      # - In create/response: always set
                      # - In update request: never
                  "failureCount": 42, # Number of failed test cases, typically set by the service by parsing the
                      # xml_source. May also be set by the user.
                      #
                      # - In create/response: always set
                      # - In update request: never
                },
              ],
            },
            "shardSummaries": [ # Output only. Summaries of shards.
                #
                # Only one shard will present unless sharding feature is enabled in
                # TestExecutionService.
              { # Result summary for a shard in an environment.
                "shardResult": { # Merged test result for environment. # Merged result of the shard.
                    #
                    # If the environment has only one step (no reruns or shards), then the merged
                    # result is the same as the step result. If the environment has multiple shards
                    # and/or reruns, then the results of shards and reruns that belong to the same
                    # environment are merged into one environment result.
                  "state": "A String", # State of the resource
                  "outcome": { # Interprets a result so that humans and machines can act on it. # Outcome of the resource
                    "inconclusiveDetail": { # Details for an outcome with an INCONCLUSIVE outcome summary. # More information about an INCONCLUSIVE outcome.
                        #
                        # Returns INVALID_ARGUMENT if this field is set
                        # but the summary is not INCONCLUSIVE.
                        #
                        # Optional
                      "hasErrorLogs": True or False, # If results are being provided to the user in certain cases of
                          # infrastructure failures
                      "infrastructureFailure": True or False, # If the test runner could not determine success or failure because the test
                          # depends on a component other than the system under test which failed.
                          #
                          # For example, a mobile test requires provisioning a device where the test
                          # executes, and that provisioning can fail.
                      "abortedByUser": True or False, # If the end user aborted the test execution before a pass or fail could be
                          # determined.
                          # For example, the user pressed ctrl-c which sent a kill signal to the test
                          # runner while the test was running.
                    },
                    "skippedDetail": { # Details for an outcome with a SKIPPED outcome summary. # More information about a SKIPPED outcome.
                        #
                        # Returns INVALID_ARGUMENT if this field is set
                        # but the summary is not SKIPPED.
                        #
                        # Optional
                      "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86.
                      "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model.
                      "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level.
                    },
                    "summary": "A String", # The simplest way to interpret a result.
                        #
                        # Required
                    "failureDetail": { # Details for an outcome with a FAILURE outcome summary. # More information about a FAILURE outcome.
                        #
                        # Returns INVALID_ARGUMENT if this field is set
                        # but the summary is not FAILURE.
                        #
                        # Optional
                      "otherNativeCrash": True or False, # If a native process (including any other than the app) crashed.
                      "notInstalled": True or False, # If an app is not installed and thus no test can be run with the app.
                          # This might be caused by trying to run a test on an unsupported platform.
                      "timedOut": True or False, # If the test overran some time limit, and that is why it failed.
                      "failedRoboscript": True or False, # If the Roboscript failed to complete successfully, e.g., because a
                          # Roboscript action or assertion failed or a Roboscript action could not be
                          # matched during the entire crawl.
                      "crashed": True or False, # If the failure was severe because the system (app) under test crashed.
                      "unableToCrawl": True or False, # If the robo was unable to crawl the app; perhaps because the app did not
                          # start.
                    },
                    "successDetail": { # Details for an outcome with a SUCCESS outcome summary. # More information about a SUCCESS outcome.
                        #
                        # Returns INVALID_ARGUMENT if this field is set
                        # but the summary is not SUCCESS.
                        #
                        # Optional
                        # LINT.IfChange
                      "otherNativeCrash": True or False, # If a native process other than the app crashed.
                    },
                  },
                  "testSuiteOverviews": [ # The combined and rolled-up result of each test suite that was run as part
                      #  of this environment.
                      #
                      #  Combining:
                      #  When the test cases from a suite are run in different steps (sharding),
                      #  the results are added back together in one overview. (e.g., if shard1 has
                      #  2 failures and shard2 has 1 failure than the overview failure_count = 3).
                      #
                      #  Rollup:
                      #  When test cases from the same suite are run multiple times (flaky), the
                      #  results are combined (e.g., if testcase1.run1 fails, testcase1.run2
                      #  passes, and both testcase2.run1 and testcase2.run2 fail then the overview
                      #  flaky_count = 1 and failure_count = 1).
                    { # A summary of a test suite result either parsed from XML or uploaded
                        # directly by a user.
                        #
                        # Note: the API related comments are for StepService only. This message is
                        # also being used in ExecutionService in a read only mode for the corresponding
                        # step.
                      "xmlSource": { # A reference to a file. # If this test suite was parsed from XML, this is the URI where the original
                          # XML file is stored.
                          #
                          # Note: Multiple test suites can share the same xml_source
                          #
                          # Returns INVALID_ARGUMENT if the uri format is not supported.
                          #
                          # - In create/response: optional
                          # - In update request: never
                        "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
                            #
                            # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
                            # or in gsutil format: gs://mybucket/path/to/test.xml
                            # with version-specific info,
                            # gs://mybucket/path/to/test.xml#1360383693690000
                            #
                            # An INVALID_ARGUMENT error will be returned if the URI format is not
                            # supported.
                            #
                            # - In response: always set
                            # - In create/update request: always set
                      },
                      "elapsedTime": { #  # Elapsed time of test suite.
                          # A Duration represents a signed, fixed-length span of time represented
                          # as a count of seconds and fractions of seconds at nanosecond
                          # resolution. It is independent of any calendar and concepts like "day"
                          # or "month". It is related to Timestamp in that the difference between
                          # two Timestamp values is a Duration and it can be added or subtracted
                          # from a Timestamp. Range is approximately +-10,000 years.
                        "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000
                            # to +315,576,000,000 inclusive. Note: these bounds are computed from:
                            # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
                        "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span
                            # of time. Durations less than one second are represented with a 0
                            # `seconds` field and a positive or negative `nanos` field. For durations
                            # of one second or more, a non-zero value for the `nanos` field must be
                            # of the same sign as the `seconds` field. Must be from -999,999,999
                            # to +999,999,999 inclusive.
                      },
                      "name": "A String", # The name of the test suite.
                          #
                          # - In create/response: always set
                          # - In update request: never
                      "totalCount": 42, # Number of test cases, typically set by the service by parsing the
                          # xml_source.
                          #
                          # - In create/response: always set
                          # - In update request: never
                      "errorCount": 42, # Number of test cases in error, typically set by the service by parsing the
                          # xml_source.
                          #
                          # - In create/response: always set
                          # - In update request: never
                      "flakyCount": 42, # Number of flaky test cases, set by the service by rolling up flaky test
                          # attempts.
                          #
                          # Present only for rollup test suite overview at environment level. A step
                          # cannot have flaky test cases.
                      "skippedCount": 42, # Number of test cases not run, typically set by the service by parsing the
                          # xml_source.
                          #
                          # - In create/response: always set
                          # - In update request: never
                      "failureCount": 42, # Number of failed test cases, typically set by the service by parsing the
                          # xml_source. May also be set by the user.
                          #
                          # - In create/response: always set
                          # - In update request: never
                    },
                  ],
                },
                "runs": [ # Summaries of the steps belonging to the shard.
                    #
                    # With flaky_test_attempts enabled from TestExecutionService, more than one
                    # run (Step) can present. And the runs will be sorted by multistep_number.
                  { # Lightweight summary of a step within this execution.
                  },
                ],
              },
            ],
          },
        ],
        "executionId": "A String", # A Execution id
            #
            # Always set.
        "nextPageToken": "A String", # A continuation token to resume the query at the next item.
            #
            # Will only be set if there are more Environments to fetch.
        "projectId": "A String", # A Project id.
            #
            # Always set.
      }

`list_next(previous_request, previous_response)`

    Retrieves the next page of results.

    Args:
      previous_request: The request for the previous page. (required)
      previous_response: The response from the request for the previous page. (required)

    Returns:
      A request object that you can call 'execute()' on to request the next
      page. Returns None if there are no more items in the collection.