aws-sdk-athena 1.22.0 → 1.27.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
- SHA1:
3
- metadata.gz: ae65dc6c33253e49092b4bbf458f49e2cc1bb883
4
- data.tar.gz: f7c41ce3576e0d80f2bf9136f3631bed19a81d30
2
+ SHA256:
3
+ metadata.gz: 913687b1976344c8567730859d90adfeed4ac208e326b517a2bf3b4eeeeeb77b
4
+ data.tar.gz: 2800a8f40026f383eedc9db0194afbbffe2198e222bc5623e13542126ad778b1
5
5
  SHA512:
6
- metadata.gz: 9982c8ebac6eaf5714692b27320e54bb7690f953ff1b3ed112dcca04d66da24287ed04a0d11a72a0959b376efe547057655bc0eb4a32148f4d6345cdad0873be
7
- data.tar.gz: a92eb4cdf72aa9bbfb4fa53f84c917bcc54f03a0783d14040b5a330a324d732c4219aef86889341f5371a306bb60e48b191df3bf6db78096a4205cbe29667f8f
6
+ metadata.gz: e395d09fd149a425e2c18b866e160e84d777a8834171886e5291dfb710c0da053b2b66754d3f7688825c299737e20422ae8615893b8723abbbb5268c03c00569
7
+ data.tar.gz: 5188e0b95bd203e1eef30002889a43cac1ea8a2a66d85dcf5fab29adfc29121cc364d0fc436398db22e08b91bda52ded84fd7a11d471dfb6276b172b22695f20
@@ -24,17 +24,20 @@ require_relative 'aws-sdk-athena/customizations'
24
24
  # methods each accept a hash of request parameters and return a response
25
25
  # structure.
26
26
  #
27
+ # athena = Aws::Athena::Client.new
28
+ # resp = athena.batch_get_named_query(params)
29
+ #
27
30
  # See {Client} for more information.
28
31
  #
29
32
  # # Errors
30
33
  #
31
- # Errors returned from Amazon Athena all
32
- # extend {Errors::ServiceError}.
34
+ # Errors returned from Amazon Athena are defined in the
35
+ # {Errors} module and all extend {Errors::ServiceError}.
33
36
  #
34
37
  # begin
35
38
  # # do stuff
36
39
  # rescue Aws::Athena::Errors::ServiceError
37
- # # rescues all service API errors
40
+ # # rescues all Amazon Athena API errors
38
41
  # end
39
42
  #
40
43
  # See {Errors} for more information.
@@ -42,6 +45,6 @@ require_relative 'aws-sdk-athena/customizations'
42
45
  # @service
43
46
  module Aws::Athena
44
47
 
45
- GEM_VERSION = '1.22.0'
48
+ GEM_VERSION = '1.27.0'
46
49
 
47
50
  end
@@ -30,6 +30,18 @@ require 'aws-sdk-core/plugins/protocols/json_rpc.rb'
30
30
  Aws::Plugins::GlobalConfiguration.add_identifier(:athena)
31
31
 
32
32
  module Aws::Athena
33
+ # An API client for Athena. To construct a client, you need to configure a `:region` and `:credentials`.
34
+ #
35
+ # client = Aws::Athena::Client.new(
36
+ # region: region_name,
37
+ # credentials: credentials,
38
+ # # ...
39
+ # )
40
+ #
41
+ # For details on configuring region and credentials see
42
+ # the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html).
43
+ #
44
+ # See {#initialize} for a full list of supported configuration options.
33
45
  class Client < Seahorse::Client::Base
34
46
 
35
47
  include Aws::ClientStubs
@@ -93,7 +105,7 @@ module Aws::Athena
93
105
  # @option options [required, String] :region
94
106
  # The AWS region to connect to. The configured `:region` is
95
107
  # used to determine the service `:endpoint`. When not passed,
96
- # a default `:region` is search for in the following locations:
108
+ # a default `:region` is searched for in the following locations:
97
109
  #
98
110
  # * `Aws.config[:region]`
99
111
  # * `ENV['AWS_REGION']`
@@ -108,6 +120,12 @@ module Aws::Athena
108
120
  # When set to `true`, a thread polling for endpoints will be running in
109
121
  # the background every 60 secs (default). Defaults to `false`.
110
122
  #
123
+ # @option options [Boolean] :adaptive_retry_wait_to_fill (true)
124
+ # Used only in `adaptive` retry mode. When true, the request will sleep
125
+ # until there is sufficent client side capacity to retry the request.
126
+ # When false, the request will raise a `RetryCapacityNotAvailableError` and will
127
+ # not retry instead of sleeping.
128
+ #
111
129
  # @option options [Boolean] :client_side_monitoring (false)
112
130
  # When `true`, client-side metrics will be collected for all API requests from
113
131
  # this client.
@@ -132,6 +150,10 @@ module Aws::Athena
132
150
  # When `true`, an attempt is made to coerce request parameters into
133
151
  # the required types.
134
152
  #
153
+ # @option options [Boolean] :correct_clock_skew (true)
154
+ # Used only in `standard` and adaptive retry modes. Specifies whether to apply
155
+ # a clock skew correction and retry requests with skewed client clocks.
156
+ #
135
157
  # @option options [Boolean] :disable_host_prefix_injection (false)
136
158
  # Set to true to disable SDK automatically adding host prefix
137
159
  # to default service endpoint when available.
@@ -139,7 +161,7 @@ module Aws::Athena
139
161
  # @option options [String] :endpoint
140
162
  # The client endpoint is normally constructed from the `:region`
141
163
  # option. You should only configure an `:endpoint` when connecting
142
- # to test endpoints. This should be avalid HTTP(S) URI.
164
+ # to test endpoints. This should be a valid HTTP(S) URI.
143
165
  #
