# 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 RDS
    # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/RDS/EventSubscription.html
    class EventSubscription
      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/RDS/EventSubscription.html#initialize-instance_method
      def initialize: (String name, Hash[Symbol, untyped] options) -> void
                    | (name: String, ?client: Client) -> void
                    | (Hash[Symbol, untyped] args) -> void

      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/RDS/EventSubscription.html#name-instance_method
      def name: () -> String
      alias cust_subscription_id name

      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/RDS/EventSubscription.html#customer_aws_id-instance_method
      def customer_aws_id: () -> ::String

      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/RDS/EventSubscription.html#sns_topic_arn-instance_method
      def sns_topic_arn: () -> ::String

      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/RDS/EventSubscription.html#status-instance_method
      def status: () -> ::String

      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/RDS/EventSubscription.html#subscription_creation_time-instance_method
      def subscription_creation_time: () -> ::String

      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/RDS/EventSubscription.html#source_type-instance_method
      def source_type: () -> ::String

      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/RDS/EventSubscription.html#source_ids_list-instance_method
      def source_ids_list: () -> ::Array[::String]

      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/RDS/EventSubscription.html#event_categories_list-instance_method
      def event_categories_list: () -> ::Array[::String]

      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/RDS/EventSubscription.html#enabled-instance_method
      def enabled: () -> bool

      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/RDS/EventSubscription.html#event_subscription_arn-instance_method
      def event_subscription_arn: () -> ::String

      def client: () -> Client

      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/RDS/EventSubscription.html#load-instance_method
      def load: () -> self
      alias reload load

      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/RDS/EventSubscription.html#data-instance_method
      def data: () -> Types::EventSubscription

      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/RDS/EventSubscription.html#data_loaded?-instance_method
      def data_loaded?: () -> bool


      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/RDS/EventSubscription.html#add_subscriber-instance_method
      def add_subscriber: (
                            source_identifier: ::String
                          ) -> EventSubscription
                        | (?Hash[Symbol, untyped]) -> EventSubscription

      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/RDS/EventSubscription.html#create-instance_method
      def create: (
                    sns_topic_arn: ::String,
                    ?source_type: ::String,
                    ?event_categories: Array[::String],
                    ?source_ids: Array[::String],
                    ?enabled: bool,
                    ?tags: Array[
                      {
                        key: ::String?,
                        value: ::String?
                      },
                    ]
                  ) -> EventSubscription
                | (?Hash[Symbol, untyped]) -> EventSubscription

      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/RDS/EventSubscription.html#delete-instance_method
      def delete: (
                  ) -> EventSubscription
                | (?Hash[Symbol, untyped]) -> EventSubscription

      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/RDS/EventSubscription.html#modify-instance_method
      def modify: (
                    ?sns_topic_arn: ::String,
                    ?source_type: ::String,
                    ?event_categories: Array[::String],
                    ?enabled: bool
                  ) -> EventSubscription
                | (?Hash[Symbol, untyped]) -> EventSubscription

      # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/RDS/EventSubscription.html#remove_subscriber-instance_method
      def remove_subscriber: (
                               source_identifier: ::String
                             ) -> EventSubscription
                           | (?Hash[Symbol, untyped]) -> EventSubscription

      class Collection < ::Aws::Resources::Collection[EventSubscription]
      end
    end
  end
end