Cloud Tool Results API . executions

Instance Methods

create(projectId, historyId, body=None, requestId=None, x__xgafv=None)

Creates an Execution.

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

Gets an Execution.

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

Lists Executions for a given History.

list_next(previous_request, previous_response)

Retrieves the next page of results.

patch(projectId, historyId, executionId, body=None, requestId=None, x__xgafv=None)

Updates an existing Execution with the supplied partial entity.

Method Details

create(projectId, historyId, body=None, requestId=None, x__xgafv=None)
Creates an Execution.

The returned Execution will have the id set.

May return any of the following canonical error codes:

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

Args:
  projectId: string, A Project id.

Required. (required)
  historyId: string, A History id.

Required. (required)
  body: object, The request body.
    The object takes the form of:

{ # An Execution represents a collection of Steps. For instance, it could
    # represent:
    #    - a mobile test executed across a range of device configurations
    #    - a jenkins job with a build step followed by a test step
    # 
    # The maximum size of an execution message is 1 MiB.
    # 
    # An Execution can be updated until its state is set to COMPLETE at which
    # point it becomes immutable.
  "completionTime": { # A Timestamp represents a point in time independent of any time zone or local # The time when the Execution status transitioned to COMPLETE.
      # 
      # This value will be set automatically when state transitions to
      # COMPLETE.
      # 
      # - In response: set if the execution state is COMPLETE.
      # - In create/update request: never set
      # 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.
  },
  "executionId": "A String", # A unique identifier within a History for this Execution.
      # 
      # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller.
      # 
      # - In response always set
      # - In create/update request: never set
  "outcome": { # Interprets a result so that humans and machines can act on it. # Classify the result, for example into SUCCESS or FAILURE
      # 
      # - In response: present if set by create/update request
      # - In create/update request: optional
    "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.
    },
    "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
      "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level.
      "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model.
      "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86.
    },
    "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
      "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.
      "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.
      "otherNativeCrash": True or False, # If a native process (including any other than the app) crashed.
    },
    "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.
    },
  },
  "specification": { # The details about how to run the execution. # Lightweight information about execution request.
      # 
      # - In response: present if set by create
      # - In create: optional
      # - In update: optional
    "iosTest": { # A iOS mobile test specification # An iOS mobile test execution specification.
      "iosAppInfo": { # iOS app information # Information about the application under test.
        "name": "A String", # The name of the app.
            # Required
      },
      "testTimeout": { #  # Max time a test is allowed to run before it is
          # automatically cancelled.
          # 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.
      },
      "iosRoboTest": { # A Robo test for an iOS application. # An iOS Robo test.
      },
      "iosXcTest": { # A test of an iOS application that uses the XCTest framework. # An iOS XCTest.
        "xcodeVersion": "A String", # Xcode version that the test was run with.
        "bundleId": "A String", # Bundle ID of the app.
      },
      "iosTestLoop": { # A game loop test of an iOS application. # An iOS test loop.
        "bundleId": "A String", # Bundle ID of the app.
      },
    },
    "androidTest": { # An Android mobile test specification. # An Android mobile test execution specification.
      "testTimeout": { #  # Max time a test is allowed to run before it is
          # automatically cancelled.
          # 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.
      },
      "androidRoboTest": { # A test of an android application that explores the application on a virtual # An Android robo test.
          # or physical Android device, finding culprits and crashes as it goes.
        "bootstrapPackageId": "A String", # The java package for the bootstrap.
            # Optional
        "appInitialActivity": "A String", # The initial activity that should be used to start the app.
            # Optional
        "bootstrapRunnerClass": "A String", # The runner class for the bootstrap.
            # Optional
        "maxSteps": 42, # The max number of steps/actions Robo can execute.
            # Default is no limit (0).
            # Optional
        "maxDepth": 42, # The max depth of the traversal stack Robo can explore.
            # Optional
      },
      "androidTestLoop": { # Test Loops are tests that can be launched by the app itself, determining # An Android test loop.
          # when to run by listening for an intent.
      },
      "androidAppInfo": { # Android app information. # Information about the application under test.
        "name": "A String", # The name of the app.
            # Optional
        "packageName": "A String", # The package name of the app.
            # Required.
        "versionName": "A String", # The version name of the app.
            # Optional.
        "versionCode": "A String", # The internal version code of the app.
            # Optional.
      },
      "androidInstrumentationTest": { # A test of an Android application that can control an Android component # An Android instrumentation test.
          # independently of its normal lifecycle.
          #
          # See <http://developer.android.com/tools/testing/testing_android.html> for
          # more information on types of Android tests.
        "testPackageId": "A String", # The java package for the test to be executed.
            # Required
        "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",
        ],
        "useOrchestrator": True or False, # The flag indicates whether Android Test Orchestrator will be used to run
            # test or not.
        "testRunnerClass": "A String", # The InstrumentationTestRunner class.
            # Required
      },
    },
  },
  "dimensionDefinitions": [ # The dimensions along which different steps in this execution may vary.
      # This must remain fixed over the life of the execution.
      # 
      # Returns INVALID_ARGUMENT if this field is set in an update request.
      # 
      # Returns INVALID_ARGUMENT if the same name occurs in more than one
      # dimension_definition.
      # 
      # Returns INVALID_ARGUMENT if the size of the list is over 100.
      # 
      # - In response: present if set by create
      # - In create request: optional
      # - In update request: never set
    { # One dimension of the matrix of different runs of a step.
    },
  ],
  "creationTime": { # A Timestamp represents a point in time independent of any time zone or local # The time when the Execution was created.
      # 
      # This value will be set automatically when CreateExecution is called.
      # 
      # - In response: always set
      # - In create/update request: never set
      # 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.
  },
  "testExecutionMatrixId": "A String", # TestExecution Matrix ID that the TestExecutionService uses.
      # 
      # - In response: present if set by create
      # - In create: optional
      # - In update: never set
  "state": "A String", # The initial state is IN_PROGRESS.
      # 
      # The only legal state transitions is from IN_PROGRESS to COMPLETE.
      # 
      # A PRECONDITION_FAILED will be returned if an invalid transition is
      # requested.
      # 
      # The state can only be set to COMPLETE once. A FAILED_PRECONDITION will be
      # returned if the state is set to COMPLETE multiple times.
      # 
      # If the state is set to COMPLETE, all the in-progress steps within the
      # execution will be set as COMPLETE. If the outcome of the step is not set,
      # the outcome will be set to INCONCLUSIVE.
      # 
      # - In response always set
      # - In create/update request: optional
}

  requestId: string, A unique request ID for server to detect duplicated requests.