144
166
  # @option options [Integer] :endpoint_cache_max_entries (1000)
145
167
  # Used for the maximum size limit of the LRU cache storing endpoints data
@@ -154,7 +176,7 @@ module Aws::Athena
154
176
  # requests fetching endpoints information. Defaults to 60 sec.
155
177
  #
156
178
  # @option options [Boolean] :endpoint_discovery (false)
157
- # When set to `true`, endpoint discovery will be enabled for operations when available. Defaults to `false`.
179
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
158
180
  #
159
181
  # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
160
182
  # The log formatter.
@@ -166,15 +188,29 @@ module Aws::Athena
166
188
  # The Logger instance to send log messages to. If this option
167
189
  # is not set, logging will be disabled.
168
190
  #
191
+ # @option options [Integer] :max_attempts (3)
192
+ # An integer representing the maximum number attempts that will be made for
193
+ # a single request, including the initial attempt. For example,
194
+ # setting this value to 5 will result in a request being retried up to
195
+ # 4 times. Used in `standard` and `adaptive` retry modes.
196
+ #
169
197
  # @option options [String] :profile ("default")
170
198
  # Used when loading credentials from the shared credentials file
171
199
  # at HOME/.aws/credentials. When not specified, 'default' is used.
172
200
  #
201
+ # @option options [Proc] :retry_backoff
202
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
203
+ # This option is only used in the `legacy` retry mode.
204
+ #
173
205
  # @option options [Float] :retry_base_delay (0.3)
174
- # The base delay in seconds used by the default backoff function.
206
+ # The base delay in seconds used by the default backoff function. This option
207
+ # is only used in the `legacy` retry mode.
175
208
  #
176
209
  # @option options [Symbol] :retry_jitter (:none)
177
- # A delay randomiser function used by the default backoff function. Some predefined functions can be referenced by name - :none, :equal, :full, otherwise a Proc that takes and returns a number.
210
+ # A delay randomiser function used by the default backoff function.
211
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
212
+ # otherwise a Proc that takes and returns a number. This option is only used
213
+ # in the `legacy` retry mode.
178
214
  #
179
215
  # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
180
216
  #
@@ -182,11 +218,30 @@ module Aws::Athena
182
218
  # The maximum number of times to retry failed requests. Only
183
219
  # ~ 500 level server errors and certain ~ 400 level client errors
184
220
  # are retried. Generally, these are throttling errors, data
185
- # checksum errors, networking errors, timeout errors and auth
186
- # errors from expired credentials.
221
+ # checksum errors, networking errors, timeout errors, auth errors,
222
+ # endpoint discovery, and errors from expired credentials.
223
+ # This option is only used in the `legacy` retry mode.
187
224
  #
188
225
  # @option options [Integer] :retry_max_delay (0)
189
- # The maximum number of seconds to delay between retries (0 for no limit) used by the default backoff function.
226
+ # The maximum number of seconds to delay between retries (0 for no limit)
227
+ # used by the default backoff function. This option is only used in the
228
+ # `legacy` retry mode.
229
+ #
230
+ # @option options [String] :retry_mode ("legacy")
231
+ # Specifies which retry algorithm to use. Values are:
232
+ #
233
+ # * `legacy` - The pre-existing retry behavior. This is default value if
234
+ # no retry mode is provided.
235
+ #
236
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
237
+ # This includes support for retry quotas, which limit the number of
238
+ # unsuccessful retries a client can make.
239
+ #
240
+ # * `adaptive` - An experimental retry mode that includes all the
241
+ # functionality of `standard` mode along with automatic client side
242
+ # throttling. This is a provisional mode that may change behavior
243
+ # in the future.
244
+ #
190
245
  #
191
246
  # @option options [String] :secret_access_key
192
247
  #
@@ -219,16 +274,15 @@ module Aws::Athena
219
274
  # requests through. Formatted like 'http://proxy.com:123'.
220
275
  #
221
276
  # @option options [Float] :http_open_timeout (15) The number of
222
- # seconds to wait when opening a HTTP session before rasing a
277
+ # seconds to wait when opening a HTTP session before raising a
223
278
  # `Timeout::Error`.
224
279
  #
225
280
  # @option options [Integer] :http_read_timeout (60) The default
226
281
  # number of seconds to wait for response data. This value can
227
- # safely be set
228
- # per-request on the session yeidled by {#session_for}.
282
+ # safely be set per-request on the session.
229
283
  #
230
284
  # @option options [Float] :http_idle_timeout (5) The number of
231
- # seconds a connection is allowed to sit idble before it is
285
+ # seconds a connection is allowed to sit idle before it is
232
286
  # considered stale. Stale connections are closed and removed
233
287
  # from the pool before making a request.
234
288
  #
@@ -237,7 +291,7 @@ module Aws::Athena
237
291
  # request body. This option has no effect unless the request has
238
292
  # "Expect" header set to "100-continue". Defaults to `nil` which
239
293
  # disables this behaviour. This value can safely be set per
240
- # request on the session yeidled by {#session_for}.
294
+ # request on the session.
241
295
  #
242
296
  # @option options [Boolean] :http_wire_trace (false) When `true`,
243
297
  # HTTP debug output will be sent to the `:logger`.
@@ -344,6 +398,7 @@ module Aws::Athena
344
398
  # resp.query_executions[0].result_configuration.encryption_configuration.encryption_option #=> String, one of "SSE_S3", "SSE_KMS", "CSE_KMS"
345
399
  # resp.query_executions[0].result_configuration.encryption_configuration.kms_key #=> String
346
400
  # resp.query_executions[0].query_execution_context.database #=> String
