aws-sdk-kendra 1.59.0 → 1.61.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: 36a46ed1f9911716d2747edbe0d3923c18b853ea92e942fc7fb71051b7e99e2b
4
- data.tar.gz: 1b677dc00271e6bd5da551834f323453bb0dd59fd3a75d71b50b7628e8d3a89b
3
+ metadata.gz: 8a2003c9a419feeec9dedf1b72f3223d9984c85dcd4a48bde7761039e431f711
4
+ data.tar.gz: 46231597c0f3cf5fed87fd152f9c19c3c30bf59900f9c9b8085f51e1139889a7
5
5
  SHA512:
6
- metadata.gz: 034d984b8828469a0d3393a9bae861a02597017aa91da25b778dc124ba7094817d091b2817cfe521621ecb4986c3958248667109fccb50c02a8b4ab614a03864
7
- data.tar.gz: b7b01bcd909608676b711fc79ea5d7de765a32b2600e174e0fc48e5c7eb6215030ae0a840328e66f7b498bf8bcbee49144c7f2856d9c4c134f4d212c8c776a65
6
+ metadata.gz: 3c0403c404e0b81f4c35f267cb2254b06a5197d21bba1ba75b9b8b52be188a873ff20288c21d0212813c778799980214426ac1238d7c0372a2243e36c1191a38
7
+ data.tar.gz: 7051e9882942136261b50211b761c5547fdbc69e31f117a11de5b56c90d5ec6ae45352498aec3a97422fb4468322e2b48560697ac2cf05e041be02d6679ff6cb
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.61.0 (2022-11-28)
5
+ ------------------
6
+
7
+ * Feature - Amazon Kendra now supports preview of table information from HTML tables in the search results. The most relevant cells with their corresponding rows, columns are displayed as a preview in the search result. The most relevant table cell or cells are also highlighted in table preview.
8
+
9
+ 1.60.0 (2022-10-25)
10
+ ------------------
11
+
12
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
13
+
4
14
  1.59.0 (2022-09-27)
5
15
  ------------------
6
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.59.0
1
+ 1.61.0
@@ -30,7 +30,7 @@ require 'aws-sdk-core/plugins/http_checksum.rb'
30
30
  require 'aws-sdk-core/plugins/checksum_algorithm.rb'
31
31
  require 'aws-sdk-core/plugins/defaults_mode.rb'
32
32
  require 'aws-sdk-core/plugins/recursion_detection.rb'
33
- require 'aws-sdk-core/plugins/signature_v4.rb'
33
+ require 'aws-sdk-core/plugins/sign.rb'
34
34
  require 'aws-sdk-core/plugins/protocols/json_rpc.rb'
35
35
 
36
36
  Aws::Plugins::GlobalConfiguration.add_identifier(:kendra)
@@ -79,8 +79,9 @@ module Aws::Kendra
79
79
  add_plugin(Aws::Plugins::ChecksumAlgorithm)
80
80
  add_plugin(Aws::Plugins::DefaultsMode)
81
81
  add_plugin(Aws::Plugins::RecursionDetection)
82
- add_plugin(Aws::Plugins::SignatureV4)
82
+ add_plugin(Aws::Plugins::Sign)
83
83
  add_plugin(Aws::Plugins::Protocols::JsonRpc)
84
+ add_plugin(Aws::Kendra::Plugins::Endpoints)
84
85
 
85
86
  # @overload initialize(options)
86
87
  # @param [Hash] options
@@ -297,6 +298,19 @@ module Aws::Kendra
297
298
  # ** Please note ** When response stubbing is enabled, no HTTP
298
299
  # requests are made, and retries are disabled.
299
300
  #
301
+ # @option options [Aws::TokenProvider] :token_provider
302
+ # A Bearer Token Provider. This can be an instance of any one of the
303
+ # following classes:
304
+ #
305
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
306
+ # tokens.
307
+ #
308
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
309
+ # access token generated from `aws login`.
310
+ #
311
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
312
+ # will be used to search for tokens configured for your profile in shared configuration files.
313
+ #
300
314
  # @option options [Boolean] :use_dualstack_endpoint
301
315
  # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
302
316
  # will be used if available.
