<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="integrations_v1.html">Application Integration API</a> . <a href="integrations_v1.projects.html">projects</a> . <a href="integrations_v1.projects.locations.html">locations</a> . <a href="integrations_v1.projects.locations.integrations.html">integrations</a> . <a href="integrations_v1.projects.locations.integrations.executions.html">executions</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="integrations_v1.projects.locations.integrations.executions.suspensions.html">suspensions()</a></code>
</p>
<p class="firstline">Returns the suspensions Resource.</p>

<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#download">download(name, x__xgafv=None)</a></code></p>
<p class="firstline">Download the execution.</p>
<p class="toc_element">
  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
<p class="firstline">Get an execution in the specified project.</p>
<p class="toc_element">
  <code><a href="#list">list(parent, filter=None, filterParams_customFilter=None, filterParams_endTime=None, filterParams_eventStatuses=None, filterParams_executionId=None, filterParams_parameterKey=None, filterParams_parameterPairKey=None, filterParams_parameterPairValue=None, filterParams_parameterType=None, filterParams_parameterValue=None, filterParams_startTime=None, filterParams_taskStatuses=None, filterParams_workflowName=None, orderBy=None, pageSize=None, pageToken=None, readMask=None, refreshAcl=None, truncateParams=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists the results of all the integration executions. The response includes the same information as the [execution log](https://cloud.google.com/application-integration/docs/viewing-logs) in the Integration UI.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next()</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="download">download(name, x__xgafv=None)</code>
  <pre>Download the execution.

Args:
  name: string, Required. The execution resource name. Format: projects/{gcp_project_id}/locations/{location}/products/{product}/integrations/{integration_id}/executions/{execution_id} (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response for downloading an execution.
  &quot;content&quot;: &quot;A String&quot;, # The content of downloaded execution.
}</pre>
</div>

<div class="method">
    <code class="details" id="get">get(name, x__xgafv=None)</code>
  <pre>Get an execution in the specified project.

Args:
  name: string, Required. The execution resource name. Format: projects/{gcp_project_id}/locations/{location}/products/{product}/integrations/{integration_id}/executions/{execution_id} (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # The Execution resource contains detailed information of an individual integration execution.
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. Created time of the execution.
  &quot;directSubExecutions&quot;: [ # Direct sub executions of the following Execution.
    # Object with schema name: GoogleCloudIntegrationsV1alphaExecution
  ],
  &quot;eventExecutionDetails&quot;: { # Contains the details of the execution info of this event: this includes the tasks execution details plus the event execution statistics. Next available id: 10 # The execution info about this event.
    &quot;eventAttemptStats&quot;: [
      {
        &quot;endTime&quot;: &quot;A String&quot;, # The end time of the event execution for current attempt.
        &quot;startTime&quot;: &quot;A String&quot;, # The start time of the event execution for current attempt. This could be in the future if it&#x27;s been scheduled.
      },
    ],
    &quot;eventExecutionSnapshot&quot;: [
      { # Contains the snapshot of the event execution for a given checkpoint. Next available id: 13
        &quot;checkpointTaskNumber&quot;: &quot;A String&quot;, # Indicates &quot;right after which checkpoint task&#x27;s execution&quot; this snapshot is taken.
        &quot;conditionResults&quot;: [ # All of the computed conditions that been calculated.
          { # Contains the combined condition calculation results.
            &quot;currentTaskNumber&quot;: &quot;A String&quot;, # the current task number.
            &quot;nextTaskNumber&quot;: &quot;A String&quot;, # the next task number.
            &quot;result&quot;: True or False, # the result comes out after evaluate the combined condition. True if there&#x27;s no combined condition specified.
          },
        ],
        &quot;diffParams&quot;: { # LINT.IfChange This message is used for processing and persisting (when applicable) key value pair parameters for each event in the event bus. Please see go/integration-platform/event_bus.md for more details. Next id: 4 # The parameters in Event object that differs from last snapshot.
          &quot;parameters&quot;: [ # Parameters are a part of Event and can be used to communicate between different tasks that are part of the same integration execution.
            { # Key-value pair of EventBus parameters.
              &quot;key&quot;: &quot;A String&quot;, # Key is used to retrieve the corresponding parameter value. This should be unique for a given fired event. These parameters must be predefined in the integration definition.
              &quot;value&quot;: { # LINT.IfChange To support various types of parameter values. Next available id: 14 # Values for the defined keys. Each value can either be string, int, double or any proto message.
                &quot;booleanArray&quot;: {
                  &quot;booleanValues&quot;: [
                    True or False,
                  ],
                },
                &quot;booleanValue&quot;: True or False,
                &quot;doubleArray&quot;: {
                  &quot;doubleValues&quot;: [
                    3.14,
                  ],
                },
                &quot;doubleValue&quot;: 3.14,
                &quot;intArray&quot;: {
                  &quot;intValues&quot;: [
                    &quot;A String&quot;,
                  ],
                },
                &quot;intValue&quot;: &quot;A String&quot;,
                &quot;protoArray&quot;: {
                  &quot;protoValues&quot;: [
                    {
                      &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
                    },
                  ],
                },
                &quot;protoValue&quot;: {
                  &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
                },
                &quot;serializedObjectValue&quot;: {
                  &quot;objectValue&quot;: &quot;A String&quot;,
                },
                &quot;stringArray&quot;: {
                  &quot;stringValues&quot;: [
                    &quot;A String&quot;,
                  ],
                },
                &quot;stringValue&quot;: &quot;A String&quot;,
              },
            },
          ],
        },
        &quot;eventExecutionInfoId&quot;: &quot;A String&quot;, # Points to the event execution info this snapshot belongs to.
        &quot;eventExecutionSnapshotId&quot;: &quot;A String&quot;, # Auto-generated. Used as primary key for EventExecutionSnapshots table.
        &quot;eventExecutionSnapshotMetadata&quot;: {
          &quot;eventAttemptNum&quot;: 42, # the event attempt number this snapshot belongs to.
          &quot;taskAttemptNum&quot;: 42, # the task attempt number this snapshot belongs to. Could be empty.
          &quot;taskName&quot;: &quot;A String&quot;, # the task name associated with this snapshot. Could be empty.
          &quot;taskNumber&quot;: &quot;A String&quot;, # The task number associated with this snapshot. Could be empty.
        },
        &quot;eventParams&quot;: { # LINT.IfChange This message is used for processing and persisting (when applicable) key value pair parameters for each event in the event bus. Please see go/integration-platform/event_bus.md for more details. Next id: 4 # The parameters in Event object.
          &quot;parameters&quot;: [ # Parameters are a part of Event and can be used to communicate between different tasks that are part of the same integration execution.
            { # Key-value pair of EventBus parameters.
              &quot;key&quot;: &quot;A String&quot;, # Key is used to retrieve the corresponding parameter value. This should be unique for a given fired event. These parameters must be predefined in the integration definition.
              &quot;value&quot;: { # LINT.IfChange To support various types of parameter values. Next available id: 14 # Values for the defined keys. Each value can either be string, int, double or any proto message.
                &quot;booleanArray&quot;: {
                  &quot;booleanValues&quot;: [
                    True or False,
                  ],
                },
                &quot;booleanValue&quot;: True or False,
                &quot;doubleArray&quot;: {
                  &quot;doubleValues&quot;: [
                    3.14,
                  ],
                },
                &quot;doubleValue&quot;: 3.14,
                &quot;intArray&quot;: {
                  &quot;intValues&quot;: [
                    &quot;A String&quot;,
                  ],
                },
                &quot;intValue&quot;: &quot;A String&quot;,
                &quot;protoArray&quot;: {
                  &quot;protoValues&quot;: [
                    {
                      &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
                    },
                  ],
                },
                &quot;protoValue&quot;: {
                  &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
                },
                &quot;serializedObjectValue&quot;: {
                  &quot;objectValue&quot;: &quot;A String&quot;,
                },
                &quot;stringArray&quot;: {
                  &quot;stringValues&quot;: [
                    &quot;A String&quot;,
                  ],
                },
                &quot;stringValue&quot;: &quot;A String&quot;,
              },
            },
          ],
        },
        &quot;exceedMaxSize&quot;: True or False, # indicate whether snapshot exceeded maximum size before clean up
        &quot;snapshotTime&quot;: &quot;A String&quot;, # Indicates when this snapshot is taken.
        &quot;taskExecutionDetails&quot;: [ # All of the task execution details at the given point of time.
          { # Contains the details of the execution of this task. Next available id: 11
            &quot;taskAttemptStats&quot;: [
              {
                &quot;endTime&quot;: &quot;A String&quot;, # The end time of the task execution for current attempt.
                &quot;startTime&quot;: &quot;A String&quot;, # The start time of the task execution for current attempt. This could be in the future if it&#x27;s been scheduled.
              },
            ],
            &quot;taskExecutionState&quot;: &quot;A String&quot;,
            &quot;taskNumber&quot;: &quot;A String&quot;, # Pointer to the task config it used for execution.
          },
        ],
        &quot;taskName&quot;: &quot;A String&quot;, # The task name associated with this snapshot. Could be empty.
      },
    ],
    &quot;eventExecutionState&quot;: &quot;A String&quot;,
    &quot;eventRetriesFromBeginningCount&quot;: 42, # Indicates the number of times the execution has restarted from the beginning.
    &quot;logFilePath&quot;: &quot;A String&quot;, # The log file path (aka. cns address) for this event.
    &quot;networkAddress&quot;: &quot;A String&quot;, # The network address (aka. bns address) that indicates where the event executor is running.
    &quot;nextExecutionTime&quot;: &quot;A String&quot;, # Next scheduled execution time in case the execution status was RETRY_ON_HOLD.
    &quot;ryeLockUnheldCount&quot;: 42, # Used internally and shouldn&#x27;t be exposed to users. A counter for the cron job to record how many times this event is in in_process state but don&#x27;t have a lock consecutively/
  },
  &quot;executionDetails&quot;: { # Contains the details of the execution info: this includes the tasks execution details plus the event execution statistics. # Detailed info of this execution.
    &quot;attemptStats&quot;: [ # List of Start and end time of the execution attempts.
      { # Status for the execution attempt.
        &quot;endTime&quot;: &quot;A String&quot;, # The end time of the event execution for current attempt.
        &quot;startTime&quot;: &quot;A String&quot;, # The start time of the event execution for current attempt. This could be in the future if it&#x27;s been scheduled.
      },
    ],
    &quot;executionSnapshots&quot;: [ # List of snapshots taken during the execution.
      { # Contains the snapshot of the execution for a given checkpoint.
        &quot;checkpointTaskNumber&quot;: &quot;A String&quot;, # Indicates &quot;after which checkpoint task&#x27;s execution&quot; this snapshot is taken.
        &quot;executionSnapshotMetadata&quot;: { # Metadata of the execution snapshot. # Metadata of the execution snapshot.
          &quot;executionAttempt&quot;: 42, # the execution attempt number this snapshot belongs to.
          &quot;task&quot;: &quot;A String&quot;, # the task name associated with this snapshot.
          &quot;taskAttempt&quot;: 42, # the task attempt number this snapshot belongs to.
          &quot;taskNumber&quot;: &quot;A String&quot;, # The task number associated with this snapshot.
        },
        &quot;params&quot;: { # Parameters used during the execution.
          &quot;a_key&quot;: { # The type of the parameter.
            &quot;booleanArray&quot;: { # This message only contains a field of boolean array. # Boolean Array.
              &quot;booleanValues&quot;: [ # Boolean array.
                True or False,
              ],
            },
            &quot;booleanValue&quot;: True or False, # Boolean.
            &quot;doubleArray&quot;: { # This message only contains a field of double number array. # Double Number Array.
              &quot;doubleValues&quot;: [ # Double number array.
                3.14,
              ],
            },
            &quot;doubleValue&quot;: 3.14, # Double Number.
            &quot;intArray&quot;: { # This message only contains a field of integer array. # Integer Array.
              &quot;intValues&quot;: [ # Integer array.
                &quot;A String&quot;,
              ],
            },
            &quot;intValue&quot;: &quot;A String&quot;, # Integer.
            &quot;jsonValue&quot;: &quot;A String&quot;, # Json.
            &quot;stringArray&quot;: { # This message only contains a field of string array. # String Array.
              &quot;stringValues&quot;: [ # String array.
                &quot;A String&quot;,
              ],
            },
            &quot;stringValue&quot;: &quot;A String&quot;, # String.
          },
        },
        &quot;taskExecutionDetails&quot;: [ # All of the task execution details at the given point of time.
          { # Contains the details of the execution of this task.
            &quot;taskAttemptStats&quot;: [ # Status for the current task execution attempt.
              { # Status for the execution attempt.
                &quot;endTime&quot;: &quot;A String&quot;, # The end time of the event execution for current attempt.
                &quot;startTime&quot;: &quot;A String&quot;, # The start time of the event execution for current attempt. This could be in the future if it&#x27;s been scheduled.
              },
            ],
            &quot;taskExecutionState&quot;: &quot;A String&quot;, # The execution state of this task.
            &quot;taskNumber&quot;: &quot;A String&quot;, # Pointer to the task config it used for execution.
          },
        ],
      },
    ],
    &quot;state&quot;: &quot;A String&quot;, # Status of the execution.
  },
  &quot;executionMethod&quot;: &quot;A String&quot;, # The ways user posts this event.
  &quot;name&quot;: &quot;A String&quot;, # Auto-generated primary key.
  &quot;requestParameters&quot;: { # Event parameters come in as part of the request.
    &quot;a_key&quot;: { # The type of the parameter.
      &quot;booleanArray&quot;: { # This message only contains a field of boolean array. # Boolean Array.
        &quot;booleanValues&quot;: [ # Boolean array.
          True or False,
        ],
      },
      &quot;booleanValue&quot;: True or False, # Boolean.
      &quot;doubleArray&quot;: { # This message only contains a field of double number array. # Double Number Array.
        &quot;doubleValues&quot;: [ # Double number array.
          3.14,
        ],
      },
      &quot;doubleValue&quot;: 3.14, # Double Number.
      &quot;intArray&quot;: { # This message only contains a field of integer array. # Integer Array.
        &quot;intValues&quot;: [ # Integer array.
          &quot;A String&quot;,
        ],
      },
      &quot;intValue&quot;: &quot;A String&quot;, # Integer.
      &quot;jsonValue&quot;: &quot;A String&quot;, # Json.
      &quot;stringArray&quot;: { # This message only contains a field of string array. # String Array.
        &quot;stringValues&quot;: [ # String array.
          &quot;A String&quot;,
        ],
      },
      &quot;stringValue&quot;: &quot;A String&quot;, # String.
    },
  },
  &quot;requestParams&quot;: [ # Event parameters come in as part of the request.
    { # Key-value pair of EventBus parameters.
      &quot;dataType&quot;: &quot;A String&quot;, # Explicitly getting the type of the parameter.
      &quot;key&quot;: &quot;A String&quot;, # Key is used to retrieve the corresponding parameter value. This should be unique for a given fired event. These parameters must be predefined in the workflow definition.
      &quot;value&quot;: { # To support various types of parameter values. Next available id: 14 # Values for the defined keys. Each value can either be string, int, double or any proto message.
        &quot;booleanArray&quot;: {
          &quot;booleanValues&quot;: [
            True or False,
          ],
        },
        &quot;booleanValue&quot;: True or False,
        &quot;doubleArray&quot;: {
          &quot;doubleValues&quot;: [
            3.14,
          ],
        },
        &quot;doubleValue&quot;: 3.14,
        &quot;intArray&quot;: {
          &quot;intValues&quot;: [
            &quot;A String&quot;,
          ],
        },
        &quot;intValue&quot;: &quot;A String&quot;,
        &quot;jsonValue&quot;: &quot;A String&quot;,
        &quot;protoArray&quot;: {
          &quot;protoValues&quot;: [
            {
              &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
            },
          ],
        },
        &quot;protoValue&quot;: {
          &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
        },
        &quot;serializedObjectValue&quot;: {
          &quot;objectValue&quot;: &quot;A String&quot;,
        },
        &quot;stringArray&quot;: {
          &quot;stringValues&quot;: [
            &quot;A String&quot;,
          ],
        },
        &quot;stringValue&quot;: &quot;A String&quot;,
      },
    },
  ],
  &quot;responseParameters&quot;: { # Event parameters returned as part of the response.
    &quot;a_key&quot;: { # The type of the parameter.
      &quot;booleanArray&quot;: { # This message only contains a field of boolean array. # Boolean Array.
        &quot;booleanValues&quot;: [ # Boolean array.
          True or False,
        ],
      },
      &quot;booleanValue&quot;: True or False, # Boolean.
      &quot;doubleArray&quot;: { # This message only contains a field of double number array. # Double Number Array.
        &quot;doubleValues&quot;: [ # Double number array.
          3.14,
        ],
      },
      &quot;doubleValue&quot;: 3.14, # Double Number.
      &quot;intArray&quot;: { # This message only contains a field of integer array. # Integer Array.
        &quot;intValues&quot;: [ # Integer array.
          &quot;A String&quot;,
        ],
      },
      &quot;intValue&quot;: &quot;A String&quot;, # Integer.
      &quot;jsonValue&quot;: &quot;A String&quot;, # Json.
      &quot;stringArray&quot;: { # This message only contains a field of string array. # String Array.
        &quot;stringValues&quot;: [ # String array.
          &quot;A String&quot;,
        ],
      },
      &quot;stringValue&quot;: &quot;A String&quot;, # String.
    },
  },
  &quot;responseParams&quot;: [ # Event parameters come out as part of the response.
    { # Key-value pair of EventBus parameters.
      &quot;dataType&quot;: &quot;A String&quot;, # Explicitly getting the type of the parameter.
      &quot;key&quot;: &quot;A String&quot;, # Key is used to retrieve the corresponding parameter value. This should be unique for a given fired event. These parameters must be predefined in the workflow definition.
      &quot;value&quot;: { # To support various types of parameter values. Next available id: 14 # Values for the defined keys. Each value can either be string, int, double or any proto message.
        &quot;booleanArray&quot;: {
          &quot;booleanValues&quot;: [
            True or False,
          ],
        },
        &quot;booleanValue&quot;: True or False,
        &quot;doubleArray&quot;: {
          &quot;doubleValues&quot;: [
            3.14,
          ],
        },
        &quot;doubleValue&quot;: 3.14,
        &quot;intArray&quot;: {
          &quot;intValues&quot;: [
            &quot;A String&quot;,
          ],
        },
        &quot;intValue&quot;: &quot;A String&quot;,
        &quot;jsonValue&quot;: &quot;A String&quot;,
        &quot;protoArray&quot;: {
          &quot;protoValues&quot;: [
            {
              &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
            },
          ],
        },
        &quot;protoValue&quot;: {
          &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
        },
        &quot;serializedObjectValue&quot;: {
          &quot;objectValue&quot;: &quot;A String&quot;,
        },
        &quot;stringArray&quot;: {
          &quot;stringValues&quot;: [
            &quot;A String&quot;,
          ],
        },
        &quot;stringValue&quot;: &quot;A String&quot;,
      },
    },
  ],
  &quot;triggerId&quot;: &quot;A String&quot;, # The trigger id of the integration trigger config. If both trigger_id and client_id is present, the integration is executed from the start tasks provided by the matching trigger config otherwise it is executed from the default start tasks.
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Last modified time of the execution.
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(parent, filter=None, filterParams_customFilter=None, filterParams_endTime=None, filterParams_eventStatuses=None, filterParams_executionId=None, filterParams_parameterKey=None, filterParams_parameterPairKey=None, filterParams_parameterPairValue=None, filterParams_parameterType=None, filterParams_parameterValue=None, filterParams_startTime=None, filterParams_taskStatuses=None, filterParams_workflowName=None, orderBy=None, pageSize=None, pageToken=None, readMask=None, refreshAcl=None, truncateParams=None, x__xgafv=None)</code>
  <pre>Lists the results of all the integration executions. The response includes the same information as the [execution log](https://cloud.google.com/application-integration/docs/viewing-logs) in the Integration UI.

Args:
  parent: string, Required. The parent resource name of the integration execution. (required)
  filter: string, Optional. Standard filter field, we support filtering on all fields in EventExecutionParamIndexes table. All fields support for EQUALS, in additional: CreateTimestamp support for LESS_THAN, GREATER_THAN ParameterKey, ParameterValue, ParameterType support for HAS For example: &quot;parameter_value&quot; HAS \&quot;parameter1\&quot; Also supports operators like AND, OR, NOT For example, trigger_id=\&quot;id1\&quot; AND event_execution_state=\&quot;FAILED\&quot;
  filterParams_customFilter: string, Optional user-provided custom filter.
  filterParams_endTime: string, End timestamp.
  filterParams_eventStatuses: string, List of possible event statuses. (repeated)
  filterParams_executionId: string, Execution id.
  filterParams_parameterKey: string, Param key. DEPRECATED. User parameter_pair_key instead.
  filterParams_parameterPairKey: string, Param key in the key value pair filter.
  filterParams_parameterPairValue: string, Param value in the key value pair filter.
  filterParams_parameterType: string, Param type.
  filterParams_parameterValue: string, Param value. DEPRECATED. User parameter_pair_value instead.
  filterParams_startTime: string, Start timestamp.
  filterParams_taskStatuses: string, List of possible task statuses. (repeated)
  filterParams_workflowName: string, Workflow name.
  orderBy: string, Optional. The results would be returned in order you specified here. Currently supporting &quot;last_modified_time&quot; and &quot;create_time&quot;.
  pageSize: integer, Optional. The size of entries in the response.
  pageToken: string, Optional. The token returned in the previous response.
  readMask: string, Optional. View mask for the response data. If set, only the field specified will be returned as part of the result. If not set, all fields in event execution info will be filled and returned.
  refreshAcl: boolean, Optional. If true, the service will use the most recent acl information to list event execution infos and renew the acl cache. Note that fetching the most recent acl is synchronous, so it will increase RPC call latency.
  truncateParams: boolean, Optional. If true, the service will truncate the params to only keep the first 1000 characters of string params and empty the executions in order to make response smaller. Only works for UI and when the params fields are not filtered out.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response for listing the integration execution data.
  &quot;executionInfos&quot;: [ # Required. The detailed information of requested executions.
    { # Contains all the execution details for a workflow instance. Next available id: 24
      &quot;clientId&quot;: &quot;A String&quot;, # The event data user sends as request.
      &quot;createTime&quot;: &quot;A String&quot;, # Auto-generated.
      &quot;errorCode&quot;: { # Registered ids for errors, as &quot;oneof&quot; enums. Each task or logical grouping of tasks may share the same enum. # Final error-code if event failed.
        &quot;commonErrorCode&quot;: &quot;A String&quot;,
      },
      &quot;errors&quot;: [ # Errors, warnings, and informationals associated with the workflow/task. The order in which the errors were added by the workflow/task is maintained.
        { # An error, warning, or information message associated with a workflow.
          &quot;errorCode&quot;: { # Registered ids for errors, as &quot;oneof&quot; enums. Each task or logical grouping of tasks may share the same enum. # The associated error-code, which can be a common or internal code.
            &quot;commonErrorCode&quot;: &quot;A String&quot;,
          },
          &quot;errorMessage&quot;: &quot;A String&quot;, # The full text of the error message, including any parameters that were thrown along with the exception.
          &quot;severity&quot;: &quot;A String&quot;, # The severity of the error: ERROR|WARN|INFO.
          &quot;taskNumber&quot;: 42, # The task try-number, in which, the error occurred. If zero, the error happened at the event level.
        },
      ],
      &quot;eventExecutionDetails&quot;: { # Contains the details of the execution info of this event: this includes the tasks execution details plus the event execution statistics. Next available id: 10 # The execution info about this event.
        &quot;eventAttemptStats&quot;: [
          {
            &quot;endTime&quot;: &quot;A String&quot;, # The end time of the event execution for current attempt.
            &quot;startTime&quot;: &quot;A String&quot;, # The start time of the event execution for current attempt. This could be in the future if it&#x27;s been scheduled.
          },
        ],
        &quot;eventExecutionSnapshot&quot;: [ # After snapshot migration, this field will no longer be populated, but old execution snapshots will still be accessible.
          {
            &quot;checkpointTaskNumber&quot;: &quot;A String&quot;, # Indicates &quot;right after which checkpoint task&#x27;s execution&quot; this snapshot is taken.
            &quot;conditionResults&quot;: [ # All of the computed conditions that been calculated.
              { # Contains the combined condition calculation results.
                &quot;currentTaskNumber&quot;: &quot;A String&quot;, # the current task number.
                &quot;nextTaskNumber&quot;: &quot;A String&quot;, # the next task number.
                &quot;result&quot;: True or False, # the result comes out after evaluate the combined condition. True if there&#x27;s no combined condition specified.
              },
            ],
            &quot;diffParams&quot;: { # LINT.IfChange This message is used for processing and persisting (when applicable) key value pair parameters for each event in the event bus. Please see go/integration-platform/event_bus.md for more details. Next id: 4 # The parameters in Event object that differs from last snapshot.
              &quot;parameters&quot;: [ # Parameters are a part of Event and can be used to communicate between different tasks that are part of the same workflow execution.
                { # Key-value pair of EventBus parameters.
                  &quot;dataType&quot;: &quot;A String&quot;, # Explicitly getting the type of the parameter.
                  &quot;key&quot;: &quot;A String&quot;, # Key is used to retrieve the corresponding parameter value. This should be unique for a given fired event. These parameters must be predefined in the workflow definition.
                  &quot;value&quot;: { # To support various types of parameter values. Next available id: 14 # Values for the defined keys. Each value can either be string, int, double or any proto message.
                    &quot;booleanArray&quot;: {
                      &quot;booleanValues&quot;: [
                        True or False,
                      ],
                    },
                    &quot;booleanValue&quot;: True or False,
                    &quot;doubleArray&quot;: {
                      &quot;doubleValues&quot;: [
                        3.14,
                      ],
                    },
                    &quot;doubleValue&quot;: 3.14,
                    &quot;intArray&quot;: {
                      &quot;intValues&quot;: [
                        &quot;A String&quot;,
                      ],
                    },
                    &quot;intValue&quot;: &quot;A String&quot;,
                    &quot;jsonValue&quot;: &quot;A String&quot;,
                    &quot;protoArray&quot;: {
                      &quot;protoValues&quot;: [
                        {
                          &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
                        },
                      ],
                    },
                    &quot;protoValue&quot;: {
                      &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
                    },
                    &quot;serializedObjectValue&quot;: {
                      &quot;objectValue&quot;: &quot;A String&quot;,
                    },
                    &quot;stringArray&quot;: {
                      &quot;stringValues&quot;: [
                        &quot;A String&quot;,
                      ],
                    },
                    &quot;stringValue&quot;: &quot;A String&quot;,
                  },
                },
              ],
            },
            &quot;eventExecutionInfoId&quot;: &quot;A String&quot;, # Points to the event execution info this snapshot belongs to.
            &quot;eventExecutionSnapshotId&quot;: &quot;A String&quot;, # Auto-generated. Used as primary key for EventExecutionSnapshots table.
            &quot;eventExecutionSnapshotMetadata&quot;: {
              &quot;eventAttemptNum&quot;: 42, # the event attempt number this snapshot belongs to.
              &quot;taskAttemptNum&quot;: 42, # the task attempt number this snapshot belongs to. Could be empty.
              &quot;taskName&quot;: &quot;A String&quot;, # the task name associated with this snapshot. Could be empty.
              &quot;taskNumber&quot;: &quot;A String&quot;, # The task number associated with this snapshot. Could be empty.
            },
            &quot;eventParams&quot;: { # LINT.IfChange This message is used for processing and persisting (when applicable) key value pair parameters for each event in the event bus. Please see go/integration-platform/event_bus.md for more details. Next id: 4 # The parameters in Event object.
              &quot;parameters&quot;: [ # Parameters are a part of Event and can be used to communicate between different tasks that are part of the same workflow execution.
                { # Key-value pair of EventBus parameters.
                  &quot;dataType&quot;: &quot;A String&quot;, # Explicitly getting the type of the parameter.
                  &quot;key&quot;: &quot;A String&quot;, # Key is used to retrieve the corresponding parameter value. This should be unique for a given fired event. These parameters must be predefined in the workflow definition.
                  &quot;value&quot;: { # To support various types of parameter values. Next available id: 14 # Values for the defined keys. Each value can either be string, int, double or any proto message.
                    &quot;booleanArray&quot;: {
                      &quot;booleanValues&quot;: [
                        True or False,
                      ],
                    },
                    &quot;booleanValue&quot;: True or False,
                    &quot;doubleArray&quot;: {
                      &quot;doubleValues&quot;: [
                        3.14,
                      ],
                    },
                    &quot;doubleValue&quot;: 3.14,
                    &quot;intArray&quot;: {
                      &quot;intValues&quot;: [
                        &quot;A String&quot;,
                      ],
                    },
                    &quot;intValue&quot;: &quot;A String&quot;,
                    &quot;jsonValue&quot;: &quot;A String&quot;,
                    &quot;protoArray&quot;: {
                      &quot;protoValues&quot;: [
                        {
                          &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
                        },
                      ],
                    },
                    &quot;protoValue&quot;: {
                      &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
                    },
                    &quot;serializedObjectValue&quot;: {
                      &quot;objectValue&quot;: &quot;A String&quot;,
                    },
                    &quot;stringArray&quot;: {
                      &quot;stringValues&quot;: [
                        &quot;A String&quot;,
                      ],
                    },
                    &quot;stringValue&quot;: &quot;A String&quot;,
                  },
                },
              ],
            },
            &quot;snapshotTime&quot;: &quot;A String&quot;, # Indicates when this snapshot is taken.
            &quot;taskExecutionDetails&quot;: [ # All of the task execution details at the given point of time.
              { # Contains the details of the execution of this task. Next available id: 11
                &quot;taskAttemptStats&quot;: [
                  {
                    &quot;endTime&quot;: &quot;A String&quot;, # The end time of the task execution for current attempt.
                    &quot;startTime&quot;: &quot;A String&quot;, # The start time of the task execution for current attempt. This could be in the future if it&#x27;s been scheduled.
                  },
                ],
                &quot;taskExecutionState&quot;: &quot;A String&quot;,
                &quot;taskNumber&quot;: &quot;A String&quot;, # Pointer to the task config it used for execution.
              },
            ],
            &quot;taskName&quot;: &quot;A String&quot;, # The task name associated with this snapshot. Could be empty.
          },
        ],
        &quot;eventExecutionState&quot;: &quot;A String&quot;, # The execution state of this event.
        &quot;eventRetriesFromBeginningCount&quot;: 42, # Indicates the number of times the execution has restarted from the beginning.
        &quot;logFilePath&quot;: &quot;A String&quot;, # The log file path (aka. cns address) for this event.
        &quot;networkAddress&quot;: &quot;A String&quot;, # The network address (aka. bns address) that indicates where the event executor is running.
        &quot;nextExecutionTime&quot;: &quot;A String&quot;, # Next scheduled execution time in case the execution status was RETRY_ON_HOLD.
        &quot;ryeLockUnheldCount&quot;: 42, # Used internally and shouldn&#x27;t be exposed to users. A counter for the cron job to record how many times this event is in in_process state but don&#x27;t have a lock consecutively/
      },
      &quot;eventExecutionInfoId&quot;: &quot;A String&quot;, # Auto-generated primary key.
      &quot;executionTraceInfo&quot;: { # Message that helps aggregate all sub-executions triggered by one execution and keeps track of child-parent relationships. # Execution trace info to aggregate parent-child executions.
        &quot;parentEventExecutionInfoId&quot;: &quot;A String&quot;, # Parent event execution info id that triggers the current execution through SubWorkflowExecutorTask.
        &quot;traceId&quot;: &quot;A String&quot;, # Used to aggregate ExecutionTraceInfo.
      },
      &quot;lastModifiedTime&quot;: &quot;A String&quot;, # Auto-generated.
      &quot;postMethod&quot;: &quot;A String&quot;, # The ways user posts this event.
      &quot;product&quot;: &quot;A String&quot;, # Which Google product the execution_info belongs to. If not set, the execution_info belongs to Integration Platform by default.
      &quot;requestId&quot;: &quot;A String&quot;, # Optional. This is used to de-dup incoming request.
      &quot;requestParams&quot;: { # LINT.IfChange This message is used for processing and persisting (when applicable) key value pair parameters for each event in the event bus. Please see go/integration-platform/event_bus.md for more details. Next id: 4 # Event parameters come in as part of the request.
        &quot;parameters&quot;: [ # Parameters are a part of Event and can be used to communicate between different tasks that are part of the same workflow execution.
          { # Key-value pair of EventBus parameters.
            &quot;dataType&quot;: &quot;A String&quot;, # Explicitly getting the type of the parameter.
            &quot;key&quot;: &quot;A String&quot;, # Key is used to retrieve the corresponding parameter value. This should be unique for a given fired event. These parameters must be predefined in the workflow definition.
            &quot;value&quot;: { # To support various types of parameter values. Next available id: 14 # Values for the defined keys. Each value can either be string, int, double or any proto message.
              &quot;booleanArray&quot;: {
                &quot;booleanValues&quot;: [
                  True or False,
                ],
              },
              &quot;booleanValue&quot;: True or False,
              &quot;doubleArray&quot;: {
                &quot;doubleValues&quot;: [
                  3.14,
                ],
              },
              &quot;doubleValue&quot;: 3.14,
              &quot;intArray&quot;: {
                &quot;intValues&quot;: [
                  &quot;A String&quot;,
                ],
              },
              &quot;intValue&quot;: &quot;A String&quot;,
              &quot;jsonValue&quot;: &quot;A String&quot;,
              &quot;protoArray&quot;: {
                &quot;protoValues&quot;: [
                  {
                    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
                  },
                ],
              },
              &quot;protoValue&quot;: {
                &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
              },
              &quot;serializedObjectValue&quot;: {
                &quot;objectValue&quot;: &quot;A String&quot;,
              },
              &quot;stringArray&quot;: {
                &quot;stringValues&quot;: [
                  &quot;A String&quot;,
                ],
              },
              &quot;stringValue&quot;: &quot;A String&quot;,
            },
          },
        ],
      },
      &quot;responseParams&quot;: { # LINT.IfChange This message is used for processing and persisting (when applicable) key value pair parameters for each event in the event bus. Please see go/integration-platform/event_bus.md for more details. Next id: 4 # Event parameters come out as part of the response.
        &quot;parameters&quot;: [ # Parameters are a part of Event and can be used to communicate between different tasks that are part of the same workflow execution.
          { # Key-value pair of EventBus parameters.
            &quot;dataType&quot;: &quot;A String&quot;, # Explicitly getting the type of the parameter.
            &quot;key&quot;: &quot;A String&quot;, # Key is used to retrieve the corresponding parameter value. This should be unique for a given fired event. These parameters must be predefined in the workflow definition.
            &quot;value&quot;: { # To support various types of parameter values. Next available id: 14 # Values for the defined keys. Each value can either be string, int, double or any proto message.
              &quot;booleanArray&quot;: {
                &quot;booleanValues&quot;: [
                  True or False,
                ],
              },
              &quot;booleanValue&quot;: True or False,
              &quot;doubleArray&quot;: {
                &quot;doubleValues&quot;: [
                  3.14,
                ],
              },
              &quot;doubleValue&quot;: 3.14,
              &quot;intArray&quot;: {
                &quot;intValues&quot;: [
                  &quot;A String&quot;,
                ],
              },
              &quot;intValue&quot;: &quot;A String&quot;,
              &quot;jsonValue&quot;: &quot;A String&quot;,
              &quot;protoArray&quot;: {
                &quot;protoValues&quot;: [
                  {
                    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
                  },
                ],
              },
              &quot;protoValue&quot;: {
                &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
              },
              &quot;serializedObjectValue&quot;: {
                &quot;objectValue&quot;: &quot;A String&quot;,
              },
              &quot;stringArray&quot;: {
                &quot;stringValues&quot;: [
                  &quot;A String&quot;,
                ],
              },
              &quot;stringValue&quot;: &quot;A String&quot;,
            },
          },
        ],
      },
      &quot;snapshotNumber&quot;: &quot;A String&quot;, # Workflow snapshot number.
      &quot;tenant&quot;: &quot;A String&quot;, # Tenant this event is created. Used to reschedule the event to correct tenant.
      &quot;triggerId&quot;: &quot;A String&quot;, # The trigger id of the workflow trigger config. If both trigger_id and client_id is present, the workflow is executed from the start tasks provided by the matching trigger config otherwise it is executed from the default start tasks.
      &quot;workflowId&quot;: &quot;A String&quot;, # Required. Pointer to the workflow it is executing.
      &quot;workflowName&quot;: &quot;A String&quot;, # Name of the workflow.
      &quot;workflowRetryBackoffIntervalSeconds&quot;: &quot;A String&quot;, # Time interval in seconds to schedule retry of workflow in manifold when workflow is already running
    },
  ],
  &quot;executions&quot;: [ # The detailed information of requested executions
    { # The Execution resource contains detailed information of an individual integration execution.
      &quot;createTime&quot;: &quot;A String&quot;, # Output only. Created time of the execution.
      &quot;directSubExecutions&quot;: [ # Direct sub executions of the following Execution.
        # Object with schema name: GoogleCloudIntegrationsV1alphaExecution
      ],
      &quot;eventExecutionDetails&quot;: { # Contains the details of the execution info of this event: this includes the tasks execution details plus the event execution statistics. Next available id: 10 # The execution info about this event.
        &quot;eventAttemptStats&quot;: [
          {
            &quot;endTime&quot;: &quot;A String&quot;, # The end time of the event execution for current attempt.
            &quot;startTime&quot;: &quot;A String&quot;, # The start time of the event execution for current attempt. This could be in the future if it&#x27;s been scheduled.
          },
        ],
        &quot;eventExecutionSnapshot&quot;: [
          { # Contains the snapshot of the event execution for a given checkpoint. Next available id: 13
            &quot;checkpointTaskNumber&quot;: &quot;A String&quot;, # Indicates &quot;right after which checkpoint task&#x27;s execution&quot; this snapshot is taken.
            &quot;conditionResults&quot;: [ # All of the computed conditions that been calculated.
              { # Contains the combined condition calculation results.
                &quot;currentTaskNumber&quot;: &quot;A String&quot;, # the current task number.
                &quot;nextTaskNumber&quot;: &quot;A String&quot;, # the next task number.
                &quot;result&quot;: True or False, # the result comes out after evaluate the combined condition. True if there&#x27;s no combined condition specified.
              },
            ],
            &quot;diffParams&quot;: { # LINT.IfChange This message is used for processing and persisting (when applicable) key value pair parameters for each event in the event bus. Please see go/integration-platform/event_bus.md for more details. Next id: 4 # The parameters in Event object that differs from last snapshot.
              &quot;parameters&quot;: [ # Parameters are a part of Event and can be used to communicate between different tasks that are part of the same integration execution.
                { # Key-value pair of EventBus parameters.
                  &quot;key&quot;: &quot;A String&quot;, # Key is used to retrieve the corresponding parameter value. This should be unique for a given fired event. These parameters must be predefined in the integration definition.
                  &quot;value&quot;: { # LINT.IfChange To support various types of parameter values. Next available id: 14 # Values for the defined keys. Each value can either be string, int, double or any proto message.
                    &quot;booleanArray&quot;: {
                      &quot;booleanValues&quot;: [
                        True or False,
                      ],
                    },
                    &quot;booleanValue&quot;: True or False,
                    &quot;doubleArray&quot;: {
                      &quot;doubleValues&quot;: [
                        3.14,
                      ],
                    },
                    &quot;doubleValue&quot;: 3.14,
                    &quot;intArray&quot;: {
                      &quot;intValues&quot;: [
                        &quot;A String&quot;,
                      ],
                    },
                    &quot;intValue&quot;: &quot;A String&quot;,
                    &quot;protoArray&quot;: {
                      &quot;protoValues&quot;: [
                        {
                          &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
                        },
                      ],
                    },
                    &quot;protoValue&quot;: {
                      &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
                    },
                    &quot;serializedObjectValue&quot;: {
                      &quot;objectValue&quot;: &quot;A String&quot;,
                    },
                    &quot;stringArray&quot;: {
                      &quot;stringValues&quot;: [
                        &quot;A String&quot;,
                      ],
                    },
                    &quot;stringValue&quot;: &quot;A String&quot;,
                  },
                },
              ],
            },
            &quot;eventExecutionInfoId&quot;: &quot;A String&quot;, # Points to the event execution info this snapshot belongs to.
            &quot;eventExecutionSnapshotId&quot;: &quot;A String&quot;, # Auto-generated. Used as primary key for EventExecutionSnapshots table.
            &quot;eventExecutionSnapshotMetadata&quot;: {
              &quot;eventAttemptNum&quot;: 42, # the event attempt number this snapshot belongs to.
              &quot;taskAttemptNum&quot;: 42, # the task attempt number this snapshot belongs to. Could be empty.
              &quot;taskName&quot;: &quot;A String&quot;, # the task name associated with this snapshot. Could be empty.
              &quot;taskNumber&quot;: &quot;A String&quot;, # The task number associated with this snapshot. Could be empty.
            },
            &quot;eventParams&quot;: { # LINT.IfChange This message is used for processing and persisting (when applicable) key value pair parameters for each event in the event bus. Please see go/integration-platform/event_bus.md for more details. Next id: 4 # The parameters in Event object.
              &quot;parameters&quot;: [ # Parameters are a part of Event and can be used to communicate between different tasks that are part of the same integration execution.
                { # Key-value pair of EventBus parameters.
                  &quot;key&quot;: &quot;A String&quot;, # Key is used to retrieve the corresponding parameter value. This should be unique for a given fired event. These parameters must be predefined in the integration definition.
                  &quot;value&quot;: { # LINT.IfChange To support various types of parameter values. Next available id: 14 # Values for the defined keys. Each value can either be string, int, double or any proto message.
                    &quot;booleanArray&quot;: {
                      &quot;booleanValues&quot;: [
                        True or False,
                      ],
                    },
                    &quot;booleanValue&quot;: True or False,
                    &quot;doubleArray&quot;: {
                      &quot;doubleValues&quot;: [
                        3.14,
                      ],
                    },
                    &quot;doubleValue&quot;: 3.14,
                    &quot;intArray&quot;: {
                      &quot;intValues&quot;: [
                        &quot;A String&quot;,
                      ],
                    },
                    &quot;intValue&quot;: &quot;A String&quot;,
                    &quot;protoArray&quot;: {
                      &quot;protoValues&quot;: [
                        {
                          &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
                        },
                      ],
                    },
                    &quot;protoValue&quot;: {
                      &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
                    },
                    &quot;serializedObjectValue&quot;: {
                      &quot;objectValue&quot;: &quot;A String&quot;,
                    },
                    &quot;stringArray&quot;: {
                      &quot;stringValues&quot;: [
                        &quot;A String&quot;,
                      ],
                    },
                    &quot;stringValue&quot;: &quot;A String&quot;,
                  },
                },
              ],
            },
            &quot;exceedMaxSize&quot;: True or False, # indicate whether snapshot exceeded maximum size before clean up
            &quot;snapshotTime&quot;: &quot;A String&quot;, # Indicates when this snapshot is taken.
            &quot;taskExecutionDetails&quot;: [ # All of the task execution details at the given point of time.
              { # Contains the details of the execution of this task. Next available id: 11
                &quot;taskAttemptStats&quot;: [
                  {
                    &quot;endTime&quot;: &quot;A String&quot;, # The end time of the task execution for current attempt.
                    &quot;startTime&quot;: &quot;A String&quot;, # The start time of the task execution for current attempt. This could be in the future if it&#x27;s been scheduled.
                  },
                ],
                &quot;taskExecutionState&quot;: &quot;A String&quot;,
                &quot;taskNumber&quot;: &quot;A String&quot;, # Pointer to the task config it used for execution.
              },
            ],
            &quot;taskName&quot;: &quot;A String&quot;, # The task name associated with this snapshot. Could be empty.
          },
        ],
        &quot;eventExecutionState&quot;: &quot;A String&quot;,
        &quot;eventRetriesFromBeginningCount&quot;: 42, # Indicates the number of times the execution has restarted from the beginning.
        &quot;logFilePath&quot;: &quot;A String&quot;, # The log file path (aka. cns address) for this event.
        &quot;networkAddress&quot;: &quot;A String&quot;, # The network address (aka. bns address) that indicates where the event executor is running.
        &quot;nextExecutionTime&quot;: &quot;A String&quot;, # Next scheduled execution time in case the execution status was RETRY_ON_HOLD.
        &quot;ryeLockUnheldCount&quot;: 42, # Used internally and shouldn&#x27;t be exposed to users. A counter for the cron job to record how many times this event is in in_process state but don&#x27;t have a lock consecutively/
      },
      &quot;executionDetails&quot;: { # Contains the details of the execution info: this includes the tasks execution details plus the event execution statistics. # Detailed info of this execution.
        &quot;attemptStats&quot;: [ # List of Start and end time of the execution attempts.
          { # Status for the execution attempt.
            &quot;endTime&quot;: &quot;A String&quot;, # The end time of the event execution for current attempt.
            &quot;startTime&quot;: &quot;A String&quot;, # The start time of the event execution for current attempt. This could be in the future if it&#x27;s been scheduled.
          },
        ],
        &quot;executionSnapshots&quot;: [ # List of snapshots taken during the execution.
          { # Contains the snapshot of the execution for a given checkpoint.
            &quot;checkpointTaskNumber&quot;: &quot;A String&quot;, # Indicates &quot;after which checkpoint task&#x27;s execution&quot; this snapshot is taken.
            &quot;executionSnapshotMetadata&quot;: { # Metadata of the execution snapshot. # Metadata of the execution snapshot.
              &quot;executionAttempt&quot;: 42, # the execution attempt number this snapshot belongs to.
              &quot;task&quot;: &quot;A String&quot;, # the task name associated with this snapshot.
              &quot;taskAttempt&quot;: 42, # the task attempt number this snapshot belongs to.
              &quot;taskNumber&quot;: &quot;A String&quot;, # The task number associated with this snapshot.
            },
            &quot;params&quot;: { # Parameters used during the execution.
              &quot;a_key&quot;: { # The type of the parameter.
                &quot;booleanArray&quot;: { # This message only contains a field of boolean array. # Boolean Array.
                  &quot;booleanValues&quot;: [ # Boolean array.
                    True or False,
                  ],
                },
                &quot;booleanValue&quot;: True or False, # Boolean.
                &quot;doubleArray&quot;: { # This message only contains a field of double number array. # Double Number Array.
                  &quot;doubleValues&quot;: [ # Double number array.
                    3.14,
                  ],
                },
                &quot;doubleValue&quot;: 3.14, # Double Number.
                &quot;intArray&quot;: { # This message only contains a field of integer array. # Integer Array.
                  &quot;intValues&quot;: [ # Integer array.
                    &quot;A String&quot;,
                  ],
                },
                &quot;intValue&quot;: &quot;A String&quot;, # Integer.
                &quot;jsonValue&quot;: &quot;A String&quot;, # Json.
                &quot;stringArray&quot;: { # This message only contains a field of string array. # String Array.
                  &quot;stringValues&quot;: [ # String array.
                    &quot;A String&quot;,
                  ],
                },
                &quot;stringValue&quot;: &quot;A String&quot;, # String.
              },
            },
            &quot;taskExecutionDetails&quot;: [ # All of the task execution details at the given point of time.
              { # Contains the details of the execution of this task.
                &quot;taskAttemptStats&quot;: [ # Status for the current task execution attempt.
                  { # Status for the execution attempt.
                    &quot;endTime&quot;: &quot;A String&quot;, # The end time of the event execution for current attempt.
                    &quot;startTime&quot;: &quot;A String&quot;, # The start time of the event execution for current attempt. This could be in the future if it&#x27;s been scheduled.
                  },
                ],
                &quot;taskExecutionState&quot;: &quot;A String&quot;, # The execution state of this task.
                &quot;taskNumber&quot;: &quot;A String&quot;, # Pointer to the task config it used for execution.
              },
            ],
          },
        ],
        &quot;state&quot;: &quot;A String&quot;, # Status of the execution.
      },
      &quot;executionMethod&quot;: &quot;A String&quot;, # The ways user posts this event.
      &quot;name&quot;: &quot;A String&quot;, # Auto-generated primary key.
      &quot;requestParameters&quot;: { # Event parameters come in as part of the request.
        &quot;a_key&quot;: { # The type of the parameter.
          &quot;booleanArray&quot;: { # This message only contains a field of boolean array. # Boolean Array.
            &quot;booleanValues&quot;: [ # Boolean array.
              True or False,
            ],
          },
          &quot;booleanValue&quot;: True or False, # Boolean.
          &quot;doubleArray&quot;: { # This message only contains a field of double number array. # Double Number Array.
            &quot;doubleValues&quot;: [ # Double number array.
              3.14,
            ],
          },
          &quot;doubleValue&quot;: 3.14, # Double Number.
          &quot;intArray&quot;: { # This message only contains a field of integer array. # Integer Array.
            &quot;intValues&quot;: [ # Integer array.
              &quot;A String&quot;,
            ],
          },
          &quot;intValue&quot;: &quot;A String&quot;, # Integer.
          &quot;jsonValue&quot;: &quot;A String&quot;, # Json.
          &quot;stringArray&quot;: { # This message only contains a field of string array. # String Array.
            &quot;stringValues&quot;: [ # String array.
              &quot;A String&quot;,
            ],
          },
          &quot;stringValue&quot;: &quot;A String&quot;, # String.
        },
      },
      &quot;requestParams&quot;: [ # Event parameters come in as part of the request.
        { # Key-value pair of EventBus parameters.
          &quot;dataType&quot;: &quot;A String&quot;, # Explicitly getting the type of the parameter.
          &quot;key&quot;: &quot;A String&quot;, # Key is used to retrieve the corresponding parameter value. This should be unique for a given fired event. These parameters must be predefined in the workflow definition.
          &quot;value&quot;: { # To support various types of parameter values. Next available id: 14 # Values for the defined keys. Each value can either be string, int, double or any proto message.
            &quot;booleanArray&quot;: {
              &quot;booleanValues&quot;: [
                True or False,
              ],
            },
            &quot;booleanValue&quot;: True or False,
            &quot;doubleArray&quot;: {
              &quot;doubleValues&quot;: [
                3.14,
              ],
            },
            &quot;doubleValue&quot;: 3.14,
            &quot;intArray&quot;: {
              &quot;intValues&quot;: [
                &quot;A String&quot;,
              ],
            },
            &quot;intValue&quot;: &quot;A String&quot;,
            &quot;jsonValue&quot;: &quot;A String&quot;,
            &quot;protoArray&quot;: {
              &quot;protoValues&quot;: [
                {
                  &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
                },
              ],
            },
            &quot;protoValue&quot;: {
              &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
            },
            &quot;serializedObjectValue&quot;: {
              &quot;objectValue&quot;: &quot;A String&quot;,
            },
            &quot;stringArray&quot;: {
              &quot;stringValues&quot;: [
                &quot;A String&quot;,
              ],
            },
            &quot;stringValue&quot;: &quot;A String&quot;,
          },
        },
      ],
      &quot;responseParameters&quot;: { # Event parameters returned as part of the response.
        &quot;a_key&quot;: { # The type of the parameter.
          &quot;booleanArray&quot;: { # This message only contains a field of boolean array. # Boolean Array.
            &quot;booleanValues&quot;: [ # Boolean array.
              True or False,
            ],
          },
          &quot;booleanValue&quot;: True or False, # Boolean.
          &quot;doubleArray&quot;: { # This message only contains a field of double number array. # Double Number Array.
            &quot;doubleValues&quot;: [ # Double number array.
              3.14,
            ],
          },
          &quot;doubleValue&quot;: 3.14, # Double Number.
          &quot;intArray&quot;: { # This message only contains a field of integer array. # Integer Array.
            &quot;intValues&quot;: [ # Integer array.
              &quot;A String&quot;,
            ],
          },
          &quot;intValue&quot;: &quot;A String&quot;, # Integer.
          &quot;jsonValue&quot;: &quot;A String&quot;, # Json.
          &quot;stringArray&quot;: { # This message only contains a field of string array. # String Array.
            &quot;stringValues&quot;: [ # String array.
              &quot;A String&quot;,
            ],
          },
          &quot;stringValue&quot;: &quot;A String&quot;, # String.
        },
      },
      &quot;responseParams&quot;: [ # Event parameters come out as part of the response.
        { # Key-value pair of EventBus parameters.
          &quot;dataType&quot;: &quot;A String&quot;, # Explicitly getting the type of the parameter.
          &quot;key&quot;: &quot;A String&quot;, # Key is used to retrieve the corresponding parameter value. This should be unique for a given fired event. These parameters must be predefined in the workflow definition.
          &quot;value&quot;: { # To support various types of parameter values. Next available id: 14 # Values for the defined keys. Each value can either be string, int, double or any proto message.
            &quot;booleanArray&quot;: {
              &quot;booleanValues&quot;: [
                True or False,
              ],
            },
            &quot;booleanValue&quot;: True or False,
            &quot;doubleArray&quot;: {
              &quot;doubleValues&quot;: [
                3.14,
              ],
            },
            &quot;doubleValue&quot;: 3.14,
            &quot;intArray&quot;: {
              &quot;intValues&quot;: [
                &quot;A String&quot;,
              ],
            },
            &quot;intValue&quot;: &quot;A String&quot;,
            &quot;jsonValue&quot;: &quot;A String&quot;,
            &quot;protoArray&quot;: {
              &quot;protoValues&quot;: [
                {
                  &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
                },
              ],
            },
            &quot;protoValue&quot;: {
              &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
            },
            &quot;serializedObjectValue&quot;: {
              &quot;objectValue&quot;: &quot;A String&quot;,
            },
            &quot;stringArray&quot;: {
              &quot;stringValues&quot;: [
                &quot;A String&quot;,
              ],
            },
            &quot;stringValue&quot;: &quot;A String&quot;,
          },
        },
      ],
      &quot;triggerId&quot;: &quot;A String&quot;, # The trigger id of the integration trigger config. If both trigger_id and client_id is present, the integration is executed from the start tasks provided by the matching trigger config otherwise it is executed from the default start tasks.
      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Last modified time of the execution.
    },
  ],
  &quot;nextPageToken&quot;: &quot;A String&quot;, # The token used to retrieve the next page results.
}</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next()</code>
  <pre>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 &#x27;execute()&#x27; on to request the next
          page. Returns None if there are no more items in the collection.
        </pre>
</div>

</body></html>