aws-sdk-secretsmanager 1.84.0 → 1.110.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -22,6 +22,7 @@ require 'aws-sdk-core/plugins/endpoint_pattern.rb'
22
22
  require 'aws-sdk-core/plugins/response_paging.rb'
23
23
  require 'aws-sdk-core/plugins/stub_responses.rb'
24
24
  require 'aws-sdk-core/plugins/idempotency_token.rb'
25
+ require 'aws-sdk-core/plugins/invocation_id.rb'
25
26
  require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
26
27
  require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
27
28
  require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
@@ -31,11 +32,10 @@ require 'aws-sdk-core/plugins/checksum_algorithm.rb'
31
32
  require 'aws-sdk-core/plugins/request_compression.rb'
32
33
  require 'aws-sdk-core/plugins/defaults_mode.rb'
33
34
  require 'aws-sdk-core/plugins/recursion_detection.rb'
35
+ require 'aws-sdk-core/plugins/telemetry.rb'
34
36
  require 'aws-sdk-core/plugins/sign.rb'
35
37
  require 'aws-sdk-core/plugins/protocols/json_rpc.rb'
36
38
 
37
- Aws::Plugins::GlobalConfiguration.add_identifier(:secretsmanager)
38
-
39
39
  module Aws::SecretsManager
40
40
  # An API client for SecretsManager. To construct a client, you need to configure a `:region` and `:credentials`.
41
41
  #
@@ -72,6 +72,7 @@ module Aws::SecretsManager
72
72
  add_plugin(Aws::Plugins::ResponsePaging)
73
73
  add_plugin(Aws::Plugins::StubResponses)
74
74
  add_plugin(Aws::Plugins::IdempotencyToken)
75
+ add_plugin(Aws::Plugins::InvocationId)
75
76
  add_plugin(Aws::Plugins::JsonvalueConverter)
76
77
  add_plugin(Aws::Plugins::ClientMetricsPlugin)
77
78
  add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
@@ -81,12 +82,18 @@ module Aws::SecretsManager
81
82
  add_plugin(Aws::Plugins::RequestCompression)
82
83
  add_plugin(Aws::Plugins::DefaultsMode)
83
84
  add_plugin(Aws::Plugins::RecursionDetection)
85
+ add_plugin(Aws::Plugins::Telemetry)
84
86
  add_plugin(Aws::Plugins::Sign)
85
87
  add_plugin(Aws::Plugins::Protocols::JsonRpc)
86
88
  add_plugin(Aws::SecretsManager::Plugins::Endpoints)
87
89
 
88
90
  # @overload initialize(options)
89
91
  # @param [Hash] options
92
+ #
93
+ # @option options [Array<Seahorse::Client::Plugin>] :plugins ([]])
94
+ # A list of plugins to apply to the client. Each plugin is either a
95
+ # class name or an instance of a plugin class.
96
+ #
90
97
  # @option options [required, Aws::CredentialProvider] :credentials
91
98
  # Your AWS credentials. This can be an instance of any one of the
92
99
  # following classes:
@@ -121,13 +128,15 @@ module Aws::SecretsManager
121
128
  # locations will be searched for credentials:
122
129
  #
123
130
  # * `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']
131
+ # * The `:access_key_id`, `:secret_access_key`, `:session_token`, and
132
+ # `:account_id` options.
133
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'],
134
+ # ENV['AWS_SESSION_TOKEN'], and ENV['AWS_ACCOUNT_ID']
126
135
  # * `~/.aws/credentials`
127
136
  # * `~/.aws/config`
128
137
  # * EC2/ECS IMDS instance profile - When used by default, the timeouts
129
138
  # are very aggressive. Construct and pass an instance of
130
- # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
139
+ # `Aws::InstanceProfileCredentials` or `Aws::ECSCredentials` to
131
140
  # enable retries and extended timeouts. Instance profile credential
132
141
  # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
133
142
  # to true.
@@ -146,6 +155,8 @@ module Aws::SecretsManager
146
155
  #
147
156
  # @option options [String] :access_key_id
148
157
  #
158
+ # @option options [String] :account_id
159
+ #
149
160
  # @option options [Boolean] :active_endpoint_cache (false)
150
161
  # When set to `true`, a thread polling for endpoints will be running in
151
162
  # the background every 60 secs (default). Defaults to `false`.
@@ -196,10 +207,16 @@ module Aws::SecretsManager
196
207
  # When set to 'true' the request body will not be compressed
197
208
  # for supported operations.
198
209
  #
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.
210
+ # @option options [String, URI::HTTPS, URI::HTTP] :endpoint
211
+ # Normally you should not configure the `:endpoint` option
212
+ # directly. This is normally constructed from the `:region`
213
+ # option. Configuring `:endpoint` is normally reserved for
214
+ # connecting to test or custom endpoints. The endpoint should
215
+ # be a URI formatted like:
216
+ #
217
+ # 'http://example.com'
218
+ # 'https://example.com'
219
+ # 'http://example.com:123'
203
220
  #
