Module SNS.Topic

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html

type subscription = {
  1. endpoint : string;
  2. protocol : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic-subscription.html

and tag = {
  1. value : string;
  2. key : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html

and logging_config = {
  1. failure_feedback_role_arn : string option;
  2. success_feedback_sample_rate : string option;
  3. success_feedback_role_arn : string option;
  4. protocol : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic-loggingconfig.html

type properties = {
  1. signature_version : string option;
  2. delivery_status_logging : logging_config list option;
  3. kms_master_key_id : string option;
  4. tracing_config : string option;
  5. fifo_topic : bool option;
  6. display_name : string option;
  7. content_based_deduplication : bool option;
  8. subscription : subscription list option;
  9. tags : tag list option;
  10. data_protection_policy : Yojson.Safe.t option;
  11. topic_name : string option;
  12. archive_policy : Yojson.Safe.t option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html;

val make_properties : ?signature_version:string -> ?delivery_status_logging:logging_config list -> ?kms_master_key_id:string -> ?tracing_config:string -> ?fifo_topic:bool -> ?display_name:string -> ?content_based_deduplication:bool -> ?subscription:subscription list -> ?tags:tag list -> ?data_protection_policy:Yojson.Safe.t -> ?topic_name:string -> ?archive_policy:Yojson.Safe.t -> unit -> properties
val make_subscription : endpoint:string -> protocol:string -> unit -> subscription
val make_tag : value:string -> key:string -> unit -> tag
val make_logging_config : ?failure_feedback_role_arn:string -> ?success_feedback_sample_rate:string -> ?success_feedback_role_arn:string -> protocol:string -> unit -> logging_config
val yojson_of_subscription : subscription -> [> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_tag : tag -> [> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_logging_config : logging_config -> [> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_properties : properties -> [> `Assoc of (string * Yojson.Safe.t) list ]
type attributes = {
  1. ref_ : string;
  2. topic_arn : string;
  3. topic_name : string;
}
val create_attributes : string -> attributes
val cloudformation_type : string