aws-sdk-customerprofiles 1.23.0 → 1.25.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 03cf9cfce6be419e6b6410e9f48f4429d47c923ab8ad650a072dad70bfd6798d
4
- data.tar.gz: 9ee21be8c5711df078cea3507ce3e17e6107e7a035338fe4b117903e24a8d235
3
+ metadata.gz: 9347a37fe6a179ea20d5dd0f36429c16cf09eaec912841d4de98f55da73bd1df
4
+ data.tar.gz: dd4214b570fd81e86e76dfee1785c625d4cf95d4264e0d7b190d111acfff298c
5
5
  SHA512:
6
- metadata.gz: d30f9b58207015f9476744677031b47b2a5692822a9f91cc1e6e44584cb9e941b7c3a07f0fcfafcecd2b54690b06e5e305d88f2ad61c3c586f102fd48e90d139
7
- data.tar.gz: 0b71ce4c7a787c8027a8f3636debb01cf7cc8b064b7295a83ae58e845d8c1b05f81b47e06b8f4828131f3679904b6a3f7ad3d4f5c0c5c4f803d6d7e3e1f2cb58
6
+ metadata.gz: c19fe24303abe8caf0b45b6bc556ecda905324581af302ba820617f234028a89eeaaed17c6f440248443a934654d0512e46dbff11639eb6d07cf5543cdcf8174
7
+ data.tar.gz: feecbaad728d3ef66dea8ff3206d38a97279c3e34d32ab65c9e48dfc4e78778a8e43960e9b6e8acf5bbe09b728d5b91841b8e7d2d6a54fa03854eae9891b4351
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.25.0 (2022-12-12)
5
+ ------------------
6
+
7
+ * Feature - This release allows custom strings in PartyType and Gender through 2 new attributes in the CreateProfile and UpdateProfile APIs: PartyTypeString and GenderString.
8
+
9
+ 1.24.0 (2022-11-14)
10
+ ------------------
11
+
12
+ * Feature - This release enhances the SearchProfiles API by providing functionality to search for profiles using multiple keys and logical operators.
13
+
4
14
  1.23.0 (2022-10-25)
5
15
  ------------------
6
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.23.0
1
+ 1.25.0
@@ -765,6 +765,12 @@ module Aws::CustomerProfiles
765
765
  # @option params [Hash<String,String>] :attributes
766
766
  # A key value pair of attributes of a customer profile.
767
767
  #
768
+ # @option params [String] :party_type_string
769
+ # An alternative to `PartyType` which accepts any string as input.
770
+ #
771
+ # @option params [String] :gender_string
772
+ # An alternative to `Gender` which accepts any string as input.
773
+ #
768
774
  # @return [Types::CreateProfileResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
769
775
  #
770
776
  # * {Types::CreateProfileResponse#profile_id #profile_id} => String
@@ -840,6 +846,8 @@ module Aws::CustomerProfiles
840
846
  # attributes: {
841
847
  # "string1To255" => "string1To255",
842
848
  # },
849
+ # party_type_string: "string1To255",
850
+ # gender_string: "string1To255",
843
851
  # })
844
852
  #
845
853
  # @example Response structure
@@ -2532,8 +2540,14 @@ module Aws::CustomerProfiles
2532
2540
  req.send_request(options)
2533
2541
  end
2534
2542
 
2535
- # Searches for profiles within a specific domain name using name, phone
2536
- # number, email address, account number, or a custom defined index.
2543
+ # Searches for profiles within a specific domain using one or more
2544
+ # predefined search keys (e.g., \_fullName, \_phone, \_email, \_account,
2545
+ # etc.) and/or custom-defined search keys. A search key is a data type
2546
+ # pair that consists of a `KeyName` and `Values` list.
2547
+ #
2548
+ # This operation supports searching for profiles with a minimum of 1
2549
+ # key-value(s) pair and up to 5 key-value(s) pairs using either `AND` or
2550
+ # `OR` logic.
2537
2551
  #
2538
2552
  # @option params [String] :next_token
2539
2553
  # The pagination token from the previous SearchProfiles API call.
@@ -2541,6 +2555,8 @@ module Aws::CustomerProfiles
2541
2555
  # @option params [Integer] :max_results
2542
2556
  # The maximum number of objects returned per page.
2543
2557
  #
2558
+ # The default is 20 if this parameter is not included in the request.
2559
+ #
2544
2560
  # @option params [required, String] :domain_name
2545
2561
  # The unique name of the domain.
2546
2562
  #
@@ -2556,6 +2572,33 @@ module Aws::CustomerProfiles
2556
2572
  # @option params [required, Array<String>] :values
2557
2573
  # A list of key values.
2558
2574
  #