401
+ # resp.query_executions[0].query_execution_context.catalog #=> String
347
402
  # resp.query_executions[0].status.state #=> String, one of "QUEUED", "RUNNING", "SUCCEEDED", "FAILED", "CANCELLED"
348
403
  # resp.query_executions[0].status.state_change_reason #=> String
349
404
  # resp.query_executions[0].status.submission_date_time #=> Time
@@ -370,6 +425,83 @@ module Aws::Athena
370
425
  req.send_request(options)
371
426
  end
372
427
 
428
+ # Creates (registers) a data catalog with the specified name and
429
+ # properties. Catalogs created are visible to all users of the same AWS
430
+ # account.
431
+ #
432
+ # @option params [required, String] :name
433
+ # The name of the data catalog to create. The catalog name must be
434
+ # unique for the AWS account and can use a maximum of 128 alphanumeric,
435
+ # underscore, at sign, or hyphen characters.
436
+ #
437
+ # @option params [required, String] :type
438
+ # The type of data catalog to create: `LAMBDA` for a federated catalog,
439
+ # `GLUE` for AWS Glue Catalog, or `HIVE` for an external hive metastore.
440
+ #
441
+ # @option params [String] :description
442
+ # A description of the data catalog to be created.
443
+ #
444
+ # @option params [Hash<String,String>] :parameters
445
+ # Specifies the Lambda function or functions to use for creating the
446
+ # data catalog. This is a mapping whose values depend on the catalog
447
+ # type.
448
+ #
449
+ # * For the `HIVE` data catalog type, use the following syntax. The
450
+ # `metadata-function` parameter is required. `The sdk-version`
451
+ # parameter is optional and defaults to the currently supported
452
+ # version.
453
+ #
454
+ # `metadata-function=lambda_arn, sdk-version=version_number `
455
+ #
456
+ # * For the `LAMBDA` data catalog type, use one of the following sets of
457
+ # required parameters, but not both.
458
+ #
459
+ # * If you have one Lambda function that processes metadata and
460
+ # another for reading the actual data, use the following syntax.
461
+ # Both parameters are required.
462
+ #
463
+ # `metadata-function=lambda_arn, record-function=lambda_arn `
464
+ #
465
+ # * If you have a composite Lambda function that processes both
466
+ # metadata and data, use the following syntax to specify your Lambda
467
+ # function.
468
+ #
469
+ # `function=lambda_arn `
470
+ #
471
+ # * The `GLUE` type has no parameters.
472
+ #
473
+ # @option params [Array<Types::Tag>] :tags
474
+ # A list of comma separated tags to add to the data catalog that is
475
+ # created.
476
+ #
477
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
478
+ #
479
+ # @example Request syntax with placeholder values
480
+ #
481
+ # resp = client.create_data_catalog({
482
+ # name: "CatalogNameString", # required
483
+ # type: "LAMBDA", # required, accepts LAMBDA, GLUE, HIVE
484
+ # description: "DescriptionString",
485
+ # parameters: {
486
+ # "KeyString" => "ParametersMapValue",
487
+ # },
488
+ # tags: [
489
+ # {
490
+ # key: "TagKey",
491
+ # value: "TagValue",
492
+ # },
493
+ # ],
494
+ # })
495
+ #
496
+ # @see http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/CreateDataCatalog AWS API Documentation
497
+ #
498
+ # @overload create_data_catalog(params = {})
499
+ # @param [Hash] params ({})
500
+ def create_data_catalog(params = {}, options = {})
501
+ req = build_request(:create_data_catalog, params)
502
+ req.send_request(options)
503
+ end
504
+
373
505
  # Creates a named query in the specified workgroup. Requires that you
374
506
  # have access to the workgroup.
375
507
  #
@@ -458,8 +590,8 @@ module Aws::Athena
458
590
  # The workgroup description.
459
591
  #
460
592
  # @option params [Array<Types::Tag>] :tags
461
- # One or more tags, separated by commas, that you want to attach to the
462
- # workgroup as you create it.
593
+ # A list of comma separated tags to add to the workgroup that is
594
+ # created.
463
595
  #
464
596
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
465
597
  #
@@ -498,6 +630,28 @@ module Aws::Athena
498
630
  req.send_request(options)
499
631
  end
500
632
 
633
+ # Deletes a data catalog.
634
+ #
635
+ # @option params [required, String] :name
636
+ # The name of the data catalog to delete.
637
+ #
638
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
639
+ #
640
+ # @example Request syntax with placeholder values
641
+ #
642
+ # resp = client.delete_data_catalog({
643
+ # name: "CatalogNameString", # required
644
+ # })
645
+ #
646
+ # @see http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/DeleteDataCatalog AWS API Documentation
647
+ #
648
+ # @overload delete_data_catalog(params = {})
649
+ # @param [Hash] params ({})
650
+ def delete_data_catalog(params = {}, options = {})
651
+ req = build_request(:delete_data_catalog, params)
652
+ req.send_request(options)
653
+ end
654
+
501
655
  # Deletes the named query if you have access to the workgroup in which
502
656
  # the query was saved.
503
657
  #
@@ -559,6 +713,73 @@ module Aws::Athena
559
713
  req.send_request(options)
560
714
  end
561
715
 
