Cloud Tool Results API . executions

Instance Methods

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

Creates an Execution.

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

Gets an Execution.

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

Lists Executions for a given History.

list_next(previous_request=*, previous_response=*)

Retrieves the next page of results.

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

Updates an existing Execution with the supplied partial entity.

Method Details

create(projectId=None, historyId=None, 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.
    "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.
      },
    ],
    "testExecutionMatrixId": "A String", # TestExecution Matrix ID that the TestExecutionService uses.
        # 
        # - In response: present if set by create
        # - In create: optional
        # - In update: never set
    "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
      "androidTest": { # An Android mobile test specification. # An Android mobile test execution specification.
        "androidAppInfo": { # Android app information. # Information about the application under test.
          "versionCode": "A String", # The internal version code of the app.
              # Optional.
          "packageName": "A String", # The package name of the app.
              # Required.
          "name": "A String", # The name of the app.
              # Optional
          "versionName": "A String", # The version name of the app.
              # Optional.
        },
        "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.
          "appInitialActivity": "A String", # The initial activity that should be used to start the app.
              # Optional
          "bootstrapPackageId": "A String", # The java package for the bootstrap.
              # Optional
          "bootstrapRunnerClass": "A String", # The runner class for the bootstrap.
              # Optional
          "maxDepth": 42, # The max depth of the traversal stack Robo can explore.
              # Optional
          "maxSteps": 42, # The max number of steps/actions Robo can execute.
              # Default is no limit (0).
              # 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. go/ftl-games-dd
        },
        "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.
          "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.
          "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
        },
        "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.
          "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
          "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",
          ],
        },
      },
    },
    "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.
    },
    "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
    "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
    "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.
    },
    "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
      "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
        "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.
        "hasErrorLogs": True or False, # If results are being provided to the user in certain cases of
            # infrastructure failures
        "abortedByUser": True or False, # If the end user aborted the test execution before a pass or fail could be
            # determined.
            # For example, the user pressed ctrl-c which sent a kill signal to the test
            # runner while the test was running.
      },
      "skippedDetail": { # Details for an outcome with a SKIPPED outcome summary. # More information about a SKIPPED outcome.
          #
          # Returns INVALID_ARGUMENT if this field is set
          # but the summary is not SKIPPED.
          #
          # Optional
        "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level.
        "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86.
        "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model.
      },
      "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.
      },
      "failureDetail": { # Details for an outcome with a FAILURE outcome summary. # More information about a FAILURE outcome.
          #
          # Returns INVALID_ARGUMENT if this field is set
          # but the summary is not FAILURE.
          #
          # Optional
        "otherNativeCrash": True or False, # If a native process (including any other than the app) crashed.
        "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.
        "timedOut": True or False, # If the test overran some time limit, and that is why it failed.
        "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.
      },
      "summary": "A String", # The simplest way to interpret a result.
          #
          # Required
    },
  }

  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.
      "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.
        },
      ],
      "testExecutionMatrixId": "A String", # TestExecution Matrix ID that the TestExecutionService uses.
          #
          # - In response: present if set by create
          # - In create: optional
          # - In update: never set
      "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
        "androidTest": { # An Android mobile test specification. # An Android mobile test execution specification.
          "androidAppInfo": { # Android app information. # Information about the application under test.
            "versionCode": "A String", # The internal version code of the app.
                # Optional.
            "packageName": "A String", # The package name of the app.
                # Required.
            "name": "A String", # The name of the app.
                # Optional
            "versionName": "A String", # The version name of the app.
                # Optional.
          },
          "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.
            "appInitialActivity": "A String", # The initial activity that should be used to start the app.
                # Optional
            "bootstrapPackageId": "A String", # The java package for the bootstrap.
                # Optional
            "bootstrapRunnerClass": "A String", # The runner class for the bootstrap.
                # Optional
            "maxDepth": 42, # The max depth of the traversal stack Robo can explore.
                # Optional
            "maxSteps": 42, # The max number of steps/actions Robo can execute.
                # Default is no limit (0).
                # 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. go/ftl-games-dd
          },
          "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.
            "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.
            "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
          },
          "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.
            "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
            "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",
            ],
          },
        },
      },
      "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.
      },
      "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
      "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
      "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.
      },
      "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
        "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
          "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.
          "hasErrorLogs": True or False, # If results are being provided to the user in certain cases of
              # infrastructure failures
          "abortedByUser": True or False, # If the end user aborted the test execution before a pass or fail could be
              # determined.
              # For example, the user pressed ctrl-c which sent a kill signal to the test
              # runner while the test was running.
        },
        "skippedDetail": { # Details for an outcome with a SKIPPED outcome summary. # More information about a SKIPPED outcome.
            #
            # Returns INVALID_ARGUMENT if this field is set
            # but the summary is not SKIPPED.
            #
            # Optional
          "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level.
          "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86.
          "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model.
        },
        "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.
        },
        "failureDetail": { # Details for an outcome with a FAILURE outcome summary. # More information about a FAILURE outcome.
            #
            # Returns INVALID_ARGUMENT if this field is set
            # but the summary is not FAILURE.
            #
            # Optional
          "otherNativeCrash": True or False, # If a native process (including any other than the app) crashed.
          "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.
          "timedOut": True or False, # If the test overran some time limit, and that is why it failed.
          "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.
        },
        "summary": "A String", # The simplest way to interpret a result.
            #
            # Required
      },
    }