204
221
  # @option options [Integer] :endpoint_cache_max_entries (1000)
205
222
  # Used for the maximum size limit of the LRU cache storing endpoints data
@@ -289,25 +306,31 @@ module Aws::SecretsManager
289
306
  # throttling. This is a provisional mode that may change behavior
290
307
  # in the future.
291
308
  #
292
- #
293
309
  # @option options [String] :sdk_ua_app_id
294
310
  # 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.
311
+ # User-Agent header as app/sdk_ua_app_id. It should have a
312
+ # maximum length of 50. This variable is sourced from environment
313
+ # variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id.
297
314
  #
298
315
  # @option options [String] :secret_access_key
299
316
  #
300
317
  # @option options [String] :session_token
301
318
  #
319
+ # @option options [Array] :sigv4a_signing_region_set
320
+ # A list of regions that should be signed with SigV4a signing. When
321
+ # not passed, a default `:sigv4a_signing_region_set` is searched for
322
+ # in the following locations:
323
+ #
324
+ # * `Aws.config[:sigv4a_signing_region_set]`
325
+ # * `ENV['AWS_SIGV4A_SIGNING_REGION_SET']`
326
+ # * `~/.aws/config`
327
+ #
302
328
  # @option options [Boolean] :simple_json (false)
303
329
  # 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.
330
+ # Also disables response data type conversions. The request parameters
331
+ # hash must be formatted exactly as the API expects.This option is useful
332
+ # when you want to ensure the highest level of performance by avoiding
333
+ # overhead of walking request parameters and response data structures.
311
334
  #
312
335
  # @option options [Boolean] :stub_responses (false)
313
336
  # Causes the client to return stubbed responses. By default
@@ -318,6 +341,16 @@ module Aws::SecretsManager
318
341
  # ** Please note ** When response stubbing is enabled, no HTTP
319
342
  # requests are made, and retries are disabled.
320
343
  #
344
+ # @option options [Aws::Telemetry::TelemetryProviderBase] :telemetry_provider (Aws::Telemetry::NoOpTelemetryProvider)
345
+ # Allows you to provide a telemetry provider, which is used to
346
+ # emit telemetry data. By default, uses `NoOpTelemetryProvider` which
347
+ # will not record or emit any telemetry data. The SDK supports the
348
+ # following telemetry providers:
349
+ #
350
+ # * OpenTelemetry (OTel) - To use the OTel provider, install and require the
351
+ # `opentelemetry-sdk` gem and then, pass in an instance of a
352
+ # `Aws::Telemetry::OTelProvider` for telemetry provider.
353
+ #
321
354
  # @option options [Aws::TokenProvider] :token_provider
322
355
  # A Bearer Token Provider. This can be an instance of any one of the
323
356
  # following classes:
@@ -345,59 +378,233 @@ module Aws::SecretsManager
345
378
  # sending the request.
346
379
  #
347
380
  # @option options [Aws::SecretsManager::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::SecretsManager::EndpointParameters`
381
+ # The endpoint provider used to resolve endpoints. Any object that responds to
382
+ # `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to
383
+ # `Aws::SecretsManager::EndpointParameters`.
384
+ #
385
+ # @option options [Float] :http_continue_timeout (1)
386
+ # The number of seconds to wait for a 100-continue response before sending the
387
+ # request body. This option has no effect unless the request has "Expect"
388
+ # header set to "100-continue". Defaults to `nil` which disables this
389
+ # behaviour. This value can safely be set per request on the session.
390
+ #
391
+ # @option options [Float] :http_idle_timeout (5)
392
+ # The number of seconds a connection is allowed to sit idle before it
393
+ # is considered stale. Stale connections are closed and removed from the
394
+ # pool before making a request.
395
+ #
396
+ # @option options [Float] :http_open_timeout (15)
397
+ # The default number of seconds to wait for response data.
398
+ # This value can safely be set per-request on the session.
399
+ #
400
+ # @option options [URI::HTTP,String] :http_proxy
401
+ # A proxy to send requests through. Formatted like 'http://proxy.com:123'.
402
+ #
403
+ # @option options [Float] :http_read_timeout (60)
404
+ # The default number of seconds to wait for response data.
405
+ # This value can safely be set per-request on the session.
406
+ #
407
+ # @option options [Boolean] :http_wire_trace (false)
408
+ # When `true`, HTTP debug output will be sent to the `:logger`.
409
+ #
410
+ # @option options [Proc] :on_chunk_received
411
+ # When a Proc object is provided, it will be used as callback when each chunk
412
+ # of the response body is received. It provides three arguments: the chunk,
413
+ # the number of bytes received, and the total number of
414
+ # bytes in the response (or nil if the server did not send a `content-length`).
415
+ #
416
+ # @option options [Proc] :on_chunk_sent
417
+ # When a Proc object is provided, it will be used as callback when each chunk
418
+ # of the request body is sent. It provides three arguments: the chunk,
419
+ # the number of bytes read from the body, and the total number of
420
+ # bytes in the body.
421
+ #
422
+ # @option options [Boolean] :raise_response_errors (true)
423
+ # When `true`, response errors are raised.
424
+ #
425
+ # @option options [String] :ssl_ca_bundle
426
+ # Full path to the SSL certificate authority bundle file that should be used when
427
+ # verifying peer certificates. If you do not pass `:ssl_ca_bundle` or
428
+ # `:ssl_ca_directory` the the system default will be used if available.
429
+ #
430
+ # @option options [String] :ssl_ca_directory
431
+ # Full path of the directory that contains the unbundled SSL certificate
432
+ # authority files for verifying peer certificates. If you do
433
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the system
434
+ # default will be used if available.
349
435
  #