716
+ # Returns the specified data catalog.
717
+ #
718
+ # @option params [required, String] :name
719
+ # The name of the data catalog to return.
720
+ #
721
+ # @return [Types::GetDataCatalogOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
722
+ #
723
+ # * {Types::GetDataCatalogOutput#data_catalog #data_catalog} => Types::DataCatalog
724
+ #
725
+ # @example Request syntax with placeholder values
726
+ #
727
+ # resp = client.get_data_catalog({
728
+ # name: "CatalogNameString", # required
729
+ # })
730
+ #
731
+ # @example Response structure
732
+ #
733
+ # resp.data_catalog.name #=> String
734
+ # resp.data_catalog.description #=> String
735
+ # resp.data_catalog.type #=> String, one of "LAMBDA", "GLUE", "HIVE"
736
+ # resp.data_catalog.parameters #=> Hash
737
+ # resp.data_catalog.parameters["KeyString"] #=> String
738
+ #
739
+ # @see http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/GetDataCatalog AWS API Documentation
740
+ #
741
+ # @overload get_data_catalog(params = {})
742
+ # @param [Hash] params ({})
743
+ def get_data_catalog(params = {}, options = {})
744
+ req = build_request(:get_data_catalog, params)
745
+ req.send_request(options)
746
+ end
747
+
748
+ # Returns a database object for the specfied database and data catalog.
749
+ #
750
+ # @option params [required, String] :catalog_name
751
+ # The name of the data catalog that contains the database to return.
752
+ #
753
+ # @option params [required, String] :database_name
754
+ # The name of the database to return.
755
+ #
756
+ # @return [Types::GetDatabaseOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
757
+ #
758
+ # * {Types::GetDatabaseOutput#database #database} => Types::Database
759
+ #
760
+ # @example Request syntax with placeholder values
761
+ #
762
+ # resp = client.get_database({
763
+ # catalog_name: "CatalogNameString", # required
764
+ # database_name: "NameString", # required
765
+ # })
766
+ #
767
+ # @example Response structure
768
+ #
769
+ # resp.database.name #=> String
770
+ # resp.database.description #=> String
771
+ # resp.database.parameters #=> Hash
772
+ # resp.database.parameters["KeyString"] #=> String
773
+ #
774
+ # @see http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/GetDatabase AWS API Documentation
775
+ #
776
+ # @overload get_database(params = {})
777
+ # @param [Hash] params ({})
778
+ def get_database(params = {}, options = {})
779
+ req = build_request(:get_database, params)
780
+ req.send_request(options)
781
+ end
782
+
562
783
  # Returns information about a single query. Requires that you have
563
784
  # access to the workgroup in which the query was saved.
564
785
  #
@@ -620,6 +841,7 @@ module Aws::Athena
620
841
  # resp.query_execution.result_configuration.encryption_configuration.encryption_option #=> String, one of "SSE_S3", "SSE_KMS", "CSE_KMS"
621
842
  # resp.query_execution.result_configuration.encryption_configuration.kms_key #=> String
622
843
  # resp.query_execution.query_execution_context.database #=> String
844
+ # resp.query_execution.query_execution_context.catalog #=> String
623
845
  # resp.query_execution.status.state #=> String, one of "QUEUED", "RUNNING", "SUCCEEDED", "FAILED", "CANCELLED"
624
846
  # resp.query_execution.status.state_change_reason #=> String
625
847
  # resp.query_execution.status.submission_date_time #=> Time
@@ -666,8 +888,10 @@ module Aws::Athena
666
888
  # The unique ID of the query execution.
667
889
  #
668
890
  # @option params [String] :next_token
669
- # The token that specifies where to start pagination if a previous
670
- # request was truncated.
891
+ # A token generated by the Athena service that specifies where to
892
+ # continue pagination if a previous request was truncated. To obtain the
893
+ # next set of pages, pass in the `NextToken` from the response object of
894
+ # the previous page call.
671
895
  #
672
896
  # @option params [Integer] :max_results
673
897
  # The maximum number of results (rows) to return in this request.
@@ -678,6 +902,8 @@ module Aws::Athena
678
902
  # * {Types::GetQueryResultsOutput#result_set #result_set} => Types::ResultSet
679
903
  # * {Types::GetQueryResultsOutput#next_token #next_token} => String
680
904
  #
905
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
906
+ #
681
907
  # @example Request syntax with placeholder values
682
908
  #
683
909
  # resp = client.get_query_results({
@@ -714,6 +940,56 @@ module Aws::Athena
714
940
  req.send_request(options)
715
941
  end
716
942
 
943
+ # Returns table metadata for the specified catalog, database, and table.
944
+ #
945
+ # @option params [required, String] :catalog_name
946
+ # The name of the data catalog that contains the database and table
947
+ # metadata to return.
948
+ #
949
+ # @option params [required, String] :database_name
950
+ # The name of the database that contains the table metadata to return.
951
+ #
952
+ # @option params [required, String] :table_name
953
+ # The name of the table for which metadata is returned.
954
+ #
955
+ # @return [Types::GetTableMetadataOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
956
+ #
957
+ # * {Types::GetTableMetadataOutput#table_metadata #table_metadata} => Types::TableMetadata
958
+ #
959
+ # @example Request syntax with placeholder values
960
+ #
961
+ # resp = client.get_table_metadata({
962
+ # catalog_name: "CatalogNameString", # required
963
+ # database_name: "NameString", # required
964
+ # table_name: "NameString", # required
965
+ # })
966
+ #
967
+ # @example Response structure
968
+ #
969
+ # resp.table_metadata.name #=> String
970
+ # resp.table_metadata.create_time #=> Time
971
+ # resp.table_metadata.last_access_time #=> Time
972
+ # resp.table_metadata.table_type #=> String
973
+ # resp.table_metadata.columns #=> Array
974
+ # resp.table_metadata.columns[0].name #=> String
975
+ # resp.table_metadata.columns[0].type #=> String
976
+ # resp.table_metadata.columns[0].comment #=> String
977
+ # resp.table_metadata.partition_keys #=> Array
978
+ # resp.table_metadata.partition_keys[0].name #=> String
979
+ # resp.table_metadata.partition_keys[0].type #=> String
980
+ # resp.table_metadata.partition_keys[0].comment #=> String
981
+ # resp.table_metadata.parameters #=> Hash
982
+ # resp.table_metadata.parameters["KeyString"] #=> String
983
+ #
984
+ # @see http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/GetTableMetadata AWS API Documentation
985
+ #
986
+ # @overload get_table_metadata(params = {})
987
+ # @param [Hash] params ({})
988
+ def get_table_metadata(params = {}, options = {})
989
+ req = build_request(:get_table_metadata, params)
990
+ req.send_request(options)
991
+ end
992
+
717
993
  # Returns information about the workgroup with the specified name.
