aws-sdk-cloudwatchevidently 1.4.0 → 1.7.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -27,6 +27,7 @@ require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
27
27
  require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
28
28
  require 'aws-sdk-core/plugins/transfer_encoding.rb'
29
29
  require 'aws-sdk-core/plugins/http_checksum.rb'
30
+ require 'aws-sdk-core/plugins/checksum_algorithm.rb'
30
31
  require 'aws-sdk-core/plugins/defaults_mode.rb'
31
32
  require 'aws-sdk-core/plugins/recursion_detection.rb'
32
33
  require 'aws-sdk-core/plugins/signature_v4.rb'
@@ -75,6 +76,7 @@ module Aws::CloudWatchEvidently
75
76
  add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
76
77
  add_plugin(Aws::Plugins::TransferEncoding)
77
78
  add_plugin(Aws::Plugins::HttpChecksum)
79
+ add_plugin(Aws::Plugins::ChecksumAlgorithm)
78
80
  add_plugin(Aws::Plugins::DefaultsMode)
79
81
  add_plugin(Aws::Plugins::RecursionDetection)
80
82
  add_plugin(Aws::Plugins::SignatureV4)
@@ -430,6 +432,11 @@ module Aws::CloudWatchEvidently
430
432
  # statistical methods, and provides clear recommendations about which
431
433
  # variations perform better.
432
434
  #
435
+ # You can optionally specify a `segment` to have the experiment consider
436
+ # only certain audience types in the experiment, such as using only user
437
+ # sessions from a certain location or who use a certain internet
438
+ # browser.
439
+ #
433
440
  # Don't use this operation to update an existing experiment. Instead,
434
441
  # use [UpdateExperiment][1].
435
442
  #
@@ -474,6 +481,11 @@ module Aws::CloudWatchEvidently
474
481
  # This is represented in thousandths of a percent. For example, specify
475
482
  # 10,000 to allocate 10% of the available audience.
476
483
  #
484
+ # @option params [String] :segment
485
+ # Specifies an audience *segment* to use in the experiment. When a
486
+ # segment is used in an experiment, only user sessions that match the
487
+ # segment pattern are used in the experiment.
488
+ #
477
489
  # @option params [Hash<String,String>] :tags
478
490
  # Assigns one or more tags (key-value pairs) to the experiment.
479
491
  #
@@ -520,6 +532,7 @@ module Aws::CloudWatchEvidently
520
532
  # project: "ProjectRef", # required
521
533
  # randomization_salt: "RandomizationSalt",
522
534
  # sampling_rate: 1,
535
+ # segment: "SegmentRef",
523
536
  # tags: {
524
537
  # "TagKey" => "TagValue",
525
538
  # },
@@ -556,6 +569,7 @@ module Aws::CloudWatchEvidently
556
569
  # resp.experiment.randomization_salt #=> String
557
570
  # resp.experiment.sampling_rate #=> Integer
558
571
  # resp.experiment.schedule.analysis_complete_time #=> Time
572
+ # resp.experiment.segment #=> String
559
573
  # resp.experiment.status #=> String, one of "CREATED", "UPDATING", "RUNNING", "COMPLETED", "CANCELLED"
560
574
  # resp.experiment.status_reason #=> String
561
575
  # resp.experiment.tags #=> Hash
@@ -742,7 +756,7 @@ module Aws::CloudWatchEvidently
742
756
  # use a randomization ID to determine which variation the user session
743
757
  # is served. This randomization ID is a combination of the entity ID and
744
758
  # `randomizationSalt`. If you omit `randomizationSalt`, Evidently uses
745
- # the launch name as the `randomizationsSalt`.
759
+ # the launch name as the `randomizationSalt`.
746
760
  #
747
761
  # @option params [Types::ScheduledSplitsLaunchConfig] :scheduled_splits_config
748
762
  # An array of structures that define the traffic allocation percentages
@@ -796,6 +810,15 @@ module Aws::CloudWatchEvidently
796
810
  # group_weights: { # required
797
811
  # "GroupName" => 1,
798
812
  # },
813
+ # segment_overrides: [
814
+ # {
815
+ # evaluation_order: 1, # required
816
+ # segment: "SegmentRef", # required
817
+ # weights: { # required
818
+ # "GroupName" => 1,
819
+ # },
820
+ # },
821
+ # ],
799
822
  # start_time: Time.now, # required
800
823
  # },
801
824
  # ],
@@ -830,6 +853,11 @@ module Aws::CloudWatchEvidently
830
853
  # resp.launch.scheduled_splits_definition.steps #=> Array
