aws-sdk-cloudwatchevidently 1.6.0 → 1.8.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -159,6 +159,7 @@ module Aws::CloudWatchEvidently
159
159
  # project: "ProjectRef", # required
160
160
  # randomization_salt: "RandomizationSalt",
161
161
  # sampling_rate: 1,
162
+ # segment: "SegmentRef",
162
163
  # tags: {
163
164
  # "TagKey" => "TagValue",
164
165
  # },
@@ -216,6 +217,12 @@ module Aws::CloudWatchEvidently
216
217
  # specify 10,000 to allocate 10% of the available audience.
217
218
  # @return [Integer]
218
219
  #
220
+ # @!attribute [rw] segment
221
+ # Specifies an audience *segment* to use in the experiment. When a
222
+ # segment is used in an experiment, only user sessions that match the
223
+ # segment pattern are used in the experiment.
224
+ # @return [String]
225
+ #
219
226
  # @!attribute [rw] tags
220
227
  # Assigns one or more tags (key-value pairs) to the experiment.
221
228
  #
@@ -245,6 +252,7 @@ module Aws::CloudWatchEvidently
245
252
  :project,
246
253
  :randomization_salt,
247
254
  :sampling_rate,
255
+ :segment,
248
256
  :tags,
249
257
  :treatments)
250
258
  SENSITIVE = []
@@ -408,6 +416,15 @@ module Aws::CloudWatchEvidently
408
416
  # group_weights: { # required
409
417
  # "GroupName" => 1,
410
418
  # },
419
+ # segment_overrides: [
420
+ # {
421
+ # evaluation_order: 1, # required
422
+ # segment: "SegmentRef", # required
423
+ # weights: { # required
424
+ # "GroupName" => 1,
425
+ # },
426
+ # },
427
+ # ],
411
428
  # start_time: Time.now, # required
412
429
  # },
413
430
  # ],
@@ -445,7 +462,7 @@ module Aws::CloudWatchEvidently
445
462
  # must use a randomization ID to determine which variation the user
446
463
  # session is served. This randomization ID is a combination of the
447
464
  # entity ID and `randomizationSalt`. If you omit `randomizationSalt`,
448
- # Evidently uses the launch name as the `randomizationsSalt`.
465
+ # Evidently uses the launch name as the `randomizationSalt`.
449
466
  # @return [String]
450
467
  #
451
468
  # @!attribute [rw] scheduled_splits_config
@@ -500,6 +517,10 @@ module Aws::CloudWatchEvidently
500
517
  # data as a hash:
501
518
  #
502
519
  # {
520
+ # app_config_resource: {
521
+ # application_id: "AppConfigResourceId",
522
+ # environment_id: "AppConfigResourceId",
523
+ # },
503
524
  # data_delivery: {
504
525
  # cloud_watch_logs: {
505
526
  # log_group: "CwLogGroupSafeName",
@@ -516,6 +537,28 @@ module Aws::CloudWatchEvidently
516
537
  # },
517
538
  # }
518
539
  #
540
+ # @!attribute [rw] app_config_resource
541
+ # Use this parameter if the project will use *client-side evaluation
542
+ # powered by AppConfig*. Client-side evaluation allows your
543
+ # application to assign variations to user sessions locally instead of
544
+ # by calling the [EvaluateFeature][1] operation. This mitigates the
545
+ # latency and availability risks that come with an API call. For more
546
+ # information, see [ Client-side evaluation - powered by
547
+ # AppConfig.][2]
548
+ #
549
+ # This parameter is a structure that contains information about the
550
+ # AppConfig application and environment that will be used as for
551
+ # client-side evaluation.
552
+ #
553
+ # To create a project that uses client-side evaluation, you must have
554
+ # the `evidently:ExportProjectAsConfiguration` permission.
555
+ #
556
+ #
557
+ #
558
+ # [1]: https://docs.aws.amazon.com/cloudwatchevidently/latest/APIReference/API_EvaluateFeature.html
559
+ # [2]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Evidently-client-side-evaluation.html
560
+ # @return [Types::ProjectAppConfigResourceConfig]
561
+ #
519
562
  # @!attribute [rw] data_delivery
520
563
  # A structure that contains information about where Evidently is to
521
564
  # store evaluation events for longer term storage, if you choose to do
@@ -549,6 +592,7 @@ module Aws::CloudWatchEvidently
549
592
  # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/CreateProjectRequest AWS API Documentation
550
593
  #
