Workflows API . projects . locations . workflows

Instance Methods

close()

Close httplib2 connections.

create(parent, body=None, workflowId=None, x__xgafv=None)

Creates a new workflow. If a workflow with the specified name already exists in the specified project and location, the long running operation returns a ALREADY_EXISTS error.

delete(name, x__xgafv=None)

Deletes a workflow with the specified name. This method also cancels and deletes all running executions of the workflow.

get(name, revisionId=None, x__xgafv=None)

Gets details of a single workflow.

list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)

Lists workflows in a given project and location. The default order is not specified.

listRevisions(name, pageSize=None, pageToken=None, x__xgafv=None)

Lists revisions for a given workflow.

listRevisions_next()

Retrieves the next page of results.

list_next()

Retrieves the next page of results.

patch(name, body=None, updateMask=None, x__xgafv=None)

Updates an existing workflow. Running this method has no impact on already running executions of the workflow. A new revision of the workflow might be created as a result of a successful update operation. In that case, the new revision is used in new workflow executions.

Method Details

close()
Close httplib2 connections.
create(parent, body=None, workflowId=None, x__xgafv=None)
Creates a new workflow. If a workflow with the specified name already exists in the specified project and location, the long running operation returns a ALREADY_EXISTS error.

Args:
  parent: string, Required. Project and location in which the workflow should be created. Format: projects/{project}/locations/{location} (required)
  body: object, The request body.
    The object takes the form of:

{ # Workflow program to be executed by Workflows.
  "allKmsKeys": [ # Output only. A list of all KMS crypto keys used to encrypt or decrypt the data associated with the workflow.
    "A String",
  ],
  "allKmsKeysVersions": [ # Output only. A list of all KMS crypto key versions used to encrypt or decrypt the data associated with the workflow.
    "A String",
  ],
  "callLogLevel": "A String", # Optional. Describes the level of platform logging to apply to calls and call responses during executions of this workflow. If both the workflow and the execution specify a logging level, the execution level takes precedence.
  "createTime": "A String", # Output only. The timestamp for when the workflow was created. This is a workflow-wide field and is not tied to a specific revision.
  "cryptoKeyName": "A String", # Optional. The resource name of a KMS crypto key used to encrypt or decrypt the data associated with the workflow. Format: projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey} Using `-` as a wildcard for the `{project}` or not providing one at all will infer the project from the account. If not provided, data associated with the workflow will not be CMEK-encrypted.
  "cryptoKeyVersion": "A String", # Output only. The resource name of a KMS crypto key version used to encrypt or decrypt the data associated with the workflow. Format: projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey}/cryptoKeyVersions/{cryptoKeyVersion}
  "description": "A String", # Description of the workflow provided by the user. Must be at most 1000 Unicode characters long. This is a workflow-wide field and is not tied to a specific revision.
  "executionHistoryLevel": "A String", # Optional. Describes the level of the execution history feature to apply to this workflow.
  "labels": { # Labels associated with this workflow. Labels can contain at most 64 entries. Keys and values can be no longer than 63 characters and can only contain lowercase letters, numeric characters, underscores, and dashes. Label keys must start with a letter. International characters are allowed. This is a workflow-wide field and is not tied to a specific revision.
    "a_key": "A String",
  },
  "name": "A String", # The resource name of the workflow. Format: projects/{project}/locations/{location}/workflows/{workflow}. This is a workflow-wide field and is not tied to a specific revision.
  "revisionCreateTime": "A String", # Output only. The timestamp for the latest revision of the workflow's creation.
  "revisionId": "A String", # Output only. The revision of the workflow. A new revision of a workflow is created as a result of updating the following properties of a workflow: - Service account - Workflow code to be executed The format is "000001-a4d", where the first six characters define the zero-padded revision ordinal number. They are followed by a hyphen and three hexadecimal random characters.
  "serviceAccount": "A String", # The service account associated with the latest workflow version. This service account represents the identity of the workflow and determines what permissions the workflow has. Format: projects/{project}/serviceAccounts/{account} or {account} Using `-` as a wildcard for the `{project}` or not providing one at all will infer the project from the account. The `{account}` value can be the `email` address or the `unique_id` of the service account. If not provided, workflow will use the project's default service account. Modifying this field for an existing workflow results in a new workflow revision.
  "sourceContents": "A String", # Workflow code to be executed. The size limit is 128KB.
  "state": "A String", # Output only. State of the workflow deployment.
  "stateError": { # Describes an error related to the current state of the workflow. # Output only. Error regarding the state of the workflow. For example, this field will have error details if the execution data is unavailable due to revoked KMS key permissions.
    "details": "A String", # Provides specifics about the error.
    "type": "A String", # The type of this state error.
  },
  "updateTime": "A String", # Output only. The timestamp for when the workflow was last updated. This is a workflow-wide field and is not tied to a specific revision.
  "userEnvVars": { # Optional. User-defined environment variables associated with this workflow revision. This map has a maximum length of 20. Each string can take up to 4KiB. Keys cannot be empty strings and cannot start with "GOOGLE" or "WORKFLOWS".
    "a_key": "A String",
  },
}

  workflowId: string, Required. The ID of the workflow to be created. It has to fulfill the following requirements: * Must contain only letters, numbers, underscores and hyphens. * Must start with a letter. * Must be between 1-64 characters. * Must end with a number or a letter. * Must be unique within the customer project and location.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        "a_key": "", # Properties of the object. Contains field @type with type URL.
      },
    ],
    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  "response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
}
delete(name, x__xgafv=None)
Deletes a workflow with the specified name. This method also cancels and deletes all running executions of the workflow.