831
854
  # resp.launch.scheduled_splits_definition.steps[0].group_weights #=> Hash
832
855
  # resp.launch.scheduled_splits_definition.steps[0].group_weights["GroupName"] #=> Integer
856
+ # resp.launch.scheduled_splits_definition.steps[0].segment_overrides #=> Array
857
+ # resp.launch.scheduled_splits_definition.steps[0].segment_overrides[0].evaluation_order #=> Integer
858
+ # resp.launch.scheduled_splits_definition.steps[0].segment_overrides[0].segment #=> String
859
+ # resp.launch.scheduled_splits_definition.steps[0].segment_overrides[0].weights #=> Hash
860
+ # resp.launch.scheduled_splits_definition.steps[0].segment_overrides[0].weights["GroupName"] #=> Integer
833
861
  # resp.launch.scheduled_splits_definition.steps[0].start_time #=> Time
834
862
  # resp.launch.status #=> String, one of "CREATED", "UPDATING", "RUNNING", "COMPLETED", "CANCELLED"
835
863
  # resp.launch.status_reason #=> String
@@ -932,6 +960,86 @@ module Aws::CloudWatchEvidently
932
960
  req.send_request(options)
933
961
  end
934
962
 
963
+ # Use this operation to define a *segment* of your audience. A segment
964
+ # is a portion of your audience that share one or more characteristics.
965
+ # Examples could be Chrome browser users, users in Europe, or Firefox
966
+ # browser users in Europe who also fit other criteria that your
967
+ # application collects, such as age.
968
+ #
969
+ # Using a segment in an experiment limits that experiment to evaluate
970
+ # only the users who match the segment criteria. Using one or more
971
+ # segments in a launch allow you to define different traffic splits for
972
+ # the different audience segments.
973
+ #
974
+ # <p>For more information about segment pattern syntax, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Evidently-segments-syntax.html"> Segment rule pattern syntax</a>.</p> <p>The pattern that you define for a segment is matched against the value of <code>evaluationContext</code>, which is passed into Evidently in the <a href="https://docs.aws.amazon.com/cloudwatchevidently/latest/APIReference/API_EvaluateFeature.html">EvaluateFeature</a> operation, when Evidently assigns a feature variation to a user.</p>
975
+ #
976
+ # @option params [String] :description
977
+ # An optional description for this segment.
978
+ #
979
+ # @option params [required, String] :name
980
+ # A name for the segment.
981
+ #
982
+ # @option params [required, String] :pattern
983
+ # The pattern to use for the segment. For more information about pattern
984
+ # syntax, see [ Segment rule pattern syntax][1].
985
+ #
986
+ # **SDK automatically handles json encoding and base64 encoding for you
987
+ # when the required value (Hash, Array, etc.) is provided according to
988
+ # the description.**
989
+ #
990
+ #
991
+ #
992
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Evidently-segments-syntax.html
993
+ #
994
+ # @option params [Hash<String,String>] :tags
995
+ # Assigns one or more tags (key-value pairs) to the segment.
996
+ #
997
+ # Tags can help you organize and categorize your resources. You can also
998
+ # use them to scope user permissions by granting a user permission to
999
+ # access or change only resources with certain tag values.
1000
+ #
1001
+ # Tags don't have any semantic meaning to Amazon Web Services and are
1002
+ # interpreted strictly as strings of characters.
1003
+ #
1004
+ # <p>You can associate as many as 50 tags with a segment.</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>
1005
+ #
1006
+ # @return [Types::CreateSegmentResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1007
+ #
1008
+ # * {Types::CreateSegmentResponse#segment #segment} => Types::Segment
1009
+ #
1010
+ # @example Request syntax with placeholder values
1011
+ #
1012
+ # resp = client.create_segment({
1013
+ # description: "Description",
1014
+ # name: "SegmentName", # required
1015
+ # pattern: "SegmentPattern", # required
1016
+ # tags: {
1017
+ # "TagKey" => "TagValue",
1018
+ # },
1019
+ # })
1020
+ #
1021
+ # @example Response structure
1022
+ #
1023
+ # resp.segment.arn #=> String
1024
+ # resp.segment.created_time #=> Time
1025
+ # resp.segment.description #=> String
1026
+ # resp.segment.experiment_count #=> Integer
1027
+ # resp.segment.last_updated_time #=> Time
1028
+ # resp.segment.launch_count #=> Integer
1029
+ # resp.segment.name #=> String
1030
+ # resp.segment.pattern #=> String
1031
+ # resp.segment.tags #=> Hash
1032
+ # resp.segment.tags["TagKey"] #=> String
1033
+ #
1034
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/CreateSegment AWS API Documentation
1035
+ #
1036
+ # @overload create_segment(params = {})
1037
+ # @param [Hash] params ({})
1038
+ def create_segment(params = {}, options = {})
1039
+ req = build_request(:create_segment, params)
1040
+ req.send_request(options)
1041
+ end
1042
+
935
1043
  # Deletes an Evidently experiment. The feature used for the experiment