718
994
  #
719
995
  # @option params [required, String] :work_group
@@ -752,8 +1028,98 @@ module Aws::Athena
752
1028
  req.send_request(options)
753
1029
  end
754
1030
 
1031
+ # Lists the data catalogs in the current AWS account.
1032
+ #
1033
+ # @option params [String] :next_token
1034
+ # A token generated by the Athena service that specifies where to
1035
+ # continue pagination if a previous request was truncated. To obtain the
1036
+ # next set of pages, pass in the NextToken from the response object of
1037
+ # the previous page call.
1038
+ #
1039
+ # @option params [Integer] :max_results
1040
+ # Specifies the maximum number of data catalogs to return.
1041
+ #
1042
+ # @return [Types::ListDataCatalogsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1043
+ #
1044
+ # * {Types::ListDataCatalogsOutput#data_catalogs_summary #data_catalogs_summary} => Array&lt;Types::DataCatalogSummary&gt;
1045
+ # * {Types::ListDataCatalogsOutput#next_token #next_token} => String
1046
+ #
1047
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1048
+ #
1049
+ # @example Request syntax with placeholder values
1050
+ #
1051
+ # resp = client.list_data_catalogs({
1052
+ # next_token: "Token",
1053
+ # max_results: 1,
1054
+ # })
1055
+ #
1056
+ # @example Response structure
1057
+ #
1058
+ # resp.data_catalogs_summary #=> Array
1059
+ # resp.data_catalogs_summary[0].catalog_name #=> String
1060
+ # resp.data_catalogs_summary[0].type #=> String, one of "LAMBDA", "GLUE", "HIVE"
1061
+ # resp.next_token #=> String
1062
+ #
1063
+ # @see http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ListDataCatalogs AWS API Documentation
1064
+ #
1065
+ # @overload list_data_catalogs(params = {})
1066
+ # @param [Hash] params ({})
1067
+ def list_data_catalogs(params = {}, options = {})
1068
+ req = build_request(:list_data_catalogs, params)
1069
+ req.send_request(options)
1070
+ end
1071
+
1072
+ # Lists the databases in the specified data catalog.
1073
+ #
1074
+ # @option params [required, String] :catalog_name
1075
+ # The name of the data catalog that contains the databases to return.
1076
+ #
1077
+ # @option params [String] :next_token
1078
+ # A token generated by the Athena service that specifies where to
1079
+ # continue pagination if a previous request was truncated. To obtain the
1080
+ # next set of pages, pass in the `NextToken` from the response object of
1081
+ # the previous page call.
1082
+ #
1083
+ # @option params [Integer] :max_results
1084
+ # Specifies the maximum number of results to return.
1085
+ #
1086
+ # @return [Types::ListDatabasesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1087
+ #
1088
+ # * {Types::ListDatabasesOutput#database_list #database_list} => Array&lt;Types::Database&gt;
1089
+ # * {Types::ListDatabasesOutput#next_token #next_token} => String
1090
+ #
1091
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1092
+ #
1093
+ # @example Request syntax with placeholder values
1094
+ #
1095
+ # resp = client.list_databases({
1096
+ # catalog_name: "CatalogNameString", # required
1097
+ # next_token: "Token",
1098
+ # max_results: 1,
1099
+ # })
1100
+ #
1101
+ # @example Response structure
1102
+ #
1103
+ # resp.database_list #=> Array
1104
+ # resp.database_list[0].name #=> String
1105
+ # resp.database_list[0].description #=> String
1106
+ # resp.database_list[0].parameters #=> Hash
1107
+ # resp.database_list[0].parameters["KeyString"] #=> String
1108
+ # resp.next_token #=> String
1109
+ #
1110
+ # @see http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ListDatabases AWS API Documentation
1111
+ #
1112
+ # @overload list_databases(params = {})
1113
+ # @param [Hash] params ({})
1114
+ def list_databases(params = {}, options = {})
1115
+ req = build_request(:list_databases, params)
1116
+ req.send_request(options)
1117
+ end
1118
+
755
1119
  # Provides a list of available query IDs only for queries saved in the
756
- # specified workgroup. Requires that you have access to the workgroup.
1120
+ # specified workgroup. Requires that you have access to the specified
1121
+ # workgroup. If a workgroup is not specified, lists the saved queries
1122
+ # for the primary workgroup.
757
1123
  #
758
1124
  # For code samples using the AWS SDK for Java, see [Examples and Code
759
1125
  # Samples][1] in the *Amazon Athena User Guide*.
@@ -763,21 +1129,26 @@ module Aws::Athena
763
1129
  # [1]: http://docs.aws.amazon.com/athena/latest/ug/code-samples.html
764
1130
  #
765
1131
  # @option params [String] :next_token
766
- # The token that specifies where to start pagination if a previous
767
- # request was truncated.
1132
+ # A token generated by the Athena service that specifies where to
1133
+ # continue pagination if a previous request was truncated. To obtain the
1134
+ # next set of pages, pass in the `NextToken` from the response object of
1135
+ # the previous page call.
768
1136
  #
769
1137
  # @option params [Integer] :max_results
770
1138
  # The maximum number of queries to return in this request.
771
1139
  #
772
1140
  # @option params [String] :work_group
773
1141
  # The name of the workgroup from which the named queries are being