Args:
  name: string, Required. Name of the workflow to be deleted. Format: projects/{project}/locations/{location}/workflows/{workflow} (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        "a_key": "", # Properties of the object. Contains field @type with type URL.
      },
    ],
    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  "response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
}
get(name, revisionId=None, x__xgafv=None)
Gets details of a single workflow.

Args:
  name: string, Required. Name of the workflow for which information should be retrieved. Format: projects/{project}/locations/{location}/workflows/{workflow} (required)
  revisionId: string, Optional. The revision of the workflow to retrieve. If the revision_id is empty, the latest revision is retrieved. The format is "000001-a4d", where the first six characters define the zero-padded decimal revision number. They are followed by a hyphen and three hexadecimal characters.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Workflow program to be executed by Workflows.
  "allKmsKeys": [ # Output only. A list of all KMS crypto keys used to encrypt or decrypt the data associated with the workflow.
    "A String",
  ],
  "allKmsKeysVersions": [ # Output only. A list of all KMS crypto key versions used to encrypt or decrypt the data associated with the workflow.
    "A String",
  ],
  "callLogLevel": "A String", # Optional. Describes the level of platform logging to apply to calls and call responses during executions of this workflow. If both the workflow and the execution specify a logging level, the execution level takes precedence.
  "createTime": "A String", # Output only. The timestamp for when the workflow was created. This is a workflow-wide field and is not tied to a specific revision.
  "cryptoKeyName": "A String", # Optional. The resource name of a KMS crypto key used to encrypt or decrypt the data associated with the workflow. Format: projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey} Using `-` as a wildcard for the `{project}` or not providing one at all will infer the project from the account. If not provided, data associated with the workflow will not be CMEK-encrypted.
  "cryptoKeyVersion": "A String", # Output only. The resource name of a KMS crypto key version used to encrypt or decrypt the data associated with the workflow. Format: projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey}/cryptoKeyVersions/{cryptoKeyVersion}
  "description": "A String", # Description of the workflow provided by the user. Must be at most 1000 Unicode characters long. This is a workflow-wide field and is not tied to a specific revision.
  "executionHistoryLevel": "A String", # Optional. Describes the level of the execution history feature to apply to this workflow.
  "labels": { # Labels associated with this workflow. Labels can contain at most 64 entries. Keys and values can be no longer than 63 characters and can only contain lowercase letters, numeric characters, underscores, and dashes. Label keys must start with a letter. International characters are allowed. This is a workflow-wide field and is not tied to a specific revision.
    "a_key": "A String",
  },
  "name": "A String", # The resource name of the workflow. Format: projects/{project}/locations/{location}/workflows/{workflow}. This is a workflow-wide field and is not tied to a specific revision.
  "revisionCreateTime": "A String", # Output only. The timestamp for the latest revision of the workflow's creation.
  "revisionId": "A String", # Output only. The revision of the workflow. A new revision of a workflow is created as a result of updating the following properties of a workflow: - Service account - Workflow code to be executed The format is "000001-a4d", where the first six characters define the zero-padded revision ordinal number. They are followed by a hyphen and three hexadecimal random characters.
  "serviceAccount": "A String", # The service account associated with the latest workflow version. This service account represents the identity of the workflow and determines what permissions the workflow has. Format: projects/{project}/serviceAccounts/{account} or {account} Using `-` as a wildcard for the `{project}` or not providing one at all will infer the project from the account. The `{account}` value can be the `email` address or the `unique_id` of the service account. If not provided, workflow will use the project's default service account. Modifying this field for an existing workflow results in a new workflow revision.
  "sourceContents": "A String", # Workflow code to be executed. The size limit is 128KB.
  "state": "A String", # Output only. State of the workflow deployment.
  "stateError": { # Describes an error related to the current state of the workflow. # Output only. Error regarding the state of the workflow. For example, this field will have error details if the execution data is unavailable due to revoked KMS key permissions.
    "details": "A String", # Provides specifics about the error.
    "type": "A String", # The type of this state error.
  },
  "updateTime": "A String", # Output only. The timestamp for when the workflow was last updated. This is a workflow-wide field and is not tied to a specific revision.
  "userEnvVars": { # Optional. User-defined environment variables associated with this workflow revision. This map has a maximum length of 20. Each string can take up to 4KiB. Keys cannot be empty strings and cannot start with "GOOGLE" or "WORKFLOWS".
    "a_key": "A String",
  },
}
list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)
Lists workflows in a given project and location. The default order is not specified.