936
1044
  # is not deleted.
937
1045
  #
@@ -1052,6 +1160,30 @@ module Aws::CloudWatchEvidently
1052
1160
  req.send_request(options)
1053
1161
  end
1054
1162
 
1163
+ # Deletes a segment. You can't delete a segment that is being used in a
1164
+ # launch or experiment, even if that launch or experiment is not
1165
+ # currently running.
1166
+ #
1167
+ # @option params [required, String] :segment
1168
+ # Specifies the segment to delete.
1169
+ #
1170
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1171
+ #
1172
+ # @example Request syntax with placeholder values
1173
+ #
1174
+ # resp = client.delete_segment({
1175
+ # segment: "SegmentRef", # required
1176
+ # })
1177
+ #
1178
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/DeleteSegment AWS API Documentation
1179
+ #
1180
+ # @overload delete_segment(params = {})
1181
+ # @param [Hash] params ({})
1182
+ def delete_segment(params = {}, options = {})
1183
+ req = build_request(:delete_segment, params)
1184
+ req.send_request(options)
1185
+ end
1186
+
1055
1187
  # This operation assigns a feature variation to one given user session.
1056
1188
  # You pass in an `entityID` that represents the user. Evidently then
1057
1189
  # checks the evaluation rules and assigns the variation.
@@ -1060,21 +1192,7 @@ module Aws::CloudWatchEvidently
1060
1192
  # user's `entityID` matches an override rule, the user is served the
1061
1193
  # variation specified by that rule.
1062
1194
  #
1063
- # Next, if there is a launch of the feature, the user might be assigned
1064
- # to a variation in the launch. The chance of this depends on the
1065
- # percentage of users that are allocated to that launch. If the user is
1066
- # enrolled in the launch, the variation they are served depends on the
1067
- # allocation of the various feature variations used for the launch.
1068
- #
1069
- # If the user is not assigned to a launch, and there is an ongoing
1070
- # experiment for this feature, the user might be assigned to a variation
1071
- # in the experiment. The chance of this depends on the percentage of
1072
- # users that are allocated to that experiment. If the user is enrolled
1073
- # in the experiment, the variation they are served depends on the
1074
- # allocation of the various feature variations used for the experiment.
1075
- #
1076
- # If the user is not assigned to a launch or experiment, they are served
1077
- # the default variation.
1195
+ # <p>If there is a current launch with this feature that uses segment overrides, and if the user session's <code>evaluationContext</code> matches a segment rule defined in a segment override, the configuration in the segment overrides is used. For more information about segments, see <a href="https://docs.aws.amazon.com/cloudwatchevidently/latest/APIReference/API_CreateSegment.html">CreateSegment</a> and <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Evidently-segments.html">Use segments to focus your audience</a>.</p> <p>If there is a launch with no segment overrides, the user might be assigned to a variation in the launch. The chance of this depends on the percentage of users that are allocated to that launch. If the user is enrolled in the launch, the variation they are served depends on the allocation of the various feature variations used for the launch.</p> <p>If the user is not assigned to a launch, and there is an ongoing experiment for this feature, the user might be assigned to a variation in the experiment. The chance of this depends on the percentage of users that are allocated to that experiment.</p> <p>If the experiment uses a segment, then only user sessions with <code>evaluationContext</code> values that match the segment rule are used in the experiment.</p> <p>If the user is enrolled in the experiment, the variation they are served depends on the allocation of the various feature variations used for the experiment. </p> <p>If the user is not assigned to a launch or experiment, they are served the default variation.</p>
1078
1196
  #
1079
1197
  # @option params [required, String] :entity_id
1080
1198
  # An internal ID that represents a unique user of the application. This
@@ -1082,14 +1200,22 @@ module Aws::CloudWatchEvidently
1082
1200
  # feature.
1083
1201
  #
1084
1202
  # @option params [String] :evaluation_context