For example, a UUID.

Optional, but strongly recommended.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # An Execution represents a collection of Steps. For instance, it could
      # represent:
      #    - a mobile test executed across a range of device configurations
      #    - a jenkins job with a build step followed by a test step
      #
      # The maximum size of an execution message is 1 MiB.
      #
      # An Execution can be updated until its state is set to COMPLETE at which
      # point it becomes immutable.
    "completionTime": { # A Timestamp represents a point in time independent of any time zone or local # The time when the Execution status transitioned to COMPLETE.
        #
        # This value will be set automatically when state transitions to
        # COMPLETE.
        #
        # - In response: set if the execution state is COMPLETE.
        # - In create/update request: never set
        # 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.
    },
    "executionId": "A String", # A unique identifier within a History for this Execution.
        #
        # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller.
        #
        # - In response always set
        # - In create/update request: never set
    "outcome": { # Interprets a result so that humans and machines can act on it. # Classify the result, for example into SUCCESS or FAILURE
        #
        # - In response: present if set by create/update request
        # - In create/update request: optional
      "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.
      },
      "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
        "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level.
        "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model.
        "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86.
      },
      "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
        "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.
        "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.
        "otherNativeCrash": True or False, # If a native process (including any other than the app) crashed.
      },
      "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.
      },
    },
    "specification": { # The details about how to run the execution. # Lightweight information about execution request.
        #
        # - In response: present if set by create
        # - In create: optional
        # - In update: optional
      "iosTest": { # A iOS mobile test specification # An iOS mobile test execution specification.
        "iosAppInfo": { # iOS app information # Information about the application under test.
          "name": "A String", # The name of the app.
              # Required
        },
        "testTimeout": { #  # Max time a test is allowed to run before it is
            # automatically cancelled.
            # 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.
        },
        "iosRoboTest": { # A Robo test for an iOS application. # An iOS Robo test.
        },
        "iosXcTest": { # A test of an iOS application that uses the XCTest framework. # An iOS XCTest.
          "xcodeVersion": "A String", # Xcode version that the test was run with.
          "bundleId": "A String", # Bundle ID of the app.
        },
        "iosTestLoop": { # A game loop test of an iOS application. # An iOS test loop.
          "bundleId": "A String", # Bundle ID of the app.
        },
      },
      "androidTest": { # An Android mobile test specification. # An Android mobile test execution specification.
        "testTimeout": { #  # Max time a test is allowed to run before it is
            # automatically cancelled.
            # 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.
        },
        "androidRoboTest": { # A test of an android application that explores the application on a virtual # An Android robo test.
            # or physical Android device, finding culprits and crashes as it goes.
          "bootstrapPackageId": "A String", # The java package for the bootstrap.
              # Optional
          "appInitialActivity": "A String", # The initial activity that should be used to start the app.
              # Optional
          "bootstrapRunnerClass": "A String", # The runner class for the bootstrap.
              # Optional
          "maxSteps": 42, # The max number of steps/actions Robo can execute.
              # Default is no limit (0).
              # Optional
          "maxDepth": 42, # The max depth of the traversal stack Robo can explore.
              # Optional
        },
        "androidTestLoop": { # Test Loops are tests that can be launched by the app itself, determining # An Android test loop.
            # when to run by listening for an intent.
        },
        "androidAppInfo": { # Android app information. # Information about the application under test.
          "name": "A String", # The name of the app.
              # Optional
          "packageName": "A String", # The package name of the app.
              # Required.
          "versionName": "A String", # The version name of the app.
              # Optional.
          "versionCode": "A String", # The internal version code of the app.
              # Optional.
        },
        "androidInstrumentationTest": { # A test of an Android application that can control an Android component # An Android instrumentation test.
            # independently of its normal lifecycle.
            #
            # See <http://developer.android.com/tools/testing/testing_android.html> for
            # more information on types of Android tests.
          "testPackageId": "A String", # The java package for the test to be executed.
              # Required
          "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",
          ],
          "useOrchestrator": True or False, # The flag indicates whether Android Test Orchestrator will be used to run
              # test or not.
          "testRunnerClass": "A String", # The InstrumentationTestRunner class.
              # Required
        },
      },
    },
    "dimensionDefinitions": [ # The dimensions along which different steps in this execution may vary.
        # This must remain fixed over the life of the execution.
        #
        # Returns INVALID_ARGUMENT if this field is set in an update request.
        #
        # Returns INVALID_ARGUMENT if the same name occurs in more than one
        # dimension_definition.
        #
        # Returns INVALID_ARGUMENT if the size of the list is over 100.
        #
        # - In response: present if set by create
        # - In create request: optional
        # - In update request: never set
      { # One dimension of the matrix of different runs of a step.
      },
    ],
    "creationTime": { # A Timestamp represents a point in time independent of any time zone or local # The time when the Execution was created.
        #
        # This value will be set automatically when CreateExecution is called.
        #
        # - In response: always set
        # - In create/update request: never set
        # 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.
    },
    "testExecutionMatrixId": "A String", # TestExecution Matrix ID that the TestExecutionService uses.
        #
        # - In response: present if set by create
        # - In create: optional
        # - In update: never set
    "state": "A String", # The initial state is IN_PROGRESS.
        #
        # The only legal state transitions is from IN_PROGRESS to COMPLETE.
        #
        # A PRECONDITION_FAILED will be returned if an invalid transition is
        # requested.
        #
        # The state can only be set to COMPLETE once. A FAILED_PRECONDITION will be
        # returned if the state is set to COMPLETE multiple times.
        #
        # If the state is set to COMPLETE, all the in-progress steps within the
        # execution will be set as COMPLETE. If the outcome of the step is not set,
        # the outcome will be set to INCONCLUSIVE.
        #
        # - In response always set
        # - In create/update request: optional
  }