774
- # returned.
1142
+ # returned. If a workgroup is not specified, the saved queries for the
1143
+ # primary workgroup are returned.
775
1144
  #
776
1145
  # @return [Types::ListNamedQueriesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
777
1146
  #
778
1147
  # * {Types::ListNamedQueriesOutput#named_query_ids #named_query_ids} => Array&lt;String&gt;
779
1148
  # * {Types::ListNamedQueriesOutput#next_token #next_token} => String
780
1149
  #
1150
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1151
+ #
781
1152
  # @example Request syntax with placeholder values
782
1153
  #
783
1154
  # resp = client.list_named_queries({
@@ -802,8 +1173,9 @@ module Aws::Athena
802
1173
  end
803
1174
 
804
1175
  # Provides a list of available query execution IDs for the queries in
805
- # the specified workgroup. Requires you to have access to the workgroup
806
- # in which the queries ran.
1176
+ # the specified workgroup. If a workgroup is not specified, returns a
1177
+ # list of query execution IDs for the primary workgroup. Requires you to
1178
+ # have access to the workgroup in which the queries ran.
807
1179
  #
808
1180
  # For code samples using the AWS SDK for Java, see [Examples and Code
809
1181
  # Samples][1] in the *Amazon Athena User Guide*.
@@ -813,20 +1185,26 @@ module Aws::Athena
813
1185
  # [1]: http://docs.aws.amazon.com/athena/latest/ug/code-samples.html
814
1186
  #
815
1187
  # @option params [String] :next_token
816
- # The token that specifies where to start pagination if a previous
817
- # request was truncated.
1188
+ # A token generated by the Athena service that specifies where to
1189
+ # continue pagination if a previous request was truncated. To obtain the
1190
+ # next set of pages, pass in the `NextToken` from the response object of
1191
+ # the previous page call.
818
1192
  #
819
1193
  # @option params [Integer] :max_results
820
1194
  # The maximum number of query executions to return in this request.
821
1195
  #
822
1196
  # @option params [String] :work_group
823
- # The name of the workgroup from which queries are being returned.
1197
+ # The name of the workgroup from which queries are being returned. If a
1198
+ # workgroup is not specified, a list of available query execution IDs
1199
+ # for the queries in the primary workgroup is returned.
824
1200
  #
825
1201
  # @return [Types::ListQueryExecutionsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
826
1202
  #
827
1203
  # * {Types::ListQueryExecutionsOutput#query_execution_ids #query_execution_ids} => Array&lt;String&gt;
828
1204
  # * {Types::ListQueryExecutionsOutput#next_token #next_token} => String
829
1205
  #
1206
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1207
+ #
830
1208
  # @example Request syntax with placeholder values
831
1209
  #
832
1210
  # resp = client.list_query_executions({
@@ -850,25 +1228,96 @@ module Aws::Athena
850
1228
  req.send_request(options)
851
1229
  end
852
1230
 
853
- # Lists the tags associated with this workgroup.
1231
+ # Lists the metadata for the tables in the specified data catalog
1232
+ # database.
1233
+ #
1234
+ # @option params [required, String] :catalog_name
1235
+ # The name of the data catalog for which table metadata should be
1236
+ # returned.
1237
+ #
1238
+ # @option params [required, String] :database_name
1239
+ # The name of the database for which table metadata should be returned.
1240
+ #
1241
+ # @option params [String] :expression
1242
+ # A regex filter that pattern-matches table names. If no expression is
1243
+ # supplied, metadata for all tables are listed.
1244
+ #
1245
+ # @option params [String] :next_token
1246
+ # A token generated by the Athena service that specifies where to
1247
+ # continue pagination if a previous request was truncated. To obtain the
1248
+ # next set of pages, pass in the NextToken from the response object of
1249
+ # the previous page call.
1250
+ #
1251
+ # @option params [Integer] :max_results
1252
+ # Specifies the maximum number of results to return.
1253
+ #
1254
+ # @return [Types::ListTableMetadataOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1255
+ #
1256
+ # * {Types::ListTableMetadataOutput#table_metadata_list #table_metadata_list} => Array&lt;Types::TableMetadata&gt;
1257
+ # * {Types::ListTableMetadataOutput#next_token #next_token} => String
1258
+ #
1259
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1260
+ #
1261
+ # @example Request syntax with placeholder values
1262
+ #
1263
+ # resp = client.list_table_metadata({
1264
+ # catalog_name: "CatalogNameString", # required
1265
+ # database_name: "NameString", # required
1266
+ # expression: "ExpressionString",
1267
+ # next_token: "Token",
1268
+ # max_results: 1,
1269
+ # })
1270
+ #
1271
+ # @example Response structure
1272
+ #
1273
+ # resp.table_metadata_list #=> Array
1274
+ # resp.table_metadata_list[0].name #=> String
1275
+ # resp.table_metadata_list[0].create_time #=> Time
1276
+ # resp.table_metadata_list[0].last_access_time #=> Time
1277
+ # resp.table_metadata_list[0].table_type #=> String
1278
+ # resp.table_metadata_list[0].columns #=> Array
1279
+ # resp.table_metadata_list[0].columns[0].name #=> String
1280
+ # resp.table_metadata_list[0].columns[0].type #=> String
1281
+ # resp.table_metadata_list[0].columns[0].comment #=> String
1282
+ # resp.table_metadata_list[0].partition_keys #=> Array
1283
+ # resp.table_metadata_list[0].partition_keys[0].name #=> String
1284
+ # resp.table_metadata_list[0].partition_keys[0].type #=> String
1285
+ # resp.table_metadata_list[0].partition_keys[0].comment #=> String
1286
+ # resp.table_metadata_list[0].parameters #=> Hash
1287
+ # resp.table_metadata_list[0].parameters["KeyString"] #=> String
1288
+ # resp.next_token #=> String
1289
+ #
1290
+ # @see http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ListTableMetadata AWS API Documentation
1291
+ #
1292
+ # @overload list_table_metadata(params = {})
1293
+ # @param [Hash] params ({})
1294
+ def list_table_metadata(params = {}, options = {})
1295
+ req = build_request(:list_table_metadata, params)
1296
+ req.send_request(options)
1297
+ end
1298
+
1299
+ # Lists the tags associated with an Athena workgroup or data catalog
1300
+ # resource.
854
1301
  #
