google.cloud.dataform.v1beta1.dataform.proto Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of proto-google-cloud-dataform-v1beta1 Show documentation
Show all versions of proto-google-cloud-dataform-v1beta1 Show documentation
Proto library for google-cloud-dataform
// Copyright 2024 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.dataform.v1beta1;
import "google/api/annotations.proto";
import "google/api/client.proto";
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/protobuf/empty.proto";
import "google/protobuf/field_mask.proto";
import "google/protobuf/timestamp.proto";
import "google/rpc/status.proto";
import "google/type/interval.proto";
option csharp_namespace = "Google.Cloud.Dataform.V1Beta1";
option go_package = "cloud.google.com/go/dataform/apiv1beta1/dataformpb;dataformpb";
option java_multiple_files = true;
option java_outer_classname = "DataformProto";
option java_package = "com.google.cloud.dataform.v1beta1";
option php_namespace = "Google\\Cloud\\Dataform\\V1beta1";
option ruby_package = "Google::Cloud::Dataform::V1beta1";
option (google.api.resource_definition) = {
type: "secretmanager.googleapis.com/SecretVersion"
pattern: "projects/{project}/secrets/{secret}/versions/{version}"
};
// Dataform is a service to develop, create, document, test, and update curated
// tables in BigQuery.
service Dataform {
option (google.api.default_host) = "dataform.googleapis.com";
option (google.api.oauth_scopes) =
"https://www.googleapis.com/auth/cloud-platform";
// Lists Repositories in a given project and location.
rpc ListRepositories(ListRepositoriesRequest)
returns (ListRepositoriesResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*/locations/*}/repositories"
};
option (google.api.method_signature) = "parent";
}
// Fetches a single Repository.
rpc GetRepository(GetRepositoryRequest) returns (Repository) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/locations/*/repositories/*}"
};
option (google.api.method_signature) = "name";
}
// Creates a new Repository in a given project and location.
rpc CreateRepository(CreateRepositoryRequest) returns (Repository) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*/locations/*}/repositories"
body: "repository"
};
option (google.api.method_signature) = "parent,repository,repository_id";
}
// Updates a single Repository.
rpc UpdateRepository(UpdateRepositoryRequest) returns (Repository) {
option (google.api.http) = {
patch: "/v1beta1/{repository.name=projects/*/locations/*/repositories/*}"
body: "repository"
};
option (google.api.method_signature) = "repository,update_mask";
}
// Deletes a single Repository.
rpc DeleteRepository(DeleteRepositoryRequest)
returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/v1beta1/{name=projects/*/locations/*/repositories/*}"
};
option (google.api.method_signature) = "name";
}
// Applies a Git commit to a Repository. The Repository must not have a value
// for `git_remote_settings.url`.
rpc CommitRepositoryChanges(CommitRepositoryChangesRequest)
returns (google.protobuf.Empty) {
option (google.api.http) = {
post: "/v1beta1/{name=projects/*/locations/*/repositories/*}:commit"
body: "*"
};
}
// Returns the contents of a file (inside a Repository). The Repository
// must not have a value for `git_remote_settings.url`.
rpc ReadRepositoryFile(ReadRepositoryFileRequest)
returns (ReadRepositoryFileResponse) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/locations/*/repositories/*}:readFile"
};
}
// Returns the contents of a given Repository directory. The Repository must
// not have a value for `git_remote_settings.url`.
rpc QueryRepositoryDirectoryContents(QueryRepositoryDirectoryContentsRequest)
returns (QueryRepositoryDirectoryContentsResponse) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/locations/*/repositories/*}:queryDirectoryContents"
};
}
// Fetches a Repository's history of commits. The Repository must not have a
// value for `git_remote_settings.url`.
rpc FetchRepositoryHistory(FetchRepositoryHistoryRequest)
returns (FetchRepositoryHistoryResponse) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/locations/*/repositories/*}:fetchHistory"
};
}
// Computes a Repository's Git access token status.
rpc ComputeRepositoryAccessTokenStatus(
ComputeRepositoryAccessTokenStatusRequest)
returns (ComputeRepositoryAccessTokenStatusResponse) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/locations/*/repositories/*}:computeAccessTokenStatus"
};
}
// Fetches a Repository's remote branches.
rpc FetchRemoteBranches(FetchRemoteBranchesRequest)
returns (FetchRemoteBranchesResponse) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/locations/*/repositories/*}:fetchRemoteBranches"
};
}
// Lists Workspaces in a given Repository.
rpc ListWorkspaces(ListWorkspacesRequest) returns (ListWorkspacesResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*/locations/*/repositories/*}/workspaces"
};
option (google.api.method_signature) = "parent";
}
// Fetches a single Workspace.
rpc GetWorkspace(GetWorkspaceRequest) returns (Workspace) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/locations/*/repositories/*/workspaces/*}"
};
option (google.api.method_signature) = "name";
}
// Creates a new Workspace in a given Repository.
rpc CreateWorkspace(CreateWorkspaceRequest) returns (Workspace) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*/locations/*/repositories/*}/workspaces"
body: "workspace"
};
option (google.api.method_signature) = "parent,workspace,workspace_id";
}
// Deletes a single Workspace.
rpc DeleteWorkspace(DeleteWorkspaceRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/v1beta1/{name=projects/*/locations/*/repositories/*/workspaces/*}"
};
option (google.api.method_signature) = "name";
}
// Installs dependency NPM packages (inside a Workspace).
rpc InstallNpmPackages(InstallNpmPackagesRequest)
returns (InstallNpmPackagesResponse) {
option (google.api.http) = {
post: "/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:installNpmPackages"
body: "*"
};
}
// Pulls Git commits from the Repository's remote into a Workspace.
rpc PullGitCommits(PullGitCommitsRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
post: "/v1beta1/{name=projects/*/locations/*/repositories/*/workspaces/*}:pull"
body: "*"
};
}
// Pushes Git commits from a Workspace to the Repository's remote.
rpc PushGitCommits(PushGitCommitsRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
post: "/v1beta1/{name=projects/*/locations/*/repositories/*/workspaces/*}:push"
body: "*"
};
}
// Fetches Git statuses for the files in a Workspace.
rpc FetchFileGitStatuses(FetchFileGitStatusesRequest)
returns (FetchFileGitStatusesResponse) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/locations/*/repositories/*/workspaces/*}:fetchFileGitStatuses"
};
}
// Fetches Git ahead/behind against a remote branch.
rpc FetchGitAheadBehind(FetchGitAheadBehindRequest)
returns (FetchGitAheadBehindResponse) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/locations/*/repositories/*/workspaces/*}:fetchGitAheadBehind"
};
}
// Applies a Git commit for uncommitted files in a Workspace.
rpc CommitWorkspaceChanges(CommitWorkspaceChangesRequest)
returns (google.protobuf.Empty) {
option (google.api.http) = {
post: "/v1beta1/{name=projects/*/locations/*/repositories/*/workspaces/*}:commit"
body: "*"
};
}
// Performs a Git reset for uncommitted files in a Workspace.
rpc ResetWorkspaceChanges(ResetWorkspaceChangesRequest)
returns (google.protobuf.Empty) {
option (google.api.http) = {
post: "/v1beta1/{name=projects/*/locations/*/repositories/*/workspaces/*}:reset"
body: "*"
};
}
// Fetches Git diff for an uncommitted file in a Workspace.
rpc FetchFileDiff(FetchFileDiffRequest) returns (FetchFileDiffResponse) {
option (google.api.http) = {
get: "/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:fetchFileDiff"
};
}
// Returns the contents of a given Workspace directory.
rpc QueryDirectoryContents(QueryDirectoryContentsRequest)
returns (QueryDirectoryContentsResponse) {
option (google.api.http) = {
get: "/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:queryDirectoryContents"
};
}
// Creates a directory inside a Workspace.
rpc MakeDirectory(MakeDirectoryRequest) returns (MakeDirectoryResponse) {
option (google.api.http) = {
post: "/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:makeDirectory"
body: "*"
};
}
// Deletes a directory (inside a Workspace) and all of its contents.
rpc RemoveDirectory(RemoveDirectoryRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
post: "/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:removeDirectory"
body: "*"
};
}
// Moves a directory (inside a Workspace), and all of its contents, to a new
// location.
rpc MoveDirectory(MoveDirectoryRequest) returns (MoveDirectoryResponse) {
option (google.api.http) = {
post: "/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:moveDirectory"
body: "*"
};
}
// Returns the contents of a file (inside a Workspace).
rpc ReadFile(ReadFileRequest) returns (ReadFileResponse) {
option (google.api.http) = {
get: "/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:readFile"
};
}
// Deletes a file (inside a Workspace).
rpc RemoveFile(RemoveFileRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
post: "/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:removeFile"
body: "*"
};
}
// Moves a file (inside a Workspace) to a new location.
rpc MoveFile(MoveFileRequest) returns (MoveFileResponse) {
option (google.api.http) = {
post: "/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:moveFile"
body: "*"
};
}
// Writes to a file (inside a Workspace).
rpc WriteFile(WriteFileRequest) returns (WriteFileResponse) {
option (google.api.http) = {
post: "/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:writeFile"
body: "*"
};
}
// Lists ReleaseConfigs in a given Repository.
rpc ListReleaseConfigs(ListReleaseConfigsRequest)
returns (ListReleaseConfigsResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*/locations/*/repositories/*}/releaseConfigs"
};
option (google.api.method_signature) = "parent";
}
// Fetches a single ReleaseConfig.
rpc GetReleaseConfig(GetReleaseConfigRequest) returns (ReleaseConfig) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/locations/*/repositories/*/releaseConfigs/*}"
};
option (google.api.method_signature) = "name";
}
// Creates a new ReleaseConfig in a given Repository.
rpc CreateReleaseConfig(CreateReleaseConfigRequest) returns (ReleaseConfig) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*/locations/*/repositories/*}/releaseConfigs"
body: "release_config"
};
option (google.api.method_signature) =
"parent,release_config,release_config_id";
}
// Updates a single ReleaseConfig.
rpc UpdateReleaseConfig(UpdateReleaseConfigRequest) returns (ReleaseConfig) {
option (google.api.http) = {
patch: "/v1beta1/{release_config.name=projects/*/locations/*/repositories/*/releaseConfigs/*}"
body: "release_config"
};
option (google.api.method_signature) = "release_config,update_mask";
}
// Deletes a single ReleaseConfig.
rpc DeleteReleaseConfig(DeleteReleaseConfigRequest)
returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/v1beta1/{name=projects/*/locations/*/repositories/*/releaseConfigs/*}"
};
option (google.api.method_signature) = "name";
}
// Lists CompilationResults in a given Repository.
rpc ListCompilationResults(ListCompilationResultsRequest)
returns (ListCompilationResultsResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*/locations/*/repositories/*}/compilationResults"
};
option (google.api.method_signature) = "parent";
}
// Fetches a single CompilationResult.
rpc GetCompilationResult(GetCompilationResultRequest)
returns (CompilationResult) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/locations/*/repositories/*/compilationResults/*}"
};
option (google.api.method_signature) = "name";
}
// Creates a new CompilationResult in a given project and location.
rpc CreateCompilationResult(CreateCompilationResultRequest)
returns (CompilationResult) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*/locations/*/repositories/*}/compilationResults"
body: "compilation_result"
};
option (google.api.method_signature) = "parent,compilation_result";
}
// Returns CompilationResultActions in a given CompilationResult.
rpc QueryCompilationResultActions(QueryCompilationResultActionsRequest)
returns (QueryCompilationResultActionsResponse) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/locations/*/repositories/*/compilationResults/*}:query"
};
}
// Lists WorkflowConfigs in a given Repository.
rpc ListWorkflowConfigs(ListWorkflowConfigsRequest)
returns (ListWorkflowConfigsResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*/locations/*/repositories/*}/workflowConfigs"
};
option (google.api.method_signature) = "parent";
}
// Fetches a single WorkflowConfig.
rpc GetWorkflowConfig(GetWorkflowConfigRequest) returns (WorkflowConfig) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/locations/*/repositories/*/workflowConfigs/*}"
};
option (google.api.method_signature) = "name";
}
// Creates a new WorkflowConfig in a given Repository.
rpc CreateWorkflowConfig(CreateWorkflowConfigRequest)
returns (WorkflowConfig) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*/locations/*/repositories/*}/workflowConfigs"
body: "workflow_config"
};
option (google.api.method_signature) =
"parent,workflow_config,workflow_config_id";
}
// Updates a single WorkflowConfig.
rpc UpdateWorkflowConfig(UpdateWorkflowConfigRequest)
returns (WorkflowConfig) {
option (google.api.http) = {
patch: "/v1beta1/{workflow_config.name=projects/*/locations/*/repositories/*/workflowConfigs/*}"
body: "workflow_config"
};
option (google.api.method_signature) = "workflow_config,update_mask";
}
// Deletes a single WorkflowConfig.
rpc DeleteWorkflowConfig(DeleteWorkflowConfigRequest)
returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/v1beta1/{name=projects/*/locations/*/repositories/*/workflowConfigs/*}"
};
option (google.api.method_signature) = "name";
}
// Lists WorkflowInvocations in a given Repository.
rpc ListWorkflowInvocations(ListWorkflowInvocationsRequest)
returns (ListWorkflowInvocationsResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*/locations/*/repositories/*}/workflowInvocations"
};
option (google.api.method_signature) = "parent";
}
// Fetches a single WorkflowInvocation.
rpc GetWorkflowInvocation(GetWorkflowInvocationRequest)
returns (WorkflowInvocation) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/locations/*/repositories/*/workflowInvocations/*}"
};
option (google.api.method_signature) = "name";
}
// Creates a new WorkflowInvocation in a given Repository.
rpc CreateWorkflowInvocation(CreateWorkflowInvocationRequest)
returns (WorkflowInvocation) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*/locations/*/repositories/*}/workflowInvocations"
body: "workflow_invocation"
};
option (google.api.method_signature) = "parent,workflow_invocation";
}
// Deletes a single WorkflowInvocation.
rpc DeleteWorkflowInvocation(DeleteWorkflowInvocationRequest)
returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/v1beta1/{name=projects/*/locations/*/repositories/*/workflowInvocations/*}"
};
option (google.api.method_signature) = "name";
}
// Requests cancellation of a running WorkflowInvocation.
rpc CancelWorkflowInvocation(CancelWorkflowInvocationRequest)
returns (google.protobuf.Empty) {
option (google.api.http) = {
post: "/v1beta1/{name=projects/*/locations/*/repositories/*/workflowInvocations/*}:cancel"
body: "*"
};
}
// Returns WorkflowInvocationActions in a given WorkflowInvocation.
rpc QueryWorkflowInvocationActions(QueryWorkflowInvocationActionsRequest)
returns (QueryWorkflowInvocationActionsResponse) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/locations/*/repositories/*/workflowInvocations/*}:query"
};
}
}
// Represents a Dataform Git repository.
message Repository {
option (google.api.resource) = {
type: "dataform.googleapis.com/Repository"
pattern: "projects/{project}/locations/{location}/repositories/{repository}"
};
// Controls Git remote configuration for a repository.
message GitRemoteSettings {
// Configures fields for performing SSH authentication.
message SshAuthenticationConfig {
// Required. The name of the Secret Manager secret version to use as a
// ssh private key for Git operations.
// Must be in the format `projects/*/secrets/*/versions/*`.
string user_private_key_secret_version = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "secretmanager.googleapis.com/SecretVersion"
}
];
// Required. Content of a public SSH key to verify an identity of a remote
// Git host.
string host_public_key = 2 [(google.api.field_behavior) = REQUIRED];
}
enum TokenStatus {
// Default value. This value is unused.
TOKEN_STATUS_UNSPECIFIED = 0;
// The token could not be found in Secret Manager (or the Dataform
// Service Account did not have permission to access it).
NOT_FOUND = 1;
// The token could not be used to authenticate against the Git remote.
INVALID = 2;
// The token was used successfully to authenticate against the Git remote.
VALID = 3;
}
// Required. The Git remote's URL.
string url = 1 [(google.api.field_behavior) = REQUIRED];
// Required. The Git remote's default branch name.
string default_branch = 2 [(google.api.field_behavior) = REQUIRED];
// Optional. The name of the Secret Manager secret version to use as an
// authentication token for Git operations. Must be in the format
// `projects/*/secrets/*/versions/*`.
string authentication_token_secret_version = 3 [
(google.api.field_behavior) = OPTIONAL,
(google.api.resource_reference) = {
type: "secretmanager.googleapis.com/SecretVersion"
}
];
// Optional. Authentication fields for remote uris using SSH protocol.
SshAuthenticationConfig ssh_authentication_config = 5
[(google.api.field_behavior) = OPTIONAL];
// Output only. Deprecated: The field does not contain any token status
// information. Instead use
// https://cloud.google.com/dataform/reference/rest/v1beta1/projects.locations.repositories/computeAccessTokenStatus
TokenStatus token_status = 4
[deprecated = true, (google.api.field_behavior) = OUTPUT_ONLY];
}
// Configures workspace compilation overrides for a repository.
// Primarily used by the UI (`console.cloud.google.com`).
// `schema_suffix` and `table_prefix` can have a special expression -
// `${workspaceName}`, which refers to the workspace name from which the
// compilation results will be created. API callers are expected to resolve
// the expression in these overrides and provide them explicitly in
// `code_compilation_config`
// (https://cloud.google.com/dataform/reference/rest/v1beta1/projects.locations.repositories.compilationResults#codecompilationconfig)
// when creating workspace-scoped compilation results.
message WorkspaceCompilationOverrides {
// Optional. The default database (Google Cloud project ID).
string default_database = 1 [(google.api.field_behavior) = OPTIONAL];
// Optional. The suffix that should be appended to all schema (BigQuery
// dataset ID) names.
string schema_suffix = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. The prefix that should be prepended to all table names.
string table_prefix = 3 [(google.api.field_behavior) = OPTIONAL];
}
// Output only. The repository's name.
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Optional. The repository's user-friendly name.
string display_name = 8 [(google.api.field_behavior) = OPTIONAL];
// Optional. If set, configures this repository to be linked to a Git remote.
GitRemoteSettings git_remote_settings = 2
[(google.api.field_behavior) = OPTIONAL];
// Optional. The name of the Secret Manager secret version to be used to
// interpolate variables into the .npmrc file for package installation
// operations. Must be in the format `projects/*/secrets/*/versions/*`. The
// file itself must be in a JSON format.
string npmrc_environment_variables_secret_version = 3 [
(google.api.field_behavior) = OPTIONAL,
(google.api.resource_reference) = {
type: "secretmanager.googleapis.com/SecretVersion"
}
];
// Optional. If set, fields of `workspace_compilation_overrides` override the
// default compilation settings that are specified in dataform.json when
// creating workspace-scoped compilation results. See documentation for
// `WorkspaceCompilationOverrides` for more information.
WorkspaceCompilationOverrides workspace_compilation_overrides = 4
[(google.api.field_behavior) = OPTIONAL];
// Optional. Repository user labels.
map labels = 5 [(google.api.field_behavior) = OPTIONAL];
// Optional. Input only. If set to true, the authenticated user will be
// granted the roles/dataform.admin role on the created repository. To modify
// access to the created repository later apply setIamPolicy from
// https://cloud.google.com/dataform/reference/rest#rest-resource:-v1beta1.projects.locations.repositories
bool set_authenticated_user_admin = 9 [
(google.api.field_behavior) = OPTIONAL,
(google.api.field_behavior) = INPUT_ONLY
];
// Optional. The service account to run workflow invocations under.
string service_account = 10 [(google.api.field_behavior) = OPTIONAL];
}
// `ListRepositories` request message.
message ListRepositoriesRequest {
// Required. The location in which to list repositories. Must be in the format
// `projects/*/locations/*`.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "locations.googleapis.com/Location"
}
];
// Optional. Maximum number of repositories to return. The server may return
// fewer items than requested. If unspecified, the server will pick an
// appropriate default.
int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. Page token received from a previous `ListRepositories` call.
// Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to `ListRepositories`
// must match the call that provided the page token.
string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
// Optional. This field only supports ordering by `name`. If unspecified, the
// server will choose the ordering. If specified, the default order is
// ascending for the `name` field.
string order_by = 4 [(google.api.field_behavior) = OPTIONAL];
// Optional. Filter for the returned list.
string filter = 5 [(google.api.field_behavior) = OPTIONAL];
}
// `ListRepositories` response message.
message ListRepositoriesResponse {
// List of repositories.
repeated Repository repositories = 1;
// A token which can be sent as `page_token` to retrieve the next page.
// If this field is omitted, there are no subsequent pages.
string next_page_token = 2;
// Locations which could not be reached.
repeated string unreachable = 3;
}
// `GetRepository` request message.
message GetRepositoryRequest {
// Required. The repository's name.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Repository"
}
];
}
// `CreateRepository` request message.
message CreateRepositoryRequest {
// Required. The location in which to create the repository. Must be in the
// format `projects/*/locations/*`.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "locations.googleapis.com/Location"
}
];
// Required. The repository to create.
Repository repository = 2 [(google.api.field_behavior) = REQUIRED];
// Required. The ID to use for the repository, which will become the final
// component of the repository's resource name.
string repository_id = 3 [(google.api.field_behavior) = REQUIRED];
}
// `UpdateRepository` request message.
message UpdateRepositoryRequest {
// Optional. Specifies the fields to be updated in the repository. If left
// unset, all fields will be updated.
google.protobuf.FieldMask update_mask = 1
[(google.api.field_behavior) = OPTIONAL];
// Required. The repository to update.
Repository repository = 2 [(google.api.field_behavior) = REQUIRED];
}
// `DeleteRepository` request message.
message DeleteRepositoryRequest {
// Required. The repository's name.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Repository"
}
];
// If set to true, any child resources of this repository will also be
// deleted. (Otherwise, the request will only succeed if the repository has no
// child resources.)
bool force = 2;
}
// `CommitRepositoryChanges` request message.
message CommitRepositoryChangesRequest {
// Represents a single file operation to the repository.
message FileOperation {
// Represents the write file operation (for files added or modified).
message WriteFile {
// The file's contents.
bytes contents = 1;
}
// Represents the delete file operation.
message DeleteFile {}
oneof operation {
// Represents the write operation.
WriteFile write_file = 1;
// Represents the delete operation.
DeleteFile delete_file = 2;
}
}
// Required. The repository's name.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Repository"
}
];
// Required. The changes to commit to the repository.
CommitMetadata commit_metadata = 2 [(google.api.field_behavior) = REQUIRED];
// Optional. The commit SHA which must be the repository's current HEAD before
// applying this commit; otherwise this request will fail. If unset, no
// validation on the current HEAD commit SHA is performed.
string required_head_commit_sha = 4 [(google.api.field_behavior) = OPTIONAL];
// A map to the path of the file to the operation. The path is the full file
// path including filename, from repository root.
map file_operations = 3;
}
// `ReadRepositoryFile` request message.
message ReadRepositoryFileRequest {
// Required. The repository's name.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Repository"
}
];
// Optional. The commit SHA for the commit to read from. If unset, the file
// will be read from HEAD.
string commit_sha = 2 [(google.api.field_behavior) = OPTIONAL];
// Required. Full file path to read including filename, from repository root.
string path = 3 [(google.api.field_behavior) = REQUIRED];
}
// `ReadRepositoryFile` response message.
message ReadRepositoryFileResponse {
// The file's contents.
bytes contents = 1;
}
// `QueryRepositoryDirectoryContents` request message.
message QueryRepositoryDirectoryContentsRequest {
// Required. The repository's name.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Repository"
}
];
// Optional. The Commit SHA for the commit to query from. If unset, the
// directory will be queried from HEAD.
string commit_sha = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. The directory's full path including directory name, relative to
// root. If left unset, the root is used.
string path = 3 [(google.api.field_behavior) = OPTIONAL];
// Optional. Maximum number of paths to return. The server may return fewer
// items than requested. If unspecified, the server will pick an appropriate
// default.
int32 page_size = 4 [(google.api.field_behavior) = OPTIONAL];
// Optional. Page token received from a previous
// `QueryRepositoryDirectoryContents` call. Provide this to retrieve the
// subsequent page.
//
// When paginating, all other parameters provided to
// `QueryRepositoryDirectoryContents` must match the call that provided the
// page token.
string page_token = 5 [(google.api.field_behavior) = OPTIONAL];
}
// `QueryRepositoryDirectoryContents` response message.
message QueryRepositoryDirectoryContentsResponse {
// List of entries in the directory.
repeated DirectoryEntry directory_entries = 1;
// A token, which can be sent as `page_token` to retrieve the next page.
// If this field is omitted, there are no subsequent pages.
string next_page_token = 2;
}
// `FetchRepositoryHistory` request message.
message FetchRepositoryHistoryRequest {
// Required. The repository's name.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Repository"
}
];
// Optional. Maximum number of commits to return. The server may return fewer
// items than requested. If unspecified, the server will pick an appropriate
// default.
int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. Page token received from a previous `FetchRepositoryHistory`
// call. Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to `FetchRepositoryHistory`
// must match the call that provided the page token.
string page_token = 5 [(google.api.field_behavior) = OPTIONAL];
}
// `FetchRepositoryHistory` response message.
message FetchRepositoryHistoryResponse {
// A list of commit logs, ordered by 'git log' default order.
repeated CommitLogEntry commits = 1;
// A token, which can be sent as `page_token` to retrieve the next page.
// If this field is omitted, there are no subsequent pages.
string next_page_token = 2;
}
// Represents a single commit log.
message CommitLogEntry {
// Commit timestamp.
google.protobuf.Timestamp commit_time = 1;
// The commit SHA for this commit log entry.
string commit_sha = 2;
// The commit author for this commit log entry.
CommitAuthor author = 3;
// The commit message for this commit log entry.
string commit_message = 4;
}
// Represents a Dataform Git commit.
message CommitMetadata {
// Required. The commit's author.
CommitAuthor author = 1 [(google.api.field_behavior) = REQUIRED];
// Optional. The commit's message.
string commit_message = 2 [(google.api.field_behavior) = OPTIONAL];
}
// `ComputeRepositoryAccessTokenStatus` request message.
message ComputeRepositoryAccessTokenStatusRequest {
// Required. The repository's name.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Repository"
}
];
}
// `ComputeRepositoryAccessTokenStatus` response message.
message ComputeRepositoryAccessTokenStatusResponse {
// Indicates the status of a Git authentication token.
enum TokenStatus {
// Default value. This value is unused.
TOKEN_STATUS_UNSPECIFIED = 0;
// The token could not be found in Secret Manager (or the Dataform
// Service Account did not have permission to access it).
NOT_FOUND = 1;
// The token could not be used to authenticate against the Git remote.
INVALID = 2;
// The token was used successfully to authenticate against the Git remote.
VALID = 3;
}
// Indicates the status of the Git access token.
TokenStatus token_status = 1;
}
// `FetchRemoteBranches` request message.
message FetchRemoteBranchesRequest {
// Required. The repository's name.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Repository"
}
];
}
// `FetchRemoteBranches` response message.
message FetchRemoteBranchesResponse {
// The remote repository's branch names.
repeated string branches = 1;
}
// Represents a Dataform Git workspace.
message Workspace {
option (google.api.resource) = {
type: "dataform.googleapis.com/Workspace"
pattern: "projects/{project}/locations/{location}/repositories/{repository}/workspaces/{workspace}"
};
// Output only. The workspace's name.
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
}
// `ListWorkspaces` request message.
message ListWorkspacesRequest {
// Required. The repository in which to list workspaces. Must be in the
// format `projects/*/locations/*/repositories/*`.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Repository"
}
];
// Optional. Maximum number of workspaces to return. The server may return
// fewer items than requested. If unspecified, the server will pick an
// appropriate default.
int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. Page token received from a previous `ListWorkspaces` call.
// Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to `ListWorkspaces`
// must match the call that provided the page token.
string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
// Optional. This field only supports ordering by `name`. If unspecified, the
// server will choose the ordering. If specified, the default order is
// ascending for the `name` field.
string order_by = 4 [(google.api.field_behavior) = OPTIONAL];
// Optional. Filter for the returned list.
string filter = 5 [(google.api.field_behavior) = OPTIONAL];
}
// `ListWorkspaces` response message.
message ListWorkspacesResponse {
// List of workspaces.
repeated Workspace workspaces = 1;
// A token, which can be sent as `page_token` to retrieve the next page.
// If this field is omitted, there are no subsequent pages.
string next_page_token = 2;
// Locations which could not be reached.
repeated string unreachable = 3;
}
// `GetWorkspace` request message.
message GetWorkspaceRequest {
// Required. The workspace's name.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Workspace"
}
];
}
// `CreateWorkspace` request message.
message CreateWorkspaceRequest {
// Required. The repository in which to create the workspace. Must be in the
// format `projects/*/locations/*/repositories/*`.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Repository"
}
];
// Required. The workspace to create.
Workspace workspace = 2 [(google.api.field_behavior) = REQUIRED];
// Required. The ID to use for the workspace, which will become the final
// component of the workspace's resource name.
string workspace_id = 3 [(google.api.field_behavior) = REQUIRED];
}
// `DeleteWorkspace` request message.
message DeleteWorkspaceRequest {
// Required. The workspace resource's name.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Workspace"
}
];
}
// Represents the author of a Git commit.
message CommitAuthor {
// Required. The commit author's name.
string name = 1 [(google.api.field_behavior) = REQUIRED];
// Required. The commit author's email address.
string email_address = 2 [(google.api.field_behavior) = REQUIRED];
}
// `PullGitCommits` request message.
message PullGitCommitsRequest {
// Required. The workspace's name.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Workspace"
}
];
// Optional. The name of the branch in the Git remote from which to pull
// commits. If left unset, the repository's default branch name will be used.
string remote_branch = 2 [(google.api.field_behavior) = OPTIONAL];
// Required. The author of any merge commit which may be created as a result
// of merging fetched Git commits into this workspace.
CommitAuthor author = 3 [(google.api.field_behavior) = REQUIRED];
}
// `PushGitCommits` request message.
message PushGitCommitsRequest {
// Required. The workspace's name.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Workspace"
}
];
// Optional. The name of the branch in the Git remote to which commits should
// be pushed. If left unset, the repository's default branch name will be
// used.
string remote_branch = 2 [(google.api.field_behavior) = OPTIONAL];
}
// `FetchFileGitStatuses` request message.
message FetchFileGitStatusesRequest {
// Required. The workspace's name.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Workspace"
}
];
}
// `FetchFileGitStatuses` response message.
message FetchFileGitStatusesResponse {
// Represents the Git state of a file with uncommitted changes.
message UncommittedFileChange {
// Indicates the status of an uncommitted file change.
enum State {
// Default value. This value is unused.
STATE_UNSPECIFIED = 0;
// The file has been newly added.
ADDED = 1;
// The file has been deleted.
DELETED = 2;
// The file has been modified.
MODIFIED = 3;
// The file contains merge conflicts.
HAS_CONFLICTS = 4;
}
// The file's full path including filename, relative to the workspace root.
string path = 1;
// Indicates the status of the file.
State state = 2;
}
// A list of all files which have uncommitted Git changes. There will only be
// a single entry for any given file.
repeated UncommittedFileChange uncommitted_file_changes = 1;
}
// `FetchGitAheadBehind` request message.
message FetchGitAheadBehindRequest {
// Required. The workspace's name.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Workspace"
}
];
// Optional. The name of the branch in the Git remote against which this
// workspace should be compared. If left unset, the repository's default
// branch name will be used.
string remote_branch = 2 [(google.api.field_behavior) = OPTIONAL];
}
// `FetchGitAheadBehind` response message.
message FetchGitAheadBehindResponse {
// The number of commits in the remote branch that are not in the workspace.
int32 commits_ahead = 1;
// The number of commits in the workspace that are not in the remote branch.
int32 commits_behind = 2;
}
// `CommitWorkspaceChanges` request message.
message CommitWorkspaceChangesRequest {
// Required. The workspace's name.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Workspace"
}
];
// Required. The commit's author.
CommitAuthor author = 4 [(google.api.field_behavior) = REQUIRED];
// Optional. The commit's message.
string commit_message = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. Full file paths to commit including filename, rooted at workspace
// root. If left empty, all files will be committed.
repeated string paths = 3 [(google.api.field_behavior) = OPTIONAL];
}
// `ResetWorkspaceChanges` request message.
message ResetWorkspaceChangesRequest {
// Required. The workspace's name.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Workspace"
}
];
// Optional. Full file paths to reset back to their committed state including
// filename, rooted at workspace root. If left empty, all files will be reset.
repeated string paths = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. If set to true, untracked files will be deleted.
bool clean = 3 [(google.api.field_behavior) = OPTIONAL];
}
// `FetchFileDiff` request message.
message FetchFileDiffRequest {
// Required. The workspace's name.
string workspace = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Workspace"
}
];
// Required. The file's full path including filename, relative to the
// workspace root.
string path = 2 [(google.api.field_behavior) = REQUIRED];
}
// `FetchFileDiff` response message.
message FetchFileDiffResponse {
// The raw formatted Git diff for the file.
string formatted_diff = 1;
}
// `QueryDirectoryContents` request message.
message QueryDirectoryContentsRequest {
// Required. The workspace's name.
string workspace = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Workspace"
}
];
// Optional. The directory's full path including directory name, relative to
// the workspace root. If left unset, the workspace root is used.
string path = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. Maximum number of paths to return. The server may return fewer
// items than requested. If unspecified, the server will pick an appropriate
// default.
int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL];
// Optional. Page token received from a previous `QueryDirectoryContents`
// call. Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to
// `QueryDirectoryContents` must match the call that provided the page
// token.
string page_token = 4 [(google.api.field_behavior) = OPTIONAL];
}
// `QueryDirectoryContents` response message.
message QueryDirectoryContentsResponse {
// List of entries in the directory.
repeated DirectoryEntry directory_entries = 1;
// A token, which can be sent as `page_token` to retrieve the next page.
// If this field is omitted, there are no subsequent pages.
string next_page_token = 2;
}
// Represents a single entry in a directory.
message DirectoryEntry {
oneof entry {
// A file in the directory.
string file = 1;
// A child directory in the directory.
string directory = 2;
}
}
// `MakeDirectory` request message.
message MakeDirectoryRequest {
// Required. The workspace's name.
string workspace = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Workspace"
}
];
// Required. The directory's full path including directory name, relative to
// the workspace root.
string path = 2 [(google.api.field_behavior) = REQUIRED];
}
// `MakeDirectory` response message.
message MakeDirectoryResponse {}
// `RemoveDirectory` request message.
message RemoveDirectoryRequest {
// Required. The workspace's name.
string workspace = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Workspace"
}
];
// Required. The directory's full path including directory name, relative to
// the workspace root.
string path = 2 [(google.api.field_behavior) = REQUIRED];
}
// `MoveDirectory` request message.
message MoveDirectoryRequest {
// Required. The workspace's name.
string workspace = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Workspace"
}
];
// Required. The directory's full path including directory name, relative to
// the workspace root.
string path = 2 [(google.api.field_behavior) = REQUIRED];
// Required. The new path for the directory including directory name, rooted
// at workspace root.
string new_path = 3 [(google.api.field_behavior) = REQUIRED];
}
// `MoveDirectory` response message.
message MoveDirectoryResponse {}
// `ReadFile` request message.
message ReadFileRequest {
// Required. The workspace's name.
string workspace = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Workspace"
}
];
// Required. The file's full path including filename, relative to the
// workspace root.
string path = 2 [(google.api.field_behavior) = REQUIRED];
}
// `ReadFile` response message.
message ReadFileResponse {
// The file's contents.
bytes file_contents = 1;
}
// `RemoveFile` request message.
message RemoveFileRequest {
// Required. The workspace's name.
string workspace = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Workspace"
}
];
// Required. The file's full path including filename, relative to the
// workspace root.
string path = 2 [(google.api.field_behavior) = REQUIRED];
}
// `MoveFile` request message.
message MoveFileRequest {
// Required. The workspace's name.
string workspace = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Workspace"
}
];
// Required. The file's full path including filename, relative to the
// workspace root.
string path = 2 [(google.api.field_behavior) = REQUIRED];
// Required. The file's new path including filename, relative to the workspace
// root.
string new_path = 3 [(google.api.field_behavior) = REQUIRED];
}
// `MoveFile` response message.
message MoveFileResponse {}
// `WriteFile` request message.
message WriteFileRequest {
// Required. The workspace's name.
string workspace = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Workspace"
}
];
// Required. The file.
string path = 2 [(google.api.field_behavior) = REQUIRED];
// Required. The file's contents.
bytes contents = 3 [(google.api.field_behavior) = REQUIRED];
}
// `WriteFile` response message.
message WriteFileResponse {}
// `InstallNpmPackages` request message.
message InstallNpmPackagesRequest {
// Required. The workspace's name.
string workspace = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Workspace"
}
];
}
// `InstallNpmPackages` response message.
message InstallNpmPackagesResponse {}
// Represents a Dataform release configuration.
message ReleaseConfig {
option (google.api.resource) = {
type: "dataform.googleapis.com/ReleaseConfig"
pattern: "projects/{project}/locations/{location}/repositories/{repository}/releaseConfigs/{release_config}"
};
// A record of an attempt to create a compilation result for this release
// config.
message ScheduledReleaseRecord {
// The timestamp of this release attempt.
google.protobuf.Timestamp release_time = 1;
oneof result {
// The name of the created compilation result, if one was successfully
// created. Must be in the format
// `projects/*/locations/*/repositories/*/compilationResults/*`.
string compilation_result = 2 [(google.api.resource_reference) = {
type: "dataform.googleapis.com/CompilationResult"
}];
// The error status encountered upon this attempt to create the
// compilation result, if the attempt was unsuccessful.
google.rpc.Status error_status = 3;
}
}
// Output only. The release config's name.
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Required. Git commit/tag/branch name at which the repository should be
// compiled. Must exist in the remote repository. Examples:
// - a commit SHA: `12ade345`
// - a tag: `tag1`
// - a branch name: `branch1`
string git_commitish = 2 [(google.api.field_behavior) = REQUIRED];
// Optional. If set, fields of `code_compilation_config` override the default
// compilation settings that are specified in dataform.json.
CodeCompilationConfig code_compilation_config = 3
[(google.api.field_behavior) = OPTIONAL];
// Optional. Optional schedule (in cron format) for automatic creation of
// compilation results.
string cron_schedule = 4 [(google.api.field_behavior) = OPTIONAL];
// Optional. Specifies the time zone to be used when interpreting
// cron_schedule. Must be a time zone name from the time zone database
// (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). If left
// unspecified, the default is UTC.
string time_zone = 7 [(google.api.field_behavior) = OPTIONAL];
// Output only. Records of the 10 most recent scheduled release attempts,
// ordered in in descending order of `release_time`. Updated whenever
// automatic creation of a compilation result is triggered by cron_schedule.
repeated ScheduledReleaseRecord recent_scheduled_release_records = 5
[(google.api.field_behavior) = OUTPUT_ONLY];
// Optional. The name of the currently released compilation result for this
// release config. This value is updated when a compilation result is created
// from this release config, or when this resource is updated by API call
// (perhaps to roll back to an earlier release). The compilation result must
// have been created using this release config. Must be in the format
// `projects/*/locations/*/repositories/*/compilationResults/*`.
string release_compilation_result = 6 [
(google.api.field_behavior) = OPTIONAL,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/CompilationResult"
}
];
}
// `ListReleaseConfigs` request message.
message ListReleaseConfigsRequest {
// Required. The repository in which to list release configs. Must be in the
// format `projects/*/locations/*/repositories/*`.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Repository"
}
];
// Optional. Maximum number of release configs to return. The server may
// return fewer items than requested. If unspecified, the server will pick an
// appropriate default.
int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. Page token received from a previous `ListReleaseConfigs` call.
// Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to `ListReleaseConfigs`
// must match the call that provided the page token.
string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
}
// `ListReleaseConfigs` response message.
message ListReleaseConfigsResponse {
// List of release configs.
repeated ReleaseConfig release_configs = 1;
// A token, which can be sent as `page_token` to retrieve the next page.
// If this field is omitted, there are no subsequent pages.
string next_page_token = 2;
// Locations which could not be reached.
repeated string unreachable = 3;
}
// `GetReleaseConfig` request message.
message GetReleaseConfigRequest {
// Required. The release config's name.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/ReleaseConfig"
}
];
}
// `CreateReleaseConfig` request message.
message CreateReleaseConfigRequest {
// Required. The repository in which to create the release config. Must be in
// the format `projects/*/locations/*/repositories/*`.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Repository"
}
];
// Required. The release config to create.
ReleaseConfig release_config = 2 [(google.api.field_behavior) = REQUIRED];
// Required. The ID to use for the release config, which will become the final
// component of the release config's resource name.
string release_config_id = 3 [(google.api.field_behavior) = REQUIRED];
}
// `UpdateReleaseConfig` request message.
message UpdateReleaseConfigRequest {
// Optional. Specifies the fields to be updated in the release config. If left
// unset, all fields will be updated.
google.protobuf.FieldMask update_mask = 1
[(google.api.field_behavior) = OPTIONAL];
// Required. The release config to update.
ReleaseConfig release_config = 2 [(google.api.field_behavior) = REQUIRED];
}
// `DeleteReleaseConfig` request message.
message DeleteReleaseConfigRequest {
// Required. The release config's name.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/ReleaseConfig"
}
];
}
// Represents the result of compiling a Dataform project.
message CompilationResult {
option (google.api.resource) = {
type: "dataform.googleapis.com/CompilationResult"
pattern: "projects/{project}/locations/{location}/repositories/{repository}/compilationResults/{compilation_result}"
};
// An error encountered when attempting to compile a Dataform project.
message CompilationError {
// Output only. The error's top level message.
string message = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The error's full stack trace.
string stack = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The path of the file where this error occurred, if
// available, relative to the project root.
string path = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The identifier of the action where this error occurred, if
// available.
Target action_target = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
}
// Output only. The compilation result's name.
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
oneof source {
// Immutable. Git commit/tag/branch name at which the repository should be
// compiled. Must exist in the remote repository. Examples:
// - a commit SHA: `12ade345`
// - a tag: `tag1`
// - a branch name: `branch1`
string git_commitish = 2 [(google.api.field_behavior) = IMMUTABLE];
// Immutable. The name of the workspace to compile. Must be in the format
// `projects/*/locations/*/repositories/*/workspaces/*`.
string workspace = 3 [
(google.api.field_behavior) = IMMUTABLE,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Workspace"
}
];
// Immutable. The name of the release config to compile. The release
// config's 'current_compilation_result' field will be updated to this
// compilation result. Must be in the format
// `projects/*/locations/*/repositories/*/releaseConfigs/*`.
string release_config = 7 [
(google.api.field_behavior) = IMMUTABLE,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/ReleaseConfig"
}
];
}
// Immutable. If set, fields of `code_compilation_config` override the default
// compilation settings that are specified in dataform.json.
CodeCompilationConfig code_compilation_config = 4
[(google.api.field_behavior) = IMMUTABLE];
// Output only. The fully resolved Git commit SHA of the code that was
// compiled. Not set for compilation results whose source is a workspace.
string resolved_git_commit_sha = 8
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The version of `@dataform/core` that was used for compilation.
string dataform_core_version = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Errors encountered during project compilation.
repeated CompilationError compilation_errors = 6
[(google.api.field_behavior) = OUTPUT_ONLY];
}
// Configures various aspects of Dataform code compilation.
message CodeCompilationConfig {
// Optional. The default database (Google Cloud project ID).
string default_database = 1 [(google.api.field_behavior) = OPTIONAL];
// Optional. The default schema (BigQuery dataset ID).
string default_schema = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. The default BigQuery location to use. Defaults to "US".
// See the BigQuery docs for a full list of locations:
// https://cloud.google.com/bigquery/docs/locations.
string default_location = 8 [(google.api.field_behavior) = OPTIONAL];
// Optional. The default schema (BigQuery dataset ID) for assertions.
string assertion_schema = 3 [(google.api.field_behavior) = OPTIONAL];
// Optional. User-defined variables that are made available to project code
// during compilation.
map vars = 4 [(google.api.field_behavior) = OPTIONAL];
// Optional. The suffix that should be appended to all database (Google Cloud
// project ID) names.
string database_suffix = 5 [(google.api.field_behavior) = OPTIONAL];
// Optional. The suffix that should be appended to all schema (BigQuery
// dataset ID) names.
string schema_suffix = 6 [(google.api.field_behavior) = OPTIONAL];
// Optional. The prefix that should be prepended to all table names.
string table_prefix = 7 [(google.api.field_behavior) = OPTIONAL];
}
// `ListCompilationResults` request message.
message ListCompilationResultsRequest {
// Required. The repository in which to list compilation results. Must be in
// the format `projects/*/locations/*/repositories/*`.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Repository"
}
];
// Optional. Maximum number of compilation results to return. The server may
// return fewer items than requested. If unspecified, the server will pick an
// appropriate default.
int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. Page token received from a previous `ListCompilationResults`
// call. Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to `ListCompilationResults`
// must match the call that provided the page token.
string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
}
// `ListCompilationResults` response message.
message ListCompilationResultsResponse {
// List of compilation results.
repeated CompilationResult compilation_results = 1;
// A token, which can be sent as `page_token` to retrieve the next page.
// If this field is omitted, there are no subsequent pages.
string next_page_token = 2;
// Locations which could not be reached.
repeated string unreachable = 3;
}
// `GetCompilationResult` request message.
message GetCompilationResultRequest {
// Required. The compilation result's name.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/CompilationResult"
}
];
}
// `CreateCompilationResult` request message.
message CreateCompilationResultRequest {
// Required. The repository in which to create the compilation result. Must be
// in the format `projects/*/locations/*/repositories/*`.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Repository"
}
];
// Required. The compilation result to create.
CompilationResult compilation_result = 2
[(google.api.field_behavior) = REQUIRED];
}
// Represents an action identifier. If the action writes output, the output
// will be written to the referenced database object.
message Target {
// The action's database (Google Cloud project ID) .
string database = 1;
// The action's schema (BigQuery dataset ID), within `database`.
string schema = 2;
// The action's name, within `database` and `schema`.
string name = 3;
}
// Describes a relation and its columns.
message RelationDescriptor {
// Describes a column.
message ColumnDescriptor {
// The identifier for the column. Each entry in `path` represents one level
// of nesting.
repeated string path = 1;
// A textual description of the column.
string description = 2;
// A list of BigQuery policy tags that will be applied to the column.
repeated string bigquery_policy_tags = 3;
}
// A text description of the relation.
string description = 1;
// A list of descriptions of columns within the relation.
repeated ColumnDescriptor columns = 2;
// A set of BigQuery labels that should be applied to the relation.
map bigquery_labels = 3;
}
// Represents a single Dataform action in a compilation result.
message CompilationResultAction {
// Represents a database relation.
message Relation {
// Indicates the type of this relation.
enum RelationType {
// Default value. This value is unused.
RELATION_TYPE_UNSPECIFIED = 0;
// The relation is a table.
TABLE = 1;
// The relation is a view.
VIEW = 2;
// The relation is an incrementalized table.
INCREMENTAL_TABLE = 3;
// The relation is a materialized view.
MATERIALIZED_VIEW = 4;
}
// Contains settings for relations of type `INCREMENTAL_TABLE`.
message IncrementalTableConfig {
// The SELECT query which returns rows which should be inserted into the
// relation if it already exists and is not being refreshed.
string incremental_select_query = 1;
// Whether this table should be protected from being refreshed.
bool refresh_disabled = 2;
// A set of columns or SQL expressions used to define row uniqueness.
// If any duplicates are discovered (as defined by `unique_key_parts`),
// only the newly selected rows (as defined by `incremental_select_query`)
// will be included in the relation.
repeated string unique_key_parts = 3;
// A SQL expression conditional used to limit the set of existing rows
// considered for a merge operation (see `unique_key_parts` for more
// information).
string update_partition_filter = 4;
// SQL statements to be executed before inserting new rows into the
// relation.
repeated string incremental_pre_operations = 5;
// SQL statements to be executed after inserting new rows into the
// relation.
repeated string incremental_post_operations = 6;
}
// A list of actions that this action depends on.
repeated Target dependency_targets = 1;
// Whether this action is disabled (i.e. should not be run).
bool disabled = 2;
// Arbitrary, user-defined tags on this action.
repeated string tags = 3;
// Descriptor for the relation and its columns.
RelationDescriptor relation_descriptor = 4;
// The type of this relation.
RelationType relation_type = 5;
// The SELECT query which returns rows which this relation should contain.
string select_query = 6;
// SQL statements to be executed before creating the relation.
repeated string pre_operations = 7;
// SQL statements to be executed after creating the relation.
repeated string post_operations = 8;
// Configures `INCREMENTAL_TABLE` settings for this relation. Only set if
// `relation_type` is `INCREMENTAL_TABLE`.
IncrementalTableConfig incremental_table_config = 9;
// The SQL expression used to partition the relation.
string partition_expression = 10;
// A list of columns or SQL expressions used to cluster the table.
repeated string cluster_expressions = 11;
// Sets the partition expiration in days.
int32 partition_expiration_days = 12;
// Specifies whether queries on this table must include a predicate filter
// that filters on the partitioning column.
bool require_partition_filter = 13;
// Additional options that will be provided as key/value pairs into the
// options clause of a create table/view statement. See
// https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language
// for more information on which options are supported.
map additional_options = 14;
}
// Represents a list of arbitrary database operations.
message Operations {
// A list of actions that this action depends on.
repeated Target dependency_targets = 1;
// Whether this action is disabled (i.e. should not be run).
bool disabled = 2;
// Arbitrary, user-defined tags on this action.
repeated string tags = 3;
// Descriptor for any output relation and its columns. Only set if
// `has_output` is true.
RelationDescriptor relation_descriptor = 6;
// A list of arbitrary SQL statements that will be executed without
// alteration.
repeated string queries = 4;
// Whether these operations produce an output relation.
bool has_output = 5;
}
// Represents an assertion upon a SQL query which is required return zero
// rows.
message Assertion {
// A list of actions that this action depends on.
repeated Target dependency_targets = 1;
// The parent action of this assertion. Only set if this assertion was
// automatically generated.
Target parent_action = 5;
// Whether this action is disabled (i.e. should not be run).
bool disabled = 2;
// Arbitrary, user-defined tags on this action.
repeated string tags = 3;
// The SELECT query which must return zero rows in order for this assertion
// to succeed.
string select_query = 4;
// Descriptor for the assertion's automatically-generated view and its
// columns.
RelationDescriptor relation_descriptor = 6;
}
// Represents a relation which is not managed by Dataform but which may be
// referenced by Dataform actions.
message Declaration {
// Descriptor for the relation and its columns. Used as documentation only,
// i.e. values here will result in no changes to the relation's metadata.
RelationDescriptor relation_descriptor = 1;
}
// This action's identifier. Unique within the compilation result.
Target target = 1;
// The action's identifier if the project had been compiled without any
// overrides configured. Unique within the compilation result.
Target canonical_target = 2;
// The full path including filename in which this action is located, relative
// to the workspace root.
string file_path = 3;
oneof compiled_object {
// The database relation created/updated by this action.
Relation relation = 4;
// The database operations executed by this action.
Operations operations = 5;
// The assertion executed by this action.
Assertion assertion = 6;
// The declaration declared by this action.
Declaration declaration = 7;
}
}
// `QueryCompilationResultActions` request message.
message QueryCompilationResultActionsRequest {
// Required. The compilation result's name.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/CompilationResult"
}
];
// Optional. Maximum number of compilation results to return. The server may
// return fewer items than requested. If unspecified, the server will pick an
// appropriate default.
int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. Page token received from a previous
// `QueryCompilationResultActions` call. Provide this to retrieve the
// subsequent page.
//
// When paginating, all other parameters provided to
// `QueryCompilationResultActions` must match the call that provided the page
// token.
string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
// Optional. Optional filter for the returned list. Filtering is only
// currently supported on the `file_path` field.
string filter = 4 [(google.api.field_behavior) = OPTIONAL];
}
// `QueryCompilationResultActions` response message.
message QueryCompilationResultActionsResponse {
// List of compilation result actions.
repeated CompilationResultAction compilation_result_actions = 1;
// A token, which can be sent as `page_token` to retrieve the next page.
// If this field is omitted, there are no subsequent pages.
string next_page_token = 2;
}
// Represents a Dataform workflow configuration.
message WorkflowConfig {
option (google.api.resource) = {
type: "dataform.googleapis.com/WorkflowConfig"
pattern: "projects/{project}/locations/{location}/repositories/{repository}/workflowConfigs/{workflow_config}"
};
// A record of an attempt to create a workflow invocation for this workflow
// config.
message ScheduledExecutionRecord {
// The timestamp of this execution attempt.
google.protobuf.Timestamp execution_time = 1;
oneof result {
// The name of the created workflow invocation, if one was successfully
// created. Must be in the format
// `projects/*/locations/*/repositories/*/workflowInvocations/*`.
string workflow_invocation = 2 [(google.api.resource_reference) = {
type: "dataform.googleapis.com/WorkflowInvocation"
}];
// The error status encountered upon this attempt to create the
// workflow invocation, if the attempt was unsuccessful.
google.rpc.Status error_status = 3;
}
}
// Output only. The workflow config's name.
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Required. The name of the release config whose release_compilation_result
// should be executed. Must be in the format
// `projects/*/locations/*/repositories/*/releaseConfigs/*`.
string release_config = 2 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/ReleaseConfig"
}
];
// Optional. If left unset, a default InvocationConfig will be used.
InvocationConfig invocation_config = 3
[(google.api.field_behavior) = OPTIONAL];
// Optional. Optional schedule (in cron format) for automatic execution of
// this workflow config.
string cron_schedule = 4 [(google.api.field_behavior) = OPTIONAL];
// Optional. Specifies the time zone to be used when interpreting
// cron_schedule. Must be a time zone name from the time zone database
// (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). If left
// unspecified, the default is UTC.
string time_zone = 7 [(google.api.field_behavior) = OPTIONAL];
// Output only. Records of the 10 most recent scheduled execution attempts,
// ordered in in descending order of `execution_time`. Updated whenever
// automatic creation of a workflow invocation is triggered by cron_schedule.
repeated ScheduledExecutionRecord recent_scheduled_execution_records = 5
[(google.api.field_behavior) = OUTPUT_ONLY];
}
// Includes various configuration options for a workflow invocation.
// If both `included_targets` and `included_tags` are unset, all actions
// will be included.
message InvocationConfig {
// Optional. The set of action identifiers to include.
repeated Target included_targets = 1 [(google.api.field_behavior) = OPTIONAL];
// Optional. The set of tags to include.
repeated string included_tags = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. When set to true, transitive dependencies of included actions
// will be executed.
bool transitive_dependencies_included = 3
[(google.api.field_behavior) = OPTIONAL];
// Optional. When set to true, transitive dependents of included actions will
// be executed.
bool transitive_dependents_included = 4
[(google.api.field_behavior) = OPTIONAL];
// Optional. When set to true, any incremental tables will be fully refreshed.
bool fully_refresh_incremental_tables_enabled = 5
[(google.api.field_behavior) = OPTIONAL];
// Optional. The service account to run workflow invocations under.
string service_account = 6 [(google.api.field_behavior) = OPTIONAL];
}
// `ListWorkflowConfigs` request message.
message ListWorkflowConfigsRequest {
// Required. The repository in which to list workflow configs. Must be in the
// format `projects/*/locations/*/repositories/*`.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Repository"
}
];
// Optional. Maximum number of workflow configs to return. The server may
// return fewer items than requested. If unspecified, the server will pick an
// appropriate default.
int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. Page token received from a previous `ListWorkflowConfigs` call.
// Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to `ListWorkflowConfigs`
// must match the call that provided the page token.
string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
}
// `ListWorkflowConfigs` response message.
message ListWorkflowConfigsResponse {
// List of workflow configs.
repeated WorkflowConfig workflow_configs = 1;
// A token, which can be sent as `page_token` to retrieve the next page.
// If this field is omitted, there are no subsequent pages.
string next_page_token = 2;
// Locations which could not be reached.
repeated string unreachable = 3;
}
// `GetWorkflowConfig` request message.
message GetWorkflowConfigRequest {
// Required. The workflow config's name.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/WorkflowConfig"
}
];
}
// `CreateWorkflowConfig` request message.
message CreateWorkflowConfigRequest {
// Required. The repository in which to create the workflow config. Must be in
// the format `projects/*/locations/*/repositories/*`.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Repository"
}
];
// Required. The workflow config to create.
WorkflowConfig workflow_config = 2 [(google.api.field_behavior) = REQUIRED];
// Required. The ID to use for the workflow config, which will become the
// final component of the workflow config's resource name.
string workflow_config_id = 3 [(google.api.field_behavior) = REQUIRED];
}
// `UpdateWorkflowConfig` request message.
message UpdateWorkflowConfigRequest {
// Optional. Specifies the fields to be updated in the workflow config. If
// left unset, all fields will be updated.
google.protobuf.FieldMask update_mask = 1
[(google.api.field_behavior) = OPTIONAL];
// Required. The workflow config to update.
WorkflowConfig workflow_config = 2 [(google.api.field_behavior) = REQUIRED];
}
// `DeleteWorkflowConfig` request message.
message DeleteWorkflowConfigRequest {
// Required. The workflow config's name.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/WorkflowConfig"
}
];
}
// Represents a single invocation of a compilation result.
message WorkflowInvocation {
option (google.api.resource) = {
type: "dataform.googleapis.com/WorkflowInvocation"
pattern: "projects/{project}/locations/{location}/repositories/{repository}/workflowInvocations/{workflow_invocation}"
};
// Represents the current state of a workflow invocation.
enum State {
// Default value. This value is unused.
STATE_UNSPECIFIED = 0;
// The workflow invocation is currently running.
RUNNING = 1;
// The workflow invocation succeeded. A terminal state.
SUCCEEDED = 2;
// The workflow invocation was cancelled. A terminal state.
CANCELLED = 3;
// The workflow invocation failed. A terminal state.
FAILED = 4;
// The workflow invocation is being cancelled, but some actions are still
// running.
CANCELING = 5;
}
// Output only. The workflow invocation's name.
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
oneof compilation_source {
// Immutable. The name of the compilation result to use for this invocation.
// Must be in the format
// `projects/*/locations/*/repositories/*/compilationResults/*`.
string compilation_result = 2 [
(google.api.field_behavior) = IMMUTABLE,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/CompilationResult"
}
];
// Immutable. The name of the workflow config to invoke. Must be in the
// format `projects/*/locations/*/repositories/*/workflowConfigs/*`.
string workflow_config = 6 [
(google.api.field_behavior) = IMMUTABLE,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/WorkflowConfig"
}
];
}
// Immutable. If left unset, a default InvocationConfig will be used.
InvocationConfig invocation_config = 3
[(google.api.field_behavior) = IMMUTABLE];
// Output only. This workflow invocation's current state.
State state = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. This workflow invocation's timing details.
google.type.Interval invocation_timing = 5
[(google.api.field_behavior) = OUTPUT_ONLY];
}
// `ListWorkflowInvocations` request message.
message ListWorkflowInvocationsRequest {
// Required. The parent resource of the WorkflowInvocation type. Must be in
// the format `projects/*/locations/*/repositories/*`.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Repository"
}
];
// Optional. Maximum number of workflow invocations to return. The server may
// return fewer items than requested. If unspecified, the server will pick an
// appropriate default.
int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. Page token received from a previous `ListWorkflowInvocations`
// call. Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to `ListWorkflowInvocations`
// must match the call that provided the page token.
string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
// Optional. This field only supports ordering by `name`. If unspecified, the
// server will choose the ordering. If specified, the default order is
// ascending for the `name` field.
string order_by = 4 [(google.api.field_behavior) = OPTIONAL];
// Optional. Filter for the returned list.
string filter = 5 [(google.api.field_behavior) = OPTIONAL];
}
// `ListWorkflowInvocations` response message.
message ListWorkflowInvocationsResponse {
// List of workflow invocations.
repeated WorkflowInvocation workflow_invocations = 1;
// A token, which can be sent as `page_token` to retrieve the next page.
// If this field is omitted, there are no subsequent pages.
string next_page_token = 2;
// Locations which could not be reached.
repeated string unreachable = 3;
}
// `GetWorkflowInvocation` request message.
message GetWorkflowInvocationRequest {
// Required. The workflow invocation resource's name.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/WorkflowInvocation"
}
];
}
// `CreateWorkflowInvocation` request message.
message CreateWorkflowInvocationRequest {
// Required. The repository in which to create the workflow invocation. Must
// be in the format `projects/*/locations/*/repositories/*`.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/Repository"
}
];
// Required. The workflow invocation resource to create.
WorkflowInvocation workflow_invocation = 2
[(google.api.field_behavior) = REQUIRED];
}
// `DeleteWorkflowInvocation` request message.
message DeleteWorkflowInvocationRequest {
// Required. The workflow invocation resource's name.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/WorkflowInvocation"
}
];
}
// `CancelWorkflowInvocation` request message.
message CancelWorkflowInvocationRequest {
// Required. The workflow invocation resource's name.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/WorkflowInvocation"
}
];
}
// Represents a single action in a workflow invocation.
message WorkflowInvocationAction {
// Represents the current state of a workflow invocation action.
enum State {
// The action has not yet been considered for invocation.
PENDING = 0;
// The action is currently running.
RUNNING = 1;
// Execution of the action was skipped because upstream dependencies did not
// all complete successfully. A terminal state.
SKIPPED = 2;
// Execution of the action was disabled as per the configuration of the
// corresponding compilation result action. A terminal state.
DISABLED = 3;
// The action succeeded. A terminal state.
SUCCEEDED = 4;
// The action was cancelled. A terminal state.
CANCELLED = 5;
// The action failed. A terminal state.
FAILED = 6;
}
// Represents a workflow action that will run against BigQuery.
message BigQueryAction {
// Output only. The generated BigQuery SQL script that will be executed.
string sql_script = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
}
// Output only. This action's identifier. Unique within the workflow
// invocation.
Target target = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The action's identifier if the project had been compiled
// without any overrides configured. Unique within the compilation result.
Target canonical_target = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. This action's current state.
State state = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. If and only if action's state is FAILED a failure reason is
// set.
string failure_reason = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. This action's timing details.
// `start_time` will be set if the action is in [RUNNING, SUCCEEDED,
// CANCELLED, FAILED] state.
// `end_time` will be set if the action is in [SUCCEEDED, CANCELLED, FAILED]
// state.
google.type.Interval invocation_timing = 5
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The workflow action's bigquery action details.
BigQueryAction bigquery_action = 6
[(google.api.field_behavior) = OUTPUT_ONLY];
}
// `QueryWorkflowInvocationActions` request message.
message QueryWorkflowInvocationActionsRequest {
// Required. The workflow invocation's name.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataform.googleapis.com/WorkflowInvocation"
}
];
// Optional. Maximum number of workflow invocations to return. The server may
// return fewer items than requested. If unspecified, the server will pick an
// appropriate default.
int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. Page token received from a previous
// `QueryWorkflowInvocationActions` call. Provide this to retrieve the
// subsequent page.
//
// When paginating, all other parameters provided to
// `QueryWorkflowInvocationActions` must match the call that provided the page
// token.
string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
}
// `QueryWorkflowInvocationActions` response message.
message QueryWorkflowInvocationActionsResponse {
// List of workflow invocation actions.
repeated WorkflowInvocationAction workflow_invocation_actions = 1;
// A token, which can be sent as `page_token` to retrieve the next page.
// If this field is omitted, there are no subsequent pages.
string next_page_token = 2;
}