1085
- # A JSON block of attributes that you can optionally pass in. This JSON
1086
- # block is included in the evaluation events sent to Evidently from the
1087
- # user session.
1203
+ # A JSON object of attributes that you can optionally pass in as part of
1204
+ # the evaluation event sent to Evidently from the user session.
1205
+ # Evidently can use this value to match user sessions with defined
1206
+ # audience segments. For more information, see [Use segments to focus
1207
+ # your audience][1].
1208
+ #
1209
+ # <p>If you include this parameter, the value must be a JSON object. A JSON array is not supported.</p>
1088
1210
  #
1089
1211
  # **SDK automatically handles json encoding and base64 encoding for you
1090
1212
  # when the required value (Hash, Array, etc.) is provided according to
1091
1213
  # the description.**
1092
1214
  #
1215
+ #
1216
+ #
1217
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Evidently-segments.html
1218
+ #
1093
1219
  # @option params [required, String] :feature
1094
1220
  # The name of the feature being evaluated.
1095
1221
  #
@@ -1179,6 +1305,7 @@ module Aws::CloudWatchEvidently
1179
1305
  # resp.experiment.randomization_salt #=> String
1180
1306
  # resp.experiment.sampling_rate #=> Integer
1181
1307
  # resp.experiment.schedule.analysis_complete_time #=> Time
1308
+ # resp.experiment.segment #=> String
1182
1309
  # resp.experiment.status #=> String, one of "CREATED", "UPDATING", "RUNNING", "COMPLETED", "CANCELLED"
1183
1310
  # resp.experiment.status_reason #=> String
1184
1311
  # resp.experiment.tags #=> Hash
@@ -1199,7 +1326,13 @@ module Aws::CloudWatchEvidently
1199
1326
  req.send_request(options)
1200
1327
  end
1201
1328
 
1202
- # Retrieves the results of a running or completed experiment.
1329
+ # Retrieves the results of a running or completed experiment. No results
1330
+ # are available until there have been 100 events for each variation and
1331
+ # at least 10 minutes have passed since the start of the experiment.
1332
+ #
1333
+ # Experiment results are available up to 63 days after the start of the
1334
+ # experiment. They are not available after that because of CloudWatch
1335
+ # data retention policies.
1203
1336
  #
1204
1337
  # @option params [String] :base_stat
1205
1338
  # The statistic used to calculate experiment results. Currently the only
@@ -1207,7 +1340,8 @@ module Aws::CloudWatchEvidently
1207
1340
  # the statistic.
1208
1341
  #
1209
1342
  # @option params [Time,DateTime,Date,Integer,String] :end_time
1210
- # The date and time that the experiment ended, if it is completed.
1343
+ # The date and time that the experiment ended, if it is completed. This
1344
+ # must be no longer than 30 days after the experiment start time.
1211
1345
  #
1212
1346
  # @option params [required, String] :experiment
1213
1347
  # The name of the experiment to retrieve the results of.
@@ -1260,6 +1394,7 @@ module Aws::CloudWatchEvidently
1260
1394
  #
1261
1395
  # @return [Types::GetExperimentResultsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1262
1396
  #
1397
+ # * {Types::GetExperimentResultsResponse#details #details} => String
1263
1398
  # * {Types::GetExperimentResultsResponse#reports #reports} => Array&lt;Types::ExperimentReport&gt;
1264
1399
  # * {Types::GetExperimentResultsResponse#results_data #results_data} => Array&lt;Types::ExperimentResultsData&gt;
1265
1400
  # * {Types::GetExperimentResultsResponse#timestamps #timestamps} => Array&lt;Time&gt;
@@ -1281,6 +1416,7 @@ module Aws::CloudWatchEvidently
1281
1416
  #
1282
1417
  # @example Response structure
1283
1418
  #
1419
+ # resp.details #=> String
1284
1420
  # resp.reports #=> Array
1285
1421
  # resp.reports[0].content #=> String
1286
1422
  # resp.reports[0].metric_name #=> String
@@ -1414,6 +1550,11 @@ module Aws::CloudWatchEvidently
1414
1550
  # resp.launch.scheduled_splits_definition.steps #=> Array
1415
1551
  # resp.launch.scheduled_splits_definition.steps[0].group_weights #=> Hash
1416
1552
  # resp.launch.scheduled_splits_definition.steps[0].group_weights["GroupName"] #=> Integer
