google-cloud-scheduler-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.
@@ -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