aws-sdk-athena 1.7.0 → 1.8.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
  SHA1:
3
- metadata.gz: 1a15ace46959b2ff61a075fdb359f167e9646eaf
4
- data.tar.gz: f9f4d0f7a9f6a1bbf879b546a598274be12c9115
3
+ metadata.gz: f3f05a7acb18b1ee76dfa81d9655f46a47c20839
4
+ data.tar.gz: 80399f4c18a7669cf3a4462aa9ee98e4539ae17a
5
5
  SHA512:
6
- metadata.gz: dbd5ae18a56715fa8b89896c55f8d12232c187b6d2bf9f4b44941e3a3491bfa83670f800155805fefb563f658a0fae54e0dca33d36327e0cb6cafb90480cd832
7
- data.tar.gz: f96e0039d8a8494b2ffda2a50ae325f990636f758b70e05ae7954946955cfebf143d617d2ec1be8f45648c78b46f3fea66cf1fba1a4538bbbc209951e9492caa
6
+ metadata.gz: 249d007ee5b2c81ef8bf8ba5d4eb64bb75c7f7cc6d451d0ebfa554f54071ffbbf574dfa43d02333d269fcd1dfd55168d899498d4041be1fcb230cc3e50530347
7
+ data.tar.gz: ead2cb8ef4ee5bde5e05a1b855b5c385a1b185fd383c662c63878b1382423879c70d7c700e1457772ac4ccf12e81f568818458500747e785b9bd9cfc99de44d9
@@ -42,6 +42,6 @@ require_relative 'aws-sdk-athena/customizations'
42
42
  # @service
43
43
  module Aws::Athena
44
44
 
45
- GEM_VERSION = '1.7.0'
45
+ GEM_VERSION = '1.8.0'
46
46
 
47
47
  end
@@ -216,14 +216,15 @@ module Aws::Athena
216
216
  # @!group API Operations
217
217
 
218
218
  # Returns the details of a single named query or a list of up to 50
219
- # queries, which you provide as an array of query ID strings. Use
220
- # ListNamedQueries to get the list of named query IDs. If information
221
- # could not be retrieved for a submitted query ID, information about the
222
- # query ID submitted is listed under UnprocessedNamedQueryId. Named
223
- # queries are different from executed queries. Use
224
- # BatchGetQueryExecution to get details about each unique query
225
- # execution, and ListQueryExecutions to get a list of query execution
226
- # IDs.
219
+ # queries, which you provide as an array of query ID strings. Requires
220
+ # you to have access to the workgroup in which the queries were saved.
221
+ # Use ListNamedQueriesInput to get the list of named query IDs in the
222
+ # specified workgroup. If information could not be retrieved for a
223
+ # submitted query ID, information about the query ID submitted is listed
224
+ # under UnprocessedNamedQueryId. Named queries differ from executed
225
+ # queries. Use BatchGetQueryExecutionInput to get details about each
226
+ # unique query execution, and ListQueryExecutionsInput to get a list of
227
+ # query execution IDs.
227
228
  #
228
229
  # @option params [required, Array<String>] :named_query_ids
229
230
  # An array of query IDs.
@@ -247,6 +248,7 @@ module Aws::Athena
247
248
  # resp.named_queries[0].database #=> String
248
249
  # resp.named_queries[0].query_string #=> String
249
250
  # resp.named_queries[0].named_query_id #=> String
251
+ # resp.named_queries[0].work_group #=> String
250
252
  # resp.unprocessed_named_query_ids #=> Array
251
253
  # resp.unprocessed_named_query_ids[0].named_query_id #=> String
252
254
  # resp.unprocessed_named_query_ids[0].error_code #=> String
@@ -263,9 +265,11 @@ module Aws::Athena
263
265
 
264
266
  # Returns the details of a single query execution or a list of up to 50
265
267
  # query executions, which you provide as an array of query execution ID