get(projectId=None, historyId=None, executionId=None, 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.
      "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.
        },
      ],
      "testExecutionMatrixId": "A String", # TestExecution Matrix ID that the TestExecutionService uses.
          #
          # - In response: present if set by create
          # - In create: optional
          # - In update: never set
      "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
        "androidTest": { # An Android mobile test specification. # An Android mobile test execution specification.
          "androidAppInfo": { # Android app information. # Information about the application under test.
            "versionCode": "A String", # The internal version code of the app.
                # Optional.
            "packageName": "A String", # The package name of the app.
                # Required.
            "name": "A String", # The name of the app.
                # Optional
            "versionName": "A String", # The version name of the app.
                # Optional.
          },
          "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.
            "appInitialActivity": "A String", # The initial activity that should be used to start the app.
                # Optional
            "bootstrapPackageId": "A String", # The java package for the bootstrap.
                # Optional
            "bootstrapRunnerClass": "A String", # The runner class for the bootstrap.
                # Optional
            "maxDepth": 42, # The max depth of the traversal stack Robo can explore.
                # Optional
            "maxSteps": 42, # The max number of steps/actions Robo can execute.
                # Default is no limit (0).
                # 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. go/ftl-games-dd
          },
          "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.
            "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.
            "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
          },
          "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.
            "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
            "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",
            ],
          },
        },
      },
      "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.
      },
      "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
      "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
      "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.
      },
      "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
        "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
          "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.
          "hasErrorLogs": True or False, # If results are being provided to the user in certain cases of
              # infrastructure failures
          "abortedByUser": True or False, # If the end user aborted the test execution before a pass or fail could be
              # determined.
              # For example, the user pressed ctrl-c which sent a kill signal to the test
              # runner while the test was running.
        },
        "skippedDetail": { # Details for an outcome with a SKIPPED outcome summary. # More information about a SKIPPED outcome.
            #
            # Returns INVALID_ARGUMENT if this field is set
            # but the summary is not SKIPPED.
            #
            # Optional
          "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level.
          "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86.
          "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model.
        },
        "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.
        },
        "failureDetail": { # Details for an outcome with a FAILURE outcome summary. # More information about a FAILURE outcome.
            #
            # Returns INVALID_ARGUMENT if this field is set
            # but the summary is not FAILURE.
            #
            # Optional
          "otherNativeCrash": True or False, # If a native process (including any other than the app) crashed.
          "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.
          "timedOut": True or False, # If the test overran some time limit, and that is why it failed.
          "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.
        },
        "summary": "A String", # The simplest way to interpret a result.
            #
            # Required
      },
    }