@@ -310,6 +324,9 @@ module Aws::Kendra
310
324
  # When `true`, request parameters are validated before
311
325
  # sending the request.
312
326
  #
327
+ # @option options [Aws::Kendra::EndpointProvider] :endpoint_provider
328
+ # The endpoint provider used to resolve endpoints. Any object that responds to `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to `Aws::Kendra::EndpointParameters`
329
+ #
313
330
  # @option options [URI::HTTP,String] :http_proxy A proxy to send
314
331
  # requests through. Formatted like 'http://proxy.com:123'.
315
332
  #
@@ -3990,7 +4007,7 @@ module Aws::Kendra
3990
4007
  # If the previous response was incomplete (because there is more data to
3991
4008
  # retrieve), Amazon Kendra returns a pagination token in the response.
3992
4009
  # You can use this pagination token to retrieve the next set of data
3993
- # source connectors (`DataSourceSummaryItems`).
4010
+ # source connectors.
3994
4011
  #
3995
4012
  # @option params [Integer] :max_results
3996
4013
  # The maximum number of data source connectors to return.
@@ -4316,11 +4333,10 @@ module Aws::Kendra
4316
4333
  # @option params [String] :next_token
4317
4334
  # If the previous response was incomplete (because there is more data to
4318
4335
  # retrieve), Amazon Kendra returns a pagination token in the response.
4319
- # You can use this pagination token to retrieve the next set of indexes
4320
- # (`DataSourceSummaryItems`).
4336
+ # You can use this pagination token to retrieve the next set of indexes.
4321
4337
  #
4322
4338
  # @option params [Integer] :max_results
4323
- # The maximum number of data sources to return.
4339
+ # The maximum number of indices to return.
4324
4340
  #
4325
4341
  # @return [Types::ListIndicesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4326
4342
  #
@@ -4648,11 +4664,14 @@ module Aws::Kendra
4648
4664
  # Each query returns the 100 most relevant results.
4649
4665
  #
4650
4666
  # @option params [required, String] :index_id
4651
- # The unique identifier of the index to search. The identifier is
4652
- # returned in the response from the `CreateIndex` API.
4667
+ # The identifier of the index to search. The identifier is returned in
4668
+ # the response from the `CreateIndex` API.
4653
4669
  #
4654
4670
  # @option params [String] :query_text
4655
- # The text to search for.
4671
+ # The input query text for the search. Amazon Kendra truncates queries
4672
+ # at 30 token words, which excludes punctuation and stop words.
4673
+ # Truncation still applies if you use Boolean or more advanced, complex
4674
+ # queries.
4656
4675
  #
4657
4676
  # @option params [Types::AttributeFilter] :attribute_filter
4658
4677
  # Enables filtered searches based on document attributes. You can only
@@ -4873,6 +4892,7 @@ module Aws::Kendra
4873
4892
  # resp.result_items #=> Array
4874
4893
  # resp.result_items[0].id #=> String
4875
4894
  # resp.result_items[0].type #=> String, one of "DOCUMENT", "QUESTION_ANSWER", "ANSWER"
4895
+ # resp.result_items[0].format #=> String, one of "TABLE", "TEXT"
4876
4896
  # resp.result_items[0].additional_attributes #=> Array
4877
4897
  # resp.result_items[0].additional_attributes[0].key #=> String
4878
4898
  # resp.result_items[0].additional_attributes[0].value_type #=> String, one of "TEXT_WITH_HIGHLIGHTS_VALUE"
@@ -4905,6 +4925,13 @@ module Aws::Kendra
4905
4925
  # resp.result_items[0].document_attributes[0].value.date_value #=> Time
4906
4926
  # resp.result_items[0].score_attributes.score_confidence #=> String, one of "VERY_HIGH", "HIGH", "MEDIUM", "LOW", "NOT_AVAILABLE"
4907
4927
  # resp.result_items[0].feedback_token #=> String
4928
+ # resp.result_items[0].table_excerpt.rows #=> Array
4929
+ # resp.result_items[0].table_excerpt.rows[0].cells #=> Array
4930
+ # resp.result_items[0].table_excerpt.rows[0].cells[0].value #=> String
4931
+ # resp.result_items[0].table_excerpt.rows[0].cells[0].top_answer #=> Boolean
4932
+ # resp.result_items[0].table_excerpt.rows[0].cells[0].highlighted #=> Boolean
4933
+ # resp.result_items[0].table_excerpt.rows[0].cells[0].header #=> Boolean
4934
+ # resp.result_items[0].table_excerpt.total_number_of_rows #=> Integer
4908
4935
  # resp.facet_results #=> Array