266
- # strings. To get a list of query execution IDs, use
267
- # ListQueryExecutions. Query executions are different from named (saved)
268
- # queries. Use BatchGetNamedQuery to get details about named queries.
268
+ # strings. Requires you to have access to the workgroup in which the
269
+ # queries ran. To get a list of query execution IDs, use
270
+ # ListQueryExecutionsInput$WorkGroup. Query executions differ from named
271
+ # (saved) queries. Use BatchGetNamedQueryInput to get details about
272
+ # named queries.
269
273
  #
270
274
  # @option params [required, Array<String>] :query_execution_ids
271
275
  # An array of query execution IDs.
@@ -297,6 +301,7 @@ module Aws::Athena
297
301
  # resp.query_executions[0].status.completion_date_time #=> Time
298
302
  # resp.query_executions[0].statistics.engine_execution_time_in_millis #=> Integer
299
303
  # resp.query_executions[0].statistics.data_scanned_in_bytes #=> Integer
304
+ # resp.query_executions[0].work_group #=> String
300
305
  # resp.unprocessed_query_execution_ids #=> Array
301
306
  # resp.unprocessed_query_execution_ids[0].query_execution_id #=> String
302
307
  # resp.unprocessed_query_execution_ids[0].error_code #=> String
@@ -311,7 +316,8 @@ module Aws::Athena
311
316
  req.send_request(options)
312
317
  end
313
318
 
314
- # Creates a named query.
319
+ # Creates a named query in the specified workgroup. Requires that you
320
+ # have access to the workgroup.
315
321
  #
316
322
  # For code samples using the AWS SDK for Java, see [Examples and Code
317
323
  # Samples][1] in the *Amazon Athena User Guide*.
@@ -321,16 +327,16 @@ module Aws::Athena
321
327
  # [1]: http://docs.aws.amazon.com/athena/latest/ug/code-samples.html
322
328
  #
323
329
  # @option params [required, String] :name
324
- # The plain language name for the query.
330
+ # The query name.
325
331
  #
326
332
  # @option params [String] :description
327
- # A brief explanation of the query.
333
+ # The query description.
328
334
  #
329
335
  # @option params [required, String] :database
330
336
  # The database to which the query belongs.
331
337
  #
332
338
  # @option params [required, String] :query_string
333
- # The text of the query itself. In other words, all query statements.
339
+ # The contents of the query with all query statements.
334
340
  #
335
341
  # @option params [String] :client_request_token
336
342
  # A unique case-sensitive string used to ensure the request to create
@@ -347,6 +353,9 @@ module Aws::Athena
347
353
  # **A suitable default value is auto-generated.** You should normally
348
354
  # not need to pass this option.**
349
355
  #
356
+ # @option params [String] :work_group
357
+ # The name of the workgroup in which the named query is being created.
358
+ #
350
359
  # @return [Types::CreateNamedQueryOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
351
360
  #
352
361
  # * {Types::CreateNamedQueryOutput#named_query_id #named_query_id} => String
@@ -359,6 +368,7 @@ module Aws::Athena
359
368
  # database: "DatabaseString", # required
360
369
  # query_string: "QueryString", # required
361
370
  # client_request_token: "IdempotencyToken",
371
+ # work_group: "WorkGroupName",
362
372
  # })
363
373
  #
364
374
  # @example Response structure
@@ -374,7 +384,57 @@ module Aws::Athena
374
384
  req.send_request(options)
375
385
  end
376
386
 