350
- # @option options [URI::HTTP,String] :http_proxy A proxy to send
351
- # requests through. Formatted like 'http://proxy.com:123'.
436
+ # @option options [String] :ssl_ca_store
437
+ # Sets the X509::Store to verify peer certificate.
352
438
  #
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`.
439
+ # @option options [OpenSSL::X509::Certificate] :ssl_cert
440
+ # Sets a client certificate when creating http connections.
356
441
  #
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.
442
+ # @option options [OpenSSL::PKey] :ssl_key
443
+ # Sets a client key when creating http connections.
444
+ #
445
+ # @option options [Float] :ssl_timeout
446
+ # Sets the SSL timeout in seconds
447
+ #
448
+ # @option options [Boolean] :ssl_verify_peer (true)
449
+ # When `true`, SSL peer certificates are verified when establishing a connection.
450
+ #
451
+ def initialize(*args)
452
+ super
453
+ end
454
+
455
+ # @!group API Operations
456
+
457
+ # Retrieves the contents of the encrypted fields `SecretString` or
458
+ # `SecretBinary` for up to 20 secrets. To retrieve a single secret, call
459
+ # GetSecretValue.
360
460
  #
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.
461
+ # To choose which secrets to retrieve, you can specify a list of secrets
462
+ # by name or ARN, or you can use filters. If Secrets Manager encounters
463
+ # errors such as `AccessDeniedException` while attempting to retrieve
464
+ # any of the secrets, you can see the errors in `Errors` in the
465
+ # response.
365
466
  #
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.
467
+ # Secrets Manager generates CloudTrail `GetSecretValue` log entries for
468
+ # each secret you request when you call this action. Do not include
469
+ # sensitive information in request parameters because it might be
470
+ # logged. For more information, see [Logging Secrets Manager events with
471
+ # CloudTrail][1].
372
472
  #
373
- # @option options [Float] :ssl_timeout (nil) Sets the SSL timeout
374
- # in seconds.
473
+ # <b>Required permissions: </b> `secretsmanager:BatchGetSecretValue`,
474
+ # and you must have `secretsmanager:GetSecretValue` for each secret. If
475
+ # you use filters, you must also have `secretsmanager:ListSecrets`. If
476
+ # the secrets are encrypted using customer-managed keys instead of the
477
+ # Amazon Web Services managed key `aws/secretsmanager`, then you also
478
+ # need `kms:Decrypt` permissions for the keys. For more information, see
479
+ # [ IAM policy actions for Secrets Manager][2] and [Authentication and
480
+ # access control in Secrets Manager][3].
375
481
  #
376
- # @option options [Boolean] :http_wire_trace (false) When `true`,
377
- # HTTP debug output will be sent to the `:logger`.
378
482
  #
379
- # @option options [Boolean] :ssl_verify_peer (true) When `true`,
380
- # SSL peer certificates are verified when establishing a
381
- # connection.
382
483
  #
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.
484
+ # [1]: https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html
485
+ # [2]: https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions
486
+ # [3]: https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html
388
487
  #
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.
488
+ # @option params [Array<String>] :secret_id_list
489
+ # The ARN or names of the secrets to retrieve. You must include
490
+ # `Filters` or `SecretIdList`, but not both.
394
491
  #
395
- def initialize(*args)
396
- super
492
+ # @option params [Array<Types::Filter>] :filters
493
+ # The filters to choose which secrets to retrieve. You must include
494
+ # `Filters` or `SecretIdList`, but not both.
495
+ #
496
+ # @option params [Integer] :max_results
497
+ # The number of results to include in the response.
498
+ #
499
+ # If there are more results available, in the response, Secrets Manager
500
+ # includes `NextToken`. To get the next results, call
501
+ # `BatchGetSecretValue` again with the value from `NextToken`. To use
502
+ # this parameter, you must also use the `Filters` parameter.
503
+ #
504
+ # @option params [String] :next_token
505
+ # A token that indicates where the output should continue from, if a
506
+ # previous call did not show all results. To get the next results, call
507
+ # `BatchGetSecretValue` again with this value.
508
+ #
509
+ # @return [Types::BatchGetSecretValueResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
510
+ #
511
+ # * {Types::BatchGetSecretValueResponse#secret_values #secret_values} => Array&lt;Types::SecretValueEntry&gt;
512
+ # * {Types::BatchGetSecretValueResponse#next_token #next_token} => String
513
+ # * {Types::BatchGetSecretValueResponse#errors #errors} => Array&lt;Types::APIErrorType&gt;
514
+ #
515
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
516
+ #
517
+ #
518
+ # @example Example: To retrieve the secret values for a group of secrets listed by name
519
+ #
520
+ # # The following example gets the values for three secrets.
521
+ #
522
+ # resp = client.batch_get_secret_value({
523
+ # secret_id_list: [
524
+ # "MySecret1",
525
+ # "MySecret2",
526
+ # "MySecret3",
527
+ # ],
528
+ # })
529
+ #
530
+ # resp.to_h outputs the following:
531
+ # {
532
+ # errors: [
533
+ # ],
534
+ # secret_values: [
535
+ # {
536
+ # arn: "&region-arn;&asm-service-name;:us-west-2:&ExampleAccountId;:secret:MySecret1-a1b2c3",
537
+ # created_date: Time.parse(1700591229.801),
538
+ # name: "MySecret1",
539
+ # secret_string: "{\"username\":\"diego_ramirez\",\"password\":\"EXAMPLE-PASSWORD\",\"engine\":\"mysql\",\"host\":\"secretsmanagertutorial.cluster.us-west-2.rds.amazonaws.com\",\"port\":3306,\"dbClusterIdentifier\":\"secretsmanagertutorial\"}",
540
+ # version_id: "a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa",
541
+ # version_stages: [
542
+ # "AWSCURRENT",
543
+ # ],
544
+ # },
545
+ # {
546
+ # arn: "&region-arn;&asm-service-name;:us-west-2:&ExampleAccountId;:secret:MySecret2-a1b2c3",
547
+ # created_date: Time.parse(1699911394.105),
548
+ # name: "MySecret2",
549
+ # secret_string: "{\"username\":\"akua_mansa\",\"password\":\"EXAMPLE-PASSWORD\"",
550
+ # version_id: "a1b2c3d4-5678-90ab-cdef-EXAMPLEbbbbb",
551
+ # version_stages: [
552
+ # "AWSCURRENT",
553
+ # ],
554
+ # },
555
+ # {
556
+ # arn: "&region-arn;&asm-service-name;:us-west-2:&ExampleAccountId;:secret:MySecret3-a1b2c3",
557
+ # created_date: Time.parse(1699911394.105),
558
+ # name: "MySecret3",
559
+ # secret_string: "{\"username\":\"jie_liu\",\"password\":\"EXAMPLE-PASSWORD\"",
560
+ # version_id: "a1b2c3d4-5678-90ab-cdef-EXAMPLEccccc",
561
+ # version_stages: [
562
+ # "AWSCURRENT",
563
+ # ],
564
+ # },
565
+ # ],
566
+ # }
567
+ #
568
+ # @example Request syntax with placeholder values
569
+ #
570
+ # resp = client.batch_get_secret_value({
571
+ # secret_id_list: ["SecretIdType"],
572
+ # filters: [
573
+ # {
574
+ # key: "description", # accepts description, name, tag-key, tag-value, primary-region, owning-service, all
575
+ # values: ["FilterValueStringType"],
576
+ # },
577
+ # ],
578
+ # max_results: 1,
579
+ # next_token: "NextTokenType",
580
+ # })
581
+ #
582
+ # @example Response structure
583
+ #
584
+ # resp.secret_values #=> Array
585
+ # resp.secret_values[0].arn #=> String
586
+ # resp.secret_values[0].name #=> String
587
+ # resp.secret_values[0].version_id #=> String
588
+ # resp.secret_values[0].secret_binary #=> String
589
+ # resp.secret_values[0].secret_string #=> String
590
+ # resp.secret_values[0].version_stages #=> Array
591
+ # resp.secret_values[0].version_stages[0] #=> String
592
+ # resp.secret_values[0].created_date #=> Time
593
+ # resp.next_token #=> String
594
+ # resp.errors #=> Array
595
+ # resp.errors[0].secret_id #=> String
596
+ # resp.errors[0].error_code #=> String
597
+ # resp.errors[0].message #=> String
598
+ #
599
+ # @see http://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/BatchGetSecretValue AWS API Documentation
600
+ #
601
+ # @overload batch_get_secret_value(params = {})
602
+ # @param [Hash] params ({})
603
+ def batch_get_secret_value(params = {}, options = {})
604
+ req = build_request(:batch_get_secret_value, params)
605
+ req.send_request(options)
397
606
  end
398
607
 
399
- # @!group API Operations
400
-
401
608
  # Turns off automatic rotation, and if a rotation is currently in
402
609
  # progress, cancels the rotation.
403
610
  #
@@ -530,14 +737,21 @@ module Aws::SecretsManager
530
737
  #
531
738
  # <b>Required permissions: </b> `secretsmanager:CreateSecret`. If you
532
739
  # include tags in the secret, you also need
533
- # `secretsmanager:TagResource`. For more information, see [ IAM policy
534
- # actions for Secrets Manager][5] and [Authentication and access control
535
- # in Secrets Manager][6].
740
+ # `secretsmanager:TagResource`. To add replica Regions, you must also
741
+ # have `secretsmanager:ReplicateSecretToRegions`. For more information,
742
+ # see [ IAM policy actions for Secrets Manager][5] and [Authentication
743
+ # and access control in Secrets Manager][6].
536
744
  #
537
745
  # To encrypt the secret with a KMS key other than `aws/secretsmanager`,
538
746
  # you need `kms:GenerateDataKey` and `kms:Decrypt` permission to the
539
747
  # key.
540
748
  #
749
+ # When you enter commands in a command shell, there is a risk of the
750
+ # command history being accessed or utilities having access to your
751
+ # command parameters. This is a concern if the command includes the
752
+ # value of a secret. Learn how to [Mitigate the risks of using
753
+ # command-line tools to store Secrets Manager secrets][7].
754
+ #
541
755
  #
542
756
  #
543
757
  # [1]: https://docs.aws.amazon.com/secretsmanager/latest/userguide/service-linked-secrets.html
@@ -546,6 +760,7 @@ module Aws::SecretsManager
546
760
  # [4]: https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html
547
761
  # [5]: https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions
548
762
  # [6]: https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html
763
+ # [7]: https://docs.aws.amazon.com/secretsmanager/latest/userguide/security_cli-exposure-risks.html
549
764
  #
550
765
  # @option params [required, String] :name
551
766
  # The name of the new secret.
@@ -639,6 +854,11 @@ module Aws::SecretsManager
639
854
  #
640
855
  # This parameter is not available in the Secrets Manager console.
641
856
  #
857
+ # Sensitive: This field contains sensitive information, so the service
858
+ # does not include it in CloudTrail log entries. If you create your own
859
+ # log entries, you must also avoid logging the information in this
860
+ # field.
861
+ #
642
862
  # @option params [String] :secret_string
643
863
  # The text data to encrypt and store in this new version of the secret.
644
864
  # We recommend you use a JSON structure of key/value pairs for your
@@ -653,11 +873,16 @@ module Aws::SecretsManager
653
873
  # information as a JSON structure of key/value pairs that a Lambda
654
874
  # rotation function can parse.
655
875
  #
876
+ # Sensitive: This field contains sensitive information, so the service
877
+ # does not include it in CloudTrail log entries. If you create your own
878
+ # log entries, you must also avoid logging the information in this
879
+ # field.
880
+ #
656
881
  # @option params [Array<Types::Tag>] :tags
657
882
  # A list of tags to attach to the secret. Each tag is a key and value
658
883
  # pair of strings in a JSON text string, for example:
659
884
  #
660
- # `[\{"Key":"CostCenter","Value":"12345"\},\{"Key":"environment","Value":"production"\}]`
885
+ # `[{"Key":"CostCenter","Value":"12345"},{"Key":"environment","Value":"production"}]`
661
886
  #
662
887
  # Secrets Manager tag key names are case sensitive. A tag with the key
663
888
  # "ABC" is a different tag from one with key "abc".
@@ -1115,22 +1340,21 @@ module Aws::SecretsManager
1115
1340
 
1116
1341
  # Generates a random password. We recommend that you specify the maximum
1117
1342
  # length and include every character type that the system you are
1118
- # generating a password for can support.
1343
+ # generating a password for can support. By default, Secrets Manager
1344
+ # uses uppercase and lowercase letters, numbers, and the following
1345
+ # characters in passwords: `` !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~ ``
1119
1346
  #
1120
1347
  # Secrets Manager generates a CloudTrail log entry when you call this
1121
- # action. Do not include sensitive information in request parameters
1122
- # because it might be logged. For more information, see [Logging Secrets
1123
- # Manager events with CloudTrail][1].
1348
+ # action.
1124
1349
  #
1125
1350
  # <b>Required permissions: </b> `secretsmanager:GetRandomPassword`. For
1126
- # more information, see [ IAM policy actions for Secrets Manager][2] and
1127
- # [Authentication and access control in Secrets Manager][3].
1351
+ # more information, see [ IAM policy actions for Secrets Manager][1] and
1352
+ # [Authentication and access control in Secrets Manager][2].
1128
1353
  #
1129
1354
  #
1130
1355
  #
1131
- # [1]: https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html
1132
- # [2]: https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions
1133
- # [3]: https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html
1356
+ # [1]: https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions
1357
+ # [2]: https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html
1134
1358
  #
1135
1359
  # @option params [Integer] :password_length
1136
1360
  # The length of the password. If you don't include this parameter, the
@@ -1146,7 +1370,7 @@ module Aws::SecretsManager
1146
1370
  # @option params [Boolean] :exclude_punctuation
1147
1371
  # Specifies whether to exclude the following punctuation characters from
1148
1372
  # the password: `` ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _
1149
- # ` \{ | \} ~ ``. If you don't include this switch, the password can
1373
+ # ` { | } ~ ``. If you don't include this switch, the password can
1150
1374
  # contain punctuation.
