aws-sdk-cloudwatchevidently 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,2597 @@
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/signature_v4.rb'
31
+ require 'aws-sdk-core/plugins/protocols/rest_json.rb'
32
+
33
+ Aws::Plugins::GlobalConfiguration.add_identifier(:cloudwatchevidently)
34
+
35
+ module Aws::CloudWatchEvidently
36
+ # An API client for CloudWatchEvidently. To construct a client, you need to configure a `:region` and `:credentials`.
37
+ #
38
+ # client = Aws::CloudWatchEvidently::Client.new(
39
+ # region: region_name,
40
+ # credentials: credentials,
41
+ # # ...
42
+ # )
43
+ #
44
+ # For details on configuring region and credentials see
45
+ # the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html).
46
+ #
47
+ # See {#initialize} for a full list of supported configuration options.
48
+ class Client < Seahorse::Client::Base
49
+
50
+ include Aws::ClientStubs
51
+
52
+ @identifier = :cloudwatchevidently
53
+
54
+ set_api(ClientApi::API)
55
+
56
+ add_plugin(Seahorse::Client::Plugins::ContentLength)
57
+ add_plugin(Aws::Plugins::CredentialsConfiguration)
58
+ add_plugin(Aws::Plugins::Logging)
59
+ add_plugin(Aws::Plugins::ParamConverter)
60
+ add_plugin(Aws::Plugins::ParamValidator)
61
+ add_plugin(Aws::Plugins::UserAgent)
62
+ add_plugin(Aws::Plugins::HelpfulSocketErrors)
63
+ add_plugin(Aws::Plugins::RetryErrors)
64
+ add_plugin(Aws::Plugins::GlobalConfiguration)
65
+ add_plugin(Aws::Plugins::RegionalEndpoint)
66
+ add_plugin(Aws::Plugins::EndpointDiscovery)
67
+ add_plugin(Aws::Plugins::EndpointPattern)
68
+ add_plugin(Aws::Plugins::ResponsePaging)
69
+ add_plugin(Aws::Plugins::StubResponses)
70
+ add_plugin(Aws::Plugins::IdempotencyToken)
71
+ add_plugin(Aws::Plugins::JsonvalueConverter)
72
+ add_plugin(Aws::Plugins::ClientMetricsPlugin)
73
+ add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
74
+ add_plugin(Aws::Plugins::TransferEncoding)
75
+ add_plugin(Aws::Plugins::HttpChecksum)
76
+ add_plugin(Aws::Plugins::SignatureV4)
77
+ add_plugin(Aws::Plugins::Protocols::RestJson)
78
+
79
+ # @overload initialize(options)
80
+ # @param [Hash] options
81
+ # @option options [required, Aws::CredentialProvider] :credentials
82
+ # Your AWS credentials. This can be an instance of any one of the
83
+ # following classes:
84
+ #
85
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
86
+ # credentials.
87
+ #
88
+ # * `Aws::SharedCredentials` - Used for loading static credentials from a
89
+ # shared file, such as `~/.aws/config`.
90
+ #
91
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
92
+ #
93
+ # * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to
94
+ # assume a role after providing credentials via the web.
95
+ #
96
+ # * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an
97
+ # access token generated from `aws login`.
98
+ #
99
+ # * `Aws::ProcessCredentials` - Used for loading credentials from a
100
+ # process that outputs to stdout.
101
+ #
102
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
103
+ # from an EC2 IMDS on an EC2 instance.
104
+ #
105
+ # * `Aws::ECSCredentials` - Used for loading credentials from
106
+ # instances running in ECS.
107
+ #
108
+ # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
109
+ # from the Cognito Identity service.
110
+ #
111
+ # When `:credentials` are not configured directly, the following
112
+ # locations will be searched for credentials:
113
+ #
114
+ # * `Aws.config[:credentials]`
115
+ # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
116
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
117
+ # * `~/.aws/credentials`
118
+ # * `~/.aws/config`
119
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts
120
+ # are very aggressive. Construct and pass an instance of
121
+ # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
122
+ # enable retries and extended timeouts.
123
+ #
124
+ # @option options [required, String] :region
125
+ # The AWS region to connect to. The configured `:region` is
126
+ # used to determine the service `:endpoint`. When not passed,
127
+ # a default `:region` is searched for in the following locations:
128
+ #
129
+ # * `Aws.config[:region]`
130
+ # * `ENV['AWS_REGION']`
131
+ # * `ENV['AMAZON_REGION']`
132
+ # * `ENV['AWS_DEFAULT_REGION']`
133
+ # * `~/.aws/credentials`
134
+ # * `~/.aws/config`
135
+ #
136
+ # @option options [String] :access_key_id
137
+ #
138
+ # @option options [Boolean] :active_endpoint_cache (false)
139
+ # When set to `true`, a thread polling for endpoints will be running in
140
+ # the background every 60 secs (default). Defaults to `false`.
141
+ #
142
+ # @option options [Boolean] :adaptive_retry_wait_to_fill (true)
143
+ # Used only in `adaptive` retry mode. When true, the request will sleep
144
+ # until there is sufficent client side capacity to retry the request.
145
+ # When false, the request will raise a `RetryCapacityNotAvailableError` and will
146
+ # not retry instead of sleeping.
147
+ #
148
+ # @option options [Boolean] :client_side_monitoring (false)
149
+ # When `true`, client-side metrics will be collected for all API requests from
150
+ # this client.
151
+ #
152
+ # @option options [String] :client_side_monitoring_client_id ("")
153
+ # Allows you to provide an identifier for this client which will be attached to
154
+ # all generated client side metrics. Defaults to an empty string.
155
+ #
156
+ # @option options [String] :client_side_monitoring_host ("127.0.0.1")
157
+ # Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client
158
+ # side monitoring agent is running on, where client metrics will be published via UDP.
159
+ #
160
+ # @option options [Integer] :client_side_monitoring_port (31000)
161
+ # Required for publishing client metrics. The port that the client side monitoring
162
+ # agent is running on, where client metrics will be published via UDP.
163
+ #
164
+ # @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher)
165
+ # Allows you to provide a custom client-side monitoring publisher class. By default,
166
+ # will use the Client Side Monitoring Agent Publisher.
167
+ #
168
+ # @option options [Boolean] :convert_params (true)
169
+ # When `true`, an attempt is made to coerce request parameters into
170
+ # the required types.
171
+ #
172
+ # @option options [Boolean] :correct_clock_skew (true)
173
+ # Used only in `standard` and adaptive retry modes. Specifies whether to apply
174
+ # a clock skew correction and retry requests with skewed client clocks.
175
+ #
176
+ # @option options [Boolean] :disable_host_prefix_injection (false)
177
+ # Set to true to disable SDK automatically adding host prefix
178
+ # to default service endpoint when available.
179
+ #
180
+ # @option options [String] :endpoint
181
+ # The client endpoint is normally constructed from the `:region`
182
+ # option. You should only configure an `:endpoint` when connecting
183
+ # to test or custom endpoints. This should be a valid HTTP(S) URI.
184
+ #
185
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
186
+ # Used for the maximum size limit of the LRU cache storing endpoints data
187
+ # for endpoint discovery enabled operations. Defaults to 1000.
188
+ #
189
+ # @option options [Integer] :endpoint_cache_max_threads (10)
190
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
191
+ #
192
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
193
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
194
+ # Use this option to config the time interval in seconds for making
195
+ # requests fetching endpoints information. Defaults to 60 sec.
196
+ #
197
+ # @option options [Boolean] :endpoint_discovery (false)
198
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
199
+ #
200
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
201
+ # The log formatter.
202
+ #
203
+ # @option options [Symbol] :log_level (:info)
204
+ # The log level to send messages to the `:logger` at.
205
+ #
206
+ # @option options [Logger] :logger
207
+ # The Logger instance to send log messages to. If this option
208
+ # is not set, logging will be disabled.
209
+ #
210
+ # @option options [Integer] :max_attempts (3)
211
+ # An integer representing the maximum number attempts that will be made for
212
+ # a single request, including the initial attempt. For example,
213
+ # setting this value to 5 will result in a request being retried up to
214
+ # 4 times. Used in `standard` and `adaptive` retry modes.
215
+ #
216
+ # @option options [String] :profile ("default")
217
+ # Used when loading credentials from the shared credentials file
218
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
219
+ #
220
+ # @option options [Proc] :retry_backoff
221
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
222
+ # This option is only used in the `legacy` retry mode.
223
+ #
224
+ # @option options [Float] :retry_base_delay (0.3)
225
+ # The base delay in seconds used by the default backoff function. This option
226
+ # is only used in the `legacy` retry mode.
227
+ #
228
+ # @option options [Symbol] :retry_jitter (:none)
229
+ # A delay randomiser function used by the default backoff function.
230
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
231
+ # otherwise a Proc that takes and returns a number. This option is only used
232
+ # in the `legacy` retry mode.
233
+ #
234
+ # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
235
+ #
236
+ # @option options [Integer] :retry_limit (3)
237
+ # The maximum number of times to retry failed requests. Only
238
+ # ~ 500 level server errors and certain ~ 400 level client errors
239
+ # are retried. Generally, these are throttling errors, data
240
+ # checksum errors, networking errors, timeout errors, auth errors,
241
+ # endpoint discovery, and errors from expired credentials.
242
+ # This option is only used in the `legacy` retry mode.
243
+ #
244
+ # @option options [Integer] :retry_max_delay (0)
245
+ # The maximum number of seconds to delay between retries (0 for no limit)
246
+ # used by the default backoff function. This option is only used in the
247
+ # `legacy` retry mode.
248
+ #
249
+ # @option options [String] :retry_mode ("legacy")
250
+ # Specifies which retry algorithm to use. Values are:
251
+ #
252
+ # * `legacy` - The pre-existing retry behavior. This is default value if
253
+ # no retry mode is provided.
254
+ #
255
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
256
+ # This includes support for retry quotas, which limit the number of
257
+ # unsuccessful retries a client can make.
258
+ #
259
+ # * `adaptive` - An experimental retry mode that includes all the
260
+ # functionality of `standard` mode along with automatic client side
261
+ # throttling. This is a provisional mode that may change behavior
262
+ # in the future.
263
+ #
264
+ #
265
+ # @option options [String] :secret_access_key
266
+ #
267
+ # @option options [String] :session_token
268
+ #
269
+ # @option options [Boolean] :stub_responses (false)
270
+ # Causes the client to return stubbed responses. By default
271
+ # fake responses are generated and returned. You can specify
272
+ # the response data to return or errors to raise by calling
273
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
274
+ #
275
+ # ** Please note ** When response stubbing is enabled, no HTTP
276
+ # requests are made, and retries are disabled.
277
+ #
278
+ # @option options [Boolean] :use_dualstack_endpoint
279
+ # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
280
+ # will be used if available.
281
+ #
282
+ # @option options [Boolean] :use_fips_endpoint
283
+ # When set to `true`, fips compatible endpoints will be used if available.
284
+ # When a `fips` region is used, the region is normalized and this config
285
+ # is set to `true`.
286
+ #
287
+ # @option options [Boolean] :validate_params (true)
288
+ # When `true`, request parameters are validated before
289
+ # sending the request.
290
+ #
291
+ # @option options [URI::HTTP,String] :http_proxy A proxy to send
292
+ # requests through. Formatted like 'http://proxy.com:123'.
293
+ #
294
+ # @option options [Float] :http_open_timeout (15) The number of
295
+ # seconds to wait when opening a HTTP session before raising a
296
+ # `Timeout::Error`.
297
+ #
298
+ # @option options [Integer] :http_read_timeout (60) The default
299
+ # number of seconds to wait for response data. This value can
300
+ # safely be set per-request on the session.
301
+ #
302
+ # @option options [Float] :http_idle_timeout (5) The number of
303
+ # seconds a connection is allowed to sit idle before it is
304
+ # considered stale. Stale connections are closed and removed
305
+ # from the pool before making a request.
306
+ #
307
+ # @option options [Float] :http_continue_timeout (1) The number of
308
+ # seconds to wait for a 100-continue response before sending the
309
+ # request body. This option has no effect unless the request has
310
+ # "Expect" header set to "100-continue". Defaults to `nil` which
311
+ # disables this behaviour. This value can safely be set per
312
+ # request on the session.
313
+ #
314
+ # @option options [Boolean] :http_wire_trace (false) When `true`,
315
+ # HTTP debug output will be sent to the `:logger`.
316
+ #
317
+ # @option options [Boolean] :ssl_verify_peer (true) When `true`,
318
+ # SSL peer certificates are verified when establishing a
319
+ # connection.
320
+ #
321
+ # @option options [String] :ssl_ca_bundle Full path to the SSL
322
+ # certificate authority bundle file that should be used when
323
+ # verifying peer certificates. If you do not pass
324
+ # `:ssl_ca_bundle` or `:ssl_ca_directory` the the system default
325
+ # will be used if available.
326
+ #
327
+ # @option options [String] :ssl_ca_directory Full path of the
328
+ # directory that contains the unbundled SSL certificate
329
+ # authority files for verifying peer certificates. If you do
330
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the
331
+ # system default will be used if available.
332
+ #
333
+ def initialize(*args)
334
+ super
335
+ end
336
+
337
+ # @!group API Operations
338
+
339
+ # This operation assigns feature variation to user sessions. For each
340
+ # user session, you pass in an `entityID` that represents the user.
341
+ # Evidently then checks the evaluation rules and assigns the variation.
342
+ #
343
+ # The first rules that are evaluated are the override rules. If the
344
+ # user's `entityID` matches an override rule, the user is served the
345
+ # variation specified by that rule.
346
+ #
347
+ # Next, if there is a launch of the feature, the user might be assigned
348
+ # to a variation in the launch. The chance of this depends on the
349
+ # percentage of users that are allocated to that launch. If the user is
350
+ # enrolled in the launch, the variation they are served depends on the
351
+ # allocation of the various feature variations used for the launch.
352
+ #
353
+ # If the user is not assigned to a launch, and there is an ongoing
354
+ # experiment for this feature, the user might be assigned to a variation
355
+ # in the experiment. The chance of this depends on the percentage of
356
+ # users that are allocated to that experiment. If the user is enrolled
357
+ # in the experiment, the variation they are served depends on the
358
+ # allocation of the various feature variations used for the experiment.
359
+ #
360
+ # If the user is not assigned to a launch or experiment, they are served
361
+ # the default variation.
362
+ #
363
+ # @option params [required, String] :project
364
+ # The name or ARN of the project that contains the feature being
365
+ # evaluated.
366
+ #
367
+ # @option params [required, Array<Types::EvaluationRequest>] :requests
368
+ # An array of structures, where each structure assigns a feature
369
+ # variation to one user session.
370
+ #
371
+ # @return [Types::BatchEvaluateFeatureResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
372
+ #
373
+ # * {Types::BatchEvaluateFeatureResponse#results #results} => Array&lt;Types::EvaluationResult&gt;
374
+ #
375
+ # @example Request syntax with placeholder values
376
+ #
377
+ # resp = client.batch_evaluate_feature({
378
+ # project: "ProjectRef", # required
379
+ # requests: [ # required
380
+ # {
381
+ # entity_id: "EntityId", # required
382
+ # evaluation_context: "JsonValue",
383
+ # feature: "FeatureName", # required
384
+ # },
385
+ # ],
386
+ # })
387
+ #
388
+ # @example Response structure
389
+ #
390
+ # resp.results #=> Array
391
+ # resp.results[0].details #=> String
392
+ # resp.results[0].entity_id #=> String
393
+ # resp.results[0].feature #=> String
394
+ # resp.results[0].project #=> String
395
+ # resp.results[0].reason #=> String
396
+ # resp.results[0].value.bool_value #=> Boolean
397
+ # resp.results[0].value.double_value #=> Float
398
+ # resp.results[0].value.long_value #=> Integer
399
+ # resp.results[0].value.string_value #=> String
400
+ # resp.results[0].variation #=> String
401
+ #
402
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/BatchEvaluateFeature AWS API Documentation
403
+ #
404
+ # @overload batch_evaluate_feature(params = {})
405
+ # @param [Hash] params ({})
406
+ def batch_evaluate_feature(params = {}, options = {})
407
+ req = build_request(:batch_evaluate_feature, params)
408
+ req.send_request(options)
409
+ end
410
+
411
+ # Creates an Evidently *experiment*. Before you create an experiment,
412
+ # you must create the feature to use for the experiment.
413
+ #
414
+ # An experiment helps you make feature design decisions based on
415
+ # evidence and data. An experiment can test as many as five variations
416
+ # at once. Evidently collects experiment data and analyzes it by
417
+ # statistical methods, and provides clear recommendations about which
418
+ # variations perform better.
419
+ #
420
+ # Don't use this operation to update an existing experiment. Instead,
421
+ # use [UpdateExperiment][1].
422
+ #
423
+ #
424
+ #
425
+ # [1]: https://docs.aws.amazon.com/cloudwatchevidently/latest/APIReference/API_UpdateExperiment.html
426
+ #
427
+ # @option params [String] :description
428
+ # An optional description of the experiment.
429
+ #
430
+ # @option params [required, Array<Types::MetricGoalConfig>] :metric_goals
431
+ # An array of structures that defines the metrics used for the
432
+ # experiment, and whether a higher or lower value for each metric is the
433
+ # goal.
434
+ #
435
+ # @option params [required, String] :name
436
+ # A name for the new experiment.
437
+ #
438
+ # @option params [Types::OnlineAbConfig] :online_ab_config
439
+ # A structure that contains the configuration of which variation to use
440
+ # as the "control" version. tThe "control" version is used for
441
+ # comparison with other variations. This structure also specifies how
442
+ # much experiment traffic is allocated to each variation.
443
+ #
444
+ # @option params [required, String] :project
445
+ # The name or ARN of the project that you want to create the new
446
+ # experiment in.
447
+ #
448
+ # @option params [String] :randomization_salt
449
+ # When Evidently assigns a particular user session to an experiment, it
450
+ # must use a randomization ID to determine which variation the user
451
+ # session is served. This randomization ID is a combination of the
452
+ # entity ID and `randomizationSalt`. If you omit `randomizationSalt`,
453
+ # Evidently uses the experiment name as the `randomizationSalt`.
454
+ #
455
+ # @option params [Integer] :sampling_rate
456
+ # The portion of the available audience that you want to allocate to
457
+ # this experiment, in thousandths of a percent. The available audience
458
+ # is the total audience minus the audience that you have allocated to
459
+ # overrides or current launches of this feature.
460
+ #
461
+ # This is represented in thousandths of a percent. For example, specify
462
+ # 10,000 to allocate 10% of the available audience.
463
+ #
464
+ # @option params [Hash<String,String>] :tags
465
+ # Assigns one or more tags (key-value pairs) to the experiment.
466
+ #
467
+ # Tags can help you organize and categorize your resources. You can also
468
+ # use them to scope user permissions by granting a user permission to
469
+ # access or change only resources with certain tag values.
470
+ #
471
+ # Tags don't have any semantic meaning to Amazon Web Services and are
472
+ # interpreted strictly as strings of characters.
473
+ #
474
+ # <p>You can associate as many as 50 tags with an experiment.</p> <p>For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging Amazon Web Services resources</a>.</p>
475
+ #
476
+ # @option params [required, Array<Types::TreatmentConfig>] :treatments
477
+ # An array of structures that describe the configuration of each feature
478
+ # variation used in the experiment.
479
+ #
480
+ # @return [Types::CreateExperimentResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
481
+ #
482
+ # * {Types::CreateExperimentResponse#experiment #experiment} => Types::Experiment
483
+ #
484
+ # @example Request syntax with placeholder values
485
+ #
486
+ # resp = client.create_experiment({
487
+ # description: "Description",
488
+ # metric_goals: [ # required
489
+ # {
490
+ # desired_change: "INCREASE", # accepts INCREASE, DECREASE
491
+ # metric_definition: { # required
492
+ # entity_id_key: "JsonPath",
493
+ # event_pattern: "MetricDefinitionConfigEventPatternString",
494
+ # name: "CwDimensionSafeName",
495
+ # unit_label: "MetricUnitLabel",
496
+ # value_key: "JsonPath",
497
+ # },
498
+ # },
499
+ # ],
500
+ # name: "ExperimentName", # required
501
+ # online_ab_config: {
502
+ # control_treatment_name: "TreatmentName",
503
+ # treatment_weights: {
504
+ # "TreatmentName" => 1,
505
+ # },
506
+ # },
507
+ # project: "ProjectRef", # required
508
+ # randomization_salt: "RandomizationSalt",
509
+ # sampling_rate: 1,
510
+ # tags: {
511
+ # "TagKey" => "TagValue",
512
+ # },
513
+ # treatments: [ # required
514
+ # {
515
+ # description: "Description",
516
+ # feature: "FeatureName", # required
517
+ # name: "TreatmentName", # required
518
+ # variation: "VariationName", # required
519
+ # },
520
+ # ],
521
+ # })
522
+ #
523
+ # @example Response structure
524
+ #
525
+ # resp.experiment.arn #=> String
526
+ # resp.experiment.created_time #=> Time
527
+ # resp.experiment.description #=> String
528
+ # resp.experiment.execution.ended_time #=> Time
529
+ # resp.experiment.execution.started_time #=> Time
530
+ # resp.experiment.last_updated_time #=> Time
531
+ # resp.experiment.metric_goals #=> Array
532
+ # resp.experiment.metric_goals[0].desired_change #=> String, one of "INCREASE", "DECREASE"
533
+ # resp.experiment.metric_goals[0].metric_definition.entity_id_key #=> String
534
+ # resp.experiment.metric_goals[0].metric_definition.event_pattern #=> String
535
+ # resp.experiment.metric_goals[0].metric_definition.name #=> String
536
+ # resp.experiment.metric_goals[0].metric_definition.unit_label #=> String
537
+ # resp.experiment.metric_goals[0].metric_definition.value_key #=> String
538
+ # resp.experiment.name #=> String
539
+ # resp.experiment.online_ab_definition.control_treatment_name #=> String
540
+ # resp.experiment.online_ab_definition.treatment_weights #=> Hash
541
+ # resp.experiment.online_ab_definition.treatment_weights["TreatmentName"] #=> Integer
542
+ # resp.experiment.project #=> String
543
+ # resp.experiment.randomization_salt #=> String
544
+ # resp.experiment.sampling_rate #=> Integer
545
+ # resp.experiment.schedule.analysis_complete_time #=> Time
546
+ # resp.experiment.status #=> String, one of "CREATED", "UPDATING", "RUNNING", "COMPLETED", "CANCELLED"
547
+ # resp.experiment.status_reason #=> String
548
+ # resp.experiment.tags #=> Hash
549
+ # resp.experiment.tags["TagKey"] #=> String
550
+ # resp.experiment.treatments #=> Array
551
+ # resp.experiment.treatments[0].description #=> String
552
+ # resp.experiment.treatments[0].feature_variations #=> Hash
553
+ # resp.experiment.treatments[0].feature_variations["FeatureName"] #=> String
554
+ # resp.experiment.treatments[0].name #=> String
555
+ # resp.experiment.type #=> String, one of "aws.evidently.onlineab"
556
+ #
557
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/CreateExperiment AWS API Documentation
558
+ #
559
+ # @overload create_experiment(params = {})
560
+ # @param [Hash] params ({})
561
+ def create_experiment(params = {}, options = {})
562
+ req = build_request(:create_experiment, params)
563
+ req.send_request(options)
564
+ end
565
+
566
+ # Creates an Evidently *feature* that you want to launch or test. You
567
+ # can define up to five variations of a feature, and use these
568
+ # variations in your launches and experiments. A feature must be created
569
+ # in a project. For information about creating a project, see
570
+ # [CreateProject][1].
571
+ #
572
+ # Don't use this operation to update an existing feature. Instead, use
573
+ # [UpdateFeature][2].
574
+ #
575
+ #
576
+ #
577
+ # [1]: https://docs.aws.amazon.com/cloudwatchevidently/latest/APIReference/API_CreateProject.html
578
+ # [2]: https://docs.aws.amazon.com/cloudwatchevidently/latest/APIReference/API_UpdateFeature.html
579
+ #
580
+ # @option params [String] :default_variation
581
+ # The name of the variation to use as the default variation. The default
582
+ # variation is served to users who are not allocated to any ongoing
583
+ # launches or experiments of this feature.
584
+ #
585
+ # This variation must also be listed in the `variations` structure.
586
+ #
587
+ # If you omit `defaultVariation`, the first variation listed in the
588
+ # `variations` structure is used as the default variation.
589
+ #
590
+ # @option params [String] :description
591
+ # An optional description of the feature.
592
+ #
593
+ # @option params [Hash<String,String>] :entity_overrides
594
+ # Specify users that should always be served a specific variation of a
595
+ # feature. Each user is specified by a key-value pair . For each key,
596
+ # specify a user by entering their user ID, account ID, or some other
597
+ # identifier. For the value, specify the name of the variation that they
598
+ # are to be served.
599
+ #
600
+ # @option params [String] :evaluation_strategy
601
+ # Specify `ALL_RULES` to activate the traffic allocation specified by
602
+ # any ongoing launches or experiments. Specify `DEFAULT_VARIATION` to
603
+ # serve the default variation to all users instead.
604
+ #
605
+ # @option params [required, String] :name
606
+ # The name for the new feature.
607
+ #
608
+ # @option params [required, String] :project
609
+ # The name or ARN of the project that is to contain the new feature.
610
+ #
611
+ # @option params [Hash<String,String>] :tags
612
+ # Assigns one or more tags (key-value pairs) to the feature.
613
+ #
614
+ # Tags can help you organize and categorize your resources. You can also
615
+ # use them to scope user permissions by granting a user permission to
616
+ # access or change only resources with certain tag values.
617
+ #
618
+ # Tags don't have any semantic meaning to Amazon Web Services and are
619
+ # interpreted strictly as strings of characters.
620
+ #
621
+ # <p>You can associate as many as 50 tags with a feature.</p> <p>For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging Amazon Web Services resources</a>.</p>
622
+ #
623
+ # @option params [required, Array<Types::VariationConfig>] :variations
624
+ # An array of structures that contain the configuration of the
625
+ # feature's different variations.
626
+ #
627
+ # @return [Types::CreateFeatureResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
628
+ #
629
+ # * {Types::CreateFeatureResponse#feature #feature} => Types::Feature
630
+ #
631
+ # @example Request syntax with placeholder values
632
+ #
633
+ # resp = client.create_feature({
634
+ # default_variation: "VariationName",
635
+ # description: "Description",
636
+ # entity_overrides: {
637
+ # "EntityId" => "VariationName",
638
+ # },
639
+ # evaluation_strategy: "ALL_RULES", # accepts ALL_RULES, DEFAULT_VARIATION
640
+ # name: "FeatureName", # required
641
+ # project: "ProjectRef", # required
642
+ # tags: {
643
+ # "TagKey" => "TagValue",
644
+ # },
645
+ # variations: [ # required
646
+ # {
647
+ # name: "VariationName", # required
648
+ # value: { # required
649
+ # bool_value: false,
650
+ # double_value: 1.0,
651
+ # long_value: 1,
652
+ # string_value: "VariableValueStringValueString",
653
+ # },
654
+ # },
655
+ # ],
656
+ # })
657
+ #
658
+ # @example Response structure
659
+ #
660
+ # resp.feature.arn #=> String
661
+ # resp.feature.created_time #=> Time
662
+ # resp.feature.default_variation #=> String
663
+ # resp.feature.description #=> String
664
+ # resp.feature.entity_overrides #=> Hash
665
+ # resp.feature.entity_overrides["EntityId"] #=> String
666
+ # resp.feature.evaluation_rules #=> Array
667
+ # resp.feature.evaluation_rules[0].name #=> String
668
+ # resp.feature.evaluation_rules[0].type #=> String
669
+ # resp.feature.evaluation_strategy #=> String, one of "ALL_RULES", "DEFAULT_VARIATION"
670
+ # resp.feature.last_updated_time #=> Time
671
+ # resp.feature.name #=> String
672
+ # resp.feature.project #=> String
673
+ # resp.feature.status #=> String, one of "AVAILABLE", "UPDATING"
674
+ # resp.feature.tags #=> Hash
675
+ # resp.feature.tags["TagKey"] #=> String
676
+ # resp.feature.value_type #=> String, one of "STRING", "LONG", "DOUBLE", "BOOLEAN"
677
+ # resp.feature.variations #=> Array
678
+ # resp.feature.variations[0].name #=> String
679
+ # resp.feature.variations[0].value.bool_value #=> Boolean
680
+ # resp.feature.variations[0].value.double_value #=> Float
681
+ # resp.feature.variations[0].value.long_value #=> Integer
682
+ # resp.feature.variations[0].value.string_value #=> String
683
+ #
684
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/CreateFeature AWS API Documentation
685
+ #
686
+ # @overload create_feature(params = {})
687
+ # @param [Hash] params ({})
688
+ def create_feature(params = {}, options = {})
689
+ req = build_request(:create_feature, params)
690
+ req.send_request(options)
691
+ end
692
+
693
+ # Creates a *launch* of a given feature. Before you create a launch, you
694
+ # must create the feature to use for the launch.
695
+ #
696
+ # You can use a launch to safely validate new features by serving them
697
+ # to a specified percentage of your users while you roll out the
698
+ # feature. You can monitor the performance of the new feature to help
699
+ # you decide when to ramp up traffic to more users. This helps you
700
+ # reduce risk and identify unintended consequences before you fully
701
+ # launch the feature.
702
+ #
703
+ # Don't use this operation to update an existing launch. Instead, use
704
+ # [UpdateLaunch][1].
705
+ #
706
+ #
707
+ #
708
+ # [1]: https://docs.aws.amazon.com/cloudwatchevidently/latest/APIReference/API_UpdateLaunch.html
709
+ #
710
+ # @option params [String] :description
711
+ # An optional description for the launch.
712
+ #
713
+ # @option params [required, Array<Types::LaunchGroupConfig>] :groups
714
+ # An array of structures that contains the feature and variations that
715
+ # are to be used for the launch.
716
+ #
717
+ # @option params [Array<Types::MetricMonitorConfig>] :metric_monitors
718
+ # An array of structures that define the metrics that will be used to
719
+ # monitor the launch performance.
720
+ #
721
+ # @option params [required, String] :name
722
+ # The name for the new launch.
723
+ #
724
+ # @option params [required, String] :project
725
+ # The name or ARN of the project that you want to create the launch in.
726
+ #
727
+ # @option params [String] :randomization_salt
728
+ # When Evidently assigns a particular user session to a launch, it must
729
+ # use a randomization ID to determine which variation the user session
730
+ # is served. This randomization ID is a combination of the entity ID and
731
+ # `randomizationSalt`. If you omit `randomizationSalt`, Evidently uses
732
+ # the launch name as the `randomizationsSalt`.
733
+ #
734
+ # @option params [Types::ScheduledSplitsLaunchConfig] :scheduled_splits_config
735
+ # An array of structures that define the traffic allocation percentages
736
+ # among the feature variations during each step of the launch.
737
+ #
738
+ # @option params [Hash<String,String>] :tags
739
+ # Assigns one or more tags (key-value pairs) to the launch.
740
+ #
741
+ # Tags can help you organize and categorize your resources. You can also
742
+ # use them to scope user permissions by granting a user permission to
743
+ # access or change only resources with certain tag values.
744
+ #
745
+ # Tags don't have any semantic meaning to Amazon Web Services and are
746
+ # interpreted strictly as strings of characters.
747
+ #
748
+ # <p>You can associate as many as 50 tags with a launch.</p> <p>For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging Amazon Web Services resources</a>.</p>
749
+ #
750
+ # @return [Types::CreateLaunchResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
751
+ #
752
+ # * {Types::CreateLaunchResponse#launch #launch} => Types::Launch
753
+ #
754
+ # @example Request syntax with placeholder values
755
+ #
756
+ # resp = client.create_launch({
757
+ # description: "Description",
758
+ # groups: [ # required
759
+ # {
760
+ # description: "Description",
761
+ # feature: "FeatureName", # required
762
+ # name: "GroupName", # required
763
+ # variation: "VariationName", # required
764
+ # },
765
+ # ],
766
+ # metric_monitors: [
767
+ # {
768
+ # metric_definition: { # required
769
+ # entity_id_key: "JsonPath",
770
+ # event_pattern: "MetricDefinitionConfigEventPatternString",
771
+ # name: "CwDimensionSafeName",
772
+ # unit_label: "MetricUnitLabel",
773
+ # value_key: "JsonPath",
774
+ # },
775
+ # },
776
+ # ],
777
+ # name: "LaunchName", # required
778
+ # project: "ProjectRef", # required
779
+ # randomization_salt: "RandomizationSalt",
780
+ # scheduled_splits_config: {
781
+ # steps: [ # required
782
+ # {
783
+ # group_weights: { # required
784
+ # "GroupName" => 1,
785
+ # },
786
+ # start_time: Time.now, # required
787
+ # },
788
+ # ],
789
+ # },
790
+ # tags: {
791
+ # "TagKey" => "TagValue",
792
+ # },
793
+ # })
794
+ #
795
+ # @example Response structure
796
+ #
797
+ # resp.launch.arn #=> String
798
+ # resp.launch.created_time #=> Time
799
+ # resp.launch.description #=> String
800
+ # resp.launch.execution.ended_time #=> Time
801
+ # resp.launch.execution.started_time #=> Time
802
+ # resp.launch.groups #=> Array
803
+ # resp.launch.groups[0].description #=> String
804
+ # resp.launch.groups[0].feature_variations #=> Hash
805
+ # resp.launch.groups[0].feature_variations["FeatureName"] #=> String
806
+ # resp.launch.groups[0].name #=> String
807
+ # resp.launch.last_updated_time #=> Time
808
+ # resp.launch.metric_monitors #=> Array
809
+ # resp.launch.metric_monitors[0].metric_definition.entity_id_key #=> String
810
+ # resp.launch.metric_monitors[0].metric_definition.event_pattern #=> String
811
+ # resp.launch.metric_monitors[0].metric_definition.name #=> String
812
+ # resp.launch.metric_monitors[0].metric_definition.unit_label #=> String
813
+ # resp.launch.metric_monitors[0].metric_definition.value_key #=> String
814
+ # resp.launch.name #=> String
815
+ # resp.launch.project #=> String
816
+ # resp.launch.randomization_salt #=> String
817
+ # resp.launch.scheduled_splits_definition.steps #=> Array
818
+ # resp.launch.scheduled_splits_definition.steps[0].group_weights #=> Hash
819
+ # resp.launch.scheduled_splits_definition.steps[0].group_weights["GroupName"] #=> Integer
820
+ # resp.launch.scheduled_splits_definition.steps[0].start_time #=> Time
821
+ # resp.launch.status #=> String, one of "CREATED", "UPDATING", "RUNNING", "COMPLETED", "CANCELLED"
822
+ # resp.launch.status_reason #=> String
823
+ # resp.launch.tags #=> Hash
824
+ # resp.launch.tags["TagKey"] #=> String
825
+ # resp.launch.type #=> String, one of "aws.evidently.splits"
826
+ #
827
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/CreateLaunch AWS API Documentation
828
+ #
829
+ # @overload create_launch(params = {})
830
+ # @param [Hash] params ({})
831
+ def create_launch(params = {}, options = {})
832
+ req = build_request(:create_launch, params)
833
+ req.send_request(options)
834
+ end
835
+
836
+ # Creates a project, which is the logical object in Evidently that can
837
+ # contain features, launches, and experiments. Use projects to group
838
+ # similar features together.
839
+ #
840
+ # To update an existing project, use [UpdateProject][1].
841
+ #
842
+ #
843
+ #
844
+ # [1]: https://docs.aws.amazon.com/cloudwatchevidently/latest/APIReference/API_UpdateProject.html
845
+ #
846
+ # @option params [Types::ProjectDataDeliveryConfig] :data_delivery
847
+ # A structure that contains information about where Evidently is to
848
+ # store evaluation events for longer term storage, if you choose to do
849
+ # so. If you choose not to store these events, Evidently deletes them
850
+ # after using them to produce metrics and other experiment results that
851
+ # you can view.
852
+ #
853
+ # @option params [String] :description
854
+ # An optional description of the project.
855
+ #
856
+ # @option params [required, String] :name
857
+ # The name for the project.
858
+ #
859
+ # @option params [Hash<String,String>] :tags
860
+ # Assigns one or more tags (key-value pairs) to the project.
861
+ #
862
+ # Tags can help you organize and categorize your resources. You can also
863
+ # use them to scope user permissions by granting a user permission to
864
+ # access or change only resources with certain tag values.
865
+ #
866
+ # Tags don't have any semantic meaning to Amazon Web Services and are
867
+ # interpreted strictly as strings of characters.
868
+ #
869
+ # <p>You can associate as many as 50 tags with a project.</p> <p>For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging Amazon Web Services resources</a>.</p>
870
+ #
871
+ # @return [Types::CreateProjectResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
872
+ #
873
+ # * {Types::CreateProjectResponse#project #project} => Types::Project
874
+ #
875
+ # @example Request syntax with placeholder values
876
+ #
877
+ # resp = client.create_project({
878
+ # data_delivery: {
879
+ # cloud_watch_logs: {
880
+ # log_group: "CwLogGroupSafeName",
881
+ # },
882
+ # s3_destination: {
883
+ # bucket: "S3BucketSafeName",
884
+ # prefix: "S3PrefixSafeName",
885
+ # },
886
+ # },
887
+ # description: "Description",
888
+ # name: "ProjectName", # required
889
+ # tags: {
890
+ # "TagKey" => "TagValue",
891
+ # },
892
+ # })
893
+ #
894
+ # @example Response structure
895
+ #
896
+ # resp.project.active_experiment_count #=> Integer
897
+ # resp.project.active_launch_count #=> Integer
898
+ # resp.project.arn #=> String
899
+ # resp.project.created_time #=> Time
900
+ # resp.project.data_delivery.cloud_watch_logs.log_group #=> String
901
+ # resp.project.data_delivery.s3_destination.bucket #=> String
902
+ # resp.project.data_delivery.s3_destination.prefix #=> String
903
+ # resp.project.description #=> String
904
+ # resp.project.experiment_count #=> Integer
905
+ # resp.project.feature_count #=> Integer
906
+ # resp.project.last_updated_time #=> Time
907
+ # resp.project.launch_count #=> Integer
908
+ # resp.project.name #=> String
909
+ # resp.project.status #=> String, one of "AVAILABLE", "UPDATING"
910
+ # resp.project.tags #=> Hash
911
+ # resp.project.tags["TagKey"] #=> String
912
+ #
913
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/CreateProject AWS API Documentation
914
+ #
915
+ # @overload create_project(params = {})
916
+ # @param [Hash] params ({})
917
+ def create_project(params = {}, options = {})
918
+ req = build_request(:create_project, params)
919
+ req.send_request(options)
920
+ end
921
+
922
+ # Deletes an Evidently experiment. The feature used for the experiment
923
+ # is not deleted.
924
+ #
925
+ # To stop an experiment without deleting it, use [StopExperiment][1].
926
+ #
927
+ #
928
+ #
929
+ # [1]: https://docs.aws.amazon.com/cloudwatchevidently/latest/APIReference/API_StopExperiment.html
930
+ #
931
+ # @option params [required, String] :experiment
932
+ # The name of the experiment to delete.
933
+ #
934
+ # @option params [required, String] :project
935
+ # The name or ARN of the project that contains the experiment to delete.
936
+ #
937
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
938
+ #
939
+ # @example Request syntax with placeholder values
940
+ #
941
+ # resp = client.delete_experiment({
942
+ # experiment: "ExperimentName", # required
943
+ # project: "ProjectRef", # required
944
+ # })
945
+ #
946
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/DeleteExperiment AWS API Documentation
947
+ #
948
+ # @overload delete_experiment(params = {})
949
+ # @param [Hash] params ({})
950
+ def delete_experiment(params = {}, options = {})
951
+ req = build_request(:delete_experiment, params)
952
+ req.send_request(options)
953
+ end
954
+
955
+ # Deletes an Evidently feature.
956
+ #
957
+ # @option params [required, String] :feature
958
+ # The name of the feature to delete.
959
+ #
960
+ # @option params [required, String] :project
961
+ # The name or ARN of the project that contains the feature to delete.
962
+ #
963
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
964
+ #
965
+ # @example Request syntax with placeholder values
966
+ #
967
+ # resp = client.delete_feature({
968
+ # feature: "FeatureName", # required
969
+ # project: "ProjectRef", # required
970
+ # })
971
+ #
972
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/DeleteFeature AWS API Documentation
973
+ #
974
+ # @overload delete_feature(params = {})
975
+ # @param [Hash] params ({})
976
+ def delete_feature(params = {}, options = {})
977
+ req = build_request(:delete_feature, params)
978
+ req.send_request(options)
979
+ end
980
+
981
+ # Deletes an Evidently launch. The feature used for the launch is not
982
+ # deleted.
983
+ #
984
+ # To stop a launch without deleting it, use [StopLaunch][1].
985
+ #
986
+ #
987
+ #
988
+ # [1]: https://docs.aws.amazon.com/cloudwatchevidently/latest/APIReference/API_StopLaunch.html
989
+ #
990
+ # @option params [required, String] :launch
991
+ # The name of the launch to delete.
992
+ #
993
+ # @option params [required, String] :project
994
+ # The name or ARN of the project that contains the launch to delete.
995
+ #
996
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
997
+ #
998
+ # @example Request syntax with placeholder values
999
+ #
1000
+ # resp = client.delete_launch({
1001
+ # launch: "LaunchName", # required
1002
+ # project: "ProjectRef", # required
1003
+ # })
1004
+ #
1005
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/DeleteLaunch AWS API Documentation
1006
+ #
1007
+ # @overload delete_launch(params = {})
1008
+ # @param [Hash] params ({})
1009
+ def delete_launch(params = {}, options = {})
1010
+ req = build_request(:delete_launch, params)
1011
+ req.send_request(options)
1012
+ end
1013
+
1014
+ # Deletes an Evidently project. Before you can delete a project, you
1015
+ # must delete all the features that the project contains. To delete a
1016
+ # feature, use [DeleteFeature][1].
1017
+ #
1018
+ #
1019
+ #
1020
+ # [1]: https://docs.aws.amazon.com/cloudwatchevidently/latest/APIReference/API_DeleteFeature.html
1021
+ #
1022
+ # @option params [required, String] :project
1023
+ # The name or ARN of the project to delete.
1024
+ #
1025
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1026
+ #
1027
+ # @example Request syntax with placeholder values
1028
+ #
1029
+ # resp = client.delete_project({
1030
+ # project: "ProjectRef", # required
1031
+ # })
1032
+ #
1033
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/DeleteProject AWS API Documentation
1034
+ #
1035
+ # @overload delete_project(params = {})
1036
+ # @param [Hash] params ({})
1037
+ def delete_project(params = {}, options = {})
1038
+ req = build_request(:delete_project, params)
1039
+ req.send_request(options)
1040
+ end
1041
+
1042
+ # This operation assigns a feature variation to one given user session.
1043
+ # You pass in an `entityID` that represents the user. Evidently then
1044
+ # checks the evaluation rules and assigns the variation.
1045
+ #
1046
+ # The first rules that are evaluated are the override rules. If the
1047
+ # user's `entityID` matches an override rule, the user is served the
1048
+ # variation specified by that rule.
1049
+ #
1050
+ # Next, if there is a launch of the feature, the user might be assigned
1051
+ # to a variation in the launch. The chance of this depends on the
1052
+ # percentage of users that are allocated to that launch. If the user is
1053
+ # enrolled in the launch, the variation they are served depends on the
1054
+ # allocation of the various feature variations used for the launch.
1055
+ #
1056
+ # If the user is not assigned to a launch, and there is an ongoing
1057
+ # experiment for this feature, the user might be assigned to a variation
1058
+ # in the experiment. The chance of this depends on the percentage of
1059
+ # users that are allocated to that experiment. If the user is enrolled
1060
+ # in the experiment, the variation they are served depends on the
1061
+ # allocation of the various feature variations used for the experiment.
1062
+ #
1063
+ # If the user is not assigned to a launch or experiment, they are served
1064
+ # the default variation.
1065
+ #
1066
+ # @option params [required, String] :entity_id
1067
+ # An internal ID that represents a unique user of the application. This
1068
+ # `entityID` is checked against any override rules assigned for this
1069
+ # feature.
1070
+ #
1071
+ # @option params [String] :evaluation_context
1072
+ # A JSON block of attributes that you can optionally pass in. This JSON
1073
+ # block is included in the evaluation events sent to Evidently from the
1074
+ # user session.
1075
+ #
1076
+ # **SDK automatically handles json encoding and base64 encoding for you
1077
+ # when the required value (Hash, Array, etc.) is provided according to
1078
+ # the description.**
1079
+ #
1080
+ # @option params [required, String] :feature
1081
+ # The name of the feature being evaluated.
1082
+ #
1083
+ # @option params [required, String] :project
1084
+ # The name or ARN of the project that contains this feature.
1085
+ #
1086
+ # @return [Types::EvaluateFeatureResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1087
+ #
1088
+ # * {Types::EvaluateFeatureResponse#details #details} => String
1089
+ # * {Types::EvaluateFeatureResponse#reason #reason} => String
1090
+ # * {Types::EvaluateFeatureResponse#value #value} => Types::VariableValue
1091
+ # * {Types::EvaluateFeatureResponse#variation #variation} => String
1092
+ #
1093
+ # @example Request syntax with placeholder values
1094
+ #
1095
+ # resp = client.evaluate_feature({
1096
+ # entity_id: "EntityId", # required
1097
+ # evaluation_context: "JsonValue",
1098
+ # feature: "FeatureName", # required
1099
+ # project: "ProjectRef", # required
1100
+ # })
1101
+ #
1102
+ # @example Response structure
1103
+ #
1104
+ # resp.details #=> String
1105
+ # resp.reason #=> String
1106
+ # resp.value.bool_value #=> Boolean
1107
+ # resp.value.double_value #=> Float
1108
+ # resp.value.long_value #=> Integer
1109
+ # resp.value.string_value #=> String
1110
+ # resp.variation #=> String
1111
+ #
1112
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/EvaluateFeature AWS API Documentation
1113
+ #
1114
+ # @overload evaluate_feature(params = {})
1115
+ # @param [Hash] params ({})
1116
+ def evaluate_feature(params = {}, options = {})
1117
+ req = build_request(:evaluate_feature, params)
1118
+ req.send_request(options)
1119
+ end
1120
+
1121
+ # Returns the details about one experiment. You must already know the
1122
+ # experiment name. To retrieve a list of experiments in your account,
1123
+ # use [ListExperiments][1].
1124
+ #
1125
+ #
1126
+ #
1127
+ # [1]: https://docs.aws.amazon.com/cloudwatchevidently/latest/APIReference/API_ListExperiments.html
1128
+ #
1129
+ # @option params [required, String] :experiment
1130
+ # The name of the experiment that you want to see the details of.
1131
+ #
1132
+ # @option params [required, String] :project
1133
+ # The name or ARN of the project that contains the experiment.
1134
+ #
1135
+ # @return [Types::GetExperimentResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1136
+ #
1137
+ # * {Types::GetExperimentResponse#experiment #experiment} => Types::Experiment
1138
+ #
1139
+ # @example Request syntax with placeholder values
1140
+ #
1141
+ # resp = client.get_experiment({
1142
+ # experiment: "ExperimentName", # required
1143
+ # project: "ProjectRef", # required
1144
+ # })
1145
+ #
1146
+ # @example Response structure
1147
+ #
1148
+ # resp.experiment.arn #=> String
1149
+ # resp.experiment.created_time #=> Time
1150
+ # resp.experiment.description #=> String
1151
+ # resp.experiment.execution.ended_time #=> Time
1152
+ # resp.experiment.execution.started_time #=> Time
1153
+ # resp.experiment.last_updated_time #=> Time
1154
+ # resp.experiment.metric_goals #=> Array
1155
+ # resp.experiment.metric_goals[0].desired_change #=> String, one of "INCREASE", "DECREASE"
1156
+ # resp.experiment.metric_goals[0].metric_definition.entity_id_key #=> String
1157
+ # resp.experiment.metric_goals[0].metric_definition.event_pattern #=> String
1158
+ # resp.experiment.metric_goals[0].metric_definition.name #=> String
1159
+ # resp.experiment.metric_goals[0].metric_definition.unit_label #=> String
1160
+ # resp.experiment.metric_goals[0].metric_definition.value_key #=> String
1161
+ # resp.experiment.name #=> String
1162
+ # resp.experiment.online_ab_definition.control_treatment_name #=> String
1163
+ # resp.experiment.online_ab_definition.treatment_weights #=> Hash
1164
+ # resp.experiment.online_ab_definition.treatment_weights["TreatmentName"] #=> Integer
1165
+ # resp.experiment.project #=> String
1166
+ # resp.experiment.randomization_salt #=> String
1167
+ # resp.experiment.sampling_rate #=> Integer
1168
+ # resp.experiment.schedule.analysis_complete_time #=> Time
1169
+ # resp.experiment.status #=> String, one of "CREATED", "UPDATING", "RUNNING", "COMPLETED", "CANCELLED"
1170
+ # resp.experiment.status_reason #=> String
1171
+ # resp.experiment.tags #=> Hash
1172
+ # resp.experiment.tags["TagKey"] #=> String
1173
+ # resp.experiment.treatments #=> Array
1174
+ # resp.experiment.treatments[0].description #=> String
1175
+ # resp.experiment.treatments[0].feature_variations #=> Hash
1176
+ # resp.experiment.treatments[0].feature_variations["FeatureName"] #=> String
1177
+ # resp.experiment.treatments[0].name #=> String
1178
+ # resp.experiment.type #=> String, one of "aws.evidently.onlineab"
1179
+ #
1180
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/GetExperiment AWS API Documentation
1181
+ #
1182
+ # @overload get_experiment(params = {})
1183
+ # @param [Hash] params ({})
1184
+ def get_experiment(params = {}, options = {})
1185
+ req = build_request(:get_experiment, params)
1186
+ req.send_request(options)
1187
+ end
1188
+
1189
+ # Retrieves the results of a running or completed experiment.
1190
+ #
1191
+ # @option params [String] :base_stat
1192
+ # The statistic used to calculate experiment results. Currently the only
1193
+ # valid value is `mean`, which uses the mean of the collected values as
1194
+ # the statistic.
1195
+ #
1196
+ # @option params [Time,DateTime,Date,Integer,String] :end_time
1197
+ # The date and time that the experiment ended, if it is completed.
1198
+ #
1199
+ # @option params [required, String] :experiment
1200
+ # The name of the experiment to retrieve the results of.
1201
+ #
1202
+ # @option params [required, Array<String>] :metric_names
1203
+ # The names of the experiment metrics that you want to see the results
1204
+ # of.
1205
+ #
1206
+ # @option params [Integer] :period
1207
+ # In seconds, the amount of time to aggregate results together.
1208
+ #
1209
+ # @option params [required, String] :project
1210
+ # The name or ARN of the project that contains the experiment that you
1211
+ # want to see the results of.
1212
+ #
1213
+ # @option params [Array<String>] :report_names
1214
+ # The names of the report types that you want to see. Currently,
1215
+ # `BayesianInference` is the only valid value.
1216
+ #
1217
+ # @option params [Array<String>] :result_stats
1218
+ # The statistics that you want to see in the returned results.
1219
+ #
1220
+ # * `PValue` specifies to use p-values for the results. A p-value is
1221
+ # used in hypothesis testing to measure how often you are willing to
1222
+ # make a mistake in rejecting the null hypothesis. A general practice
1223
+ # is to reject the null hypothesis and declare that the results are
1224
+ # statistically significant when the p-value is less than 0.05.
1225
+ #
1226
+ # * `ConfidenceInterval` specifies a confidence interval for the
1227
+ # results. The confidence interval represents the range of values for
1228
+ # the chosen metric that is likely to contain the true difference
1229
+ # between the `baseStat` of a variation and the baseline. Evidently
1230
+ # returns the 95% confidence interval.
1231
+ #
1232
+ # * `TreatmentEffect` is the difference in the statistic specified by
1233
+ # the `baseStat` parameter between each variation and the default
1234
+ # variation.
1235
+ #
1236
+ # * `BaseStat` returns the statistical values collected for the metric
1237
+ # for each variation. The statistic uses the same statistic specified
1238
+ # in the `baseStat` parameter. Therefore, if `baseStat` is `mean`,
1239
+ # this returns the mean of the values collected for each variation.
1240
+ #
1241
+ # @option params [Time,DateTime,Date,Integer,String] :start_time
1242
+ # The date and time that the experiment started.
1243
+ #
1244
+ # @option params [required, Array<String>] :treatment_names
1245
+ # The names of the experiment treatments that you want to see the
1246
+ # results for.
1247
+ #
1248
+ # @return [Types::GetExperimentResultsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1249
+ #
1250
+ # * {Types::GetExperimentResultsResponse#reports #reports} => Array&lt;Types::ExperimentReport&gt;
1251
+ # * {Types::GetExperimentResultsResponse#results_data #results_data} => Array&lt;Types::ExperimentResultsData&gt;
1252
+ # * {Types::GetExperimentResultsResponse#timestamps #timestamps} => Array&lt;Time&gt;
1253
+ #
1254
+ # @example Request syntax with placeholder values
1255
+ #
1256
+ # resp = client.get_experiment_results({
1257
+ # base_stat: "Mean", # accepts Mean
1258
+ # end_time: Time.now,
1259
+ # experiment: "ExperimentName", # required
1260
+ # metric_names: ["CwDimensionSafeName"], # required
1261
+ # period: 1,
1262
+ # project: "ProjectRef", # required
1263
+ # report_names: ["BayesianInference"], # accepts BayesianInference
1264
+ # result_stats: ["BaseStat"], # accepts BaseStat, TreatmentEffect, ConfidenceInterval, PValue
1265
+ # start_time: Time.now,
1266
+ # treatment_names: ["TreatmentName"], # required
1267
+ # })
1268
+ #
1269
+ # @example Response structure
1270
+ #
1271
+ # resp.reports #=> Array
1272
+ # resp.reports[0].content #=> String
1273
+ # resp.reports[0].metric_name #=> String
1274
+ # resp.reports[0].report_name #=> String, one of "BayesianInference"
1275
+ # resp.reports[0].treatment_name #=> String
1276
+ # resp.results_data #=> Array
1277
+ # resp.results_data[0].metric_name #=> String
1278
+ # resp.results_data[0].result_stat #=> String, one of "Mean", "TreatmentEffect", "ConfidenceIntervalUpperBound", "ConfidenceIntervalLowerBound", "PValue"
1279
+ # resp.results_data[0].treatment_name #=> String
1280
+ # resp.results_data[0].values #=> Array
1281
+ # resp.results_data[0].values[0] #=> Float
1282
+ # resp.timestamps #=> Array
1283
+ # resp.timestamps[0] #=> Time
1284
+ #
1285
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/GetExperimentResults AWS API Documentation
1286
+ #
1287
+ # @overload get_experiment_results(params = {})
1288
+ # @param [Hash] params ({})
1289
+ def get_experiment_results(params = {}, options = {})
1290
+ req = build_request(:get_experiment_results, params)
1291
+ req.send_request(options)
1292
+ end
1293
+
1294
+ # Returns the details about one feature. You must already know the
1295
+ # feature name. To retrieve a list of features in your account, use
1296
+ # [ListFeatures][1].
1297
+ #
1298
+ #
1299
+ #
1300
+ # [1]: https://docs.aws.amazon.com/cloudwatchevidently/latest/APIReference/API_ListFeatures.html
1301
+ #
1302
+ # @option params [required, String] :feature
1303
+ # The name of the feature that you want to retrieve information for.
1304
+ #
1305
+ # @option params [required, String] :project
1306
+ # The name or ARN of the project that contains the feature.
1307
+ #
1308
+ # @return [Types::GetFeatureResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1309
+ #
1310
+ # * {Types::GetFeatureResponse#feature #feature} => Types::Feature
1311
+ #
1312
+ # @example Request syntax with placeholder values
1313
+ #
1314
+ # resp = client.get_feature({
1315
+ # feature: "FeatureName", # required
1316
+ # project: "ProjectRef", # required
1317
+ # })
1318
+ #
1319
+ # @example Response structure
1320
+ #
1321
+ # resp.feature.arn #=> String
1322
+ # resp.feature.created_time #=> Time
1323
+ # resp.feature.default_variation #=> String
1324
+ # resp.feature.description #=> String
1325
+ # resp.feature.entity_overrides #=> Hash
1326
+ # resp.feature.entity_overrides["EntityId"] #=> String
1327
+ # resp.feature.evaluation_rules #=> Array
1328
+ # resp.feature.evaluation_rules[0].name #=> String
1329
+ # resp.feature.evaluation_rules[0].type #=> String
1330
+ # resp.feature.evaluation_strategy #=> String, one of "ALL_RULES", "DEFAULT_VARIATION"
1331
+ # resp.feature.last_updated_time #=> Time
1332
+ # resp.feature.name #=> String
1333
+ # resp.feature.project #=> String
1334
+ # resp.feature.status #=> String, one of "AVAILABLE", "UPDATING"
1335
+ # resp.feature.tags #=> Hash
1336
+ # resp.feature.tags["TagKey"] #=> String
1337
+ # resp.feature.value_type #=> String, one of "STRING", "LONG", "DOUBLE", "BOOLEAN"
1338
+ # resp.feature.variations #=> Array
1339
+ # resp.feature.variations[0].name #=> String
1340
+ # resp.feature.variations[0].value.bool_value #=> Boolean
1341
+ # resp.feature.variations[0].value.double_value #=> Float
1342
+ # resp.feature.variations[0].value.long_value #=> Integer
1343
+ # resp.feature.variations[0].value.string_value #=> String
1344
+ #
1345
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/GetFeature AWS API Documentation
1346
+ #
1347
+ # @overload get_feature(params = {})
1348
+ # @param [Hash] params ({})
1349
+ def get_feature(params = {}, options = {})
1350
+ req = build_request(:get_feature, params)
1351
+ req.send_request(options)
1352
+ end
1353
+
1354
+ # Returns the details about one launch. You must already know the launch
1355
+ # name. To retrieve a list of launches in your account, use
1356
+ # [ListLaunches][1].
1357
+ #
1358
+ #
1359
+ #
1360
+ # [1]: https://docs.aws.amazon.com/cloudwatchevidently/latest/APIReference/API_ListLaunches.html
1361
+ #
1362
+ # @option params [required, String] :launch
1363
+ # The name of the launch that you want to see the details of.
1364
+ #
1365
+ # @option params [required, String] :project
1366
+ # The name or ARN of the project that contains the launch.
1367
+ #
1368
+ # @return [Types::GetLaunchResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1369
+ #
1370
+ # * {Types::GetLaunchResponse#launch #launch} => Types::Launch
1371
+ #
1372
+ # @example Request syntax with placeholder values
1373
+ #
1374
+ # resp = client.get_launch({
1375
+ # launch: "LaunchName", # required
1376
+ # project: "ProjectRef", # required
1377
+ # })
1378
+ #
1379
+ # @example Response structure
1380
+ #
1381
+ # resp.launch.arn #=> String
1382
+ # resp.launch.created_time #=> Time
1383
+ # resp.launch.description #=> String
1384
+ # resp.launch.execution.ended_time #=> Time
1385
+ # resp.launch.execution.started_time #=> Time
1386
+ # resp.launch.groups #=> Array
1387
+ # resp.launch.groups[0].description #=> String
1388
+ # resp.launch.groups[0].feature_variations #=> Hash
1389
+ # resp.launch.groups[0].feature_variations["FeatureName"] #=> String
1390
+ # resp.launch.groups[0].name #=> String
1391
+ # resp.launch.last_updated_time #=> Time
1392
+ # resp.launch.metric_monitors #=> Array
1393
+ # resp.launch.metric_monitors[0].metric_definition.entity_id_key #=> String
1394
+ # resp.launch.metric_monitors[0].metric_definition.event_pattern #=> String
1395
+ # resp.launch.metric_monitors[0].metric_definition.name #=> String
1396
+ # resp.launch.metric_monitors[0].metric_definition.unit_label #=> String
1397
+ # resp.launch.metric_monitors[0].metric_definition.value_key #=> String
1398
+ # resp.launch.name #=> String
1399
+ # resp.launch.project #=> String
1400
+ # resp.launch.randomization_salt #=> String
1401
+ # resp.launch.scheduled_splits_definition.steps #=> Array
1402
+ # resp.launch.scheduled_splits_definition.steps[0].group_weights #=> Hash
1403
+ # resp.launch.scheduled_splits_definition.steps[0].group_weights["GroupName"] #=> Integer
1404
+ # resp.launch.scheduled_splits_definition.steps[0].start_time #=> Time
1405
+ # resp.launch.status #=> String, one of "CREATED", "UPDATING", "RUNNING", "COMPLETED", "CANCELLED"
1406
+ # resp.launch.status_reason #=> String
1407
+ # resp.launch.tags #=> Hash
1408
+ # resp.launch.tags["TagKey"] #=> String
1409
+ # resp.launch.type #=> String, one of "aws.evidently.splits"
1410
+ #
1411
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/GetLaunch AWS API Documentation
1412
+ #
1413
+ # @overload get_launch(params = {})
1414
+ # @param [Hash] params ({})
1415
+ def get_launch(params = {}, options = {})
1416
+ req = build_request(:get_launch, params)
1417
+ req.send_request(options)
1418
+ end
1419
+
1420
+ # Returns the details about one launch. You must already know the
1421
+ # project name. To retrieve a list of projects in your account, use
1422
+ # [ListProjects][1].
1423
+ #
1424
+ #
1425
+ #
1426
+ # [1]: https://docs.aws.amazon.com/cloudwatchevidently/latest/APIReference/API_ListProjects.html
1427
+ #
1428
+ # @option params [required, String] :project
1429
+ # The name or ARN of the project that you want to see the details of.
1430
+ #
1431
+ # @return [Types::GetProjectResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1432
+ #
1433
+ # * {Types::GetProjectResponse#project #project} => Types::Project
1434
+ #
1435
+ # @example Request syntax with placeholder values
1436
+ #
1437
+ # resp = client.get_project({
1438
+ # project: "ProjectRef", # required
1439
+ # })
1440
+ #
1441
+ # @example Response structure
1442
+ #
1443
+ # resp.project.active_experiment_count #=> Integer
1444
+ # resp.project.active_launch_count #=> Integer
1445
+ # resp.project.arn #=> String
1446
+ # resp.project.created_time #=> Time
1447
+ # resp.project.data_delivery.cloud_watch_logs.log_group #=> String
1448
+ # resp.project.data_delivery.s3_destination.bucket #=> String
1449
+ # resp.project.data_delivery.s3_destination.prefix #=> String
1450
+ # resp.project.description #=> String
1451
+ # resp.project.experiment_count #=> Integer
1452
+ # resp.project.feature_count #=> Integer
1453
+ # resp.project.last_updated_time #=> Time
1454
+ # resp.project.launch_count #=> Integer
1455
+ # resp.project.name #=> String
1456
+ # resp.project.status #=> String, one of "AVAILABLE", "UPDATING"
1457
+ # resp.project.tags #=> Hash
1458
+ # resp.project.tags["TagKey"] #=> String
1459
+ #
1460
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/GetProject AWS API Documentation
1461
+ #
1462
+ # @overload get_project(params = {})
1463
+ # @param [Hash] params ({})
1464
+ def get_project(params = {}, options = {})
1465
+ req = build_request(:get_project, params)
1466
+ req.send_request(options)
1467
+ end
1468
+
1469
+ # Returns configuration details about all the experiments in the
1470
+ # specified project.
1471
+ #
1472
+ # @option params [Integer] :max_results
1473
+ # The maximum number of results to include in the response.
1474
+ #
1475
+ # @option params [String] :next_token
1476
+ # The token to use when requesting the next set of results. You received
1477
+ # this token from a previous `ListExperiments` operation.
1478
+ #
1479
+ # @option params [required, String] :project
1480
+ # The name or ARN of the project to return the experiment list from.
1481
+ #
1482
+ # @return [Types::ListExperimentsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1483
+ #
1484
+ # * {Types::ListExperimentsResponse#experiments #experiments} => Array&lt;Types::Experiment&gt;
1485
+ # * {Types::ListExperimentsResponse#next_token #next_token} => String
1486
+ #
1487
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1488
+ #
1489
+ # @example Request syntax with placeholder values
1490
+ #
1491
+ # resp = client.list_experiments({
1492
+ # max_results: 1,
1493
+ # next_token: "NextToken",
1494
+ # project: "ProjectRef", # required
1495
+ # })
1496
+ #
1497
+ # @example Response structure
1498
+ #
1499
+ # resp.experiments #=> Array
1500
+ # resp.experiments[0].arn #=> String
1501
+ # resp.experiments[0].created_time #=> Time
1502
+ # resp.experiments[0].description #=> String
1503
+ # resp.experiments[0].execution.ended_time #=> Time
1504
+ # resp.experiments[0].execution.started_time #=> Time
1505
+ # resp.experiments[0].last_updated_time #=> Time
1506
+ # resp.experiments[0].metric_goals #=> Array
1507
+ # resp.experiments[0].metric_goals[0].desired_change #=> String, one of "INCREASE", "DECREASE"
1508
+ # resp.experiments[0].metric_goals[0].metric_definition.entity_id_key #=> String
1509
+ # resp.experiments[0].metric_goals[0].metric_definition.event_pattern #=> String
1510
+ # resp.experiments[0].metric_goals[0].metric_definition.name #=> String
1511
+ # resp.experiments[0].metric_goals[0].metric_definition.unit_label #=> String
1512
+ # resp.experiments[0].metric_goals[0].metric_definition.value_key #=> String
1513
+ # resp.experiments[0].name #=> String
1514
+ # resp.experiments[0].online_ab_definition.control_treatment_name #=> String
1515
+ # resp.experiments[0].online_ab_definition.treatment_weights #=> Hash
1516
+ # resp.experiments[0].online_ab_definition.treatment_weights["TreatmentName"] #=> Integer
1517
+ # resp.experiments[0].project #=> String
1518
+ # resp.experiments[0].randomization_salt #=> String
1519
+ # resp.experiments[0].sampling_rate #=> Integer
1520
+ # resp.experiments[0].schedule.analysis_complete_time #=> Time
1521
+ # resp.experiments[0].status #=> String, one of "CREATED", "UPDATING", "RUNNING", "COMPLETED", "CANCELLED"
1522
+ # resp.experiments[0].status_reason #=> String
1523
+ # resp.experiments[0].tags #=> Hash
1524
+ # resp.experiments[0].tags["TagKey"] #=> String
1525
+ # resp.experiments[0].treatments #=> Array
1526
+ # resp.experiments[0].treatments[0].description #=> String
1527
+ # resp.experiments[0].treatments[0].feature_variations #=> Hash
1528
+ # resp.experiments[0].treatments[0].feature_variations["FeatureName"] #=> String
1529
+ # resp.experiments[0].treatments[0].name #=> String
1530
+ # resp.experiments[0].type #=> String, one of "aws.evidently.onlineab"
1531
+ # resp.next_token #=> String
1532
+ #
1533
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/ListExperiments AWS API Documentation
1534
+ #
1535
+ # @overload list_experiments(params = {})
1536
+ # @param [Hash] params ({})
1537
+ def list_experiments(params = {}, options = {})
1538
+ req = build_request(:list_experiments, params)
1539
+ req.send_request(options)
1540
+ end
1541
+
1542
+ # Returns configuration details about all the features in the specified
1543
+ # project.
1544
+ #
1545
+ # @option params [Integer] :max_results
1546
+ # The maximum number of results to include in the response.
1547
+ #
1548
+ # @option params [String] :next_token
1549
+ # The token to use when requesting the next set of results. You received
1550
+ # this token from a previous `ListFeatures` operation.
1551
+ #
1552
+ # @option params [required, String] :project
1553
+ # The name or ARN of the project to return the feature list from.
1554
+ #
1555
+ # @return [Types::ListFeaturesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1556
+ #
1557
+ # * {Types::ListFeaturesResponse#features #features} => Array&lt;Types::FeatureSummary&gt;
1558
+ # * {Types::ListFeaturesResponse#next_token #next_token} => String
1559
+ #
1560
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1561
+ #
1562
+ # @example Request syntax with placeholder values
1563
+ #
1564
+ # resp = client.list_features({
1565
+ # max_results: 1,
1566
+ # next_token: "NextToken",
1567
+ # project: "ProjectRef", # required
1568
+ # })
1569
+ #
1570
+ # @example Response structure
1571
+ #
1572
+ # resp.features #=> Array
1573
+ # resp.features[0].arn #=> String
1574
+ # resp.features[0].created_time #=> Time
1575
+ # resp.features[0].default_variation #=> String
1576
+ # resp.features[0].evaluation_rules #=> Array
1577
+ # resp.features[0].evaluation_rules[0].name #=> String
1578
+ # resp.features[0].evaluation_rules[0].type #=> String
1579
+ # resp.features[0].evaluation_strategy #=> String, one of "ALL_RULES", "DEFAULT_VARIATION"
1580
+ # resp.features[0].last_updated_time #=> Time
1581
+ # resp.features[0].name #=> String
1582
+ # resp.features[0].project #=> String
1583
+ # resp.features[0].status #=> String, one of "AVAILABLE", "UPDATING"
1584
+ # resp.features[0].tags #=> Hash
1585
+ # resp.features[0].tags["TagKey"] #=> String
1586
+ # resp.next_token #=> String
1587
+ #
1588
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/ListFeatures AWS API Documentation
1589
+ #
1590
+ # @overload list_features(params = {})
1591
+ # @param [Hash] params ({})
1592
+ def list_features(params = {}, options = {})
1593
+ req = build_request(:list_features, params)
1594
+ req.send_request(options)
1595
+ end
1596
+
1597
+ # Returns configuration details about all the launches in the specified
1598
+ # project.
1599
+ #
1600
+ # @option params [Integer] :max_results
1601
+ # The maximum number of results to include in the response.
1602
+ #
1603
+ # @option params [String] :next_token
1604
+ # The token to use when requesting the next set of results. You received
1605
+ # this token from a previous `ListLaunches` operation.
1606
+ #
1607
+ # @option params [required, String] :project
1608
+ # The name or ARN of the project to return the launch list from.
1609
+ #
1610
+ # @return [Types::ListLaunchesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1611
+ #
1612
+ # * {Types::ListLaunchesResponse#launches #launches} => Array&lt;Types::Launch&gt;
1613
+ # * {Types::ListLaunchesResponse#next_token #next_token} => String
1614
+ #
1615
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1616
+ #
1617
+ # @example Request syntax with placeholder values
1618
+ #
1619
+ # resp = client.list_launches({
1620
+ # max_results: 1,
1621
+ # next_token: "NextToken",
1622
+ # project: "ProjectRef", # required
1623
+ # })
1624
+ #
1625
+ # @example Response structure
1626
+ #
1627
+ # resp.launches #=> Array
1628
+ # resp.launches[0].arn #=> String
1629
+ # resp.launches[0].created_time #=> Time
1630
+ # resp.launches[0].description #=> String
1631
+ # resp.launches[0].execution.ended_time #=> Time
1632
+ # resp.launches[0].execution.started_time #=> Time
1633
+ # resp.launches[0].groups #=> Array
1634
+ # resp.launches[0].groups[0].description #=> String
1635
+ # resp.launches[0].groups[0].feature_variations #=> Hash
1636
+ # resp.launches[0].groups[0].feature_variations["FeatureName"] #=> String
1637
+ # resp.launches[0].groups[0].name #=> String
1638
+ # resp.launches[0].last_updated_time #=> Time
1639
+ # resp.launches[0].metric_monitors #=> Array
1640
+ # resp.launches[0].metric_monitors[0].metric_definition.entity_id_key #=> String
1641
+ # resp.launches[0].metric_monitors[0].metric_definition.event_pattern #=> String
1642
+ # resp.launches[0].metric_monitors[0].metric_definition.name #=> String
1643
+ # resp.launches[0].metric_monitors[0].metric_definition.unit_label #=> String
1644
+ # resp.launches[0].metric_monitors[0].metric_definition.value_key #=> String
1645
+ # resp.launches[0].name #=> String
1646
+ # resp.launches[0].project #=> String
1647
+ # resp.launches[0].randomization_salt #=> String
1648
+ # resp.launches[0].scheduled_splits_definition.steps #=> Array
1649
+ # resp.launches[0].scheduled_splits_definition.steps[0].group_weights #=> Hash
1650
+ # resp.launches[0].scheduled_splits_definition.steps[0].group_weights["GroupName"] #=> Integer
1651
+ # resp.launches[0].scheduled_splits_definition.steps[0].start_time #=> Time
1652
+ # resp.launches[0].status #=> String, one of "CREATED", "UPDATING", "RUNNING", "COMPLETED", "CANCELLED"
1653
+ # resp.launches[0].status_reason #=> String
1654
+ # resp.launches[0].tags #=> Hash
1655
+ # resp.launches[0].tags["TagKey"] #=> String
1656
+ # resp.launches[0].type #=> String, one of "aws.evidently.splits"
1657
+ # resp.next_token #=> String
1658
+ #
1659
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/ListLaunches AWS API Documentation
1660
+ #
1661
+ # @overload list_launches(params = {})
1662
+ # @param [Hash] params ({})
1663
+ def list_launches(params = {}, options = {})
1664
+ req = build_request(:list_launches, params)
1665
+ req.send_request(options)
1666
+ end
1667
+
1668
+ # Returns configuration details about all the projects in the current
1669
+ # Region in your account.
1670
+ #
1671
+ # @option params [Integer] :max_results
1672
+ # The maximum number of results to include in the response.
1673
+ #
1674
+ # @option params [String] :next_token
1675
+ # The token to use when requesting the next set of results. You received
1676
+ # this token from a previous `ListProjects` operation.
1677
+ #
1678
+ # @return [Types::ListProjectsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1679
+ #
1680
+ # * {Types::ListProjectsResponse#next_token #next_token} => String
1681
+ # * {Types::ListProjectsResponse#projects #projects} => Array&lt;Types::ProjectSummary&gt;
1682
+ #
1683
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1684
+ #
1685
+ # @example Request syntax with placeholder values
1686
+ #
1687
+ # resp = client.list_projects({
1688
+ # max_results: 1,
1689
+ # next_token: "NextToken",
1690
+ # })
1691
+ #
1692
+ # @example Response structure
1693
+ #
1694
+ # resp.next_token #=> String
1695
+ # resp.projects #=> Array
1696
+ # resp.projects[0].active_experiment_count #=> Integer
1697
+ # resp.projects[0].active_launch_count #=> Integer
1698
+ # resp.projects[0].arn #=> String
1699
+ # resp.projects[0].created_time #=> Time
1700
+ # resp.projects[0].description #=> String
1701
+ # resp.projects[0].experiment_count #=> Integer
1702
+ # resp.projects[0].feature_count #=> Integer
1703
+ # resp.projects[0].last_updated_time #=> Time
1704
+ # resp.projects[0].launch_count #=> Integer
1705
+ # resp.projects[0].name #=> String
1706
+ # resp.projects[0].status #=> String, one of "AVAILABLE", "UPDATING"
1707
+ # resp.projects[0].tags #=> Hash
1708
+ # resp.projects[0].tags["TagKey"] #=> String
1709
+ #
1710
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/ListProjects AWS API Documentation
1711
+ #
1712
+ # @overload list_projects(params = {})
1713
+ # @param [Hash] params ({})
1714
+ def list_projects(params = {}, options = {})
1715
+ req = build_request(:list_projects, params)
1716
+ req.send_request(options)
1717
+ end
1718
+
1719
+ # Displays the tags associated with an Evidently resource.
1720
+ #
1721
+ # @option params [required, String] :resource_arn
1722
+ # The ARN of the resource that you want to see the tags of.
1723
+ #
1724
+ # @return [Types::ListTagsForResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1725
+ #
1726
+ # * {Types::ListTagsForResourceResponse#tags #tags} => Hash&lt;String,String&gt;
1727
+ #
1728
+ # @example Request syntax with placeholder values
1729
+ #
1730
+ # resp = client.list_tags_for_resource({
1731
+ # resource_arn: "Arn", # required
1732
+ # })
1733
+ #
1734
+ # @example Response structure
1735
+ #
1736
+ # resp.tags #=> Hash
1737
+ # resp.tags["TagKey"] #=> String
1738
+ #
1739
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/ListTagsForResource AWS API Documentation
1740
+ #
1741
+ # @overload list_tags_for_resource(params = {})
1742
+ # @param [Hash] params ({})
1743
+ def list_tags_for_resource(params = {}, options = {})
1744
+ req = build_request(:list_tags_for_resource, params)
1745
+ req.send_request(options)
1746
+ end
1747
+
1748
+ # Sends performance events to Evidently. These events can be used to
1749
+ # evaluate a launch or an experiment.
1750
+ #
1751
+ # @option params [required, Array<Types::Event>] :events
1752
+ # An array of event structures that contain the performance data that is
1753
+ # being sent to Evidently.
1754
+ #
1755
+ # @option params [required, String] :project
1756
+ # The name or ARN of the project to write the events to.
1757
+ #
1758
+ # @return [Types::PutProjectEventsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1759
+ #
1760
+ # * {Types::PutProjectEventsResponse#event_results #event_results} => Array&lt;Types::PutProjectEventsResultEntry&gt;
1761
+ # * {Types::PutProjectEventsResponse#failed_event_count #failed_event_count} => Integer
1762
+ #
1763
+ # @example Request syntax with placeholder values
1764
+ #
1765
+ # resp = client.put_project_events({
1766
+ # events: [ # required
1767
+ # {
1768
+ # data: "JsonValue", # required
1769
+ # timestamp: Time.now, # required
1770
+ # type: "aws.evidently.evaluation", # required, accepts aws.evidently.evaluation, aws.evidently.custom
1771
+ # },
1772
+ # ],
1773
+ # project: "ProjectRef", # required
1774
+ # })
1775
+ #
1776
+ # @example Response structure
1777
+ #
1778
+ # resp.event_results #=> Array
1779
+ # resp.event_results[0].error_code #=> String
1780
+ # resp.event_results[0].error_message #=> String
1781
+ # resp.event_results[0].event_id #=> String
1782
+ # resp.failed_event_count #=> Integer
1783
+ #
1784
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/PutProjectEvents AWS API Documentation
1785
+ #
1786
+ # @overload put_project_events(params = {})
1787
+ # @param [Hash] params ({})
1788
+ def put_project_events(params = {}, options = {})
1789
+ req = build_request(:put_project_events, params)
1790
+ req.send_request(options)
1791
+ end
1792
+
1793
+ # Starts an existing experiment. To create an experiment, use
1794
+ # [CreateExperiment][1].
1795
+ #
1796
+ #
1797
+ #
1798
+ # [1]: https://docs.aws.amazon.com/cloudwatchevidently/latest/APIReference/API_CreateExperiment.html
1799
+ #
1800
+ # @option params [required, Time,DateTime,Date,Integer,String] :analysis_complete_time
1801
+ # The date and time to end the experiment.
1802
+ #
1803
+ # @option params [required, String] :experiment
1804
+ # The name of the experiment to start.
1805
+ #
1806
+ # @option params [required, String] :project
1807
+ # The name or ARN of the project that contains the experiment to start.
1808
+ #
1809
+ # @return [Types::StartExperimentResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1810
+ #
1811
+ # * {Types::StartExperimentResponse#started_time #started_time} => Time
1812
+ #
1813
+ # @example Request syntax with placeholder values
1814
+ #
1815
+ # resp = client.start_experiment({
1816
+ # analysis_complete_time: Time.now, # required
1817
+ # experiment: "ExperimentName", # required
1818
+ # project: "ProjectRef", # required
1819
+ # })
1820
+ #
1821
+ # @example Response structure
1822
+ #
1823
+ # resp.started_time #=> Time
1824
+ #
1825
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/StartExperiment AWS API Documentation
1826
+ #
1827
+ # @overload start_experiment(params = {})
1828
+ # @param [Hash] params ({})
1829
+ def start_experiment(params = {}, options = {})
1830
+ req = build_request(:start_experiment, params)
1831
+ req.send_request(options)
1832
+ end
1833
+
1834
+ # Starts an existing launch. To create a launch, use [CreateLaunch][1].
1835
+ #
1836
+ #
1837
+ #
1838
+ # [1]: https://docs.aws.amazon.com/cloudwatchevidently/latest/APIReference/API_CreateLaunch.html
1839
+ #
1840
+ # @option params [required, String] :launch
1841
+ # The name of the launch to start.
1842
+ #
1843
+ # @option params [required, String] :project
1844
+ # The name or ARN of the project that contains the launch to start.
1845
+ #
1846
+ # @return [Types::StartLaunchResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1847
+ #
1848
+ # * {Types::StartLaunchResponse#launch #launch} => Types::Launch
1849
+ #
1850
+ # @example Request syntax with placeholder values
1851
+ #
1852
+ # resp = client.start_launch({
1853
+ # launch: "LaunchName", # required
1854
+ # project: "ProjectRef", # required
1855
+ # })
1856
+ #
1857
+ # @example Response structure
1858
+ #
1859
+ # resp.launch.arn #=> String
1860
+ # resp.launch.created_time #=> Time
1861
+ # resp.launch.description #=> String
1862
+ # resp.launch.execution.ended_time #=> Time
1863
+ # resp.launch.execution.started_time #=> Time
1864
+ # resp.launch.groups #=> Array
1865
+ # resp.launch.groups[0].description #=> String
1866
+ # resp.launch.groups[0].feature_variations #=> Hash
1867
+ # resp.launch.groups[0].feature_variations["FeatureName"] #=> String
1868
+ # resp.launch.groups[0].name #=> String
1869
+ # resp.launch.last_updated_time #=> Time
1870
+ # resp.launch.metric_monitors #=> Array
1871
+ # resp.launch.metric_monitors[0].metric_definition.entity_id_key #=> String
1872
+ # resp.launch.metric_monitors[0].metric_definition.event_pattern #=> String
1873
+ # resp.launch.metric_monitors[0].metric_definition.name #=> String
1874
+ # resp.launch.metric_monitors[0].metric_definition.unit_label #=> String
1875
+ # resp.launch.metric_monitors[0].metric_definition.value_key #=> String
1876
+ # resp.launch.name #=> String
1877
+ # resp.launch.project #=> String
1878
+ # resp.launch.randomization_salt #=> String
1879
+ # resp.launch.scheduled_splits_definition.steps #=> Array
1880
+ # resp.launch.scheduled_splits_definition.steps[0].group_weights #=> Hash
1881
+ # resp.launch.scheduled_splits_definition.steps[0].group_weights["GroupName"] #=> Integer
1882
+ # resp.launch.scheduled_splits_definition.steps[0].start_time #=> Time
1883
+ # resp.launch.status #=> String, one of "CREATED", "UPDATING", "RUNNING", "COMPLETED", "CANCELLED"
1884
+ # resp.launch.status_reason #=> String
1885
+ # resp.launch.tags #=> Hash
1886
+ # resp.launch.tags["TagKey"] #=> String
1887
+ # resp.launch.type #=> String, one of "aws.evidently.splits"
1888
+ #
1889
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/StartLaunch AWS API Documentation
1890
+ #
1891
+ # @overload start_launch(params = {})
1892
+ # @param [Hash] params ({})
1893
+ def start_launch(params = {}, options = {})
1894
+ req = build_request(:start_launch, params)
1895
+ req.send_request(options)
1896
+ end
1897
+
1898
+ # Stops an experiment that is currently running. If you stop an
1899
+ # experiment, you can't resume it or restart it.
1900
+ #
1901
+ # @option params [String] :desired_state
1902
+ # Specify whether the experiment is to be considered `COMPLETED` or
1903
+ # `CANCELLED` after it stops.
1904
+ #
1905
+ # @option params [required, String] :experiment
1906
+ # The name of the experiment to stop.
1907
+ #
1908
+ # @option params [required, String] :project
1909
+ # The name or ARN of the project that contains the experiment to stop.
1910
+ #
1911
+ # @option params [String] :reason
1912
+ # A string that describes why you are stopping the experiment.
1913
+ #
1914
+ # @return [Types::StopExperimentResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1915
+ #
1916
+ # * {Types::StopExperimentResponse#ended_time #ended_time} => Time
1917
+ #
1918
+ # @example Request syntax with placeholder values
1919
+ #
1920
+ # resp = client.stop_experiment({
1921
+ # desired_state: "COMPLETED", # accepts COMPLETED, CANCELLED
1922
+ # experiment: "ExperimentName", # required
1923
+ # project: "ProjectRef", # required
1924
+ # reason: "Description",
1925
+ # })
1926
+ #
1927
+ # @example Response structure
1928
+ #
1929
+ # resp.ended_time #=> Time
1930
+ #
1931
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/StopExperiment AWS API Documentation
1932
+ #
1933
+ # @overload stop_experiment(params = {})
1934
+ # @param [Hash] params ({})
1935
+ def stop_experiment(params = {}, options = {})
1936
+ req = build_request(:stop_experiment, params)
1937
+ req.send_request(options)
1938
+ end
1939
+
1940
+ # Stops a launch that is currently running. After you stop a launch, you
1941
+ # will not be able to resume it or restart it. Also, it will not be
1942
+ # evaluated as a rule for traffic allocation, and the traffic that was
1943
+ # allocated to the launch will instead be available to the feature's
1944
+ # experiment, if there is one. Otherwise, all traffic will be served the
1945
+ # default variation after the launch is stopped.
1946
+ #
1947
+ # @option params [String] :desired_state
1948
+ # Specify whether to consider the launch as `COMPLETED` or `CANCELLED`
1949
+ # after it stops.
1950
+ #
1951
+ # @option params [required, String] :launch
1952
+ # The name of the launch to stop.
1953
+ #
1954
+ # @option params [required, String] :project
1955
+ # The name or ARN of the project that contains the launch that you want
1956
+ # to stop.
1957
+ #
1958
+ # @option params [String] :reason
1959
+ # A string that describes why you are stopping the launch.
1960
+ #
1961
+ # @return [Types::StopLaunchResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1962
+ #
1963
+ # * {Types::StopLaunchResponse#ended_time #ended_time} => Time
1964
+ #
1965
+ # @example Request syntax with placeholder values
1966
+ #
1967
+ # resp = client.stop_launch({
1968
+ # desired_state: "COMPLETED", # accepts COMPLETED, CANCELLED
1969
+ # launch: "LaunchName", # required
1970
+ # project: "ProjectRef", # required
1971
+ # reason: "Description",
1972
+ # })
1973
+ #
1974
+ # @example Response structure
1975
+ #
1976
+ # resp.ended_time #=> Time
1977
+ #
1978
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/StopLaunch AWS API Documentation
1979
+ #
1980
+ # @overload stop_launch(params = {})
1981
+ # @param [Hash] params ({})
1982
+ def stop_launch(params = {}, options = {})
1983
+ req = build_request(:stop_launch, params)
1984
+ req.send_request(options)
1985
+ end
1986
+
1987
+ # Assigns one or more tags (key-value pairs) to the specified CloudWatch
1988
+ # Evidently resource. Projects, features, launches, and experiments can
1989
+ # be tagged.
1990
+ #
1991
+ # Tags can help you organize and categorize your resources. You can also
1992
+ # use them to scope user permissions by granting a user permission to
1993
+ # access or change only resources with certain tag values.
1994
+ #
1995
+ # Tags don't have any semantic meaning to Amazon Web Services and are
1996
+ # interpreted strictly as strings of characters.
1997
+ #
1998
+ # You can use the `TagResource` action with a resource that already has
1999
+ # tags. If you specify a new tag key for the resource, this tag is
2000
+ # appended to the list of tags associated with the alarm. If you specify
2001
+ # a tag key that is already associated with the resource, the new tag
2002
+ # value that you specify replaces the previous value for that tag.
2003
+ #
2004
+ # You can associate as many as 50 tags with a resource.
2005
+ #
2006
+ # For more information, see [Tagging Amazon Web Services resources][1].
2007
+ #
2008
+ #
2009
+ #
2010
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
2011
+ #
2012
+ # @option params [required, String] :resource_arn
2013
+ # The ARN of the CloudWatch Evidently resource that you're adding tags
2014
+ # to.
2015
+ #
2016
+ # @option params [required, Hash<String,String>] :tags
2017
+ # The list of key-value pairs to associate with the resource.
2018
+ #
2019
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2020
+ #
2021
+ # @example Request syntax with placeholder values
2022
+ #
2023
+ # resp = client.tag_resource({
2024
+ # resource_arn: "Arn", # required
2025
+ # tags: { # required
2026
+ # "TagKey" => "TagValue",
2027
+ # },
2028
+ # })
2029
+ #
2030
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/TagResource AWS API Documentation
2031
+ #
2032
+ # @overload tag_resource(params = {})
2033
+ # @param [Hash] params ({})
2034
+ def tag_resource(params = {}, options = {})
2035
+ req = build_request(:tag_resource, params)
2036
+ req.send_request(options)
2037
+ end
2038
+
2039
+ # Removes one or more tags from the specified resource.
2040
+ #
2041
+ # @option params [required, String] :resource_arn
2042
+ # The ARN of the CloudWatch Evidently resource that you're removing
2043
+ # tags from.
2044
+ #
2045
+ # @option params [required, Array<String>] :tag_keys
2046
+ # The list of tag keys to remove from the resource.
2047
+ #
2048
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2049
+ #
2050
+ # @example Request syntax with placeholder values
2051
+ #
2052
+ # resp = client.untag_resource({
2053
+ # resource_arn: "Arn", # required
2054
+ # tag_keys: ["TagKey"], # required
2055
+ # })
2056
+ #
2057
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/UntagResource AWS API Documentation
2058
+ #
2059
+ # @overload untag_resource(params = {})
2060
+ # @param [Hash] params ({})
2061
+ def untag_resource(params = {}, options = {})
2062
+ req = build_request(:untag_resource, params)
2063
+ req.send_request(options)
2064
+ end
2065
+
2066
+ # Updates an Evidently experiment.
2067
+ #
2068
+ # Don't use this operation to update an experiment's tag. Instead, use
2069
+ # [TagResource][1].
2070
+ #
2071
+ #
2072
+ #
2073
+ # [1]: https://docs.aws.amazon.com/cloudwatchevidently/latest/APIReference/API_TagResource.html
2074
+ #
2075
+ # @option params [String] :description
2076
+ # An optional description of the experiment.
2077
+ #
2078
+ # @option params [required, String] :experiment
2079
+ # The name of the experiment to update.
2080
+ #
2081
+ # @option params [Array<Types::MetricGoalConfig>] :metric_goals
2082
+ # An array of structures that defines the metrics used for the
2083
+ # experiment, and whether a higher or lower value for each metric is the
2084
+ # goal.
2085
+ #
2086
+ # @option params [Types::OnlineAbConfig] :online_ab_config
2087
+ # A structure that contains the configuration of which variation o use
2088
+ # as the "control" version. The "control" version is used for
2089
+ # comparison with other variations. This structure also specifies how
2090
+ # much experiment traffic is allocated to each variation.
2091
+ #
2092
+ # @option params [required, String] :project
2093
+ # The name or ARN of the project that contains the experiment that you
2094
+ # want to update.
2095
+ #
2096
+ # @option params [String] :randomization_salt
2097
+ # When Evidently assigns a particular user session to an experiment, it
2098
+ # must use a randomization ID to determine which variation the user
2099
+ # session is served. This randomization ID is a combination of the
2100
+ # entity ID and `randomizationSalt`. If you omit `randomizationSalt`,
2101
+ # Evidently uses the experiment name as the `randomizationSalt`.
2102
+ #
2103
+ # @option params [Integer] :sampling_rate
2104
+ # The portion of the available audience that you want to allocate to
2105
+ # this experiment, in thousandths of a percent. The available audience
2106
+ # is the total audience minus the audience that you have allocated to
2107
+ # overrides or current launches of this feature.
2108
+ #
2109
+ # This is represented in thousandths of a percent. For example, specify
2110
+ # 20,000 to allocate 20% of the available audience.
2111
+ #
2112
+ # @option params [Array<Types::TreatmentConfig>] :treatments
2113
+ # An array of structures that define the variations being tested in the
2114
+ # experiment.
2115
+ #
2116
+ # @return [Types::UpdateExperimentResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2117
+ #
2118
+ # * {Types::UpdateExperimentResponse#experiment #experiment} => Types::Experiment
2119
+ #
2120
+ # @example Request syntax with placeholder values
2121
+ #
2122
+ # resp = client.update_experiment({
2123
+ # description: "Description",
2124
+ # experiment: "ExperimentName", # required
2125
+ # metric_goals: [
2126
+ # {
2127
+ # desired_change: "INCREASE", # accepts INCREASE, DECREASE
2128
+ # metric_definition: { # required
2129
+ # entity_id_key: "JsonPath",
2130
+ # event_pattern: "MetricDefinitionConfigEventPatternString",
2131
+ # name: "CwDimensionSafeName",
2132
+ # unit_label: "MetricUnitLabel",
2133
+ # value_key: "JsonPath",
2134
+ # },
2135
+ # },
2136
+ # ],
2137
+ # online_ab_config: {
2138
+ # control_treatment_name: "TreatmentName",
2139
+ # treatment_weights: {
2140
+ # "TreatmentName" => 1,
2141
+ # },
2142
+ # },
2143
+ # project: "ProjectRef", # required
2144
+ # randomization_salt: "RandomizationSalt",
2145
+ # sampling_rate: 1,
2146
+ # treatments: [
2147
+ # {
2148
+ # description: "Description",
2149
+ # feature: "FeatureName", # required
2150
+ # name: "TreatmentName", # required
2151
+ # variation: "VariationName", # required
2152
+ # },
2153
+ # ],
2154
+ # })
2155
+ #
2156
+ # @example Response structure
2157
+ #
2158
+ # resp.experiment.arn #=> String
2159
+ # resp.experiment.created_time #=> Time
2160
+ # resp.experiment.description #=> String
2161
+ # resp.experiment.execution.ended_time #=> Time
2162
+ # resp.experiment.execution.started_time #=> Time
2163
+ # resp.experiment.last_updated_time #=> Time
2164
+ # resp.experiment.metric_goals #=> Array
2165
+ # resp.experiment.metric_goals[0].desired_change #=> String, one of "INCREASE", "DECREASE"
2166
+ # resp.experiment.metric_goals[0].metric_definition.entity_id_key #=> String
2167
+ # resp.experiment.metric_goals[0].metric_definition.event_pattern #=> String
2168
+ # resp.experiment.metric_goals[0].metric_definition.name #=> String
2169
+ # resp.experiment.metric_goals[0].metric_definition.unit_label #=> String
2170
+ # resp.experiment.metric_goals[0].metric_definition.value_key #=> String
2171
+ # resp.experiment.name #=> String
2172
+ # resp.experiment.online_ab_definition.control_treatment_name #=> String
2173
+ # resp.experiment.online_ab_definition.treatment_weights #=> Hash
2174
+ # resp.experiment.online_ab_definition.treatment_weights["TreatmentName"] #=> Integer
2175
+ # resp.experiment.project #=> String
2176
+ # resp.experiment.randomization_salt #=> String
2177
+ # resp.experiment.sampling_rate #=> Integer
2178
+ # resp.experiment.schedule.analysis_complete_time #=> Time
2179
+ # resp.experiment.status #=> String, one of "CREATED", "UPDATING", "RUNNING", "COMPLETED", "CANCELLED"
2180
+ # resp.experiment.status_reason #=> String
2181
+ # resp.experiment.tags #=> Hash
2182
+ # resp.experiment.tags["TagKey"] #=> String
2183
+ # resp.experiment.treatments #=> Array
2184
+ # resp.experiment.treatments[0].description #=> String
2185
+ # resp.experiment.treatments[0].feature_variations #=> Hash
2186
+ # resp.experiment.treatments[0].feature_variations["FeatureName"] #=> String
2187
+ # resp.experiment.treatments[0].name #=> String
2188
+ # resp.experiment.type #=> String, one of "aws.evidently.onlineab"
2189
+ #
2190
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/UpdateExperiment AWS API Documentation
2191
+ #
2192
+ # @overload update_experiment(params = {})
2193
+ # @param [Hash] params ({})
2194
+ def update_experiment(params = {}, options = {})
2195
+ req = build_request(:update_experiment, params)
2196
+ req.send_request(options)
2197
+ end
2198
+
2199
+ # Updates an existing feature.
2200
+ #
2201
+ # You can't use this operation to update the tags of an existing
2202
+ # feature. Instead, use [TagResource][1].
2203
+ #
2204
+ #
2205
+ #
2206
+ # [1]: https://docs.aws.amazon.com/cloudwatchevidently/latest/APIReference/API_TagResource.html
2207
+ #
2208
+ # @option params [Array<Types::VariationConfig>] :add_or_update_variations
2209
+ # To update variation configurations for this feature, or add new ones,
2210
+ # specify this structure. In this array, include any variations that you
2211
+ # want to add or update. If the array includes a variation name that
2212
+ # already exists for this feature, it is updated. If it includes a new
2213
+ # variation name, it is added as a new variation.
2214
+ #
2215
+ # @option params [String] :default_variation
2216
+ # The name of the variation to use as the default variation. The default
2217
+ # variation is served to users who are not allocated to any ongoing
2218
+ # launches or experiments of this feature.
2219
+ #
2220
+ # @option params [String] :description
2221
+ # An optional description of the feature.
2222
+ #
2223
+ # @option params [Hash<String,String>] :entity_overrides
2224
+ # Specified users that should always be served a specific variation of a
2225
+ # feature. Each user is specified by a key-value pair . For each key,
2226
+ # specify a user by entering their user ID, account ID, or some other
2227
+ # identifier. For the value, specify the name of the variation that they
2228
+ # are to be served.
2229
+ #
2230
+ # @option params [String] :evaluation_strategy
2231
+ # Specify `ALL_RULES` to activate the traffic allocation specified by
2232
+ # any ongoing launches or experiments. Specify `DEFAULT_VARIATION` to
2233
+ # serve the default variation to all users instead.
2234
+ #
2235
+ # @option params [required, String] :feature
2236
+ # The name of the feature to be updated.
2237
+ #
2238
+ # @option params [required, String] :project
2239
+ # The name or ARN of the project that contains the feature to be
2240
+ # updated.
2241
+ #
2242
+ # @option params [Array<String>] :remove_variations
2243
+ # Removes a variation from the feature. If the variation you specify
2244
+ # doesn't exist, then this makes no change and does not report an
2245
+ # error.
2246
+ #
2247
+ # This operation fails if you try to remove a variation that is part of
2248
+ # an ongoing launch or experiment.
2249
+ #
2250
+ # @return [Types::UpdateFeatureResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2251
+ #
2252
+ # * {Types::UpdateFeatureResponse#feature #feature} => Types::Feature
2253
+ #
2254
+ # @example Request syntax with placeholder values
2255
+ #
2256
+ # resp = client.update_feature({
2257
+ # add_or_update_variations: [
2258
+ # {
2259
+ # name: "VariationName", # required
2260
+ # value: { # required
2261
+ # bool_value: false,
2262
+ # double_value: 1.0,
2263
+ # long_value: 1,
2264
+ # string_value: "VariableValueStringValueString",
2265
+ # },
2266
+ # },
2267
+ # ],
2268
+ # default_variation: "VariationName",
2269
+ # description: "Description",
2270
+ # entity_overrides: {
2271
+ # "EntityId" => "VariationName",
2272
+ # },
2273
+ # evaluation_strategy: "ALL_RULES", # accepts ALL_RULES, DEFAULT_VARIATION
2274
+ # feature: "FeatureName", # required
2275
+ # project: "ProjectRef", # required
2276
+ # remove_variations: ["VariationName"],
2277
+ # })
2278
+ #
2279
+ # @example Response structure
2280
+ #
2281
+ # resp.feature.arn #=> String
2282
+ # resp.feature.created_time #=> Time
2283
+ # resp.feature.default_variation #=> String
2284
+ # resp.feature.description #=> String
2285
+ # resp.feature.entity_overrides #=> Hash
2286
+ # resp.feature.entity_overrides["EntityId"] #=> String
2287
+ # resp.feature.evaluation_rules #=> Array
2288
+ # resp.feature.evaluation_rules[0].name #=> String
2289
+ # resp.feature.evaluation_rules[0].type #=> String
2290
+ # resp.feature.evaluation_strategy #=> String, one of "ALL_RULES", "DEFAULT_VARIATION"
2291
+ # resp.feature.last_updated_time #=> Time
2292
+ # resp.feature.name #=> String
2293
+ # resp.feature.project #=> String
2294
+ # resp.feature.status #=> String, one of "AVAILABLE", "UPDATING"
2295
+ # resp.feature.tags #=> Hash
2296
+ # resp.feature.tags["TagKey"] #=> String
2297
+ # resp.feature.value_type #=> String, one of "STRING", "LONG", "DOUBLE", "BOOLEAN"
2298
+ # resp.feature.variations #=> Array
2299
+ # resp.feature.variations[0].name #=> String
2300
+ # resp.feature.variations[0].value.bool_value #=> Boolean
2301
+ # resp.feature.variations[0].value.double_value #=> Float
2302
+ # resp.feature.variations[0].value.long_value #=> Integer
2303
+ # resp.feature.variations[0].value.string_value #=> String
2304
+ #
2305
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/UpdateFeature AWS API Documentation
2306
+ #
2307
+ # @overload update_feature(params = {})
2308
+ # @param [Hash] params ({})
2309
+ def update_feature(params = {}, options = {})
2310
+ req = build_request(:update_feature, params)
2311
+ req.send_request(options)
2312
+ end
2313
+
2314
+ # Updates a launch of a given feature.
2315
+ #
2316
+ # Don't use this operation to update the tags of an existing launch.
2317
+ # Instead, use [TagResource][1].
2318
+ #
2319
+ #
2320
+ #
2321
+ # [1]: https://docs.aws.amazon.com/cloudwatchevidently/latest/APIReference/API_TagResource.html
2322
+ #
2323
+ # @option params [String] :description
2324
+ # An optional description for the launch.
2325
+ #
2326
+ # @option params [Array<Types::LaunchGroupConfig>] :groups
2327
+ # An array of structures that contains the feature and variations that
2328
+ # are to be used for the launch.
2329
+ #
2330
+ # @option params [required, String] :launch
2331
+ # The name of the launch that is to be updated.
2332
+ #
2333
+ # @option params [Array<Types::MetricMonitorConfig>] :metric_monitors
2334
+ # An array of structures that define the metrics that will be used to
2335
+ # monitor the launch performance.
2336
+ #
2337
+ # @option params [required, String] :project
2338
+ # The name or ARN of the project that contains the launch that you want
2339
+ # to update.
2340
+ #
2341
+ # @option params [String] :randomization_salt
2342
+ # When Evidently assigns a particular user session to a launch, it must
2343
+ # use a randomization ID to determine which variation the user session
2344
+ # is served. This randomization ID is a combination of the entity ID and
2345
+ # `randomizationSalt`. If you omit `randomizationSalt`, Evidently uses
2346
+ # the launch name as the `randomizationSalt`.
2347
+ #
2348
+ # @option params [Types::ScheduledSplitsLaunchConfig] :scheduled_splits_config
2349
+ # An array of structures that define the traffic allocation percentages
2350
+ # among the feature variations during each step of the launch.
2351
+ #
2352
+ # @return [Types::UpdateLaunchResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2353
+ #
2354
+ # * {Types::UpdateLaunchResponse#launch #launch} => Types::Launch
2355
+ #
2356
+ # @example Request syntax with placeholder values
2357
+ #
2358
+ # resp = client.update_launch({
2359
+ # description: "Description",
2360
+ # groups: [
2361
+ # {
2362
+ # description: "Description",
2363
+ # feature: "FeatureName", # required
2364
+ # name: "GroupName", # required
2365
+ # variation: "VariationName", # required
2366
+ # },
2367
+ # ],
2368
+ # launch: "LaunchName", # required
2369
+ # metric_monitors: [
2370
+ # {
2371
+ # metric_definition: { # required
2372
+ # entity_id_key: "JsonPath",
2373
+ # event_pattern: "MetricDefinitionConfigEventPatternString",
2374
+ # name: "CwDimensionSafeName",
2375
+ # unit_label: "MetricUnitLabel",
2376
+ # value_key: "JsonPath",
2377
+ # },
2378
+ # },
2379
+ # ],
2380
+ # project: "ProjectRef", # required
2381
+ # randomization_salt: "RandomizationSalt",
2382
+ # scheduled_splits_config: {
2383
+ # steps: [ # required
2384
+ # {
2385
+ # group_weights: { # required
2386
+ # "GroupName" => 1,
2387
+ # },
2388
+ # start_time: Time.now, # required
2389
+ # },
2390
+ # ],
2391
+ # },
2392
+ # })
2393
+ #
2394
+ # @example Response structure
2395
+ #
2396
+ # resp.launch.arn #=> String
2397
+ # resp.launch.created_time #=> Time
2398
+ # resp.launch.description #=> String
2399
+ # resp.launch.execution.ended_time #=> Time
2400
+ # resp.launch.execution.started_time #=> Time
2401
+ # resp.launch.groups #=> Array
2402
+ # resp.launch.groups[0].description #=> String
2403
+ # resp.launch.groups[0].feature_variations #=> Hash
2404
+ # resp.launch.groups[0].feature_variations["FeatureName"] #=> String
2405
+ # resp.launch.groups[0].name #=> String
2406
+ # resp.launch.last_updated_time #=> Time
2407
+ # resp.launch.metric_monitors #=> Array
2408
+ # resp.launch.metric_monitors[0].metric_definition.entity_id_key #=> String
2409
+ # resp.launch.metric_monitors[0].metric_definition.event_pattern #=> String
2410
+ # resp.launch.metric_monitors[0].metric_definition.name #=> String
2411
+ # resp.launch.metric_monitors[0].metric_definition.unit_label #=> String
2412
+ # resp.launch.metric_monitors[0].metric_definition.value_key #=> String
2413
+ # resp.launch.name #=> String
2414
+ # resp.launch.project #=> String
2415
+ # resp.launch.randomization_salt #=> String
2416
+ # resp.launch.scheduled_splits_definition.steps #=> Array
2417
+ # resp.launch.scheduled_splits_definition.steps[0].group_weights #=> Hash
2418
+ # resp.launch.scheduled_splits_definition.steps[0].group_weights["GroupName"] #=> Integer
2419
+ # resp.launch.scheduled_splits_definition.steps[0].start_time #=> Time
2420
+ # resp.launch.status #=> String, one of "CREATED", "UPDATING", "RUNNING", "COMPLETED", "CANCELLED"
2421
+ # resp.launch.status_reason #=> String
2422
+ # resp.launch.tags #=> Hash
2423
+ # resp.launch.tags["TagKey"] #=> String
2424
+ # resp.launch.type #=> String, one of "aws.evidently.splits"
2425
+ #
2426
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/UpdateLaunch AWS API Documentation
2427
+ #
2428
+ # @overload update_launch(params = {})
2429
+ # @param [Hash] params ({})
2430
+ def update_launch(params = {}, options = {})
2431
+ req = build_request(:update_launch, params)
2432
+ req.send_request(options)
2433
+ end
2434
+
2435
+ # Updates the description of an existing project.
2436
+ #
2437
+ # To create a new project, use [CreateProject][1].
2438
+ #
2439
+ # Don't use this operation to update the data storage options of a
2440
+ # project. Instead, use [UpdateProjectDataDelivery][2].
2441
+ #
2442
+ # Don't use this operation to update the tags of a project. Instead,
2443
+ # use [TagResource][3].
2444
+ #
2445
+ #
2446
+ #
2447
+ # [1]: https://docs.aws.amazon.com/cloudwatchevidently/latest/APIReference/API_CreateProject.html
2448
+ # [2]: https://docs.aws.amazon.com/cloudwatchevidently/latest/APIReference/API_UpdateProjectDataDelivery.html
2449
+ # [3]: https://docs.aws.amazon.com/cloudwatchevidently/latest/APIReference/API_TagResource.html
2450
+ #
2451
+ # @option params [String] :description
2452
+ # An optional description of the project.
2453
+ #
2454
+ # @option params [required, String] :project
2455
+ # The name or ARN of the project to update.
2456
+ #
2457
+ # @return [Types::UpdateProjectResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2458
+ #
2459
+ # * {Types::UpdateProjectResponse#project #project} => Types::Project
2460
+ #
2461
+ # @example Request syntax with placeholder values
2462
+ #
2463
+ # resp = client.update_project({
2464
+ # description: "Description",
2465
+ # project: "ProjectRef", # required
2466
+ # })
2467
+ #
2468
+ # @example Response structure
2469
+ #
2470
+ # resp.project.active_experiment_count #=> Integer
2471
+ # resp.project.active_launch_count #=> Integer
2472
+ # resp.project.arn #=> String
2473
+ # resp.project.created_time #=> Time
2474
+ # resp.project.data_delivery.cloud_watch_logs.log_group #=> String
2475
+ # resp.project.data_delivery.s3_destination.bucket #=> String
2476
+ # resp.project.data_delivery.s3_destination.prefix #=> String
2477
+ # resp.project.description #=> String
2478
+ # resp.project.experiment_count #=> Integer
2479
+ # resp.project.feature_count #=> Integer
2480
+ # resp.project.last_updated_time #=> Time
2481
+ # resp.project.launch_count #=> Integer
2482
+ # resp.project.name #=> String
2483
+ # resp.project.status #=> String, one of "AVAILABLE", "UPDATING"
2484
+ # resp.project.tags #=> Hash
2485
+ # resp.project.tags["TagKey"] #=> String
2486
+ #
2487
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/UpdateProject AWS API Documentation
2488
+ #
2489
+ # @overload update_project(params = {})
2490
+ # @param [Hash] params ({})
2491
+ def update_project(params = {}, options = {})
2492
+ req = build_request(:update_project, params)
2493
+ req.send_request(options)
2494
+ end
2495
+
2496
+ # Updates the data storage options for this project. If you store
2497
+ # evaluation events, you an keep them and analyze them on your own. If
2498
+ # you choose not to store evaluation events, Evidently deletes them
2499
+ # after using them to produce metrics and other experiment results that
2500
+ # you can view.
2501
+ #
2502
+ # You can't specify both `cloudWatchLogs` and `s3Destination` in the
2503
+ # same operation.
2504
+ #
2505
+ # @option params [Types::CloudWatchLogsDestinationConfig] :cloud_watch_logs
2506
+ # A structure containing the CloudWatch Logs log group where you want to
2507
+ # store evaluation events.
2508
+ #
2509
+ # @option params [required, String] :project
2510
+ # The name or ARN of the project that you want to modify the data
2511
+ # storage options for.
2512
+ #
2513
+ # @option params [Types::S3DestinationConfig] :s3_destination
2514
+ # A structure containing the S3 bucket name and bucket prefix where you
2515
+ # want to store evaluation events.
2516
+ #
2517
+ # @return [Types::UpdateProjectDataDeliveryResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2518
+ #
2519
+ # * {Types::UpdateProjectDataDeliveryResponse#project #project} => Types::Project
2520
+ #
2521
+ # @example Request syntax with placeholder values
2522
+ #
2523
+ # resp = client.update_project_data_delivery({
2524
+ # cloud_watch_logs: {
2525
+ # log_group: "CwLogGroupSafeName",
2526
+ # },
2527
+ # project: "ProjectRef", # required
2528
+ # s3_destination: {
2529
+ # bucket: "S3BucketSafeName",
2530
+ # prefix: "S3PrefixSafeName",
2531
+ # },
2532
+ # })
2533
+ #
2534
+ # @example Response structure
2535
+ #
2536
+ # resp.project.active_experiment_count #=> Integer
2537
+ # resp.project.active_launch_count #=> Integer
2538
+ # resp.project.arn #=> String
2539
+ # resp.project.created_time #=> Time
2540
+ # resp.project.data_delivery.cloud_watch_logs.log_group #=> String
2541
+ # resp.project.data_delivery.s3_destination.bucket #=> String
2542
+ # resp.project.data_delivery.s3_destination.prefix #=> String
2543
+ # resp.project.description #=> String
2544
+ # resp.project.experiment_count #=> Integer
2545
+ # resp.project.feature_count #=> Integer
2546
+ # resp.project.last_updated_time #=> Time
2547
+ # resp.project.launch_count #=> Integer
2548
+ # resp.project.name #=> String
2549
+ # resp.project.status #=> String, one of "AVAILABLE", "UPDATING"
2550
+ # resp.project.tags #=> Hash
2551
+ # resp.project.tags["TagKey"] #=> String
2552
+ #
2553
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/UpdateProjectDataDelivery AWS API Documentation
2554
+ #
2555
+ # @overload update_project_data_delivery(params = {})
2556
+ # @param [Hash] params ({})
2557
+ def update_project_data_delivery(params = {}, options = {})
2558
+ req = build_request(:update_project_data_delivery, params)
2559
+ req.send_request(options)
2560
+ end
2561
+
2562
+ # @!endgroup
2563
+
2564
+ # @param params ({})
2565
+ # @api private
2566
+ def build_request(operation_name, params = {})
2567
+ handlers = @handlers.for(operation_name)
2568
+ context = Seahorse::Client::RequestContext.new(
2569
+ operation_name: operation_name,
2570
+ operation: config.api.operation(operation_name),
2571
+ client: self,
2572
+ params: params,
2573
+ config: config)
2574
+ context[:gem_name] = 'aws-sdk-cloudwatchevidently'
2575
+ context[:gem_version] = '1.0.0'
2576
+ Seahorse::Client::Request.new(handlers, context)
2577
+ end
2578
+
2579
+ # @api private
2580
+ # @deprecated
2581
+ def waiter_names
2582
+ []
2583
+ end
2584
+
2585
+ class << self
2586
+
2587
+ # @api private
2588
+ attr_reader :identifier
2589
+
2590
+ # @api private
2591
+ def errors_module
2592
+ Errors
2593
+ end
2594
+
2595
+ end
2596
+ end
2597
+ end