aws-sdk-cloudwatchevidently 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,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