1553
+ # resp.launch.scheduled_splits_definition.steps[0].segment_overrides #=> Array
1554
+ # resp.launch.scheduled_splits_definition.steps[0].segment_overrides[0].evaluation_order #=> Integer
1555
+ # resp.launch.scheduled_splits_definition.steps[0].segment_overrides[0].segment #=> String
1556
+ # resp.launch.scheduled_splits_definition.steps[0].segment_overrides[0].weights #=> Hash
1557
+ # resp.launch.scheduled_splits_definition.steps[0].segment_overrides[0].weights["GroupName"] #=> Integer
1417
1558
  # resp.launch.scheduled_splits_definition.steps[0].start_time #=> Time
1418
1559
  # resp.launch.status #=> String, one of "CREATED", "UPDATING", "RUNNING", "COMPLETED", "CANCELLED"
1419
1560
  # resp.launch.status_reason #=> String
@@ -1479,6 +1620,44 @@ module Aws::CloudWatchEvidently
1479
1620
  req.send_request(options)
1480
1621
  end
1481
1622
 
1623
+ # Returns information about the specified segment. Specify the segment
1624
+ # you want to view by specifying its ARN.
1625
+ #
1626
+ # @option params [required, String] :segment
1627
+ # The ARN of the segment to return information for.
1628
+ #
1629
+ # @return [Types::GetSegmentResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1630
+ #
1631
+ # * {Types::GetSegmentResponse#segment #segment} => Types::Segment
1632
+ #
1633
+ # @example Request syntax with placeholder values
1634
+ #
1635
+ # resp = client.get_segment({
1636
+ # segment: "SegmentRef", # required
1637
+ # })
1638
+ #
1639
+ # @example Response structure
1640
+ #
1641
+ # resp.segment.arn #=> String
1642
+ # resp.segment.created_time #=> Time
1643
+ # resp.segment.description #=> String
1644
+ # resp.segment.experiment_count #=> Integer
1645
+ # resp.segment.last_updated_time #=> Time
1646
+ # resp.segment.launch_count #=> Integer
1647
+ # resp.segment.name #=> String
1648
+ # resp.segment.pattern #=> String
1649
+ # resp.segment.tags #=> Hash
1650
+ # resp.segment.tags["TagKey"] #=> String
1651
+ #
1652
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/GetSegment AWS API Documentation
1653
+ #
1654
+ # @overload get_segment(params = {})
1655
+ # @param [Hash] params ({})
1656
+ def get_segment(params = {}, options = {})
1657
+ req = build_request(:get_segment, params)
1658
+ req.send_request(options)
1659
+ end
1660
+
1482
1661
  # Returns configuration details about all the experiments in the
1483
1662
  # specified project.
1484
1663
  #
@@ -1536,6 +1715,7 @@ module Aws::CloudWatchEvidently
1536
1715
  # resp.experiments[0].randomization_salt #=> String
1537
1716
  # resp.experiments[0].sampling_rate #=> Integer
1538
1717
  # resp.experiments[0].schedule.analysis_complete_time #=> Time
1718
+ # resp.experiments[0].segment #=> String
1539
1719
  # resp.experiments[0].status #=> String, one of "CREATED", "UPDATING", "RUNNING", "COMPLETED", "CANCELLED"
1540
1720
  # resp.experiments[0].status_reason #=> String
1541
1721
  # resp.experiments[0].tags #=> Hash
@@ -1671,6 +1851,11 @@ module Aws::CloudWatchEvidently
1671
1851
  # resp.launches[0].scheduled_splits_definition.steps #=> Array
1672
1852
  # resp.launches[0].scheduled_splits_definition.steps[0].group_weights #=> Hash
1673
1853
  # resp.launches[0].scheduled_splits_definition.steps[0].group_weights["GroupName"] #=> Integer
1854
+ # resp.launches[0].scheduled_splits_definition.steps[0].segment_overrides #=> Array
1855
+ # resp.launches[0].scheduled_splits_definition.steps[0].segment_overrides[0].evaluation_order #=> Integer
1856
+ # resp.launches[0].scheduled_splits_definition.steps[0].segment_overrides[0].segment #=> String
1857
+ # resp.launches[0].scheduled_splits_definition.steps[0].segment_overrides[0].weights #=> Hash
1858
+ # resp.launches[0].scheduled_splits_definition.steps[0].segment_overrides[0].weights["GroupName"] #=> Integer
1674
1859
  # resp.launches[0].scheduled_splits_definition.steps[0].start_time #=> Time
1675
1860
  # resp.launches[0].status #=> String, one of "CREATED", "UPDATING", "RUNNING", "COMPLETED", "CANCELLED"
1676
1861
  # resp.launches[0].status_reason #=> String
@@ -1739,6 +1924,110 @@ module Aws::CloudWatchEvidently
1739
1924
  req.send_request(options)
1740
1925
  end