1151
1375
  #
1152
1376
  # @option params [Boolean] :exclude_uppercase
@@ -1294,6 +1518,9 @@ module Aws::SecretsManager
1294
1518
  # `SecretBinary` from the specified version of a secret, whichever
1295
1519
  # contains content.
1296
1520
  #
1521
+ # To retrieve the values for a group of secrets, call
1522
+ # BatchGetSecretValue.
1523
+ #
1297
1524
  # We recommend that you cache your secret values by using client-side
1298
1525
  # caching. Caching secrets improves speed and reduces your costs. For
1299
1526
  # more information, see [Cache secrets for your applications][1].
@@ -1323,7 +1550,8 @@ module Aws::SecretsManager
1323
1550
  # [5]: https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html
1324
1551
  #
1325
1552
  # @option params [required, String] :secret_id
1326
- # The ARN or name of the secret to retrieve.
1553
+ # The ARN or name of the secret to retrieve. To retrieve a secret from
1554
+ # another account, you must use an ARN.
1327
1555
  #
1328
1556
  # For an ARN, we recommend that you specify a complete ARN rather than a
1329
1557
  # partial ARN. See [Finding a secret from a partial ARN][1].
@@ -1546,13 +1774,13 @@ module Aws::SecretsManager
1546
1774
  # Services account, not including secrets that are marked for deletion.