4909
4936
  # resp.facet_results[0].document_attribute_key #=> String
4910
4937
  # resp.facet_results[0].document_attribute_value_type #=> String, one of "STRING_VALUE", "STRING_LIST_VALUE", "LONG_VALUE", "DATE_VALUE"
@@ -6386,7 +6413,7 @@ module Aws::Kendra
6386
6413
  params: params,
6387
6414
  config: config)
6388
6415
  context[:gem_name] = 'aws-sdk-kendra'
6389
- context[:gem_version] = '1.59.0'
6416
+ context[:gem_version] = '1.61.0'
6390
6417
  Seahorse::Client::Request.new(handlers, context)
6391
6418
  end
6392
6419
 
@@ -378,6 +378,7 @@ module Aws::Kendra
378
378
  QueryIdentifiersEnclosingOption = Shapes::StringShape.new(name: 'QueryIdentifiersEnclosingOption')
379
379
  QueryRequest = Shapes::StructureShape.new(name: 'QueryRequest')
380
380
  QueryResult = Shapes::StructureShape.new(name: 'QueryResult')
381
+ QueryResultFormat = Shapes::StringShape.new(name: 'QueryResultFormat')
381
382
  QueryResultItem = Shapes::StructureShape.new(name: 'QueryResultItem')
382
383
  QueryResultItemList = Shapes::ListShape.new(name: 'QueryResultItemList')
383
384
  QueryResultType = Shapes::StringShape.new(name: 'QueryResultType')
@@ -482,7 +483,12 @@ module Aws::Kendra
482
483
  SuggestionQueryText = Shapes::StringShape.new(name: 'SuggestionQueryText')
483
484
  SuggestionTextWithHighlights = Shapes::StructureShape.new(name: 'SuggestionTextWithHighlights')
484
485
  SuggestionValue = Shapes::StructureShape.new(name: 'SuggestionValue')
486
+ TableCell = Shapes::StructureShape.new(name: 'TableCell')
487
+ TableCellList = Shapes::ListShape.new(name: 'TableCellList')
488
+ TableExcerpt = Shapes::StructureShape.new(name: 'TableExcerpt')
485
489
  TableName = Shapes::StringShape.new(name: 'TableName')
490
+ TableRow = Shapes::StructureShape.new(name: 'TableRow')
491
+ TableRowList = Shapes::ListShape.new(name: 'TableRowList')
486
492
  Tag = Shapes::StructureShape.new(name: 'Tag')
487
493
  TagKey = Shapes::StringShape.new(name: 'TagKey')
488
494
  TagKeyList = Shapes::ListShape.new(name: 'TagKeyList')
@@ -1720,6 +1726,7 @@ module Aws::Kendra
1720
1726
 
1721
1727
  QueryResultItem.add_member(:id, Shapes::ShapeRef.new(shape: ResultId, location_name: "Id"))
1722
1728
  QueryResultItem.add_member(:type, Shapes::ShapeRef.new(shape: QueryResultType, location_name: "Type"))
1729
+ QueryResultItem.add_member(:format, Shapes::ShapeRef.new(shape: QueryResultFormat, location_name: "Format"))
1723
1730
  QueryResultItem.add_member(:additional_attributes, Shapes::ShapeRef.new(shape: AdditionalResultAttributeList, location_name: "AdditionalAttributes"))
1724
1731
  QueryResultItem.add_member(:document_id, Shapes::ShapeRef.new(shape: DocumentId, location_name: "DocumentId"))
1725
1732
  QueryResultItem.add_member(:document_title, Shapes::ShapeRef.new(shape: TextWithHighlights, location_name: "DocumentTitle"))
@@ -1728,6 +1735,7 @@ module Aws::Kendra
1728
1735
  QueryResultItem.add_member(:document_attributes, Shapes::ShapeRef.new(shape: DocumentAttributeList, location_name: "DocumentAttributes"))
