google-cloud-storage_transfer-v1 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +12 -0
  3. data/AUTHENTICATION.md +167 -0
  4. data/LICENSE.md +201 -0
  5. data/README.md +139 -0
  6. data/lib/google-cloud-storage_transfer-v1.rb +21 -0
  7. data/lib/google/cloud/storage_transfer/v1.rb +38 -0
  8. data/lib/google/cloud/storage_transfer/v1/storage_transfer_service.rb +51 -0
  9. data/lib/google/cloud/storage_transfer/v1/storage_transfer_service/client.rb +964 -0
  10. data/lib/google/cloud/storage_transfer/v1/storage_transfer_service/credentials.rb +47 -0
  11. data/lib/google/cloud/storage_transfer/v1/storage_transfer_service/operations.rb +664 -0
  12. data/lib/google/cloud/storage_transfer/v1/version.rb +28 -0
  13. data/lib/google/storagetransfer/v1/transfer_pb.rb +70 -0
  14. data/lib/google/storagetransfer/v1/transfer_services_pb.rb +77 -0
  15. data/lib/google/storagetransfer/v1/transfer_types_pb.rb +193 -0
  16. data/proto_docs/README.md +4 -0
  17. data/proto_docs/google/api/field_behavior.rb +71 -0
  18. data/proto_docs/google/api/resource.rb +283 -0
  19. data/proto_docs/google/longrunning/operations.rb +164 -0
  20. data/proto_docs/google/protobuf/any.rb +141 -0
  21. data/proto_docs/google/protobuf/duration.rb +98 -0
  22. data/proto_docs/google/protobuf/empty.rb +36 -0
  23. data/proto_docs/google/protobuf/field_mask.rb +229 -0
  24. data/proto_docs/google/protobuf/timestamp.rb +129 -0
  25. data/proto_docs/google/rpc/code.rb +185 -0
  26. data/proto_docs/google/rpc/status.rb +46 -0
  27. data/proto_docs/google/storagetransfer/v1/transfer.rb +167 -0
  28. data/proto_docs/google/storagetransfer/v1/transfer_types.rb +790 -0
  29. data/proto_docs/google/type/date.rb +53 -0
  30. data/proto_docs/google/type/timeofday.rb +45 -0
  31. metadata +222 -0