1741
1926
 
1927
+ # Use this operation to find which experiments or launches are using a
1928
+ # specified segment.
1929
+ #
1930
+ # @option params [Integer] :max_results
1931
+ # The maximum number of results to include in the response. If you omit
1932
+ # this, the default of 50 is used.
1933
+ #
1934
+ # @option params [String] :next_token
1935
+ # The token to use when requesting the next set of results. You received
1936
+ # this token from a previous `ListSegmentReferences` operation.
1937
+ #
1938
+ # @option params [required, String] :segment
1939
+ # The ARN of the segment that you want to view information for.
1940
+ #
1941
+ # @option params [required, String] :type
1942
+ # Specifies whether to return information about launches or experiments
1943
+ # that use this segment.
1944
+ #
1945
+ # @return [Types::ListSegmentReferencesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1946
+ #
1947
+ # * {Types::ListSegmentReferencesResponse#next_token #next_token} => String
1948
+ # * {Types::ListSegmentReferencesResponse#referenced_by #referenced_by} => Array&lt;Types::RefResource&gt;
1949
+ #
1950
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1951
+ #
1952
+ # @example Request syntax with placeholder values
1953
+ #
1954
+ # resp = client.list_segment_references({
1955
+ # max_results: 1,
1956
+ # next_token: "NextToken",
1957
+ # segment: "SegmentRef", # required
1958
+ # type: "EXPERIMENT", # required, accepts EXPERIMENT, LAUNCH
1959
+ # })
1960
+ #
1961
+ # @example Response structure
1962
+ #
1963
+ # resp.next_token #=> String
1964
+ # resp.referenced_by #=> Array
1965
+ # resp.referenced_by[0].arn #=> String
1966
+ # resp.referenced_by[0].end_time #=> String
1967
+ # resp.referenced_by[0].last_updated_on #=> String
1968
+ # resp.referenced_by[0].name #=> String
1969
+ # resp.referenced_by[0].start_time #=> String
1970
+ # resp.referenced_by[0].status #=> String
1971
+ # resp.referenced_by[0].type #=> String
1972
+ #
1973
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/ListSegmentReferences AWS API Documentation
1974
+ #
1975
+ # @overload list_segment_references(params = {})
1976
+ # @param [Hash] params ({})
1977
+ def list_segment_references(params = {}, options = {})
1978
+ req = build_request(:list_segment_references, params)
1979
+ req.send_request(options)
1980
+ end
1981
+
1982
+ # Returns a list of audience segments that you have created in your
1983
+ # account in this Region.
1984
+ #
1985
+ # @option params [Integer] :max_results
1986
+ # The maximum number of results to include in the response. If you omit
1987
+ # this, the default of 50 is used.
1988
+ #
1989
+ # @option params [String] :next_token
1990
+ # The token to use when requesting the next set of results. You received
1991
+ # this token from a previous `ListSegments` operation.
1992
+ #
1993
+ # @return [Types::ListSegmentsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1994
+ #
1995
+ # * {Types::ListSegmentsResponse#next_token #next_token} => String
1996
+ # * {Types::ListSegmentsResponse#segments #segments} => Array&lt;Types::Segment&gt;
1997
+ #
1998
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1999
+ #
2000
+ # @example Request syntax with placeholder values
2001
+ #
2002
+ # resp = client.list_segments({
2003
+ # max_results: 1,
2004
+ # next_token: "NextToken",
2005
+ # })
2006
+ #
2007
+ # @example Response structure
2008
+ #
2009
+ # resp.next_token #=> String
2010
+ # resp.segments #=> Array
2011
+ # resp.segments[0].arn #=> String
2012
+ # resp.segments[0].created_time #=> Time
2013
+ # resp.segments[0].description #=> String
2014
+ # resp.segments[0].experiment_count #=> Integer
2015
+ # resp.segments[0].last_updated_time #=> Time
2016
+ # resp.segments[0].launch_count #=> Integer
2017
+ # resp.segments[0].name #=> String
2018
+ # resp.segments[0].pattern #=> String
2019
+ # resp.segments[0].tags #=> Hash
2020
+ # resp.segments[0].tags["TagKey"] #=> String
2021
+ #
2022
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/ListSegments AWS API Documentation
2023
+ #
2024
+ # @overload list_segments(params = {})
2025
+ # @param [Hash] params ({})
2026
+ def list_segments(params = {}, options = {})
2027
+ req = build_request(:list_segments, params)
2028
+ req.send_request(options)
2029
+ end
2030
+
1742
2031
  # Displays the tags associated with an Evidently resource.