2575
+ # @option params [Array<Types::AdditionalSearchKey>] :additional_search_keys
2576
+ # A list of `AdditionalSearchKey` objects that are each searchable
2577
+ # identifiers of a profile. Each `AdditionalSearchKey` object contains a
2578
+ # `KeyName` and a list of `Values` associated with that specific key
2579
+ # (i.e., a key-value(s) pair). These additional search keys will be used
2580
+ # in conjunction with the `LogicalOperator` and the required `KeyName`
2581
+ # and `Values` parameters to search for profiles that satisfy the search
2582
+ # criteria.
2583
+ #
2584
+ # @option params [String] :logical_operator
2585
+ # Relationship between all specified search keys that will be used to
2586
+ # search for profiles. This includes the required `KeyName` and `Values`
2587
+ # parameters as well as any key-value(s) pairs specified in the
2588
+ # `AdditionalSearchKeys` list.
2589
+ #
2590
+ # This parameter influences which profiles will be returned in the
2591
+ # response in the following manner:
2592
+ #
2593
+ # * `AND` - The response only includes profiles that match all of the
2594
+ # search keys.
2595
+ #
2596
+ # * `OR` - The response includes profiles that match at least one of the
2597
+ # search keys.
2598
+ #
2599
+ # The `OR` relationship is the default behavior if this parameter is not
2600
+ # included in the request.
2601
+ #
2559
2602
  # @return [Types::SearchProfilesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2560
2603
  #
2561
2604
  # * {Types::SearchProfilesResponse#items #items} => Array&lt;Types::Profile&gt;
@@ -2569,6 +2612,13 @@ module Aws::CustomerProfiles
2569
2612
  # domain_name: "name", # required
2570
2613
  # key_name: "name", # required
2571
2614
  # values: ["string1To255"], # required
2615
+ # additional_search_keys: [
2616
+ # {
2617
+ # key_name: "name", # required
2618
+ # values: ["string1To255"], # required
2619
+ # },
2620
+ # ],
2621
+ # logical_operator: "AND", # accepts AND, OR
2572
2622
  # })
2573
2623
  #
2574
2624
  # @example Response structure
@@ -2633,6 +2683,10 @@ module Aws::CustomerProfiles
2633
2683
  # resp.items[0].billing_address.postal_code #=> String
2634
2684
  # resp.items[0].attributes #=> Hash
2635
2685
  # resp.items[0].attributes["string1To255"] #=> String
2686
+ # resp.items[0].found_by_items #=> Array
2687
+ # resp.items[0].found_by_items[0].key_name #=> String
2688
+ # resp.items[0].found_by_items[0].values #=> Array
2689
+ # resp.items[0].found_by_items[0].values[0] #=> String
2636
2690
  # resp.next_token #=> String
2637
2691
  #
2638
2692
  # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/SearchProfiles AWS API Documentation
@@ -2938,6 +2992,12 @@ module Aws::CustomerProfiles
2938
2992
  # @option params [Hash<String,String>] :attributes
2939
2993
  # A key value pair of attributes of a customer profile.
2940
2994
  #
2995
+ # @option params [String] :party_type_string
2996
+ # An alternative to `PartyType` which accepts any string as input.
2997
+ #
2998
+ # @option params [String] :gender_string
2999
+ # An alternative to `Gender` which accepts any string as input.
3000
+ #
2941
3001
  # @return [Types::UpdateProfileResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2942
3002
  #
2943
3003
  # * {Types::UpdateProfileResponse#profile_id #profile_id} => String
@@ -3014,6 +3074,8 @@ module Aws::CustomerProfiles
3014
3074
  # attributes: {
3015
3075
  # "string1To255" => "string0To255",
3016
3076
  # },
3077
+ # party_type_string: "string0To255",
3078
+ # gender_string: "string0To255",
3017
3079
  # })
3018
3080
  #
3019
3081
  # @example Response structure
@@ -3042,7 +3104,7 @@ module Aws::CustomerProfiles
3042
3104
  params: params,
3043
3105
  config: config)
3044
3106
  context[:gem_name] = 'aws-sdk-customerprofiles'
3045
- context[:gem_version] = '1.23.0'
3107
+ context[:gem_version] = '1.25.0'
3046
3108
  Seahorse::Client::Request.new(handlers, context)
3047
3109
  end
3048
3110
 
@@ -16,6 +16,7 @@ module Aws::CustomerProfiles
16
16
  AccessDeniedException = Shapes::StructureShape.new(name: 'AccessDeniedException')
17
17
  AddProfileKeyRequest = Shapes::StructureShape.new(name: 'AddProfileKeyRequest')
18
18
  AddProfileKeyResponse = Shapes::StructureShape.new(name: 'AddProfileKeyResponse')
19
+ AdditionalSearchKey = Shapes::StructureShape.new(name: 'AdditionalSearchKey')
19
20
  Address = Shapes::StructureShape.new(name: 'Address')