1547
1775
  # To see secrets marked for deletion, use the Secrets Manager console.
1548
1776
  #
1549
- # ListSecrets is eventually consistent, however it might not reflect
1550
- # changes from the last five minutes. To get the latest information for
1551
- # a specific secret, use DescribeSecret.
1777
+ # All Secrets Manager operations are eventually consistent. ListSecrets
1778
+ # might not reflect changes from the last five minutes. You can get more
1779
+ # recent information for a specific secret by calling DescribeSecret.
1552
1780
  #
1553
1781
  # To list the versions of a secret, use ListSecretVersionIds.
1554
1782
  #
1555
- # To get the secret value from `SecretString` or `SecretBinary`, call
1783
+ # To retrieve the values for the secrets, call BatchGetSecretValue or
1556
1784
  # GetSecretValue.
1557
1785
  #
1558
1786
  # For information about finding secrets in the console, see [Find
@@ -1737,6 +1965,25 @@ module Aws::SecretsManager
1737
1965
  # access to the secret, for example those that use a wildcard for the
1738
1966
  # principal. By default, public policies aren't blocked.
1739
1967
  #
1968
+ # Resource policy validation and the BlockPublicPolicy parameter help
1969
+ # protect your resources by preventing public access from being granted
1970
+ # through the resource policies that are directly attached to your
1971
+ # secrets. In addition to using these features, carefully inspect the
1972
+ # following policies to confirm that they do not grant public access:
1973
+ #
1974
+ # * Identity-based policies attached to associated Amazon Web Services
1975
+ # principals (for example, IAM roles)
1976
+ #
1977
+ # * Resource-based policies attached to associated Amazon Web Services
1978
+ # resources (for example, Key Management Service (KMS) keys)
1979
+ #
1980
+ # To review permissions to your secrets, see [Determine who has
1981
+ # permissions to your secrets][1].
1982
+ #
1983
+ #
1984
+ #
1985
+ # [1]: https://docs.aws.amazon.com/secretsmanager/latest/userguide/determine-acccess_examine-iam-policies.html
1986
+ #
1740
1987
  # @return [Types::PutResourcePolicyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1741