551
594
  class CreateProjectRequest < Struct.new(
595
+ :app_config_resource,
552
596
  :data_delivery,
553
597
  :description,
554
598
  :name,
@@ -569,6 +613,73 @@ module Aws::CloudWatchEvidently
569
613
  include Aws::Structure
570
614
  end
571
615
 
616
+ # @note When making an API call, you may pass CreateSegmentRequest
617
+ # data as a hash:
618
+ #
619
+ # {
620
+ # description: "Description",
621
+ # name: "SegmentName", # required
622
+ # pattern: "SegmentPattern", # required
623
+ # tags: {
624
+ # "TagKey" => "TagValue",
625
+ # },
626
+ # }
627
+ #
628
+ # @!attribute [rw] description
629
+ # An optional description for this segment.
630
+ # @return [String]
631
+ #
632
+ # @!attribute [rw] name
633
+ # A name for the segment.
634
+ # @return [String]
635
+ #
636
+ # @!attribute [rw] pattern
637
+ # The pattern to use for the segment. For more information about
638
+ # pattern syntax, see [ Segment rule pattern syntax][1].
639
+ #
640
+ #
641
+ #
642
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Evidently-segments.html#CloudWatch-Evidently-segments-syntax.html
643
+ # @return [String]
644
+ #
645
+ # @!attribute [rw] tags
646
+ # Assigns one or more tags (key-value pairs) to the segment.
647
+ #
648
+ # Tags can help you organize and categorize your resources. You can
649
+ # also use them to scope user permissions by granting a user
650
+ # permission to access or change only resources with certain tag
651
+ # values.
652
+ #
653
+ # Tags don't have any semantic meaning to Amazon Web Services and are
654
+ # interpreted strictly as strings of characters.
655
+ #
656
+ # <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>
657
+ # @return [Hash<String,String>]
658
+ #
659
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/CreateSegmentRequest AWS API Documentation
660
+ #
661
+ class CreateSegmentRequest < Struct.new(
662
+ :description,
663
+ :name,
664
+ :pattern,
665
+ :tags)
666
+ SENSITIVE = []
667
+ include Aws::Structure
668
+ end
669
+
670
+ # @!attribute [rw] segment
671
+ # A structure that contains the complete information about the segment
672
+ # that was just created.
673
+ # @return [Types::Segment]
674
+ #
675
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/CreateSegmentResponse AWS API Documentation
676
+ #
677
+ class CreateSegmentResponse < Struct.new(
678
+ :segment)
679
+ SENSITIVE = []
680
+ include Aws::Structure
681
+ end
682
+
572
683
  # @note When making an API call, you may pass DeleteExperimentRequest
573
684
  # data as a hash:
574
685
  #
@@ -680,6 +791,29 @@ module Aws::CloudWatchEvidently
680
791
  #
681
792
  class DeleteProjectResponse < Aws::EmptyStructure; end
682
793
 
794
+ # @note When making an API call, you may pass DeleteSegmentRequest
795
+ # data as a hash:
796
+ #
797
+ # {
798
+ # segment: "SegmentRef", # required
799
+ # }
800
+ #
801
+ # @!attribute [rw] segment
802
+ # Specifies the segment to delete.
803
+ # @return [String]
804
+ #
805
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/DeleteSegmentRequest AWS API Documentation
806
+ #
807
+ class DeleteSegmentRequest < Struct.new(
808
+ :segment)
809
+ SENSITIVE = []
810
+ include Aws::Structure
811
+ end
812
+
813
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/DeleteSegmentResponse AWS API Documentation
814
+ #
815
+ class DeleteSegmentResponse < Aws::EmptyStructure; end
816
+
683
817
  # @note When making an API call, you may pass EvaluateFeatureRequest
684
818
  # data as a hash:
685
819
  #
@@ -697,9 +831,17 @@ module Aws::CloudWatchEvidently
697
831
  # @return [String]
698
832
  #
699
833
  # @!attribute [rw] evaluation_context
700
- # A JSON block of attributes that you can optionally pass in. This
701
- # JSON block is included in the evaluation events sent to Evidently
702
- # from the user session.
834
+ # A JSON object of attributes that you can optionally pass in as part
835
+ # of the evaluation event sent to Evidently from the user session.
836
+ # Evidently can use this value to match user sessions with defined
837
+ # audience segments. For more information, see [Use segments to focus
838
+ # your audience][1].
839
+ #
840
+ # <p>If you include this parameter, the value must be a JSON object. A JSON array is not supported.</p>
841
+ #
842
+ #
843
+ #
844
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Evidently-segments.html
703
845
  # @return [String]
704
846
  #
705
847
  # @!attribute [rw] feature
@@ -973,6 +1115,11 @@ module Aws::CloudWatchEvidently
973
1115
  # the analysis of the experiment.
974
1116
  # @return [Types::ExperimentSchedule]
975
1117
  #
1118
+ # @!attribute [rw] segment
1119
+ # The audience segment being used for the experiment, if a segment is
1120
+ # being used.
1121
+ # @return [String]
1122
+ #
976
1123
  # @!attribute [rw] status
977
1124
  # The current state of the experiment.
978
1125
  # @return [String]
@@ -1012,6 +1159,7 @@ module Aws::CloudWatchEvidently
1012
1159
  :randomization_salt,
1013
1160
  :sampling_rate,
1014
1161
  :schedule,
1162
+ :segment,
1015
1163
  :status,
1016
1164
  :status_reason,
1017
1165
  :tags,
@@ -1566,6 +1714,38 @@ module Aws::CloudWatchEvidently
1566
1714
  include Aws::Structure
1567
1715
  end
1568
1716
 
1717
+ # @note When making an API call, you may pass GetSegmentRequest
1718
+ # data as a hash:
1719
+ #
1720
+ # {
1721
+ # segment: "SegmentRef", # required
1722
+ # }
1723
+ #
1724
+ # @!attribute [rw] segment
1725
+ # The ARN of the segment to return information for.
1726
+ # @return [String]
1727
+ #
1728
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/GetSegmentRequest AWS API Documentation
1729
+ #
1730
+ class GetSegmentRequest < Struct.new(
1731
+ :segment)
1732
+ SENSITIVE = []
1733
+ include Aws::Structure
1734
+ end
1735
+
1736
+ # @!attribute [rw] segment
1737
+ # A structure that contains the complete information about the
1738
+ # segment.
1739
+ # @return [Types::Segment]
1740
+ #
1741
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/GetSegmentResponse AWS API Documentation
1742
+ #
1743
+ class GetSegmentResponse < Struct.new(
1744
+ :segment)
1745
+ SENSITIVE = []
1746
+ include Aws::Structure
1747
+ end
1748
+
1569
1749
  # Unexpected error while processing the request. Retry the request.
1570
1750
  #
1571
1751
  # @!attribute [rw] message
@@ -1971,6 +2151,112 @@ module Aws::CloudWatchEvidently
1971
2151
  include Aws::Structure
1972
2152
  end
1973
2153
 
2154
+ # @note When making an API call, you may pass ListSegmentReferencesRequest
2155
+ # data as a hash:
2156
+ #
2157
+ # {
2158
+ # max_results: 1,
2159
+ # next_token: "NextToken",
2160
+ # segment: "SegmentRef", # required
2161
+ # type: "EXPERIMENT", # required, accepts EXPERIMENT, LAUNCH
2162
+ # }
2163
+ #
2164
+ # @!attribute [rw] max_results
2165
+ # The maximum number of results to include in the response. If you
2166
+ # omit this, the default of 50 is used.
2167
+ # @return [Integer]
2168
+ #
2169
+ # @!attribute [rw] next_token
2170
+ # The token to use when requesting the next set of results. You
2171
+ # received this token from a previous `ListSegmentReferences`
2172
+ # operation.
2173
+ # @return [String]
2174
+ #
2175
+ # @!attribute [rw] segment
2176
+ # The ARN of the segment that you want to view information for.
2177
+ # @return [String]
2178
+ #
2179
+ # @!attribute [rw] type
2180
+ # Specifies whether to return information about launches or
2181
+ # experiments that use this segment.
2182
+ # @return [String]
2183
+ #
2184
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/ListSegmentReferencesRequest AWS API Documentation
2185
+ #
2186
+ class ListSegmentReferencesRequest < Struct.new(
2187
+ :max_results,
2188
+ :next_token,
2189
+ :segment,
2190
+ :type)
2191
+ SENSITIVE = []
2192
+ include Aws::Structure
2193
+ end
2194
+
2195
+ # @!attribute [rw] next_token
2196
+ # The token to use in a subsequent `ListSegmentReferences` operation
2197
+ # to return the next set of results.
2198
+ # @return [String]
2199
+ #
2200
+ # @!attribute [rw] referenced_by
2201
+ # An array of structures, where each structure contains information
2202
+ # about one experiment or launch that uses this segment.
2203
+ # @return [Array<Types::RefResource>]
2204
+ #
2205
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/ListSegmentReferencesResponse AWS API Documentation
2206
+ #
2207
+ class ListSegmentReferencesResponse < Struct.new(
2208
+ :next_token,
2209
+ :referenced_by)
2210
+ SENSITIVE = []
2211
+ include Aws::Structure
2212
+ end
2213
+
2214
+ # @note When making an API call, you may pass ListSegmentsRequest
2215
+ # data as a hash:
2216
+ #
2217
+ # {
2218
+ # max_results: 1,
2219
+ # next_token: "NextToken",
2220
+ # }
2221
+ #
2222
+ # @!attribute [rw] max_results
2223
+ # The maximum number of results to include in the response. If you
2224
+ # omit this, the default of 50 is used.
2225
+ # @return [Integer]
2226
+ #
2227
+ # @!attribute [rw] next_token
2228
+ # The token to use when requesting the next set of results. You
2229
+ # received this token from a previous `ListSegments` operation.
2230
+ # @return [String]
2231
+ #
2232
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/ListSegmentsRequest AWS API Documentation
2233
+ #
2234
+ class ListSegmentsRequest < Struct.new(
2235
+ :max_results,
2236
+ :next_token)
2237
+ SENSITIVE = []
2238
+ include Aws::Structure
2239
+ end
2240
+
2241
+ # @!attribute [rw] next_token
2242
+ # The token to use in a subsequent `ListSegments` operation to return
2243
+ # the next set of results.
2244
+ # @return [String]
2245
+ #
2246
+ # @!attribute [rw] segments
2247
+ # An array of structures that contain information about the segments
2248
+ # in this Region.
2249
+ # @return [Array<Types::Segment>]
2250
+ #
2251
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/ListSegmentsResponse AWS API Documentation
2252
+ #
2253
+ class ListSegmentsResponse < Struct.new(
2254
+ :next_token,
2255
+ :segments)
2256
+ SENSITIVE = []
2257
+ include Aws::Structure
2258
+ end
2259
+
1974
2260
  # @note When making an API call, you may pass ListTagsForResourceRequest
1975
2261
  # data as a hash:
1976
2262
  #
@@ -2284,6 +2570,11 @@ module Aws::CloudWatchEvidently
2284
2570
  # The number of ongoing launches currently in the project.
2285
2571
  # @return [Integer]
2286
2572
  #
2573
+ # @!attribute [rw] app_config_resource
2574
+ # This structure defines the configuration of how your application
2575
+ # integrates with AppConfig to run client-side evaluation.
2576
+ # @return [Types::ProjectAppConfigResource]
2577
+ #
2287
2578
  # @!attribute [rw] arn
2288
2579
  # The name or ARN of the project.
2289
2580
  # @return [String]
@@ -2338,6 +2629,7 @@ module Aws::CloudWatchEvidently
2338
2629
  class Project < Struct.new(
2339
2630
  :active_experiment_count,
2340
2631
  :active_launch_count,
2632
+ :app_config_resource,
2341
2633
  :arn,
2342
2634
  :created_time,
2343
2635
  :data_delivery,
@@ -2353,6 +2645,77 @@ module Aws::CloudWatchEvidently
2353
2645
  include Aws::Structure
2354
2646
  end
2355
2647
 
2648
+ # This is a structure that defines the configuration of how your
2649
+ # application integrates with AppConfig to run client-side evaluation.
2650
+ #
2651
+ # @!attribute [rw] application_id
2652
+ # The ID of the AppConfig application to use for client-side
2653
+ # evaluation.
2654
+ # @return [String]
2655
+ #
2656
+ # @!attribute [rw] configuration_profile_id
2657
+ # The ID of the AppConfig profile to use for client-side evaluation.
2658
+ # @return [String]
2659
+ #
2660
+ # @!attribute [rw] environment_id
2661
+ # The ID of the AppConfig environment to use for client-side
2662
+ # evaluation. This must be an environment that is within the
2663
+ # application that you specify for `applicationId`.
2664
+ # @return [String]
2665
+ #
2666
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/ProjectAppConfigResource AWS API Documentation
2667
+ #
2668
+ class ProjectAppConfigResource < Struct.new(
2669
+ :application_id,
2670
+ :configuration_profile_id,
2671
+ :environment_id)
2672
+ SENSITIVE = []
2673
+ include Aws::Structure
2674
+ end
2675
+
2676
+ # Use this parameter to configure client-side evaluation for your
2677
+ # project. Client-side evaluation allows your application to assign
2678
+ # variations to user sessions locally instead of by calling the
2679
+ # [EvaluateFeature][1] operation to assign the variations. This
2680
+ # mitigates the latency and availability risks that come with an API
2681
+ # call.
2682
+ #
2683
+ # `ProjectAppConfigResource` is a structure that defines the
2684
+ # configuration of how your application integrates with AppConfig to run
2685
+ # client-side evaluation.
2686
+ #
2687
+ #
2688
+ #
2689
+ # [1]: https://docs.aws.amazon.com/cloudwatchevidently/latest/APIReference/API_EvaluateFeature.html
2690
+ #
2691
+ # @note When making an API call, you may pass ProjectAppConfigResourceConfig
2692
+ # data as a hash:
2693
+ #
2694
+ # {
2695
+ # application_id: "AppConfigResourceId",
2696
+ # environment_id: "AppConfigResourceId",
2697
+ # }
2698
+ #
2699
+ # @!attribute [rw] application_id
2700
+ # The ID of the AppConfig application to use for client-side
2701
+ # evaluation.
2702
+ # @return [String]
2703
+ #
2704
+ # @!attribute [rw] environment_id
2705
+ # The ID of the AppConfig environment to use for client-side
2706
+ # evaluation. This must be an environment that is within the
2707
+ # application that you specify for `applicationId`.
2708
+ # @return [String]
2709
+ #
2710
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/ProjectAppConfigResourceConfig AWS API Documentation
2711
+ #
2712
+ class ProjectAppConfigResourceConfig < Struct.new(
2713
+ :application_id,
2714
+ :environment_id)
2715
+ SENSITIVE = []
2716
+ include Aws::Structure
2717
+ end
2718
+
2356
2719
  # A structure that contains information about where Evidently is to
2357
2720
  # store evaluation events for longer term storage.
2358
2721
  #
@@ -2559,6 +2922,53 @@ module Aws::CloudWatchEvidently
2559
2922
  include Aws::Structure
2560
2923
  end
2561
2924
 
2925
+ # A structure that contains information about one experiment or launch
2926
+ # that uses the specified segment.
2927
+ #
2928
+ # @!attribute [rw] arn
2929
+ # The ARN of the experiment or launch.
2930
+ # @return [String]
2931
+ #
2932
+ # @!attribute [rw] end_time
2933
+ # The day and time that this experiment or launch ended.
2934
+ # @return [String]
2935
+ #
2936
+ # @!attribute [rw] last_updated_on
2937
+ # The day and time that this experiment or launch was most recently
2938
+ # updated.
2939
+ # @return [String]
2940
+ #
2941
+ # @!attribute [rw] name
2942
+ # The name of the experiment or launch.
2943
+ # @return [String]
2944
+ #
2945
+ # @!attribute [rw] start_time
2946
+ # The day and time that this experiment or launch started.
2947
+ # @return [String]
2948
+ #
2949
+ # @!attribute [rw] status
2950
+ # The status of the experiment or launch.
2951
+ # @return [String]
2952
+ #
2953
+ # @!attribute [rw] type
2954
+ # Specifies whether the resource that this structure contains
2955
+ # information about is an experiment or a launch.
2956
+ # @return [String]
2957
+ #
2958
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/RefResource AWS API Documentation
2959
+ #
2960
+ class RefResource < Struct.new(
2961
+ :arn,
2962
+ :end_time,
2963
+ :last_updated_on,
2964
+ :name,
2965
+ :start_time,
2966
+ :status,
2967
+ :type)
2968
+ SENSITIVE = []
2969
+ include Aws::Structure
2970
+ end
2971
+
2562
2972
  # The request references a resource that does not exist.
2563
2973
  #
2564
2974
  # @!attribute [rw] message
@@ -2639,8 +3049,30 @@ module Aws::CloudWatchEvidently
2639
3049
  # during one step of a launch. This is a set of key-value pairs. The
2640
3050
  # keys are variation names. The values represent the percentage of
2641
3051
  # traffic to allocate to that variation during this step.
3052
+ #
3053
+ # The values is expressed in thousandths of a percent, so assigning a
3054
+ # weight of 50000 assigns 50% of traffic to that variation.
3055
+ #
3056
+ # If the sum of the weights for all the variations in a segment
3057
+ # override does not add up to 100,000, then the remaining traffic that
3058
+ # matches this segment is not assigned by this segment override, and
3059
+ # instead moves on to the next segment override or the default traffic
3060
+ # split.
2642
3061
  # @return [Hash<String,Integer>]
2643
3062
  #
3063
+ # @!attribute [rw] segment_overrides
3064
+ # Use this parameter to specify different traffic splits for one or
3065
+ # more audience *segments*. A segment is a portion of your audience
3066
+ # that share one or more characteristics. Examples could be Chrome
3067
+ # browser users, users in Europe, or Firefox browser users in Europe
3068
+ # who also fit other criteria that your application collects, such as
3069
+ # age.
3070
+ #
3071
+ # This parameter is an array of up to six segment override objects.
3072
+ # Each of these objects specifies a segment that you have already
3073
+ # created, and defines the traffic split for that segment.
3074
+ # @return [Array<Types::SegmentOverride>]
3075
+ #
2644
3076
  # @!attribute [rw] start_time
2645
3077
  # The date and time that this step of the launch starts.
2646
3078
  # @return [Time]
@@ -2649,6 +3081,7 @@ module Aws::CloudWatchEvidently
2649
3081
  #
2650
3082
  class ScheduledSplit < Struct.new(
2651
3083
  :group_weights,
3084
+ :segment_overrides,
2652
3085
  :start_time)
2653
3086
  SENSITIVE = []
2654
3087
  include Aws::Structure
@@ -2665,6 +3098,15 @@ module Aws::CloudWatchEvidently
2665
3098
  # group_weights: { # required
2666
3099
  # "GroupName" => 1,
2667
3100
  # },
3101
+ # segment_overrides: [
3102
+ # {
3103
+ # evaluation_order: 1, # required
3104
+ # segment: "SegmentRef", # required
3105
+ # weights: { # required
3106
+ # "GroupName" => 1,
3107
+ # },
3108
+ # },
3109
+ # ],
2668
3110
  # start_time: Time.now, # required
2669
3111
  # }
2670
3112
  #
@@ -2673,8 +3115,23 @@ module Aws::CloudWatchEvidently
2673
3115
  # during one step of a launch. This is a set of key-value pairs. The
2674
3116
  # keys are variation names. The values represent the percentage of
2675
3117
  # traffic to allocate to that variation during this step.
3118
+ #
3119
+ # <p>The values is expressed in thousandths of a percent, so assigning a weight of 50000 assigns 50% of traffic to that variation.</p> <p>If the sum of the weights for all the variations in a segment override does not add up to 100,000, then the remaining traffic that matches this segment is not assigned by this segment override, and instead moves on to the next segment override or the default traffic split.</p>
2676
3120
  # @return [Hash<String,Integer>]
2677
3121
  #
3122
+ # @!attribute [rw] segment_overrides
3123
+ # Use this parameter to specify different traffic splits for one or
3124
+ # more audience *segments*. A segment is a portion of your audience
3125
+ # that share one or more characteristics. Examples could be Chrome
3126
+ # browser users, users in Europe, or Firefox browser users in Europe
3127
+ # who also fit other criteria that your application collects, such as
3128
+ # age.
3129
+ #
3130
+ # This parameter is an array of up to six segment override objects.
3131
+ # Each of these objects specifies a segment that you have already
3132
+ # created, and defines the traffic split for that segment.
3133
+ # @return [Array<Types::SegmentOverride>]
3134
+ #
2678
3135
  # @!attribute [rw] start_time
2679
3136
  # The date and time that this step of the launch starts.
2680
3137
  # @return [Time]
@@ -2683,6 +3140,7 @@ module Aws::CloudWatchEvidently
2683
3140
  #
2684
3141
  class ScheduledSplitConfig < Struct.new(
2685
3142
  :group_weights,
3143
+ :segment_overrides,
2686
3144
  :start_time)
2687
3145
  SENSITIVE = []
2688
3146
  include Aws::Structure
@@ -2701,6 +3159,15 @@ module Aws::CloudWatchEvidently
2701
3159
  # group_weights: { # required
2702
3160
  # "GroupName" => 1,
2703
3161
  # },
3162
+ # segment_overrides: [
3163
+ # {
3164
+ # evaluation_order: 1, # required
3165
+ # segment: "SegmentRef", # required
3166
+ # weights: { # required
3167
+ # "GroupName" => 1,
3168
+ # },
3169
+ # },
3170
+ # ],
2704
3171
  # start_time: Time.now, # required
2705
3172
  # },
2706
3173
  # ],
@@ -2738,6 +3205,116 @@ module Aws::CloudWatchEvidently
2738
3205
  include Aws::Structure
2739
3206
  end
2740
3207
 
3208
+ # This structure contains information about one audience *segment*. You
3209
+ # can use segments in your experiments and launches to narrow the user
3210
+ # sessions used for experiment or launch to only the user sessions that
3211
+ # match one or more criteria.
3212
+ #
3213
+ # @!attribute [rw] arn
3214
+ # The ARN of the segment.
3215
+ # @return [String]
3216
+ #
3217
+ # @!attribute [rw] created_time
3218
+ # The date and time that this segment was created.
3219
+ # @return [Time]
3220
+ #
3221
+ # @!attribute [rw] description
3222
+ # The customer-created description for this segment.
3223
+ # @return [String]
3224
+ #
3225
+ # @!attribute [rw] experiment_count
3226
+ # The number of experiments that this segment is used in. This count
3227
+ # includes all current experiments, not just those that are currently
3228
+ # running.
3229
+ # @return [Integer]
3230
+ #
3231
+ # @!attribute [rw] last_updated_time
3232
+ # The date and time that this segment was most recently updated.
3233
+ # @return [Time]
3234
+ #
3235
+ # @!attribute [rw] launch_count
3236
+ # The number of launches that this segment is used in. This count
3237
+ # includes all current launches, not just those that are currently
3238
+ # running.
3239
+ # @return [Integer]
3240
+ #
3241
+ # @!attribute [rw] name
3242
+ # The name of the segment.
3243
+ # @return [String]
3244
+ #
3245
+ # @!attribute [rw] pattern
3246
+ # The pattern that defines the attributes to use to evalute whether a
3247
+ # user session will be in the segment. For more information about the
3248
+ # pattern syntax, see [Segment rule pattern syntax][1].
3249
+ #
3250
+ #
3251
+ #
3252
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Evidently-segments.html
3253
+ # @return [String]
3254
+ #
3255
+ # @!attribute [rw] tags
3256
+ # The list of tag keys and values associated with this launch.
3257
+ # @return [Hash<String,String>]
3258
+ #
3259
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/Segment AWS API Documentation
3260
+ #
3261
+ class Segment < Struct.new(
3262
+ :arn,
3263
+ :created_time,
3264
+ :description,
3265
+ :experiment_count,
3266
+ :last_updated_time,
3267
+ :launch_count,
3268
+ :name,
3269
+ :pattern,
3270
+ :tags)
3271
+ SENSITIVE = []
3272
+ include Aws::Structure
3273
+ end
3274
+
3275
+ # This structure specifies a segment that you have already created, and
3276
+ # defines the traffic split for that segment to be used in a launch.
3277
+ #
3278
+ # @note When making an API call, you may pass SegmentOverride
3279
+ # data as a hash:
3280
+ #
3281
+ # {
3282
+ # evaluation_order: 1, # required
3283
+ # segment: "SegmentRef", # required
3284
+ # weights: { # required
3285
+ # "GroupName" => 1,
3286
+ # },
3287
+ # }
3288
+ #
3289
+ # @!attribute [rw] evaluation_order
3290
+ # A number indicating the order to use to evaluate segment overrides,
3291
+ # if there are more than one. Segment overrides with lower numbers are
3292
+ # evaluated first.
3293
+ # @return [Integer]
3294
+ #
3295
+ # @!attribute [rw] segment
3296
+ # The ARN of the segment to use.
3297
+ # @return [String]
3298
+ #
3299
+ # @!attribute [rw] weights
3300
+ # The traffic allocation percentages among the feature variations to
3301
+ # assign to this segment. This is a set of key-value pairs. The keys
3302
+ # are variation names. The values represent the amount of traffic to
3303
+ # allocate to that variation for this segment. This is expressed in
3304
+ # thousandths of a percent, so a weight of 50000 represents 50% of
3305
+ # traffic.
3306
+ # @return [Hash<String,Integer>]
3307
+ #
3308
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/SegmentOverride AWS API Documentation
3309
+ #
3310
+ class SegmentOverride < Struct.new(
3311
+ :evaluation_order,
3312
+ :segment,
3313
+ :weights)
3314
+ SENSITIVE = []
3315
+ include Aws::Structure
3316
+ end
3317
+
2741
3318
  # The request would cause a service quota to be exceeded.
2742
3319
  #
2743
3320
  # @!attribute [rw] message
@@ -3000,6 +3577,44 @@ module Aws::CloudWatchEvidently
3000
3577
  #
3001
3578
  class TagResourceResponse < Aws::EmptyStructure; end
3002
3579
 
3580
+ # @note When making an API call, you may pass TestSegmentPatternRequest
3581
+ # data as a hash:
3582
+ #
3583
+ # {
3584
+ # pattern: "SegmentPattern", # required
3585
+ # payload: "JsonValue", # required
3586
+ # }
3587
+ #
3588
+ # @!attribute [rw] pattern
3589
+ # The pattern to test.
3590
+ # @return [String]
3591
+ #
3592
+ # @!attribute [rw] payload
3593
+ # A sample `evaluationContext` JSON block to test against the
3594
+ # specified pattern.
3595
+ # @return [String]
3596
+ #
3597
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/TestSegmentPatternRequest AWS API Documentation
3598
+ #
3599
+ class TestSegmentPatternRequest < Struct.new(
3600
+ :pattern,
3601
+ :payload)
3602
+ SENSITIVE = []
3603
+ include Aws::Structure
3604
+ end
3605
+
3606
+ # @!attribute [rw] match
3607
+ # Returns `true` if the pattern matches the payload.
3608
+ # @return [Boolean]
3609
+ #
3610
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/TestSegmentPatternResponse AWS API Documentation
3611
+ #
3612
+ class TestSegmentPatternResponse < Struct.new(
3613
+ :match)
3614
+ SENSITIVE = []
3615
+ include Aws::Structure
3616
+ end
3617
+
3003
3618
  # The request was denied because of request throttling. Retry the
3004
3619
  # request.
3005
3620
  #
@@ -3150,7 +3765,9 @@ module Aws::CloudWatchEvidently
3150
3765
  # },
3151
3766
  # project: "ProjectRef", # required
3152
3767
  # randomization_salt: "RandomizationSalt",
3768
+ # remove_segment: false,
3153
3769
  # sampling_rate: 1,
3770
+ # segment: "SegmentRef",
3154
3771
  # treatments: [
3155
3772
  # {
3156
3773
  # description: "Description",
@@ -3195,6 +3812,11 @@ module Aws::CloudWatchEvidently
3195
3812
  # Evidently uses the experiment name as the `randomizationSalt`.
3196
3813
  # @return [String]
3197
3814
  #
3815
+ # @!attribute [rw] remove_segment
3816
+ # Removes a segment from being used in an experiment. You can't use
3817
+ # this parameter if the experiment is currently running.
3818
+ # @return [Boolean]
3819
+ #
3198
3820
  # @!attribute [rw] sampling_rate
3199
3821
  # The portion of the available audience that you want to allocate to
3200
3822
  # this experiment, in thousandths of a percent. The available audience
@@ -3205,6 +3827,13 @@ module Aws::CloudWatchEvidently
3205
3827
  # specify 20,000 to allocate 20% of the available audience.
3206
3828
  # @return [Integer]
3207
3829
  #
3830
+ # @!attribute [rw] segment
3831
+ # Adds an audience *segment* to an experiment. When a segment is used
3832
+ # in an experiment, only user sessions that match the segment pattern
3833
+ # are used in the experiment. You can't use this parameter if the
3834
+ # experiment is currently running.
3835
+ # @return [String]
3836
+ #
3208
3837
  # @!attribute [rw] treatments
3209
3838
  # An array of structures that define the variations being tested in
3210
3839
  # the experiment.
@@ -3219,7 +3848,9 @@ module Aws::CloudWatchEvidently
3219
3848
  :online_ab_config,
3220
3849
  :project,
3221
3850
  :randomization_salt,
3851
+ :remove_segment,
3222
3852
  :sampling_rate,
3853
+ :segment,
3223
3854
  :treatments)
3224
3855
  SENSITIVE = []
3225
3856
  include Aws::Structure
@@ -3374,6 +4005,15 @@ module Aws::CloudWatchEvidently
3374
4005
  # group_weights: { # required
3375
4006
  # "GroupName" => 1,
3376
4007
  # },
4008
+ # segment_overrides: [
4009
+ # {
4010
+ # evaluation_order: 1, # required
4011
+ # segment: "SegmentRef", # required
4012
+ # weights: { # required
4013
+ # "GroupName" => 1,
4014
+ # },
4015
+ # },
4016
+ # ],
3377
4017
  # start_time: Time.now, # required
3378
4018
  # },
3379
4019
  # ],
@@ -3499,10 +4139,29 @@ module Aws::CloudWatchEvidently
3499
4139
  # data as a hash:
3500
4140
  #
3501
4141
  # {
4142
+ # app_config_resource: {
4143
+ # application_id: "AppConfigResourceId",
4144
+ # environment_id: "AppConfigResourceId",
4145
+ # },
3502
4146
  # description: "Description",
3503
4147
  # project: "ProjectRef", # required
3504
4148
  # }
3505
4149
  #
4150
+ # @!attribute [rw] app_config_resource
4151
+ # Use this parameter if the project will use client-side evaluation
4152
+ # powered by AppConfig. Client-side evaluation allows your application
4153
+ # to assign variations to user sessions locally instead of by calling
4154
+ # the [EvaluateFeature][1] operation. This mitigates the latency and
4155
+ # availability risks that come with an API call. allows you to
4156
+ #
4157
+ # This parameter is a structure that contains information about the
4158
+ # AppConfig application that will be used for client-side evaluation.
4159
+ #
4160
+ #
4161
+ #
4162
+ # [1]: https://docs.aws.amazon.com/cloudwatchevidently/latest/APIReference/API_EvaluateFeature.html
4163
+ # @return [Types::ProjectAppConfigResourceConfig]
4164
+ #
3506
4165
  # @!attribute [rw] description
3507
4166
  # An optional description of the project.
3508
4167
  # @return [String]
@@ -3514,6 +4173,7 @@ module Aws::CloudWatchEvidently
3514
4173
  # @see http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/UpdateProjectRequest AWS API Documentation
3515
4174
  #
3516
4175
  class UpdateProjectRequest < Struct.new(
4176
+ :app_config_resource,
3517
4177
  :description,
3518
4178
  :project)
3519
4179
  SENSITIVE = []