855
1302
  # @option params [required, String] :resource_arn
856
- # Lists the tags for the workgroup resource with the specified ARN.
1303
+ # Lists the tags for the resource with the specified ARN.
857
1304
  #
858
1305
  # @option params [String] :next_token
859
1306
  # The token for the next set of results, or null if there are no
860
1307
  # additional results for this request, where the request lists the tags
861
- # for the workgroup resource with the specified ARN.
1308
+ # for the resource with the specified ARN.
862
1309
  #
863
1310
  # @option params [Integer] :max_results
864
1311
  # The maximum number of results to be returned per request that lists
865
- # the tags for the workgroup resource.
1312
+ # the tags for the resource.
866
1313
  #
867
1314
  # @return [Types::ListTagsForResourceOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
868
1315
  #
869
1316
  # * {Types::ListTagsForResourceOutput#tags #tags} => Array&lt;Types::Tag&gt;
870
1317
  # * {Types::ListTagsForResourceOutput#next_token #next_token} => String
871
1318
  #
1319
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1320
+ #
872
1321
  # @example Request syntax with placeholder values
873
1322
  #
874
1323
  # resp = client.list_tags_for_resource({
@@ -896,7 +1345,10 @@ module Aws::Athena
896
1345
  # Lists available workgroups for the account.
897
1346
  #
898
1347
  # @option params [String] :next_token
899
- # A token to be used by the next request if this request is truncated.
1348
+ # A token generated by the Athena service that specifies where to
1349
+ # continue pagination if a previous request was truncated. To obtain the
1350
+ # next set of pages, pass in the `NextToken` from the response object of
1351
+ # the previous page call.
900
1352
  #
901
1353
  # @option params [Integer] :max_results
902
1354
  # The maximum number of workgroups to return in this request.
@@ -906,6 +1358,8 @@ module Aws::Athena
906
1358
  # * {Types::ListWorkGroupsOutput#work_groups #work_groups} => Array&lt;Types::WorkGroupSummary&gt;
907
1359
  # * {Types::ListWorkGroupsOutput#next_token #next_token} => String
908
1360
  #
1361
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1362
+ #
909
1363
  # @example Request syntax with placeholder values
910
1364
  #
911
1365
  # resp = client.list_work_groups({
@@ -932,10 +1386,10 @@ module Aws::Athena
932
1386
  end
933
1387
 
934
1388
  # Runs the SQL query statements contained in the `Query`. Requires you
935
- # to have access to the workgroup in which the query ran.
936
- #
937
- # For code samples using the AWS SDK for Java, see [Examples and Code
938
- # Samples][1] in the *Amazon Athena User Guide*.
1389
+ # to have access to the workgroup in which the query ran. Running
1390
+ # queries against an external catalog requires GetDataCatalog permission
1391
+ # to the catalog. For code samples using the AWS SDK for Java, see
1392
+ # [Examples and Code Samples][1] in the *Amazon Athena User Guide*.
939
1393
  #
940
1394
  #
941
1395
  #
@@ -985,6 +1439,7 @@ module Aws::Athena
985
1439
  # client_request_token: "IdempotencyToken",
986
1440
  # query_execution_context: {
987
1441
  # database: "DatabaseString",
1442
+ # catalog: "CatalogNameString",
988
1443
  # },
989
1444
  # result_configuration: {
990
1445
  # output_location: "String",
@@ -1042,31 +1497,31 @@ module Aws::Athena
1042
1497
  req.send_request(options)
1043
1498
  end
1044
1499
 
1045
- # Adds one or more tags to the resource, such as a workgroup. A tag is a
1046
- # label that you assign to an AWS Athena resource (a workgroup). Each
1047
- # tag consists of a key and an optional value, both of which you define.
1048
- # Tags enable you to categorize resources (workgroups) in Athena, for
1049
- # example, by purpose, owner, or environment. Use a consistent set of
1050
- # tag keys to make it easier to search and filter workgroups in your
1051
- # account. For best practices, see [AWS Tagging Strategies][1]. The key
1052
- # length is from 1 (minimum) to 128 (maximum) Unicode characters in
1053
- # UTF-8. The tag value length is from 0 (minimum) to 256 (maximum)
1054
- # Unicode characters in UTF-8. You can use letters and numbers
1055
- # representable in UTF-8, and the following characters: + - = . \_ : /
1056
- # @. Tag keys and values are case-sensitive. Tag keys must be unique per
1057
- # resource. If you specify more than one, separate them by commas.
1500
+ # Adds one or more tags to an Athena resource. A tag is a label that you
1501
+ # assign to a resource. In Athena, a resource can be a workgroup or data
1502
+ # catalog. Each tag consists of a key and an optional value, both of
1503
+ # which you define. For example, you can use tags to categorize Athena
1504
+ # workgroups or data catalogs by purpose, owner, or environment. Use a
1505
+ # consistent set of tag keys to make it easier to search and filter
1506
+ # workgroups or data catalogs in your account. For best practices, see
1507
+ # [Tagging Best Practices][1]. Tag keys can be from 1 to 128 UTF-8
1508
+ # Unicode characters, and tag values can be from 0 to 256 UTF-8 Unicode
1509
+ # characters. Tags can use letters and numbers representable in UTF-8,
1510
+ # and the following characters: + - = . \_ : / @. Tag keys and values
1511
+ # are case-sensitive. Tag keys must be unique per resource. If you
1512
+ # specify more than one tag, separate them by commas.
1058
1513
  #