377
- # Deletes a named query.
387
+ # Creates a workgroup with the specified name.
388
+ #
389
+ # @option params [required, String] :name
390
+ # The workgroup name.
391
+ #
392
+ # @option params [Types::WorkGroupConfiguration] :configuration
393
+ # The configuration for the workgroup, which includes the location in
394
+ # Amazon S3 where query results are stored, the encryption
395
+ # configuration, if any, used for encrypting query results, whether the
396
+ # Amazon CloudWatch Metrics are enabled for the workgroup, the limit for
397
+ # the amount of bytes scanned (cutoff) per query, if it is specified,
398
+ # and whether workgroup's settings (specified with
399
+ # EnforceWorkGroupConfiguration) in the WorkGroupConfiguration override
400
+ # client-side settings. See
401
+ # WorkGroupConfiguration$EnforceWorkGroupConfiguration.
402
+ #
403
+ # @option params [String] :description
404
+ # The workgroup description.
405
+ #
406
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
407
+ #
408
+ # @example Request syntax with placeholder values
409
+ #
410
+ # resp = client.create_work_group({
411
+ # name: "WorkGroupName", # required
412
+ # configuration: {
413
+ # result_configuration: {
414
+ # output_location: "String",
415
+ # encryption_configuration: {
416
+ # encryption_option: "SSE_S3", # required, accepts SSE_S3, SSE_KMS, CSE_KMS
417
+ # kms_key: "String",
418
+ # },
419
+ # },
420
+ # enforce_work_group_configuration: false,
421
+ # publish_cloud_watch_metrics_enabled: false,
422
+ # bytes_scanned_cutoff_per_query: 1,
423
+ # },
424
+ # description: "WorkGroupDescriptionString",
425
+ # })
426
+ #
427
+ # @see http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/CreateWorkGroup AWS API Documentation
428
+ #
429
+ # @overload create_work_group(params = {})
430
+ # @param [Hash] params ({})
431
+ def create_work_group(params = {}, options = {})
432
+ req = build_request(:create_work_group, params)
433
+ req.send_request(options)
434
+ end
435
+
436
+ # Deletes the named query if you have access to the workgroup in which
437
+ # the query was saved.
378
438
  #
379
439
  # For code samples using the AWS SDK for Java, see [Examples and Code
380
440
  # Samples][1] in the *Amazon Athena User Guide*.
@@ -406,7 +466,36 @@ module Aws::Athena
406
466
  req.send_request(options)
407
467
  end
408
468
 
409
- # Returns information about a single query.
469
+ # Deletes the workgroup with the specified name. The primary workgroup
470
+ # cannot be deleted.
471
+ #
472
+ # @option params [required, String] :work_group
473
+ # The unique name of the workgroup to delete.
474
+ #
475
+ # @option params [Boolean] :recursive_delete_option
476
+ # The option to delete the workgroup and its contents even if the
477
+ # workgroup contains any named queries.
478
+ #
479
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
480
+ #
481
+ # @example Request syntax with placeholder values
482
+ #
483
+ # resp = client.delete_work_group({
484
+ # work_group: "WorkGroupName", # required
485
+ # recursive_delete_option: false,
486
+ # })
487
+ #
488
+ # @see http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/DeleteWorkGroup AWS API Documentation
489
+ #
490
+ # @overload delete_work_group(params = {})
491
+ # @param [Hash] params ({})
492
+ def delete_work_group(params = {}, options = {})
493
+ req = build_request(:delete_work_group, params)
494
+ req.send_request(options)
495
+ end
496
+
497
+ # Returns information about a single query. Requires that you have
498
+ # access to the workgroup in which the query was saved.
410
499
  #
411
500
  # @option params [required, String] :named_query_id
412
501
  # The unique ID of the query. Use ListNamedQueries to get query IDs.
@@ -428,6 +517,7 @@ module Aws::Athena
428
517
  # resp.named_query.database #=> String
429
518
  # resp.named_query.query_string #=> String
430
519
  # resp.named_query.named_query_id #=> String
520
+ # resp.named_query.work_group #=> String
431
521
  #
432
522
  # @see http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/GetNamedQuery AWS API Documentation
433
523
  #
@@ -438,9 +528,10 @@ module Aws::Athena
438
528
  req.send_request(options)
439
529
  end
440
530
 
441
- # Returns information about a single execution of a query. Each time a
442
- # query executes, information about the query execution is saved with a
443
- # unique ID.
531
+ # Returns information about a single execution of a query if you have
532
+ # access to the workgroup in which the query ran. Each time a query
533
+ # executes, information about the query execution is saved with a unique
534
+ # ID.
444
535
  #
445
536
  # @option params [required, String] :query_execution_id
446
537
  # The unique ID of the query execution.
@@ -470,6 +561,7 @@ module Aws::Athena
470
561
  # resp.query_execution.status.completion_date_time #=> Time