1988
  #
1742
1989
  # * {Types::PutResourcePolicyResponse#arn #arn} => String
@@ -1812,19 +2059,26 @@ module Aws::SecretsManager
1812
2059
  #
1813
2060
  # Secrets Manager generates a CloudTrail log entry when you call this
1814
2061
  # action. Do not include sensitive information in request parameters
1815
- # except `SecretBinary` or `SecretString` because it might be logged.
1816
- # For more information, see [Logging Secrets Manager events with
1817
- # CloudTrail][1].
2062
+ # except `SecretBinary`, `SecretString`, or `RotationToken` because it
2063
+ # might be logged. For more information, see [Logging Secrets Manager
2064
+ # events with CloudTrail][1].
1818
2065
  #
1819
2066
  # <b>Required permissions: </b> `secretsmanager:PutSecretValue`. For
1820
2067
  # more information, see [ IAM policy actions for Secrets Manager][2] and
1821
2068
  # [Authentication and access control in Secrets Manager][3].
1822
2069
  #
2070
+ # When you enter commands in a command shell, there is a risk of the
2071
+ # command history being accessed or utilities having access to your
2072
+ # command parameters. This is a concern if the command includes the
2073
+ # value of a secret. Learn how to [Mitigate the risks of using
2074
+ # command-line tools to store Secrets Manager secrets][4].
2075
+ #
1823
2076
  #
