aws-sdk-freetier 1.0.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.
@@ -0,0 +1,509 @@
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
+ require 'seahorse/client/plugins/content_length.rb'
11
+ require 'aws-sdk-core/plugins/credentials_configuration.rb'
12
+ require 'aws-sdk-core/plugins/logging.rb'
13
+ require 'aws-sdk-core/plugins/param_converter.rb'
14
+ require 'aws-sdk-core/plugins/param_validator.rb'
15
+ require 'aws-sdk-core/plugins/user_agent.rb'
16
+ require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
17
+ require 'aws-sdk-core/plugins/retry_errors.rb'
18
+ require 'aws-sdk-core/plugins/global_configuration.rb'
19
+ require 'aws-sdk-core/plugins/regional_endpoint.rb'
20
+ require 'aws-sdk-core/plugins/endpoint_discovery.rb'
21
+ require 'aws-sdk-core/plugins/endpoint_pattern.rb'
22
+ require 'aws-sdk-core/plugins/response_paging.rb'
23
+ require 'aws-sdk-core/plugins/stub_responses.rb'
24
+ require 'aws-sdk-core/plugins/idempotency_token.rb'
25
+ require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
26
+ require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
27
+ require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
28
+ require 'aws-sdk-core/plugins/transfer_encoding.rb'
29
+ require 'aws-sdk-core/plugins/http_checksum.rb'
30
+ require 'aws-sdk-core/plugins/checksum_algorithm.rb'
31
+ require 'aws-sdk-core/plugins/request_compression.rb'
32
+ require 'aws-sdk-core/plugins/defaults_mode.rb'
33
+ require 'aws-sdk-core/plugins/recursion_detection.rb'
34
+ require 'aws-sdk-core/plugins/sign.rb'
35
+ require 'aws-sdk-core/plugins/protocols/json_rpc.rb'
36
+
37
+ Aws::Plugins::GlobalConfiguration.add_identifier(:freetier)
38
+
39
+ module Aws::FreeTier
40
+ # An API client for FreeTier. To construct a client, you need to configure a `:region` and `:credentials`.
41
+ #
42
+ # client = Aws::FreeTier::Client.new(
43
+ # region: region_name,
44
+ # credentials: credentials,
45
+ # # ...
46
+ # )
47
+ #
48
+ # For details on configuring region and credentials see
49
+ # the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html).
50
+ #
51
+ # See {#initialize} for a full list of supported configuration options.
52
+ class Client < Seahorse::Client::Base
53
+
54
+ include Aws::ClientStubs
55
+
56
+ @identifier = :freetier
57
+
58
+ set_api(ClientApi::API)
59
+
60
+ add_plugin(Seahorse::Client::Plugins::ContentLength)
61
+ add_plugin(Aws::Plugins::CredentialsConfiguration)
62
+ add_plugin(Aws::Plugins::Logging)
63
+ add_plugin(Aws::Plugins::ParamConverter)
64
+ add_plugin(Aws::Plugins::ParamValidator)
65
+ add_plugin(Aws::Plugins::UserAgent)
66
+ add_plugin(Aws::Plugins::HelpfulSocketErrors)
67
+ add_plugin(Aws::Plugins::RetryErrors)
68
+ add_plugin(Aws::Plugins::GlobalConfiguration)
69
+ add_plugin(Aws::Plugins::RegionalEndpoint)
70
+ add_plugin(Aws::Plugins::EndpointDiscovery)
71
+ add_plugin(Aws::Plugins::EndpointPattern)
72
+ add_plugin(Aws::Plugins::ResponsePaging)
73
+ add_plugin(Aws::Plugins::StubResponses)
74
+ add_plugin(Aws::Plugins::IdempotencyToken)
75
+ add_plugin(Aws::Plugins::JsonvalueConverter)
76
+ add_plugin(Aws::Plugins::ClientMetricsPlugin)
77
+ add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
78
+ add_plugin(Aws::Plugins::TransferEncoding)
79
+ add_plugin(Aws::Plugins::HttpChecksum)
80
+ add_plugin(Aws::Plugins::ChecksumAlgorithm)
81
+ add_plugin(Aws::Plugins::RequestCompression)
82
+ add_plugin(Aws::Plugins::DefaultsMode)
83
+ add_plugin(Aws::Plugins::RecursionDetection)
84
+ add_plugin(Aws::Plugins::Sign)
85
+ add_plugin(Aws::Plugins::Protocols::JsonRpc)
86
+ add_plugin(Aws::FreeTier::Plugins::Endpoints)
87
+
88
+ # @overload initialize(options)
89
+ # @param [Hash] options
90
+ # @option options [required, Aws::CredentialProvider] :credentials
91
+ # Your AWS credentials. This can be an instance of any one of the
92
+ # following classes:
93
+ #
94
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
95
+ # credentials.
96
+ #
97
+ # * `Aws::SharedCredentials` - Used for loading static credentials from a
98
+ # shared file, such as `~/.aws/config`.
99
+ #
100
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
101
+ #
102
+ # * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to
103
+ # assume a role after providing credentials via the web.
104
+ #
105
+ # * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an
106
+ # access token generated from `aws login`.
107
+ #
108
+ # * `Aws::ProcessCredentials` - Used for loading credentials from a
109
+ # process that outputs to stdout.
110
+ #
111
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
112
+ # from an EC2 IMDS on an EC2 instance.
113
+ #
114
+ # * `Aws::ECSCredentials` - Used for loading credentials from
115
+ # instances running in ECS.
116
+ #
117
+ # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
118
+ # from the Cognito Identity service.
119
+ #
120
+ # When `:credentials` are not configured directly, the following
121
+ # locations will be searched for credentials:
122
+ #
123
+ # * `Aws.config[:credentials]`
124
+ # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
125
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
126
+ # * `~/.aws/credentials`
127
+ # * `~/.aws/config`
128
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts
129
+ # are very aggressive. Construct and pass an instance of
130
+ # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
131
+ # enable retries and extended timeouts. Instance profile credential
132
+ # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
133
+ # to true.
134
+ #
135
+ # @option options [required, String] :region
136
+ # The AWS region to connect to. The configured `:region` is
137
+ # used to determine the service `:endpoint`. When not passed,
138
+ # a default `:region` is searched for in the following locations:
139
+ #
140
+ # * `Aws.config[:region]`
141
+ # * `ENV['AWS_REGION']`
142
+ # * `ENV['AMAZON_REGION']`
143
+ # * `ENV['AWS_DEFAULT_REGION']`
144
+ # * `~/.aws/credentials`
145
+ # * `~/.aws/config`
146
+ #
147
+ # @option options [String] :access_key_id
148
+ #
149
+ # @option options [Boolean] :active_endpoint_cache (false)
150
+ # When set to `true`, a thread polling for endpoints will be running in
151
+ # the background every 60 secs (default). Defaults to `false`.
152
+ #
153
+ # @option options [Boolean] :adaptive_retry_wait_to_fill (true)
154
+ # Used only in `adaptive` retry mode. When true, the request will sleep
155
+ # until there is sufficent client side capacity to retry the request.
156
+ # When false, the request will raise a `RetryCapacityNotAvailableError` and will
157
+ # not retry instead of sleeping.
158
+ #
159
+ # @option options [Boolean] :client_side_monitoring (false)
160
+ # When `true`, client-side metrics will be collected for all API requests from
161
+ # this client.
162
+ #
163
+ # @option options [String] :client_side_monitoring_client_id ("")
164
+ # Allows you to provide an identifier for this client which will be attached to
165
+ # all generated client side metrics. Defaults to an empty string.
166
+ #
167
+ # @option options [String] :client_side_monitoring_host ("127.0.0.1")
168
+ # Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client
169
+ # side monitoring agent is running on, where client metrics will be published via UDP.
170
+ #
171
+ # @option options [Integer] :client_side_monitoring_port (31000)
172
+ # Required for publishing client metrics. The port that the client side monitoring
173
+ # agent is running on, where client metrics will be published via UDP.
174
+ #
175
+ # @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher)
176
+ # Allows you to provide a custom client-side monitoring publisher class. By default,
177
+ # will use the Client Side Monitoring Agent Publisher.
178
+ #
179
+ # @option options [Boolean] :convert_params (true)
180
+ # When `true`, an attempt is made to coerce request parameters into
181
+ # the required types.
182
+ #
183
+ # @option options [Boolean] :correct_clock_skew (true)
184
+ # Used only in `standard` and adaptive retry modes. Specifies whether to apply
185
+ # a clock skew correction and retry requests with skewed client clocks.
186
+ #
187
+ # @option options [String] :defaults_mode ("legacy")
188
+ # See {Aws::DefaultsModeConfiguration} for a list of the
189
+ # accepted modes and the configuration defaults that are included.
190
+ #
191
+ # @option options [Boolean] :disable_host_prefix_injection (false)
192
+ # Set to true to disable SDK automatically adding host prefix
193
+ # to default service endpoint when available.
194
+ #
195
+ # @option options [Boolean] :disable_request_compression (false)
196
+ # When set to 'true' the request body will not be compressed
197
+ # for supported operations.
198
+ #
199
+ # @option options [String] :endpoint
200
+ # The client endpoint is normally constructed from the `:region`
201
+ # option. You should only configure an `:endpoint` when connecting
202
+ # to test or custom endpoints. This should be a valid HTTP(S) URI.
203
+ #
204
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
205
+ # Used for the maximum size limit of the LRU cache storing endpoints data
206
+ # for endpoint discovery enabled operations. Defaults to 1000.
207
+ #
208
+ # @option options [Integer] :endpoint_cache_max_threads (10)
209
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
210
+ #
211
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
212
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
213
+ # Use this option to config the time interval in seconds for making
214
+ # requests fetching endpoints information. Defaults to 60 sec.
215
+ #
216
+ # @option options [Boolean] :endpoint_discovery (false)
217
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
218
+ #
219
+ # @option options [Boolean] :ignore_configured_endpoint_urls
220
+ # Setting to true disables use of endpoint URLs provided via environment
221
+ # variables and the shared configuration file.
222
+ #
223
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
224
+ # The log formatter.
225
+ #
226
+ # @option options [Symbol] :log_level (:info)
227
+ # The log level to send messages to the `:logger` at.
228
+ #
229
+ # @option options [Logger] :logger
230
+ # The Logger instance to send log messages to. If this option
231
+ # is not set, logging will be disabled.
232
+ #
233
+ # @option options [Integer] :max_attempts (3)
234
+ # An integer representing the maximum number attempts that will be made for
235
+ # a single request, including the initial attempt. For example,
236
+ # setting this value to 5 will result in a request being retried up to
237
+ # 4 times. Used in `standard` and `adaptive` retry modes.
238
+ #
239
+ # @option options [String] :profile ("default")
240
+ # Used when loading credentials from the shared credentials file
241
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
242
+ #
243
+ # @option options [Integer] :request_min_compression_size_bytes (10240)
244
+ # The minimum size in bytes that triggers compression for request
245
+ # bodies. The value must be non-negative integer value between 0
246
+ # and 10485780 bytes inclusive.
247
+ #
248
+ # @option options [Proc] :retry_backoff
249
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
250
+ # This option is only used in the `legacy` retry mode.
251
+ #
252
+ # @option options [Float] :retry_base_delay (0.3)
253
+ # The base delay in seconds used by the default backoff function. This option
254
+ # is only used in the `legacy` retry mode.
255
+ #
256
+ # @option options [Symbol] :retry_jitter (:none)
257
+ # A delay randomiser function used by the default backoff function.
258
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
259
+ # otherwise a Proc that takes and returns a number. This option is only used
260
+ # in the `legacy` retry mode.
261
+ #
262
+ # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
263
+ #
264
+ # @option options [Integer] :retry_limit (3)
265
+ # The maximum number of times to retry failed requests. Only
266
+ # ~ 500 level server errors and certain ~ 400 level client errors
267
+ # are retried. Generally, these are throttling errors, data
268
+ # checksum errors, networking errors, timeout errors, auth errors,
269
+ # endpoint discovery, and errors from expired credentials.
270
+ # This option is only used in the `legacy` retry mode.
271
+ #
272
+ # @option options [Integer] :retry_max_delay (0)
273
+ # The maximum number of seconds to delay between retries (0 for no limit)
274
+ # used by the default backoff function. This option is only used in the
275
+ # `legacy` retry mode.
276
+ #
277
+ # @option options [String] :retry_mode ("legacy")
278
+ # Specifies which retry algorithm to use. Values are:
279
+ #
280
+ # * `legacy` - The pre-existing retry behavior. This is default value if
281
+ # no retry mode is provided.
282
+ #
283
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
284
+ # This includes support for retry quotas, which limit the number of
285
+ # unsuccessful retries a client can make.
286
+ #
287
+ # * `adaptive` - An experimental retry mode that includes all the
288
+ # functionality of `standard` mode along with automatic client side
289
+ # throttling. This is a provisional mode that may change behavior
290
+ # in the future.
291
+ #
292
+ #
293
+ # @option options [String] :sdk_ua_app_id
294
+ # A unique and opaque application ID that is appended to the
295
+ # User-Agent header as app/<sdk_ua_app_id>. It should have a
296
+ # maximum length of 50.
297
+ #
298
+ # @option options [String] :secret_access_key
299
+ #
300
+ # @option options [String] :session_token
301
+ #
302
+ # @option options [Boolean] :simple_json (false)
303
+ # Disables request parameter conversion, validation, and formatting.
304
+ # Also disable response data type conversions. This option is useful
305
+ # when you want to ensure the highest level of performance by
306
+ # avoiding overhead of walking request parameters and response data
307
+ # structures.
308
+ #
309
+ # When `:simple_json` is enabled, the request parameters hash must
310
+ # be formatted exactly as the DynamoDB API expects.
311
+ #
312
+ # @option options [Boolean] :stub_responses (false)
313
+ # Causes the client to return stubbed responses. By default
314
+ # fake responses are generated and returned. You can specify
315
+ # the response data to return or errors to raise by calling
316
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
317
+ #
318
+ # ** Please note ** When response stubbing is enabled, no HTTP
319
+ # requests are made, and retries are disabled.
320
+ #
321
+ # @option options [Aws::TokenProvider] :token_provider
322
+ # A Bearer Token Provider. This can be an instance of any one of the
323
+ # following classes:
324
+ #
325
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
326
+ # tokens.
327
+ #
328
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
329
+ # access token generated from `aws login`.
330
+ #
331
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
332
+ # will be used to search for tokens configured for your profile in shared configuration files.
333
+ #
334
+ # @option options [Boolean] :use_dualstack_endpoint
335
+ # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
336
+ # will be used if available.
337
+ #
338
+ # @option options [Boolean] :use_fips_endpoint
339
+ # When set to `true`, fips compatible endpoints will be used if available.
340
+ # When a `fips` region is used, the region is normalized and this config
341
+ # is set to `true`.
342
+ #
343
+ # @option options [Boolean] :validate_params (true)
344
+ # When `true`, request parameters are validated before
345
+ # sending the request.
346
+ #
347
+ # @option options [Aws::FreeTier::EndpointProvider] :endpoint_provider
348
+ # The endpoint provider used to resolve endpoints. Any object that responds to `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to `Aws::FreeTier::EndpointParameters`
349
+ #
350
+ # @option options [URI::HTTP,String] :http_proxy A proxy to send
351
+ # requests through. Formatted like 'http://proxy.com:123'.
352
+ #
353
+ # @option options [Float] :http_open_timeout (15) The number of
354
+ # seconds to wait when opening a HTTP session before raising a
355
+ # `Timeout::Error`.
356
+ #
357
+ # @option options [Float] :http_read_timeout (60) The default
358
+ # number of seconds to wait for response data. This value can
359
+ # safely be set per-request on the session.
360
+ #
361
+ # @option options [Float] :http_idle_timeout (5) The number of
362
+ # seconds a connection is allowed to sit idle before it is
363
+ # considered stale. Stale connections are closed and removed
364
+ # from the pool before making a request.
365
+ #
366
+ # @option options [Float] :http_continue_timeout (1) The number of
367
+ # seconds to wait for a 100-continue response before sending the
368
+ # request body. This option has no effect unless the request has
369
+ # "Expect" header set to "100-continue". Defaults to `nil` which
370
+ # disables this behaviour. This value can safely be set per
371
+ # request on the session.
372
+ #
373
+ # @option options [Float] :ssl_timeout (nil) Sets the SSL timeout
374
+ # in seconds.
375
+ #
376
+ # @option options [Boolean] :http_wire_trace (false) When `true`,
377
+ # HTTP debug output will be sent to the `:logger`.
378
+ #
379
+ # @option options [Boolean] :ssl_verify_peer (true) When `true`,
380
+ # SSL peer certificates are verified when establishing a
381
+ # connection.
382
+ #
383
+ # @option options [String] :ssl_ca_bundle Full path to the SSL
384
+ # certificate authority bundle file that should be used when
385
+ # verifying peer certificates. If you do not pass
386
+ # `:ssl_ca_bundle` or `:ssl_ca_directory` the the system default
387
+ # will be used if available.
388
+ #
389
+ # @option options [String] :ssl_ca_directory Full path of the
390
+ # directory that contains the unbundled SSL certificate
391
+ # authority files for verifying peer certificates. If you do
392
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the
393
+ # system default will be used if available.
394
+ #
395
+ def initialize(*args)
396
+ super
397
+ end
398
+
399
+ # @!group API Operations
400
+
401
+ # Returns a list of all Free Tier usage objects that match your filters.
402
+ #
403
+ # @option params [Types::Expression] :filter
404
+ # An expression that specifies the conditions that you want each
405
+ # `FreeTierUsage` object to meet.
406
+ #
407
+ # @option params [Integer] :max_results
408
+ # The maximum number of results to return in the response. `MaxResults`
409
+ # means that there can be up to the specified number of values, but
410
+ # there might be fewer results based on your filters.
411
+ #
412
+ # @option params [String] :next_token
413
+ # The pagination token that indicates the next set of results to
414
+ # retrieve.
415
+ #
416
+ # @return [Types::GetFreeTierUsageResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
417
+ #
418
+ # * {Types::GetFreeTierUsageResponse#free_tier_usages #free_tier_usages} => Array&lt;Types::FreeTierUsage&gt;
419
+ # * {Types::GetFreeTierUsageResponse#next_token #next_token} => String
420
+ #
421
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
422
+ #
423
+ # @example Request syntax with placeholder values
424
+ #
425
+ # resp = client.get_free_tier_usage({
426
+ # filter: {
427
+ # and: [
428
+ # {
429
+ # # recursive Expression
430
+ # },
431
+ # ],
432
+ # dimensions: {
433
+ # key: "SERVICE", # required, accepts SERVICE, OPERATION, USAGE_TYPE, REGION, FREE_TIER_TYPE, DESCRIPTION, USAGE_PERCENTAGE
434
+ # match_options: ["EQUALS"], # required, accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, GREATER_THAN_OR_EQUAL
435
+ # values: ["Value"], # required
436
+ # },
437
+ # not: {
438
+ # # recursive Expression
439
+ # },
440
+ # or: [
441
+ # {
442
+ # # recursive Expression
443
+ # },
444
+ # ],
445
+ # },
446
+ # max_results: 1,
447
+ # next_token: "NextPageToken",
448
+ # })
449
+ #
450
+ # @example Response structure
451
+ #
452
+ # resp.free_tier_usages #=> Array
453
+ # resp.free_tier_usages[0].actual_usage_amount #=> Float
454
+ # resp.free_tier_usages[0].description #=> String
455
+ # resp.free_tier_usages[0].forecasted_usage_amount #=> Float
456
+ # resp.free_tier_usages[0].free_tier_type #=> String
457
+ # resp.free_tier_usages[0].limit #=> Float
458
+ # resp.free_tier_usages[0].operation #=> String
459
+ # resp.free_tier_usages[0].region #=> String
460
+ # resp.free_tier_usages[0].service #=> String
461
+ # resp.free_tier_usages[0].unit #=> String
462
+ # resp.free_tier_usages[0].usage_type #=> String
463
+ # resp.next_token #=> String
464
+ #
465
+ # @see http://docs.aws.amazon.com/goto/WebAPI/freetier-2023-09-07/GetFreeTierUsage AWS API Documentation
466
+ #
467
+ # @overload get_free_tier_usage(params = {})
468
+ # @param [Hash] params ({})
469
+ def get_free_tier_usage(params = {}, options = {})
470
+ req = build_request(:get_free_tier_usage, params)
471
+ req.send_request(options)
472
+ end
473
+
474
+ # @!endgroup
475
+
476
+ # @param params ({})
477
+ # @api private
478
+ def build_request(operation_name, params = {})
479
+ handlers = @handlers.for(operation_name)
480
+ context = Seahorse::Client::RequestContext.new(
481
+ operation_name: operation_name,
482
+ operation: config.api.operation(operation_name),
483
+ client: self,
484
+ params: params,
485
+ config: config)
486
+ context[:gem_name] = 'aws-sdk-freetier'
487
+ context[:gem_version] = '1.0.0'
488
+ Seahorse::Client::Request.new(handlers, context)
489
+ end
490
+
491
+ # @api private
492
+ # @deprecated
493
+ def waiter_names
494
+ []
495
+ end
496
+
497
+ class << self
498
+
499
+ # @api private
500
+ attr_reader :identifier
501
+
502
+ # @api private
503
+ def errors_module
504
+ Errors
505
+ end
506
+
507
+ end
508
+ end
509
+ end
@@ -0,0 +1,123 @@
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::FreeTier
11
+ # @api private
12
+ module ClientApi
13
+
14
+ include Seahorse::Model
15
+
16
+ Dimension = Shapes::StringShape.new(name: 'Dimension')
17
+ DimensionValues = Shapes::StructureShape.new(name: 'DimensionValues')
18
+ Expression = Shapes::StructureShape.new(name: 'Expression')
19
+ Expressions = Shapes::ListShape.new(name: 'Expressions')
20
+ FreeTierUsage = Shapes::StructureShape.new(name: 'FreeTierUsage')
21
+ FreeTierUsages = Shapes::ListShape.new(name: 'FreeTierUsages')
22
+ GenericDouble = Shapes::FloatShape.new(name: 'GenericDouble')
23
+ GenericString = Shapes::StringShape.new(name: 'GenericString')
24
+ GetFreeTierUsageRequest = Shapes::StructureShape.new(name: 'GetFreeTierUsageRequest')
25
+ GetFreeTierUsageResponse = Shapes::StructureShape.new(name: 'GetFreeTierUsageResponse')
26
+ InternalServerException = Shapes::StructureShape.new(name: 'InternalServerException')
27
+ MatchOption = Shapes::StringShape.new(name: 'MatchOption')
28
+ MatchOptions = Shapes::ListShape.new(name: 'MatchOptions')
29
+ MaxResults = Shapes::IntegerShape.new(name: 'MaxResults')
30
+ NextPageToken = Shapes::StringShape.new(name: 'NextPageToken')
31
+ ThrottlingException = Shapes::StructureShape.new(name: 'ThrottlingException')
32
+ ValidationException = Shapes::StructureShape.new(name: 'ValidationException')
33
+ Value = Shapes::StringShape.new(name: 'Value')
34
+ Values = Shapes::ListShape.new(name: 'Values')
35
+
36
+ DimensionValues.add_member(:key, Shapes::ShapeRef.new(shape: Dimension, required: true, location_name: "Key"))
37
+ DimensionValues.add_member(:match_options, Shapes::ShapeRef.new(shape: MatchOptions, required: true, location_name: "MatchOptions"))
38
+ DimensionValues.add_member(:values, Shapes::ShapeRef.new(shape: Values, required: true, location_name: "Values"))
39
+ DimensionValues.struct_class = Types::DimensionValues
40
+
41
+ Expression.add_member(:and, Shapes::ShapeRef.new(shape: Expressions, location_name: "And"))
42
+ Expression.add_member(:dimensions, Shapes::ShapeRef.new(shape: DimensionValues, location_name: "Dimensions"))
43
+ Expression.add_member(:not, Shapes::ShapeRef.new(shape: Expression, location_name: "Not"))
44
+ Expression.add_member(:or, Shapes::ShapeRef.new(shape: Expressions, location_name: "Or"))
45
+ Expression.struct_class = Types::Expression
46
+
47
+ Expressions.member = Shapes::ShapeRef.new(shape: Expression)
48
+
49
+ FreeTierUsage.add_member(:actual_usage_amount, Shapes::ShapeRef.new(shape: GenericDouble, location_name: "actualUsageAmount"))
50
+ FreeTierUsage.add_member(:description, Shapes::ShapeRef.new(shape: GenericString, location_name: "description"))
51
+ FreeTierUsage.add_member(:forecasted_usage_amount, Shapes::ShapeRef.new(shape: GenericDouble, location_name: "forecastedUsageAmount"))
52
+ FreeTierUsage.add_member(:free_tier_type, Shapes::ShapeRef.new(shape: GenericString, location_name: "freeTierType"))
53
+ FreeTierUsage.add_member(:limit, Shapes::ShapeRef.new(shape: GenericDouble, location_name: "limit"))
54
+ FreeTierUsage.add_member(:operation, Shapes::ShapeRef.new(shape: GenericString, location_name: "operation"))
55
+ FreeTierUsage.add_member(:region, Shapes::ShapeRef.new(shape: GenericString, location_name: "region"))
56
+ FreeTierUsage.add_member(:service, Shapes::ShapeRef.new(shape: GenericString, location_name: "service"))
57
+ FreeTierUsage.add_member(:unit, Shapes::ShapeRef.new(shape: GenericString, location_name: "unit"))
58
+ FreeTierUsage.add_member(:usage_type, Shapes::ShapeRef.new(shape: GenericString, location_name: "usageType"))
59
+ FreeTierUsage.struct_class = Types::FreeTierUsage
60
+
61
+ FreeTierUsages.member = Shapes::ShapeRef.new(shape: FreeTierUsage)
62
+
63
+ GetFreeTierUsageRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "filter"))
64
+ GetFreeTierUsageRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "maxResults"))
65
+ GetFreeTierUsageRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "nextToken"))
66
+ GetFreeTierUsageRequest.struct_class = Types::GetFreeTierUsageRequest
67
+
68
+ GetFreeTierUsageResponse.add_member(:free_tier_usages, Shapes::ShapeRef.new(shape: FreeTierUsages, required: true, location_name: "freeTierUsages"))
69
+ GetFreeTierUsageResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "nextToken"))
70
+ GetFreeTierUsageResponse.struct_class = Types::GetFreeTierUsageResponse
71
+
72
+ InternalServerException.add_member(:message, Shapes::ShapeRef.new(shape: GenericString, required: true, location_name: "message"))
73
+ InternalServerException.struct_class = Types::InternalServerException
74
+
75
+ MatchOptions.member = Shapes::ShapeRef.new(shape: MatchOption)
76
+
77
+ ThrottlingException.add_member(:message, Shapes::ShapeRef.new(shape: GenericString, required: true, location_name: "message"))
78
+ ThrottlingException.struct_class = Types::ThrottlingException
79
+
80
+ ValidationException.add_member(:message, Shapes::ShapeRef.new(shape: GenericString, required: true, location_name: "message"))
81
+ ValidationException.struct_class = Types::ValidationException
82
+
83
+ Values.member = Shapes::ShapeRef.new(shape: Value)
84
+
85
+
86
+ # @api private
87
+ API = Seahorse::Model::Api.new.tap do |api|
88
+
89
+ api.version = "2023-09-07"
90
+
91
+ api.metadata = {
92
+ "apiVersion" => "2023-09-07",
93
+ "endpointPrefix" => "freetier",
94
+ "jsonVersion" => "1.0",
95
+ "protocol" => "json",
96
+ "serviceFullName" => "AWS Free Tier",
97
+ "serviceId" => "FreeTier",
98
+ "signatureVersion" => "v4",
99
+ "signingName" => "freetier",
100
+ "targetPrefix" => "AWSFreeTierService",
101
+ "uid" => "freetier-2023-09-07",
102
+ }
103
+
104
+ api.add_operation(:get_free_tier_usage, Seahorse::Model::Operation.new.tap do |o|
105
+ o.name = "GetFreeTierUsage"
106
+ o.http_method = "POST"
107
+ o.http_request_uri = "/"
108
+ o.input = Shapes::ShapeRef.new(shape: GetFreeTierUsageRequest)
109
+ o.output = Shapes::ShapeRef.new(shape: GetFreeTierUsageResponse)
110
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
111
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
112
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
113
+ o[:pager] = Aws::Pager.new(
114
+ limit_key: "max_results",
115
+ tokens: {
116
+ "next_token" => "next_token"
117
+ }
118
+ )
119
+ end)
120
+ end
121
+
122
+ end
123
+ end
File without changes
@@ -0,0 +1,54 @@
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::FreeTier
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_fips
19
+ # 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.
20
+ #
21
+ # @return [Boolean]
22
+ #
23
+ # @!attribute endpoint
24
+ # Override the endpoint used to send this request
25
+ #
26
+ # @return [String]
27
+ #
28
+ EndpointParameters = Struct.new(
29
+ :region,
30
+ :use_fips,
31
+ :endpoint,
32
+ ) do
33
+ include Aws::Structure
34
+
35
+ # @api private
36
+ class << self
37
+ PARAM_MAP = {
38
+ 'Region' => :region,
39
+ 'UseFIPS' => :use_fips,
40
+ 'Endpoint' => :endpoint,
41
+ }.freeze
42
+ end
43
+
44
+ def initialize(options = {})
45
+ self[:region] = options[:region]
46
+ self[:use_fips] = options[:use_fips]
47
+ self[:use_fips] = false if self[:use_fips].nil?
48
+ if self[:use_fips].nil?
49
+ raise ArgumentError, "Missing required EndpointParameter: :use_fips"
50
+ end
51
+ self[:endpoint] = options[:endpoint]
52
+ end
53
+ end
54
+ end