1729
1736
  QueryResultItem.add_member(:score_attributes, Shapes::ShapeRef.new(shape: ScoreAttributes, location_name: "ScoreAttributes"))
1730
1737
  QueryResultItem.add_member(:feedback_token, Shapes::ShapeRef.new(shape: FeedbackToken, location_name: "FeedbackToken"))
1738
+ QueryResultItem.add_member(:table_excerpt, Shapes::ShapeRef.new(shape: TableExcerpt, location_name: "TableExcerpt"))
1731
1739
  QueryResultItem.struct_class = Types::QueryResultItem
1732
1740
 
1733
1741
  QueryResultItemList.member = Shapes::ShapeRef.new(shape: QueryResultItem)
@@ -2007,6 +2015,23 @@ module Aws::Kendra
2007
2015
  SuggestionValue.add_member(:text, Shapes::ShapeRef.new(shape: SuggestionTextWithHighlights, location_name: "Text"))
2008
2016
  SuggestionValue.struct_class = Types::SuggestionValue
2009
2017
 
2018
+ TableCell.add_member(:value, Shapes::ShapeRef.new(shape: String, location_name: "Value"))
2019
+ TableCell.add_member(:top_answer, Shapes::ShapeRef.new(shape: Boolean, location_name: "TopAnswer"))
2020
+ TableCell.add_member(:highlighted, Shapes::ShapeRef.new(shape: Boolean, location_name: "Highlighted"))
2021
+ TableCell.add_member(:header, Shapes::ShapeRef.new(shape: Boolean, location_name: "Header"))
2022
+ TableCell.struct_class = Types::TableCell
2023
+
2024
+ TableCellList.member = Shapes::ShapeRef.new(shape: TableCell)
2025
+
2026
+ TableExcerpt.add_member(:rows, Shapes::ShapeRef.new(shape: TableRowList, location_name: "Rows"))
2027
+ TableExcerpt.add_member(:total_number_of_rows, Shapes::ShapeRef.new(shape: Integer, location_name: "TotalNumberOfRows"))
2028
+ TableExcerpt.struct_class = Types::TableExcerpt
2029
+
2030
+ TableRow.add_member(:cells, Shapes::ShapeRef.new(shape: TableCellList, location_name: "Cells"))
2031
+ TableRow.struct_class = Types::TableRow
2032
+
2033
+ TableRowList.member = Shapes::ShapeRef.new(shape: TableRow)
2034
+
2010
2035
  Tag.add_member(:key, Shapes::ShapeRef.new(shape: TagKey, required: true, location_name: "Key"))
2011
2036
  Tag.add_member(:value, Shapes::ShapeRef.new(shape: TagValue, required: true, location_name: "Value"))
2012
2037
  Tag.struct_class = Types::Tag