471
562
  # resp.query_execution.statistics.engine_execution_time_in_millis #=> Integer
472
563
  # resp.query_execution.statistics.data_scanned_in_bytes #=> Integer
564
+ # resp.query_execution.work_group #=> String
473
565
  #
474
566
  # @see http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/GetQueryExecution AWS API Documentation
475
567
  #
@@ -481,8 +573,9 @@ module Aws::Athena
481
573
  end
482
574
 
483
575
  # Returns the results of a single query execution specified by
484
- # `QueryExecutionId`. This request does not execute the query but
485
- # returns results. Use StartQueryExecution to run a query.
576
+ # `QueryExecutionId` if you have access to the workgroup in which the
577
+ # query ran. This request does not execute the query but returns
578
+ # results. Use StartQueryExecution to run a query.
486
579
  #
487
580
  # @option params [required, String] :query_execution_id
488
581
  # The unique ID of the query execution.
@@ -536,7 +629,45 @@ module Aws::Athena
536
629
  req.send_request(options)
537
630
  end
538
631
 
539
- # Provides a list of all available query IDs.
632
+ # Returns information about the workgroup with the speficied name.
633
+ #
634
+ # @option params [required, String] :work_group
635
+ # The name of the workgroup.
636
+ #
637
+ # @return [Types::GetWorkGroupOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
638
+ #
639
+ # * {Types::GetWorkGroupOutput#work_group #work_group} => Types::WorkGroup
640
+ #
641
+ # @example Request syntax with placeholder values
642
+ #
643
+ # resp = client.get_work_group({
644
+ # work_group: "WorkGroupName", # required
645
+ # })
646
+ #
647
+ # @example Response structure
648
+ #
649
+ # resp.work_group.name #=> String
650
+ # resp.work_group.state #=> String, one of "ENABLED", "DISABLED"
651
+ # resp.work_group.configuration.result_configuration.output_location #=> String
652
+ # resp.work_group.configuration.result_configuration.encryption_configuration.encryption_option #=> String, one of "SSE_S3", "SSE_KMS", "CSE_KMS"
653
+ # resp.work_group.configuration.result_configuration.encryption_configuration.kms_key #=> String
654
+ # resp.work_group.configuration.enforce_work_group_configuration #=> Boolean
655
+ # resp.work_group.configuration.publish_cloud_watch_metrics_enabled #=> Boolean
656
+ # resp.work_group.configuration.bytes_scanned_cutoff_per_query #=> Integer
657
+ # resp.work_group.description #=> String
658
+ # resp.work_group.creation_time #=> Time
659
+ #
660
+ # @see http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/GetWorkGroup AWS API Documentation
661
+ #
662
+ # @overload get_work_group(params = {})
663
+ # @param [Hash] params ({})
664
+ def get_work_group(params = {}, options = {})
665
+ req = build_request(:get_work_group, params)
666
+ req.send_request(options)
667
+ end
668
+
669
+ # Provides a list of available query IDs only for queries saved in the
670
+ # specified workgroup. Requires that you have access to the workgroup.
540
671
  #
541
672
  # For code samples using the AWS SDK for Java, see [Examples and Code
542
673
  # Samples][1] in the *Amazon Athena User Guide*.
@@ -552,6 +683,10 @@ module Aws::Athena
552
683
  # @option params [Integer] :max_results
553
684
  # The maximum number of queries to return in this request.
554
685
  #
686
+ # @option params [String] :work_group
687
+ # The name of the workgroup from which the named queries are being
688
+ # returned.
689
+ #
555
690
  # @return [Types::ListNamedQueriesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
556
691
  #
557
692
  # * {Types::ListNamedQueriesOutput#named_query_ids #named_query_ids} => Array&lt;String&gt;
@@ -562,6 +697,7 @@ module Aws::Athena
562
697
  # resp = client.list_named_queries({
563
698
  # next_token: "Token",
564
699
  # max_results: 1,
700
+ # work_group: "WorkGroupName",
565
701
  # })
566
702
  #