@@ -0,0 +1,185 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2021 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Rpc
22
+ # The canonical error codes for gRPC APIs.
23
+ #
24
+ #
25
+ # Sometimes multiple error codes may apply. Services should return
26
+ # the most specific error code that applies. For example, prefer
27
+ # `OUT_OF_RANGE` over `FAILED_PRECONDITION` if both codes apply.
28
+ # Similarly prefer `NOT_FOUND` or `ALREADY_EXISTS` over `FAILED_PRECONDITION`.
29
+ module Code
30
+ # Not an error; returned on success
31
+ #
32
+ # HTTP Mapping: 200 OK
33
+ OK = 0
34
+
35
+ # The operation was cancelled, typically by the caller.
36
+ #
37
+ # HTTP Mapping: 499 Client Closed Request
38
+ CANCELLED = 1
39
+
40
+ # Unknown error. For example, this error may be returned when
41
+ # a `Status` value received from another address space belongs to
42
+ # an error space that is not known in this address space. Also
43
+ # errors raised by APIs that do not return enough error information
44
+ # may be converted to this error.
45
+ #
46
+ # HTTP Mapping: 500 Internal Server Error
47
+ UNKNOWN = 2
48
+
49
+ # The client specified an invalid argument. Note that this differs
50
+ # from `FAILED_PRECONDITION`. `INVALID_ARGUMENT` indicates arguments
51
+ # that are problematic regardless of the state of the system
52
+ # (e.g., a malformed file name).
53
+ #
54
+ # HTTP Mapping: 400 Bad Request
55
+ INVALID_ARGUMENT = 3
56
+
57
+ # The deadline expired before the operation could complete. For operations
58
+ # that change the state of the system, this error may be returned
59
+ # even if the operation has completed successfully. For example, a
60
+ # successful response from a server could have been delayed long
61
+ # enough for the deadline to expire.
62
+ #
63
+ # HTTP Mapping: 504 Gateway Timeout
64
+ DEADLINE_EXCEEDED = 4
65
+
66
+ # Some requested entity (e.g., file or directory) was not found.
67
+ #
68
+ # Note to server developers: if a request is denied for an entire class
69
+ # of users, such as gradual feature rollout or undocumented whitelist,
70
+ # `NOT_FOUND` may be used. If a request is denied for some users within
71
+ # a class of users, such as user-based access control, `PERMISSION_DENIED`
72
+ # must be used.
73
+ #
74
+ # HTTP Mapping: 404 Not Found
75
+ NOT_FOUND = 5
76
+
77
+ # The entity that a client attempted to create (e.g., file or directory)
78
+ # already exists.
79
+ #
80
+ # HTTP Mapping: 409 Conflict
81
+ ALREADY_EXISTS = 6
82
+
83
+ # The caller does not have permission to execute the specified
84
+ # operation. `PERMISSION_DENIED` must not be used for rejections
85
+ # caused by exhausting some resource (use `RESOURCE_EXHAUSTED`
86
+ # instead for those errors). `PERMISSION_DENIED` must not be
87
+ # used if the caller can not be identified (use `UNAUTHENTICATED`
88
+ # instead for those errors). This error code does not imply the
89
+ # request is valid or the requested entity exists or satisfies
90
+ # other pre-conditions.
91
+ #
92
+ # HTTP Mapping: 403 Forbidden
93
+ PERMISSION_DENIED = 7
94
+
95
+ # The request does not have valid authentication credentials for the
96
+ # operation.
97
+ #
98
+ # HTTP Mapping: 401 Unauthorized
99
+ UNAUTHENTICATED = 16
100
+
101
+ # Some resource has been exhausted, perhaps a per-user quota, or
102
+ # perhaps the entire file system is out of space.
103
+ #
104
+ # HTTP Mapping: 429 Too Many Requests
105
+ RESOURCE_EXHAUSTED = 8
106
+
107
+ # The operation was rejected because the system is not in a state
108
+ # required for the operation's execution. For example, the directory
109
+ # to be deleted is non-empty, an rmdir operation is applied to
110
+ # a non-directory, etc.
111
+ #
112
+ # Service implementors can use the following guidelines to decide
113
+ # between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`:
114
+ # (a) Use `UNAVAILABLE` if the client can retry just the failing call.
115
+ # (b) Use `ABORTED` if the client should retry at a higher level
116
+ # (e.g., when a client-specified test-and-set fails, indicating the
117
+ # client should restart a read-modify-write sequence).
118
+ # (c) Use `FAILED_PRECONDITION` if the client should not retry until
119
+ # the system state has been explicitly fixed. E.g., if an "rmdir"
120
+ # fails because the directory is non-empty, `FAILED_PRECONDITION`
121
+ # should be returned since the client should not retry unless
122
+ # the files are deleted from the directory.
123
+ #
124
+ # HTTP Mapping: 400 Bad Request
125
+ FAILED_PRECONDITION = 9
126
+
127
+ # The operation was aborted, typically due to a concurrency issue such as
128
+ # a sequencer check failure or transaction abort.
129
+ #
130
+ # See the guidelines above for deciding between `FAILED_PRECONDITION`,
131
+ # `ABORTED`, and `UNAVAILABLE`.
132
+ #
133
+ # HTTP Mapping: 409 Conflict
134
+ ABORTED = 10
135
+
136
+ # The operation was attempted past the valid range. E.g., seeking or
137
+ # reading past end-of-file.
138
+ #
139
+ # Unlike `INVALID_ARGUMENT`, this error indicates a problem that may
140
+ # be fixed if the system state changes. For example, a 32-bit file
141
+ # system will generate `INVALID_ARGUMENT` if asked to read at an
142
+ # offset that is not in the range [0,2^32-1], but it will generate
143
+ # `OUT_OF_RANGE` if asked to read from an offset past the current
144
+ # file size.
145
+ #
146
+ # There is a fair bit of overlap between `FAILED_PRECONDITION` and
147
+ # `OUT_OF_RANGE`. We recommend using `OUT_OF_RANGE` (the more specific
148
+ # error) when it applies so that callers who are iterating through
149
+ # a space can easily look for an `OUT_OF_RANGE` error to detect when
150
+ # they are done.
151
+ #
152
+ # HTTP Mapping: 400 Bad Request
153
+ OUT_OF_RANGE = 11
154
+
155
+ # The operation is not implemented or is not supported/enabled in this
156
+ # service.
157
+ #
158
+ # HTTP Mapping: 501 Not Implemented
159
+ UNIMPLEMENTED = 12
160
+
161
+ # Internal errors. This means that some invariants expected by the
162
+ # underlying system have been broken. This error code is reserved
163
+ # for serious errors.
164
+ #
165
+ # HTTP Mapping: 500 Internal Server Error
166
+ INTERNAL = 13
167
+
168
+ # The service is currently unavailable. This is most likely a
169
+ # transient condition, which can be corrected by retrying with
170
+ # a backoff. Note that it is not always safe to retry
171
+ # non-idempotent operations.
172
+ #
173
+ # See the guidelines above for deciding between `FAILED_PRECONDITION`,
174
+ # `ABORTED`, and `UNAVAILABLE`.
175
+ #
176
+ # HTTP Mapping: 503 Service Unavailable
177
+ UNAVAILABLE = 14
178
+
179
+ # Unrecoverable data loss or corruption.
180
+ #
181
+ # HTTP Mapping: 500 Internal Server Error
182
+ DATA_LOSS = 15
183
+ end
184
+ end
185
+ end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2021 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Rpc
22
+ # The `Status` type defines a logical error model that is suitable for
23
+ # different programming environments, including REST APIs and RPC APIs. It is
24
+ # used by [gRPC](https://github.com/grpc). Each `Status` message contains
25
+ # three pieces of data: error code, error message, and error details.
26
+ #
27
+ # You can find out more about this error model and how to work with it in the
28
+ # [API Design Guide](https://cloud.google.com/apis/design/errors).
29
+ # @!attribute [rw] code
30
+ # @return [::Integer]
31
+ # The status code, which should be an enum value of {::Google::Rpc::Code google.rpc.Code}.
32
+ # @!attribute [rw] message
33
+ # @return [::String]
34
+ # A developer-facing error message, which should be in English. Any
35
+ # user-facing error message should be localized and sent in the
36
+ # {::Google::Rpc::Status#details google.rpc.Status.details} field, or localized by the client.
37
+ # @!attribute [rw] details
38
+ # @return [::Array<::Google::Protobuf::Any>]
39
+ # A list of messages that carry the error details. There is a common set of
40
+ # message types for APIs to use.
41
+ class Status
42
+ include ::Google::Protobuf::MessageExts
43
+ extend ::Google::Protobuf::MessageExts::ClassMethods
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,167 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2021 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Cloud
22
+ module StorageTransfer
23
+ module V1
24
+ # Request passed to GetGoogleServiceAccount.
25
+ # @!attribute [rw] project_id
26
+ # @return [::String]
27
+ # Required. The ID of the Google Cloud Platform Console project that the
28
+ # Google service account is associated with.
29
+ class GetGoogleServiceAccountRequest
30
+ include ::Google::Protobuf::MessageExts
31
+ extend ::Google::Protobuf::MessageExts::ClassMethods
32
+ end
33
+
34
+ # Request passed to CreateTransferJob.
35
+ # @!attribute [rw] transfer_job
36
+ # @return [::Google::Cloud::StorageTransfer::V1::TransferJob]
37
+ # Required. The job to create.
38
+ class CreateTransferJobRequest
39
+ include ::Google::Protobuf::MessageExts
40
+ extend ::Google::Protobuf::MessageExts::ClassMethods
41
+ end
42
+
43
+ # Request passed to UpdateTransferJob.
44
+ # @!attribute [rw] job_name
45
+ # @return [::String]
46
+ # Required. The name of job to update.
47
+ # @!attribute [rw] project_id
48
+ # @return [::String]
49
+ # Required. The ID of the Google Cloud Platform Console project that owns the
50
+ # job.
51
+ # @!attribute [rw] transfer_job
52
+ # @return [::Google::Cloud::StorageTransfer::V1::TransferJob]
53
+ # Required. The job to update. `transferJob` is expected to specify only
54
+ # four fields:
55
+ # {::Google::Cloud::StorageTransfer::V1::TransferJob#description description},
56
+ # {::Google::Cloud::StorageTransfer::V1::TransferJob#transfer_spec transfer_spec},
57
+ # {::Google::Cloud::StorageTransfer::V1::TransferJob#notification_config notification_config},
58
+ # and {::Google::Cloud::StorageTransfer::V1::TransferJob#status status}. An
59
+ # `UpdateTransferJobRequest` that specifies other fields are rejected with
60
+ # the error {::Google::Rpc::Code::INVALID_ARGUMENT INVALID_ARGUMENT}. Updating a
61
+ # job status to
62
+ # {::Google::Cloud::StorageTransfer::V1::TransferJob::Status::DELETED DELETED} requires
63
+ # `storagetransfer.jobs.delete` permissions.
64
+ # @!attribute [rw] update_transfer_job_field_mask
65
+ # @return [::Google::Protobuf::FieldMask]
66
+ # The field mask of the fields in `transferJob` that are to be updated in
67
+ # this request. Fields in `transferJob` that can be updated are:
68
+ # {::Google::Cloud::StorageTransfer::V1::TransferJob#description description},
69
+ # {::Google::Cloud::StorageTransfer::V1::TransferJob#transfer_spec transfer_spec},
70
+ # {::Google::Cloud::StorageTransfer::V1::TransferJob#notification_config notification_config},
71
+ # and {::Google::Cloud::StorageTransfer::V1::TransferJob#status status}. To update the
72
+ # `transfer_spec` of the job, a complete transfer specification must be
73
+ # provided. An incomplete specification missing any required fields is
74
+ # rejected with the error
75
+ # {::Google::Rpc::Code::INVALID_ARGUMENT INVALID_ARGUMENT}.
76
+ class UpdateTransferJobRequest
77
+ include ::Google::Protobuf::MessageExts
78
+ extend ::Google::Protobuf::MessageExts::ClassMethods
79
+ end
80
+
81
+ # Request passed to GetTransferJob.
82
+ # @!attribute [rw] job_name
83
+ # @return [::String]
84
+ # Required.
85
+ # The job to get.
86
+ # @!attribute [rw] project_id
87
+ # @return [::String]
88
+ # Required. The ID of the Google Cloud Platform Console project that owns the
89
+ # job.
90
+ class GetTransferJobRequest
91
+ include ::Google::Protobuf::MessageExts
92
+ extend ::Google::Protobuf::MessageExts::ClassMethods
93
+ end
94
+
95
+ # `projectId`, `jobNames`, and `jobStatuses` are query parameters that can
96
+ # be specified when listing transfer jobs.
97
+ # @!attribute [rw] filter
98
+ # @return [::String]
99
+ # Required. A list of query parameters specified as JSON text in the form of:
100
+ # `{"projectId":"my_project_id",
101
+ # "jobNames":["jobid1","jobid2",...],
102
+ # "jobStatuses":["status1","status2",...]}`
103
+ #
104
+ # Since `jobNames` and `jobStatuses` support multiple values, their values
105
+ # must be specified with array notation. `projectId` is required.
106
+ # `jobNames` and `jobStatuses` are optional. The valid values for
107
+ # `jobStatuses` are case-insensitive:
108
+ # {::Google::Cloud::StorageTransfer::V1::TransferJob::Status::ENABLED ENABLED},
109
+ # {::Google::Cloud::StorageTransfer::V1::TransferJob::Status::DISABLED DISABLED}, and
110
+ # {::Google::Cloud::StorageTransfer::V1::TransferJob::Status::DELETED DELETED}.
111
+ # @!attribute [rw] page_size
112
+ # @return [::Integer]
113
+ # The list page size. The max allowed value is 256.
114
+ # @!attribute [rw] page_token
115
+ # @return [::String]
116
+ # The list page token.
117
+ class ListTransferJobsRequest
118
+ include ::Google::Protobuf::MessageExts
119
+ extend ::Google::Protobuf::MessageExts::ClassMethods
120
+ end
121
+
122
+ # Response from ListTransferJobs.
123
+ # @!attribute [rw] transfer_jobs
124
+ # @return [::Array<::Google::Cloud::StorageTransfer::V1::TransferJob>]
125
+ # A list of transfer jobs.
126
+ # @!attribute [rw] next_page_token
127
+ # @return [::String]
128
+ # The list next page token.
129
+ class ListTransferJobsResponse
130
+ include ::Google::Protobuf::MessageExts
131
+ extend ::Google::Protobuf::MessageExts::ClassMethods
132
+ end
133
+
134
+ # Request passed to PauseTransferOperation.
135
+ # @!attribute [rw] name
136
+ # @return [::String]
137
+ # Required. The name of the transfer operation.
138
+ class PauseTransferOperationRequest
139
+ include ::Google::Protobuf::MessageExts
140
+ extend ::Google::Protobuf::MessageExts::ClassMethods
141
+ end
142
+
143
+ # Request passed to ResumeTransferOperation.
144
+ # @!attribute [rw] name
145
+ # @return [::String]
146
+ # Required. The name of the transfer operation.
147
+ class ResumeTransferOperationRequest
148
+ include ::Google::Protobuf::MessageExts
149
+ extend ::Google::Protobuf::MessageExts::ClassMethods
150
+ end
151
+
152
+ # Request passed to RunTransferJob.
153
+ # @!attribute [rw] job_name
154
+ # @return [::String]
155
+ # Required. The name of the transfer job.
156
+ # @!attribute [rw] project_id
157
+ # @return [::String]
158
+ # Required. The ID of the Google Cloud Platform Console project that owns the
159
+ # transfer job.
160
+ class RunTransferJobRequest
161
+ include ::Google::Protobuf::MessageExts
162
+ extend ::Google::Protobuf::MessageExts::ClassMethods
163
+ end
164
+ end
165
+ end
166
+ end
167
+ end
@@ -0,0 +1,790 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2021 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Cloud
22
+ module StorageTransfer
23
+ module V1
24
+ # Google service account
25
+ # @!attribute [rw] account_email
26
+ # @return [::String]
27
+ # Email address of the service account.
28
+ # @!attribute [rw] subject_id
29
+ # @return [::String]
30
+ # Unique identifier for the service account.
31
+ class GoogleServiceAccount
32
+ include ::Google::Protobuf::MessageExts
33
+ extend ::Google::Protobuf::MessageExts::ClassMethods
34
+ end
35
+
36
+ # AWS access key (see
37
+ # [AWS Security
38
+ # Credentials](https://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html)).
39
+ #
40
+ # For information on our data retention policy for user credentials, see
41
+ # [User credentials](/storage-transfer/docs/data-retention#user-credentials).
42
+ # @!attribute [rw] access_key_id
43
+ # @return [::String]
44
+ # Required. AWS access key ID.
45
+ # @!attribute [rw] secret_access_key
46
+ # @return [::String]
47
+ # Required. AWS secret access key. This field is not returned in RPC
48
+ # responses.
49
+ class AwsAccessKey
50
+ include ::Google::Protobuf::MessageExts
51
+ extend ::Google::Protobuf::MessageExts::ClassMethods
52
+ end
53
+
54
+ # Azure credentials
55
+ #
56
+ # For information on our data retention policy for user credentials, see
57
+ # [User credentials](/storage-transfer/docs/data-retention#user-credentials).
58
+ # @!attribute [rw] sas_token
59
+ # @return [::String]
60
+ # Required. Azure shared access signature (SAS).
61
+ #
62
+ # <aside class="note">
63
+ # <strong>Note:</strong>Copying data from Azure Data Lake
64
+ # Storage (ADLS) Gen 2 is in [Preview](/products/#product-launch-stages).
65
+ # During Preview, if you are copying data from ADLS Gen 2, you must use an
66
+ # account SAS.
67
+ # </aside>
68
+ #
69
+ # For more information about SAS, see
70
+ # [Grant limited access to Azure Storage resources using shared access
71
+ # signatures
72
+ # (SAS)](https://docs.microsoft.com/en-us/azure/storage/common/storage-sas-overview).
73
+ class AzureCredentials
74
+ include ::Google::Protobuf::MessageExts
75
+ extend ::Google::Protobuf::MessageExts::ClassMethods
76
+ end
77
+
78
+ # Conditions that determine which objects will be transferred. Applies only
79
+ # to Cloud Data Sources such as S3, Azure, and Cloud Storage.
80
+ #
81
+ # The "last modification time" refers to the time of the
82
+ # last change to the object's content or metadata — specifically, this is
83
+ # the `updated` property of Cloud Storage objects, the `LastModified` field
84
+ # of S3 objects, and the `Last-Modified` header of Azure blobs.
85
+ # @!attribute [rw] min_time_elapsed_since_last_modification
86
+ # @return [::Google::Protobuf::Duration]
87
+ # If specified, only objects with a "last modification time" before
88
+ # `NOW` - `min_time_elapsed_since_last_modification` and objects that don't
89
+ # have a "last modification time" are transferred.
90
+ #
91
+ # For each {::Google::Cloud::StorageTransfer::V1::TransferOperation TransferOperation}
92
+ # started by this {::Google::Cloud::StorageTransfer::V1::TransferJob TransferJob}, `NOW`
93
+ # refers to the [start_time]
94
+ # [google.storagetransfer.v1.TransferOperation.start_time] of the
95
+ # `TransferOperation`.
96
+ # @!attribute [rw] max_time_elapsed_since_last_modification
97
+ # @return [::Google::Protobuf::Duration]
98
+ # If specified, only objects with a "last modification time" on or after
99
+ # `NOW` - `max_time_elapsed_since_last_modification` and objects that don't
100
+ # have a "last modification time" are transferred.
101
+ #
102
+ # For each {::Google::Cloud::StorageTransfer::V1::TransferOperation TransferOperation}
103
+ # started by this {::Google::Cloud::StorageTransfer::V1::TransferJob TransferJob},
104
+ # `NOW` refers to the [start_time]
105
+ # [google.storagetransfer.v1.TransferOperation.start_time] of the
106
+ # `TransferOperation`.
107
+ # @!attribute [rw] include_prefixes
108
+ # @return [::Array<::String>]
109
+ # If you specify `include_prefixes`, Storage Transfer Service uses the items
110
+ # in the `include_prefixes` array to determine which objects to include in a
111
+ # transfer. Objects must start with one of the matching `include_prefixes`
112
+ # for inclusion in the transfer. If [exclude_prefixes]
113
+ # [google.storagetransfer.v1.ObjectConditions.exclude_prefixes] is specified,
114
+ # objects must not start with any of the `exclude_prefixes` specified for
115
+ # inclusion in the transfer.
116
+ #
117
+ # The following are requirements of `include_prefixes`:
118
+ #
119
+ # * Each include-prefix can contain any sequence of Unicode characters, to
120
+ # a max length of 1024 bytes when UTF8-encoded, and must not contain
121
+ # Carriage Return or Line Feed characters. Wildcard matching and regular
122
+ # expression matching are not supported.
123
+ #
124
+ # * Each include-prefix must omit the leading slash. For example, to
125
+ # include the object `s3://my-aws-bucket/logs/y=2015/requests.gz`,
126
+ # specify the include-prefix as `logs/y=2015/requests.gz`.
127
+ #
128
+ # * None of the include-prefix values can be empty, if specified.
129
+ #
130
+ # * Each include-prefix must include a distinct portion of the object
131
+ # namespace. No include-prefix may be a prefix of another
132
+ # include-prefix.
133
+ #
134
+ # The max size of `include_prefixes` is 1000.
135
+ #
136
+ # For more information, see [Filtering objects from
137
+ # transfers](/storage-transfer/docs/filtering-objects-from-transfers).
138
+ # @!attribute [rw] exclude_prefixes
139
+ # @return [::Array<::String>]
140
+ # If you specify `exclude_prefixes`, Storage Transfer Service uses the items
141
+ # in the `exclude_prefixes` array to determine which objects to exclude from
142
+ # a transfer. Objects must not start with one of the matching
143
+ # `exclude_prefixes` for inclusion in a transfer.
144
+ #
145
+ # The following are requirements of `exclude_prefixes`:
146
+ #
147
+ # * Each exclude-prefix can contain any sequence of Unicode characters, to
148
+ # a max length of 1024 bytes when UTF8-encoded, and must not contain
149
+ # Carriage Return or Line Feed characters. Wildcard matching and regular
150
+ # expression matching are not supported.
151
+ #
152
+ # * Each exclude-prefix must omit the leading slash. For example, to
153
+ # exclude the object `s3://my-aws-bucket/logs/y=2015/requests.gz`,
154
+ # specify the exclude-prefix as `logs/y=2015/requests.gz`.
155
+ #
156
+ # * None of the exclude-prefix values can be empty, if specified.
157
+ #
158
+ # * Each exclude-prefix must exclude a distinct portion of the object
159
+ # namespace. No exclude-prefix may be a prefix of another
160
+ # exclude-prefix.
161
+ #
162
+ # * If [include_prefixes]
163
+ # [google.storagetransfer.v1.ObjectConditions.include_prefixes] is
164
+ # specified, then each exclude-prefix must start with the value of a path
165
+ # explicitly included by `include_prefixes`.
166
+ #
167
+ # The max size of `exclude_prefixes` is 1000.
168
+ #
169
+ # For more information, see [Filtering objects from
170
+ # transfers](/storage-transfer/docs/filtering-objects-from-transfers).
171
+ # @!attribute [rw] last_modified_since
172
+ # @return [::Google::Protobuf::Timestamp]
173
+ # If specified, only objects with a "last modification time" on or after
174
+ # this timestamp and objects that don't have a "last modification time" are
175
+ # transferred.
176
+ #
177
+ # The `last_modified_since` and `last_modified_before` fields can be used
178
+ # together for chunked data processing. For example, consider a script that
179
+ # processes each day's worth of data at a time. For that you'd set each
180
+ # of the fields as follows:
181
+ #
182
+ # * `last_modified_since` to the start of the day
183
+ #
184
+ # * `last_modified_before` to the end of the day
185
+ # @!attribute [rw] last_modified_before
186
+ # @return [::Google::Protobuf::Timestamp]
187
+ # If specified, only objects with a "last modification time" before this
188
+ # timestamp and objects that don't have a "last modification time" will be
189
+ # transferred.
190
+ class ObjectConditions
191
+ include ::Google::Protobuf::MessageExts
192
+ extend ::Google::Protobuf::MessageExts::ClassMethods
193
+ end
194
+
195
+ # In a GcsData resource, an object's name is the Cloud Storage object's
196
+ # name and its "last modification time" refers to the object's `updated`
197
+ # property of Cloud Storage objects, which changes when the content or the
198
+ # metadata of the object is updated.
199
+ # @!attribute [rw] bucket_name
200
+ # @return [::String]
201
+ # Required. Cloud Storage bucket name. Must meet
202
+ # [Bucket Name Requirements](/storage/docs/naming#requirements).
203
+ # @!attribute [rw] path
204
+ # @return [::String]
205
+ # Root path to transfer objects.
206
+ #
207
+ # Must be an empty string or full path name that ends with a '/'. This field
208
+ # is treated as an object prefix. As such, it should generally not begin with
209
+ # a '/'.
210
+ #
211
+ # The root path value must meet
212
+ # [Object Name Requirements](/storage/docs/naming#objectnames).
213
+ class GcsData
214
+ include ::Google::Protobuf::MessageExts
215
+ extend ::Google::Protobuf::MessageExts::ClassMethods
216
+ end
217
+
218
+ # An AwsS3Data resource can be a data source, but not a data sink.
219
+ # In an AwsS3Data resource, an object's name is the S3 object's key name.
220
+ # @!attribute [rw] bucket_name
221
+ # @return [::String]
222
+ # Required. S3 Bucket name (see
223
+ # [Creating a
224
+ # bucket](https://docs.aws.amazon.com/AmazonS3/latest/dev/create-bucket-get-location-example.html)).
225
+ # @!attribute [rw] aws_access_key
226
+ # @return [::Google::Cloud::StorageTransfer::V1::AwsAccessKey]
227
+ # Input only. AWS access key used to sign the API requests to the AWS S3
228
+ # bucket. Permissions on the bucket must be granted to the access ID of the
229
+ # AWS access key. This field is required.
230
+ #
231
+ # For information on our data retention policy for user credentials, see
232
+ # [User credentials](/storage-transfer/docs/data-retention#user-credentials).
233
+ # @!attribute [rw] path
234
+ # @return [::String]
235
+ # Root path to transfer objects.
236
+ #
237
+ # Must be an empty string or full path name that ends with a '/'. This field
238
+ # is treated as an object prefix. As such, it should generally not begin with
239
+ # a '/'.
240
+ # @!attribute [rw] role_arn
241
+ # @return [::String]
242
+ # Input only. Role arn to support temporary credentials via
243
+ # AssumeRoleWithWebIdentity.
244
+ #
245
+ # When role arn is provided, transfer service will fetch temporary
246
+ # credentials for the session using AssumeRoleWithWebIdentity call for the
247
+ # provided role using the [GoogleServiceAccount] for this project.
248
+ class AwsS3Data
249
+ include ::Google::Protobuf::MessageExts
250
+ extend ::Google::Protobuf::MessageExts::ClassMethods
251
+ end
252
+
253
+ # An AzureBlobStorageData resource can be a data source, but not a data sink.
254
+ # An AzureBlobStorageData resource represents one Azure container. The storage
255
+ # account determines the [Azure
256
+ # endpoint](https://docs.microsoft.com/en-us/azure/storage/common/storage-create-storage-account#storage-account-endpoints).
257
+ # In an AzureBlobStorageData resource, a blobs's name is the [Azure Blob
258
+ # Storage blob's key
259
+ # name](https://docs.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata#blob-names).
260
+ # @!attribute [rw] storage_account
261
+ # @return [::String]
262
+ # Required. The name of the Azure Storage account.
263
+ # @!attribute [rw] azure_credentials
264
+ # @return [::Google::Cloud::StorageTransfer::V1::AzureCredentials]
265
+ # Required. Input only. Credentials used to authenticate API requests to
266
+ # Azure.
267
+ #
268
+ # For information on our data retention policy for user credentials, see
269
+ # [User credentials](/storage-transfer/docs/data-retention#user-credentials).
270
+ # @!attribute [rw] container
271
+ # @return [::String]
272
+ # Required. The container to transfer from the Azure Storage account.
273
+ # @!attribute [rw] path
274
+ # @return [::String]
275
+ # Root path to transfer objects.
276
+ #
277
+ # Must be an empty string or full path name that ends with a '/'. This field
278
+ # is treated as an object prefix. As such, it should generally not begin with
279
+ # a '/'.
280
+ class AzureBlobStorageData
281
+ include ::Google::Protobuf::MessageExts
282
+ extend ::Google::Protobuf::MessageExts::ClassMethods
283
+ end
284
+
285
+ # An HttpData resource specifies a list of objects on the web to be transferred
286
+ # over HTTP. The information of the objects to be transferred is contained in
287
+ # a file referenced by a URL. The first line in the file must be
288
+ # `"TsvHttpData-1.0"`, which specifies the format of the file. Subsequent
289
+ # lines specify the information of the list of objects, one object per list
290
+ # entry. Each entry has the following tab-delimited fields:
291
+ #
292
+ # * **HTTP URL** — The location of the object.
293
+ #
294
+ # * **Length** — The size of the object in bytes.
295
+ #
296
+ # * **MD5** — The base64-encoded MD5 hash of the object.
297
+ #
298
+ # For an example of a valid TSV file, see
299
+ # [Transferring data from
300
+ # URLs](https://cloud.google.com/storage-transfer/docs/create-url-list).
301
+ #
302
+ # When transferring data based on a URL list, keep the following in mind:
303
+ #
304
+ # * When an object located at `http(s)://hostname:port/<URL-path>` is
305
+ # transferred to a data sink, the name of the object at the data sink is
306
+ # `<hostname>/<URL-path>`.
307
+ #
308
+ # * If the specified size of an object does not match the actual size of the
309
+ # object fetched, the object will not be transferred.
310
+ #
311
+ # * If the specified MD5 does not match the MD5 computed from the transferred
312
+ # bytes, the object transfer will fail.
313
+ #
314
+ # * Ensure that each URL you specify is publicly accessible. For
315
+ # example, in Cloud Storage you can
316
+ # [share an object publicly]
317
+ # (/storage/docs/cloud-console#_sharingdata) and get a link to it.
318
+ #
319
+ # * Storage Transfer Service obeys `robots.txt` rules and requires the source
320
+ # HTTP server to support `Range` requests and to return a `Content-Length`
321
+ # header in each response.
322
+ #
323
+ # * {::Google::Cloud::StorageTransfer::V1::ObjectConditions ObjectConditions} have no
324
+ # effect when filtering objects to transfer.
325
+ # @!attribute [rw] list_url
326
+ # @return [::String]
327
+ # Required. The URL that points to the file that stores the object list
328
+ # entries. This file must allow public access. Currently, only URLs with
329
+ # HTTP and HTTPS schemes are supported.
330
+ class HttpData
331
+ include ::Google::Protobuf::MessageExts
332
+ extend ::Google::Protobuf::MessageExts::ClassMethods
333
+ end
334
+
335
+ # TransferOptions define the actions to be performed on objects in a transfer.
336
+ # @!attribute [rw] overwrite_objects_already_existing_in_sink
337
+ # @return [::Boolean]
338
+ # When to overwrite objects that already exist in the sink. The default is
339
+ # that only objects that are different from the source are ovewritten. If
340
+ # true, all objects in the sink whose name matches an object in the source
341
+ # will be overwritten with the source object.
342
+ # @!attribute [rw] delete_objects_unique_in_sink
343
+ # @return [::Boolean]
344
+ # Whether objects that exist only in the sink should be deleted.
345
+ #
346
+ # **Note:** This option and [delete_objects_from_source_after_transfer]
347
+ # [google.storagetransfer.v1.TransferOptions.delete_objects_from_source_after_transfer]
348
+ # are mutually exclusive.
349
+ # @!attribute [rw] delete_objects_from_source_after_transfer
350
+ # @return [::Boolean]
351
+ # Whether objects should be deleted from the source after they are
352
+ # transferred to the sink.
353
+ #
354
+ # **Note:** This option and [delete_objects_unique_in_sink]
355
+ # [google.storagetransfer.v1.TransferOptions.delete_objects_unique_in_sink]
356
+ # are mutually exclusive.
357
+ class TransferOptions
358
+ include ::Google::Protobuf::MessageExts
359
+ extend ::Google::Protobuf::MessageExts::ClassMethods
360
+ end
361
+
362
+ # Configuration for running a transfer.
363
+ # @!attribute [rw] gcs_data_sink
364
+ # @return [::Google::Cloud::StorageTransfer::V1::GcsData]
365
+ # A Cloud Storage data sink.
366
+ # @!attribute [rw] gcs_data_source
367
+ # @return [::Google::Cloud::StorageTransfer::V1::GcsData]
368
+ # A Cloud Storage data source.
369
+ # @!attribute [rw] aws_s3_data_source
370
+ # @return [::Google::Cloud::StorageTransfer::V1::AwsS3Data]
371
+ # An AWS S3 data source.
372
+ # @!attribute [rw] http_data_source
373
+ # @return [::Google::Cloud::StorageTransfer::V1::HttpData]
374
+ # An HTTP URL data source.
375
+ # @!attribute [rw] azure_blob_storage_data_source
376
+ # @return [::Google::Cloud::StorageTransfer::V1::AzureBlobStorageData]
377
+ # An Azure Blob Storage data source.
378
+ # @!attribute [rw] object_conditions
379
+ # @return [::Google::Cloud::StorageTransfer::V1::ObjectConditions]
380
+ # Only objects that satisfy these object conditions are included in the set
381
+ # of data source and data sink objects. Object conditions based on
382
+ # objects' "last modification time" do not exclude objects in a data sink.
383
+ # @!attribute [rw] transfer_options
384
+ # @return [::Google::Cloud::StorageTransfer::V1::TransferOptions]
385
+ # If the option
386
+ # {::Google::Cloud::StorageTransfer::V1::TransferOptions#delete_objects_unique_in_sink delete_objects_unique_in_sink}
387
+ # is `true` and time-based object conditions such as 'last modification time'
388
+ # are specified, the request fails with an
389
+ # {::Google::Rpc::Code::INVALID_ARGUMENT INVALID_ARGUMENT} error.
390
+ class TransferSpec
391
+ include ::Google::Protobuf::MessageExts
392
+ extend ::Google::Protobuf::MessageExts::ClassMethods
393
+ end
394
+
395
+ # Transfers can be scheduled to recur or to run just once.
396
+ # @!attribute [rw] schedule_start_date
397
+ # @return [::Google::Type::Date]
398
+ # Required. The start date of a transfer. Date boundaries are determined
399
+ # relative to UTC time. If `schedule_start_date` and
400
+ # {::Google::Cloud::StorageTransfer::V1::Schedule#start_time_of_day start_time_of_day}
401
+ # are in the past relative to the job's creation time, the transfer starts
402
+ # the day after you schedule the transfer request.
403
+ #
404
+ # **Note:** When starting jobs at or near midnight UTC it is possible that
405
+ # a job will start later than expected. For example, if you send an outbound
406
+ # request on June 1 one millisecond prior to midnight UTC and the Storage
407
+ # Transfer Service server receives the request on June 2, then it will create
408
+ # a TransferJob with `schedule_start_date` set to June 2 and a
409
+ # `start_time_of_day` set to midnight UTC. The first scheduled
410
+ # {::Google::Cloud::StorageTransfer::V1::TransferOperation TransferOperation} will take
411
+ # place on June 3 at midnight UTC.
412
+ # @!attribute [rw] schedule_end_date
413
+ # @return [::Google::Type::Date]
414
+ # The last day a transfer runs. Date boundaries are determined relative to
415
+ # UTC time. A job will run once per 24 hours within the following guidelines:
416
+ #
417
+ # * If `schedule_end_date` and
418
+ # {::Google::Cloud::StorageTransfer::V1::Schedule#schedule_start_date schedule_start_date}
419
+ # are the same and in
420
+ # the future relative to UTC, the transfer is executed only one time.
421
+ # * If `schedule_end_date` is later than `schedule_start_date` and
422
+ # `schedule_end_date` is in the future relative to UTC, the job will
423
+ # run each day at
424
+ # {::Google::Cloud::StorageTransfer::V1::Schedule#start_time_of_day start_time_of_day}
425
+ # through `schedule_end_date`.
426
+ # @!attribute [rw] start_time_of_day
427
+ # @return [::Google::Type::TimeOfDay]
428
+ # The time in UTC that a transfer job is scheduled to run. Transfers may
429
+ # start later than this time.
430
+ #
431
+ # If `start_time_of_day` is not specified:
432
+ #
433
+ # * One-time transfers run immediately.
434
+ # * Recurring transfers run immediately, and each day at midnight UTC,
435
+ # through
436
+ # {::Google::Cloud::StorageTransfer::V1::Schedule#schedule_end_date schedule_end_date}.
437
+ #
438
+ # If `start_time_of_day` is specified:
439
+ #
440
+ # * One-time transfers run at the specified time.
441
+ # * Recurring transfers run at the specified time each day, through
442
+ # `schedule_end_date`.
443
+ # @!attribute [rw] end_time_of_day
444
+ # @return [::Google::Type::TimeOfDay]
445
+ # The time in UTC that no further transfer operations are scheduled. Combined
446
+ # with
447
+ # {::Google::Cloud::StorageTransfer::V1::Schedule#schedule_end_date schedule_end_date},
448
+ # `end_time_of_day` specifies the end date and time for starting new transfer
449
+ # operations. This field must be greater than or equal to the timestamp
450
+ # corresponding to the combintation of
451
+ # {::Google::Cloud::StorageTransfer::V1::Schedule#schedule_start_date schedule_start_date}
452
+ # and
453
+ # {::Google::Cloud::StorageTransfer::V1::Schedule#start_time_of_day start_time_of_day},
454
+ # and is subject to the following:
455
+ #
456
+ # * If `end_time_of_day` is not set and `schedule_end_date` is set, then
457
+ # a default value of `23:59:59` is used for `end_time_of_day`.
458
+ #
459
+ # * If `end_time_of_day` is set and `schedule_end_date` is not set, then
460
+ # {::Google::Rpc::Code::INVALID_ARGUMENT INVALID_ARGUMENT} is returned.
461
+ # @!attribute [rw] repeat_interval
462
+ # @return [::Google::Protobuf::Duration]
463
+ # Interval between the start of each scheduled TransferOperation. If
464
+ # unspecified, the default value is 24 hours. This value may not be less than
465
+ # 1 hour.
466
+ class Schedule
467
+ include ::Google::Protobuf::MessageExts
468
+ extend ::Google::Protobuf::MessageExts::ClassMethods
469
+ end
470
+
471
+ # This resource represents the configuration of a transfer job that runs
472
+ # periodically.
473
+ # @!attribute [rw] name
474
+ # @return [::String]
475
+ # A unique name (within the transfer project) assigned when the job is
476
+ # created. If this field is empty in a CreateTransferJobRequest, Storage
477
+ # Transfer Service will assign a unique name. Otherwise, the specified name
478
+ # is used as the unique name for this job.
479
+ #
480
+ # If the specified name is in use by a job, the creation request fails with
481
+ # an {::Google::Rpc::Code::ALREADY_EXISTS ALREADY_EXISTS} error.
482
+ #
483
+ # This name must start with `"transferJobs/"` prefix and end with a letter or
484
+ # a number, and should be no more than 128 characters. This name must not
485
+ # start with 'transferJobs/OPI'. 'transferJobs/OPI' is a reserved prefix.
486
+ # Example:
487
+ # `"transferJobs/^(?!OPI)[A-Za-z0-9-._~]*[A-Za-z0-9]$"`
488
+ #
489
+ # Invalid job names will fail with an
490
+ # {::Google::Rpc::Code::INVALID_ARGUMENT INVALID_ARGUMENT} error.
491
+ # @!attribute [rw] description
492
+ # @return [::String]
493
+ # A description provided by the user for the job. Its max length is 1024
494
+ # bytes when Unicode-encoded.
495
+ # @!attribute [rw] project_id
496
+ # @return [::String]
497
+ # The ID of the Google Cloud Platform Project that owns the job.
498
+ # @!attribute [rw] transfer_spec
499
+ # @return [::Google::Cloud::StorageTransfer::V1::TransferSpec]
500
+ # Transfer specification.
501
+ # @!attribute [rw] notification_config
502
+ # @return [::Google::Cloud::StorageTransfer::V1::NotificationConfig]
503
+ # Notification configuration.
504
+ # @!attribute [rw] schedule
505
+ # @return [::Google::Cloud::StorageTransfer::V1::Schedule]
506
+ # Specifies schedule for the transfer job.
507
+ # This is an optional field. When the field is not set, the job will never
508
+ # execute a transfer, unless you invoke RunTransferJob or update the job to
509
+ # have a non-empty schedule.
510
+ # @!attribute [rw] status
511
+ # @return [::Google::Cloud::StorageTransfer::V1::TransferJob::Status]
512
+ # Status of the job. This value MUST be specified for
513
+ # `CreateTransferJobRequests`.
514
+ #
515
+ # **Note:** The effect of the new job status takes place during a subsequent
516
+ # job run. For example, if you change the job status from
517
+ # {::Google::Cloud::StorageTransfer::V1::TransferJob::Status::ENABLED ENABLED} to
518
+ # {::Google::Cloud::StorageTransfer::V1::TransferJob::Status::DISABLED DISABLED}, and an
519
+ # operation spawned by the transfer is running, the status change would not
520
+ # affect the current operation.
521
+ # @!attribute [r] creation_time
522
+ # @return [::Google::Protobuf::Timestamp]
523
+ # Output only. The time that the transfer job was created.
524
+ # @!attribute [r] last_modification_time
525
+ # @return [::Google::Protobuf::Timestamp]
526
+ # Output only. The time that the transfer job was last modified.
527
+ # @!attribute [r] deletion_time
528
+ # @return [::Google::Protobuf::Timestamp]
529
+ # Output only. The time that the transfer job was deleted.
530
+ # @!attribute [rw] latest_operation_name
531
+ # @return [::String]
532
+ # The name of the most recently started TransferOperation of this JobConfig.
533
+ # Present if a TransferOperation has been created for this JobConfig.
534
+ class TransferJob
535
+ include ::Google::Protobuf::MessageExts
536
+ extend ::Google::Protobuf::MessageExts::ClassMethods
537
+
538
+ # The status of the transfer job.
539
+ module Status
540
+ # Zero is an illegal value.
541
+ STATUS_UNSPECIFIED = 0
542
+
543
+ # New transfers will be performed based on the schedule.
544
+ ENABLED = 1
545
+
546
+ # New transfers will not be scheduled.
547
+ DISABLED = 2
548
+
549
+ # This is a soft delete state. After a transfer job is set to this
550
+ # state, the job and all the transfer executions are subject to
551
+ # garbage collection. Transfer jobs become eligible for garbage collection
552
+ # 30 days after their status is set to `DELETED`.
553
+ DELETED = 3
554
+ end
555
+ end
556
+
557
+ # An entry describing an error that has occurred.
558
+ # @!attribute [rw] url
559
+ # @return [::String]
560
+ # Required. A URL that refers to the target (a data source, a data sink,
561
+ # or an object) with which the error is associated.
562
+ # @!attribute [rw] error_details
563
+ # @return [::Array<::String>]
564
+ # A list of messages that carry the error details.
565
+ class ErrorLogEntry
566
+ include ::Google::Protobuf::MessageExts
567
+ extend ::Google::Protobuf::MessageExts::ClassMethods
568
+ end
569
+
570
+ # A summary of errors by error code, plus a count and sample error log
571
+ # entries.
572
+ # @!attribute [rw] error_code
573
+ # @return [::Google::Rpc::Code]
574
+ # Required.
575
+ # @!attribute [rw] error_count
576
+ # @return [::Integer]
577
+ # Required. Count of this type of error.
578
+ # @!attribute [rw] error_log_entries
579
+ # @return [::Array<::Google::Cloud::StorageTransfer::V1::ErrorLogEntry>]
580
+ # Error samples.
581
+ #
582
+ # At most 5 error log entries will be recorded for a given
583
+ # error code for a single transfer operation.
584
+ class ErrorSummary
585
+ include ::Google::Protobuf::MessageExts
586
+ extend ::Google::Protobuf::MessageExts::ClassMethods
587
+ end
588
+
589
+ # A collection of counters that report the progress of a transfer operation.
590
+ # @!attribute [rw] objects_found_from_source
591
+ # @return [::Integer]
592
+ # Objects found in the data source that are scheduled to be transferred,
593
+ # excluding any that are filtered based on object conditions or skipped due
594
+ # to sync.
595
+ # @!attribute [rw] bytes_found_from_source
596
+ # @return [::Integer]
597
+ # Bytes found in the data source that are scheduled to be transferred,
598
+ # excluding any that are filtered based on object conditions or skipped due
599
+ # to sync.
600
+ # @!attribute [rw] objects_found_only_from_sink
601
+ # @return [::Integer]
602
+ # Objects found only in the data sink that are scheduled to be deleted.
603
+ # @!attribute [rw] bytes_found_only_from_sink
604
+ # @return [::Integer]
605
+ # Bytes found only in the data sink that are scheduled to be deleted.
606
+ # @!attribute [rw] objects_from_source_skipped_by_sync
607
+ # @return [::Integer]
608
+ # Objects in the data source that are not transferred because they already
609
+ # exist in the data sink.
610
+ # @!attribute [rw] bytes_from_source_skipped_by_sync
611
+ # @return [::Integer]
612
+ # Bytes in the data source that are not transferred because they already
613
+ # exist in the data sink.
614
+ # @!attribute [rw] objects_copied_to_sink
615
+ # @return [::Integer]
616
+ # Objects that are copied to the data sink.
617
+ # @!attribute [rw] bytes_copied_to_sink
618
+ # @return [::Integer]
619
+ # Bytes that are copied to the data sink.
620
+ # @!attribute [rw] objects_deleted_from_source
621
+ # @return [::Integer]
622
+ # Objects that are deleted from the data source.
623
+ # @!attribute [rw] bytes_deleted_from_source
624
+ # @return [::Integer]
625
+ # Bytes that are deleted from the data source.
626
+ # @!attribute [rw] objects_deleted_from_sink
627
+ # @return [::Integer]
628
+ # Objects that are deleted from the data sink.
629
+ # @!attribute [rw] bytes_deleted_from_sink
630
+ # @return [::Integer]
631
+ # Bytes that are deleted from the data sink.
632
+ # @!attribute [rw] objects_from_source_failed
633
+ # @return [::Integer]
634
+ # Objects in the data source that failed to be transferred or that failed
635
+ # to be deleted after being transferred.
636
+ # @!attribute [rw] bytes_from_source_failed
637
+ # @return [::Integer]
638
+ # Bytes in the data source that failed to be transferred or that failed to
639
+ # be deleted after being transferred.
640
+ # @!attribute [rw] objects_failed_to_delete_from_sink
641
+ # @return [::Integer]
642
+ # Objects that failed to be deleted from the data sink.
643
+ # @!attribute [rw] bytes_failed_to_delete_from_sink
644
+ # @return [::Integer]
645
+ # Bytes that failed to be deleted from the data sink.
646
+ class TransferCounters
647
+ include ::Google::Protobuf::MessageExts
648
+ extend ::Google::Protobuf::MessageExts::ClassMethods
649
+ end
650
+
651
+ # Specification to configure notifications published to Cloud Pub/Sub.
652
+ # Notifications will be published to the customer-provided topic using the
653
+ # following `PubsubMessage.attributes`:
654
+ #
655
+ # * `"eventType"`: one of the
656
+ # {::Google::Cloud::StorageTransfer::V1::NotificationConfig::EventType EventType} values
657
+ # * `"payloadFormat"`: one of the
658
+ # {::Google::Cloud::StorageTransfer::V1::NotificationConfig::PayloadFormat PayloadFormat}
659
+ # values
660
+ # * `"projectId"`: the
661
+ # {::Google::Cloud::StorageTransfer::V1::TransferOperation#project_id project_id} of the
662
+ # `TransferOperation`
663
+ # * `"transferJobName"`: the
664
+ # {::Google::Cloud::StorageTransfer::V1::TransferOperation#transfer_job_name transfer_job_name}
665
+ # of the `TransferOperation`
666
+ # * `"transferOperationName"`: the
667
+ # {::Google::Cloud::StorageTransfer::V1::TransferOperation#name name} of the
668
+ # `TransferOperation`
669
+ #
670
+ # The `PubsubMessage.data` will contain a
671
+ # {::Google::Cloud::StorageTransfer::V1::TransferOperation TransferOperation} resource
672
+ # formatted according to the specified `PayloadFormat`.
673
+ # @!attribute [rw] pubsub_topic
674
+ # @return [::String]
675
+ # Required. The `Topic.name` of the Cloud Pub/Sub topic to which to publish
676
+ # notifications. Must be of the format: `projects/{project}/topics/{topic}`.
677
+ # Not matching this format will result in an
678
+ # {::Google::Rpc::Code::INVALID_ARGUMENT INVALID_ARGUMENT} error.
679
+ # @!attribute [rw] event_types
680
+ # @return [::Array<::Google::Cloud::StorageTransfer::V1::NotificationConfig::EventType>]
681
+ # Event types for which a notification is desired. If empty, send
682
+ # notifications for all event types.
683
+ # @!attribute [rw] payload_format
684
+ # @return [::Google::Cloud::StorageTransfer::V1::NotificationConfig::PayloadFormat]
685
+ # Required. The desired format of the notification message payloads.
686
+ class NotificationConfig
687
+ include ::Google::Protobuf::MessageExts
688
+ extend ::Google::Protobuf::MessageExts::ClassMethods
689
+
690
+ # Enum for specifying event types for which notifications are to be
691
+ # published.
692
+ #
693
+ # Additional event types may be added in the future. Clients should either
694
+ # safely ignore unrecognized event types or explicitly specify which event
695
+ # types they are prepared to accept.
696
+ module EventType
697
+ # Illegal value, to avoid allowing a default.
698
+ EVENT_TYPE_UNSPECIFIED = 0
699
+
700
+ # `TransferOperation` completed with status
701
+ # {::Google::Cloud::StorageTransfer::V1::TransferOperation::Status::SUCCESS SUCCESS}.
702
+ TRANSFER_OPERATION_SUCCESS = 1
703
+
704
+ # `TransferOperation` completed with status
705
+ # {::Google::Cloud::StorageTransfer::V1::TransferOperation::Status::FAILED FAILED}.
706
+ TRANSFER_OPERATION_FAILED = 2
707
+
708
+ # `TransferOperation` completed with status
709
+ # {::Google::Cloud::StorageTransfer::V1::TransferOperation::Status::ABORTED ABORTED}.
710
+ TRANSFER_OPERATION_ABORTED = 3
711
+ end
712
+
713
+ # Enum for specifying the format of a notification message's payload.
714
+ module PayloadFormat
715
+ # Illegal value, to avoid allowing a default.
716
+ PAYLOAD_FORMAT_UNSPECIFIED = 0
717
+
718
+ # No payload is included with the notification.
719
+ NONE = 1
720
+
721
+ # `TransferOperation` is [formatted as a JSON
722
+ # response](https://developers.google.com/protocol-buffers/docs/proto3#json),
723
+ # in application/json.
724
+ JSON = 2
725
+ end
726
+ end
727
+
728
+ # A description of the execution of a transfer.
729
+ # @!attribute [rw] name
730
+ # @return [::String]
731
+ # A globally unique ID assigned by the system.
732
+ # @!attribute [rw] project_id
733
+ # @return [::String]
734
+ # The ID of the Google Cloud Platform Project that owns the operation.
735
+ # @!attribute [rw] transfer_spec
736
+ # @return [::Google::Cloud::StorageTransfer::V1::TransferSpec]
737
+ # Transfer specification.
738
+ # @!attribute [rw] notification_config
739
+ # @return [::Google::Cloud::StorageTransfer::V1::NotificationConfig]
740
+ # Notification configuration.
741
+ # @!attribute [rw] start_time
742
+ # @return [::Google::Protobuf::Timestamp]
743
+ # Start time of this transfer execution.
744
+ # @!attribute [rw] end_time
745
+ # @return [::Google::Protobuf::Timestamp]
746
+ # End time of this transfer execution.
747
+ # @!attribute [rw] status
748
+ # @return [::Google::Cloud::StorageTransfer::V1::TransferOperation::Status]
749
+ # Status of the transfer operation.
750
+ # @!attribute [rw] counters
751
+ # @return [::Google::Cloud::StorageTransfer::V1::TransferCounters]
752
+ # Information about the progress of the transfer operation.
753
+ # @!attribute [rw] error_breakdowns
754
+ # @return [::Array<::Google::Cloud::StorageTransfer::V1::ErrorSummary>]
755
+ # Summarizes errors encountered with sample error log entries.
756
+ # @!attribute [rw] transfer_job_name
757
+ # @return [::String]
758
+ # The name of the transfer job that triggers this transfer operation.
759
+ class TransferOperation
760
+ include ::Google::Protobuf::MessageExts
761
+ extend ::Google::Protobuf::MessageExts::ClassMethods
762
+
763
+ # The status of a TransferOperation.
764
+ module Status
765
+ # Zero is an illegal value.
766
+ STATUS_UNSPECIFIED = 0
767
+
768
+ # In progress.
769
+ IN_PROGRESS = 1
770
+
771
+ # Paused.
772
+ PAUSED = 2
773
+
774
+ # Completed successfully.
775
+ SUCCESS = 3
776
+
777
+ # Terminated due to an unrecoverable failure.
778
+ FAILED = 4
779
+
780
+ # Aborted by the user.
781
+ ABORTED = 5
782
+
783
+ # Temporarily delayed by the system. No user action is required.
784
+ QUEUED = 6
785
+ end
786
+ end
787
+ end
788
+ end
789
+ end
790
+ end