Args:
  parent: string, Required. Project and location from which the workflows should be listed. Format: projects/{project}/locations/{location} (required)
  filter: string, Filter to restrict results to specific workflows. For details, see AIP-160. For example, if you are using the Google APIs Explorer: `state="SUCCEEDED"` or `createTime>"2023-08-01" AND state="FAILED"`
  orderBy: string, Comma-separated list of fields that specify the order of the results. Default sorting order for a field is ascending. To specify descending order for a field, append a "desc" suffix. If not specified, the results are returned in an unspecified order.
  pageSize: integer, Maximum number of workflows to return per call. The service might return fewer than this value even if not at the end of the collection. If a value is not specified, a default value of 500 is used. The maximum permitted value is 1000 and values greater than 1000 are coerced down to 1000.
  pageToken: string, A page token, received from a previous `ListWorkflows` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListWorkflows` must match the call that provided the page token.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response for the ListWorkflows method.
  "nextPageToken": "A String", # A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.
  "unreachable": [ # Unreachable resources.
    "A String",
  ],
  "workflows": [ # The workflows that match the request.
    { # Workflow program to be executed by Workflows.
      "allKmsKeys": [ # Output only. A list of all KMS crypto keys used to encrypt or decrypt the data associated with the workflow.
        "A String",
      ],
      "allKmsKeysVersions": [ # Output only. A list of all KMS crypto key versions used to encrypt or decrypt the data associated with the workflow.
        "A String",
      ],
      "callLogLevel": "A String", # Optional. Describes the level of platform logging to apply to calls and call responses during executions of this workflow. If both the workflow and the execution specify a logging level, the execution level takes precedence.
      "createTime": "A String", # Output only. The timestamp for when the workflow was created. This is a workflow-wide field and is not tied to a specific revision.
      "cryptoKeyName": "A String", # Optional. The resource name of a KMS crypto key used to encrypt or decrypt the data associated with the workflow. Format: projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey} Using `-` as a wildcard for the `{project}` or not providing one at all will infer the project from the account. If not provided, data associated with the workflow will not be CMEK-encrypted.
      "cryptoKeyVersion": "A String", # Output only. The resource name of a KMS crypto key version used to encrypt or decrypt the data associated with the workflow. Format: projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey}/cryptoKeyVersions/{cryptoKeyVersion}
      "description": "A String", # Description of the workflow provided by the user. Must be at most 1000 Unicode characters long. This is a workflow-wide field and is not tied to a specific revision.
      "executionHistoryLevel": "A String", # Optional. Describes the level of the execution history feature to apply to this workflow.
      "labels": { # Labels associated with this workflow. Labels can contain at most 64 entries. Keys and values can be no longer than 63 characters and can only contain lowercase letters, numeric characters, underscores, and dashes. Label keys must start with a letter. International characters are allowed. This is a workflow-wide field and is not tied to a specific revision.
        "a_key": "A String",
      },
      "name": "A String", # The resource name of the workflow. Format: projects/{project}/locations/{location}/workflows/{workflow}. This is a workflow-wide field and is not tied to a specific revision.
      "revisionCreateTime": "A String", # Output only. The timestamp for the latest revision of the workflow's creation.
      "revisionId": "A String", # Output only. The revision of the workflow. A new revision of a workflow is created as a result of updating the following properties of a workflow: - Service account - Workflow code to be executed The format is "000001-a4d", where the first six characters define the zero-padded revision ordinal number. They are followed by a hyphen and three hexadecimal random characters.
      "serviceAccount": "A String", # The service account associated with the latest workflow version. This service account represents the identity of the workflow and determines what permissions the workflow has. Format: projects/{project}/serviceAccounts/{account} or {account} Using `-` as a wildcard for the `{project}` or not providing one at all will infer the project from the account. The `{account}` value can be the `email` address or the `unique_id` of the service account. If not provided, workflow will use the project's default service account. Modifying this field for an existing workflow results in a new workflow revision.
      "sourceContents": "A String", # Workflow code to be executed. The size limit is 128KB.
      "state": "A String", # Output only. State of the workflow deployment.
      "stateError": { # Describes an error related to the current state of the workflow. # Output only. Error regarding the state of the workflow. For example, this field will have error details if the execution data is unavailable due to revoked KMS key permissions.
        "details": "A String", # Provides specifics about the error.
        "type": "A String", # The type of this state error.
      },
      "updateTime": "A String", # Output only. The timestamp for when the workflow was last updated. This is a workflow-wide field and is not tied to a specific revision.
      "userEnvVars": { # Optional. User-defined environment variables associated with this workflow revision. This map has a maximum length of 20. Each string can take up to 4KiB. Keys cannot be empty strings and cannot start with "GOOGLE" or "WORKFLOWS".
        "a_key": "A String",
      },
    },
  ],
}
listRevisions(name, pageSize=None, pageToken=None, x__xgafv=None)
Lists revisions for a given workflow.

Args:
  name: string, Required. Workflow for which the revisions should be listed. Format: projects/{project}/locations/{location}/workflows/{workflow} (required)
  pageSize: integer, The maximum number of revisions to return per page. If a value is not specified, a default value of 20 is used. The maximum permitted value is 100. Values greater than 100 are coerced down to 100.
  pageToken: string, The page token, received from a previous ListWorkflowRevisions call. Provide this to retrieve the subsequent page.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response for the ListWorkflowRevisions method.
  "nextPageToken": "A String", # A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.
  "workflows": [ # The revisions of the workflow, ordered in reverse chronological order.
    { # Workflow program to be executed by Workflows.
      "allKmsKeys": [ # Output only. A list of all KMS crypto keys used to encrypt or decrypt the data associated with the workflow.
        "A String",
      ],
      "allKmsKeysVersions": [ # Output only. A list of all KMS crypto key versions used to encrypt or decrypt the data associated with the workflow.
        "A String",
      ],
      "callLogLevel": "A String", # Optional. Describes the level of platform logging to apply to calls and call responses during executions of this workflow. If both the workflow and the execution specify a logging level, the execution level takes precedence.
      "createTime": "A String", # Output only. The timestamp for when the workflow was created. This is a workflow-wide field and is not tied to a specific revision.
      "cryptoKeyName": "A String", # Optional. The resource name of a KMS crypto key used to encrypt or decrypt the data associated with the workflow. Format: projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey} Using `-` as a wildcard for the `{project}` or not providing one at all will infer the project from the account. If not provided, data associated with the workflow will not be CMEK-encrypted.
      "cryptoKeyVersion": "A String", # Output only. The resource name of a KMS crypto key version used to encrypt or decrypt the data associated with the workflow. Format: projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey}/cryptoKeyVersions/{cryptoKeyVersion}
      "description": "A String", # Description of the workflow provided by the user. Must be at most 1000 Unicode characters long. This is a workflow-wide field and is not tied to a specific revision.
      "executionHistoryLevel": "A String", # Optional. Describes the level of the execution history feature to apply to this workflow.
      "labels": { # Labels associated with this workflow. Labels can contain at most 64 entries. Keys and values can be no longer than 63 characters and can only contain lowercase letters, numeric characters, underscores, and dashes. Label keys must start with a letter. International characters are allowed. This is a workflow-wide field and is not tied to a specific revision.
        "a_key": "A String",
      },
      "name": "A String", # The resource name of the workflow. Format: projects/{project}/locations/{location}/workflows/{workflow}. This is a workflow-wide field and is not tied to a specific revision.
      "revisionCreateTime": "A String", # Output only. The timestamp for the latest revision of the workflow's creation.
      "revisionId": "A String", # Output only. The revision of the workflow. A new revision of a workflow is created as a result of updating the following properties of a workflow: - Service account - Workflow code to be executed The format is "000001-a4d", where the first six characters define the zero-padded revision ordinal number. They are followed by a hyphen and three hexadecimal random characters.
      "serviceAccount": "A String", # The service account associated with the latest workflow version. This service account represents the identity of the workflow and determines what permissions the workflow has. Format: projects/{project}/serviceAccounts/{account} or {account} Using `-` as a wildcard for the `{project}` or not providing one at all will infer the project from the account. The `{account}` value can be the `email` address or the `unique_id` of the service account. If not provided, workflow will use the project's default service account. Modifying this field for an existing workflow results in a new workflow revision.
      "sourceContents": "A String", # Workflow code to be executed. The size limit is 128KB.
      "state": "A String", # Output only. State of the workflow deployment.
      "stateError": { # Describes an error related to the current state of the workflow. # Output only. Error regarding the state of the workflow. For example, this field will have error details if the execution data is unavailable due to revoked KMS key permissions.
        "details": "A String", # Provides specifics about the error.
        "type": "A String", # The type of this state error.
      },
      "updateTime": "A String", # Output only. The timestamp for when the workflow was last updated. This is a workflow-wide field and is not tied to a specific revision.
      "userEnvVars": { # Optional. User-defined environment variables associated with this workflow revision. This map has a maximum length of 20. Each string can take up to 4KiB. Keys cannot be empty strings and cannot start with "GOOGLE" or "WORKFLOWS".
        "a_key": "A String",
      },
    },
  ],
}
listRevisions_next()
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.
        
list_next()
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(name, body=None, updateMask=None, x__xgafv=None)
Updates an existing workflow. Running this method has no impact on already running executions of the workflow. A new revision of the workflow might be created as a result of a successful update operation. In that case, the new revision is used in new workflow executions.

Args:
  name: string, The resource name of the workflow. Format: projects/{project}/locations/{location}/workflows/{workflow}. This is a workflow-wide field and is not tied to a specific revision. (required)
  body: object, The request body.
    The object takes the form of:

{ # Workflow program to be executed by Workflows.
  "allKmsKeys": [ # Output only. A list of all KMS crypto keys used to encrypt or decrypt the data associated with the workflow.
    "A String",
  ],
  "allKmsKeysVersions": [ # Output only. A list of all KMS crypto key versions used to encrypt or decrypt the data associated with the workflow.
    "A String",
  ],
  "callLogLevel": "A String", # Optional. Describes the level of platform logging to apply to calls and call responses during executions of this workflow. If both the workflow and the execution specify a logging level, the execution level takes precedence.
  "createTime": "A String", # Output only. The timestamp for when the workflow was created. This is a workflow-wide field and is not tied to a specific revision.
  "cryptoKeyName": "A String", # Optional. The resource name of a KMS crypto key used to encrypt or decrypt the data associated with the workflow. Format: projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey} Using `-` as a wildcard for the `{project}` or not providing one at all will infer the project from the account. If not provided, data associated with the workflow will not be CMEK-encrypted.
  "cryptoKeyVersion": "A String", # Output only. The resource name of a KMS crypto key version used to encrypt or decrypt the data associated with the workflow. Format: projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey}/cryptoKeyVersions/{cryptoKeyVersion}
  "description": "A String", # Description of the workflow provided by the user. Must be at most 1000 Unicode characters long. This is a workflow-wide field and is not tied to a specific revision.
  "executionHistoryLevel": "A String", # Optional. Describes the level of the execution history feature to apply to this workflow.
  "labels": { # Labels associated with this workflow. Labels can contain at most 64 entries. Keys and values can be no longer than 63 characters and can only contain lowercase letters, numeric characters, underscores, and dashes. Label keys must start with a letter. International characters are allowed. This is a workflow-wide field and is not tied to a specific revision.
    "a_key": "A String",
  },
  "name": "A String", # The resource name of the workflow. Format: projects/{project}/locations/{location}/workflows/{workflow}. This is a workflow-wide field and is not tied to a specific revision.
  "revisionCreateTime": "A String", # Output only. The timestamp for the latest revision of the workflow's creation.
  "revisionId": "A String", # Output only. The revision of the workflow. A new revision of a workflow is created as a result of updating the following properties of a workflow: - Service account - Workflow code to be executed The format is "000001-a4d", where the first six characters define the zero-padded revision ordinal number. They are followed by a hyphen and three hexadecimal random characters.
  "serviceAccount": "A String", # The service account associated with the latest workflow version. This service account represents the identity of the workflow and determines what permissions the workflow has. Format: projects/{project}/serviceAccounts/{account} or {account} Using `-` as a wildcard for the `{project}` or not providing one at all will infer the project from the account. The `{account}` value can be the `email` address or the `unique_id` of the service account. If not provided, workflow will use the project's default service account. Modifying this field for an existing workflow results in a new workflow revision.
  "sourceContents": "A String", # Workflow code to be executed. The size limit is 128KB.
  "state": "A String", # Output only. State of the workflow deployment.
  "stateError": { # Describes an error related to the current state of the workflow. # Output only. Error regarding the state of the workflow. For example, this field will have error details if the execution data is unavailable due to revoked KMS key permissions.
    "details": "A String", # Provides specifics about the error.
    "type": "A String", # The type of this state error.
  },
  "updateTime": "A String", # Output only. The timestamp for when the workflow was last updated. This is a workflow-wide field and is not tied to a specific revision.
  "userEnvVars": { # Optional. User-defined environment variables associated with this workflow revision. This map has a maximum length of 20. Each string can take up to 4KiB. Keys cannot be empty strings and cannot start with "GOOGLE" or "WORKFLOWS".
    "a_key": "A String",
  },
}

  updateMask: string, List of fields to be updated. If not present, the entire workflow will be updated.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        "a_key": "", # Properties of the object. Contains field @type with type URL.
      },
    ],
    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  "response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
}