1824
2077
  #
1825
2078
  # [1]: https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html
1826
2079
  # [2]: https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions
1827
2080
  # [3]: https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html
2081
+ # [4]: https://docs.aws.amazon.com/secretsmanager/latest/userguide/security_cli-exposure-risks.html
1828
2082
  #
1829
2083
  # @option params [required, String] :secret_id
1830
2084
  # The ARN or name of the secret to add a new version to.
@@ -1890,6 +2144,11 @@ module Aws::SecretsManager
1890
2144
  #
1891
2145
  # You can't access this value from the Secrets Manager console.
1892
2146
  #
2147
+ # Sensitive: This field contains sensitive information, so the service
2148
+ # does not include it in CloudTrail log entries. If you create your own
2149
+ # log entries, you must also avoid logging the information in this
2150
+ # field.
2151
+ #
1893
2152
  # @option params [String] :secret_string
1894
2153
  # The text to encrypt and store in the new version of the secret.
1895
2154
  #
@@ -1898,6 +2157,11 @@ module Aws::SecretsManager
1898
2157
  # We recommend you create the secret string as JSON key/value pairs, as
1899
2158
  # shown in the example.
1900
2159
  #
2160
+ # Sensitive: This field contains sensitive information, so the service
2161
+ # does not include it in CloudTrail log entries. If you create your own
2162
+ # log entries, you must also avoid logging the information in this
2163
+ # field.
2164
+ #
1901
2165
  # @option params [Array<String>] :version_stages
1902
2166
  # A list of staging labels to attach to this version of the secret.
1903
2167
  # Secrets Manager uses staging labels to track versions of a secret
@@ -1913,6 +2177,23 @@ module Aws::SecretsManager
1913
2177
  # If you don't include `VersionStages`, then Secrets Manager
1914
2178
  # automatically moves the staging label `AWSCURRENT` to this version.
1915
2179
  #
2180
+ # @option params [String] :rotation_token
2181
+ # A unique identifier that indicates the source of the request. For
2182
+ # cross-account rotation (when you rotate a secret in one account by
2183
+ # using a Lambda rotation function in another account) and the Lambda
2184
+ # rotation function assumes an IAM role to call Secrets Manager, Secrets
2185
+ # Manager validates the identity with the rotation token. For more
2186
+ # information, see [How rotation works][1].
2187
+ #
2188
+ # Sensitive: This field contains sensitive information, so the service
2189
+ # does not include it in CloudTrail log entries. If you create your own
2190
+ # log entries, you must also avoid logging the information in this
2191
+ # field.
2192
+ #
2193
+ #
2194
+ #
2195
+ # [1]: https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html
2196
+ #
1916
2197
  # @return [Types::PutSecretValueResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1917
2198
  #
1918
2199
  # * {Types::PutSecretValueResponse#arn #arn} => String
@@ -1950,6 +2231,7 @@ module Aws::SecretsManager
1950
2231
  # secret_binary: "data",
1951
2232
  # secret_string: "SecretStringType",
1952
2233
  # version_stages: ["SecretVersionStageType"],
2234
+ # rotation_token: "RotationTokenType",
1953
2235
  # })
1954
2236
  #
1955
2237
  # @example Response structure
@@ -2033,9 +2315,13 @@ module Aws::SecretsManager
2033
2315
  # Manager events with CloudTrail][2].
2034
2316
  #
2035
2317
  # <b>Required permissions: </b>
2036
- # `secretsmanager:ReplicateSecretToRegions`. For more information, see [
2037
- # IAM policy actions for Secrets Manager][3] and [Authentication and
2038
- # access control in Secrets Manager][4].
2318
+ # `secretsmanager:ReplicateSecretToRegions`. If the primary secret is
2319
+ # encrypted with a KMS key other than `aws/secretsmanager`, you also
2320
+ # need `kms:Decrypt` permission to the key. To encrypt the replicated
2321
+ # secret with a KMS key other than `aws/secretsmanager`, you need
2322
+ # `kms:GenerateDataKey` and `kms:Encrypt` to the key. For more
2323
+ # information, see [ IAM policy actions for Secrets Manager][3] and
2324
+ # [Authentication and access control in Secrets Manager][4].
2039
2325
  #
2040
2326
  #
2041
2327
  #
@@ -2296,7 +2582,7 @@ module Aws::SecretsManager
2296
2582
  #
2297
2583
  #
2298
2584
  #
2299
- # [1]: https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotate-secrets_how.html
2585
+ # [1]: https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotate-secrets_lambda-functions.html#rotate-secrets_lambda-functions-code
2300
2586
  #
2301
2587
  # @return [Types::RotateSecretResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2302
2588
  #
@@ -2641,10 +2927,16 @@ module Aws::SecretsManager
2641
2927
  # a customer managed key, you must also have `kms:GenerateDataKey`,
