aws-sdk-scheduler 1.0.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,1265 @@
1
+ # frozen_string_literal: true
2
+
3
+ # WARNING ABOUT GENERATED CODE
4
+ #
5
+ # This file is generated. See the contributing guide for more information:
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+ require 'seahorse/client/plugins/content_length.rb'
11
+ require 'aws-sdk-core/plugins/credentials_configuration.rb'
12
+ require 'aws-sdk-core/plugins/logging.rb'
13
+ require 'aws-sdk-core/plugins/param_converter.rb'
14
+ require 'aws-sdk-core/plugins/param_validator.rb'
15
+ require 'aws-sdk-core/plugins/user_agent.rb'
16
+ require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
17
+ require 'aws-sdk-core/plugins/retry_errors.rb'
18
+ require 'aws-sdk-core/plugins/global_configuration.rb'
19
+ require 'aws-sdk-core/plugins/regional_endpoint.rb'
20
+ require 'aws-sdk-core/plugins/endpoint_discovery.rb'
21
+ require 'aws-sdk-core/plugins/endpoint_pattern.rb'
22
+ require 'aws-sdk-core/plugins/response_paging.rb'
23
+ require 'aws-sdk-core/plugins/stub_responses.rb'
24
+ require 'aws-sdk-core/plugins/idempotency_token.rb'
25
+ require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
26
+ require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
27
+ require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
28
+ require 'aws-sdk-core/plugins/transfer_encoding.rb'
29
+ require 'aws-sdk-core/plugins/http_checksum.rb'
30
+ require 'aws-sdk-core/plugins/checksum_algorithm.rb'
31
+ require 'aws-sdk-core/plugins/defaults_mode.rb'
32
+ require 'aws-sdk-core/plugins/recursion_detection.rb'
33
+ require 'aws-sdk-core/plugins/sign.rb'
34
+ require 'aws-sdk-core/plugins/protocols/rest_json.rb'
35
+
36
+ Aws::Plugins::GlobalConfiguration.add_identifier(:scheduler)
37
+
38
+ module Aws::Scheduler
39
+ # An API client for Scheduler. To construct a client, you need to configure a `:region` and `:credentials`.
40
+ #
41
+ # client = Aws::Scheduler::Client.new(
42
+ # region: region_name,
43
+ # credentials: credentials,
44
+ # # ...
45
+ # )
46
+ #
47
+ # For details on configuring region and credentials see
48
+ # the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html).
49
+ #
50
+ # See {#initialize} for a full list of supported configuration options.
51
+ class Client < Seahorse::Client::Base
52
+
53
+ include Aws::ClientStubs
54
+
55
+ @identifier = :scheduler
56
+
57
+ set_api(ClientApi::API)
58
+
59
+ add_plugin(Seahorse::Client::Plugins::ContentLength)
60
+ add_plugin(Aws::Plugins::CredentialsConfiguration)
61
+ add_plugin(Aws::Plugins::Logging)
62
+ add_plugin(Aws::Plugins::ParamConverter)
63
+ add_plugin(Aws::Plugins::ParamValidator)
64
+ add_plugin(Aws::Plugins::UserAgent)
65
+ add_plugin(Aws::Plugins::HelpfulSocketErrors)
66
+ add_plugin(Aws::Plugins::RetryErrors)
67
+ add_plugin(Aws::Plugins::GlobalConfiguration)
68
+ add_plugin(Aws::Plugins::RegionalEndpoint)
69
+ add_plugin(Aws::Plugins::EndpointDiscovery)
70
+ add_plugin(Aws::Plugins::EndpointPattern)
71
+ add_plugin(Aws::Plugins::ResponsePaging)
72
+ add_plugin(Aws::Plugins::StubResponses)
73
+ add_plugin(Aws::Plugins::IdempotencyToken)
74
+ add_plugin(Aws::Plugins::JsonvalueConverter)
75
+ add_plugin(Aws::Plugins::ClientMetricsPlugin)
76
+ add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
77
+ add_plugin(Aws::Plugins::TransferEncoding)
78
+ add_plugin(Aws::Plugins::HttpChecksum)
79
+ add_plugin(Aws::Plugins::ChecksumAlgorithm)
80
+ add_plugin(Aws::Plugins::DefaultsMode)
81
+ add_plugin(Aws::Plugins::RecursionDetection)
82
+ add_plugin(Aws::Plugins::Sign)
83
+ add_plugin(Aws::Plugins::Protocols::RestJson)
84
+ add_plugin(Aws::Scheduler::Plugins::Endpoints)
85
+
86
+ # @overload initialize(options)
87
+ # @param [Hash] options
88
+ # @option options [required, Aws::CredentialProvider] :credentials
89
+ # Your AWS credentials. This can be an instance of any one of the
90
+ # following classes:
91
+ #
92
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
93
+ # credentials.
94
+ #
95
+ # * `Aws::SharedCredentials` - Used for loading static credentials from a
96
+ # shared file, such as `~/.aws/config`.
97
+ #
98
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
99
+ #
100
+ # * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to
101
+ # assume a role after providing credentials via the web.
102
+ #
103
+ # * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an
104
+ # access token generated from `aws login`.
105
+ #
106
+ # * `Aws::ProcessCredentials` - Used for loading credentials from a
107
+ # process that outputs to stdout.
108
+ #
109
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
110
+ # from an EC2 IMDS on an EC2 instance.
111
+ #
112
+ # * `Aws::ECSCredentials` - Used for loading credentials from
113
+ # instances running in ECS.
114
+ #
115
+ # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
116
+ # from the Cognito Identity service.
117
+ #
118
+ # When `:credentials` are not configured directly, the following
119
+ # locations will be searched for credentials:
120
+ #
121
+ # * `Aws.config[:credentials]`
122
+ # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
123
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
124
+ # * `~/.aws/credentials`
125
+ # * `~/.aws/config`
126
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts
127
+ # are very aggressive. Construct and pass an instance of
128
+ # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
129
+ # enable retries and extended timeouts. Instance profile credential
130
+ # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
131
+ # to true.
132
+ #
133
+ # @option options [required, String] :region
134
+ # The AWS region to connect to. The configured `:region` is
135
+ # used to determine the service `:endpoint`. When not passed,
136
+ # a default `:region` is searched for in the following locations:
137
+ #
138
+ # * `Aws.config[:region]`
139
+ # * `ENV['AWS_REGION']`
140
+ # * `ENV['AMAZON_REGION']`
141
+ # * `ENV['AWS_DEFAULT_REGION']`
142
+ # * `~/.aws/credentials`
143
+ # * `~/.aws/config`
144
+ #
145
+ # @option options [String] :access_key_id
146
+ #
147
+ # @option options [Boolean] :active_endpoint_cache (false)
148
+ # When set to `true`, a thread polling for endpoints will be running in
149
+ # the background every 60 secs (default). Defaults to `false`.
150
+ #
151
+ # @option options [Boolean] :adaptive_retry_wait_to_fill (true)
152
+ # Used only in `adaptive` retry mode. When true, the request will sleep
153
+ # until there is sufficent client side capacity to retry the request.
154
+ # When false, the request will raise a `RetryCapacityNotAvailableError` and will
155
+ # not retry instead of sleeping.
156
+ #
157
+ # @option options [Boolean] :client_side_monitoring (false)
158
+ # When `true`, client-side metrics will be collected for all API requests from
159
+ # this client.
160
+ #
161
+ # @option options [String] :client_side_monitoring_client_id ("")
162
+ # Allows you to provide an identifier for this client which will be attached to
163
+ # all generated client side metrics. Defaults to an empty string.
164
+ #
165
+ # @option options [String] :client_side_monitoring_host ("127.0.0.1")
166
+ # Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client
167
+ # side monitoring agent is running on, where client metrics will be published via UDP.
168
+ #
169
+ # @option options [Integer] :client_side_monitoring_port (31000)
170
+ # Required for publishing client metrics. The port that the client side monitoring
171
+ # agent is running on, where client metrics will be published via UDP.
172
+ #
173
+ # @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher)
174
+ # Allows you to provide a custom client-side monitoring publisher class. By default,
175
+ # will use the Client Side Monitoring Agent Publisher.
176
+ #
177
+ # @option options [Boolean] :convert_params (true)
178
+ # When `true`, an attempt is made to coerce request parameters into
179
+ # the required types.
180
+ #
181
+ # @option options [Boolean] :correct_clock_skew (true)
182
+ # Used only in `standard` and adaptive retry modes. Specifies whether to apply
183
+ # a clock skew correction and retry requests with skewed client clocks.
184
+ #
185
+ # @option options [String] :defaults_mode ("legacy")
186
+ # See {Aws::DefaultsModeConfiguration} for a list of the
187
+ # accepted modes and the configuration defaults that are included.
188
+ #
189
+ # @option options [Boolean] :disable_host_prefix_injection (false)
190
+ # Set to true to disable SDK automatically adding host prefix
191
+ # to default service endpoint when available.
192
+ #
193
+ # @option options [String] :endpoint
194
+ # The client endpoint is normally constructed from the `:region`
195
+ # option. You should only configure an `:endpoint` when connecting
196
+ # to test or custom endpoints. This should be a valid HTTP(S) URI.
197
+ #
198
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
199
+ # Used for the maximum size limit of the LRU cache storing endpoints data
200
+ # for endpoint discovery enabled operations. Defaults to 1000.
201
+ #
202
+ # @option options [Integer] :endpoint_cache_max_threads (10)
203
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
204
+ #
205
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
206
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
207
+ # Use this option to config the time interval in seconds for making
208
+ # requests fetching endpoints information. Defaults to 60 sec.
209
+ #
210
+ # @option options [Boolean] :endpoint_discovery (false)
211
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
212
+ #
213
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
214
+ # The log formatter.
215
+ #
216
+ # @option options [Symbol] :log_level (:info)
217
+ # The log level to send messages to the `:logger` at.
218
+ #
219
+ # @option options [Logger] :logger
220
+ # The Logger instance to send log messages to. If this option
221
+ # is not set, logging will be disabled.
222
+ #
223
+ # @option options [Integer] :max_attempts (3)
224
+ # An integer representing the maximum number attempts that will be made for
225
+ # a single request, including the initial attempt. For example,
226
+ # setting this value to 5 will result in a request being retried up to
227
+ # 4 times. Used in `standard` and `adaptive` retry modes.
228
+ #
229
+ # @option options [String] :profile ("default")
230
+ # Used when loading credentials from the shared credentials file
231
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
232
+ #
233
+ # @option options [Proc] :retry_backoff
234
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
235
+ # This option is only used in the `legacy` retry mode.
236
+ #
237
+ # @option options [Float] :retry_base_delay (0.3)
238
+ # The base delay in seconds used by the default backoff function. This option
239
+ # is only used in the `legacy` retry mode.
240
+ #
241
+ # @option options [Symbol] :retry_jitter (:none)
242
+ # A delay randomiser function used by the default backoff function.
243
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
244
+ # otherwise a Proc that takes and returns a number. This option is only used
245
+ # in the `legacy` retry mode.
246
+ #
247
+ # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
248
+ #
249
+ # @option options [Integer] :retry_limit (3)
250
+ # The maximum number of times to retry failed requests. Only
251
+ # ~ 500 level server errors and certain ~ 400 level client errors
252
+ # are retried. Generally, these are throttling errors, data
253
+ # checksum errors, networking errors, timeout errors, auth errors,
254
+ # endpoint discovery, and errors from expired credentials.
255
+ # This option is only used in the `legacy` retry mode.
256
+ #
257
+ # @option options [Integer] :retry_max_delay (0)
258
+ # The maximum number of seconds to delay between retries (0 for no limit)
259
+ # used by the default backoff function. This option is only used in the
260
+ # `legacy` retry mode.
261
+ #
262
+ # @option options [String] :retry_mode ("legacy")
263
+ # Specifies which retry algorithm to use. Values are:
264
+ #
265
+ # * `legacy` - The pre-existing retry behavior. This is default value if
266
+ # no retry mode is provided.
267
+ #
268
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
269
+ # This includes support for retry quotas, which limit the number of
270
+ # unsuccessful retries a client can make.
271
+ #
272
+ # * `adaptive` - An experimental retry mode that includes all the
273
+ # functionality of `standard` mode along with automatic client side
274
+ # throttling. This is a provisional mode that may change behavior
275
+ # in the future.
276
+ #
277
+ #
278
+ # @option options [String] :secret_access_key
279
+ #
280
+ # @option options [String] :session_token
281
+ #
282
+ # @option options [Boolean] :stub_responses (false)
283
+ # Causes the client to return stubbed responses. By default
284
+ # fake responses are generated and returned. You can specify
285
+ # the response data to return or errors to raise by calling
286
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
287
+ #
288
+ # ** Please note ** When response stubbing is enabled, no HTTP
289
+ # requests are made, and retries are disabled.
290
+ #
291
+ # @option options [Aws::TokenProvider] :token_provider
292
+ # A Bearer Token Provider. This can be an instance of any one of the
293
+ # following classes:
294
+ #
295
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
296
+ # tokens.
297
+ #
298
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
299
+ # access token generated from `aws login`.
300
+ #
301
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
302
+ # will be used to search for tokens configured for your profile in shared configuration files.
303
+ #
304
+ # @option options [Boolean] :use_dualstack_endpoint
305
+ # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
306
+ # will be used if available.
307
+ #
308
+ # @option options [Boolean] :use_fips_endpoint
309
+ # When set to `true`, fips compatible endpoints will be used if available.
310
+ # When a `fips` region is used, the region is normalized and this config
311
+ # is set to `true`.
312
+ #
313
+ # @option options [Boolean] :validate_params (true)
314
+ # When `true`, request parameters are validated before
315
+ # sending the request.
316
+ #
317
+ # @option options [Aws::Scheduler::EndpointProvider] :endpoint_provider
318
+ # The endpoint provider used to resolve endpoints. Any object that responds to `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to `Aws::Scheduler::EndpointParameters`
319
+ #
320
+ # @option options [URI::HTTP,String] :http_proxy A proxy to send
321
+ # requests through. Formatted like 'http://proxy.com:123'.
322
+ #
323
+ # @option options [Float] :http_open_timeout (15) The number of
324
+ # seconds to wait when opening a HTTP session before raising a
325
+ # `Timeout::Error`.
326
+ #
327
+ # @option options [Float] :http_read_timeout (60) The default
328
+ # number of seconds to wait for response data. This value can
329
+ # safely be set per-request on the session.
330
+ #
331
+ # @option options [Float] :http_idle_timeout (5) The number of
332
+ # seconds a connection is allowed to sit idle before it is
333
+ # considered stale. Stale connections are closed and removed
334
+ # from the pool before making a request.
335
+ #
336
+ # @option options [Float] :http_continue_timeout (1) The number of
337
+ # seconds to wait for a 100-continue response before sending the
338
+ # request body. This option has no effect unless the request has
339
+ # "Expect" header set to "100-continue". Defaults to `nil` which
340
+ # disables this behaviour. This value can safely be set per
341
+ # request on the session.
342
+ #
343
+ # @option options [Float] :ssl_timeout (nil) Sets the SSL timeout
344
+ # in seconds.
345
+ #
346
+ # @option options [Boolean] :http_wire_trace (false) When `true`,
347
+ # HTTP debug output will be sent to the `:logger`.
348
+ #
349
+ # @option options [Boolean] :ssl_verify_peer (true) When `true`,
350
+ # SSL peer certificates are verified when establishing a
351
+ # connection.
352
+ #
353
+ # @option options [String] :ssl_ca_bundle Full path to the SSL
354
+ # certificate authority bundle file that should be used when
355
+ # verifying peer certificates. If you do not pass
356
+ # `:ssl_ca_bundle` or `:ssl_ca_directory` the the system default
357
+ # will be used if available.
358
+ #
359
+ # @option options [String] :ssl_ca_directory Full path of the
360
+ # directory that contains the unbundled SSL certificate
361
+ # authority files for verifying peer certificates. If you do
362
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the
363
+ # system default will be used if available.
364
+ #
365
+ def initialize(*args)
366
+ super
367
+ end
368
+
369
+ # @!group API Operations
370
+
371
+ # Creates the specified schedule.
372
+ #
373
+ # @option params [String] :client_token
374
+ # Unique, case-sensitive identifier you provide to ensure the
375
+ # idempotency of the request. If you do not specify a client token,
376
+ # EventBridge Scheduler uses a randomly generated token for the request
377
+ # to ensure idempotency.
378
+ #
379
+ # **A suitable default value is auto-generated.** You should normally
380
+ # not need to pass this option.**
381
+ #
382
+ # @option params [String] :description
383
+ # The description you specify for the schedule.
384
+ #
385
+ # @option params [Time,DateTime,Date,Integer,String] :end_date
386
+ # The date, in UTC, before which the schedule can invoke its target.
387
+ # Depending on the schedule's recurrence expression, invocations might
388
+ # stop on, or before, the `EndDate` you specify. EventBridge Scheduler
389
+ # ignores `EndDate` for one-time schedules.
390
+ #
391
+ # @option params [required, Types::FlexibleTimeWindow] :flexible_time_window
392
+ # Allows you to configure a time window during which EventBridge
393
+ # Scheduler invokes the schedule.
394
+ #
395
+ # @option params [String] :group_name
396
+ # The name of the schedule group to associate with this schedule. If you
397
+ # omit this, the default schedule group is used.
398
+ #
399
+ # @option params [String] :kms_key_arn
400
+ # The Amazon Resource Name (ARN) for the customer managed KMS key that
401
+ # EventBridge Scheduler will use to encrypt and decrypt your data.
402
+ #
403
+ # @option params [required, String] :name
404
+ # The name of the schedule that you are creating.
405
+ #
406
+ # @option params [required, String] :schedule_expression
407
+ # The expression that defines when the schedule runs. The following
408
+ # formats are supported.
409
+ #
410
+ # * `at` expression - `at(yyyy-mm-ddThh:mm:ss)`
411
+ #
412
+ # * `rate` expression - `rate(unit value)`
413
+ #
414
+ # * `cron` expression - `cron(fields)`
415
+ #
416
+ # You can use `at` expressions to create one-time schedules that invoke
417
+ # a target once, at the time and in the time zone, that you specify. You
418
+ # can use `rate` and `cron` expressions to create recurring schedules.
419
+ # Rate-based schedules are useful when you want to invoke a target at
420
+ # regular intervals, such as every 15 minutes or every five days.
421
+ # Cron-based schedules are useful when you want to invoke a target
422
+ # periodically at a specific time, such as at 8:00 am (UTC+0) every 1st
423
+ # day of the month.
424
+ #
425
+ # A `cron` expression consists of six fields separated by white spaces:
426
+ # `(minutes hours day_of_month month day_of_week year)`.
427
+ #
428
+ # A `rate` expression consists of a *value* as a positive integer, and a
429
+ # *unit* with the following options: `minute` \| `minutes` \| `hour` \|
430
+ # `hours` \| `day` \| `days`
431
+ #
432
+ # For more information and examples, see [Schedule types on EventBridge
433
+ # Scheduler][1] in the *EventBridge Scheduler User Guide*.
434
+ #
435
+ #
436
+ #
437
+ # [1]: https://docs.aws.amazon.com/scheduler/latest/UserGuide/schedule-types.html
438
+ #
439
+ # @option params [String] :schedule_expression_timezone
440
+ # The timezone in which the scheduling expression is evaluated.
441
+ #
442
+ # @option params [Time,DateTime,Date,Integer,String] :start_date
443
+ # The date, in UTC, after which the schedule can begin invoking its
444
+ # target. Depending on the schedule's recurrence expression,
445
+ # invocations might occur on, or after, the `StartDate` you specify.
446
+ # EventBridge Scheduler ignores `StartDate` for one-time schedules.
447
+ #
448
+ # @option params [String] :state
449
+ # Specifies whether the schedule is enabled or disabled.
450
+ #
451
+ # @option params [required, Types::Target] :target
452
+ # The schedule's target.
453
+ #
454
+ # @return [Types::CreateScheduleOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
455
+ #
456
+ # * {Types::CreateScheduleOutput#schedule_arn #schedule_arn} => String
457
+ #
458
+ # @example Request syntax with placeholder values
459
+ #
460
+ # resp = client.create_schedule({
461
+ # client_token: "ClientToken",
462
+ # description: "Description",
463
+ # end_date: Time.now,
464
+ # flexible_time_window: { # required
465
+ # maximum_window_in_minutes: 1,
466
+ # mode: "OFF", # required, accepts OFF, FLEXIBLE
467
+ # },
468
+ # group_name: "ScheduleGroupName",
469
+ # kms_key_arn: "KmsKeyArn",
470
+ # name: "Name", # required
471
+ # schedule_expression: "ScheduleExpression", # required
472
+ # schedule_expression_timezone: "ScheduleExpressionTimezone",
473
+ # start_date: Time.now,
474
+ # state: "ENABLED", # accepts ENABLED, DISABLED
475
+ # target: { # required
476
+ # arn: "TargetArn", # required
477
+ # dead_letter_config: {
478
+ # arn: "DeadLetterConfigArnString",
479
+ # },
480
+ # ecs_parameters: {
481
+ # capacity_provider_strategy: [
482
+ # {
483
+ # base: 1,
484
+ # capacity_provider: "CapacityProvider", # required
485
+ # weight: 1,
486
+ # },
487
+ # ],
488
+ # enable_ecs_managed_tags: false,
489
+ # enable_execute_command: false,
490
+ # group: "Group",
491
+ # launch_type: "EC2", # accepts EC2, FARGATE, EXTERNAL
492
+ # network_configuration: {
493
+ # awsvpc_configuration: {
494
+ # assign_public_ip: "ENABLED", # accepts ENABLED, DISABLED
495
+ # security_groups: ["SecurityGroup"],
496
+ # subnets: ["Subnet"], # required
497
+ # },
498
+ # },
499
+ # placement_constraints: [
500
+ # {
501
+ # expression: "PlacementConstraintExpression",
502
+ # type: "distinctInstance", # accepts distinctInstance, memberOf
503
+ # },
504
+ # ],
505
+ # placement_strategy: [
506
+ # {
507
+ # field: "PlacementStrategyField",
508
+ # type: "random", # accepts random, spread, binpack
509
+ # },
510
+ # ],
511
+ # platform_version: "PlatformVersion",
512
+ # propagate_tags: "TASK_DEFINITION", # accepts TASK_DEFINITION
513
+ # reference_id: "ReferenceId",
514
+ # tags: [
515
+ # {
516
+ # "TagKey" => "TagValue",
517
+ # },
518
+ # ],
519
+ # task_count: 1,
520
+ # task_definition_arn: "TaskDefinitionArn", # required
521
+ # },
522
+ # event_bridge_parameters: {
523
+ # detail_type: "DetailType", # required
524
+ # source: "Source", # required
525
+ # },
526
+ # input: "TargetInput",
527
+ # kinesis_parameters: {
528
+ # partition_key: "TargetPartitionKey", # required
529
+ # },
530
+ # retry_policy: {
531
+ # maximum_event_age_in_seconds: 1,
532
+ # maximum_retry_attempts: 1,
533
+ # },
534
+ # role_arn: "RoleArn", # required
535
+ # sage_maker_pipeline_parameters: {
536
+ # pipeline_parameter_list: [
537
+ # {
538
+ # name: "SageMakerPipelineParameterName", # required
539
+ # value: "SageMakerPipelineParameterValue", # required
540
+ # },
541
+ # ],
542
+ # },
543
+ # sqs_parameters: {
544
+ # message_group_id: "MessageGroupId",
545
+ # },
546
+ # },
547
+ # })
548
+ #
549
+ # @example Response structure
550
+ #
551
+ # resp.schedule_arn #=> String
552
+ #
553
+ # @see http://docs.aws.amazon.com/goto/WebAPI/scheduler-2021-06-30/CreateSchedule AWS API Documentation
554
+ #
555
+ # @overload create_schedule(params = {})
556
+ # @param [Hash] params ({})
557
+ def create_schedule(params = {}, options = {})
558
+ req = build_request(:create_schedule, params)
559
+ req.send_request(options)
560
+ end
561
+
562
+ # Creates the specified schedule group.
563
+ #
564
+ # @option params [String] :client_token
565
+ # Unique, case-sensitive identifier you provide to ensure the
566
+ # idempotency of the request. If you do not specify a client token,
567
+ # EventBridge Scheduler uses a randomly generated token for the request
568
+ # to ensure idempotency.
569
+ #
570
+ # **A suitable default value is auto-generated.** You should normally
571
+ # not need to pass this option.**
572
+ #
573
+ # @option params [required, String] :name
574
+ # The name of the schedule group that you are creating.
575
+ #
576
+ # @option params [Array<Types::Tag>] :tags
577
+ # The list of tags to associate with the schedule group.
578
+ #
579
+ # @return [Types::CreateScheduleGroupOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
580
+ #
581
+ # * {Types::CreateScheduleGroupOutput#schedule_group_arn #schedule_group_arn} => String
582
+ #
583
+ # @example Request syntax with placeholder values
584
+ #
585
+ # resp = client.create_schedule_group({
586
+ # client_token: "ClientToken",
587
+ # name: "ScheduleGroupName", # required
588
+ # tags: [
589
+ # {
590
+ # key: "TagKey", # required
591
+ # value: "TagValue", # required
592
+ # },
593
+ # ],
594
+ # })
595
+ #
596
+ # @example Response structure
597
+ #
598
+ # resp.schedule_group_arn #=> String
599
+ #
600
+ # @see http://docs.aws.amazon.com/goto/WebAPI/scheduler-2021-06-30/CreateScheduleGroup AWS API Documentation
601
+ #
602
+ # @overload create_schedule_group(params = {})
603
+ # @param [Hash] params ({})
604
+ def create_schedule_group(params = {}, options = {})
605
+ req = build_request(:create_schedule_group, params)
606
+ req.send_request(options)
607
+ end
608
+
609
+ # Deletes the specified schedule.
610
+ #
611
+ # @option params [String] :client_token
612
+ # Unique, case-sensitive identifier you provide to ensure the
613
+ # idempotency of the request. If you do not specify a client token,
614
+ # EventBridge Scheduler uses a randomly generated token for the request
615
+ # to ensure idempotency.
616
+ #
617
+ # **A suitable default value is auto-generated.** You should normally
618
+ # not need to pass this option.**
619
+ #
620
+ # @option params [String] :group_name
621
+ # The name of the schedule group associated with this schedule. If you
622
+ # omit this, the default schedule group is used.
623
+ #
624
+ # @option params [required, String] :name
625
+ # The name of the schedule to delete.
626
+ #
627
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
628
+ #
629
+ # @example Request syntax with placeholder values
630
+ #
631
+ # resp = client.delete_schedule({
632
+ # client_token: "ClientToken",
633
+ # group_name: "ScheduleGroupName",
634
+ # name: "Name", # required
635
+ # })
636
+ #
637
+ # @see http://docs.aws.amazon.com/goto/WebAPI/scheduler-2021-06-30/DeleteSchedule AWS API Documentation
638
+ #
639
+ # @overload delete_schedule(params = {})
640
+ # @param [Hash] params ({})
641
+ def delete_schedule(params = {}, options = {})
642
+ req = build_request(:delete_schedule, params)
643
+ req.send_request(options)
644
+ end
645
+
646
+ # Deletes the specified schedule group. Deleting a schedule group
647
+ # results in EventBridge Scheduler deleting all schedules associated
648
+ # with the group. When you delete a group, it remains in a `DELETING`
649
+ # state until all of its associated schedules are deleted. Schedules
650
+ # associated with the group that are set to run while the schedule group
651
+ # is in the process of being deleted might continue to invoke their
652
+ # targets until the schedule group and its associated schedules are
653
+ # deleted.
654
+ #
655
+ # <note markdown="1"> This operation is eventually consistent.
656
+ #
657
+ # </note>
658
+ #
659
+ # @option params [String] :client_token
660
+ # Unique, case-sensitive identifier you provide to ensure the
661
+ # idempotency of the request. If you do not specify a client token,
662
+ # EventBridge Scheduler uses a randomly generated token for the request
663
+ # to ensure idempotency.
664
+ #
665
+ # **A suitable default value is auto-generated.** You should normally
666
+ # not need to pass this option.**
667
+ #
668
+ # @option params [required, String] :name
669
+ # The name of the schedule group to delete.
670
+ #
671
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
672
+ #
673
+ # @example Request syntax with placeholder values
674
+ #
675
+ # resp = client.delete_schedule_group({
676
+ # client_token: "ClientToken",
677
+ # name: "ScheduleGroupName", # required
678
+ # })
679
+ #
680
+ # @see http://docs.aws.amazon.com/goto/WebAPI/scheduler-2021-06-30/DeleteScheduleGroup AWS API Documentation
681
+ #
682
+ # @overload delete_schedule_group(params = {})
683
+ # @param [Hash] params ({})
684
+ def delete_schedule_group(params = {}, options = {})
685
+ req = build_request(:delete_schedule_group, params)
686
+ req.send_request(options)
687
+ end
688
+
689
+ # Retrieves the specified schedule.
690
+ #
691
+ # @option params [String] :group_name
692
+ # The name of the schedule group associated with this schedule. If you
693
+ # omit this, EventBridge Scheduler assumes that the schedule is
694
+ # associated with the default group.
695
+ #
696
+ # @option params [required, String] :name
697
+ # The name of the schedule to retrieve.
698
+ #
699
+ # @return [Types::GetScheduleOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
700
+ #
701
+ # * {Types::GetScheduleOutput#arn #arn} => String
702
+ # * {Types::GetScheduleOutput#creation_date #creation_date} => Time
703
+ # * {Types::GetScheduleOutput#description #description} => String
704
+ # * {Types::GetScheduleOutput#end_date #end_date} => Time
705
+ # * {Types::GetScheduleOutput#flexible_time_window #flexible_time_window} => Types::FlexibleTimeWindow
706
+ # * {Types::GetScheduleOutput#group_name #group_name} => String
707
+ # * {Types::GetScheduleOutput#kms_key_arn #kms_key_arn} => String
708
+ # * {Types::GetScheduleOutput#last_modification_date #last_modification_date} => Time
709
+ # * {Types::GetScheduleOutput#name #name} => String
710
+ # * {Types::GetScheduleOutput#schedule_expression #schedule_expression} => String
711
+ # * {Types::GetScheduleOutput#schedule_expression_timezone #schedule_expression_timezone} => String
712
+ # * {Types::GetScheduleOutput#start_date #start_date} => Time
713
+ # * {Types::GetScheduleOutput#state #state} => String
714
+ # * {Types::GetScheduleOutput#target #target} => Types::Target
715
+ #
716
+ # @example Request syntax with placeholder values
717
+ #
718
+ # resp = client.get_schedule({
719
+ # group_name: "ScheduleGroupName",
720
+ # name: "Name", # required
721
+ # })
722
+ #
723
+ # @example Response structure
724
+ #
725
+ # resp.arn #=> String
726
+ # resp.creation_date #=> Time
727
+ # resp.description #=> String
728
+ # resp.end_date #=> Time
729
+ # resp.flexible_time_window.maximum_window_in_minutes #=> Integer
730
+ # resp.flexible_time_window.mode #=> String, one of "OFF", "FLEXIBLE"
731
+ # resp.group_name #=> String
732
+ # resp.kms_key_arn #=> String
733
+ # resp.last_modification_date #=> Time
734
+ # resp.name #=> String
735
+ # resp.schedule_expression #=> String
736
+ # resp.schedule_expression_timezone #=> String
737
+ # resp.start_date #=> Time
738
+ # resp.state #=> String, one of "ENABLED", "DISABLED"
739
+ # resp.target.arn #=> String
740
+ # resp.target.dead_letter_config.arn #=> String
741
+ # resp.target.ecs_parameters.capacity_provider_strategy #=> Array
742
+ # resp.target.ecs_parameters.capacity_provider_strategy[0].base #=> Integer
743
+ # resp.target.ecs_parameters.capacity_provider_strategy[0].capacity_provider #=> String
744
+ # resp.target.ecs_parameters.capacity_provider_strategy[0].weight #=> Integer
745
+ # resp.target.ecs_parameters.enable_ecs_managed_tags #=> Boolean
746
+ # resp.target.ecs_parameters.enable_execute_command #=> Boolean
747
+ # resp.target.ecs_parameters.group #=> String
748
+ # resp.target.ecs_parameters.launch_type #=> String, one of "EC2", "FARGATE", "EXTERNAL"
749
+ # resp.target.ecs_parameters.network_configuration.awsvpc_configuration.assign_public_ip #=> String, one of "ENABLED", "DISABLED"
750
+ # resp.target.ecs_parameters.network_configuration.awsvpc_configuration.security_groups #=> Array
751
+ # resp.target.ecs_parameters.network_configuration.awsvpc_configuration.security_groups[0] #=> String
752
+ # resp.target.ecs_parameters.network_configuration.awsvpc_configuration.subnets #=> Array
753
+ # resp.target.ecs_parameters.network_configuration.awsvpc_configuration.subnets[0] #=> String
754
+ # resp.target.ecs_parameters.placement_constraints #=> Array
755
+ # resp.target.ecs_parameters.placement_constraints[0].expression #=> String
756
+ # resp.target.ecs_parameters.placement_constraints[0].type #=> String, one of "distinctInstance", "memberOf"
757
+ # resp.target.ecs_parameters.placement_strategy #=> Array
758
+ # resp.target.ecs_parameters.placement_strategy[0].field #=> String
759
+ # resp.target.ecs_parameters.placement_strategy[0].type #=> String, one of "random", "spread", "binpack"
760
+ # resp.target.ecs_parameters.platform_version #=> String
761
+ # resp.target.ecs_parameters.propagate_tags #=> String, one of "TASK_DEFINITION"
762
+ # resp.target.ecs_parameters.reference_id #=> String
763
+ # resp.target.ecs_parameters.tags #=> Array
764
+ # resp.target.ecs_parameters.tags[0] #=> Hash
765
+ # resp.target.ecs_parameters.tags[0]["TagKey"] #=> String
766
+ # resp.target.ecs_parameters.task_count #=> Integer
767
+ # resp.target.ecs_parameters.task_definition_arn #=> String
768
+ # resp.target.event_bridge_parameters.detail_type #=> String
769
+ # resp.target.event_bridge_parameters.source #=> String
770
+ # resp.target.input #=> String
771
+ # resp.target.kinesis_parameters.partition_key #=> String
772
+ # resp.target.retry_policy.maximum_event_age_in_seconds #=> Integer
773
+ # resp.target.retry_policy.maximum_retry_attempts #=> Integer
774
+ # resp.target.role_arn #=> String
775
+ # resp.target.sage_maker_pipeline_parameters.pipeline_parameter_list #=> Array
776
+ # resp.target.sage_maker_pipeline_parameters.pipeline_parameter_list[0].name #=> String
777
+ # resp.target.sage_maker_pipeline_parameters.pipeline_parameter_list[0].value #=> String
778
+ # resp.target.sqs_parameters.message_group_id #=> String
779
+ #
780
+ # @see http://docs.aws.amazon.com/goto/WebAPI/scheduler-2021-06-30/GetSchedule AWS API Documentation
781
+ #
782
+ # @overload get_schedule(params = {})
783
+ # @param [Hash] params ({})
784
+ def get_schedule(params = {}, options = {})
785
+ req = build_request(:get_schedule, params)
786
+ req.send_request(options)
787
+ end
788
+
789
+ # Retrieves the specified schedule group.
790
+ #
791
+ # @option params [required, String] :name
792
+ # The name of the schedule group to retrieve.
793
+ #
794
+ # @return [Types::GetScheduleGroupOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
795
+ #
796
+ # * {Types::GetScheduleGroupOutput#arn #arn} => String
797
+ # * {Types::GetScheduleGroupOutput#creation_date #creation_date} => Time
798
+ # * {Types::GetScheduleGroupOutput#last_modification_date #last_modification_date} => Time
799
+ # * {Types::GetScheduleGroupOutput#name #name} => String
800
+ # * {Types::GetScheduleGroupOutput#state #state} => String
801
+ #
802
+ # @example Request syntax with placeholder values
803
+ #
804
+ # resp = client.get_schedule_group({
805
+ # name: "ScheduleGroupName", # required
806
+ # })
807
+ #
808
+ # @example Response structure
809
+ #
810
+ # resp.arn #=> String
811
+ # resp.creation_date #=> Time
812
+ # resp.last_modification_date #=> Time
813
+ # resp.name #=> String
814
+ # resp.state #=> String, one of "ACTIVE", "DELETING"
815
+ #
816
+ # @see http://docs.aws.amazon.com/goto/WebAPI/scheduler-2021-06-30/GetScheduleGroup AWS API Documentation
817
+ #
818
+ # @overload get_schedule_group(params = {})
819
+ # @param [Hash] params ({})
820
+ def get_schedule_group(params = {}, options = {})
821
+ req = build_request(:get_schedule_group, params)
822
+ req.send_request(options)
823
+ end
824
+
825
+ # Returns a paginated list of your schedule groups.
826
+ #
827
+ # @option params [Integer] :max_results
828
+ # If specified, limits the number of results returned by this operation.
829
+ # The operation also returns a `NextToken` which you can use in a
830
+ # subsequent operation to retrieve the next set of results.
831
+ #
832
+ # @option params [String] :name_prefix
833
+ # The name prefix that you can use to return a filtered list of your
834
+ # schedule groups.
835
+ #
836
+ # @option params [String] :next_token
837
+ # The token returned by a previous call to retrieve the next set of
838
+ # results.
839
+ #
840
+ # @return [Types::ListScheduleGroupsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
841
+ #
842
+ # * {Types::ListScheduleGroupsOutput#next_token #next_token} => String
843
+ # * {Types::ListScheduleGroupsOutput#schedule_groups #schedule_groups} => Array&lt;Types::ScheduleGroupSummary&gt;
844
+ #
845
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
846
+ #
847
+ # @example Request syntax with placeholder values
848
+ #
849
+ # resp = client.list_schedule_groups({
850
+ # max_results: 1,
851
+ # name_prefix: "ScheduleGroupNamePrefix",
852
+ # next_token: "NextToken",
853
+ # })
854
+ #
855
+ # @example Response structure
856
+ #
857
+ # resp.next_token #=> String
858
+ # resp.schedule_groups #=> Array
859
+ # resp.schedule_groups[0].arn #=> String
860
+ # resp.schedule_groups[0].creation_date #=> Time
861
+ # resp.schedule_groups[0].last_modification_date #=> Time
862
+ # resp.schedule_groups[0].name #=> String
863
+ # resp.schedule_groups[0].state #=> String, one of "ACTIVE", "DELETING"
864
+ #
865
+ # @see http://docs.aws.amazon.com/goto/WebAPI/scheduler-2021-06-30/ListScheduleGroups AWS API Documentation
866
+ #
867
+ # @overload list_schedule_groups(params = {})
868
+ # @param [Hash] params ({})
869
+ def list_schedule_groups(params = {}, options = {})
870
+ req = build_request(:list_schedule_groups, params)
871
+ req.send_request(options)
872
+ end
873
+
874
+ # Returns a paginated list of your EventBridge Scheduler schedules.
875
+ #
876
+ # @option params [String] :group_name
877
+ # If specified, only lists the schedules whose associated schedule group
878
+ # matches the given filter.
879
+ #
880
+ # @option params [Integer] :max_results
881
+ # If specified, limits the number of results returned by this operation.
882
+ # The operation also returns a `NextToken` which you can use in a
883
+ # subsequent operation to retrieve the next set of results.
884
+ #
885
+ # @option params [String] :name_prefix
886
+ # Schedule name prefix to return the filtered list of resources.
887
+ #
888
+ # @option params [String] :next_token
889
+ # The token returned by a previous call to retrieve the next set of
890
+ # results.
891
+ #
892
+ # @option params [String] :state
893
+ # If specified, only lists the schedules whose current state matches the
894
+ # given filter.
895
+ #
896
+ # @return [Types::ListSchedulesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
897
+ #
898
+ # * {Types::ListSchedulesOutput#next_token #next_token} => String
899
+ # * {Types::ListSchedulesOutput#schedules #schedules} => Array&lt;Types::ScheduleSummary&gt;
900
+ #
901
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
902
+ #
903
+ # @example Request syntax with placeholder values
904
+ #
905
+ # resp = client.list_schedules({
906
+ # group_name: "ScheduleGroupName",
907
+ # max_results: 1,
908
+ # name_prefix: "NamePrefix",
909
+ # next_token: "NextToken",
910
+ # state: "ENABLED", # accepts ENABLED, DISABLED
911
+ # })
912
+ #
913
+ # @example Response structure
914
+ #
915
+ # resp.next_token #=> String
916
+ # resp.schedules #=> Array
917
+ # resp.schedules[0].arn #=> String
918
+ # resp.schedules[0].creation_date #=> Time
919
+ # resp.schedules[0].group_name #=> String
920
+ # resp.schedules[0].last_modification_date #=> Time
921
+ # resp.schedules[0].name #=> String
922
+ # resp.schedules[0].state #=> String, one of "ENABLED", "DISABLED"
923
+ # resp.schedules[0].target.arn #=> String
924
+ #
925
+ # @see http://docs.aws.amazon.com/goto/WebAPI/scheduler-2021-06-30/ListSchedules AWS API Documentation
926
+ #
927
+ # @overload list_schedules(params = {})
928
+ # @param [Hash] params ({})
929
+ def list_schedules(params = {}, options = {})
930
+ req = build_request(:list_schedules, params)
931
+ req.send_request(options)
932
+ end
933
+
934
+ # Lists the tags associated with the Scheduler resource.
935
+ #
936
+ # @option params [required, String] :resource_arn
937
+ # The ARN of the EventBridge Scheduler resource for which you want to
938
+ # view tags.
939
+ #
940
+ # @return [Types::ListTagsForResourceOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
941
+ #
942
+ # * {Types::ListTagsForResourceOutput#tags #tags} => Array&lt;Types::Tag&gt;
943
+ #
944
+ # @example Request syntax with placeholder values
945
+ #
946
+ # resp = client.list_tags_for_resource({
947
+ # resource_arn: "TagResourceArn", # required
948
+ # })
949
+ #
950
+ # @example Response structure
951
+ #
952
+ # resp.tags #=> Array
953
+ # resp.tags[0].key #=> String
954
+ # resp.tags[0].value #=> String
955
+ #
956
+ # @see http://docs.aws.amazon.com/goto/WebAPI/scheduler-2021-06-30/ListTagsForResource AWS API Documentation
957
+ #
958
+ # @overload list_tags_for_resource(params = {})
959
+ # @param [Hash] params ({})
960
+ def list_tags_for_resource(params = {}, options = {})
961
+ req = build_request(:list_tags_for_resource, params)
962
+ req.send_request(options)
963
+ end
964
+
965
+ # Assigns one or more tags (key-value pairs) to the specified
966
+ # EventBridge Scheduler resource. You can only assign tags to schedule
967
+ # groups.
968
+ #
969
+ # @option params [required, String] :resource_arn
970
+ # The Amazon Resource Name (ARN) of the schedule group that you are
971
+ # adding tags to.
972
+ #
973
+ # @option params [required, Array<Types::Tag>] :tags
974
+ # The list of tags to associate with the schedule group.
975
+ #
976
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
977
+ #
978
+ # @example Request syntax with placeholder values
979
+ #
980
+ # resp = client.tag_resource({
981
+ # resource_arn: "TagResourceArn", # required
982
+ # tags: [ # required
983
+ # {
984
+ # key: "TagKey", # required
985
+ # value: "TagValue", # required
986
+ # },
987
+ # ],
988
+ # })
989
+ #
990
+ # @see http://docs.aws.amazon.com/goto/WebAPI/scheduler-2021-06-30/TagResource AWS API Documentation
991
+ #
992
+ # @overload tag_resource(params = {})
993
+ # @param [Hash] params ({})
994
+ def tag_resource(params = {}, options = {})
995
+ req = build_request(:tag_resource, params)
996
+ req.send_request(options)
997
+ end
998
+
999
+ # Removes one or more tags from the specified EventBridge Scheduler
1000
+ # schedule group.
1001
+ #
1002
+ # @option params [required, String] :resource_arn
1003
+ # The Amazon Resource Name (ARN) of the schedule group from which you
1004
+ # are removing tags.
1005
+ #
1006
+ # @option params [required, Array<String>] :tag_keys
1007
+ # The list of tag keys to remove from the resource.
1008
+ #
1009
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1010
+ #
1011
+ # @example Request syntax with placeholder values
1012
+ #
1013
+ # resp = client.untag_resource({
1014
+ # resource_arn: "TagResourceArn", # required
1015
+ # tag_keys: ["TagKey"], # required
1016
+ # })
1017
+ #
1018
+ # @see http://docs.aws.amazon.com/goto/WebAPI/scheduler-2021-06-30/UntagResource AWS API Documentation
1019
+ #
1020
+ # @overload untag_resource(params = {})
1021
+ # @param [Hash] params ({})
1022
+ def untag_resource(params = {}, options = {})
1023
+ req = build_request(:untag_resource, params)
1024
+ req.send_request(options)
1025
+ end
1026
+
1027
+ # Updates the specified schedule. When you call `UpdateSchedule`,
1028
+ # EventBridge Scheduler uses all values, including empty values,
1029
+ # specified in the request and overrides the existing schedule. This is
1030
+ # by design. This means that if you do not set an optional field in your
1031
+ # request, that field will be set to its system-default value after the
1032
+ # update.
1033
+ #
1034
+ # Before calling this operation, we recommend that you call the
1035
+ # `GetSchedule` API operation and make a note of all optional parameters
1036
+ # for your `UpdateSchedule` call.
1037
+ #
1038
+ # @option params [String] :client_token
1039
+ # Unique, case-sensitive identifier you provide to ensure the
1040
+ # idempotency of the request. If you do not specify a client token,
1041
+ # EventBridge Scheduler uses a randomly generated token for the request
1042
+ # to ensure idempotency.
1043
+ #
1044
+ # **A suitable default value is auto-generated.** You should normally
1045
+ # not need to pass this option.**
1046
+ #
1047
+ # @option params [String] :description
1048
+ # The description you specify for the schedule.
1049
+ #
1050
+ # @option params [Time,DateTime,Date,Integer,String] :end_date
1051
+ # The date, in UTC, before which the schedule can invoke its target.
1052
+ # Depending on the schedule's recurrence expression, invocations might
1053
+ # stop on, or before, the `EndDate` you specify. EventBridge Scheduler
1054
+ # ignores `EndDate` for one-time schedules.
1055
+ #
1056
+ # @option params [required, Types::FlexibleTimeWindow] :flexible_time_window
1057
+ # Allows you to configure a time window during which EventBridge
1058
+ # Scheduler invokes the schedule.
1059
+ #
1060
+ # @option params [String] :group_name
1061
+ # The name of the schedule group with which the schedule is associated.
1062
+ # You must provide this value in order for EventBridge Scheduler to find
1063
+ # the schedule you want to update. If you omit this value, EventBridge
1064
+ # Scheduler assumes the group is associated to the default group.
1065
+ #
1066
+ # @option params [String] :kms_key_arn
1067
+ # The ARN for the customer managed KMS key that that you want
1068
+ # EventBridge Scheduler to use to encrypt and decrypt your data.
1069
+ #
1070
+ # @option params [required, String] :name
1071
+ # The name of the schedule that you are updating.
1072
+ #
1073
+ # @option params [required, String] :schedule_expression
1074
+ # The expression that defines when the schedule runs. The following
1075
+ # formats are supported.
1076
+ #
1077
+ # * `at` expression - `at(yyyy-mm-ddThh:mm:ss)`
1078
+ #
1079
+ # * `rate` expression - `rate(unit value)`
1080
+ #
1081
+ # * `cron` expression - `cron(fields)`
1082
+ #
1083
+ # You can use `at` expressions to create one-time schedules that invoke
1084
+ # a target once, at the time and in the time zone, that you specify. You
1085
+ # can use `rate` and `cron` expressions to create recurring schedules.
1086
+ # Rate-based schedules are useful when you want to invoke a target at
1087
+ # regular intervals, such as every 15 minutes or every five days.
1088
+ # Cron-based schedules are useful when you want to invoke a target
1089
+ # periodically at a specific time, such as at 8:00 am (UTC+0) every 1st
1090
+ # day of the month.
1091
+ #
1092
+ # A `cron` expression consists of six fields separated by white spaces:
1093
+ # `(minutes hours day_of_month month day_of_week year)`.
1094
+ #
1095
+ # A `rate` expression consists of a *value* as a positive integer, and a
1096
+ # *unit* with the following options: `minute` \| `minutes` \| `hour` \|
1097
+ # `hours` \| `day` \| `days`
1098
+ #
1099
+ # For more information and examples, see [Schedule types on EventBridge
1100
+ # Scheduler][1] in the *EventBridge Scheduler User Guide*.
1101
+ #
1102
+ #
1103
+ #
1104
+ # [1]: https://docs.aws.amazon.com/scheduler/latest/UserGuide/schedule-types.html
1105
+ #
1106
+ # @option params [String] :schedule_expression_timezone
1107
+ # The timezone in which the scheduling expression is evaluated.
1108
+ #
1109
+ # @option params [Time,DateTime,Date,Integer,String] :start_date
1110
+ # The date, in UTC, after which the schedule can begin invoking its
1111
+ # target. Depending on the schedule's recurrence expression,
1112
+ # invocations might occur on, or after, the `StartDate` you specify.
1113
+ # EventBridge Scheduler ignores `StartDate` for one-time schedules.
1114
+ #
1115
+ # @option params [String] :state
1116
+ # Specifies whether the schedule is enabled or disabled.
1117
+ #
1118
+ # @option params [required, Types::Target] :target
1119
+ # The schedule target. You can use this operation to change the target
1120
+ # that your schedule invokes.
1121
+ #
1122
+ # @return [Types::UpdateScheduleOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1123
+ #
1124
+ # * {Types::UpdateScheduleOutput#schedule_arn #schedule_arn} => String
1125
+ #
1126
+ # @example Request syntax with placeholder values
1127
+ #
1128
+ # resp = client.update_schedule({
1129
+ # client_token: "ClientToken",
1130
+ # description: "Description",
1131
+ # end_date: Time.now,
1132
+ # flexible_time_window: { # required
1133
+ # maximum_window_in_minutes: 1,
1134
+ # mode: "OFF", # required, accepts OFF, FLEXIBLE
1135
+ # },
1136
+ # group_name: "ScheduleGroupName",
1137
+ # kms_key_arn: "KmsKeyArn",
1138
+ # name: "Name", # required
1139
+ # schedule_expression: "ScheduleExpression", # required
1140
+ # schedule_expression_timezone: "ScheduleExpressionTimezone",
1141
+ # start_date: Time.now,
1142
+ # state: "ENABLED", # accepts ENABLED, DISABLED
1143
+ # target: { # required
1144
+ # arn: "TargetArn", # required
1145
+ # dead_letter_config: {
1146
+ # arn: "DeadLetterConfigArnString",
1147
+ # },
1148
+ # ecs_parameters: {
1149
+ # capacity_provider_strategy: [
1150
+ # {
1151
+ # base: 1,
1152
+ # capacity_provider: "CapacityProvider", # required
1153
+ # weight: 1,
1154
+ # },
1155
+ # ],
1156
+ # enable_ecs_managed_tags: false,
1157
+ # enable_execute_command: false,
1158
+ # group: "Group",
1159
+ # launch_type: "EC2", # accepts EC2, FARGATE, EXTERNAL
1160
+ # network_configuration: {
1161
+ # awsvpc_configuration: {
1162
+ # assign_public_ip: "ENABLED", # accepts ENABLED, DISABLED
1163
+ # security_groups: ["SecurityGroup"],
1164
+ # subnets: ["Subnet"], # required
1165
+ # },
1166
+ # },
1167
+ # placement_constraints: [
1168
+ # {
1169
+ # expression: "PlacementConstraintExpression",
1170
+ # type: "distinctInstance", # accepts distinctInstance, memberOf
1171
+ # },
1172
+ # ],
1173
+ # placement_strategy: [
1174
+ # {
1175
+ # field: "PlacementStrategyField",
1176
+ # type: "random", # accepts random, spread, binpack
1177
+ # },
1178
+ # ],
1179
+ # platform_version: "PlatformVersion",
1180
+ # propagate_tags: "TASK_DEFINITION", # accepts TASK_DEFINITION
1181
+ # reference_id: "ReferenceId",
1182
+ # tags: [
1183
+ # {
1184
+ # "TagKey" => "TagValue",
1185
+ # },
1186
+ # ],
1187
+ # task_count: 1,
1188
+ # task_definition_arn: "TaskDefinitionArn", # required
1189
+ # },
1190
+ # event_bridge_parameters: {
1191
+ # detail_type: "DetailType", # required
1192
+ # source: "Source", # required
1193
+ # },
1194
+ # input: "TargetInput",
1195
+ # kinesis_parameters: {
1196
+ # partition_key: "TargetPartitionKey", # required
1197
+ # },
1198
+ # retry_policy: {
1199
+ # maximum_event_age_in_seconds: 1,
1200
+ # maximum_retry_attempts: 1,
1201
+ # },
1202
+ # role_arn: "RoleArn", # required
1203
+ # sage_maker_pipeline_parameters: {
1204
+ # pipeline_parameter_list: [
1205
+ # {
1206
+ # name: "SageMakerPipelineParameterName", # required
1207
+ # value: "SageMakerPipelineParameterValue", # required
1208
+ # },
1209
+ # ],
1210
+ # },
1211
+ # sqs_parameters: {
1212
+ # message_group_id: "MessageGroupId",
1213
+ # },
1214
+ # },
1215
+ # })
1216
+ #
1217
+ # @example Response structure
1218
+ #
1219
+ # resp.schedule_arn #=> String
1220
+ #
1221
+ # @see http://docs.aws.amazon.com/goto/WebAPI/scheduler-2021-06-30/UpdateSchedule AWS API Documentation
1222
+ #
1223
+ # @overload update_schedule(params = {})
1224
+ # @param [Hash] params ({})
1225
+ def update_schedule(params = {}, options = {})
1226
+ req = build_request(:update_schedule, params)
1227
+ req.send_request(options)
1228
+ end
1229
+
1230
+ # @!endgroup
1231
+
1232
+ # @param params ({})
1233
+ # @api private
1234
+ def build_request(operation_name, params = {})
1235
+ handlers = @handlers.for(operation_name)
1236
+ context = Seahorse::Client::RequestContext.new(
1237
+ operation_name: operation_name,
1238
+ operation: config.api.operation(operation_name),
1239
+ client: self,
1240
+ params: params,
1241
+ config: config)
1242
+ context[:gem_name] = 'aws-sdk-scheduler'
1243
+ context[:gem_version] = '1.0.0'
1244
+ Seahorse::Client::Request.new(handlers, context)
1245
+ end
1246
+
1247
+ # @api private
1248
+ # @deprecated
1249
+ def waiter_names
1250
+ []
1251
+ end
1252
+
1253
+ class << self
1254
+
1255
+ # @api private
1256
+ attr_reader :identifier
1257
+
1258
+ # @api private
1259
+ def errors_module
1260
+ Errors
1261
+ end
1262
+
1263
+ end
1264
+ end
1265
+ end