20
21
  AppflowIntegration = Shapes::StructureShape.new(name: 'AppflowIntegration')
21
22
  AppflowIntegrationWorkflowAttributes = Shapes::StructureShape.new(name: 'AppflowIntegrationWorkflowAttributes')
@@ -71,6 +72,7 @@ module Aws::CustomerProfiles
71
72
  FlowDefinition = Shapes::StructureShape.new(name: 'FlowDefinition')
72
73
  FlowDescription = Shapes::StringShape.new(name: 'FlowDescription')
73
74
  FlowName = Shapes::StringShape.new(name: 'FlowName')
75
+ FoundByKeyValue = Shapes::StructureShape.new(name: 'FoundByKeyValue')
74
76
  Gender = Shapes::StringShape.new(name: 'Gender')
75
77
  GetAutoMergingPreviewRequest = Shapes::StructureShape.new(name: 'GetAutoMergingPreviewRequest')
76
78
  GetAutoMergingPreviewResponse = Shapes::StructureShape.new(name: 'GetAutoMergingPreviewResponse')
@@ -213,9 +215,12 @@ module Aws::CustomerProfiles
213
215
  WorkflowType = Shapes::StringShape.new(name: 'WorkflowType')
214
216
  ZendeskConnectorOperator = Shapes::StringShape.new(name: 'ZendeskConnectorOperator')
215
217
  ZendeskSourceProperties = Shapes::StructureShape.new(name: 'ZendeskSourceProperties')
218
+ additionalSearchKeysList = Shapes::ListShape.new(name: 'additionalSearchKeysList')
216
219
  boolean = Shapes::BooleanShape.new(name: 'boolean')
217
220
  encryptionKey = Shapes::StringShape.new(name: 'encryptionKey')
218
221
  expirationDaysInteger = Shapes::IntegerShape.new(name: 'expirationDaysInteger')
222
+ foundByList = Shapes::ListShape.new(name: 'foundByList')
223
+ logicalOperator = Shapes::StringShape.new(name: 'logicalOperator')
219
224
  long = Shapes::IntegerShape.new(name: 'long')
220
225
  matchesNumber = Shapes::IntegerShape.new(name: 'matchesNumber')
221
226
  maxSize100 = Shapes::IntegerShape.new(name: 'maxSize100')
@@ -252,6 +257,10 @@ module Aws::CustomerProfiles
252
257
  AddProfileKeyResponse.add_member(:values, Shapes::ShapeRef.new(shape: requestValueList, location_name: "Values"))
253
258
  AddProfileKeyResponse.struct_class = Types::AddProfileKeyResponse
254
259
 
260
+ AdditionalSearchKey.add_member(:key_name, Shapes::ShapeRef.new(shape: name, required: true, location_name: "KeyName"))
261
+ AdditionalSearchKey.add_member(:values, Shapes::ShapeRef.new(shape: requestValueList, required: true, location_name: "Values"))
262
+ AdditionalSearchKey.struct_class = Types::AdditionalSearchKey
263
+
255
264
  Address.add_member(:address_1, Shapes::ShapeRef.new(shape: string1To255, location_name: "Address1"))
256
265
  Address.add_member(:address_2, Shapes::ShapeRef.new(shape: string1To255, location_name: "Address2"))
257
266
  Address.add_member(:address_3, Shapes::ShapeRef.new(shape: string1To255, location_name: "Address3"))
@@ -375,6 +384,8 @@ module Aws::CustomerProfiles
375
384
  CreateProfileRequest.add_member(:mailing_address, Shapes::ShapeRef.new(shape: Address, location_name: "MailingAddress"))
376
385
  CreateProfileRequest.add_member(:billing_address, Shapes::ShapeRef.new(shape: Address, location_name: "BillingAddress"))
377
386
  CreateProfileRequest.add_member(:attributes, Shapes::ShapeRef.new(shape: Attributes, location_name: "Attributes"))
387
+ CreateProfileRequest.add_member(:party_type_string, Shapes::ShapeRef.new(shape: string1To255, location_name: "PartyTypeString"))
388
+ CreateProfileRequest.add_member(:gender_string, Shapes::ShapeRef.new(shape: string1To255, location_name: "GenderString"))
378
389
  CreateProfileRequest.struct_class = Types::CreateProfileRequest
379
390
 
380
391
  CreateProfileResponse.add_member(:profile_id, Shapes::ShapeRef.new(shape: uuid, required: true, location_name: "ProfileId"))
@@ -481,6 +492,10 @@ module Aws::CustomerProfiles
481
492
  FlowDefinition.add_member(:trigger_config, Shapes::ShapeRef.new(shape: TriggerConfig, required: true, location_name: "TriggerConfig"))
482
493
  FlowDefinition.struct_class = Types::FlowDefinition
483
494
 