1743
2032
  #
1744
2033
  # @option params [required, String] :resource_arn
@@ -1821,7 +2110,8 @@ module Aws::CloudWatchEvidently
1821
2110
  # [1]: https://docs.aws.amazon.com/cloudwatchevidently/latest/APIReference/API_CreateExperiment.html
1822
2111
  #
1823
2112
  # @option params [required, Time,DateTime,Date,Integer,String] :analysis_complete_time
1824
- # The date and time to end the experiment.
2113
+ # The date and time to end the experiment. This must be no more than 30
2114
+ # days after the experiment starts.
1825
2115
  #
1826
2116
  # @option params [required, String] :experiment
1827
2117
  # The name of the experiment to start.
@@ -1902,6 +2192,11 @@ module Aws::CloudWatchEvidently
1902
2192
  # resp.launch.scheduled_splits_definition.steps #=> Array
1903
2193
  # resp.launch.scheduled_splits_definition.steps[0].group_weights #=> Hash
1904
2194
  # resp.launch.scheduled_splits_definition.steps[0].group_weights["GroupName"] #=> Integer
2195
+ # resp.launch.scheduled_splits_definition.steps[0].segment_overrides #=> Array
2196
+ # resp.launch.scheduled_splits_definition.steps[0].segment_overrides[0].evaluation_order #=> Integer
2197
+ # resp.launch.scheduled_splits_definition.steps[0].segment_overrides[0].segment #=> String
2198
+ # resp.launch.scheduled_splits_definition.steps[0].segment_overrides[0].weights #=> Hash
2199
+ # resp.launch.scheduled_splits_definition.steps[0].segment_overrides[0].weights["GroupName"] #=> Integer
1905
2200
  # resp.launch.scheduled_splits_definition.steps[0].start_time #=> Time
1906
2201
  # resp.launch.status #=> String, one of "CREATED", "UPDATING", "RUNNING", "COMPLETED", "CANCELLED"
1907
2202
  # resp.launch.status_reason #=> String
@@ -2059,6 +2354,53 @@ module Aws::CloudWatchEvidently
2059
2354
  req.send_request(options)
2060
2355
  end
2061
2356
 
2357
+ # Use this operation to test a rules pattern that you plan to use to
2358
+ # create an audience segment. For more information about segments, see
2359
+ # [CreateSegment][1].
2360
+ #
2361
+ #
2362
+ #
2363
+ # [1]: https://docs.aws.amazon.com/cloudwatchevidently/latest/APIReference/API_CreateSegment.html
2364
+ #
2365
+ # @option params [required, String] :pattern
2366
+ # The pattern to test.
2367
+ #
2368
+ # **SDK automatically handles json encoding and base64 encoding for you
2369
+ # when the required value (Hash, Array, etc.) is provided according to
2370
+ # the description.**
2371
+ #
2372
+ # @option params [required, String] :payload
2373
+ # A sample `evaluationContext` JSON block to test against the specified
2374
+ # pattern.
2375
+ #
2376
+ # **SDK automatically handles json encoding and base64 encoding for you
2377
+ # when the required value (Hash, Array, etc.) is provided according to
2378
+ # the description.**
2379
+ #
2380
+ # @return [Types::TestSegmentPatternResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2381
+ #
2382
+ # * {Types::TestSegmentPatternResponse#match #match} => Boolean
2383
+ #
2384
+ # @example Request syntax with placeholder values
2385
+ #
2386
+ # resp = client.test_segment_pattern({
2387
+ # pattern: "SegmentPattern", # required
2388
+ # payload: "JsonValue", # required
2389
+ # })
2390
+ #
2391
+ # @example Response structure
2392
+ #
2393
+ # resp.match #=> Boolean
2394
+ #
2395
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/TestSegmentPattern AWS API Documentation
2396
+ #
2397
+ # @overload test_segment_pattern(params = {})
2398
+ # @param [Hash] params ({})
2399
+ def test_segment_pattern(params = {}, options = {})
2400
+ req = build_request(:test_segment_pattern, params)
2401
+ req.send_request(options)
2402
+ end
2403
+
2062
2404
  # Removes one or more tags from the specified resource.
2063
2405
  #
2064
2406
  # @option params [required, String] :resource_arn
@@ -2123,6 +2465,10 @@ module Aws::CloudWatchEvidently
2123
2465
  # entity ID and `randomizationSalt`. If you omit `randomizationSalt`,
2124
2466
  # Evidently uses the experiment name as the `randomizationSalt`.
