google-cloud-scheduler-v1 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,247 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2020 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 Api
22
+ # A simple descriptor of a resource type.
23
+ #
24
+ # ResourceDescriptor annotates a resource message (either by means of a
25
+ # protobuf annotation or use in the service config), and associates the
26
+ # resource's schema, the resource type, and the pattern of the resource name.
27
+ #
28
+ # Example:
29
+ #
30
+ # message Topic {
31
+ # // Indicates this message defines a resource schema.
32
+ # // Declares the resource type in the format of {service}/{kind}.
33
+ # // For Kubernetes resources, the format is {api group}/{kind}.
34
+ # option (google.api.resource) = {
35
+ # type: "pubsub.googleapis.com/Topic"
36
+ # name_descriptor: {
37
+ # pattern: "projects/{project}/topics/{topic}"
38
+ # parent_type: "cloudresourcemanager.googleapis.com/Project"
39
+ # parent_name_extractor: "projects/{project}"
40
+ # }
41
+ # };
42
+ # }
43
+ #
44
+ # The ResourceDescriptor Yaml config will look like:
45
+ #
46
+ # resources:
47
+ # - type: "pubsub.googleapis.com/Topic"
48
+ # name_descriptor:
49
+ # - pattern: "projects/\\{project}/topics/\\{topic}"
50
+ # parent_type: "cloudresourcemanager.googleapis.com/Project"
51
+ # parent_name_extractor: "projects/\\{project}"
52
+ #
53
+ # Sometimes, resources have multiple patterns, typically because they can
54
+ # live under multiple parents.
55
+ #
56
+ # Example:
57
+ #
58
+ # message LogEntry {
59
+ # option (google.api.resource) = {
60
+ # type: "logging.googleapis.com/LogEntry"
61
+ # name_descriptor: {
62
+ # pattern: "projects/{project}/logs/{log}"
63
+ # parent_type: "cloudresourcemanager.googleapis.com/Project"
64
+ # parent_name_extractor: "projects/{project}"
65
+ # }
66
+ # name_descriptor: {
67
+ # pattern: "folders/{folder}/logs/{log}"
68
+ # parent_type: "cloudresourcemanager.googleapis.com/Folder"
69
+ # parent_name_extractor: "folders/{folder}"
70
+ # }
71
+ # name_descriptor: {
72
+ # pattern: "organizations/{organization}/logs/{log}"
73
+ # parent_type: "cloudresourcemanager.googleapis.com/Organization"
74
+ # parent_name_extractor: "organizations/{organization}"
75
+ # }
76
+ # name_descriptor: {
77
+ # pattern: "billingAccounts/{billing_account}/logs/{log}"
78
+ # parent_type: "billing.googleapis.com/BillingAccount"
79
+ # parent_name_extractor: "billingAccounts/{billing_account}"
80
+ # }
81
+ # };
82
+ # }
83
+ #
84
+ # The ResourceDescriptor Yaml config will look like:
85
+ #
86
+ # resources:
87
+ # - type: 'logging.googleapis.com/LogEntry'
88
+ # name_descriptor:
89
+ # - pattern: "projects/{project}/logs/{log}"
90
+ # parent_type: "cloudresourcemanager.googleapis.com/Project"
91
+ # parent_name_extractor: "projects/{project}"
92
+ # - pattern: "folders/{folder}/logs/{log}"
93
+ # parent_type: "cloudresourcemanager.googleapis.com/Folder"
94
+ # parent_name_extractor: "folders/{folder}"
95
+ # - pattern: "organizations/{organization}/logs/{log}"
96
+ # parent_type: "cloudresourcemanager.googleapis.com/Organization"
97
+ # parent_name_extractor: "organizations/{organization}"
98
+ # - pattern: "billingAccounts/{billing_account}/logs/{log}"
99
+ # parent_type: "billing.googleapis.com/BillingAccount"
100
+ # parent_name_extractor: "billingAccounts/{billing_account}"
101
+ #
102
+ # For flexible resources, the resource name doesn't contain parent names, but
103
+ # the resource itself has parents for policy evaluation.
104
+ #
105
+ # Example:
106
+ #
107
+ # message Shelf {
108
+ # option (google.api.resource) = {
109
+ # type: "library.googleapis.com/Shelf"
110
+ # name_descriptor: {
111
+ # pattern: "shelves/{shelf}"
112
+ # parent_type: "cloudresourcemanager.googleapis.com/Project"
113
+ # }
114
+ # name_descriptor: {
115
+ # pattern: "shelves/{shelf}"
116
+ # parent_type: "cloudresourcemanager.googleapis.com/Folder"
117
+ # }
118
+ # };
119
+ # }
120
+ #
121
+ # The ResourceDescriptor Yaml config will look like:
122
+ #
123
+ # resources:
124
+ # - type: 'library.googleapis.com/Shelf'
125
+ # name_descriptor:
126
+ # - pattern: "shelves/{shelf}"
127
+ # parent_type: "cloudresourcemanager.googleapis.com/Project"
128
+ # - pattern: "shelves/{shelf}"
129
+ # parent_type: "cloudresourcemanager.googleapis.com/Folder"
130
+ # @!attribute [rw] type
131
+ # @return [::String]
132
+ # The resource type. It must be in the format of
133
+ # \\{service_name}/\\{resource_type_kind}. The `resource_type_kind` must be
134
+ # singular and must not include version numbers.
135
+ #
136
+ # Example: `storage.googleapis.com/Bucket`
137
+ #
138
+ # The value of the resource_type_kind must follow the regular expression
139
+ # /[A-Za-z][a-zA-Z0-9]+/. It should start with an upper case character and
140
+ # should use PascalCase (UpperCamelCase). The maximum number of
141
+ # characters allowed for the `resource_type_kind` is 100.
142
+ # @!attribute [rw] pattern
143
+ # @return [::Array<::String>]
144
+ # Optional. The relative resource name pattern associated with this resource
145
+ # type. The DNS prefix of the full resource name shouldn't be specified here.
146
+ #
147
+ # The path pattern must follow the syntax, which aligns with HTTP binding
148
+ # syntax:
149
+ #
150
+ # Template = Segment { "/" Segment } ;
151
+ # Segment = LITERAL | Variable ;
152
+ # Variable = "{" LITERAL "}" ;
153
+ #
154
+ # Examples:
155
+ #
156
+ # - "projects/\\{project}/topics/\\{topic}"
157
+ # - "projects/\\{project}/knowledgeBases/\\{knowledge_base}"
158
+ #
159
+ # The components in braces correspond to the IDs for each resource in the
160
+ # hierarchy. It is expected that, if multiple patterns are provided,
161
+ # the same component name (e.g. "project") refers to IDs of the same
162
+ # type of resource.
163
+ # @!attribute [rw] name_field
164
+ # @return [::String]
165
+ # Optional. The field on the resource that designates the resource name
166
+ # field. If omitted, this is assumed to be "name".
167
+ # @!attribute [rw] history
168
+ # @return [::Google::Api::ResourceDescriptor::History]
169
+ # Optional. The historical or future-looking state of the resource pattern.
170
+ #
171
+ # Example:
172
+ #
173
+ # // The InspectTemplate message originally only supported resource
174
+ # // names with organization, and project was added later.
175
+ # message InspectTemplate {
176
+ # option (google.api.resource) = {
177
+ # type: "dlp.googleapis.com/InspectTemplate"
178
+ # pattern:
179
+ # "organizations/{organization}/inspectTemplates/{inspect_template}"
180
+ # pattern: "projects/{project}/inspectTemplates/{inspect_template}"
181
+ # history: ORIGINALLY_SINGLE_PATTERN
182
+ # };
183
+ # }
184
+ # @!attribute [rw] plural
185
+ # @return [::String]
186
+ # The plural name used in the resource name, such as 'projects' for
187
+ # the name of 'projects/\\{project}'. It is the same concept of the `plural`
188
+ # field in k8s CRD spec
189
+ # https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/
190
+ # @!attribute [rw] singular
191
+ # @return [::String]
192
+ # The same concept of the `singular` field in k8s CRD spec
193
+ # https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/
194
+ # Such as "project" for the `resourcemanager.googleapis.com/Project` type.
195
+ class ResourceDescriptor
196
+ include ::Google::Protobuf::MessageExts
197
+ extend ::Google::Protobuf::MessageExts::ClassMethods
198
+
199
+ # A description of the historical or future-looking state of the
200
+ # resource pattern.
201
+ module History
202
+ # The "unset" value.
203
+ HISTORY_UNSPECIFIED = 0
204
+
205
+ # The resource originally had one pattern and launched as such, and
206
+ # additional patterns were added later.
207
+ ORIGINALLY_SINGLE_PATTERN = 1
208
+
209
+ # The resource has one pattern, but the API owner expects to add more
210
+ # later. (This is the inverse of ORIGINALLY_SINGLE_PATTERN, and prevents
211
+ # that from being necessary once there are multiple patterns.)
212
+ FUTURE_MULTI_PATTERN = 2
213
+ end
214
+ end
215
+
216
+ # Defines a proto annotation that describes a string field that refers to
217
+ # an API resource.
218
+ # @!attribute [rw] type
219
+ # @return [::String]
220
+ # The resource type that the annotated field references.
221
+ #
222
+ # Example:
223
+ #
224
+ # message Subscription {
225
+ # string topic = 2 [(google.api.resource_reference) = {
226
+ # type: "pubsub.googleapis.com/Topic"
227
+ # }];
228
+ # }
229
+ # @!attribute [rw] child_type
230
+ # @return [::String]
231
+ # The resource type of a child collection that the annotated field
232
+ # references. This is useful for annotating the `parent` field that
233
+ # doesn't have a fixed resource type.
234
+ #
235
+ # Example:
236
+ #
237
+ # message ListLogEntriesRequest {
238
+ # string parent = 1 [(google.api.resource_reference) = {
239
+ # child_type: "logging.googleapis.com/LogEntry"
240
+ # };
241
+ # }
242
+ class ResourceReference
243
+ include ::Google::Protobuf::MessageExts
244
+ extend ::Google::Protobuf::MessageExts::ClassMethods
245
+ end
246
+ end
247
+ end
@@ -0,0 +1,155 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2020 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 Scheduler
23
+ module V1
24
+ # Request message for listing jobs using {::Google::Cloud::Scheduler::V1::CloudScheduler::Client#list_jobs ListJobs}.
25
+ # @!attribute [rw] parent
26
+ # @return [::String]
27
+ # Required. The location name. For example:
28
+ # `projects/PROJECT_ID/locations/LOCATION_ID`.
29
+ # @!attribute [rw] page_size
30
+ # @return [::Integer]
31
+ # Requested page size.
32
+ #
33
+ # The maximum page size is 500. If unspecified, the page size will
34
+ # be the maximum. Fewer jobs than requested might be returned,
35
+ # even if more jobs exist; use next_page_token to determine if more
36
+ # jobs exist.
37
+ # @!attribute [rw] page_token
38
+ # @return [::String]
39
+ # A token identifying a page of results the server will return. To
40
+ # request the first page results, page_token must be empty. To
41
+ # request the next page of results, page_token must be the value of
42
+ # {::Google::Cloud::Scheduler::V1::ListJobsResponse#next_page_token next_page_token} returned from
43
+ # the previous call to {::Google::Cloud::Scheduler::V1::CloudScheduler::Client#list_jobs ListJobs}. It is an error to
44
+ # switch the value of [filter][google.cloud.scheduler.v1.ListJobsRequest.filter] or
45
+ # [order_by][google.cloud.scheduler.v1.ListJobsRequest.order_by] while iterating through pages.
46
+ class ListJobsRequest
47
+ include ::Google::Protobuf::MessageExts
48
+ extend ::Google::Protobuf::MessageExts::ClassMethods
49
+ end
50
+
51
+ # Response message for listing jobs using {::Google::Cloud::Scheduler::V1::CloudScheduler::Client#list_jobs ListJobs}.
52
+ # @!attribute [rw] jobs
53
+ # @return [::Array<::Google::Cloud::Scheduler::V1::Job>]
54
+ # The list of jobs.
55
+ # @!attribute [rw] next_page_token
56
+ # @return [::String]
57
+ # A token to retrieve next page of results. Pass this value in the
58
+ # {::Google::Cloud::Scheduler::V1::ListJobsRequest#page_token page_token} field in the subsequent call to
59
+ # {::Google::Cloud::Scheduler::V1::CloudScheduler::Client#list_jobs ListJobs} to retrieve the next page of results.
60
+ # If this is empty it indicates that there are no more results
61
+ # through which to paginate.
62
+ #
63
+ # The page token is valid for only 2 hours.
64
+ class ListJobsResponse
65
+ include ::Google::Protobuf::MessageExts
66
+ extend ::Google::Protobuf::MessageExts::ClassMethods
67
+ end
68
+
69
+ # Request message for {::Google::Cloud::Scheduler::V1::CloudScheduler::Client#get_job GetJob}.
70
+ # @!attribute [rw] name
71
+ # @return [::String]
72
+ # Required. The job name. For example:
73
+ # `projects/PROJECT_ID/locations/LOCATION_ID/jobs/JOB_ID`.
74
+ class GetJobRequest
75
+ include ::Google::Protobuf::MessageExts
76
+ extend ::Google::Protobuf::MessageExts::ClassMethods
77
+ end
78
+
79
+ # Request message for {::Google::Cloud::Scheduler::V1::CloudScheduler::Client#create_job CreateJob}.
80
+ # @!attribute [rw] parent
81
+ # @return [::String]
82
+ # Required. The location name. For example:
83
+ # `projects/PROJECT_ID/locations/LOCATION_ID`.
84
+ # @!attribute [rw] job
85
+ # @return [::Google::Cloud::Scheduler::V1::Job]
86
+ # Required. The job to add. The user can optionally specify a name for the
87
+ # job in {::Google::Cloud::Scheduler::V1::Job#name name}. {::Google::Cloud::Scheduler::V1::Job#name name} cannot be the same as an
88
+ # existing job. If a name is not specified then the system will
89
+ # generate a random unique name that will be returned
90
+ # ({::Google::Cloud::Scheduler::V1::Job#name name}) in the response.
91
+ class CreateJobRequest
92
+ include ::Google::Protobuf::MessageExts
93
+ extend ::Google::Protobuf::MessageExts::ClassMethods
94
+ end
95
+
96
+ # Request message for {::Google::Cloud::Scheduler::V1::CloudScheduler::Client#update_job UpdateJob}.
97
+ # @!attribute [rw] job
98
+ # @return [::Google::Cloud::Scheduler::V1::Job]
99
+ # Required. The new job properties. {::Google::Cloud::Scheduler::V1::Job#name name} must be specified.
100
+ #
101
+ # Output only fields cannot be modified using UpdateJob.
102
+ # Any value specified for an output only field will be ignored.
103
+ # @!attribute [rw] update_mask
104
+ # @return [::Google::Protobuf::FieldMask]
105
+ # A mask used to specify which fields of the job are being updated.
106
+ class UpdateJobRequest
107
+ include ::Google::Protobuf::MessageExts
108
+ extend ::Google::Protobuf::MessageExts::ClassMethods
109
+ end
110
+
111
+ # Request message for deleting a job using
112
+ # {::Google::Cloud::Scheduler::V1::CloudScheduler::Client#delete_job DeleteJob}.
113
+ # @!attribute [rw] name
114
+ # @return [::String]
115
+ # Required. The job name. For example:
116
+ # `projects/PROJECT_ID/locations/LOCATION_ID/jobs/JOB_ID`.
117
+ class DeleteJobRequest
118
+ include ::Google::Protobuf::MessageExts
119
+ extend ::Google::Protobuf::MessageExts::ClassMethods
120
+ end
121
+
122
+ # Request message for {::Google::Cloud::Scheduler::V1::CloudScheduler::Client#pause_job PauseJob}.
123
+ # @!attribute [rw] name
124
+ # @return [::String]
125
+ # Required. The job name. For example:
126
+ # `projects/PROJECT_ID/locations/LOCATION_ID/jobs/JOB_ID`.
127
+ class PauseJobRequest
128
+ include ::Google::Protobuf::MessageExts
129
+ extend ::Google::Protobuf::MessageExts::ClassMethods
130
+ end
131
+
132
+ # Request message for {::Google::Cloud::Scheduler::V1::CloudScheduler::Client#resume_job ResumeJob}.
133
+ # @!attribute [rw] name
134
+ # @return [::String]
135
+ # Required. The job name. For example:
136
+ # `projects/PROJECT_ID/locations/LOCATION_ID/jobs/JOB_ID`.
137
+ class ResumeJobRequest
138
+ include ::Google::Protobuf::MessageExts
139
+ extend ::Google::Protobuf::MessageExts::ClassMethods
140
+ end
141
+
142
+ # Request message for forcing a job to run now using
143
+ # {::Google::Cloud::Scheduler::V1::CloudScheduler::Client#run_job RunJob}.
144
+ # @!attribute [rw] name
145
+ # @return [::String]
146
+ # Required. The job name. For example:
147
+ # `projects/PROJECT_ID/locations/LOCATION_ID/jobs/JOB_ID`.
148
+ class RunJobRequest
149
+ include ::Google::Protobuf::MessageExts
150
+ extend ::Google::Protobuf::MessageExts::ClassMethods
151
+ end
152
+ end
153
+ end
154
+ end
155
+ end
@@ -0,0 +1,229 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2020 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 Scheduler
23
+ module V1
24
+ # Configuration for a job.
25
+ # The maximum allowed size for a job is 100KB.
26
+ # @!attribute [rw] name
27
+ # @return [::String]
28
+ # Optionally caller-specified in {::Google::Cloud::Scheduler::V1::CloudScheduler::Client#create_job CreateJob}, after
29
+ # which it becomes output only.
30
+ #
31
+ # The job name. For example:
32
+ # `projects/PROJECT_ID/locations/LOCATION_ID/jobs/JOB_ID`.
33
+ #
34
+ # * `PROJECT_ID` can contain letters ([A-Za-z]), numbers ([0-9]),
35
+ # hyphens (-), colons (:), or periods (.).
36
+ # For more information, see
37
+ # [Identifying
38
+ # projects](https://cloud.google.com/resource-manager/docs/creating-managing-projects#identifying_projects)
39
+ # * `LOCATION_ID` is the canonical ID for the job's location.
40
+ # The list of available locations can be obtained by calling
41
+ # [ListLocations][google.cloud.location.Locations.ListLocations].
42
+ # For more information, see https://cloud.google.com/about/locations/.
43
+ # * `JOB_ID` can contain only letters ([A-Za-z]), numbers ([0-9]),
44
+ # hyphens (-), or underscores (_). The maximum length is 500 characters.
45
+ # @!attribute [rw] description
46
+ # @return [::String]
47
+ # Optionally caller-specified in {::Google::Cloud::Scheduler::V1::CloudScheduler::Client#create_job CreateJob} or
48
+ # {::Google::Cloud::Scheduler::V1::CloudScheduler::Client#update_job UpdateJob}.
49
+ #
50
+ # A human-readable description for the job. This string must not contain
51
+ # more than 500 characters.
52
+ # @!attribute [rw] pubsub_target
53
+ # @return [::Google::Cloud::Scheduler::V1::PubsubTarget]
54
+ # Pub/Sub target.
55
+ # @!attribute [rw] app_engine_http_target
56
+ # @return [::Google::Cloud::Scheduler::V1::AppEngineHttpTarget]
57
+ # App Engine HTTP target.
58
+ # @!attribute [rw] http_target
59
+ # @return [::Google::Cloud::Scheduler::V1::HttpTarget]
60
+ # HTTP target.
61
+ # @!attribute [rw] schedule
62
+ # @return [::String]
63
+ # Required, except when used with {::Google::Cloud::Scheduler::V1::CloudScheduler::Client#update_job UpdateJob}.
64
+ #
65
+ # Describes the schedule on which the job will be executed.
66
+ #
67
+ # The schedule can be either of the following types:
68
+ #
69
+ # * [Crontab](http://en.wikipedia.org/wiki/Cron#Overview)
70
+ # * English-like
71
+ # [schedule](https://cloud.google.com/scheduler/docs/configuring/cron-job-schedules)
72
+ #
73
+ # As a general rule, execution `n + 1` of a job will not begin
74
+ # until execution `n` has finished. Cloud Scheduler will never
75
+ # allow two simultaneously outstanding executions. For example,
76
+ # this implies that if the `n+1`th execution is scheduled to run at
77
+ # 16:00 but the `n`th execution takes until 16:15, the `n+1`th
78
+ # execution will not start until `16:15`.
79
+ # A scheduled start time will be delayed if the previous
80
+ # execution has not ended when its scheduled time occurs.
81
+ #
82
+ # If {::Google::Cloud::Scheduler::V1::RetryConfig#retry_count retry_count} > 0 and a job attempt fails,
83
+ # the job will be tried a total of {::Google::Cloud::Scheduler::V1::RetryConfig#retry_count retry_count}
84
+ # times, with exponential backoff, until the next scheduled start
85
+ # time.
86
+ # @!attribute [rw] time_zone
87
+ # @return [::String]
88
+ # Specifies the time zone to be used in interpreting
89
+ # {::Google::Cloud::Scheduler::V1::Job#schedule schedule}. The value of this field must be a time
90
+ # zone name from the [tz database](http://en.wikipedia.org/wiki/Tz_database).
91
+ #
92
+ # Note that some time zones include a provision for
93
+ # daylight savings time. The rules for daylight saving time are
94
+ # determined by the chosen tz. For UTC use the string "utc". If a
95
+ # time zone is not specified, the default will be in UTC (also known
96
+ # as GMT).
97
+ # @!attribute [rw] user_update_time
98
+ # @return [::Google::Protobuf::Timestamp]
99
+ # Output only. The creation time of the job.
100
+ # @!attribute [rw] state
101
+ # @return [::Google::Cloud::Scheduler::V1::Job::State]
102
+ # Output only. State of the job.
103
+ # @!attribute [rw] status
104
+ # @return [::Google::Rpc::Status]
105
+ # Output only. The response from the target for the last attempted execution.
106
+ # @!attribute [rw] schedule_time
107
+ # @return [::Google::Protobuf::Timestamp]
108
+ # Output only. The next time the job is scheduled. Note that this may be a
109
+ # retry of a previously failed attempt or the next execution time
110
+ # according to the schedule.
111
+ # @!attribute [rw] last_attempt_time
112
+ # @return [::Google::Protobuf::Timestamp]
113
+ # Output only. The time the last job attempt started.
114
+ # @!attribute [rw] retry_config
115
+ # @return [::Google::Cloud::Scheduler::V1::RetryConfig]
116
+ # Settings that determine the retry behavior.
117
+ # @!attribute [rw] attempt_deadline
118
+ # @return [::Google::Protobuf::Duration]
119
+ # The deadline for job attempts. If the request handler does not respond by
120
+ # this deadline then the request is cancelled and the attempt is marked as a
121
+ # `DEADLINE_EXCEEDED` failure. The failed attempt can be viewed in
122
+ # execution logs. Cloud Scheduler will retry the job according
123
+ # to the {::Google::Cloud::Scheduler::V1::RetryConfig RetryConfig}.
124
+ #
125
+ # The allowed duration for this deadline is:
126
+ # * For {::Google::Cloud::Scheduler::V1::Job#http_target HTTP targets}, between 15 seconds and 30 minutes.
127
+ # * For {::Google::Cloud::Scheduler::V1::Job#app_engine_http_target App Engine HTTP targets}, between 15
128
+ # seconds and 24 hours.
129
+ class Job
130
+ include ::Google::Protobuf::MessageExts
131
+ extend ::Google::Protobuf::MessageExts::ClassMethods
132
+
133
+ # State of the job.
134
+ module State
135
+ # Unspecified state.
136
+ STATE_UNSPECIFIED = 0
137
+
138
+ # The job is executing normally.
139
+ ENABLED = 1
140
+
141
+ # The job is paused by the user. It will not execute. A user can
142
+ # intentionally pause the job using
143
+ # {::Google::Cloud::Scheduler::V1::PauseJobRequest PauseJobRequest}.
144
+ PAUSED = 2
145
+
146
+ # The job is disabled by the system due to error. The user
147
+ # cannot directly set a job to be disabled.
148
+ DISABLED = 3
149
+
150
+ # The job state resulting from a failed {::Google::Cloud::Scheduler::V1::CloudScheduler::Client#update_job CloudScheduler.UpdateJob}
151
+ # operation. To recover a job from this state, retry
152
+ # {::Google::Cloud::Scheduler::V1::CloudScheduler::Client#update_job CloudScheduler.UpdateJob} until a successful response is received.
153
+ UPDATE_FAILED = 4
154
+ end
155
+ end
156
+
157
+ # Settings that determine the retry behavior.
158
+ #
159
+ # By default, if a job does not complete successfully (meaning that
160
+ # an acknowledgement is not received from the handler, then it will be retried
161
+ # with exponential backoff according to the settings in {::Google::Cloud::Scheduler::V1::RetryConfig RetryConfig}.
162
+ # @!attribute [rw] retry_count
163
+ # @return [::Integer]
164
+ # The number of attempts that the system will make to run a job using the
165
+ # exponential backoff procedure described by
166
+ # {::Google::Cloud::Scheduler::V1::RetryConfig#max_doublings max_doublings}.
167
+ #
168
+ # The default value of retry_count is zero.
169
+ #
170
+ # If retry_count is zero, a job attempt will *not* be retried if
171
+ # it fails. Instead the Cloud Scheduler system will wait for the
172
+ # next scheduled execution time.
173
+ #
174
+ # If retry_count is set to a non-zero number then Cloud Scheduler
175
+ # will retry failed attempts, using exponential backoff,
176
+ # retry_count times, or until the next scheduled execution time,
177
+ # whichever comes first.
178
+ #
179
+ # Values greater than 5 and negative values are not allowed.
180
+ # @!attribute [rw] max_retry_duration
181
+ # @return [::Google::Protobuf::Duration]
182
+ # The time limit for retrying a failed job, measured from time when an
183
+ # execution was first attempted. If specified with
184
+ # {::Google::Cloud::Scheduler::V1::RetryConfig#retry_count retry_count}, the job will be retried until both
185
+ # limits are reached.
186
+ #
187
+ # The default value for max_retry_duration is zero, which means retry
188
+ # duration is unlimited.
189
+ # @!attribute [rw] min_backoff_duration
190
+ # @return [::Google::Protobuf::Duration]
191
+ # The minimum amount of time to wait before retrying a job after
192
+ # it fails.
193
+ #
194
+ # The default value of this field is 5 seconds.
195
+ # @!attribute [rw] max_backoff_duration
196
+ # @return [::Google::Protobuf::Duration]
197
+ # The maximum amount of time to wait before retrying a job after
198
+ # it fails.
199
+ #
200
+ # The default value of this field is 1 hour.
201
+ # @!attribute [rw] max_doublings
202
+ # @return [::Integer]
203
+ # The time between retries will double `max_doublings` times.
204
+ #
205
+ # A job's retry interval starts at
206
+ # {::Google::Cloud::Scheduler::V1::RetryConfig#min_backoff_duration min_backoff_duration}, then doubles
207
+ # `max_doublings` times, then increases linearly, and finally
208
+ # retries retries at intervals of
209
+ # {::Google::Cloud::Scheduler::V1::RetryConfig#max_backoff_duration max_backoff_duration} up to
210
+ # {::Google::Cloud::Scheduler::V1::RetryConfig#retry_count retry_count} times.
211
+ #
212
+ # For example, if {::Google::Cloud::Scheduler::V1::RetryConfig#min_backoff_duration min_backoff_duration} is
213
+ # 10s, {::Google::Cloud::Scheduler::V1::RetryConfig#max_backoff_duration max_backoff_duration} is 300s, and
214
+ # `max_doublings` is 3, then the a job will first be retried in 10s. The
215
+ # retry interval will double three times, and then increase linearly by
216
+ # 2^3 * 10s. Finally, the job will retry at intervals of
217
+ # {::Google::Cloud::Scheduler::V1::RetryConfig#max_backoff_duration max_backoff_duration} until the job has
218
+ # been attempted {::Google::Cloud::Scheduler::V1::RetryConfig#retry_count retry_count} times. Thus, the
219
+ # requests will retry at 10s, 20s, 40s, 80s, 160s, 240s, 300s, 300s, ....
220
+ #
221
+ # The default value of this field is 5.
222
+ class RetryConfig
223
+ include ::Google::Protobuf::MessageExts
224
+ extend ::Google::Protobuf::MessageExts::ClassMethods
225
+ end
226
+ end
227
+ end
228
+ end
229
+ end