get(projectId, historyId, executionId, x__xgafv=None)
Gets an Execution.

May return any of the following canonical error codes:

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

Args:
  projectId: string, A Project id.

Required. (required)
  historyId: string, A History id.

Required. (required)
  executionId: string, An Execution id.

Required. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # An Execution represents a collection of Steps. For instance, it could
      # represent:
      #    - a mobile test executed across a range of device configurations
      #    - a jenkins job with a build step followed by a test step
      #
      # The maximum size of an execution message is 1 MiB.
      #
      # An Execution can be updated until its state is set to COMPLETE at which
      # point it becomes immutable.
    "completionTime": { # A Timestamp represents a point in time independent of any time zone or local # The time when the Execution status transitioned to COMPLETE.
        #
        # This value will be set automatically when state transitions to
        # COMPLETE.
        #
        # - In response: set if the execution state is COMPLETE.
        # - In create/update request: never set
        # 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.
    },
    "executionId": "A String", # A unique identifier within a History for this Execution.
        #
        # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller.
        #
        # - In response always set
        # - In create/update request: never set
    "outcome": { # Interprets a result so that humans and machines can act on it. # Classify the result, for example into SUCCESS or FAILURE
        #
        # - In response: present if set by create/update request
        # - In create/update request: optional
      "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.
      },
      "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
        "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level.
        "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model.
        "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86.
      },
      "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
        "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.
        "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.
        "otherNativeCrash": True or False, # If a native process (including any other than the app) crashed.
      },
      "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.
      },
    },
    "specification": { # The details about how to run the execution. # Lightweight information about execution request.
        #
        # - In response: present if set by create
        # - In create: optional
        # - In update: optional
      "iosTest": { # A iOS mobile test specification # An iOS mobile test execution specification.
        "iosAppInfo": { # iOS app information # Information about the application under test.
          "name": "A String", # The name of the app.
              # Required
        },
        "testTimeout": { #  # Max time a test is allowed to run before it is
            # automatically cancelled.
            # 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.
        },
        "iosRoboTest": { # A Robo test for an iOS application. # An iOS Robo test.
        },
        "iosXcTest": { # A test of an iOS application that uses the XCTest framework. # An iOS XCTest.
          "xcodeVersion": "A String", # Xcode version that the test was run with.
          "bundleId": "A String", # Bundle ID of the app.
        },
        "iosTestLoop": { # A game loop test of an iOS application. # An iOS test loop.
          "bundleId": "A String", # Bundle ID of the app.
        },
      },
      "androidTest": { # An Android mobile test specification. # An Android mobile test execution specification.
        "testTimeout": { #  # Max time a test is allowed to run before it is
            # automatically cancelled.
            # 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.
        },
        "androidRoboTest": { # A test of an android application that explores the application on a virtual # An Android robo test.
            # or physical Android device, finding culprits and crashes as it goes.
          "bootstrapPackageId": "A String", # The java package for the bootstrap.
              # Optional
          "appInitialActivity": "A String", # The initial activity that should be used to start the app.
              # Optional
          "bootstrapRunnerClass": "A String", # The runner class for the bootstrap.
              # Optional
          "maxSteps": 42, # The max number of steps/actions Robo can execute.
              # Default is no limit (0).
              # Optional
          "maxDepth": 42, # The max depth of the traversal stack Robo can explore.
              # Optional
        },
        "androidTestLoop": { # Test Loops are tests that can be launched by the app itself, determining # An Android test loop.
            # when to run by listening for an intent.
        },
        "androidAppInfo": { # Android app information. # Information about the application under test.
          "name": "A String", # The name of the app.
              # Optional
          "packageName": "A String", # The package name of the app.
              # Required.
          "versionName": "A String", # The version name of the app.
              # Optional.
          "versionCode": "A String", # The internal version code of the app.
              # Optional.
        },
        "androidInstrumentationTest": { # A test of an Android application that can control an Android component # An Android instrumentation test.
            # independently of its normal lifecycle.
            #
            # See <http://developer.android.com/tools/testing/testing_android.html> for
            # more information on types of Android tests.
          "testPackageId": "A String", # The java package for the test to be executed.
              # Required
          "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",
          ],
          "useOrchestrator": True or False, # The flag indicates whether Android Test Orchestrator will be used to run
              # test or not.
          "testRunnerClass": "A String", # The InstrumentationTestRunner class.
              # Required
        },
      },
    },
    "dimensionDefinitions": [ # The dimensions along which different steps in this execution may vary.
        # This must remain fixed over the life of the execution.
        #
        # Returns INVALID_ARGUMENT if this field is set in an update request.
        #
        # Returns INVALID_ARGUMENT if the same name occurs in more than one
        # dimension_definition.
        #
        # Returns INVALID_ARGUMENT if the size of the list is over 100.
        #
        # - In response: present if set by create
        # - In create request: optional
        # - In update request: never set
      { # One dimension of the matrix of different runs of a step.
      },
    ],
    "creationTime": { # A Timestamp represents a point in time independent of any time zone or local # The time when the Execution was created.
        #
        # This value will be set automatically when CreateExecution is called.
        #
        # - In response: always set
        # - In create/update request: never set
        # 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.
    },
    "testExecutionMatrixId": "A String", # TestExecution Matrix ID that the TestExecutionService uses.
        #
        # - In response: present if set by create
        # - In create: optional
        # - In update: never set
    "state": "A String", # The initial state is IN_PROGRESS.
        #
        # The only legal state transitions is from IN_PROGRESS to COMPLETE.
        #
        # A PRECONDITION_FAILED will be returned if an invalid transition is
        # requested.
        #
        # The state can only be set to COMPLETE once. A FAILED_PRECONDITION will be
        # returned if the state is set to COMPLETE multiple times.
        #
        # If the state is set to COMPLETE, all the in-progress steps within the
        # execution will be set as COMPLETE. If the outcome of the step is not set,
        # the outcome will be set to INCONCLUSIVE.
        #
        # - In response always set
        # - In create/update request: optional
  }