567
703
  # @example Response structure
@@ -579,7 +715,9 @@ module Aws::Athena
579
715
  req.send_request(options)
580
716
  end
581
717
 
582
- # Provides a list of all available query execution IDs.
718
+ # Provides a list of available query execution IDs for the queries in
719
+ # the specified workgroup. Requires you to have access to the workgroup
720
+ # in which the queries ran.
583
721
  #
584
722
  # For code samples using the AWS SDK for Java, see [Examples and Code
585
723
  # Samples][1] in the *Amazon Athena User Guide*.
@@ -595,6 +733,9 @@ module Aws::Athena
595
733
  # @option params [Integer] :max_results
596
734
  # The maximum number of query executions to return in this request.
597
735
  #
736
+ # @option params [String] :work_group
737
+ # The name of the workgroup from which queries are being returned.
738
+ #
598
739
  # @return [Types::ListQueryExecutionsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
599
740
  #
600
741
  # * {Types::ListQueryExecutionsOutput#query_execution_ids #query_execution_ids} => Array&lt;String&gt;
@@ -605,6 +746,7 @@ module Aws::Athena
605
746
  # resp = client.list_query_executions({
606
747
  # next_token: "Token",
607
748
  # max_results: 1,
749
+ # work_group: "WorkGroupName",
608
750
  # })
609
751
  #
610
752
  # @example Response structure
@@ -622,8 +764,46 @@ module Aws::Athena
622
764
  req.send_request(options)
623
765
  end
624
766
 
625
- # Runs (executes) the SQL query statements contained in the `Query`
626
- # string.
767
+ # Lists available workgroups for the account.
768
+ #
769
+ # @option params [String] :next_token
770
+ # A token to be used by the next request if this request is truncated.
771
+ #
772
+ # @option params [Integer] :max_results
773
+ # The maximum number of workgroups to return in this request.
774
+ #
775
+ # @return [Types::ListWorkGroupsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
776
+ #
777
+ # * {Types::ListWorkGroupsOutput#work_groups #work_groups} => Array&lt;Types::WorkGroupSummary&gt;
778
+ # * {Types::ListWorkGroupsOutput#next_token #next_token} => String
779
+ #
780
+ # @example Request syntax with placeholder values
781
+ #
782
+ # resp = client.list_work_groups({
783
+ # next_token: "Token",
784
+ # max_results: 1,
785
+ # })
786
+ #
787
+ # @example Response structure
788
+ #
789
+ # resp.work_groups #=> Array
790
+ # resp.work_groups[0].name #=> String
791
+ # resp.work_groups[0].state #=> String, one of "ENABLED", "DISABLED"
792
+ # resp.work_groups[0].description #=> String
793
+ # resp.work_groups[0].creation_time #=> Time
794
+ # resp.next_token #=> String
795
+ #
796
+ # @see http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ListWorkGroups AWS API Documentation
797
+ #
798
+ # @overload list_work_groups(params = {})
799
+ # @param [Hash] params ({})
800
+ def list_work_groups(params = {}, options = {})
801
+ req = build_request(:list_work_groups, params)
802
+ req.send_request(options)
803
+ end
804
+
805
+ # Runs the SQL query statements contained in the `Query`. Requires you
806
+ # to have access to the workgroup in which the query ran.
627
807
  #
628
808
  # For code samples using the AWS SDK for Java, see [Examples and Code
629
809
  # Samples][1] in the *Amazon Athena User Guide*.
@@ -653,9 +833,17 @@ module Aws::Athena
653
833
  # @option params [Types::QueryExecutionContext] :query_execution_context
654
834
  # The database within which the query executes.
655
835
  #
656
- # @option params [required, Types::ResultConfiguration] :result_configuration
836
+ # @option params [Types::ResultConfiguration] :result_configuration
657
837
  # Specifies information about where and how to save the results of the