2125
2467
  #
2468
+ # @option params [Boolean] :remove_segment
2469
+ # Removes a segment from being used in an experiment. You can't use
2470
+ # this parameter if the experiment is currently running.
2471
+ #
2126
2472
  # @option params [Integer] :sampling_rate
2127
2473
  # The portion of the available audience that you want to allocate to
2128
2474
  # this experiment, in thousandths of a percent. The available audience
@@ -2132,6 +2478,12 @@ module Aws::CloudWatchEvidently
2132
2478
  # This is represented in thousandths of a percent. For example, specify
2133
2479
  # 20,000 to allocate 20% of the available audience.
2134
2480
  #
2481
+ # @option params [String] :segment
2482
+ # Adds an audience *segment* to an experiment. When a segment is used in
2483
+ # an experiment, only user sessions that match the segment pattern are
2484
+ # used in the experiment. You can't use this parameter if the
2485
+ # experiment is currently running.
2486
+ #
2135
2487
  # @option params [Array<Types::TreatmentConfig>] :treatments
2136
2488
  # An array of structures that define the variations being tested in the
2137
2489
  # experiment.
@@ -2165,7 +2517,9 @@ module Aws::CloudWatchEvidently
2165
2517
  # },
2166
2518
  # project: "ProjectRef", # required
2167
2519
  # randomization_salt: "RandomizationSalt",
2520
+ # remove_segment: false,
2168
2521
  # sampling_rate: 1,
2522
+ # segment: "SegmentRef",
2169
2523
  # treatments: [
2170
2524
  # {
2171
2525
  # description: "Description",
@@ -2199,6 +2553,7 @@ module Aws::CloudWatchEvidently
2199
2553
  # resp.experiment.randomization_salt #=> String
2200
2554
  # resp.experiment.sampling_rate #=> Integer
2201
2555
  # resp.experiment.schedule.analysis_complete_time #=> Time
2556
+ # resp.experiment.segment #=> String
2202
2557
  # resp.experiment.status #=> String, one of "CREATED", "UPDATING", "RUNNING", "COMPLETED", "CANCELLED"
2203
2558
  # resp.experiment.status_reason #=> String
2204
2559
  # resp.experiment.tags #=> Hash
@@ -2408,6 +2763,15 @@ module Aws::CloudWatchEvidently
2408
2763
  # group_weights: { # required
2409
2764
  # "GroupName" => 1,
2410
2765
  # },
2766
+ # segment_overrides: [
2767
+ # {
2768
+ # evaluation_order: 1, # required
2769
+ # segment: "SegmentRef", # required
2770
+ # weights: { # required
2771
+ # "GroupName" => 1,
2772
+ # },
2773
+ # },
2774
+ # ],
2411
2775
  # start_time: Time.now, # required
2412
2776
  # },
2413
2777
  # ],
@@ -2439,6 +2803,11 @@ module Aws::CloudWatchEvidently
2439
2803
  # resp.launch.scheduled_splits_definition.steps #=> Array
2440
2804
  # resp.launch.scheduled_splits_definition.steps[0].group_weights #=> Hash
2441
2805
  # resp.launch.scheduled_splits_definition.steps[0].group_weights["GroupName"] #=> Integer
2806
+ # resp.launch.scheduled_splits_definition.steps[0].segment_overrides #=> Array
2807
+ # resp.launch.scheduled_splits_definition.steps[0].segment_overrides[0].evaluation_order #=> Integer
2808
+ # resp.launch.scheduled_splits_definition.steps[0].segment_overrides[0].segment #=> String
2809
+ # resp.launch.scheduled_splits_definition.steps[0].segment_overrides[0].weights #=> Hash
2810
+ # resp.launch.scheduled_splits_definition.steps[0].segment_overrides[0].weights["GroupName"] #=> Integer
2442
2811
  # resp.launch.scheduled_splits_definition.steps[0].start_time #=> Time
2443
2812
  # resp.launch.status #=> String, one of "CREATED", "UPDATING", "RUNNING", "COMPLETED", "CANCELLED"
2444
2813
  # resp.launch.status_reason #=> String
@@ -2595,7 +2964,7 @@ module Aws::CloudWatchEvidently
2595
2964
  params: params,
2596
2965
  config: config)
2597
2966
  context[:gem_name] = 'aws-sdk-cloudwatchevidently'
2598
- context[:gem_version] = '1.4.0'
2967
+ context[:gem_version] = '1.7.0'
2599
2968
  Seahorse::Client::Request.new(handlers, context)
2600
2969
  end
2601
2970