list(projectId, historyId, pageToken=None, pageSize=None, x__xgafv=None)
Lists Executions for a given History.

The executions are sorted by creation_time in descending order. The
execution_id key will be used to order the executions with the same
creation_time.

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 History does not exist

Args:
  projectId: string, A Project id.

Required. (required)
  historyId: string, A History id.

Required. (required)
  pageToken: string, A continuation token to resume the query at the next item.

Optional.
  pageSize: integer, The maximum number of Executions to fetch.

Default value: 25. The server will use this default if the field is not set
or has a value of 0.

Optional.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
    "executions": [ # Executions.
        #
        # Always set.
      { # An Execution represents a collection of Steps. For instance, it could
          # represent:
          #    - a mobile test executed across a range of device configurations
          #    - a jenkins job with a build step followed by a test step
          #
          # The maximum size of an execution message is 1 MiB.
          #
          # An Execution can be updated until its state is set to COMPLETE at which
          # point it becomes immutable.
        "completionTime": { # A Timestamp represents a point in time independent of any time zone or local # The time when the Execution status transitioned to COMPLETE.
            #
            # This value will be set automatically when state transitions to
            # COMPLETE.
            #
            # - In response: set if the execution state is COMPLETE.
            # - In create/update request: never set
            # 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.
        },
        "executionId": "A String", # A unique identifier within a History for this Execution.
            #
            # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller.
            #
            # - In response always set
            # - In create/update request: never set
        "outcome": { # Interprets a result so that humans and machines can act on it. # Classify the result, for example into SUCCESS or FAILURE
            #
            # - In response: present if set by create/update request
            # - In create/update request: optional
          "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.
          },
          "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
            "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level.
            "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model.
            "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86.
          },
          "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
            "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.
            "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.
            "otherNativeCrash": True or False, # If a native process (including any other than the app) crashed.
          },
          "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.
          },
        },
        "specification": { # The details about how to run the execution. # Lightweight information about execution request.
            #
            # - In response: present if set by create
            # - In create: optional
            # - In update: optional
          "iosTest": { # A iOS mobile test specification # An iOS mobile test execution specification.
            "iosAppInfo": { # iOS app information # Information about the application under test.
              "name": "A String", # The name of the app.
                  # Required
            },
            "testTimeout": { #  # Max time a test is allowed to run before it is
                # automatically cancelled.
                # 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.
            },
            "iosRoboTest": { # A Robo test for an iOS application. # An iOS Robo test.
            },
            "iosXcTest": { # A test of an iOS application that uses the XCTest framework. # An iOS XCTest.
              "xcodeVersion": "A String", # Xcode version that the test was run with.
              "bundleId": "A String", # Bundle ID of the app.
            },
            "iosTestLoop": { # A game loop test of an iOS application. # An iOS test loop.
              "bundleId": "A String", # Bundle ID of the app.
            },
          },
          "androidTest": { # An Android mobile test specification. # An Android mobile test execution specification.
            "testTimeout": { #  # Max time a test is allowed to run before it is
                # automatically cancelled.
                # 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.
            },
            "androidRoboTest": { # A test of an android application that explores the application on a virtual # An Android robo test.
                # or physical Android device, finding culprits and crashes as it goes.
              "bootstrapPackageId": "A String", # The java package for the bootstrap.
                  # Optional
              "appInitialActivity": "A String", # The initial activity that should be used to start the app.
                  # Optional
              "bootstrapRunnerClass": "A String", # The runner class for the bootstrap.
                  # Optional
              "maxSteps": 42, # The max number of steps/actions Robo can execute.
                  # Default is no limit (0).
                  # Optional
              "maxDepth": 42, # The max depth of the traversal stack Robo can explore.
                  # Optional
            },
            "androidTestLoop": { # Test Loops are tests that can be launched by the app itself, determining # An Android test loop.
                # when to run by listening for an intent.
            },
            "androidAppInfo": { # Android app information. # Information about the application under test.
              "name": "A String", # The name of the app.
                  # Optional
              "packageName": "A String", # The package name of the app.
                  # Required.
              "versionName": "A String", # The version name of the app.
                  # Optional.
              "versionCode": "A String", # The internal version code of the app.
                  # Optional.
            },
            "androidInstrumentationTest": { # A test of an Android application that can control an Android component # An Android instrumentation test.
                # independently of its normal lifecycle.
                #
                # See <http://developer.android.com/tools/testing/testing_android.html> for
                # more information on types of Android tests.
              "testPackageId": "A String", # The java package for the test to be executed.
                  # Required
              "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",
              ],
              "useOrchestrator": True or False, # The flag indicates whether Android Test Orchestrator will be used to run
                  # test or not.
              "testRunnerClass": "A String", # The InstrumentationTestRunner class.
                  # Required
            },
          },
        },
        "dimensionDefinitions": [ # The dimensions along which different steps in this execution may vary.
            # This must remain fixed over the life of the execution.
            #
            # Returns INVALID_ARGUMENT if this field is set in an update request.
            #
            # Returns INVALID_ARGUMENT if the same name occurs in more than one
            # dimension_definition.
            #
            # Returns INVALID_ARGUMENT if the size of the list is over 100.
            #
            # - In response: present if set by create
            # - In create request: optional
            # - In update request: never set
          { # One dimension of the matrix of different runs of a step.
          },
        ],
        "creationTime": { # A Timestamp represents a point in time independent of any time zone or local # The time when the Execution was created.
            #
            # This value will be set automatically when CreateExecution is called.
            #
            # - In response: always set
            # - In create/update request: never set
            # 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.
        },
        "testExecutionMatrixId": "A String", # TestExecution Matrix ID that the TestExecutionService uses.
            #
            # - In response: present if set by create
            # - In create: optional
            # - In update: never set
        "state": "A String", # The initial state is IN_PROGRESS.
            #
            # The only legal state transitions is from IN_PROGRESS to COMPLETE.
            #
            # A PRECONDITION_FAILED will be returned if an invalid transition is
            # requested.
            #
            # The state can only be set to COMPLETE once. A FAILED_PRECONDITION will be
            # returned if the state is set to COMPLETE multiple times.
            #
            # If the state is set to COMPLETE, all the in-progress steps within the
            # execution will be set as COMPLETE. If the outcome of the step is not set,
            # the outcome will be set to INCONCLUSIVE.
            #
            # - In response always set
            # - In create/update request: optional
      },
    ],
    "nextPageToken": "A String", # A continuation token to resume the query at the next item.
        #
        # Will only be set if there are more Executions to fetch.
  }
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.
    