1059
1514
  #
1060
1515
  #
1061
1516
  # [1]: https://aws.amazon.com/answers/account-management/aws-tagging-strategies/
1062
1517
  #
1063
1518
  # @option params [required, String] :resource_arn
1064
- # Requests that one or more tags are added to the resource (such as a
1065
- # workgroup) for the specified ARN.
1519
+ # Specifies the ARN of the Athena resource (workgroup or data catalog)
1520
+ # to which tags are to be added.
1066
1521
  #
1067
1522
  # @option params [required, Array<Types::Tag>] :tags
1068
- # One or more tags, separated by commas, to be added to the resource,
1069
- # such as a workgroup.
1523
+ # A collection of one or more tags, separated by commas, to be added to
1524
+ # an Athena workgroup or data catalog resource.
1070
1525
  #
1071
1526
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1072
1527
  #
@@ -1091,17 +1546,14 @@ module Aws::Athena
1091
1546
  req.send_request(options)
1092
1547
  end
1093
1548
 
1094
- # Removes one or more tags from the workgroup resource. Takes as an
1095
- # input a list of TagKey Strings separated by commas, and removes their
1096
- # tags at the same time.
1549
+ # Removes one or more tags from a data catalog or workgroup resource.
1097
1550
  #
1098
1551
  # @option params [required, String] :resource_arn
1099
- # Removes one or more tags from the workgroup resource for the specified
1100
- # ARN.
1552
+ # Specifies the ARN of the resource from which tags are to be removed.
1101
1553
  #
1102
1554
  # @option params [required, Array<String>] :tag_keys
1103
- # Removes the tags associated with one or more tag keys from the
1104
- # workgroup resource.
1555
+ # A comma-separated list of one or more tag keys whose tags are to be
1556
+ # removed from the specified resource.
1105
1557
  #
1106
1558
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1107
1559
  #
@@ -1121,6 +1573,72 @@ module Aws::Athena
1121
1573
  req.send_request(options)
1122
1574
  end
1123
1575
 
1576
+ # Updates the data catalog that has the specified name.
1577
+ #
1578
+ # @option params [required, String] :name
1579
+ # The name of the data catalog to update. The catalog name must be
1580
+ # unique for the AWS account and can use a maximum of 128 alphanumeric,
1581
+ # underscore, at sign, or hyphen characters.
1582
+ #
1583
+ # @option params [required, String] :type
1584
+ # Specifies the type of data catalog to update. Specify `LAMBDA` for a
1585
+ # federated catalog, `GLUE` for AWS Glue Catalog, or `HIVE` for an
1586
+ # external hive metastore.
1587
+ #
1588
+ # @option params [String] :description
1589
+ # New or modified text that describes the data catalog.
1590
+ #
1591
+ # @option params [Hash<String,String>] :parameters
1592
+ # Specifies the Lambda function or functions to use for updating the
1593
+ # data catalog. This is a mapping whose values depend on the catalog
1594
+ # type.
1595
+ #
1596
+ # * For the `HIVE` data catalog type, use the following syntax. The
1597
+ # `metadata-function` parameter is required. `The sdk-version`
1598
+ # parameter is optional and defaults to the currently supported
1599
+ # version.
1600
+ #
1601
+ # `metadata-function=lambda_arn, sdk-version=version_number `
1602
+ #
1603
+ # * For the `LAMBDA` data catalog type, use one of the following sets of
1604
+ # required parameters, but not both.
1605
+ #
1606
+ # * If you have one Lambda function that processes metadata and
1607
+ # another for reading the actual data, use the following syntax.
1608
+ # Both parameters are required.
1609
+ #
1610
+ # `metadata-function=lambda_arn, record-function=lambda_arn `
1611
+ #
1612
+ # * If you have a composite Lambda function that processes both
1613
+ # metadata and data, use the following syntax to specify your Lambda
1614
+ # function.
1615
+ #
1616
+ # `function=lambda_arn `
1617
+ #
1618
+ # * The `GLUE` type has no parameters.
1619
+ #
1620
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1621
+ #
1622
+ # @example Request syntax with placeholder values
1623
+ #
1624
+ # resp = client.update_data_catalog({
1625
+ # name: "CatalogNameString", # required
1626
+ # type: "LAMBDA", # required, accepts LAMBDA, GLUE, HIVE
1627
+ # description: "DescriptionString",
1628
+ # parameters: {
1629
+ # "KeyString" => "ParametersMapValue",
1630
+ # },
1631
+ # })
1632
+ #
1633
+ # @see http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/UpdateDataCatalog AWS API Documentation
1634
+ #
1635
+ # @overload update_data_catalog(params = {})
1636
+ # @param [Hash] params ({})
1637
+ def update_data_catalog(params = {}, options = {})
1638
+ req = build_request(:update_data_catalog, params)
1639
+ req.send_request(options)
1640
+ end
1641
+
1124
1642
  # Updates the workgroup with the specified name. The workgroup's name
1125
1643
  # cannot be changed.
1126
1644
  #
@@ -1185,7 +1703,7 @@ module Aws::Athena
1185
1703
  params: params,
1186
1704
  config: config)
1187
1705
  context[:gem_name] = 'aws-sdk-athena'
1188
- context[:gem_version] = '1.22.0'
1706
+ context[:gem_version] = '1.27.0'
1189
1707
  Seahorse::Client::Request.new(handlers, context)
1190
1708
  end
1191
1709