2642
2928
  # `kms:Encrypt`, and `kms:Decrypt` permissions on the key. If you change
2643
2929
  # the KMS key and you don't have `kms:Encrypt` permission to the new
2644
- # key, Secrets Manager does not re-ecrypt existing secret versions with
2930
+ # key, Secrets Manager does not re-encrypt existing secret versions with
2645
2931
  # the new key. For more information, see [ Secret encryption and
2646
2932
  # decryption][5].
2647
2933
  #
2934
+ # When you enter commands in a command shell, there is a risk of the
2935
+ # command history being accessed or utilities having access to your
2936
+ # command parameters. This is a concern if the command includes the
2937
+ # value of a secret. Learn how to [Mitigate the risks of using
2938
+ # command-line tools to store Secrets Manager secrets][6].
2939
+ #
2648
2940
  #
2649
2941
  #
2650
2942
  # [1]: https://docs.aws.amazon.com/secretsmanager/latest/userguide/service-linked-secrets.html
@@ -2652,6 +2944,7 @@ module Aws::SecretsManager
2652
2944
  # [3]: https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions
2653
2945
  # [4]: https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html
2654
2946
  # [5]: https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html
2947
+ # [6]: https://docs.aws.amazon.com/secretsmanager/latest/userguide/security_cli-exposure-risks.html
2655
2948
  #
2656
2949
  # @option params [required, String] :secret_id
2657
2950
  # The ARN or name of the secret.
@@ -2700,8 +2993,8 @@ module Aws::SecretsManager
2700
2993
  # encrypt new secret versions as well as any existing versions with the
2701
2994
  # staging labels `AWSCURRENT`, `AWSPENDING`, or `AWSPREVIOUS`. If you
2702
2995
  # don't have `kms:Encrypt` permission to the new key, Secrets Manager
2703
- # does not re-ecrypt existing secret versions with the new key. For more
2704
- # information about versions and staging labels, see [Concepts:
2996
+ # does not re-encrypt existing secret versions with the new key. For
2997
+ # more information about versions and staging labels, see [Concepts:
2705
2998
  # Version][1].
2706
2999
  #
2707
3000
  # A key alias is always prefixed by `alias/`, for example
@@ -2739,6 +3032,11 @@ module Aws::SecretsManager
2739
3032
  #
2740
3033
  # You can't access this parameter in the Secrets Manager console.
2741
3034
  #
3035
+ # Sensitive: This field contains sensitive information, so the service
3036
+ # does not include it in CloudTrail log entries. If you create your own
3037
+ # log entries, you must also avoid logging the information in this
3038
+ # field.
3039
+ #
2742
3040
  # @option params [String] :secret_string
2743
3041
  # The text data to encrypt and store in the new version of the secret.
2744
3042
  # We recommend you use a JSON structure of key/value pairs for your
@@ -2747,6 +3045,11 @@ module Aws::SecretsManager
2747
3045
  # Either `SecretBinary` or `SecretString` must have a value, but not
2748
3046
  # both.
2749
3047
  #
3048
+ # Sensitive: This field contains sensitive information, so the service
3049
+ # does not include it in CloudTrail log entries. If you create your own
3050
+ # log entries, you must also avoid logging the information in this
3051
+ # field.
3052
+ #
2750
3053
  # @return [Types::UpdateSecretResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2751
3054
  #
2752
3055
  # * {Types::UpdateSecretResponse#arn #arn} => String
@@ -3016,7 +3319,8 @@ module Aws::SecretsManager
3016
3319
  # [4]: https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html
3017
3320
  #
3018
3321
  # @option params [String] :secret_id
3019
- # This field is reserved for internal use.
3322
+ # The ARN or name of the secret with the resource-based policy you want
3323
+ # to validate.
3020
3324
  #
3021
3325
  # @option params [required, String] :resource_policy
3022
3326
  # A JSON-formatted string that contains an Amazon Web Services
@@ -3079,14 +3383,19 @@ module Aws::SecretsManager
3079
3383
  # @api private
3080
3384
  def build_request(operation_name, params = {})
3081
3385
  handlers = @handlers.for(operation_name)
3386
+ tracer = config.telemetry_provider.tracer_provider.tracer(
3387
+ Aws::Telemetry.module_to_tracer_name('Aws::SecretsManager')
3388
+ )
3082
3389
  context = Seahorse::Client::RequestContext.new(
3083
3390
  operation_name: operation_name,
3084
3391
  operation: config.api.operation(operation_name),
3085
3392
  client: self,
3086
3393
  params: params,
3087
- config: config)
3394
+ config: config,
3395
+ tracer: tracer
3396
+ )
3088
3397
  context[:gem_name] = 'aws-sdk-secretsmanager'
3089
- context[:gem_version] = '1.84.0'
3398
+ context[:gem_version] = '1.110.0'
3090
3399
  Seahorse::Client::Request.new(handlers, context)
3091
3400
  end
3092
3401