patch(projectId, historyId, executionId, body=None, requestId=None, x__xgafv=None)
Updates an existing Execution with the supplied partial entity.

May return any of the following canonical error codes:

- PERMISSION_DENIED - if the user is not authorized to write to project
- INVALID_ARGUMENT - if the request is malformed
- FAILED_PRECONDITION - if the requested state transition is illegal
- NOT_FOUND - if the containing History does not exist

Args:
  projectId: string, A Project id.
Required. (required)
  historyId: string, Required. (required)
  executionId: string, Required. (required)
  body: object, The request body.
    The object takes the form of:

{ # An Execution represents a collection of Steps. For instance, it could
    # represent:
    #    - a mobile test executed across a range of device configurations
    #    - a jenkins job with a build step followed by a test step
    # 
    # The maximum size of an execution message is 1 MiB.
    # 
    # An Execution can be updated until its state is set to COMPLETE at which
    # point it becomes immutable.
  "completionTime": { # A Timestamp represents a point in time independent of any time zone or local # The time when the Execution status transitioned to COMPLETE.
      # 
      # This value will be set automatically when state transitions to
      # COMPLETE.
      # 
      # - In response: set if the execution state is COMPLETE.
      # - In create/update request: never set
      # 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.
  },
  "executionId": "A String", # A unique identifier within a History for this Execution.
      # 
      # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller.
      # 
      # - In response always set
      # - In create/update request: never set
  "outcome": { # Interprets a result so that humans and machines can act on it. # Classify the result, for example into SUCCESS or FAILURE
      # 
      # - In response: present if set by create/update request
      # - In create/update request: optional
    "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.
    },
    "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
      "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level.
      "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model.
      "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86.
    },
    "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
      "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.
      "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.
      "otherNativeCrash": True or False, # If a native process (including any other than the app) crashed.
    },
    "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.
    },
  },
  "specification": { # The details about how to run the execution. # Lightweight information about execution request.
      # 
      # - In response: present if set by create
      # - In create: optional
      # - In update: optional
    "iosTest": { # A iOS mobile test specification # An iOS mobile test execution specification.
      "iosAppInfo": { # iOS app information # Information about the application under test.
        "name": "A String", # The name of the app.
            # Required
      },
      "testTimeout": { #  # Max time a test is allowed to run before it is
          # automatically cancelled.
          # 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.
      },
      "iosRoboTest": { # A Robo test for an iOS application. # An iOS Robo test.
      },
      "iosXcTest": { # A test of an iOS application that uses the XCTest framework. # An iOS XCTest.
        "xcodeVersion": "A String", # Xcode version that the test was run with.
        "bundleId": "A String", # Bundle ID of the app.
      },
      "iosTestLoop": { # A game loop test of an iOS application. # An iOS test loop.
        "bundleId": "A String", # Bundle ID of the app.
      },
    },
    "androidTest": { # An Android mobile test specification. # An Android mobile test execution specification.
      "testTimeout": { #  # Max time a test is allowed to run before it is
          # automatically cancelled.
          # 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.
      },
      "androidRoboTest": { # A test of an android application that explores the application on a virtual # An Android robo test.
          # or physical Android device, finding culprits and crashes as it goes.
        "bootstrapPackageId": "A String", # The java package for the bootstrap.
            # Optional
        "appInitialActivity": "A String", # The initial activity that should be used to start the app.
            # Optional
        "bootstrapRunnerClass": "A String", # The runner class for the bootstrap.
            # Optional
        "maxSteps": 42, # The max number of steps/actions Robo can execute.
            # Default is no limit (0).
            # Optional
        "maxDepth": 42, # The max depth of the traversal stack Robo can explore.
            # Optional
      },
      "androidTestLoop": { # Test Loops are tests that can be launched by the app itself, determining # An Android test loop.
          # when to run by listening for an intent.
      },
      "androidAppInfo": { # Android app information. # Information about the application under test.
        "name": "A String", # The name of the app.
            # Optional
        "packageName": "A String", # The package name of the app.
            # Required.
        "versionName": "A String", # The version name of the app.
            # Optional.
        "versionCode": "A String", # The internal version code of the app.
            # Optional.
      },
      "androidInstrumentationTest": { # A test of an Android application that can control an Android component # An Android instrumentation test.
          # independently of its normal lifecycle.
          #
          # See <http://developer.android.com/tools/testing/testing_android.html> for
          # more information on types of Android tests.
        "testPackageId": "A String", # The java package for the test to be executed.
            # Required
        "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",
        ],
        "useOrchestrator": True or False, # The flag indicates whether Android Test Orchestrator will be used to run
            # test or not.
        "testRunnerClass": "A String", # The InstrumentationTestRunner class.
            # Required
      },
    },
  },
  "dimensionDefinitions": [ # The dimensions along which different steps in this execution may vary.
      # This must remain fixed over the life of the execution.
      # 
      # Returns INVALID_ARGUMENT if this field is set in an update request.
      # 
      # Returns INVALID_ARGUMENT if the same name occurs in more than one
      # dimension_definition.
      # 
      # Returns INVALID_ARGUMENT if the size of the list is over 100.
      # 
      # - In response: present if set by create
      # - In create request: optional
      # - In update request: never set
    { # One dimension of the matrix of different runs of a step.
    },
  ],
  "creationTime": { # A Timestamp represents a point in time independent of any time zone or local # The time when the Execution was created.
      # 
      # This value will be set automatically when CreateExecution is called.
      # 
      # - In response: always set
      # - In create/update request: never set
      # 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.
  },
  "testExecutionMatrixId": "A String", # TestExecution Matrix ID that the TestExecutionService uses.
      # 
      # - In response: present if set by create
      # - In create: optional
      # - In update: never set
  "state": "A String", # The initial state is IN_PROGRESS.
      # 
      # The only legal state transitions is from IN_PROGRESS to COMPLETE.
      # 
      # A PRECONDITION_FAILED will be returned if an invalid transition is
      # requested.
      # 
      # The state can only be set to COMPLETE once. A FAILED_PRECONDITION will be
      # returned if the state is set to COMPLETE multiple times.
      # 
      # If the state is set to COMPLETE, all the in-progress steps within the
      # execution will be set as COMPLETE. If the outcome of the step is not set,
      # the outcome will be set to INCONCLUSIVE.
      # 
      # - In response always set
      # - In create/update request: optional
}

  requestId: string, A unique request ID for server to detect duplicated requests.
