aws-sdk-synthetics 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,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 9dbe74f64c46a3f2a66d4a789dc104983990ee91d543ba16de18627a81404b0e
4
+ data.tar.gz: d6497dfc9af444aea4681f5efa1686b54e80e7e8198166096ebe9a76d16e16a1
5
+ SHA512:
6
+ metadata.gz: 893c78affe72a603008531be66220c2953de3c0e0819a7382afe98551fcceabe790403511409c46bca2bf331f86db94b4bc5394a74908e5ab9d9f742722d30e2
7
+ data.tar.gz: 204dec172e13f79b7fb3d49c98aee46617f67a8f5b671b1b524aec52f49708bb927de9b41548857a0401f92059920854f12f003a47347b1bc1e04759d1d2a7e0
@@ -0,0 +1,50 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing guide for more information:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ require 'aws-sdk-core'
9
+ require 'aws-sigv4'
10
+
11
+ require_relative 'aws-sdk-synthetics/types'
12
+ require_relative 'aws-sdk-synthetics/client_api'
13
+ require_relative 'aws-sdk-synthetics/client'
14
+ require_relative 'aws-sdk-synthetics/errors'
15
+ require_relative 'aws-sdk-synthetics/resource'
16
+ require_relative 'aws-sdk-synthetics/customizations'
17
+
18
+ # This module provides support for Synthetics. This module is available in the
19
+ # `aws-sdk-synthetics` gem.
20
+ #
21
+ # # Client
22
+ #
23
+ # The {Client} class provides one method for each API operation. Operation
24
+ # methods each accept a hash of request parameters and return a response
25
+ # structure.
26
+ #
27
+ # synthetics = Aws::Synthetics::Client.new
28
+ # resp = synthetics.create_canary(params)
29
+ #
30
+ # See {Client} for more information.
31
+ #
32
+ # # Errors
33
+ #
34
+ # Errors returned from Synthetics are defined in the
35
+ # {Errors} module and all extend {Errors::ServiceError}.
36
+ #
37
+ # begin
38
+ # # do stuff
39
+ # rescue Aws::Synthetics::Errors::ServiceError
40
+ # # rescues all Synthetics API errors
41
+ # end
42
+ #
43
+ # See {Errors} for more information.
44
+ #
45
+ # @service
46
+ module Aws::Synthetics
47
+
48
+ GEM_VERSION = '1.0.0'
49
+
50
+ end
@@ -0,0 +1,1144 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing guide for more information:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ require 'seahorse/client/plugins/content_length.rb'
9
+ require 'aws-sdk-core/plugins/credentials_configuration.rb'
10
+ require 'aws-sdk-core/plugins/logging.rb'
11
+ require 'aws-sdk-core/plugins/param_converter.rb'
12
+ require 'aws-sdk-core/plugins/param_validator.rb'
13
+ require 'aws-sdk-core/plugins/user_agent.rb'
14
+ require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
15
+ require 'aws-sdk-core/plugins/retry_errors.rb'
16
+ require 'aws-sdk-core/plugins/global_configuration.rb'
17
+ require 'aws-sdk-core/plugins/regional_endpoint.rb'
18
+ require 'aws-sdk-core/plugins/endpoint_discovery.rb'
19
+ require 'aws-sdk-core/plugins/endpoint_pattern.rb'
20
+ require 'aws-sdk-core/plugins/response_paging.rb'
21
+ require 'aws-sdk-core/plugins/stub_responses.rb'
22
+ require 'aws-sdk-core/plugins/idempotency_token.rb'
23
+ require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
24
+ require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
25
+ require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
26
+ require 'aws-sdk-core/plugins/transfer_encoding.rb'
27
+ require 'aws-sdk-core/plugins/signature_v4.rb'
28
+ require 'aws-sdk-core/plugins/protocols/rest_json.rb'
29
+
30
+ Aws::Plugins::GlobalConfiguration.add_identifier(:synthetics)
31
+
32
+ module Aws::Synthetics
33
+ # An API client for Synthetics. To construct a client, you need to configure a `:region` and `:credentials`.
34
+ #
35
+ # client = Aws::Synthetics::Client.new(
36
+ # region: region_name,
37
+ # credentials: credentials,
38
+ # # ...
39
+ # )
40
+ #
41
+ # For details on configuring region and credentials see
42
+ # the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html).
43
+ #
44
+ # See {#initialize} for a full list of supported configuration options.
45
+ class Client < Seahorse::Client::Base
46
+
47
+ include Aws::ClientStubs
48
+
49
+ @identifier = :synthetics
50
+
51
+ set_api(ClientApi::API)
52
+
53
+ add_plugin(Seahorse::Client::Plugins::ContentLength)
54
+ add_plugin(Aws::Plugins::CredentialsConfiguration)
55
+ add_plugin(Aws::Plugins::Logging)
56
+ add_plugin(Aws::Plugins::ParamConverter)
57
+ add_plugin(Aws::Plugins::ParamValidator)
58
+ add_plugin(Aws::Plugins::UserAgent)
59
+ add_plugin(Aws::Plugins::HelpfulSocketErrors)
60
+ add_plugin(Aws::Plugins::RetryErrors)
61
+ add_plugin(Aws::Plugins::GlobalConfiguration)
62
+ add_plugin(Aws::Plugins::RegionalEndpoint)
63
+ add_plugin(Aws::Plugins::EndpointDiscovery)
64
+ add_plugin(Aws::Plugins::EndpointPattern)
65
+ add_plugin(Aws::Plugins::ResponsePaging)
66
+ add_plugin(Aws::Plugins::StubResponses)
67
+ add_plugin(Aws::Plugins::IdempotencyToken)
68
+ add_plugin(Aws::Plugins::JsonvalueConverter)
69
+ add_plugin(Aws::Plugins::ClientMetricsPlugin)
70
+ add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
71
+ add_plugin(Aws::Plugins::TransferEncoding)
72
+ add_plugin(Aws::Plugins::SignatureV4)
73
+ add_plugin(Aws::Plugins::Protocols::RestJson)
74
+
75
+ # @overload initialize(options)
76
+ # @param [Hash] options
77
+ # @option options [required, Aws::CredentialProvider] :credentials
78
+ # Your AWS credentials. This can be an instance of any one of the
79
+ # following classes:
80
+ #
81
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
82
+ # credentials.
83
+ #
84
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
85
+ # from an EC2 IMDS on an EC2 instance.
86
+ #
87
+ # * `Aws::SharedCredentials` - Used for loading credentials from a
88
+ # shared file, such as `~/.aws/config`.
89
+ #
90
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
91
+ #
92
+ # When `:credentials` are not configured directly, the following
93
+ # locations will be searched for credentials:
94
+ #
95
+ # * `Aws.config[:credentials]`
96
+ # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
97
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
98
+ # * `~/.aws/credentials`
99
+ # * `~/.aws/config`
100
+ # * EC2 IMDS instance profile - When used by default, the timeouts are
101
+ # very aggressive. Construct and pass an instance of
102
+ # `Aws::InstanceProfileCredentails` to enable retries and extended
103
+ # timeouts.
104
+ #
105
+ # @option options [required, String] :region
106
+ # The AWS region to connect to. The configured `:region` is
107
+ # used to determine the service `:endpoint`. When not passed,
108
+ # a default `:region` is search for in the following locations:
109
+ #
110
+ # * `Aws.config[:region]`
111
+ # * `ENV['AWS_REGION']`
112
+ # * `ENV['AMAZON_REGION']`
113
+ # * `ENV['AWS_DEFAULT_REGION']`
114
+ # * `~/.aws/credentials`
115
+ # * `~/.aws/config`
116
+ #
117
+ # @option options [String] :access_key_id
118
+ #
119
+ # @option options [Boolean] :active_endpoint_cache (false)
120
+ # When set to `true`, a thread polling for endpoints will be running in
121
+ # the background every 60 secs (default). Defaults to `false`.
122
+ #
123
+ # @option options [Boolean] :adaptive_retry_wait_to_fill (true)
124
+ # Used only in `adaptive` retry mode. When true, the request will sleep
125
+ # until there is sufficent client side capacity to retry the request.
126
+ # When false, the request will raise a `RetryCapacityNotAvailableError` and will
127
+ # not retry instead of sleeping.
128
+ #
129
+ # @option options [Boolean] :client_side_monitoring (false)
130
+ # When `true`, client-side metrics will be collected for all API requests from
131
+ # this client.
132
+ #
133
+ # @option options [String] :client_side_monitoring_client_id ("")
134
+ # Allows you to provide an identifier for this client which will be attached to
135
+ # all generated client side metrics. Defaults to an empty string.
136
+ #
137
+ # @option options [String] :client_side_monitoring_host ("127.0.0.1")
138
+ # Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client
139
+ # side monitoring agent is running on, where client metrics will be published via UDP.
140
+ #
141
+ # @option options [Integer] :client_side_monitoring_port (31000)
142
+ # Required for publishing client metrics. The port that the client side monitoring
143
+ # agent is running on, where client metrics will be published via UDP.
144
+ #
145
+ # @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher)
146
+ # Allows you to provide a custom client-side monitoring publisher class. By default,
147
+ # will use the Client Side Monitoring Agent Publisher.
148
+ #
149
+ # @option options [Boolean] :convert_params (true)
150
+ # When `true`, an attempt is made to coerce request parameters into
151
+ # the required types.
152
+ #
153
+ # @option options [Boolean] :correct_clock_skew (true)
154
+ # Used only in `standard` and adaptive retry modes. Specifies whether to apply
155
+ # a clock skew correction and retry requests with skewed client clocks.
156
+ #
157
+ # @option options [Boolean] :disable_host_prefix_injection (false)
158
+ # Set to true to disable SDK automatically adding host prefix
159
+ # to default service endpoint when available.
160
+ #
161
+ # @option options [String] :endpoint
162
+ # The client endpoint is normally constructed from the `:region`
163
+ # option. You should only configure an `:endpoint` when connecting
164
+ # to test endpoints. This should be avalid HTTP(S) URI.
165
+ #
166
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
167
+ # Used for the maximum size limit of the LRU cache storing endpoints data
168
+ # for endpoint discovery enabled operations. Defaults to 1000.
169
+ #
170
+ # @option options [Integer] :endpoint_cache_max_threads (10)
171
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
172
+ #
173
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
174
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
175
+ # Use this option to config the time interval in seconds for making
176
+ # requests fetching endpoints information. Defaults to 60 sec.
177
+ #
178
+ # @option options [Boolean] :endpoint_discovery (false)
179
+ # When set to `true`, endpoint discovery will be enabled for operations when available. Defaults to `false`.
180
+ #
181
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
182
+ # The log formatter.
183
+ #
184
+ # @option options [Symbol] :log_level (:info)
185
+ # The log level to send messages to the `:logger` at.
186
+ #
187
+ # @option options [Logger] :logger
188
+ # The Logger instance to send log messages to. If this option
189
+ # is not set, logging will be disabled.
190
+ #
191
+ # @option options [Integer] :max_attempts (3)
192
+ # An integer representing the maximum number attempts that will be made for
193
+ # a single request, including the initial attempt. For example,
194
+ # setting this value to 5 will result in a request being retried up to
195
+ # 4 times. Used in `standard` and `adaptive` retry modes.
196
+ #
197
+ # @option options [String] :profile ("default")
198
+ # Used when loading credentials from the shared credentials file
199
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
200
+ #
201
+ # @option options [Proc] :retry_backoff
202
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
203
+ # This option is only used in the `legacy` retry mode.
204
+ #
205
+ # @option options [Float] :retry_base_delay (0.3)
206
+ # The base delay in seconds used by the default backoff function. This option
207
+ # is only used in the `legacy` retry mode.
208
+ #
209
+ # @option options [Symbol] :retry_jitter (:none)
210
+ # A delay randomiser function used by the default backoff function.
211
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
212
+ # otherwise a Proc that takes and returns a number. This option is only used
213
+ # in the `legacy` retry mode.
214
+ #
215
+ # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
216
+ #
217
+ # @option options [Integer] :retry_limit (3)
218
+ # The maximum number of times to retry failed requests. Only
219
+ # ~ 500 level server errors and certain ~ 400 level client errors
220
+ # are retried. Generally, these are throttling errors, data
221
+ # checksum errors, networking errors, timeout errors, auth errors,
222
+ # endpoint discovery, and errors from expired credentials.
223
+ # This option is only used in the `legacy` retry mode.
224
+ #
225
+ # @option options [Integer] :retry_max_delay (0)
226
+ # The maximum number of seconds to delay between retries (0 for no limit)
227
+ # used by the default backoff function. This option is only used in the
228
+ # `legacy` retry mode.
229
+ #
230
+ # @option options [String] :retry_mode ("legacy")
231
+ # Specifies which retry algorithm to use. Values are:
232
+ #
233
+ # * `legacy` - The pre-existing retry behavior. This is default value if
234
+ # no retry mode is provided.
235
+ #
236
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
237
+ # This includes support for retry quotas, which limit the number of
238
+ # unsuccessful retries a client can make.
239
+ #
240
+ # * `adaptive` - An experimental retry mode that includes all the
241
+ # functionality of `standard` mode along with automatic client side
242
+ # throttling. This is a provisional mode that may change behavior
243
+ # in the future.
244
+ #
245
+ #
246
+ # @option options [String] :secret_access_key
247
+ #
248
+ # @option options [String] :session_token
249
+ #
250
+ # @option options [Boolean] :stub_responses (false)
251
+ # Causes the client to return stubbed responses. By default
252
+ # fake responses are generated and returned. You can specify
253
+ # the response data to return or errors to raise by calling
254
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
255
+ #
256
+ # ** Please note ** When response stubbing is enabled, no HTTP
257
+ # requests are made, and retries are disabled.
258
+ #
259
+ # @option options [Boolean] :validate_params (true)
260
+ # When `true`, request parameters are validated before
261
+ # sending the request.
262
+ #
263
+ # @option options [URI::HTTP,String] :http_proxy A proxy to send
264
+ # requests through. Formatted like 'http://proxy.com:123'.
265
+ #
266
+ # @option options [Float] :http_open_timeout (15) The number of
267
+ # seconds to wait when opening a HTTP session before raising a
268
+ # `Timeout::Error`.
269
+ #
270
+ # @option options [Integer] :http_read_timeout (60) The default
271
+ # number of seconds to wait for response data. This value can
272
+ # safely be set per-request on the session.
273
+ #
274
+ # @option options [Float] :http_idle_timeout (5) The number of
275
+ # seconds a connection is allowed to sit idle before it is
276
+ # considered stale. Stale connections are closed and removed
277
+ # from the pool before making a request.
278
+ #
279
+ # @option options [Float] :http_continue_timeout (1) The number of
280
+ # seconds to wait for a 100-continue response before sending the
281
+ # request body. This option has no effect unless the request has
282
+ # "Expect" header set to "100-continue". Defaults to `nil` which
283
+ # disables this behaviour. This value can safely be set per
284
+ # request on the session.
285
+ #
286
+ # @option options [Boolean] :http_wire_trace (false) When `true`,
287
+ # HTTP debug output will be sent to the `:logger`.
288
+ #
289
+ # @option options [Boolean] :ssl_verify_peer (true) When `true`,
290
+ # SSL peer certificates are verified when establishing a
291
+ # connection.
292
+ #
293
+ # @option options [String] :ssl_ca_bundle Full path to the SSL
294
+ # certificate authority bundle file that should be used when
295
+ # verifying peer certificates. If you do not pass
296
+ # `:ssl_ca_bundle` or `:ssl_ca_directory` the the system default
297
+ # will be used if available.
298
+ #
299
+ # @option options [String] :ssl_ca_directory Full path of the
300
+ # directory that contains the unbundled SSL certificate
301
+ # authority files for verifying peer certificates. If you do
302
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the
303
+ # system default will be used if available.
304
+ #
305
+ def initialize(*args)
306
+ super
307
+ end
308
+
309
+ # @!group API Operations
310
+
311
+ # Creates a canary. Canaries are scripts that monitor your endpoints and
312
+ # APIs from the outside-in. Canaries help you check the availability and
313
+ # latency of your web services and troubleshoot anomalies by
314
+ # investigating load time data, screenshots of the UI, logs, and
315
+ # metrics. You can set up a canary to run continuously or just once.
316
+ #
317
+ # Do not use `CreateCanary` to modify an existing canary. Use
318
+ # UpdateCanary instead.
319
+ #
320
+ # To create canaries, you must have the `CloudWatchSyntheticsFullAccess`
321
+ # policy. If you are creating a new IAM role for the canary, you also
322
+ # need the the `iam:CreateRole`, `iam:CreatePolicy` and
323
+ # `iam:AttachRolePolicy` permissions. For more information, see
324
+ # [Necessary Roles and Permissions][1].
325
+ #
326
+ # Do not include secrets or proprietary information in your canary
327
+ # names. The canary name makes up part of the Amazon Resource Name (ARN)
328
+ # for the canary, and the ARN is included in outbound calls over the
329
+ # internet. For more information, see [Security Considerations for
330
+ # Synthetics Canaries][2].
331
+ #
332
+ #
333
+ #
334
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Roles
335
+ # [2]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/servicelens_canaries_security.html
336
+ #
337
+ # @option params [required, String] :name
338
+ # The name for this canary. Be sure to give it a descriptive name that
339
+ # distinguishes it from other canaries in your account.
340
+ #
341
+ # Do not include secrets or proprietary information in your canary
342
+ # names. The canary name makes up part of the canary ARN, and the ARN is
343
+ # included in outbound calls over the internet. For more information,
344
+ # see [Security Considerations for Synthetics Canaries][1].
345
+ #
346
+ #
347
+ #
348
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/servicelens_canaries_security.html
349
+ #
350
+ # @option params [required, Types::CanaryCodeInput] :code
351
+ # A structure that includes the entry point from which the canary should
352
+ # start running your script. If the script is stored in an S3 bucket,
353
+ # the bucket name, key, and version are also included.
354
+ #
355
+ # @option params [required, String] :artifact_s3_location
356
+ # The location in Amazon S3 where Synthetics stores artifacts from the
357
+ # test runs of this canary. Artifacts include the log file, screenshots,
358
+ # and HAR files.
359
+ #
360
+ # @option params [required, String] :execution_role_arn
361
+ # The ARN of the IAM role to be used to run the canary. This role must
362
+ # already exist, and must include `lambda.amazonaws.com` as a principal
363
+ # in the trust policy. The role must also have the following
364
+ # permissions:
365
+ #
366
+ # * `s3:PutObject`
367
+ #
368
+ # * `s3:GetBucketLocation`
369
+ #
370
+ # * `s3:ListAllMyBuckets`
371
+ #
372
+ # * `cloudwatch:PutMetricData`
373
+ #
374
+ # * `logs:CreateLogGroup`
375
+ #
376
+ # * `logs:CreateLogStream`
377
+ #
378
+ # * `logs:CreateLogStream`
379
+ #
380
+ # @option params [required, Types::CanaryScheduleInput] :schedule
381
+ # A structure that contains information about how often the canary is to
382
+ # run and when these test runs are to stop.
383
+ #
384
+ # @option params [Types::CanaryRunConfigInput] :run_config
385
+ # A structure that contains the configuration for individual canary
386
+ # runs, such as timeout value.
387
+ #
388
+ # @option params [Integer] :success_retention_period_in_days
389
+ # The number of days to retain data about successful runs of this
390
+ # canary. If you omit this field, the default of 31 days is used. The
391
+ # valid range is 1 to 455 days.
392
+ #
393
+ # @option params [Integer] :failure_retention_period_in_days
394
+ # The number of days to retain data about failed runs of this canary. If
395
+ # you omit this field, the default of 31 days is used. The valid range
396
+ # is 1 to 455 days.
397
+ #
398
+ # @option params [required, String] :runtime_version
399
+ # Specifies the runtime version to use for the canary. Currently, the
400
+ # only valid value is `syn-1.0`. For more information about runtime
401
+ # versions, see [ Canary Runtime Versions][1].
402
+ #
403
+ #
404
+ #
405
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Library.html
406
+ #
407
+ # @option params [Types::VpcConfigInput] :vpc_config
408
+ # If this canary is to test an endpoint in a VPC, this structure
409
+ # contains information about the subnet and security groups of the VPC
410
+ # endpoint. For more information, see [ Running a Canary in a VPC][1].
411
+ #
412
+ #
413
+ #
414
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_VPC.html
415
+ #
416
+ # @option params [Hash<String,String>] :tags
417
+ # A list of key-value pairs to associate with the canary. You can
418
+ # associate as many as 50 tags with a canary.
419
+ #
420
+ # Tags can help you organize and categorize your resources. You can also
421
+ # use them to scope user permissions, by granting a user permission to
422
+ # access or change only the resources that have certain tag values.
423
+ #
424
+ # @return [Types::CreateCanaryResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
425
+ #
426
+ # * {Types::CreateCanaryResponse#canary #canary} => Types::Canary
427
+ #
428
+ # @example Request syntax with placeholder values
429
+ #
430
+ # resp = client.create_canary({
431
+ # name: "CanaryName", # required
432
+ # code: { # required
433
+ # s3_bucket: "String",
434
+ # s3_key: "String",
435
+ # s3_version: "String",
436
+ # zip_file: "data",
437
+ # handler: "String", # required
438
+ # },
439
+ # artifact_s3_location: "String", # required
440
+ # execution_role_arn: "Arn", # required
441
+ # schedule: { # required
442
+ # expression: "String", # required
443
+ # duration_in_seconds: 1,
444
+ # },
445
+ # run_config: {
446
+ # timeout_in_seconds: 1, # required
447
+ # },
448
+ # success_retention_period_in_days: 1,
449
+ # failure_retention_period_in_days: 1,
450
+ # runtime_version: "String", # required
451
+ # vpc_config: {
452
+ # subnet_ids: ["SubnetId"],
453
+ # security_group_ids: ["SecurityGroupId"],
454
+ # },
455
+ # tags: {
456
+ # "TagKey" => "TagValue",
457
+ # },
458
+ # })
459
+ #
460
+ # @example Response structure
461
+ #
462
+ # resp.canary.id #=> String
463
+ # resp.canary.name #=> String
464
+ # resp.canary.code.source_location_arn #=> String
465
+ # resp.canary.code.handler #=> String
466
+ # resp.canary.execution_role_arn #=> String
467
+ # resp.canary.schedule.expression #=> String
468
+ # resp.canary.schedule.duration_in_seconds #=> Integer
469
+ # resp.canary.run_config.timeout_in_seconds #=> Integer
470
+ # resp.canary.success_retention_period_in_days #=> Integer
471
+ # resp.canary.failure_retention_period_in_days #=> Integer
472
+ # resp.canary.status.state #=> String, one of "CREATING", "READY", "STARTING", "RUNNING", "UPDATING", "STOPPING", "STOPPED", "ERROR", "DELETING"
473
+ # resp.canary.status.state_reason #=> String
474
+ # resp.canary.status.state_reason_code #=> String, one of "INVALID_PERMISSIONS"
475
+ # resp.canary.timeline.created #=> Time
476
+ # resp.canary.timeline.last_modified #=> Time
477
+ # resp.canary.timeline.last_started #=> Time
478
+ # resp.canary.timeline.last_stopped #=> Time
479
+ # resp.canary.artifact_s3_location #=> String
480
+ # resp.canary.engine_arn #=> String
481
+ # resp.canary.runtime_version #=> String
482
+ # resp.canary.vpc_config.vpc_id #=> String
483
+ # resp.canary.vpc_config.subnet_ids #=> Array
484
+ # resp.canary.vpc_config.subnet_ids[0] #=> String
485
+ # resp.canary.vpc_config.security_group_ids #=> Array
486
+ # resp.canary.vpc_config.security_group_ids[0] #=> String
487
+ # resp.canary.tags #=> Hash
488
+ # resp.canary.tags["TagKey"] #=> String
489
+ #
490
+ # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/CreateCanary AWS API Documentation
491
+ #
492
+ # @overload create_canary(params = {})
493
+ # @param [Hash] params ({})
494
+ def create_canary(params = {}, options = {})
495
+ req = build_request(:create_canary, params)
496
+ req.send_request(options)
497
+ end
498
+
499
+ # Permanently deletes the specified canary.
500
+ #
501
+ # When you delete a canary, resources used and created by the canary are
502
+ # not automatically deleted. After you delete a canary that you do not
503
+ # intend to use again, you should also delete the following:
504
+ #
505
+ # * The Lambda functions and layers used by this canary. These have the
506
+ # prefix `cwsyn-MyCanaryName `.
507
+ #
508
+ # * The CloudWatch alarms created for this canary. These alarms have a
509
+ # name of `Synthetics-SharpDrop-Alarm-MyCanaryName `.
510
+ #
511
+ # * Amazon S3 objects and buckets, such as the canary's artifact
512
+ # location.
513
+ #
514
+ # * IAM roles created for the canary. If they were created in the
515
+ # console, these roles have the name `
516
+ # role/service-role/CloudWatchSyntheticsRole-MyCanaryName `.
517
+ #
518
+ # * CloudWatch Logs log groups created for the canary. These logs groups
519
+ # have the name `/aws/lambda/cwsyn-MyCanaryName `.
520
+ #
521
+ # Before you delete a canary, you might want to use `GetCanary` to
522
+ # display the information about this canary. Make note of the
523
+ # information returned by this operation so that you can delete these
524
+ # resources after you delete the canary.
525
+ #
526
+ # @option params [required, String] :name
527
+ # The name of the canary that you want to delete. To find the names of
528
+ # your canaries, use DescribeCanaries.
529
+ #
530
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
531
+ #
532
+ # @example Request syntax with placeholder values
533
+ #
534
+ # resp = client.delete_canary({
535
+ # name: "CanaryName", # required
536
+ # })
537
+ #
538
+ # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/DeleteCanary AWS API Documentation
539
+ #
540
+ # @overload delete_canary(params = {})
541
+ # @param [Hash] params ({})
542
+ def delete_canary(params = {}, options = {})
543
+ req = build_request(:delete_canary, params)
544
+ req.send_request(options)
545
+ end
546
+
547
+ # This operation returns a list of the canaries in your account, along
548
+ # with full details about each canary.
549
+ #
550
+ # This operation does not have resource-level authorization, so if a
551
+ # user is able to use `DescribeCanaries`, the user can see all of the
552
+ # canaries in the account. A deny policy can only be used to restrict
553
+ # access to all canaries. It cannot be used on specific resources.
554
+ #
555
+ # @option params [String] :next_token
556
+ # A token that indicates that there is more data available. You can use
557
+ # this token in a subsequent operation to retrieve the next set of
558
+ # results.
559
+ #
560
+ # @option params [Integer] :max_results
561
+ # Specify this parameter to limit how many canaries are returned each
562
+ # time you use the `DescribeCanaries` operation. If you omit this
563
+ # parameter, the default of 100 is used.
564
+ #
565
+ # @return [Types::DescribeCanariesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
566
+ #
567
+ # * {Types::DescribeCanariesResponse#canaries #canaries} => Array&lt;Types::Canary&gt;
568
+ # * {Types::DescribeCanariesResponse#next_token #next_token} => String
569
+ #
570
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
571
+ #
572
+ # @example Request syntax with placeholder values
573
+ #
574
+ # resp = client.describe_canaries({
575
+ # next_token: "Token",
576
+ # max_results: 1,
577
+ # })
578
+ #
579
+ # @example Response structure
580
+ #
581
+ # resp.canaries #=> Array
582
+ # resp.canaries[0].id #=> String
583
+ # resp.canaries[0].name #=> String
584
+ # resp.canaries[0].code.source_location_arn #=> String
585
+ # resp.canaries[0].code.handler #=> String
586
+ # resp.canaries[0].execution_role_arn #=> String
587
+ # resp.canaries[0].schedule.expression #=> String
588
+ # resp.canaries[0].schedule.duration_in_seconds #=> Integer
589
+ # resp.canaries[0].run_config.timeout_in_seconds #=> Integer
590
+ # resp.canaries[0].success_retention_period_in_days #=> Integer
591
+ # resp.canaries[0].failure_retention_period_in_days #=> Integer
592
+ # resp.canaries[0].status.state #=> String, one of "CREATING", "READY", "STARTING", "RUNNING", "UPDATING", "STOPPING", "STOPPED", "ERROR", "DELETING"
593
+ # resp.canaries[0].status.state_reason #=> String
594
+ # resp.canaries[0].status.state_reason_code #=> String, one of "INVALID_PERMISSIONS"
595
+ # resp.canaries[0].timeline.created #=> Time
596
+ # resp.canaries[0].timeline.last_modified #=> Time
597
+ # resp.canaries[0].timeline.last_started #=> Time
598
+ # resp.canaries[0].timeline.last_stopped #=> Time
599
+ # resp.canaries[0].artifact_s3_location #=> String
600
+ # resp.canaries[0].engine_arn #=> String
601
+ # resp.canaries[0].runtime_version #=> String
602
+ # resp.canaries[0].vpc_config.vpc_id #=> String
603
+ # resp.canaries[0].vpc_config.subnet_ids #=> Array
604
+ # resp.canaries[0].vpc_config.subnet_ids[0] #=> String
605
+ # resp.canaries[0].vpc_config.security_group_ids #=> Array
606
+ # resp.canaries[0].vpc_config.security_group_ids[0] #=> String
607
+ # resp.canaries[0].tags #=> Hash
608
+ # resp.canaries[0].tags["TagKey"] #=> String
609
+ # resp.next_token #=> String
610
+ #
611
+ # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/DescribeCanaries AWS API Documentation
612
+ #
613
+ # @overload describe_canaries(params = {})
614
+ # @param [Hash] params ({})
615
+ def describe_canaries(params = {}, options = {})
616
+ req = build_request(:describe_canaries, params)
617
+ req.send_request(options)
618
+ end
619
+
620
+ # Use this operation to see information from the most recent run of each
621
+ # canary that you have created.
622
+ #
623
+ # @option params [String] :next_token
624
+ # A token that indicates that there is more data available. You can use
625
+ # this token in a subsequent `DescribeCanaries` operation to retrieve
626
+ # the next set of results.
627
+ #
628
+ # @option params [Integer] :max_results
629
+ # Specify this parameter to limit how many runs are returned each time
630
+ # you use the `DescribeLastRun` operation. If you omit this parameter,
631
+ # the default of 100 is used.
632
+ #
633
+ # @return [Types::DescribeCanariesLastRunResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
634
+ #
635
+ # * {Types::DescribeCanariesLastRunResponse#canaries_last_run #canaries_last_run} => Array&lt;Types::CanaryLastRun&gt;
636
+ # * {Types::DescribeCanariesLastRunResponse#next_token #next_token} => String
637
+ #
638
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
639
+ #
640
+ # @example Request syntax with placeholder values
641
+ #
642
+ # resp = client.describe_canaries_last_run({
643
+ # next_token: "Token",
644
+ # max_results: 1,
645
+ # })
646
+ #
647
+ # @example Response structure
648
+ #
649
+ # resp.canaries_last_run #=> Array
650
+ # resp.canaries_last_run[0].canary_name #=> String
651
+ # resp.canaries_last_run[0].last_run.name #=> String
652
+ # resp.canaries_last_run[0].last_run.status.state #=> String, one of "RUNNING", "PASSED", "FAILED"
653
+ # resp.canaries_last_run[0].last_run.status.state_reason #=> String
654
+ # resp.canaries_last_run[0].last_run.status.state_reason_code #=> String, one of "CANARY_FAILURE", "EXECUTION_FAILURE"
655
+ # resp.canaries_last_run[0].last_run.timeline.started #=> Time
656
+ # resp.canaries_last_run[0].last_run.timeline.completed #=> Time
657
+ # resp.canaries_last_run[0].last_run.artifact_s3_location #=> String
658
+ # resp.next_token #=> String
659
+ #
660
+ # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/DescribeCanariesLastRun AWS API Documentation
661
+ #
662
+ # @overload describe_canaries_last_run(params = {})
663
+ # @param [Hash] params ({})
664
+ def describe_canaries_last_run(params = {}, options = {})
665
+ req = build_request(:describe_canaries_last_run, params)
666
+ req.send_request(options)
667
+ end
668
+
669
+ # Returns a list of Synthetics canary runtime versions. For more
670
+ # information, see [ Canary Runtime Versions][1].
671
+ #
672
+ #
673
+ #
674
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Library.html
675
+ #
676
+ # @option params [String] :next_token
677
+ # A token that indicates that there is more data available. You can use
678
+ # this token in a subsequent `DescribeRuntimeVersions` operation to
679
+ # retrieve the next set of results.
680
+ #
681
+ # @option params [Integer] :max_results
682
+ # Specify this parameter to limit how many runs are returned each time
683
+ # you use the `DescribeRuntimeVersions` operation. If you omit this
684
+ # parameter, the default of 100 is used.
685
+ #
686
+ # @return [Types::DescribeRuntimeVersionsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
687
+ #
688
+ # * {Types::DescribeRuntimeVersionsResponse#runtime_versions #runtime_versions} => Array&lt;Types::RuntimeVersion&gt;
689
+ # * {Types::DescribeRuntimeVersionsResponse#next_token #next_token} => String
690
+ #
691
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
692
+ #
693
+ # @example Request syntax with placeholder values
694
+ #
695
+ # resp = client.describe_runtime_versions({
696
+ # next_token: "Token",
697
+ # max_results: 1,
698
+ # })
699
+ #
700
+ # @example Response structure
701
+ #
702
+ # resp.runtime_versions #=> Array
703
+ # resp.runtime_versions[0].version_name #=> String
704
+ # resp.runtime_versions[0].description #=> String
705
+ # resp.runtime_versions[0].release_date #=> Time
706
+ # resp.runtime_versions[0].deprecation_date #=> Time
707
+ # resp.next_token #=> String
708
+ #
709
+ # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/DescribeRuntimeVersions AWS API Documentation
710
+ #
711
+ # @overload describe_runtime_versions(params = {})
712
+ # @param [Hash] params ({})
713
+ def describe_runtime_versions(params = {}, options = {})
714
+ req = build_request(:describe_runtime_versions, params)
715
+ req.send_request(options)
716
+ end
717
+
718
+ # Retrieves complete information about one canary. You must specify the
719
+ # name of the canary that you want. To get a list of canaries and their
720
+ # names, use [DescribeCanaries][1].
721
+ #
722
+ #
723
+ #
724
+ # [1]: https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_DescribeCanaries.html
725
+ #
726
+ # @option params [required, String] :name
727
+ # The name of the canary that you want details for.
728
+ #
729
+ # @return [Types::GetCanaryResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
730
+ #
731
+ # * {Types::GetCanaryResponse#canary #canary} => Types::Canary
732
+ #
733
+ # @example Request syntax with placeholder values
734
+ #
735
+ # resp = client.get_canary({
736
+ # name: "CanaryName", # required
737
+ # })
738
+ #
739
+ # @example Response structure
740
+ #
741
+ # resp.canary.id #=> String
742
+ # resp.canary.name #=> String
743
+ # resp.canary.code.source_location_arn #=> String
744
+ # resp.canary.code.handler #=> String
745
+ # resp.canary.execution_role_arn #=> String
746
+ # resp.canary.schedule.expression #=> String
747
+ # resp.canary.schedule.duration_in_seconds #=> Integer
748
+ # resp.canary.run_config.timeout_in_seconds #=> Integer
749
+ # resp.canary.success_retention_period_in_days #=> Integer
750
+ # resp.canary.failure_retention_period_in_days #=> Integer
751
+ # resp.canary.status.state #=> String, one of "CREATING", "READY", "STARTING", "RUNNING", "UPDATING", "STOPPING", "STOPPED", "ERROR", "DELETING"
752
+ # resp.canary.status.state_reason #=> String
753
+ # resp.canary.status.state_reason_code #=> String, one of "INVALID_PERMISSIONS"
754
+ # resp.canary.timeline.created #=> Time
755
+ # resp.canary.timeline.last_modified #=> Time
756
+ # resp.canary.timeline.last_started #=> Time
757
+ # resp.canary.timeline.last_stopped #=> Time
758
+ # resp.canary.artifact_s3_location #=> String
759
+ # resp.canary.engine_arn #=> String
760
+ # resp.canary.runtime_version #=> String
761
+ # resp.canary.vpc_config.vpc_id #=> String
762
+ # resp.canary.vpc_config.subnet_ids #=> Array
763
+ # resp.canary.vpc_config.subnet_ids[0] #=> String
764
+ # resp.canary.vpc_config.security_group_ids #=> Array
765
+ # resp.canary.vpc_config.security_group_ids[0] #=> String
766
+ # resp.canary.tags #=> Hash
767
+ # resp.canary.tags["TagKey"] #=> String
768
+ #
769
+ # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/GetCanary AWS API Documentation
770
+ #
771
+ # @overload get_canary(params = {})
772
+ # @param [Hash] params ({})
773
+ def get_canary(params = {}, options = {})
774
+ req = build_request(:get_canary, params)
775
+ req.send_request(options)
776
+ end
777
+
778
+ # Retrieves a list of runs for a specified canary.
779
+ #
780
+ # @option params [required, String] :name
781
+ # The name of the canary that you want to see runs for.
782
+ #
783
+ # @option params [String] :next_token
784
+ # A token that indicates that there is more data available. You can use
785
+ # this token in a subsequent `GetCanaryRuns` operation to retrieve the
786
+ # next set of results.
787
+ #
788
+ # @option params [Integer] :max_results
789
+ # Specify this parameter to limit how many runs are returned each time
790
+ # you use the `GetCanaryRuns` operation. If you omit this parameter, the
791
+ # default of 100 is used.
792
+ #
793
+ # @return [Types::GetCanaryRunsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
794
+ #
795
+ # * {Types::GetCanaryRunsResponse#canary_runs #canary_runs} => Array&lt;Types::CanaryRun&gt;
796
+ # * {Types::GetCanaryRunsResponse#next_token #next_token} => String
797
+ #
798
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
799
+ #
800
+ # @example Request syntax with placeholder values
801
+ #
802
+ # resp = client.get_canary_runs({
803
+ # name: "CanaryName", # required
804
+ # next_token: "Token",
805
+ # max_results: 1,
806
+ # })
807
+ #
808
+ # @example Response structure
809
+ #
810
+ # resp.canary_runs #=> Array
811
+ # resp.canary_runs[0].name #=> String
812
+ # resp.canary_runs[0].status.state #=> String, one of "RUNNING", "PASSED", "FAILED"
813
+ # resp.canary_runs[0].status.state_reason #=> String
814
+ # resp.canary_runs[0].status.state_reason_code #=> String, one of "CANARY_FAILURE", "EXECUTION_FAILURE"
815
+ # resp.canary_runs[0].timeline.started #=> Time
816
+ # resp.canary_runs[0].timeline.completed #=> Time
817
+ # resp.canary_runs[0].artifact_s3_location #=> String
818
+ # resp.next_token #=> String
819
+ #
820
+ # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/GetCanaryRuns AWS API Documentation
821
+ #
822
+ # @overload get_canary_runs(params = {})
823
+ # @param [Hash] params ({})
824
+ def get_canary_runs(params = {}, options = {})
825
+ req = build_request(:get_canary_runs, params)
826
+ req.send_request(options)
827
+ end
828
+
829
+ # Displays the tags associated with a canary.
830
+ #
831
+ # @option params [required, String] :resource_arn
832
+ # The ARN of the canary that you want to view tags for.
833
+ #
834
+ # The ARN format of a canary is
835
+ # `arn:aws:synthetics:Region:account-id:canary:canary-name `.
836
+ #
837
+ # @return [Types::ListTagsForResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
838
+ #
839
+ # * {Types::ListTagsForResourceResponse#tags #tags} => Hash&lt;String,String&gt;
840
+ #
841
+ # @example Request syntax with placeholder values
842
+ #
843
+ # resp = client.list_tags_for_resource({
844
+ # resource_arn: "Arn", # required
845
+ # })
846
+ #
847
+ # @example Response structure
848
+ #
849
+ # resp.tags #=> Hash
850
+ # resp.tags["TagKey"] #=> String
851
+ #
852
+ # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/ListTagsForResource AWS API Documentation
853
+ #
854
+ # @overload list_tags_for_resource(params = {})
855
+ # @param [Hash] params ({})
856
+ def list_tags_for_resource(params = {}, options = {})
857
+ req = build_request(:list_tags_for_resource, params)
858
+ req.send_request(options)
859
+ end
860
+
861
+ # Use this operation to run a canary that has already been created. The
862
+ # frequency of the canary runs is determined by the value of the
863
+ # canary's `Schedule`. To see a canary's schedule, use [GetCanary][1].
864
+ #
865
+ #
866
+ #
867
+ # [1]: https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_GetCanary.html
868
+ #
869
+ # @option params [required, String] :name
870
+ # The name of the canary that you want to run. To find canary names, use
871
+ # DescribeCanaries.
872
+ #
873
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
874
+ #
875
+ # @example Request syntax with placeholder values
876
+ #
877
+ # resp = client.start_canary({
878
+ # name: "CanaryName", # required
879
+ # })
880
+ #
881
+ # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/StartCanary AWS API Documentation
882
+ #
883
+ # @overload start_canary(params = {})
884
+ # @param [Hash] params ({})
885
+ def start_canary(params = {}, options = {})
886
+ req = build_request(:start_canary, params)
887
+ req.send_request(options)
888
+ end
889
+
890
+ # Stops the canary to prevent all future runs. If the canary is
891
+ # currently running, Synthetics stops waiting for the current run of the
892
+ # specified canary to complete. The run that is in progress completes on
893
+ # its own, publishes metrics, and uploads artifacts, but it is not
894
+ # recorded in Synthetics as a completed run.
895
+ #
896
+ # You can use `StartCanary` to start it running again with the canary’s
897
+ # current schedule at any point in the future.
898
+ #
899
+ # @option params [required, String] :name
900
+ # The name of the canary that you want to stop. To find the names of
901
+ # your canaries, use DescribeCanaries.
902
+ #
903
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
904
+ #
905
+ # @example Request syntax with placeholder values
906
+ #
907
+ # resp = client.stop_canary({
908
+ # name: "CanaryName", # required
909
+ # })
910
+ #
911
+ # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/StopCanary AWS API Documentation
912
+ #
913
+ # @overload stop_canary(params = {})
914
+ # @param [Hash] params ({})
915
+ def stop_canary(params = {}, options = {})
916
+ req = build_request(:stop_canary, params)
917
+ req.send_request(options)
918
+ end
919
+
920
+ # Assigns one or more tags (key-value pairs) to the specified canary.
921
+ #
922
+ # Tags can help you organize and categorize your resources. You can also
923
+ # use them to scope user permissions, by granting a user permission to
924
+ # access or change only resources with certain tag values.
925
+ #
926
+ # Tags don't have any semantic meaning to AWS and are interpreted
927
+ # strictly as strings of characters.
928
+ #
929
+ # You can use the `TagResource` action with a canary that already has
930
+ # tags. If you specify a new tag key for the alarm, this tag is appended
931
+ # to the list of tags associated with the alarm. If you specify a tag
932
+ # key that is already associated with the alarm, the new tag value that
933
+ # you specify replaces the previous value for that tag.
934
+ #
935
+ # You can associate as many as 50 tags with a canary.
936
+ #
937
+ # @option params [required, String] :resource_arn
938
+ # The ARN of the canary that you're adding tags to.
939
+ #
940
+ # The ARN format of a canary is
941
+ # `arn:aws:synthetics:Region:account-id:canary:canary-name `.
942
+ #
943
+ # @option params [required, Hash<String,String>] :tags
944
+ # The list of key-value pairs to associate with the canary.
945
+ #
946
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
947
+ #
948
+ # @example Request syntax with placeholder values
949
+ #
950
+ # resp = client.tag_resource({
951
+ # resource_arn: "Arn", # required
952
+ # tags: { # required
953
+ # "TagKey" => "TagValue",
954
+ # },
955
+ # })
956
+ #
957
+ # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/TagResource AWS API Documentation
958
+ #
959
+ # @overload tag_resource(params = {})
960
+ # @param [Hash] params ({})
961
+ def tag_resource(params = {}, options = {})
962
+ req = build_request(:tag_resource, params)
963
+ req.send_request(options)
964
+ end
965
+
966
+ # Removes one or more tags from the specified canary.
967
+ #
968
+ # @option params [required, String] :resource_arn
969
+ # The ARN of the canary that you're removing tags from.
970
+ #
971
+ # The ARN format of a canary is
972
+ # `arn:aws:synthetics:Region:account-id:canary:canary-name `.
973
+ #
974
+ # @option params [required, Array<String>] :tag_keys
975
+ # The list of tag keys to remove from the resource.
976
+ #
977
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
978
+ #
979
+ # @example Request syntax with placeholder values
980
+ #
981
+ # resp = client.untag_resource({
982
+ # resource_arn: "Arn", # required
983
+ # tag_keys: ["TagKey"], # required
984
+ # })
985
+ #
986
+ # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/UntagResource AWS API Documentation
987
+ #
988
+ # @overload untag_resource(params = {})
989
+ # @param [Hash] params ({})
990
+ def untag_resource(params = {}, options = {})
991
+ req = build_request(:untag_resource, params)
992
+ req.send_request(options)
993
+ end
994
+
995
+ # Use this operation to change the settings of a canary that has already
996
+ # been created.
997
+ #
998
+ # You can't use this operation to update the tags of an existing
999
+ # canary. To change the tags of an existing canary, use
1000
+ # [TagResource][1].
1001
+ #
1002
+ #
1003
+ #
1004
+ # [1]: https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_TagResource.html
1005
+ #
1006
+ # @option params [required, String] :name
1007
+ # The name of the canary that you want to update. To find the names of
1008
+ # your canaries, use DescribeCanaries.
1009
+ #
1010
+ # You cannot change the name of a canary that has already been created.
1011
+ #
1012
+ # @option params [Types::CanaryCodeInput] :code
1013
+ # A structure that includes the entry point from which the canary should
1014
+ # start running your script. If the script is stored in an S3 bucket,
1015
+ # the bucket name, key, and version are also included.
1016
+ #
1017
+ # @option params [String] :execution_role_arn
1018
+ # The ARN of the IAM role to be used to run the canary. This role must
1019
+ # already exist, and must include `lambda.amazonaws.com` as a principal
1020
+ # in the trust policy. The role must also have the following
1021
+ # permissions:
1022
+ #
1023
+ # * `s3:PutObject`
1024
+ #
1025
+ # * `s3:GetBucketLocation`
1026
+ #
1027
+ # * `s3:ListAllMyBuckets`
1028
+ #
1029
+ # * `cloudwatch:PutMetricData`
1030
+ #
1031
+ # * `logs:CreateLogGroup`
1032
+ #
1033
+ # * `logs:CreateLogStream`
1034
+ #
1035
+ # * `logs:CreateLogStream`
1036
+ #
1037
+ # @option params [String] :runtime_version
1038
+ # Specifies the runtime version to use for the canary. Currently, the
1039
+ # only valid value is `syn-1.0`. For more information about runtime
1040
+ # versions, see [ Canary Runtime Versions][1].
1041
+ #
1042
+ #
1043
+ #
1044
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Library.html
1045
+ #
1046
+ # @option params [Types::CanaryScheduleInput] :schedule
1047
+ # A structure that contains information about how often the canary is to
1048
+ # run, and when these runs are to stop.
1049
+ #
1050
+ # @option params [Types::CanaryRunConfigInput] :run_config
1051
+ # A structure that contains the timeout value that is used for each
1052
+ # individual run of the canary.
1053
+ #
1054
+ # @option params [Integer] :success_retention_period_in_days
1055
+ # The number of days to retain data about successful runs of this
1056
+ # canary.
1057
+ #
1058
+ # @option params [Integer] :failure_retention_period_in_days
1059
+ # The number of days to retain data about failed runs of this canary.
1060
+ #
1061
+ # @option params [Types::VpcConfigInput] :vpc_config
1062
+ # If this canary is to test an endpoint in a VPC, this structure
1063
+ # contains information about the subnet and security groups of the VPC
1064
+ # endpoint. For more information, see [ Running a Canary in a VPC][1].
1065
+ #
1066
+ #
1067
+ #
1068
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_VPC.html
1069
+ #
1070
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1071
+ #
1072
+ # @example Request syntax with placeholder values
1073
+ #
1074
+ # resp = client.update_canary({
1075
+ # name: "CanaryName", # required
1076
+ # code: {
1077
+ # s3_bucket: "String",
1078
+ # s3_key: "String",
1079
+ # s3_version: "String",
1080
+ # zip_file: "data",
1081
+ # handler: "String", # required
1082
+ # },
1083
+ # execution_role_arn: "Arn",
1084
+ # runtime_version: "String",
1085
+ # schedule: {
1086
+ # expression: "String", # required
1087
+ # duration_in_seconds: 1,
1088
+ # },
1089
+ # run_config: {
1090
+ # timeout_in_seconds: 1, # required
1091
+ # },
1092
+ # success_retention_period_in_days: 1,
1093
+ # failure_retention_period_in_days: 1,
1094
+ # vpc_config: {
1095
+ # subnet_ids: ["SubnetId"],
1096
+ # security_group_ids: ["SecurityGroupId"],
1097
+ # },
1098
+ # })
1099
+ #
1100
+ # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/UpdateCanary AWS API Documentation
1101
+ #
1102
+ # @overload update_canary(params = {})
1103
+ # @param [Hash] params ({})
1104
+ def update_canary(params = {}, options = {})
1105
+ req = build_request(:update_canary, params)
1106
+ req.send_request(options)
1107
+ end
1108
+
1109
+ # @!endgroup
1110
+
1111
+ # @param params ({})
1112
+ # @api private
1113
+ def build_request(operation_name, params = {})
1114
+ handlers = @handlers.for(operation_name)
1115
+ context = Seahorse::Client::RequestContext.new(
1116
+ operation_name: operation_name,
1117
+ operation: config.api.operation(operation_name),
1118
+ client: self,
1119
+ params: params,
1120
+ config: config)
1121
+ context[:gem_name] = 'aws-sdk-synthetics'
1122
+ context[:gem_version] = '1.0.0'
1123
+ Seahorse::Client::Request.new(handlers, context)
1124
+ end
1125
+
1126
+ # @api private
1127
+ # @deprecated
1128
+ def waiter_names
1129
+ []
1130
+ end
1131
+
1132
+ class << self
1133
+
1134
+ # @api private
1135
+ attr_reader :identifier
1136
+
1137
+ # @api private
1138
+ def errors_module
1139
+ Errors
1140
+ end
1141
+
1142
+ end
1143
+ end
1144
+ end