# WARNING ABOUT GENERATED CODE
#
# This file is generated. See the contributing guide for more information:
# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
#
# WARNING ABOUT GENERATED CODE

module Aws
  module SecretsManager
    class Client < ::Seahorse::Client::Base
      include ::Aws::ClientStubs

      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/SecretsManager/Client.html#initialize-instance_method
      def self.new: (
                      ?credentials: untyped,
                      ?region: String,
                      ?access_key_id: String,
                      ?active_endpoint_cache: bool,
                      ?adaptive_retry_wait_to_fill: bool,
                      ?client_side_monitoring: bool,
                      ?client_side_monitoring_client_id: String,
                      ?client_side_monitoring_host: String,
                      ?client_side_monitoring_port: Integer,
                      ?client_side_monitoring_publisher: untyped,
                      ?convert_params: bool,
                      ?correct_clock_skew: bool,
                      ?defaults_mode: String,
                      ?disable_host_prefix_injection: bool,
                      ?disable_request_compression: bool,
                      ?endpoint: String,
                      ?endpoint_cache_max_entries: Integer,
                      ?endpoint_cache_max_threads: Integer,
                      ?endpoint_cache_poll_interval: Integer,
                      ?endpoint_discovery: bool,
                      ?ignore_configured_endpoint_urls: bool,
                      ?log_formatter: untyped,
                      ?log_level: Symbol,
                      ?logger: untyped,
                      ?max_attempts: Integer,
                      ?profile: String,
                      ?request_min_compression_size_bytes: Integer,
                      ?retry_backoff: Proc,
                      ?retry_base_delay: Float,
                      ?retry_jitter: (:none | :equal | :full | ^(Integer) -> Integer),
                      ?retry_limit: Integer,
                      ?retry_max_delay: Integer,
                      ?retry_mode: ("legacy" | "standard" | "adaptive"),
                      ?sdk_ua_app_id: String,
                      ?secret_access_key: String,
                      ?session_token: String,
                      ?sigv4a_signing_region_set: Array[String],
                      ?simple_json: bool,
                      ?stub_responses: untyped,
                      ?telemetry_provider: Aws::Telemetry::TelemetryProviderBase,
                      ?token_provider: untyped,
                      ?use_dualstack_endpoint: bool,
                      ?use_fips_endpoint: bool,
                      ?validate_params: bool,
                      ?endpoint_provider: untyped,
                      ?http_proxy: String,
                      ?http_open_timeout: (Float | Integer),
                      ?http_read_timeout: (Float | Integer),
                      ?http_idle_timeout: (Float | Integer),
                      ?http_continue_timeout: (Float | Integer),
                      ?ssl_timeout: (Float | Integer | nil),
                      ?http_wire_trace: bool,
                      ?ssl_verify_peer: bool,
                      ?ssl_ca_bundle: String,
                      ?ssl_ca_directory: String,
                      ?ssl_ca_store: String,
                      ?on_chunk_received: Proc,
                      ?on_chunk_sent: Proc,
                      ?raise_response_errors: bool
                    ) -> instance
                  | (?Hash[Symbol, untyped]) -> instance


      interface _BatchGetSecretValueResponseSuccess
        include ::Seahorse::Client::_ResponseSuccess[Types::BatchGetSecretValueResponse]
        def secret_values: () -> ::Array[Types::SecretValueEntry]
        def next_token: () -> ::String
        def errors: () -> ::Array[Types::APIErrorType]
      end
      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/SecretsManager/Client.html#batch_get_secret_value-instance_method
      def batch_get_secret_value: (
                                    ?secret_id_list: Array[::String],
                                    ?filters: Array[
                                      {
                                        key: ("description" | "name" | "tag-key" | "tag-value" | "primary-region" | "owning-service" | "all")?,
                                        values: Array[::String]?
                                      },
                                    ],
                                    ?max_results: ::Integer,
                                    ?next_token: ::String
                                  ) -> _BatchGetSecretValueResponseSuccess
                                | (?Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _BatchGetSecretValueResponseSuccess

      interface _CancelRotateSecretResponseSuccess
        include ::Seahorse::Client::_ResponseSuccess[Types::CancelRotateSecretResponse]
        def arn: () -> ::String
        def name: () -> ::String
        def version_id: () -> ::String
      end
      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/SecretsManager/Client.html#cancel_rotate_secret-instance_method
      def cancel_rotate_secret: (
                                  secret_id: ::String
                                ) -> _CancelRotateSecretResponseSuccess
                              | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _CancelRotateSecretResponseSuccess

      interface _CreateSecretResponseSuccess
        include ::Seahorse::Client::_ResponseSuccess[Types::CreateSecretResponse]
        def arn: () -> ::String
        def name: () -> ::String
        def version_id: () -> ::String
        def replication_status: () -> ::Array[Types::ReplicationStatusType]
      end
      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/SecretsManager/Client.html#create_secret-instance_method
      def create_secret: (
                           name: ::String,
                           ?client_request_token: ::String,
                           ?description: ::String,
                           ?kms_key_id: ::String,
                           ?secret_binary: ::String,
                           ?secret_string: ::String,
                           ?tags: Array[
                             {
                               key: ::String?,
                               value: ::String?
                             },
                           ],
                           ?add_replica_regions: Array[
                             {
                               region: ::String?,
                               kms_key_id: ::String?
                             },
                           ],
                           ?force_overwrite_replica_secret: bool
                         ) -> _CreateSecretResponseSuccess
                       | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _CreateSecretResponseSuccess

      interface _DeleteResourcePolicyResponseSuccess
        include ::Seahorse::Client::_ResponseSuccess[Types::DeleteResourcePolicyResponse]
        def arn: () -> ::String
        def name: () -> ::String
      end
      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/SecretsManager/Client.html#delete_resource_policy-instance_method
      def delete_resource_policy: (
                                    secret_id: ::String
                                  ) -> _DeleteResourcePolicyResponseSuccess
                                | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _DeleteResourcePolicyResponseSuccess

      interface _DeleteSecretResponseSuccess
        include ::Seahorse::Client::_ResponseSuccess[Types::DeleteSecretResponse]
        def arn: () -> ::String
        def name: () -> ::String
        def deletion_date: () -> ::Time
      end
      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/SecretsManager/Client.html#delete_secret-instance_method
      def delete_secret: (
                           secret_id: ::String,
                           ?recovery_window_in_days: ::Integer,
                           ?force_delete_without_recovery: bool
                         ) -> _DeleteSecretResponseSuccess
                       | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _DeleteSecretResponseSuccess

      interface _DescribeSecretResponseSuccess
        include ::Seahorse::Client::_ResponseSuccess[Types::DescribeSecretResponse]
        def arn: () -> ::String
        def name: () -> ::String
        def description: () -> ::String
        def kms_key_id: () -> ::String
        def rotation_enabled: () -> bool
        def rotation_lambda_arn: () -> ::String
        def rotation_rules: () -> Types::RotationRulesType
        def last_rotated_date: () -> ::Time
        def last_changed_date: () -> ::Time
        def last_accessed_date: () -> ::Time
        def deleted_date: () -> ::Time
        def next_rotation_date: () -> ::Time
        def tags: () -> ::Array[Types::Tag]
        def version_ids_to_stages: () -> ::Hash[::String, ::Array[::String]]
        def owning_service: () -> ::String
        def created_date: () -> ::Time
        def primary_region: () -> ::String
        def replication_status: () -> ::Array[Types::ReplicationStatusType]
      end
      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/SecretsManager/Client.html#describe_secret-instance_method
      def describe_secret: (
                             secret_id: ::String
                           ) -> _DescribeSecretResponseSuccess
                         | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _DescribeSecretResponseSuccess

      interface _GetRandomPasswordResponseSuccess
        include ::Seahorse::Client::_ResponseSuccess[Types::GetRandomPasswordResponse]
        def random_password: () -> ::String
      end
      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/SecretsManager/Client.html#get_random_password-instance_method
      def get_random_password: (
                                 ?password_length: ::Integer,
                                 ?exclude_characters: ::String,
                                 ?exclude_numbers: bool,
                                 ?exclude_punctuation: bool,
                                 ?exclude_uppercase: bool,
                                 ?exclude_lowercase: bool,
                                 ?include_space: bool,
                                 ?require_each_included_type: bool
                               ) -> _GetRandomPasswordResponseSuccess
                             | (?Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _GetRandomPasswordResponseSuccess

      interface _GetResourcePolicyResponseSuccess
        include ::Seahorse::Client::_ResponseSuccess[Types::GetResourcePolicyResponse]
        def arn: () -> ::String
        def name: () -> ::String
        def resource_policy: () -> ::String
      end
      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/SecretsManager/Client.html#get_resource_policy-instance_method
      def get_resource_policy: (
                                 secret_id: ::String
                               ) -> _GetResourcePolicyResponseSuccess
                             | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _GetResourcePolicyResponseSuccess

      interface _GetSecretValueResponseSuccess
        include ::Seahorse::Client::_ResponseSuccess[Types::GetSecretValueResponse]
        def arn: () -> ::String
        def name: () -> ::String
        def version_id: () -> ::String
        def secret_binary: () -> ::String
        def secret_string: () -> ::String
        def version_stages: () -> ::Array[::String]
        def created_date: () -> ::Time
      end
      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/SecretsManager/Client.html#get_secret_value-instance_method
      def get_secret_value: (
                              secret_id: ::String,
                              ?version_id: ::String,
                              ?version_stage: ::String
                            ) -> _GetSecretValueResponseSuccess
                          | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _GetSecretValueResponseSuccess

      interface _ListSecretVersionIdsResponseSuccess
        include ::Seahorse::Client::_ResponseSuccess[Types::ListSecretVersionIdsResponse]
        def versions: () -> ::Array[Types::SecretVersionsListEntry]
        def next_token: () -> ::String
        def arn: () -> ::String
        def name: () -> ::String
      end
      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/SecretsManager/Client.html#list_secret_version_ids-instance_method
      def list_secret_version_ids: (
                                     secret_id: ::String,
                                     ?max_results: ::Integer,
                                     ?next_token: ::String,
                                     ?include_deprecated: bool
                                   ) -> _ListSecretVersionIdsResponseSuccess
                                 | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _ListSecretVersionIdsResponseSuccess

      interface _ListSecretsResponseSuccess
        include ::Seahorse::Client::_ResponseSuccess[Types::ListSecretsResponse]
        def secret_list: () -> ::Array[Types::SecretListEntry]
        def next_token: () -> ::String
      end
      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/SecretsManager/Client.html#list_secrets-instance_method
      def list_secrets: (
                          ?include_planned_deletion: bool,
                          ?max_results: ::Integer,
                          ?next_token: ::String,
                          ?filters: Array[
                            {
                              key: ("description" | "name" | "tag-key" | "tag-value" | "primary-region" | "owning-service" | "all")?,
                              values: Array[::String]?
                            },
                          ],
                          ?sort_order: ("asc" | "desc")
                        ) -> _ListSecretsResponseSuccess
                      | (?Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _ListSecretsResponseSuccess

      interface _PutResourcePolicyResponseSuccess
        include ::Seahorse::Client::_ResponseSuccess[Types::PutResourcePolicyResponse]
        def arn: () -> ::String
        def name: () -> ::String
      end
      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/SecretsManager/Client.html#put_resource_policy-instance_method
      def put_resource_policy: (
                                 secret_id: ::String,
                                 resource_policy: ::String,
                                 ?block_public_policy: bool
                               ) -> _PutResourcePolicyResponseSuccess
                             | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _PutResourcePolicyResponseSuccess

      interface _PutSecretValueResponseSuccess
        include ::Seahorse::Client::_ResponseSuccess[Types::PutSecretValueResponse]
        def arn: () -> ::String
        def name: () -> ::String
        def version_id: () -> ::String
        def version_stages: () -> ::Array[::String]
      end
      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/SecretsManager/Client.html#put_secret_value-instance_method
      def put_secret_value: (
                              secret_id: ::String,
                              ?client_request_token: ::String,
                              ?secret_binary: ::String,
                              ?secret_string: ::String,
                              ?version_stages: Array[::String],
                              ?rotation_token: ::String
                            ) -> _PutSecretValueResponseSuccess
                          | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _PutSecretValueResponseSuccess

      interface _RemoveRegionsFromReplicationResponseSuccess
        include ::Seahorse::Client::_ResponseSuccess[Types::RemoveRegionsFromReplicationResponse]
        def arn: () -> ::String
        def replication_status: () -> ::Array[Types::ReplicationStatusType]
      end
      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/SecretsManager/Client.html#remove_regions_from_replication-instance_method
      def remove_regions_from_replication: (
                                             secret_id: ::String,
                                             remove_replica_regions: Array[::String]
                                           ) -> _RemoveRegionsFromReplicationResponseSuccess
                                         | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _RemoveRegionsFromReplicationResponseSuccess

      interface _ReplicateSecretToRegionsResponseSuccess
        include ::Seahorse::Client::_ResponseSuccess[Types::ReplicateSecretToRegionsResponse]
        def arn: () -> ::String
        def replication_status: () -> ::Array[Types::ReplicationStatusType]
      end
      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/SecretsManager/Client.html#replicate_secret_to_regions-instance_method
      def replicate_secret_to_regions: (
                                         secret_id: ::String,
                                         add_replica_regions: Array[
                                           {
                                             region: ::String?,
                                             kms_key_id: ::String?
                                           },
                                         ],
                                         ?force_overwrite_replica_secret: bool
                                       ) -> _ReplicateSecretToRegionsResponseSuccess
                                     | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _ReplicateSecretToRegionsResponseSuccess

      interface _RestoreSecretResponseSuccess
        include ::Seahorse::Client::_ResponseSuccess[Types::RestoreSecretResponse]
        def arn: () -> ::String
        def name: () -> ::String
      end
      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/SecretsManager/Client.html#restore_secret-instance_method
      def restore_secret: (
                            secret_id: ::String
                          ) -> _RestoreSecretResponseSuccess
                        | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _RestoreSecretResponseSuccess

      interface _RotateSecretResponseSuccess
        include ::Seahorse::Client::_ResponseSuccess[Types::RotateSecretResponse]
        def arn: () -> ::String
        def name: () -> ::String
        def version_id: () -> ::String
      end
      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/SecretsManager/Client.html#rotate_secret-instance_method
      def rotate_secret: (
                           secret_id: ::String,
                           ?client_request_token: ::String,
                           ?rotation_lambda_arn: ::String,
                           ?rotation_rules: {
                             automatically_after_days: ::Integer?,
                             duration: ::String?,
                             schedule_expression: ::String?
                           },
                           ?rotate_immediately: bool
                         ) -> _RotateSecretResponseSuccess
                       | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _RotateSecretResponseSuccess

      interface _StopReplicationToReplicaResponseSuccess
        include ::Seahorse::Client::_ResponseSuccess[Types::StopReplicationToReplicaResponse]
        def arn: () -> ::String
      end
      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/SecretsManager/Client.html#stop_replication_to_replica-instance_method
      def stop_replication_to_replica: (
                                         secret_id: ::String
                                       ) -> _StopReplicationToReplicaResponseSuccess
                                     | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _StopReplicationToReplicaResponseSuccess

      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/SecretsManager/Client.html#tag_resource-instance_method
      def tag_resource: (
                          secret_id: ::String,
                          tags: Array[
                            {
                              key: ::String?,
                              value: ::String?
                            },
                          ]
                        ) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure]
                      | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure]

      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/SecretsManager/Client.html#untag_resource-instance_method
      def untag_resource: (
                            secret_id: ::String,
                            tag_keys: Array[::String]
                          ) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure]
                        | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure]

      interface _UpdateSecretResponseSuccess
        include ::Seahorse::Client::_ResponseSuccess[Types::UpdateSecretResponse]
        def arn: () -> ::String
        def name: () -> ::String
        def version_id: () -> ::String
      end
      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/SecretsManager/Client.html#update_secret-instance_method
      def update_secret: (
                           secret_id: ::String,
                           ?client_request_token: ::String,
                           ?description: ::String,
                           ?kms_key_id: ::String,
                           ?secret_binary: ::String,
                           ?secret_string: ::String
                         ) -> _UpdateSecretResponseSuccess
                       | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _UpdateSecretResponseSuccess

      interface _UpdateSecretVersionStageResponseSuccess
        include ::Seahorse::Client::_ResponseSuccess[Types::UpdateSecretVersionStageResponse]
        def arn: () -> ::String
        def name: () -> ::String
      end
      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/SecretsManager/Client.html#update_secret_version_stage-instance_method
      def update_secret_version_stage: (
                                         secret_id: ::String,
                                         version_stage: ::String,
                                         ?remove_from_version_id: ::String,
                                         ?move_to_version_id: ::String
                                       ) -> _UpdateSecretVersionStageResponseSuccess
                                     | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _UpdateSecretVersionStageResponseSuccess

      interface _ValidateResourcePolicyResponseSuccess
        include ::Seahorse::Client::_ResponseSuccess[Types::ValidateResourcePolicyResponse]
        def policy_validation_passed: () -> bool
        def validation_errors: () -> ::Array[Types::ValidationErrorsEntry]
      end
      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/SecretsManager/Client.html#validate_resource_policy-instance_method
      def validate_resource_policy: (
                                      ?secret_id: ::String,
                                      resource_policy: ::String
                                    ) -> _ValidateResourcePolicyResponseSuccess
                                  | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _ValidateResourcePolicyResponseSuccess
    end
  end
end