495
+ FoundByKeyValue.add_member(:key_name, Shapes::ShapeRef.new(shape: name, location_name: "KeyName"))
496
+ FoundByKeyValue.add_member(:values, Shapes::ShapeRef.new(shape: requestValueList, location_name: "Values"))
497
+ FoundByKeyValue.struct_class = Types::FoundByKeyValue
498
+
484
499
  GetAutoMergingPreviewRequest.add_member(:domain_name, Shapes::ShapeRef.new(shape: name, required: true, location: "uri", location_name: "DomainName"))
485
500
  GetAutoMergingPreviewRequest.add_member(:consolidation, Shapes::ShapeRef.new(shape: Consolidation, required: true, location_name: "Consolidation"))
486
501
  GetAutoMergingPreviewRequest.add_member(:conflict_resolution, Shapes::ShapeRef.new(shape: ConflictResolution, required: true, location_name: "ConflictResolution"))
@@ -843,6 +858,7 @@ module Aws::CustomerProfiles
843
858
  Profile.add_member(:mailing_address, Shapes::ShapeRef.new(shape: Address, location_name: "MailingAddress"))
844
859
  Profile.add_member(:billing_address, Shapes::ShapeRef.new(shape: Address, location_name: "BillingAddress"))
845
860
  Profile.add_member(:attributes, Shapes::ShapeRef.new(shape: Attributes, location_name: "Attributes"))
861
+ Profile.add_member(:found_by_items, Shapes::ShapeRef.new(shape: foundByList, location_name: "FoundByItems"))
846
862
  Profile.struct_class = Types::Profile
847
863
 
848
864
  ProfileIdList.member = Shapes::ShapeRef.new(shape: uuid)
@@ -945,6 +961,8 @@ module Aws::CustomerProfiles
945
961
  SearchProfilesRequest.add_member(:domain_name, Shapes::ShapeRef.new(shape: name, required: true, location: "uri", location_name: "DomainName"))
946
962
  SearchProfilesRequest.add_member(:key_name, Shapes::ShapeRef.new(shape: name, required: true, location_name: "KeyName"))
947
963
  SearchProfilesRequest.add_member(:values, Shapes::ShapeRef.new(shape: requestValueList, required: true, location_name: "Values"))
964
+ SearchProfilesRequest.add_member(:additional_search_keys, Shapes::ShapeRef.new(shape: additionalSearchKeysList, location_name: "AdditionalSearchKeys"))
965
+ SearchProfilesRequest.add_member(:logical_operator, Shapes::ShapeRef.new(shape: logicalOperator, location_name: "LogicalOperator"))
948
966
  SearchProfilesRequest.struct_class = Types::SearchProfilesRequest
949
967
 
950
968
  SearchProfilesResponse.add_member(:items, Shapes::ShapeRef.new(shape: ProfileList, location_name: "Items"))
@@ -1066,6 +1084,8 @@ module Aws::CustomerProfiles
1066
1084
  UpdateProfileRequest.add_member(:mailing_address, Shapes::ShapeRef.new(shape: UpdateAddress, location_name: "MailingAddress"))
1067
1085
  UpdateProfileRequest.add_member(:billing_address, Shapes::ShapeRef.new(shape: UpdateAddress, location_name: "BillingAddress"))
1068
1086
  UpdateProfileRequest.add_member(:attributes, Shapes::ShapeRef.new(shape: UpdateAttributes, location_name: "Attributes"))
1087
+ UpdateProfileRequest.add_member(:party_type_string, Shapes::ShapeRef.new(shape: string0To255, location_name: "PartyTypeString"))
1088
+ UpdateProfileRequest.add_member(:gender_string, Shapes::ShapeRef.new(shape: string0To255, location_name: "GenderString"))
1069
1089
  UpdateProfileRequest.struct_class = Types::UpdateProfileRequest
1070
1090
 
1071
1091
  UpdateProfileResponse.add_member(:profile_id, Shapes::ShapeRef.new(shape: uuid, required: true, location_name: "ProfileId"))
@@ -1087,6 +1107,10 @@ module Aws::CustomerProfiles
1087
1107
  ZendeskSourceProperties.add_member(:object, Shapes::ShapeRef.new(shape: Object, required: true, location_name: "Object"))
1088
1108
  ZendeskSourceProperties.struct_class = Types::ZendeskSourceProperties
1089
1109
 
1110
+ additionalSearchKeysList.member = Shapes::ShapeRef.new(shape: AdditionalSearchKey)
1111
+
1112
+ foundByList.member = Shapes::ShapeRef.new(shape: FoundByKeyValue)
1113
+
1090
1114
  requestValueList.member = Shapes::ShapeRef.new(shape: string1To255)
1091
1115
 
1092
1116
 
@@ -50,6 +50,9 @@ module Aws::CustomerProfiles
50
50
 
51
51
  def initialize(options = {})
52
52
  self[:region] = options[:region]