list(projectId=None, historyId=None, pageSize=None, pageToken=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)
  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.
  pageToken: string, A continuation token to resume the query at the next item.

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

Returns:
  An object of the form:

    {
    "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.
    "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.
          "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.
            },
          ],
          "testExecutionMatrixId": "A String", # TestExecution Matrix ID that the TestExecutionService uses.
              #
              # - In response: present if set by create
              # - In create: optional
              # - In update: never set
          "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
            "androidTest": { # An Android mobile test specification. # An Android mobile test execution specification.
              "androidAppInfo": { # Android app information. # Information about the application under test.
                "versionCode": "A String", # The internal version code of the app.
                    # Optional.
                "packageName": "A String", # The package name of the app.
                    # Required.
                "name": "A String", # The name of the app.
                    # Optional
                "versionName": "A String", # The version name of the app.
                    # Optional.
              },
              "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.
                "appInitialActivity": "A String", # The initial activity that should be used to start the app.
                    # Optional
                "bootstrapPackageId": "A String", # The java package for the bootstrap.
                    # Optional
                "bootstrapRunnerClass": "A String", # The runner class for the bootstrap.
                    # Optional
                "maxDepth": 42, # The max depth of the traversal stack Robo can explore.
                    # Optional
                "maxSteps": 42, # The max number of steps/actions Robo can execute.
                    # Default is no limit (0).
                    # 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. go/ftl-games-dd
              },
              "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.
                "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.
                "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
              },
              "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.
                "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
                "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",
                ],
              },
            },
          },
          "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.
          },
          "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
          "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
          "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.
          },
          "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
            "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
              "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.
              "hasErrorLogs": True or False, # If results are being provided to the user in certain cases of
                  # infrastructure failures
              "abortedByUser": True or False, # If the end user aborted the test execution before a pass or fail could be
                  # determined.
                  # For example, the user pressed ctrl-c which sent a kill signal to the test
                  # runner while the test was running.
            },
            "skippedDetail": { # Details for an outcome with a SKIPPED outcome summary. # More information about a SKIPPED outcome.
                #
                # Returns INVALID_ARGUMENT if this field is set
                # but the summary is not SKIPPED.
                #
                # Optional
              "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level.
              "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86.
              "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model.
            },
            "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.
            },
            "failureDetail": { # Details for an outcome with a FAILURE outcome summary. # More information about a FAILURE outcome.
                #
                # Returns INVALID_ARGUMENT if this field is set
                # but the summary is not FAILURE.
                #
                # Optional
              "otherNativeCrash": True or False, # If a native process (including any other than the app) crashed.
              "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.
              "timedOut": True or False, # If the test overran some time limit, and that is why it failed.
              "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.
            },
            "summary": "A String", # The simplest way to interpret a result.
                #
                # Required
          },
        },
    ],
  }
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=None, 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.
    "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.
      },
    ],
    "testExecutionMatrixId": "A String", # TestExecution Matrix ID that the TestExecutionService uses.
        # 
        # - In response: present if set by create
        # - In create: optional
        # - In update: never set
    "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
      "androidTest": { # An Android mobile test specification. # An Android mobile test execution specification.
        "androidAppInfo": { # Android app information. # Information about the application under test.
          "versionCode": "A String", # The internal version code of the app.
              # Optional.
          "packageName": "A String", # The package name of the app.
              # Required.
          "name": "A String", # The name of the app.
              # Optional
          "versionName": "A String", # The version name of the app.
              # Optional.
        },
        "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.
          "appInitialActivity": "A String", # The initial activity that should be used to start the app.
              # Optional
          "bootstrapPackageId": "A String", # The java package for the bootstrap.
              # Optional
          "bootstrapRunnerClass": "A String", # The runner class for the bootstrap.
              # Optional
          "maxDepth": 42, # The max depth of the traversal stack Robo can explore.
              # Optional
          "maxSteps": 42, # The max number of steps/actions Robo can execute.
              # Default is no limit (0).
              # 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. go/ftl-games-dd
        },
        "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.
          "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.
          "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
        },
        "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.
          "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
          "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",
          ],
        },
      },
    },
    "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.
    },
    "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
    "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
    "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.
    },
    "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
      "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
        "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.
        "hasErrorLogs": True or False, # If results are being provided to the user in certain cases of
            # infrastructure failures
        "abortedByUser": True or False, # If the end user aborted the test execution before a pass or fail could be
            # determined.
            # For example, the user pressed ctrl-c which sent a kill signal to the test
            # runner while the test was running.
      },
      "skippedDetail": { # Details for an outcome with a SKIPPED outcome summary. # More information about a SKIPPED outcome.
          #
          # Returns INVALID_ARGUMENT if this field is set
          # but the summary is not SKIPPED.
          #
          # Optional
        "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level.
        "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86.
        "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model.
      },
      "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.
      },
      "failureDetail": { # Details for an outcome with a FAILURE outcome summary. # More information about a FAILURE outcome.
          #
          # Returns INVALID_ARGUMENT if this field is set
          # but the summary is not FAILURE.
          #
          # Optional
        "otherNativeCrash": True or False, # If a native process (including any other than the app) crashed.
        "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.
        "timedOut": True or False, # If the test overran some time limit, and that is why it failed.
        "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.
      },
      "summary": "A String", # The simplest way to interpret a result.
          #
          # Required
    },
  }

  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.
      "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.
        },
      ],
      "testExecutionMatrixId": "A String", # TestExecution Matrix ID that the TestExecutionService uses.
          #
          # - In response: present if set by create
          # - In create: optional
          # - In update: never set
      "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
        "androidTest": { # An Android mobile test specification. # An Android mobile test execution specification.
          "androidAppInfo": { # Android app information. # Information about the application under test.
            "versionCode": "A String", # The internal version code of the app.
                # Optional.
            "packageName": "A String", # The package name of the app.
                # Required.
            "name": "A String", # The name of the app.
                # Optional
            "versionName": "A String", # The version name of the app.
                # Optional.
          },
          "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.
            "appInitialActivity": "A String", # The initial activity that should be used to start the app.
                # Optional
            "bootstrapPackageId": "A String", # The java package for the bootstrap.
                # Optional
            "bootstrapRunnerClass": "A String", # The runner class for the bootstrap.
                # Optional
            "maxDepth": 42, # The max depth of the traversal stack Robo can explore.
                # Optional
            "maxSteps": 42, # The max number of steps/actions Robo can execute.
                # Default is no limit (0).
                # 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. go/ftl-games-dd
          },
          "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.
            "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.
            "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
          },
          "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.
            "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
            "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",
            ],
          },
        },
      },
      "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.
      },
      "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
      "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
      "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.
      },
      "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
        "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
          "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.
          "hasErrorLogs": True or False, # If results are being provided to the user in certain cases of
              # infrastructure failures
          "abortedByUser": True or False, # If the end user aborted the test execution before a pass or fail could be
              # determined.
              # For example, the user pressed ctrl-c which sent a kill signal to the test
              # runner while the test was running.
        },
        "skippedDetail": { # Details for an outcome with a SKIPPED outcome summary. # More information about a SKIPPED outcome.
            #
            # Returns INVALID_ARGUMENT if this field is set
            # but the summary is not SKIPPED.
            #
            # Optional
          "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level.
          "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86.
          "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model.
        },
        "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.
        },
        "failureDetail": { # Details for an outcome with a FAILURE outcome summary. # More information about a FAILURE outcome.
            #
            # Returns INVALID_ARGUMENT if this field is set
            # but the summary is not FAILURE.
            #
            # Optional
          "otherNativeCrash": True or False, # If a native process (including any other than the app) crashed.
          "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.
          "timedOut": True or False, # If the test overran some time limit, and that is why it failed.
          "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.
        },
        "summary": "A String", # The simplest way to interpret a result.
            #
            # Required
      },
    }