For example, a UUID.

Optional, but strongly recommended.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # An Execution represents a collection of Steps. For instance, it could
      # represent:
      #    - a mobile test executed across a range of device configurations
      #    - a jenkins job with a build step followed by a test step
      #
      # The maximum size of an execution message is 1 MiB.
      #
      # An Execution can be updated until its state is set to COMPLETE at which
      # point it becomes immutable.
    "completionTime": { # A Timestamp represents a point in time independent of any time zone or local # The time when the Execution status transitioned to COMPLETE.
        #
        # This value will be set automatically when state transitions to
        # COMPLETE.
        #
        # - In response: set if the execution state is COMPLETE.
        # - In create/update request: never set
        # 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.
    },
    "executionId": "A String", # A unique identifier within a History for this Execution.
        #
        # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller.
        #
        # - In response always set
        # - In create/update request: never set
    "outcome": { # Interprets a result so that humans and machines can act on it. # Classify the result, for example into SUCCESS or FAILURE
        #
        # - In response: present if set by create/update request
        # - In create/update request: optional
      "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.
      },
      "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
        "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level.
        "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model.
        "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86.
      },
      "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
        "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.
        "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.
        "otherNativeCrash": True or False, # If a native process (including any other than the app) crashed.
      },
      "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.
      },
    },
    "specification": { # The details about how to run the execution. # Lightweight information about execution request.
        #
        # - In response: present if set by create
        # - In create: optional
        # - In update: optional
      "iosTest": { # A iOS mobile test specification # An iOS mobile test execution specification.
        "iosAppInfo": { # iOS app information # Information about the application under test.
          "name": "A String", # The name of the app.
              # Required
        },
        "testTimeout": { #  # Max time a test is allowed to run before it is
            # automatically cancelled.
            # 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.
        },
        "iosRoboTest": { # A Robo test for an iOS application. # An iOS Robo test.
        },
        "iosXcTest": { # A test of an iOS application that uses the XCTest framework. # An iOS XCTest.
          "xcodeVersion": "A String", # Xcode version that the test was run with.
          "bundleId": "A String", # Bundle ID of the app.
        },
        "iosTestLoop": { # A game loop test of an iOS application. # An iOS test loop.
          "bundleId": "A String", # Bundle ID of the app.
        },
      },
      "androidTest": { # An Android mobile test specification. # An Android mobile test execution specification.
        "testTimeout": { #  # Max time a test is allowed to run before it is
            # automatically cancelled.
            # 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.
        },
        "androidRoboTest": { # A test of an android application that explores the application on a virtual # An Android robo test.
            # or physical Android device, finding culprits and crashes as it goes.
          "bootstrapPackageId": "A String", # The java package for the bootstrap.
              # Optional
          "appInitialActivity": "A String", # The initial activity that should be used to start the app.
              # Optional
          "bootstrapRunnerClass": "A String", # The runner class for the bootstrap.
              # Optional
          "maxSteps": 42, # The max number of steps/actions Robo can execute.
              # Default is no limit (0).
              # Optional
          "maxDepth": 42, # The max depth of the traversal stack Robo can explore.
              # Optional
        },
        "androidTestLoop": { # Test Loops are tests that can be launched by the app itself, determining # An Android test loop.
            # when to run by listening for an intent.
        },
        "androidAppInfo": { # Android app information. # Information about the application under test.
          "name": "A String", # The name of the app.
              # Optional
          "packageName": "A String", # The package name of the app.
              # Required.
          "versionName": "A String", # The version name of the app.
              # Optional.
          "versionCode": "A String", # The internal version code of the app.
              # Optional.
        },
        "androidInstrumentationTest": { # A test of an Android application that can control an Android component # An Android instrumentation test.
            # independently of its normal lifecycle.
            #
            # See <http://developer.android.com/tools/testing/testing_android.html> for
            # more information on types of Android tests.
          "testPackageId": "A String", # The java package for the test to be executed.
              # Required
          "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",
          ],
          "useOrchestrator": True or False, # The flag indicates whether Android Test Orchestrator will be used to run
              # test or not.
          "testRunnerClass": "A String", # The InstrumentationTestRunner class.
              # Required
        },
      },
    },
    "dimensionDefinitions": [ # The dimensions along which different steps in this execution may vary.
        # This must remain fixed over the life of the execution.
        #
        # Returns INVALID_ARGUMENT if this field is set in an update request.
        #
        # Returns INVALID_ARGUMENT if the same name occurs in more than one
        # dimension_definition.
        #
        # Returns INVALID_ARGUMENT if the size of the list is over 100.
        #
        # - In response: present if set by create
        # - In create request: optional
        # - In update request: never set
      { # One dimension of the matrix of different runs of a step.
      },
    ],
    "creationTime": { # A Timestamp represents a point in time independent of any time zone or local # The time when the Execution was created.
        #
        # This value will be set automatically when CreateExecution is called.
        #
        # - In response: always set
        # - In create/update request: never set
        # 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.
    },
    "testExecutionMatrixId": "A String", # TestExecution Matrix ID that the TestExecutionService uses.
        #
        # - In response: present if set by create
        # - In create: optional
        # - In update: never set
    "state": "A String", # The initial state is IN_PROGRESS.
        #
        # The only legal state transitions is from IN_PROGRESS to COMPLETE.
        #
        # A PRECONDITION_FAILED will be returned if an invalid transition is
        # requested.
        #
        # The state can only be set to COMPLETE once. A FAILED_PRECONDITION will be
        # returned if the state is set to COMPLETE multiple times.
        #
        # If the state is set to COMPLETE, all the in-progress steps within the
        # execution will be set as COMPLETE. If the outcome of the step is not set,
        # the outcome will be set to INCONCLUSIVE.
        #
        # - In response always set
        # - In create/update request: optional
  }