@@ -0,0 +1,69 @@
1
+ # frozen_string_literal: true
2
+
3
+ # WARNING ABOUT GENERATED CODE
4
+ #
5
+ # This file is generated. See the contributing guide for more information:
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+ module Aws::Kendra
11
+ # Endpoint parameters used to influence endpoints per request.
12
+ #
13
+ # @!attribute region
14
+ # The AWS region used to dispatch the request.
15
+ #
16
+ # @return [String]
17
+ #
18
+ # @!attribute use_dual_stack
19
+ # When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
20
+ #
21
+ # @return [Boolean]
22
+ #
23
+ # @!attribute use_fips
24
+ # When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.
25
+ #
26
+ # @return [Boolean]
27
+ #
28
+ # @!attribute endpoint
29
+ # Override the endpoint used to send this request
30
+ #
31
+ # @return [String]
32
+ #
33
+ EndpointParameters = Struct.new(
34
+ :region,
35
+ :use_dual_stack,
36
+ :use_fips,
37
+ :endpoint,
38
+ ) do
39
+ include Aws::Structure
40
+
41
+ # @api private
42
+ class << self
43
+ PARAM_MAP = {
44
+ 'Region' => :region,
45
+ 'UseDualStack' => :use_dual_stack,
46
+ 'UseFIPS' => :use_fips,
47
+ 'Endpoint' => :endpoint,
48
+ }.freeze
49
+ end
50
+
51
+ def initialize(options = {})
52
+ self[:region] = options[:region]
53
+ if self[:region].nil?
54
+ raise ArgumentError, "Missing required EndpointParameter: :region"
55
+ end
56
+ self[:use_dual_stack] = options[:use_dual_stack]
57
+ self[:use_dual_stack] = false if self[:use_dual_stack].nil?
58
+ if self[:use_dual_stack].nil?
59
+ raise ArgumentError, "Missing required EndpointParameter: :use_dual_stack"
60
+ end
61
+ self[:use_fips] = options[:use_fips]
62
+ self[:use_fips] = false if self[:use_fips].nil?
63
+ if self[:use_fips].nil?
64
+ raise ArgumentError, "Missing required EndpointParameter: :use_fips"
65
+ end
66
+ self[:endpoint] = options[:endpoint]
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,111 @@
1
+ # frozen_string_literal: true
2
+
3
+ # WARNING ABOUT GENERATED CODE
4
+ #
5
+ # This file is generated. See the contributing guide for more information:
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+ module Aws::Kendra
11
+ class EndpointProvider
12
+ def initialize(rule_set = nil)
13
+ @@rule_set ||= begin
14
+ endpoint_rules = Aws::Json.load(Base64.decode64(RULES))
15
+ Aws::Endpoints::RuleSet.new(
16
+ version: endpoint_rules['version'],
17
+ service_id: endpoint_rules['serviceId'],
18
+ parameters: endpoint_rules['parameters'],
19
+ rules: endpoint_rules['rules']
20
+ )
21
+ end
22
+ @provider = Aws::Endpoints::RulesProvider.new(rule_set || @@rule_set)
23
+ end
24
+
25
+ def resolve_endpoint(parameters)
26
+ @provider.resolve_endpoint(parameters)
27
+ end
28
+
29
+ # @api private
30
+ RULES = <<-JSON
31
+ eyJ2ZXJzaW9uIjoiMS4wIiwicGFyYW1ldGVycyI6eyJSZWdpb24iOnsiYnVp
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
+ c1NldCIsImFyZ3YiOlt7InJlZiI6IkVuZHBvaW50In1dfSx7ImZuIjoicGFy
54
+ c2VVUkwiLCJhcmd2IjpbeyJyZWYiOiJFbmRwb2ludCJ9XSwiYXNzaWduIjoi
55
+ dXJsIn1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25zIjpb
56
+ eyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbeyJyZWYiOiJVc2VGSVBT
57
+ In0sdHJ1ZV19XSwiZXJyb3IiOiJJbnZhbGlkIENvbmZpZ3VyYXRpb246IEZJ
58
+ UFMgYW5kIGN1c3RvbSBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZCIsInR5
59
+ cGUiOiJlcnJvciJ9LHsiY29uZGl0aW9ucyI6W10sInR5cGUiOiJ0cmVlIiwi
60
+ cnVsZXMiOlt7ImNvbmRpdGlvbnMiOlt7ImZuIjoiYm9vbGVhbkVxdWFscyIs
61
+ ImFyZ3YiOlt7InJlZiI6IlVzZUR1YWxTdGFjayJ9LHRydWVdfV0sImVycm9y
62
+ IjoiSW52YWxpZCBDb25maWd1cmF0aW9uOiBEdWFsc3RhY2sgYW5kIGN1c3Rv
63
+ bSBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZCIsInR5cGUiOiJlcnJvciJ9
64
+ LHsiY29uZGl0aW9ucyI6W10sImVuZHBvaW50Ijp7InVybCI6eyJyZWYiOiJF
65
+ bmRwb2ludCJ9LCJwcm9wZXJ0aWVzIjp7fSwiaGVhZGVycyI6e319LCJ0eXBl
66
+ IjoiZW5kcG9pbnQifV19XX0seyJjb25kaXRpb25zIjpbeyJmbiI6ImJvb2xl
67
+ YW5FcXVhbHMiLCJhcmd2IjpbeyJyZWYiOiJVc2VGSVBTIn0sdHJ1ZV19LHsi
68
+ Zm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoiVXNlRHVhbFN0
69
+ YWNrIn0sdHJ1ZV19XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0
70
+ aW9ucyI6W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3RydWUseyJm
71
+ biI6ImdldEF0dHIiLCJhcmd2IjpbeyJyZWYiOiJQYXJ0aXRpb25SZXN1bHQi
72
+ fSwic3VwcG9ydHNGSVBTIl19XX0seyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJh
73
+ cmd2IjpbdHJ1ZSx7ImZuIjoiZ2V0QXR0ciIsImFyZ3YiOlt7InJlZiI6IlBh
74
+ cnRpdGlvblJlc3VsdCJ9LCJzdXBwb3J0c0R1YWxTdGFjayJdfV19XSwidHlw
75
+ ZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6W10sImVuZHBvaW50
76
+ Ijp7InVybCI6Imh0dHBzOi8va2VuZHJhLWZpcHMue1JlZ2lvbn0ue1BhcnRp
77
+ dGlvblJlc3VsdCNkdWFsU3RhY2tEbnNTdWZmaXh9IiwicHJvcGVydGllcyI6
78
+ e30sImhlYWRlcnMiOnt9fSwidHlwZSI6ImVuZHBvaW50In1dfSx7ImNvbmRp
79
+ dGlvbnMiOltdLCJlcnJvciI6IkZJUFMgYW5kIER1YWxTdGFjayBhcmUgZW5h
80
+ YmxlZCwgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgb25l
81
+ IG9yIGJvdGgiLCJ0eXBlIjoiZXJyb3IifV19LHsiY29uZGl0aW9ucyI6W3si
82
+ Zm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoiVXNlRklQUyJ9
83
+ LHRydWVdfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMi
84
+ Olt7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt0cnVlLHsiZm4iOiJn
85
+ ZXRBdHRyIiwiYXJndiI6W3sicmVmIjoiUGFydGl0aW9uUmVzdWx0In0sInN1
86
+ cHBvcnRzRklQUyJdfV19XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29u
87
+ ZGl0aW9ucyI6W10sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlv
88
+ bnMiOltdLCJlbmRwb2ludCI6eyJ1cmwiOiJodHRwczovL2tlbmRyYS1maXBz
89
+ LntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fSIsInByb3Bl
90
+ cnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX1d
91
+ fSx7ImNvbmRpdGlvbnMiOltdLCJlcnJvciI6IkZJUFMgaXMgZW5hYmxlZCBi
92
+ dXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBGSVBTIiwidHlw
93
+ ZSI6ImVycm9yIn1dfSx7ImNvbmRpdGlvbnMiOlt7ImZuIjoiYm9vbGVhbkVx
94
+ dWFscyIsImFyZ3YiOlt7InJlZiI6IlVzZUR1YWxTdGFjayJ9LHRydWVdfV0s
95
+ InR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMiOlt7ImZuIjoi
96
+ Ym9vbGVhbkVxdWFscyIsImFyZ3YiOlt0cnVlLHsiZm4iOiJnZXRBdHRyIiwi
97
+ YXJndiI6W3sicmVmIjoiUGFydGl0aW9uUmVzdWx0In0sInN1cHBvcnRzRHVh
98
+ bFN0YWNrIl19XX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRp
99
+ b25zIjpbXSwiZW5kcG9pbnQiOnsidXJsIjoiaHR0cHM6Ly9rZW5kcmEue1Jl
100
+ Z2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkdWFsU3RhY2tEbnNTdWZmaXh9Iiwi
101
+ cHJvcGVydGllcyI6e30sImhlYWRlcnMiOnt9fSwidHlwZSI6ImVuZHBvaW50
102
+ In1dfSx7ImNvbmRpdGlvbnMiOltdLCJlcnJvciI6IkR1YWxTdGFjayBpcyBl
103
+ bmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IER1
104
+ YWxTdGFjayIsInR5cGUiOiJlcnJvciJ9XX0seyJjb25kaXRpb25zIjpbXSwi
105
+ ZW5kcG9pbnQiOnsidXJsIjoiaHR0cHM6Ly9rZW5kcmEue1JlZ2lvbn0ue1Bh
106
+ cnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9IiwicHJvcGVydGllcyI6e30sImhl
107
+ YWRlcnMiOnt9fSwidHlwZSI6ImVuZHBvaW50In1dfV19
108
+
109
+ JSON
110
+ end
111
+ end