53
+ if self[:region].nil?
54
+ raise ArgumentError, "Missing required EndpointParameter: :region"
55
+ end
53
56
  self[:use_dual_stack] = options[:use_dual_stack]
54
57
  self[:use_dual_stack] = false if self[:use_dual_stack].nil?
55
58
  if self[:use_dual_stack].nil?
@@ -29,82 +29,81 @@ module Aws::CustomerProfiles
29
29
  # @api private
30
30
  RULES = <<-JSON
31
31
  eyJ2ZXJzaW9uIjoiMS4wIiwicGFyYW1ldGVycyI6eyJSZWdpb24iOnsiYnVp
32
- bHRJbiI6IkFXUzo6UmVnaW9uIiwicmVxdWlyZWQiOmZhbHNlLCJkb2N1bWVu
33
- dGF0aW9uIjoiVGhlIEFXUyByZWdpb24gdXNlZCB0byBkaXNwYXRjaCB0aGUg
34
- cmVxdWVzdC4iLCJ0eXBlIjoiU3RyaW5nIn0sIlVzZUR1YWxTdGFjayI6eyJi
35
- dWlsdEluIjoiQVdTOjpVc2VEdWFsU3RhY2siLCJyZXF1aXJlZCI6dHJ1ZSwi
36
- ZGVmYXVsdCI6ZmFsc2UsImRvY3VtZW50YXRpb24iOiJXaGVuIHRydWUsIHVz
37
- ZSB0aGUgZHVhbC1zdGFjayBlbmRwb2ludC4gSWYgdGhlIGNvbmZpZ3VyZWQg
38
- ZW5kcG9pbnQgZG9lcyBub3Qgc3VwcG9ydCBkdWFsLXN0YWNrLCBkaXNwYXRj
39
- aGluZyB0aGUgcmVxdWVzdCBNQVkgcmV0dXJuIGFuIGVycm9yLiIsInR5cGUi
40
- OiJCb29sZWFuIn0sIlVzZUZJUFMiOnsiYnVpbHRJbiI6IkFXUzo6VXNlRklQ
41
- UyIsInJlcXVpcmVkIjp0cnVlLCJkZWZhdWx0IjpmYWxzZSwiZG9jdW1lbnRh
42
- dGlvbiI6IldoZW4gdHJ1ZSwgc2VuZCB0aGlzIHJlcXVlc3QgdG8gdGhlIEZJ
43
- UFMtY29tcGxpYW50IHJlZ2lvbmFsIGVuZHBvaW50LiBJZiB0aGUgY29uZmln
44
- dXJlZCBlbmRwb2ludCBkb2VzIG5vdCBoYXZlIGEgRklQUyBjb21wbGlhbnQg
45
- ZW5kcG9pbnQsIGRpc3BhdGNoaW5nIHRoZSByZXF1ZXN0IHdpbGwgcmV0dXJu
46
- IGFuIGVycm9yLiIsInR5cGUiOiJCb29sZWFuIn0sIkVuZHBvaW50Ijp7ImJ1
47
- aWx0SW4iOiJTREs6OkVuZHBvaW50IiwicmVxdWlyZWQiOmZhbHNlLCJkb2N1
48
- bWVudGF0aW9uIjoiT3ZlcnJpZGUgdGhlIGVuZHBvaW50IHVzZWQgdG8gc2Vu
49
- ZCB0aGlzIHJlcXVlc3QiLCJ0eXBlIjoiU3RyaW5nIn19LCJydWxlcyI6W3si
50
- Y29uZGl0aW9ucyI6W3siZm4iOiJhd3MucGFydGl0aW9uIiwiYXJndiI6W3si
51
- cmVmIjoiUmVnaW9uIn1dLCJhc3NpZ24iOiJQYXJ0aXRpb25SZXN1bHQifV0s
52
- InR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMiOlt7ImZuIjoi
53
- aXNTZXQiLCJhcmd2IjpbeyJyZWYiOiJFbmRwb2ludCJ9XX0seyJmbiI6InBh
54
- cnNlVVJMIiwiYXJndiI6W3sicmVmIjoiRW5kcG9pbnQifV0sImFzc2lnbiI6
55
- InVybCJ9XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6
56
- W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoiVXNlRklQ
57
- UyJ9LHRydWVdfV0sImVycm9yIjoiSW52YWxpZCBDb25maWd1cmF0aW9uOiBG
58
- SVBTIGFuZCBjdXN0b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWQiLCJ0
59
- eXBlIjoiZXJyb3IifSx7ImNvbmRpdGlvbnMiOltdLCJ0eXBlIjoidHJlZSIs
60
- InJ1bGVzIjpbeyJjb25kaXRpb25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMi
61
- LCJhcmd2IjpbeyJyZWYiOiJVc2VEdWFsU3RhY2sifSx0cnVlXX1dLCJlcnJv
62
- ciI6IkludmFsaWQgQ29uZmlndXJhdGlvbjogRHVhbHN0YWNrIGFuZCBjdXN0
63
- b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWQiLCJ0eXBlIjoiZXJyb3Ii
64
- fSx7ImNvbmRpdGlvbnMiOltdLCJlbmRwb2ludCI6eyJ1cmwiOnsicmVmIjoi
65
- RW5kcG9pbnQifSwicHJvcGVydGllcyI6e30sImhlYWRlcnMiOnt9fSwidHlw
66
- ZSI6ImVuZHBvaW50In1dfV19LHsiY29uZGl0aW9ucyI6W3siZm4iOiJib29s
67
- ZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoiVXNlRklQUyJ9LHRydWVdfSx7
68
- ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt7InJlZiI6IlVzZUR1YWxT
69
- dGFjayJ9LHRydWVdfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRp
70
- dGlvbnMiOlt7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt0cnVlLHsi
71
- Zm4iOiJnZXRBdHRyIiwiYXJndiI6W3sicmVmIjoiUGFydGl0aW9uUmVzdWx0
72
- In0sInN1cHBvcnRzRklQUyJdfV19LHsiZm4iOiJib29sZWFuRXF1YWxzIiwi
73
- YXJndiI6W3RydWUseyJmbiI6ImdldEF0dHIiLCJhcmd2IjpbeyJyZWYiOiJQ
74
- YXJ0aXRpb25SZXN1bHQifSwic3VwcG9ydHNEdWFsU3RhY2siXX1dfV0sInR5
32
+ bHRJbiI6IkFXUzo6UmVnaW9uIiwicmVxdWlyZWQiOnRydWUsImRvY3VtZW50
33
+ YXRpb24iOiJUaGUgQVdTIHJlZ2lvbiB1c2VkIHRvIGRpc3BhdGNoIHRoZSBy
34
+ ZXF1ZXN0LiIsInR5cGUiOiJTdHJpbmcifSwiVXNlRHVhbFN0YWNrIjp7ImJ1
35
+ aWx0SW4iOiJBV1M6OlVzZUR1YWxTdGFjayIsInJlcXVpcmVkIjp0cnVlLCJk
36
+ ZWZhdWx0IjpmYWxzZSwiZG9jdW1lbnRhdGlvbiI6IldoZW4gdHJ1ZSwgdXNl
37
+ IHRoZSBkdWFsLXN0YWNrIGVuZHBvaW50LiBJZiB0aGUgY29uZmlndXJlZCBl
38
+ bmRwb2ludCBkb2VzIG5vdCBzdXBwb3J0IGR1YWwtc3RhY2ssIGRpc3BhdGNo
39
+ aW5nIHRoZSByZXF1ZXN0IE1BWSByZXR1cm4gYW4gZXJyb3IuIiwidHlwZSI6
40
+ IkJvb2xlYW4ifSwiVXNlRklQUyI6eyJidWlsdEluIjoiQVdTOjpVc2VGSVBT
41
+ IiwicmVxdWlyZWQiOnRydWUsImRlZmF1bHQiOmZhbHNlLCJkb2N1bWVudGF0
42
+ aW9uIjoiV2hlbiB0cnVlLCBzZW5kIHRoaXMgcmVxdWVzdCB0byB0aGUgRklQ
43
+ Uy1jb21wbGlhbnQgcmVnaW9uYWwgZW5kcG9pbnQuIElmIHRoZSBjb25maWd1
44
+ cmVkIGVuZHBvaW50IGRvZXMgbm90IGhhdmUgYSBGSVBTIGNvbXBsaWFudCBl
45
+ bmRwb2ludCwgZGlzcGF0Y2hpbmcgdGhlIHJlcXVlc3Qgd2lsbCByZXR1cm4g
46
+ YW4gZXJyb3IuIiwidHlwZSI6IkJvb2xlYW4ifSwiRW5kcG9pbnQiOnsiYnVp
47
+ bHRJbiI6IlNESzo6RW5kcG9pbnQiLCJyZXF1aXJlZCI6ZmFsc2UsImRvY3Vt
48
+ ZW50YXRpb24iOiJPdmVycmlkZSB0aGUgZW5kcG9pbnQgdXNlZCB0byBzZW5k
49
+ IHRoaXMgcmVxdWVzdCIsInR5cGUiOiJTdHJpbmcifX0sInJ1bGVzIjpbeyJj
50
+ b25kaXRpb25zIjpbeyJmbiI6ImF3cy5wYXJ0aXRpb24iLCJhcmd2IjpbeyJy
51
+ ZWYiOiJSZWdpb24ifV0sImFzc2lnbiI6IlBhcnRpdGlvblJlc3VsdCJ9XSwi
52
+ dHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6W3siZm4iOiJp
53
+ c1NldCIsImFyZ3YiOlt7InJlZiI6IkVuZHBvaW50In1dfV0sInR5cGUiOiJ0
54
+ cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMiOlt7ImZuIjoiYm9vbGVhbkVx
55
+ dWFscyIsImFyZ3YiOlt7InJlZiI6IlVzZUZJUFMifSx0cnVlXX1dLCJlcnJv
56
+ ciI6IkludmFsaWQgQ29uZmlndXJhdGlvbjogRklQUyBhbmQgY3VzdG9tIGVu
57
+ ZHBvaW50IGFyZSBub3Qgc3VwcG9ydGVkIiwidHlwZSI6ImVycm9yIn0seyJj
58
+ b25kaXRpb25zIjpbXSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0
59
+ aW9ucyI6W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoi
60
+ VXNlRHVhbFN0YWNrIn0sdHJ1ZV19XSwiZXJyb3IiOiJJbnZhbGlkIENvbmZp
61
+ Z3VyYXRpb246IER1YWxzdGFjayBhbmQgY3VzdG9tIGVuZHBvaW50IGFyZSBu
62
+ b3Qgc3VwcG9ydGVkIiwidHlwZSI6ImVycm9yIn0seyJjb25kaXRpb25zIjpb
63
+ XSwiZW5kcG9pbnQiOnsidXJsIjp7InJlZiI6IkVuZHBvaW50In0sInByb3Bl
64
+ cnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX1d
65
+ fSx7ImNvbmRpdGlvbnMiOlt7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3Yi
66
+ Olt7InJlZiI6IlVzZUZJUFMifSx0cnVlXX0seyJmbiI6ImJvb2xlYW5FcXVh
67
+ bHMiLCJhcmd2IjpbeyJyZWYiOiJVc2VEdWFsU3RhY2sifSx0cnVlXX1dLCJ0
68
+ eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25zIjpbeyJmbiI6ImJv
69
+ b2xlYW5FcXVhbHMiLCJhcmd2IjpbdHJ1ZSx7ImZuIjoiZ2V0QXR0ciIsImFy
70
+ Z3YiOlt7InJlZiI6IlBhcnRpdGlvblJlc3VsdCJ9LCJzdXBwb3J0c0ZJUFMi
71
+ XX1dfSx7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt0cnVlLHsiZm4i
72
+ OiJnZXRBdHRyIiwiYXJndiI6W3sicmVmIjoiUGFydGl0aW9uUmVzdWx0In0s
73
+ InN1cHBvcnRzRHVhbFN0YWNrIl19XX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVz
74
+ IjpbeyJjb25kaXRpb25zIjpbXSwiZW5kcG9pbnQiOnsidXJsIjoiaHR0cHM6
75
+ Ly9wcm9maWxlLWZpcHMue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkdWFs
76
+ U3RhY2tEbnNTdWZmaXh9IiwicHJvcGVydGllcyI6e30sImhlYWRlcnMiOnt9
77
+ fSwidHlwZSI6ImVuZHBvaW50In1dfSx7ImNvbmRpdGlvbnMiOltdLCJlcnJv
78
+ ciI6IkZJUFMgYW5kIER1YWxTdGFjayBhcmUgZW5hYmxlZCwgYnV0IHRoaXMg
79
+ cGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgb25lIG9yIGJvdGgiLCJ0eXBl
80
+ IjoiZXJyb3IifV19LHsiY29uZGl0aW9ucyI6W3siZm4iOiJib29sZWFuRXF1
81
+ YWxzIiwiYXJndiI6W3sicmVmIjoiVXNlRklQUyJ9LHRydWVdfV0sInR5cGUi
82
+ OiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMiOlt7ImZuIjoiYm9vbGVh
83
+ bkVxdWFscyIsImFyZ3YiOlt0cnVlLHsiZm4iOiJnZXRBdHRyIiwiYXJndiI6
84
+ W3sicmVmIjoiUGFydGl0aW9uUmVzdWx0In0sInN1cHBvcnRzRklQUyJdfV19
85
+ XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6W10sInR5
75
86
  cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMiOltdLCJlbmRwb2lu
76
87
  dCI6eyJ1cmwiOiJodHRwczovL3Byb2ZpbGUtZmlwcy57UmVnaW9ufS57UGFy
77
- dGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH0iLCJwcm9wZXJ0aWVz
78
- Ijp7fSwiaGVhZGVycyI6e319LCJ0eXBlIjoiZW5kcG9pbnQifV19LHsiY29u
79
- ZGl0aW9ucyI6W10sImVycm9yIjoiRklQUyBhbmQgRHVhbFN0YWNrIGFyZSBl
80
- bmFibGVkLCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBv
81
- bmUgb3IgYm90aCIsInR5cGUiOiJlcnJvciJ9XX0seyJjb25kaXRpb25zIjpb
82
- eyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbeyJyZWYiOiJVc2VGSVBT
83
- In0sdHJ1ZV19XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9u
84
- cyI6W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3RydWUseyJmbiI6
85
- ImdldEF0dHIiLCJhcmd2IjpbeyJyZWYiOiJQYXJ0aXRpb25SZXN1bHQifSwi
86
- c3VwcG9ydHNGSVBTIl19XX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJj
87
- b25kaXRpb25zIjpbXSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0
88
- aW9ucyI6W10sImVuZHBvaW50Ijp7InVybCI6Imh0dHBzOi8vcHJvZmlsZS1m
89
- aXBzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fSIsInBy
90
- b3BlcnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9
91
- XX1dfSx7ImNvbmRpdGlvbnMiOltdLCJlcnJvciI6IkZJUFMgaXMgZW5hYmxl
92
- ZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBGSVBTIiwi
93
- dHlwZSI6ImVycm9yIn1dfSx7ImNvbmRpdGlvbnMiOlt7ImZuIjoiYm9vbGVh
94
- bkVxdWFscyIsImFyZ3YiOlt7InJlZiI6IlVzZUR1YWxTdGFjayJ9LHRydWVd
95
- fV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMiOlt7ImZu
96
- IjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt0cnVlLHsiZm4iOiJnZXRBdHRy
97
- IiwiYXJndiI6W3sicmVmIjoiUGFydGl0aW9uUmVzdWx0In0sInN1cHBvcnRz
98
- RHVhbFN0YWNrIl19XX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25k
99
- aXRpb25zIjpbXSwiZW5kcG9pbnQiOnsidXJsIjoiaHR0cHM6Ly9wcm9maWxl
100
- LntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4
101
- fSIsInByb3BlcnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRw
102
- b2ludCJ9XX0seyJjb25kaXRpb25zIjpbXSwiZXJyb3IiOiJEdWFsU3RhY2sg
103
- aXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9y
104
- dCBEdWFsU3RhY2siLCJ0eXBlIjoiZXJyb3IifV19LHsiY29uZGl0aW9ucyI6
105
- W10sImVuZHBvaW50Ijp7InVybCI6Imh0dHBzOi8vcHJvZmlsZS57UmVnaW9u
106
- fS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH0iLCJwcm9wZXJ0aWVzIjp7
107
- fSwiaGVhZGVycyI6e319LCJ0eXBlIjoiZW5kcG9pbnQifV19XX0=
88
+ dGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH0iLCJwcm9wZXJ0aWVzIjp7fSwiaGVh
89
+ ZGVycyI6e319LCJ0eXBlIjoiZW5kcG9pbnQifV19XX0seyJjb25kaXRpb25z
90
+ IjpbXSwiZXJyb3IiOiJGSVBTIGlzIGVuYWJsZWQgYnV0IHRoaXMgcGFydGl0
91
+ aW9uIGRvZXMgbm90IHN1cHBvcnQgRklQUyIsInR5cGUiOiJlcnJvciJ9XX0s
92
+ eyJjb25kaXRpb25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2Ijpb
93
+ eyJyZWYiOiJVc2VEdWFsU3RhY2sifSx0cnVlXX1dLCJ0eXBlIjoidHJlZSIs
94
+ InJ1bGVzIjpbeyJjb25kaXRpb25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMi
95
+ LCJhcmd2IjpbdHJ1ZSx7ImZuIjoiZ2V0QXR0ciIsImFyZ3YiOlt7InJlZiI6
96
+ IlBhcnRpdGlvblJlc3VsdCJ9LCJzdXBwb3J0c0R1YWxTdGFjayJdfV19XSwi
97
+ dHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6W10sImVuZHBv
98
+ aW50Ijp7InVybCI6Imh0dHBzOi8vcHJvZmlsZS57UmVnaW9ufS57UGFydGl0
99
+ aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH0iLCJwcm9wZXJ0aWVzIjp7
100
+ fSwiaGVhZGVycyI6e319LCJ0eXBlIjoiZW5kcG9pbnQifV19LHsiY29uZGl0
101
+ aW9ucyI6W10sImVycm9yIjoiRHVhbFN0YWNrIGlzIGVuYWJsZWQgYnV0IHRo
102
+ aXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgRHVhbFN0YWNrIiwidHlw
103
+ ZSI6ImVycm9yIn1dfSx7ImNvbmRpdGlvbnMiOltdLCJlbmRwb2ludCI6eyJ1
104
+ cmwiOiJodHRwczovL3Byb2ZpbGUue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3Vs
105
+ dCNkbnNTdWZmaXh9IiwicHJvcGVydGllcyI6e30sImhlYWRlcnMiOnt9fSwi
106
+ dHlwZSI6ImVuZHBvaW50In1dfV19
108
107
 
109
108
  JSON
110
109
  end