1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
  | 
// Copyright 2020 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.tasks.v2beta2;
import "google/api/resource.proto";
import "google/cloud/tasks/v2beta2/target.proto";
import "google/protobuf/timestamp.proto";
import "google/rpc/status.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/tasks/v2beta2;tasks";
option java_multiple_files = true;
option java_outer_classname = "TaskProto";
option java_package = "com.google.cloud.tasks.v2beta2";
// A unit of scheduled work.
message Task {
  option (google.api.resource) = {
    type: "cloudtasks.googleapis.com/Task"
    pattern: "projects/{project}/locations/{location}/queues/{queue}/tasks/{task}"
  };
  // The view specifies a subset of [Task][google.cloud.tasks.v2beta2.Task] data.
  //
  // When a task is returned in a response, not all
  // information is retrieved by default because some data, such as
  // payloads, might be desirable to return only when needed because
  // of its large size or because of the sensitivity of data that it
  // contains.
  enum View {
    // Unspecified. Defaults to BASIC.
    VIEW_UNSPECIFIED = 0;
    // The basic view omits fields which can be large or can contain
    // sensitive data.
    //
    // This view does not include the
    // ([payload in AppEngineHttpRequest][google.cloud.tasks.v2beta2.AppEngineHttpRequest] and
    // [payload in PullMessage][google.cloud.tasks.v2beta2.PullMessage.payload]). These payloads are
    // desirable to return only when needed, because they can be large
    // and because of the sensitivity of the data that you choose to
    // store in it.
    BASIC = 1;
    // All information is returned.
    //
    // Authorization for [FULL][google.cloud.tasks.v2beta2.Task.View.FULL] requires
    // `cloudtasks.tasks.fullView` [Google IAM](https://cloud.google.com/iam/)
    // permission on the [Queue][google.cloud.tasks.v2beta2.Queue] resource.
    FULL = 2;
  }
  // Optionally caller-specified in [CreateTask][google.cloud.tasks.v2beta2.CloudTasks.CreateTask].
  //
  // The task name.
  //
  // The task name must have the following format:
  // `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`
  //
  // * `PROJECT_ID` can contain letters ([A-Za-z]), numbers ([0-9]),
  //    hyphens (-), colons (:), or periods (.).
  //    For more information, see
  //    [Identifying
  //    projects](https://cloud.google.com/resource-manager/docs/creating-managing-projects#identifying_projects)
  // * `LOCATION_ID` is the canonical ID for the task's location.
  //    The list of available locations can be obtained by calling
  //    [ListLocations][google.cloud.location.Locations.ListLocations].
  //    For more information, see https://cloud.google.com/about/locations/.
  // * `QUEUE_ID` can contain letters ([A-Za-z]), numbers ([0-9]), or
  //   hyphens (-). The maximum length is 100 characters.
  // * `TASK_ID` can contain only letters ([A-Za-z]), numbers ([0-9]),
  //   hyphens (-), or underscores (_). The maximum length is 500 characters.
  string name = 1;
  // Required.
  //
  // The task's payload is used by the task's target to process the task.
  // A payload is valid only if it is compatible with the queue's target.
  oneof payload_type {
    // App Engine HTTP request that is sent to the task's target. Can
    // be set only if
    // [app_engine_http_target][google.cloud.tasks.v2beta2.Queue.app_engine_http_target] is set
    // on the queue.
    //
    // An App Engine task is a task that has [AppEngineHttpRequest][google.cloud.tasks.v2beta2.AppEngineHttpRequest] set.
    AppEngineHttpRequest app_engine_http_request = 3;
    // [LeaseTasks][google.cloud.tasks.v2beta2.CloudTasks.LeaseTasks] to process the task. Can be
    // set only if [pull_target][google.cloud.tasks.v2beta2.Queue.pull_target] is set on the queue.
    //
    // A pull task is a task that has [PullMessage][google.cloud.tasks.v2beta2.PullMessage] set.
    PullMessage pull_message = 4;
  }
  // The time when the task is scheduled to be attempted.
  //
  // For App Engine queues, this is when the task will be attempted or retried.
  //
  // For pull queues, this is the time when the task is available to
  // be leased; if a task is currently leased, this is the time when
  // the current lease expires, that is, the time that the task was
  // leased plus the [lease_duration][google.cloud.tasks.v2beta2.LeaseTasksRequest.lease_duration].
  //
  // `schedule_time` will be truncated to the nearest microsecond.
  google.protobuf.Timestamp schedule_time = 5;
  // Output only. The time that the task was created.
  //
  // `create_time` will be truncated to the nearest second.
  google.protobuf.Timestamp create_time = 6;
  // Output only. The task status.
  TaskStatus status = 7;
  // Output only. The view specifies which subset of the [Task][google.cloud.tasks.v2beta2.Task] has
  // been returned.
  View view = 8;
}
// Status of the task.
message TaskStatus {
  // Output only. The number of attempts dispatched.
  //
  // This count includes attempts which have been dispatched but haven't
  // received a response.
  int32 attempt_dispatch_count = 1;
  // Output only. The number of attempts which have received a response.
  //
  // This field is not calculated for [pull tasks][google.cloud.tasks.v2beta2.PullMessage].
  int32 attempt_response_count = 2;
  // Output only. The status of the task's first attempt.
  //
  // Only [dispatch_time][google.cloud.tasks.v2beta2.AttemptStatus.dispatch_time] will be set.
  // The other [AttemptStatus][google.cloud.tasks.v2beta2.AttemptStatus] information is not retained by Cloud Tasks.
  //
  // This field is not calculated for [pull tasks][google.cloud.tasks.v2beta2.PullMessage].
  AttemptStatus first_attempt_status = 3;
  // Output only. The status of the task's last attempt.
  //
  // This field is not calculated for [pull tasks][google.cloud.tasks.v2beta2.PullMessage].
  AttemptStatus last_attempt_status = 4;
}
// The status of a task attempt.
message AttemptStatus {
  // Output only. The time that this attempt was scheduled.
  //
  // `schedule_time` will be truncated to the nearest microsecond.
  google.protobuf.Timestamp schedule_time = 1;
  // Output only. The time that this attempt was dispatched.
  //
  // `dispatch_time` will be truncated to the nearest microsecond.
  google.protobuf.Timestamp dispatch_time = 2;
  // Output only. The time that this attempt response was received.
  //
  // `response_time` will be truncated to the nearest microsecond.
  google.protobuf.Timestamp response_time = 3;
  // Output only. The response from the target for this attempt.
  //
  // If the task has not been attempted or the task is currently running
  // then the response status is unset.
  google.rpc.Status response_status = 4;
}
  |