mirror of
https://github.com/googleapis/googleapis.git
synced 2026-08-20 13:27:47 +02:00
feat!: storagetransfer public protos update
BREAKING CHANGE: field annotations are added. Allowing this since no client libraries were generated based on old protos. Committer: @alexander-fenster PiperOrigin-RevId: 386124227
This commit is contained in:
parent
e8d2996cc4
commit
2d0aae27bb
5 changed files with 999 additions and 197 deletions
350
google/storagetransfer/v1/BUILD.bazel
Normal file
350
google/storagetransfer/v1/BUILD.bazel
Normal file
|
|
@ -0,0 +1,350 @@
|
|||
# This file was automatically generated by BuildFileGenerator
|
||||
# https://github.com/googleapis/rules_gapic/tree/master/bazel
|
||||
|
||||
# Most of the manual changes to this file will be overwritten.
|
||||
# It's **only** allowed to change the following rule attribute values:
|
||||
# - names of *_gapic_assembly_* rules
|
||||
# - certain parameters of *_gapic_library rules, including but not limited to:
|
||||
# * extra_protoc_parameters
|
||||
# * extra_protoc_file_parameters
|
||||
# The complete list of preserved parameters can be found in the source code.
|
||||
|
||||
# This is an API workspace, having public visibility by default makes perfect sense.
|
||||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
##############################################################################
|
||||
# Common
|
||||
##############################################################################
|
||||
load("@rules_proto//proto:defs.bzl", "proto_library")
|
||||
load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info")
|
||||
|
||||
proto_library(
|
||||
name = "storagetransfer_proto",
|
||||
srcs = [
|
||||
"transfer.proto",
|
||||
"transfer_types.proto",
|
||||
],
|
||||
deps = [
|
||||
"//google/api:annotations_proto",
|
||||
"//google/api:client_proto",
|
||||
"//google/api:field_behavior_proto",
|
||||
"//google/longrunning:operations_proto",
|
||||
"//google/rpc:code_proto",
|
||||
"//google/type:date_proto",
|
||||
"//google/type:timeofday_proto",
|
||||
"@com_google_protobuf//:any_proto",
|
||||
"@com_google_protobuf//:duration_proto",
|
||||
"@com_google_protobuf//:empty_proto",
|
||||
"@com_google_protobuf//:field_mask_proto",
|
||||
"@com_google_protobuf//:timestamp_proto",
|
||||
],
|
||||
)
|
||||
|
||||
proto_library_with_info(
|
||||
name = "storagetransfer_proto_with_info",
|
||||
deps = [
|
||||
":storagetransfer_proto",
|
||||
"//google/cloud:common_resources_proto",
|
||||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# Java
|
||||
##############################################################################
|
||||
load(
|
||||
"@com_google_googleapis_imports//:imports.bzl",
|
||||
"java_gapic_assembly_gradle_pkg",
|
||||
"java_gapic_library",
|
||||
"java_gapic_test",
|
||||
"java_grpc_library",
|
||||
"java_proto_library",
|
||||
)
|
||||
|
||||
java_proto_library(
|
||||
name = "storagetransfer_java_proto",
|
||||
deps = [":storagetransfer_proto"],
|
||||
)
|
||||
|
||||
java_grpc_library(
|
||||
name = "storagetransfer_java_grpc",
|
||||
srcs = [":storagetransfer_proto"],
|
||||
deps = [":storagetransfer_java_proto"],
|
||||
)
|
||||
|
||||
java_gapic_library(
|
||||
name = "storagetransfer_java_gapic",
|
||||
srcs = [":storagetransfer_proto_with_info"],
|
||||
grpc_service_config = "storagetransfer_grpc_service_config.json",
|
||||
test_deps = [
|
||||
":storagetransfer_java_grpc",
|
||||
],
|
||||
deps = [
|
||||
":storagetransfer_java_proto",
|
||||
],
|
||||
)
|
||||
|
||||
java_gapic_test(
|
||||
name = "storagetransfer_java_gapic_test_suite",
|
||||
test_classes = [
|
||||
"com.google.storagetransfer.v1.proto.StorageTransferServiceClientTest",
|
||||
],
|
||||
runtime_deps = [":storagetransfer_java_gapic_test"],
|
||||
)
|
||||
|
||||
# Open Source Packages
|
||||
java_gapic_assembly_gradle_pkg(
|
||||
name = "google-cloud-storagetransfer-v1-java",
|
||||
deps = [
|
||||
":storagetransfer_java_gapic",
|
||||
":storagetransfer_java_grpc",
|
||||
":storagetransfer_java_proto",
|
||||
":storagetransfer_proto",
|
||||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# Go
|
||||
##############################################################################
|
||||
load(
|
||||
"@com_google_googleapis_imports//:imports.bzl",
|
||||
"go_gapic_assembly_pkg",
|
||||
"go_gapic_library",
|
||||
"go_proto_library",
|
||||
"go_test",
|
||||
)
|
||||
|
||||
go_proto_library(
|
||||
name = "storagetransfer_go_proto",
|
||||
compilers = ["@io_bazel_rules_go//proto:go_grpc"],
|
||||
importpath = "google.golang.org/genproto/googleapis/storagetransfer/v1",
|
||||
protos = [":storagetransfer_proto"],
|
||||
deps = [
|
||||
"//google/api:annotations_go_proto",
|
||||
"//google/longrunning:longrunning_go_proto",
|
||||
"//google/rpc:code_go_proto",
|
||||
"//google/type:date_go_proto",
|
||||
"//google/type:timeofday_go_proto",
|
||||
],
|
||||
)
|
||||
|
||||
go_gapic_library(
|
||||
name = "storagetransfer_go_gapic",
|
||||
srcs = [":storagetransfer_proto_with_info"],
|
||||
grpc_service_config = "storagetransfer_grpc_service_config.json",
|
||||
importpath = "cloud.google.com/go/storagetransfer/apiv1;storagetransfer",
|
||||
metadata = True,
|
||||
service_yaml = "storagetransfer_v1.yaml",
|
||||
deps = [
|
||||
":storagetransfer_go_proto",
|
||||
"//google/longrunning:longrunning_go_proto",
|
||||
"@com_google_cloud_go//longrunning:go_default_library",
|
||||
"@com_google_cloud_go//longrunning/autogen:go_default_library",
|
||||
"@io_bazel_rules_go//proto/wkt:any_go_proto",
|
||||
"@io_bazel_rules_go//proto/wkt:duration_go_proto",
|
||||
],
|
||||
)
|
||||
|
||||
go_test(
|
||||
name = "storagetransfer_go_gapic_test",
|
||||
srcs = [":storagetransfer_go_gapic_srcjar_test"],
|
||||
embed = [":storagetransfer_go_gapic"],
|
||||
importpath = "cloud.google.com/go/storagetransfer/apiv1",
|
||||
)
|
||||
|
||||
# Open Source Packages
|
||||
go_gapic_assembly_pkg(
|
||||
name = "gapi-cloud-storagetransfer-v1-go",
|
||||
deps = [
|
||||
":storagetransfer_go_gapic",
|
||||
":storagetransfer_go_gapic_srcjar-metadata.srcjar",
|
||||
":storagetransfer_go_gapic_srcjar-test.srcjar",
|
||||
":storagetransfer_go_proto",
|
||||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# Python
|
||||
##############################################################################
|
||||
load(
|
||||
"@com_google_googleapis_imports//:imports.bzl",
|
||||
"py_gapic_assembly_pkg",
|
||||
"py_gapic_library",
|
||||
)
|
||||
|
||||
py_gapic_library(
|
||||
name = "storagetransfer_py_gapic",
|
||||
srcs = [":storagetransfer_proto"],
|
||||
grpc_service_config = "storagetransfer_grpc_service_config.json",
|
||||
)
|
||||
|
||||
# Open Source Packages
|
||||
py_gapic_assembly_pkg(
|
||||
name = "storagetransfer-v1-py",
|
||||
deps = [
|
||||
":storagetransfer_py_gapic",
|
||||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# PHP
|
||||
##############################################################################
|
||||
load(
|
||||
"@com_google_googleapis_imports//:imports.bzl",
|
||||
"php_gapic_assembly_pkg",
|
||||
"php_gapic_library",
|
||||
"php_grpc_library",
|
||||
"php_proto_library",
|
||||
)
|
||||
|
||||
php_proto_library(
|
||||
name = "storagetransfer_php_proto",
|
||||
deps = [":storagetransfer_proto"],
|
||||
)
|
||||
|
||||
php_grpc_library(
|
||||
name = "storagetransfer_php_grpc",
|
||||
srcs = [":storagetransfer_proto"],
|
||||
deps = [":storagetransfer_php_proto"],
|
||||
)
|
||||
|
||||
php_gapic_library(
|
||||
name = "storagetransfer_php_gapic",
|
||||
srcs = [":storagetransfer_proto_with_info"],
|
||||
grpc_service_config = "storagetransfer_grpc_service_config.json",
|
||||
service_yaml = "storagetransfer_v1.yaml",
|
||||
deps = [
|
||||
":storagetransfer_php_grpc",
|
||||
":storagetransfer_php_proto",
|
||||
],
|
||||
)
|
||||
|
||||
# Open Source Packages
|
||||
php_gapic_assembly_pkg(
|
||||
name = "google-cloud-storagetransfer-v1-php",
|
||||
deps = [
|
||||
":storagetransfer_php_gapic",
|
||||
":storagetransfer_php_grpc",
|
||||
":storagetransfer_php_proto",
|
||||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# Node.js
|
||||
##############################################################################
|
||||
load(
|
||||
"@com_google_googleapis_imports//:imports.bzl",
|
||||
"nodejs_gapic_assembly_pkg",
|
||||
"nodejs_gapic_library",
|
||||
)
|
||||
|
||||
nodejs_gapic_library(
|
||||
name = "storagetransfer_nodejs_gapic",
|
||||
package_name = "@google-cloud/storagetransfer",
|
||||
src = ":storagetransfer_proto_with_info",
|
||||
extra_protoc_parameters = ["metadata"],
|
||||
grpc_service_config = "storagetransfer_grpc_service_config.json",
|
||||
package = "google.storagetransfer.v1",
|
||||
service_yaml = "storagetransfer_v1.yaml",
|
||||
deps = [],
|
||||
)
|
||||
|
||||
nodejs_gapic_assembly_pkg(
|
||||
name = "storagetransfer-v1-nodejs",
|
||||
deps = [
|
||||
":storagetransfer_nodejs_gapic",
|
||||
":storagetransfer_proto",
|
||||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# Ruby
|
||||
##############################################################################
|
||||
load(
|
||||
"@com_google_googleapis_imports//:imports.bzl",
|
||||
"ruby_cloud_gapic_library",
|
||||
"ruby_gapic_assembly_pkg",
|
||||
"ruby_grpc_library",
|
||||
"ruby_proto_library",
|
||||
)
|
||||
|
||||
ruby_proto_library(
|
||||
name = "storagetransfer_ruby_proto",
|
||||
deps = [":storagetransfer_proto"],
|
||||
)
|
||||
|
||||
ruby_grpc_library(
|
||||
name = "storagetransfer_ruby_grpc",
|
||||
srcs = [":storagetransfer_proto"],
|
||||
deps = [":storagetransfer_ruby_proto"],
|
||||
)
|
||||
|
||||
ruby_cloud_gapic_library(
|
||||
name = "storagetransfer_ruby_gapic",
|
||||
srcs = [":storagetransfer_proto_with_info"],
|
||||
extra_protoc_parameters = [
|
||||
"ruby-cloud-gem-name=google-cloud-storagetransfer-v1",
|
||||
],
|
||||
grpc_service_config = "storagetransfer_grpc_service_config.json",
|
||||
deps = [
|
||||
":storagetransfer_ruby_grpc",
|
||||
":storagetransfer_ruby_proto",
|
||||
],
|
||||
)
|
||||
|
||||
# Open Source Packages
|
||||
ruby_gapic_assembly_pkg(
|
||||
name = "google-cloud-storagetransfer-v1-ruby",
|
||||
deps = [
|
||||
":storagetransfer_ruby_gapic",
|
||||
":storagetransfer_ruby_grpc",
|
||||
":storagetransfer_ruby_proto",
|
||||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# C#
|
||||
##############################################################################
|
||||
load(
|
||||
"@com_google_googleapis_imports//:imports.bzl",
|
||||
"csharp_gapic_assembly_pkg",
|
||||
"csharp_gapic_library",
|
||||
"csharp_grpc_library",
|
||||
"csharp_proto_library",
|
||||
)
|
||||
|
||||
csharp_proto_library(
|
||||
name = "storagetransfer_csharp_proto",
|
||||
deps = [":storagetransfer_proto"],
|
||||
)
|
||||
|
||||
csharp_grpc_library(
|
||||
name = "storagetransfer_csharp_grpc",
|
||||
srcs = [":storagetransfer_proto"],
|
||||
deps = [":storagetransfer_csharp_proto"],
|
||||
)
|
||||
|
||||
csharp_gapic_library(
|
||||
name = "storagetransfer_csharp_gapic",
|
||||
srcs = [":storagetransfer_proto_with_info"],
|
||||
common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json",
|
||||
grpc_service_config = "storagetransfer_grpc_service_config.json",
|
||||
deps = [
|
||||
":storagetransfer_csharp_grpc",
|
||||
":storagetransfer_csharp_proto",
|
||||
],
|
||||
)
|
||||
|
||||
# Open Source Packages
|
||||
csharp_gapic_assembly_pkg(
|
||||
name = "google-cloud-storagetransfer-v1-csharp",
|
||||
deps = [
|
||||
":storagetransfer_csharp_gapic",
|
||||
":storagetransfer_csharp_grpc",
|
||||
":storagetransfer_csharp_proto",
|
||||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# C++
|
||||
##############################################################################
|
||||
# Put your C++ rules here
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"methodConfig": [
|
||||
{
|
||||
"name": [
|
||||
{
|
||||
"service": "google.storagetransfer.v1.StorageTransferService"
|
||||
}
|
||||
],
|
||||
"timeout": "60s"
|
||||
}
|
||||
]
|
||||
}
|
||||
80
google/storagetransfer/v1/storagetransfer_v1.yaml
Normal file
80
google/storagetransfer/v1/storagetransfer_v1.yaml
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
type: google.api.Service
|
||||
config_version: 3
|
||||
name: storagetransfer.googleapis.com
|
||||
title: Storage Transfer API
|
||||
|
||||
apis:
|
||||
- name: google.storagetransfer.v1.StorageTransferService
|
||||
|
||||
types:
|
||||
- name: google.storagetransfer.v1.RunTransferJobMetadata
|
||||
- name: google.storagetransfer.v1.RunTransferJobResponse
|
||||
- name: google.storagetransfer.v1.TransferOperation
|
||||
|
||||
documentation:
|
||||
summary: |-
|
||||
Transfers data from external data sources to a Google Cloud Storage bucket
|
||||
or between Google Cloud Storage buckets.
|
||||
rules:
|
||||
- selector: google.longrunning.Operations.CancelOperation
|
||||
description: |-
|
||||
Cancels a transfer. Use
|
||||
the [transferOperations.get][google.longrunning.Operations.GetOperation]
|
||||
method to check if the cancellation succeeded or if the operation
|
||||
completed despite the `cancel` request.
|
||||
|
||||
When you cancel an operation, the currently running transfer is
|
||||
interrupted. For recurring transfer jobs, the next instance of the
|
||||
transfer job will still run. For example, if your job is configured
|
||||
to run every day at 1pm and you cancel Monday's operation at 1:05pm,
|
||||
Monday's transfer
|
||||
will stop. However, a transfer job will still be attempted on Tuesday.
|
||||
|
||||
This applies only to currently running operations. If an operation is
|
||||
not currently running, `cancel` does nothing.
|
||||
|
||||
<aside class="caution">
|
||||
<b>Caution:</b> Canceling a transfer job can leave your data in an
|
||||
unknown state. We recommend that you restore the state at both the
|
||||
destination and the source after the `cancel` request completes so
|
||||
that your data is in a consistent state. </aside>
|
||||
|
||||
When you cancel a job, the next job computes a delta of files and may
|
||||
repair any inconsistent state. For instance, if you run a job every
|
||||
day, and today's job found 10 new files and transferred five files
|
||||
before you canceled the job, tomorrow's transfer operation will
|
||||
compute a new delta with the five files that were not copied today
|
||||
plus any new files discovered tomorrow.
|
||||
|
||||
- selector: google.longrunning.Operations.ListOperations
|
||||
description: |-
|
||||
Lists transfer operations. Operations are ordered by their creation
|
||||
time in reverse chronological order.
|
||||
|
||||
backend:
|
||||
rules:
|
||||
- selector: 'google.longrunning.Operations.*'
|
||||
deadline: 30.0
|
||||
- selector: 'google.storagetransfer.v1.StorageTransferService.*'
|
||||
deadline: 30.0
|
||||
|
||||
http:
|
||||
rules:
|
||||
- selector: google.longrunning.Operations.CancelOperation
|
||||
post: '/v1/{name=transferOperations/**}:cancel'
|
||||
body: '*'
|
||||
- selector: google.longrunning.Operations.GetOperation
|
||||
get: '/v1/{name=transferOperations/**}'
|
||||
- selector: google.longrunning.Operations.ListOperations
|
||||
get: '/v1/{name=transferOperations}'
|
||||
|
||||
authentication:
|
||||
rules:
|
||||
- selector: 'google.longrunning.Operations.*'
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform
|
||||
- selector: 'google.storagetransfer.v1.StorageTransferService.*'
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright 2017 Google Inc.
|
||||
// Copyright 2021 Google LLC
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
|
|
@ -17,6 +17,10 @@ syntax = "proto3";
|
|||
package google.storagetransfer.v1;
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/api/client.proto";
|
||||
import "google/api/field_behavior.proto";
|
||||
import "google/longrunning/operations.proto";
|
||||
import "google/protobuf/duration.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
import "google/protobuf/field_mask.proto";
|
||||
import "google/storagetransfer/v1/transfer_types.proto";
|
||||
|
|
@ -27,10 +31,16 @@ option go_package = "google.golang.org/genproto/googleapis/storagetransfer/v1;st
|
|||
option java_outer_classname = "TransferProto";
|
||||
option java_package = "com.google.storagetransfer.v1.proto";
|
||||
option php_namespace = "Google\\Cloud\\StorageTransfer\\V1";
|
||||
option ruby_package = "Google::Cloud::StorageTransfer::V1";
|
||||
|
||||
// Storage Transfer Service and its protos.
|
||||
// Transfers data between between Google Cloud Storage buckets or from a data
|
||||
// source external to Google to a Cloud Storage bucket.
|
||||
service StorageTransferService {
|
||||
option (google.api.default_host) = "storagetransfer.googleapis.com";
|
||||
option (google.api.oauth_scopes) =
|
||||
"https://www.googleapis.com/auth/cloud-platform";
|
||||
|
||||
// Returns the Google service account that is used by Storage Transfer
|
||||
// Service to access buckets in the project where transfers
|
||||
// run or in other projects. Each Google service account is associated
|
||||
|
|
@ -55,8 +65,13 @@ service StorageTransferService {
|
|||
}
|
||||
|
||||
// Updates a transfer job. Updating a job's transfer spec does not affect
|
||||
// transfer operations that are running already. Updating the scheduling
|
||||
// of a job is not allowed.
|
||||
// transfer operations that are running already.
|
||||
//
|
||||
// **Note:** The job's [status][google.storagetransfer.v1.TransferJob.status]
|
||||
// field can be modified using this RPC (for example, to set a job's status to
|
||||
// [DELETED][google.storagetransfer.v1.TransferJob.Status.DELETED],
|
||||
// [DISABLED][google.storagetransfer.v1.TransferJob.Status.DISABLED], or
|
||||
// [ENABLED][google.storagetransfer.v1.TransferJob.Status.ENABLED]).
|
||||
rpc UpdateTransferJob(UpdateTransferJobRequest) returns (TransferJob) {
|
||||
option (google.api.http) = {
|
||||
patch: "/v1/{job_name=transferJobs/**}"
|
||||
|
|
@ -96,72 +111,98 @@ service StorageTransferService {
|
|||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Attempts to start a new TransferOperation for the current TransferJob. A
|
||||
// TransferJob has a maximum of one active TransferOperation. If this method
|
||||
// is called while a TransferOperation is active, an error wil be returned.
|
||||
rpc RunTransferJob(RunTransferJobRequest)
|
||||
returns (google.longrunning.Operation) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1/{job_name=transferJobs/**}:run"
|
||||
body: "*"
|
||||
};
|
||||
option (google.longrunning.operation_info) = {
|
||||
response_type: "google.protobuf.Empty"
|
||||
metadata_type: "TransferOperation"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// Request passed to GetGoogleServiceAccount.
|
||||
message GetGoogleServiceAccountRequest {
|
||||
// The ID of the Google Cloud Platform Console project that the Google service
|
||||
// account is associated with.
|
||||
// Required.
|
||||
string project_id = 1;
|
||||
// Required. The ID of the Google Cloud Platform Console project that the
|
||||
// Google service account is associated with.
|
||||
string project_id = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// Request passed to CreateTransferJob.
|
||||
message CreateTransferJobRequest {
|
||||
// The job to create.
|
||||
// Required.
|
||||
TransferJob transfer_job = 1;
|
||||
// Required. The job to create.
|
||||
TransferJob transfer_job = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// Request passed to UpdateTransferJob.
|
||||
message UpdateTransferJobRequest {
|
||||
// The name of job to update.
|
||||
// Required.
|
||||
string job_name = 1;
|
||||
// Required. The name of job to update.
|
||||
string job_name = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// The ID of the Google Cloud Platform Console project that owns the job.
|
||||
// Required.
|
||||
string project_id = 2;
|
||||
// Required. The ID of the Google Cloud Platform Console project that owns the
|
||||
// job.
|
||||
string project_id = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// The job to update. `transferJob` is expected to specify only three fields:
|
||||
// `description`, `transferSpec`, and `status`. An UpdateTransferJobRequest
|
||||
// that specifies other fields will be rejected with an error
|
||||
// `INVALID_ARGUMENT`.
|
||||
// Required.
|
||||
TransferJob transfer_job = 3;
|
||||
// Required. The job to update. `transferJob` is expected to specify only
|
||||
// four fields:
|
||||
// [description][google.storagetransfer.v1.TransferJob.description],
|
||||
// [transfer_spec][google.storagetransfer.v1.TransferJob.transfer_spec],
|
||||
// [notification_config][google.storagetransfer.v1.TransferJob.notification_config],
|
||||
// and [status][google.storagetransfer.v1.TransferJob.status]. An
|
||||
// `UpdateTransferJobRequest` that specifies other fields are rejected with
|
||||
// the error [INVALID_ARGUMENT][google.rpc.Code.INVALID_ARGUMENT]. Updating a
|
||||
// job status to
|
||||
// [DELETED][google.storagetransfer.v1.TransferJob.Status.DELETED] requires
|
||||
// `storagetransfer.jobs.delete` permissions.
|
||||
TransferJob transfer_job = 3 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// The field mask of the fields in `transferJob` that are to be updated in
|
||||
// this request. Fields in `transferJob` that can be updated are:
|
||||
// `description`, `transferSpec`, and `status`. To update the `transferSpec`
|
||||
// of the job, a complete transfer specification has to be provided. An
|
||||
// incomplete specification which misses any required fields will be rejected
|
||||
// with the error `INVALID_ARGUMENT`.
|
||||
// [description][google.storagetransfer.v1.TransferJob.description],
|
||||
// [transfer_spec][google.storagetransfer.v1.TransferJob.transfer_spec],
|
||||
// [notification_config][google.storagetransfer.v1.TransferJob.notification_config],
|
||||
// and [status][google.storagetransfer.v1.TransferJob.status]. To update the
|
||||
// `transfer_spec` of the job, a complete transfer specification must be
|
||||
// provided. An incomplete specification missing any required fields is
|
||||
// rejected with the error
|
||||
// [INVALID_ARGUMENT][google.rpc.Code.INVALID_ARGUMENT].
|
||||
google.protobuf.FieldMask update_transfer_job_field_mask = 4;
|
||||
}
|
||||
|
||||
// Request passed to GetTransferJob.
|
||||
message GetTransferJobRequest {
|
||||
// Required.
|
||||
// The job to get.
|
||||
// Required.
|
||||
string job_name = 1;
|
||||
string job_name = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// The ID of the Google Cloud Platform Console project that owns the job.
|
||||
// Required.
|
||||
string project_id = 2;
|
||||
// Required. The ID of the Google Cloud Platform Console project that owns the
|
||||
// job.
|
||||
string project_id = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// `project_id`, `job_names`, and `job_statuses` are query parameters that can
|
||||
// `projectId`, `jobNames`, and `jobStatuses` are query parameters that can
|
||||
// be specified when listing transfer jobs.
|
||||
message ListTransferJobsRequest {
|
||||
// A list of query parameters specified as JSON text in the form of
|
||||
// {"project_id":"my_project_id",
|
||||
// "job_names":["jobid1","jobid2",...],
|
||||
// "job_statuses":["status1","status2",...]}.
|
||||
// Since `job_names` and `job_statuses` support multiple values, their values
|
||||
// must be specified with array notation. `project_id` is required.
|
||||
// `job_names` and `job_statuses` are optional. The valid values for
|
||||
// `job_statuses` are case-insensitive: `ENABLED`, `DISABLED`, and `DELETED`.
|
||||
string filter = 1;
|
||||
// Required. A list of query parameters specified as JSON text in the form of:
|
||||
// `{"projectId":"my_project_id",
|
||||
// "jobNames":["jobid1","jobid2",...],
|
||||
// "jobStatuses":["status1","status2",...]}`
|
||||
//
|
||||
// Since `jobNames` and `jobStatuses` support multiple values, their values
|
||||
// must be specified with array notation. `projectId` is required.
|
||||
// `jobNames` and `jobStatuses` are optional. The valid values for
|
||||
// `jobStatuses` are case-insensitive:
|
||||
// [ENABLED][google.storagetransfer.v1.TransferJob.Status.ENABLED],
|
||||
// [DISABLED][google.storagetransfer.v1.TransferJob.Status.DISABLED], and
|
||||
// [DELETED][google.storagetransfer.v1.TransferJob.Status.DELETED].
|
||||
string filter = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// The list page size. The max allowed value is 256.
|
||||
int32 page_size = 4;
|
||||
|
|
@ -181,14 +222,22 @@ message ListTransferJobsResponse {
|
|||
|
||||
// Request passed to PauseTransferOperation.
|
||||
message PauseTransferOperationRequest {
|
||||
// The name of the transfer operation.
|
||||
// Required.
|
||||
string name = 1;
|
||||
// Required. The name of the transfer operation.
|
||||
string name = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// Request passed to ResumeTransferOperation.
|
||||
message ResumeTransferOperationRequest {
|
||||
// The name of the transfer operation.
|
||||
// Required.
|
||||
string name = 1;
|
||||
// Required. The name of the transfer operation.
|
||||
string name = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// Request passed to RunTransferJob.
|
||||
message RunTransferJobRequest {
|
||||
// Required. The name of the transfer job.
|
||||
string job_name = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. The ID of the Google Cloud Platform Console project that owns the
|
||||
// transfer job.
|
||||
string project_id = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright 2017 Google Inc.
|
||||
// Copyright 2021 Google LLC
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
|
|
@ -17,6 +17,8 @@ syntax = "proto3";
|
|||
package google.storagetransfer.v1;
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/api/field_behavior.proto";
|
||||
import "google/protobuf/any.proto";
|
||||
import "google/protobuf/duration.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/rpc/code.proto";
|
||||
|
|
@ -29,127 +31,267 @@ option go_package = "google.golang.org/genproto/googleapis/storagetransfer/v1;st
|
|||
option java_outer_classname = "TransferTypes";
|
||||
option java_package = "com.google.storagetransfer.v1.proto";
|
||||
option php_namespace = "Google\\Cloud\\StorageTransfer\\V1";
|
||||
option ruby_package = "Google::Cloud::StorageTransfer::V1";
|
||||
|
||||
// Google service account
|
||||
message GoogleServiceAccount {
|
||||
// Required.
|
||||
// Email address of the service account.
|
||||
string account_email = 1;
|
||||
|
||||
// Unique identifier for the service account.
|
||||
string subject_id = 2;
|
||||
}
|
||||
|
||||
// AWS access key (see
|
||||
// [AWS Security
|
||||
// Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html)).
|
||||
// Credentials](https://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html)).
|
||||
//
|
||||
// For information on our data retention policy for user credentials, see
|
||||
// [User credentials](/storage-transfer/docs/data-retention#user-credentials).
|
||||
message AwsAccessKey {
|
||||
// AWS access key ID.
|
||||
// Required.
|
||||
string access_key_id = 1;
|
||||
// Required. AWS access key ID.
|
||||
string access_key_id = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// AWS secret access key. This field is not returned in RPC responses.
|
||||
// Required.
|
||||
string secret_access_key = 2;
|
||||
// Required. AWS secret access key. This field is not returned in RPC
|
||||
// responses.
|
||||
string secret_access_key = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// Conditions that determine which objects will be transferred.
|
||||
// Azure credentials
|
||||
//
|
||||
// For information on our data retention policy for user credentials, see
|
||||
// [User credentials](/storage-transfer/docs/data-retention#user-credentials).
|
||||
message AzureCredentials {
|
||||
// Required. Azure shared access signature (SAS).
|
||||
//
|
||||
// <aside class="note">
|
||||
// <strong>Note:</strong>Copying data from Azure Data Lake
|
||||
// Storage (ADLS) Gen 2 is in [Preview](/products/#product-launch-stages).
|
||||
// During Preview, if you are copying data from ADLS Gen 2, you must use an
|
||||
// account SAS.
|
||||
// </aside>
|
||||
//
|
||||
// For more information about SAS, see
|
||||
// [Grant limited access to Azure Storage resources using shared access
|
||||
// signatures
|
||||
// (SAS)](https://docs.microsoft.com/en-us/azure/storage/common/storage-sas-overview).
|
||||
string sas_token = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// Conditions that determine which objects will be transferred. Applies only
|
||||
// to Cloud Data Sources such as S3, Azure, and Cloud Storage.
|
||||
//
|
||||
// The "last modification time" refers to the time of the
|
||||
// last change to the object's content or metadata — specifically, this is
|
||||
// the `updated` property of Cloud Storage objects, the `LastModified` field
|
||||
// of S3 objects, and the `Last-Modified` header of Azure blobs.
|
||||
message ObjectConditions {
|
||||
// If unspecified, `minTimeElapsedSinceLastModification` takes a zero value
|
||||
// and `maxTimeElapsedSinceLastModification` takes the maximum possible
|
||||
// value of Duration. Objects that satisfy the object conditions
|
||||
// must either have a `lastModificationTime` greater or equal to
|
||||
// `NOW` - `maxTimeElapsedSinceLastModification` and less than
|
||||
// `NOW` - `minTimeElapsedSinceLastModification`, or not have a
|
||||
// `lastModificationTime`.
|
||||
// If specified, only objects with a "last modification time" before
|
||||
// `NOW` - `min_time_elapsed_since_last_modification` and objects that don't
|
||||
// have a "last modification time" are transferred.
|
||||
//
|
||||
// For each [TransferOperation][google.storagetransfer.v1.TransferOperation]
|
||||
// started by this [TransferJob][google.storagetransfer.v1.TransferJob], `NOW`
|
||||
// refers to the [start_time]
|
||||
// [google.storagetransfer.v1.TransferOperation.start_time] of the
|
||||
// `TransferOperation`.
|
||||
google.protobuf.Duration min_time_elapsed_since_last_modification = 1;
|
||||
|
||||
// `maxTimeElapsedSinceLastModification` is the complement to
|
||||
// `minTimeElapsedSinceLastModification`.
|
||||
// If specified, only objects with a "last modification time" on or after
|
||||
// `NOW` - `max_time_elapsed_since_last_modification` and objects that don't
|
||||
// have a "last modification time" are transferred.
|
||||
//
|
||||
// For each [TransferOperation][google.storagetransfer.v1.TransferOperation]
|
||||
// started by this [TransferJob][google.storagetransfer.v1.TransferJob],
|
||||
// `NOW` refers to the [start_time]
|
||||
// [google.storagetransfer.v1.TransferOperation.start_time] of the
|
||||
// `TransferOperation`.
|
||||
google.protobuf.Duration max_time_elapsed_since_last_modification = 2;
|
||||
|
||||
// If `includePrefixes` is specified, objects that satisfy the object
|
||||
// conditions must have names that start with one of the `includePrefixes`
|
||||
// and that do not start with any of the `excludePrefixes`. If
|
||||
// `includePrefixes` is not specified, all objects except those that have
|
||||
// names starting with one of the `excludePrefixes` must satisfy the object
|
||||
// conditions.
|
||||
// If you specify `include_prefixes`, Storage Transfer Service uses the items
|
||||
// in the `include_prefixes` array to determine which objects to include in a
|
||||
// transfer. Objects must start with one of the matching `include_prefixes`
|
||||
// for inclusion in the transfer. If [exclude_prefixes]
|
||||
// [google.storagetransfer.v1.ObjectConditions.exclude_prefixes] is specified,
|
||||
// objects must not start with any of the `exclude_prefixes` specified for
|
||||
// inclusion in the transfer.
|
||||
//
|
||||
// Requirements:
|
||||
// The following are requirements of `include_prefixes`:
|
||||
//
|
||||
// * Each include-prefix and exclude-prefix can contain any sequence of
|
||||
// Unicode characters, of max length 1024 bytes when UTF8-encoded, and
|
||||
// must not contain Carriage Return or Line Feed characters. Wildcard
|
||||
// matching and regular expression matching are not supported.
|
||||
// * Each include-prefix can contain any sequence of Unicode characters, to
|
||||
// a max length of 1024 bytes when UTF8-encoded, and must not contain
|
||||
// Carriage Return or Line Feed characters. Wildcard matching and regular
|
||||
// expression matching are not supported.
|
||||
//
|
||||
// * Each include-prefix and exclude-prefix must omit the leading slash.
|
||||
// For example, to include the `requests.gz` object in a transfer from
|
||||
// `s3://my-aws-bucket/logs/y=2015/requests.gz`, specify the include
|
||||
// prefix as `logs/y=2015/requests.gz`.
|
||||
// * Each include-prefix must omit the leading slash. For example, to
|
||||
// include the object `s3://my-aws-bucket/logs/y=2015/requests.gz`,
|
||||
// specify the include-prefix as `logs/y=2015/requests.gz`.
|
||||
//
|
||||
// * None of the include-prefix or the exclude-prefix values can be empty,
|
||||
// if specified.
|
||||
// * None of the include-prefix values can be empty, if specified.
|
||||
//
|
||||
// * Each include-prefix must include a distinct portion of the object
|
||||
// namespace, i.e., no include-prefix may be a prefix of another
|
||||
// namespace. No include-prefix may be a prefix of another
|
||||
// include-prefix.
|
||||
//
|
||||
// * Each exclude-prefix must exclude a distinct portion of the object
|
||||
// namespace, i.e., no exclude-prefix may be a prefix of another
|
||||
// exclude-prefix.
|
||||
// The max size of `include_prefixes` is 1000.
|
||||
//
|
||||
// * If `includePrefixes` is specified, then each exclude-prefix must start
|
||||
// with the value of a path explicitly included by `includePrefixes`.
|
||||
//
|
||||
// The max size of `includePrefixes` is 1000.
|
||||
// For more information, see [Filtering objects from
|
||||
// transfers](/storage-transfer/docs/filtering-objects-from-transfers).
|
||||
repeated string include_prefixes = 3;
|
||||
|
||||
// `excludePrefixes` must follow the requirements described for
|
||||
// `includePrefixes`.
|
||||
// If you specify `exclude_prefixes`, Storage Transfer Service uses the items
|
||||
// in the `exclude_prefixes` array to determine which objects to exclude from
|
||||
// a transfer. Objects must not start with one of the matching
|
||||
// `exclude_prefixes` for inclusion in a transfer.
|
||||
//
|
||||
// The max size of `excludePrefixes` is 1000.
|
||||
// The following are requirements of `exclude_prefixes`:
|
||||
//
|
||||
// * Each exclude-prefix can contain any sequence of Unicode characters, to
|
||||
// a max length of 1024 bytes when UTF8-encoded, and must not contain
|
||||
// Carriage Return or Line Feed characters. Wildcard matching and regular
|
||||
// expression matching are not supported.
|
||||
//
|
||||
// * Each exclude-prefix must omit the leading slash. For example, to
|
||||
// exclude the object `s3://my-aws-bucket/logs/y=2015/requests.gz`,
|
||||
// specify the exclude-prefix as `logs/y=2015/requests.gz`.
|
||||
//
|
||||
// * None of the exclude-prefix values can be empty, if specified.
|
||||
//
|
||||
// * Each exclude-prefix must exclude a distinct portion of the object
|
||||
// namespace. No exclude-prefix may be a prefix of another
|
||||
// exclude-prefix.
|
||||
//
|
||||
// * If [include_prefixes]
|
||||
// [google.storagetransfer.v1.ObjectConditions.include_prefixes] is
|
||||
// specified, then each exclude-prefix must start with the value of a path
|
||||
// explicitly included by `include_prefixes`.
|
||||
//
|
||||
// The max size of `exclude_prefixes` is 1000.
|
||||
//
|
||||
// For more information, see [Filtering objects from
|
||||
// transfers](/storage-transfer/docs/filtering-objects-from-transfers).
|
||||
repeated string exclude_prefixes = 4;
|
||||
|
||||
// If specified, only objects with a "last modification time" on or after
|
||||
// this timestamp and objects that don't have a "last modification time" are
|
||||
// transferred.
|
||||
//
|
||||
// The `last_modified_since` and `last_modified_before` fields can be used
|
||||
// together for chunked data processing. For example, consider a script that
|
||||
// processes each day's worth of data at a time. For that you'd set each
|
||||
// of the fields as follows:
|
||||
//
|
||||
// * `last_modified_since` to the start of the day
|
||||
//
|
||||
// * `last_modified_before` to the end of the day
|
||||
google.protobuf.Timestamp last_modified_since = 5;
|
||||
|
||||
// If specified, only objects with a "last modification time" before this
|
||||
// timestamp and objects that don't have a "last modification time" will be
|
||||
// transferred.
|
||||
google.protobuf.Timestamp last_modified_before = 6;
|
||||
}
|
||||
|
||||
// In a GcsData, an object's name is the Google Cloud Storage object's name and
|
||||
// its `lastModificationTime` refers to the object's updated time, which changes
|
||||
// when the content or the metadata of the object is updated.
|
||||
// In a GcsData resource, an object's name is the Cloud Storage object's
|
||||
// name and its "last modification time" refers to the object's `updated`
|
||||
// property of Cloud Storage objects, which changes when the content or the
|
||||
// metadata of the object is updated.
|
||||
message GcsData {
|
||||
// Google Cloud Storage bucket name (see
|
||||
// [Bucket Name
|
||||
// Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
|
||||
// Required.
|
||||
string bucket_name = 1;
|
||||
// Required. Cloud Storage bucket name. Must meet
|
||||
// [Bucket Name Requirements](/storage/docs/naming#requirements).
|
||||
string bucket_name = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Root path to transfer objects.
|
||||
//
|
||||
// Must be an empty string or full path name that ends with a '/'. This field
|
||||
// is treated as an object prefix. As such, it should generally not begin with
|
||||
// a '/'.
|
||||
//
|
||||
// The root path value must meet
|
||||
// [Object Name Requirements](/storage/docs/naming#objectnames).
|
||||
string path = 3;
|
||||
}
|
||||
|
||||
// An AwsS3Data can be a data source, but not a data sink.
|
||||
// In an AwsS3Data, an object's name is the S3 object's key name.
|
||||
// An AwsS3Data resource can be a data source, but not a data sink.
|
||||
// In an AwsS3Data resource, an object's name is the S3 object's key name.
|
||||
message AwsS3Data {
|
||||
// S3 Bucket name (see
|
||||
// Required. S3 Bucket name (see
|
||||
// [Creating a
|
||||
// bucket](http://docs.aws.amazon.com/AmazonS3/latest/dev/create-bucket-get-location-example.html)).
|
||||
// Required.
|
||||
string bucket_name = 1;
|
||||
// bucket](https://docs.aws.amazon.com/AmazonS3/latest/dev/create-bucket-get-location-example.html)).
|
||||
string bucket_name = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// AWS access key used to sign the API requests to the AWS S3 bucket.
|
||||
// Permissions on the bucket must be granted to the access ID of the
|
||||
// AWS access key.
|
||||
// Required.
|
||||
AwsAccessKey aws_access_key = 2;
|
||||
// Input only. AWS access key used to sign the API requests to the AWS S3
|
||||
// bucket. Permissions on the bucket must be granted to the access ID of the
|
||||
// AWS access key. This field is required.
|
||||
//
|
||||
// For information on our data retention policy for user credentials, see
|
||||
// [User credentials](/storage-transfer/docs/data-retention#user-credentials).
|
||||
AwsAccessKey aws_access_key = 2 [(google.api.field_behavior) = INPUT_ONLY];
|
||||
|
||||
// Root path to transfer objects.
|
||||
//
|
||||
// Must be an empty string or full path name that ends with a '/'. This field
|
||||
// is treated as an object prefix. As such, it should generally not begin with
|
||||
// a '/'.
|
||||
string path = 3;
|
||||
|
||||
// Input only. Role arn to support temporary credentials via
|
||||
// AssumeRoleWithWebIdentity.
|
||||
//
|
||||
// When role arn is provided, transfer service will fetch temporary
|
||||
// credentials for the session using AssumeRoleWithWebIdentity call for the
|
||||
// provided role using the [GoogleServiceAccount] for this project.
|
||||
string role_arn = 4 [(google.api.field_behavior) = INPUT_ONLY];
|
||||
}
|
||||
|
||||
// An HttpData specifies a list of objects on the web to be transferred over
|
||||
// HTTP. The information of the objects to be transferred is contained in a
|
||||
// file referenced by a URL. The first line in the file must be
|
||||
// "TsvHttpData-1.0", which specifies the format of the file. Subsequent lines
|
||||
// specify the information of the list of objects, one object per list entry.
|
||||
// Each entry has the following tab-delimited fields:
|
||||
// An AzureBlobStorageData resource can be a data source, but not a data sink.
|
||||
// An AzureBlobStorageData resource represents one Azure container. The storage
|
||||
// account determines the [Azure
|
||||
// endpoint](https://docs.microsoft.com/en-us/azure/storage/common/storage-create-storage-account#storage-account-endpoints).
|
||||
// In an AzureBlobStorageData resource, a blobs's name is the [Azure Blob
|
||||
// Storage blob's key
|
||||
// name](https://docs.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata#blob-names).
|
||||
message AzureBlobStorageData {
|
||||
// Required. The name of the Azure Storage account.
|
||||
string storage_account = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. Input only. Credentials used to authenticate API requests to
|
||||
// Azure.
|
||||
//
|
||||
// For information on our data retention policy for user credentials, see
|
||||
// [User credentials](/storage-transfer/docs/data-retention#user-credentials).
|
||||
AzureCredentials azure_credentials = 2 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.field_behavior) = INPUT_ONLY
|
||||
];
|
||||
|
||||
// Required. The container to transfer from the Azure Storage account.
|
||||
string container = 4 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Root path to transfer objects.
|
||||
//
|
||||
// Must be an empty string or full path name that ends with a '/'. This field
|
||||
// is treated as an object prefix. As such, it should generally not begin with
|
||||
// a '/'.
|
||||
string path = 5;
|
||||
}
|
||||
|
||||
// An HttpData resource specifies a list of objects on the web to be transferred
|
||||
// over HTTP. The information of the objects to be transferred is contained in
|
||||
// a file referenced by a URL. The first line in the file must be
|
||||
// `"TsvHttpData-1.0"`, which specifies the format of the file. Subsequent
|
||||
// lines specify the information of the list of objects, one object per list
|
||||
// entry. Each entry has the following tab-delimited fields:
|
||||
//
|
||||
// * HTTP URL - The location of the object.
|
||||
// * **HTTP URL** — The location of the object.
|
||||
//
|
||||
// * Length - The size of the object in bytes.
|
||||
// * **Length** — The size of the object in bytes.
|
||||
//
|
||||
// * MD5 - The base64-encoded MD5 hash of the object.
|
||||
// * **MD5** — The base64-encoded MD5 hash of the object.
|
||||
//
|
||||
// For an example of a valid TSV file, see
|
||||
// [Transferring data from
|
||||
// URLs](https://cloud.google.com/storage/transfer/create-url-list).
|
||||
// URLs](https://cloud.google.com/storage-transfer/docs/create-url-list).
|
||||
//
|
||||
// When transferring data based on a URL list, keep the following in mind:
|
||||
//
|
||||
|
|
@ -161,51 +303,61 @@ message AwsS3Data {
|
|||
// object fetched, the object will not be transferred.
|
||||
//
|
||||
// * If the specified MD5 does not match the MD5 computed from the transferred
|
||||
// bytes, the object transfer will fail. For more information, see
|
||||
// [Generating MD5 hashes](https://cloud.google.com/storage/transfer/#md5)
|
||||
// bytes, the object transfer will fail.
|
||||
//
|
||||
// * Ensure that each URL you specify is publicly accessible. For
|
||||
// example, in Google Cloud Storage you can
|
||||
// example, in Cloud Storage you can
|
||||
// [share an object publicly]
|
||||
// (https://cloud.google.com/storage/docs/cloud-console#_sharingdata) and get
|
||||
// a link to it.
|
||||
// (/storage/docs/cloud-console#_sharingdata) and get a link to it.
|
||||
//
|
||||
// * Storage Transfer Service obeys `robots.txt` rules and requires the source
|
||||
// HTTP server to support `Range` requests and to return a `Content-Length`
|
||||
// header in each response.
|
||||
//
|
||||
// * [ObjectConditions](#ObjectConditions) have no effect when filtering objects
|
||||
// to transfer.
|
||||
// * [ObjectConditions][google.storagetransfer.v1.ObjectConditions] have no
|
||||
// effect when filtering objects to transfer.
|
||||
message HttpData {
|
||||
// The URL that points to the file that stores the object list entries.
|
||||
// This file must allow public access. Currently, only URLs with HTTP and
|
||||
// HTTPS schemes are supported.
|
||||
// Required.
|
||||
string list_url = 1;
|
||||
// Required. The URL that points to the file that stores the object list
|
||||
// entries. This file must allow public access. Currently, only URLs with
|
||||
// HTTP and HTTPS schemes are supported.
|
||||
string list_url = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// TransferOptions uses three boolean parameters to define the actions
|
||||
// to be performed on objects in a transfer.
|
||||
// TransferOptions define the actions to be performed on objects in a transfer.
|
||||
message TransferOptions {
|
||||
// Whether overwriting objects that already exist in the sink is allowed.
|
||||
// When to overwrite objects that already exist in the sink. The default is
|
||||
// that only objects that are different from the source are ovewritten. If
|
||||
// true, all objects in the sink whose name matches an object in the source
|
||||
// will be overwritten with the source object.
|
||||
bool overwrite_objects_already_existing_in_sink = 1;
|
||||
|
||||
// Whether objects that exist only in the sink should be deleted. Note that
|
||||
// this option and `deleteObjectsFromSourceAfterTransfer` are mutually
|
||||
// exclusive.
|
||||
// Whether objects that exist only in the sink should be deleted.
|
||||
//
|
||||
// **Note:** This option and [delete_objects_from_source_after_transfer]
|
||||
// [google.storagetransfer.v1.TransferOptions.delete_objects_from_source_after_transfer]
|
||||
// are mutually exclusive.
|
||||
bool delete_objects_unique_in_sink = 2;
|
||||
|
||||
// Whether objects should be deleted from the source after they are
|
||||
// transferred to the sink. Note that this option and
|
||||
// `deleteObjectsUniqueInSink` are mutually exclusive.
|
||||
// transferred to the sink.
|
||||
//
|
||||
// **Note:** This option and [delete_objects_unique_in_sink]
|
||||
// [google.storagetransfer.v1.TransferOptions.delete_objects_unique_in_sink]
|
||||
// are mutually exclusive.
|
||||
bool delete_objects_from_source_after_transfer = 3;
|
||||
}
|
||||
|
||||
// Configuration for running a transfer.
|
||||
message TransferSpec {
|
||||
// The write sink for the data.
|
||||
oneof data_sink {
|
||||
// A Cloud Storage data sink.
|
||||
GcsData gcs_data_sink = 4;
|
||||
}
|
||||
|
||||
// The read source of the data.
|
||||
oneof data_source {
|
||||
// A Google Cloud Storage data source.
|
||||
// A Cloud Storage data source.
|
||||
GcsData gcs_data_source = 1;
|
||||
|
||||
// An AWS S3 data source.
|
||||
|
|
@ -213,46 +365,96 @@ message TransferSpec {
|
|||
|
||||
// An HTTP URL data source.
|
||||
HttpData http_data_source = 3;
|
||||
}
|
||||
|
||||
// The write sink for the data.
|
||||
oneof data_sink {
|
||||
// A Google Cloud Storage data sink.
|
||||
GcsData gcs_data_sink = 4;
|
||||
// An Azure Blob Storage data source.
|
||||
AzureBlobStorageData azure_blob_storage_data_source = 8;
|
||||
}
|
||||
|
||||
// Only objects that satisfy these object conditions are included in the set
|
||||
// of data source and data sink objects. Object conditions based on
|
||||
// objects' `lastModificationTime` do not exclude objects in a data sink.
|
||||
// objects' "last modification time" do not exclude objects in a data sink.
|
||||
ObjectConditions object_conditions = 5;
|
||||
|
||||
// If the option `deleteObjectsUniqueInSink` is `true`, object conditions
|
||||
// based on objects' `lastModificationTime` are ignored and do not exclude
|
||||
// objects in a data source or a data sink.
|
||||
// If the option
|
||||
// [delete_objects_unique_in_sink][google.storagetransfer.v1.TransferOptions.delete_objects_unique_in_sink]
|
||||
// is `true` and time-based object conditions such as 'last modification time'
|
||||
// are specified, the request fails with an
|
||||
// [INVALID_ARGUMENT][google.rpc.Code.INVALID_ARGUMENT] error.
|
||||
TransferOptions transfer_options = 6;
|
||||
}
|
||||
|
||||
// Transfers can be scheduled to recur or to run just once.
|
||||
message Schedule {
|
||||
// The first day the recurring transfer is scheduled to run. If
|
||||
// `scheduleStartDate` is in the past, the transfer will run for the first
|
||||
// time on the following day.
|
||||
// Required.
|
||||
google.type.Date schedule_start_date = 1;
|
||||
// Required. The start date of a transfer. Date boundaries are determined
|
||||
// relative to UTC time. If `schedule_start_date` and
|
||||
// [start_time_of_day][google.storagetransfer.v1.Schedule.start_time_of_day]
|
||||
// are in the past relative to the job's creation time, the transfer starts
|
||||
// the day after you schedule the transfer request.
|
||||
//
|
||||
// **Note:** When starting jobs at or near midnight UTC it is possible that
|
||||
// a job will start later than expected. For example, if you send an outbound
|
||||
// request on June 1 one millisecond prior to midnight UTC and the Storage
|
||||
// Transfer Service server receives the request on June 2, then it will create
|
||||
// a TransferJob with `schedule_start_date` set to June 2 and a
|
||||
// `start_time_of_day` set to midnight UTC. The first scheduled
|
||||
// [TransferOperation][google.storagetransfer.v1.TransferOperation] will take
|
||||
// place on June 3 at midnight UTC.
|
||||
google.type.Date schedule_start_date = 1
|
||||
[(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// The last day the recurring transfer will be run. If `scheduleEndDate`
|
||||
// is the same as `scheduleStartDate`, the transfer will be executed only
|
||||
// once.
|
||||
// The last day a transfer runs. Date boundaries are determined relative to
|
||||
// UTC time. A job will run once per 24 hours within the following guidelines:
|
||||
//
|
||||
// * If `schedule_end_date` and
|
||||
// [schedule_start_date][google.storagetransfer.v1.Schedule.schedule_start_date]
|
||||
// are the same and in
|
||||
// the future relative to UTC, the transfer is executed only one time.
|
||||
// * If `schedule_end_date` is later than `schedule_start_date` and
|
||||
// `schedule_end_date` is in the future relative to UTC, the job will
|
||||
// run each day at
|
||||
// [start_time_of_day][google.storagetransfer.v1.Schedule.start_time_of_day]
|
||||
// through `schedule_end_date`.
|
||||
google.type.Date schedule_end_date = 2;
|
||||
|
||||
// The time in UTC at which the transfer will be scheduled to start in a day.
|
||||
// Transfers may start later than this time. If not specified, recurring and
|
||||
// one-time transfers that are scheduled to run today will run immediately;
|
||||
// recurring transfers that are scheduled to run on a future date will start
|
||||
// at approximately midnight UTC on that date. Note that when configuring a
|
||||
// transfer with the Cloud Platform Console, the transfer's start time in a
|
||||
// day is specified in your local timezone.
|
||||
// The time in UTC that a transfer job is scheduled to run. Transfers may
|
||||
// start later than this time.
|
||||
//
|
||||
// If `start_time_of_day` is not specified:
|
||||
//
|
||||
// * One-time transfers run immediately.
|
||||
// * Recurring transfers run immediately, and each day at midnight UTC,
|
||||
// through
|
||||
// [schedule_end_date][google.storagetransfer.v1.Schedule.schedule_end_date].
|
||||
//
|
||||
// If `start_time_of_day` is specified:
|
||||
//
|
||||
// * One-time transfers run at the specified time.
|
||||
// * Recurring transfers run at the specified time each day, through
|
||||
// `schedule_end_date`.
|
||||
google.type.TimeOfDay start_time_of_day = 3;
|
||||
|
||||
// The time in UTC that no further transfer operations are scheduled. Combined
|
||||
// with
|
||||
// [schedule_end_date][google.storagetransfer.v1.Schedule.schedule_end_date],
|
||||
// `end_time_of_day` specifies the end date and time for starting new transfer
|
||||
// operations. This field must be greater than or equal to the timestamp
|
||||
// corresponding to the combintation of
|
||||
// [schedule_start_date][google.storagetransfer.v1.Schedule.schedule_start_date]
|
||||
// and
|
||||
// [start_time_of_day][google.storagetransfer.v1.Schedule.start_time_of_day],
|
||||
// and is subject to the following:
|
||||
//
|
||||
// * If `end_time_of_day` is not set and `schedule_end_date` is set, then
|
||||
// a default value of `23:59:59` is used for `end_time_of_day`.
|
||||
//
|
||||
// * If `end_time_of_day` is set and `schedule_end_date` is not set, then
|
||||
// [INVALID_ARGUMENT][google.rpc.Code.INVALID_ARGUMENT] is returned.
|
||||
google.type.TimeOfDay end_time_of_day = 4;
|
||||
|
||||
// Interval between the start of each scheduled TransferOperation. If
|
||||
// unspecified, the default value is 24 hours. This value may not be less than
|
||||
// 1 hour.
|
||||
google.protobuf.Duration repeat_interval = 5;
|
||||
}
|
||||
|
||||
// This resource represents the configuration of a transfer job that runs
|
||||
|
|
@ -271,54 +473,81 @@ message TransferJob {
|
|||
|
||||
// This is a soft delete state. After a transfer job is set to this
|
||||
// state, the job and all the transfer executions are subject to
|
||||
// garbage collection.
|
||||
// garbage collection. Transfer jobs become eligible for garbage collection
|
||||
// 30 days after their status is set to `DELETED`.
|
||||
DELETED = 3;
|
||||
}
|
||||
|
||||
// A globally unique name assigned by Storage Transfer Service when the
|
||||
// job is created. This field should be left empty in requests to create a new
|
||||
// transfer job; otherwise, the requests result in an `INVALID_ARGUMENT`
|
||||
// error.
|
||||
// A unique name (within the transfer project) assigned when the job is
|
||||
// created. If this field is empty in a CreateTransferJobRequest, Storage
|
||||
// Transfer Service will assign a unique name. Otherwise, the specified name
|
||||
// is used as the unique name for this job.
|
||||
//
|
||||
// If the specified name is in use by a job, the creation request fails with
|
||||
// an [ALREADY_EXISTS][google.rpc.Code.ALREADY_EXISTS] error.
|
||||
//
|
||||
// This name must start with `"transferJobs/"` prefix and end with a letter or
|
||||
// a number, and should be no more than 128 characters. This name must not
|
||||
// start with 'transferJobs/OPI'. 'transferJobs/OPI' is a reserved prefix.
|
||||
// Example:
|
||||
// `"transferJobs/^(?!OPI)[A-Za-z0-9-._~]*[A-Za-z0-9]$"`
|
||||
//
|
||||
// Invalid job names will fail with an
|
||||
// [INVALID_ARGUMENT][google.rpc.Code.INVALID_ARGUMENT] error.
|
||||
string name = 1;
|
||||
|
||||
// A description provided by the user for the job. Its max length is 1024
|
||||
// bytes when Unicode-encoded.
|
||||
string description = 2;
|
||||
|
||||
// The ID of the Google Cloud Platform Console project that owns the job.
|
||||
// The ID of the Google Cloud Platform Project that owns the job.
|
||||
string project_id = 3;
|
||||
|
||||
// Transfer specification.
|
||||
TransferSpec transfer_spec = 4;
|
||||
|
||||
// Schedule specification.
|
||||
// Notification configuration.
|
||||
NotificationConfig notification_config = 11;
|
||||
|
||||
// Specifies schedule for the transfer job.
|
||||
// This is an optional field. When the field is not set, the job will never
|
||||
// execute a transfer, unless you invoke RunTransferJob or update the job to
|
||||
// have a non-empty schedule.
|
||||
Schedule schedule = 5;
|
||||
|
||||
// Status of the job. This value MUST be specified for
|
||||
// `CreateTransferJobRequests`.
|
||||
//
|
||||
// NOTE: The effect of the new job status takes place during a subsequent job
|
||||
// run. For example, if you change the job status from `ENABLED` to
|
||||
// `DISABLED`, and an operation spawned by the transfer is running, the status
|
||||
// change would not affect the current operation.
|
||||
// **Note:** The effect of the new job status takes place during a subsequent
|
||||
// job run. For example, if you change the job status from
|
||||
// [ENABLED][google.storagetransfer.v1.TransferJob.Status.ENABLED] to
|
||||
// [DISABLED][google.storagetransfer.v1.TransferJob.Status.DISABLED], and an
|
||||
// operation spawned by the transfer is running, the status change would not
|
||||
// affect the current operation.
|
||||
Status status = 6;
|
||||
|
||||
// This field cannot be changed by user requests.
|
||||
google.protobuf.Timestamp creation_time = 7;
|
||||
// Output only. The time that the transfer job was created.
|
||||
google.protobuf.Timestamp creation_time = 7
|
||||
[(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// This field cannot be changed by user requests.
|
||||
google.protobuf.Timestamp last_modification_time = 8;
|
||||
// Output only. The time that the transfer job was last modified.
|
||||
google.protobuf.Timestamp last_modification_time = 8
|
||||
[(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// This field cannot be changed by user requests.
|
||||
google.protobuf.Timestamp deletion_time = 9;
|
||||
// Output only. The time that the transfer job was deleted.
|
||||
google.protobuf.Timestamp deletion_time = 9
|
||||
[(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// The name of the most recently started TransferOperation of this JobConfig.
|
||||
// Present if a TransferOperation has been created for this JobConfig.
|
||||
string latest_operation_name = 12;
|
||||
}
|
||||
|
||||
// An entry describing an error that has occurred.
|
||||
message ErrorLogEntry {
|
||||
// A URL that refers to the target (a data source, a data sink,
|
||||
// Required. A URL that refers to the target (a data source, a data sink,
|
||||
// or an object) with which the error is associated.
|
||||
// Required.
|
||||
string url = 1;
|
||||
string url = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// A list of messages that carry the error details.
|
||||
repeated string error_details = 3;
|
||||
|
|
@ -328,13 +557,15 @@ message ErrorLogEntry {
|
|||
// entries.
|
||||
message ErrorSummary {
|
||||
// Required.
|
||||
google.rpc.Code error_code = 1;
|
||||
google.rpc.Code error_code = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Count of this type of error.
|
||||
// Required.
|
||||
int64 error_count = 2;
|
||||
// Required. Count of this type of error.
|
||||
int64 error_count = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Error samples.
|
||||
//
|
||||
// At most 5 error log entries will be recorded for a given
|
||||
// error code for a single transfer operation.
|
||||
repeated ErrorLogEntry error_log_entries = 3;
|
||||
}
|
||||
|
||||
|
|
@ -382,10 +613,12 @@ message TransferCounters {
|
|||
// Bytes that are deleted from the data sink.
|
||||
int64 bytes_deleted_from_sink = 12;
|
||||
|
||||
// Objects in the data source that failed during the transfer.
|
||||
// Objects in the data source that failed to be transferred or that failed
|
||||
// to be deleted after being transferred.
|
||||
int64 objects_from_source_failed = 13;
|
||||
|
||||
// Bytes in the data source that failed during the transfer.
|
||||
// Bytes in the data source that failed to be transferred or that failed to
|
||||
// be deleted after being transferred.
|
||||
int64 bytes_from_source_failed = 14;
|
||||
|
||||
// Objects that failed to be deleted from the data sink.
|
||||
|
|
@ -395,6 +628,80 @@ message TransferCounters {
|
|||
int64 bytes_failed_to_delete_from_sink = 16;
|
||||
}
|
||||
|
||||
// Specification to configure notifications published to Cloud Pub/Sub.
|
||||
// Notifications will be published to the customer-provided topic using the
|
||||
// following `PubsubMessage.attributes`:
|
||||
//
|
||||
// * `"eventType"`: one of the
|
||||
// [EventType][google.storagetransfer.v1.NotificationConfig.EventType] values
|
||||
// * `"payloadFormat"`: one of the
|
||||
// [PayloadFormat][google.storagetransfer.v1.NotificationConfig.PayloadFormat]
|
||||
// values
|
||||
// * `"projectId"`: the
|
||||
// [project_id][google.storagetransfer.v1.TransferOperation.project_id] of the
|
||||
// `TransferOperation`
|
||||
// * `"transferJobName"`: the
|
||||
// [transfer_job_name][google.storagetransfer.v1.TransferOperation.transfer_job_name]
|
||||
// of the `TransferOperation`
|
||||
// * `"transferOperationName"`: the
|
||||
// [name][google.storagetransfer.v1.TransferOperation.name] of the
|
||||
// `TransferOperation`
|
||||
//
|
||||
// The `PubsubMessage.data` will contain a
|
||||
// [TransferOperation][google.storagetransfer.v1.TransferOperation] resource
|
||||
// formatted according to the specified `PayloadFormat`.
|
||||
message NotificationConfig {
|
||||
// Enum for specifying event types for which notifications are to be
|
||||
// published.
|
||||
//
|
||||
// Additional event types may be added in the future. Clients should either
|
||||
// safely ignore unrecognized event types or explicitly specify which event
|
||||
// types they are prepared to accept.
|
||||
enum EventType {
|
||||
// Illegal value, to avoid allowing a default.
|
||||
EVENT_TYPE_UNSPECIFIED = 0;
|
||||
|
||||
// `TransferOperation` completed with status
|
||||
// [SUCCESS][google.storagetransfer.v1.TransferOperation.Status.SUCCESS].
|
||||
TRANSFER_OPERATION_SUCCESS = 1;
|
||||
|
||||
// `TransferOperation` completed with status
|
||||
// [FAILED][google.storagetransfer.v1.TransferOperation.Status.FAILED].
|
||||
TRANSFER_OPERATION_FAILED = 2;
|
||||
|
||||
// `TransferOperation` completed with status
|
||||
// [ABORTED][google.storagetransfer.v1.TransferOperation.Status.ABORTED].
|
||||
TRANSFER_OPERATION_ABORTED = 3;
|
||||
}
|
||||
|
||||
// Enum for specifying the format of a notification message's payload.
|
||||
enum PayloadFormat {
|
||||
// Illegal value, to avoid allowing a default.
|
||||
PAYLOAD_FORMAT_UNSPECIFIED = 0;
|
||||
|
||||
// No payload is included with the notification.
|
||||
NONE = 1;
|
||||
|
||||
// `TransferOperation` is [formatted as a JSON
|
||||
// response](https://developers.google.com/protocol-buffers/docs/proto3#json),
|
||||
// in application/json.
|
||||
JSON = 2;
|
||||
}
|
||||
|
||||
// Required. The `Topic.name` of the Cloud Pub/Sub topic to which to publish
|
||||
// notifications. Must be of the format: `projects/{project}/topics/{topic}`.
|
||||
// Not matching this format will result in an
|
||||
// [INVALID_ARGUMENT][google.rpc.Code.INVALID_ARGUMENT] error.
|
||||
string pubsub_topic = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Event types for which a notification is desired. If empty, send
|
||||
// notifications for all event types.
|
||||
repeated EventType event_types = 2;
|
||||
|
||||
// Required. The desired format of the notification message payloads.
|
||||
PayloadFormat payload_format = 3 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// A description of the execution of a transfer.
|
||||
message TransferOperation {
|
||||
// The status of a TransferOperation.
|
||||
|
|
@ -416,19 +723,23 @@ message TransferOperation {
|
|||
|
||||
// Aborted by the user.
|
||||
ABORTED = 5;
|
||||
|
||||
// Temporarily delayed by the system. No user action is required.
|
||||
QUEUED = 6;
|
||||
}
|
||||
|
||||
// A globally unique ID assigned by the system.
|
||||
string name = 1;
|
||||
|
||||
// The ID of the Google Cloud Platform Console project that owns the
|
||||
// operation. Required.
|
||||
// The ID of the Google Cloud Platform Project that owns the operation.
|
||||
string project_id = 2;
|
||||
|
||||
// Transfer specification.
|
||||
// Required.
|
||||
TransferSpec transfer_spec = 3;
|
||||
|
||||
// Notification configuration.
|
||||
NotificationConfig notification_config = 10;
|
||||
|
||||
// Start time of this transfer execution.
|
||||
google.protobuf.Timestamp start_time = 4;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue