aws-sdk-customerprofiles 1.23.0 → 1.25.0

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