658
- # query execution.
838
+ # query execution. If the query runs in a workgroup, then workgroup's
839
+ # settings may override query settings. This affects the query results
840
+ # location. The workgroup settings override is specified in
841
+ # EnforceWorkGroupConfiguration (true/false) in the
842
+ # WorkGroupConfiguration. See
843
+ # WorkGroupConfiguration$EnforceWorkGroupConfiguration.
844
+ #
845
+ # @option params [String] :work_group
846
+ # The name of the workgroup in which the query is being started.
659
847
  #
660
848
  # @return [Types::StartQueryExecutionOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
661
849
  #
@@ -669,13 +857,14 @@ module Aws::Athena
669
857
  # query_execution_context: {
670
858
  # database: "DatabaseString",
671
859
  # },
672
- # result_configuration: { # required
673
- # output_location: "String", # required
860
+ # result_configuration: {
861
+ # output_location: "String",
674
862
  # encryption_configuration: {
675
863
  # encryption_option: "SSE_S3", # required, accepts SSE_S3, SSE_KMS, CSE_KMS
676
864
  # kms_key: "String",
677
865
  # },
678
866
  # },
867
+ # work_group: "WorkGroupName",
679
868
  # })
680
869
  #
681
870
  # @example Response structure
@@ -691,7 +880,8 @@ module Aws::Athena
691
880
  req.send_request(options)
692
881
  end
693
882
 
694
- # Stops a query execution.
883
+ # Stops a query execution. Requires you to have access to the workgroup
884
+ # in which the query ran.
695
885
  #
696
886
  # For code samples using the AWS SDK for Java, see [Examples and Code
697
887
  # Samples][1] in the *Amazon Athena User Guide*.
@@ -723,6 +913,56 @@ module Aws::Athena
723
913
  req.send_request(options)
724
914
  end
725
915
 
916
+ # Updates the workgroup with the specified name. The workgroup's name
917
+ # cannot be changed.
918
+ #
919
+ # @option params [required, String] :work_group
920
+ # The specified workgroup that will be updated.
921
+ #
922
+ # @option params [String] :description
923
+ # The workgroup description.
924
+ #
925
+ # @option params [Types::WorkGroupConfigurationUpdates] :configuration_updates
926
+ # The workgroup configuration that will be updated for the given
927
+ # workgroup.
928
+ #
929
+ # @option params [String] :state
930
+ # The workgroup state that will be updated for the given workgroup.
931
+ #
932
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
933
+ #
934
+ # @example Request syntax with placeholder values
935
+ #
936
+ # resp = client.update_work_group({
937
+ # work_group: "WorkGroupName", # required
938
+ # description: "WorkGroupDescriptionString",
939
+ # configuration_updates: {
940
+ # enforce_work_group_configuration: false,
941
+ # result_configuration_updates: {
942
+ # output_location: "String",
943
+ # remove_output_location: false,
944
+ # encryption_configuration: {
945
+ # encryption_option: "SSE_S3", # required, accepts SSE_S3, SSE_KMS, CSE_KMS
946
+ # kms_key: "String",
947
+ # },
948
+ # remove_encryption_configuration: false,
949
+ # },
950
+ # publish_cloud_watch_metrics_enabled: false,
951
+ # bytes_scanned_cutoff_per_query: 1,
952
+ # remove_bytes_scanned_cutoff_per_query: false,
953
+ # },
954
+ # state: "ENABLED", # accepts ENABLED, DISABLED
955
+ # })
956
+ #
957
+ # @see http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/UpdateWorkGroup AWS API Documentation
958
+ #
959
+ # @overload update_work_group(params = {})
960
+ # @param [Hash] params ({})
961
+ def update_work_group(params = {}, options = {})
962
+ req = build_request(:update_work_group, params)
963
+ req.send_request(options)
964
+ end
965
+
726
966
  # @!endgroup
727
967
 
728
968
  # @param params ({})
@@ -736,7 +976,7 @@ module Aws::Athena
736
976
  params: params,
737
977
  config: config)
738
978
  context[:gem_name] = 'aws-sdk-athena'
739
- context[:gem_version] = '1.7.0'
979
+ context[:gem_version] = '1.8.0'
740
980
  Seahorse::Client::Request.new(handlers, context)
741
981
  end
742
982