Module S3.Bucket

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html

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

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

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

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tagfilter.html

and encryption_configuration = {
  1. replica_kms_key_id : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-encryptionconfiguration.html

and event_bridge_configuration = {
  1. event_bridge_enabled : bool;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-eventbridgeconfiguration.html

and filter_rule = {
  1. value : string;
  2. name : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-filterrule.html

and noncurrent_version_expiration = {
  1. noncurrent_days : int;
  2. newer_noncurrent_versions : int option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-noncurrentversionexpiration.html

and abort_incomplete_multipart_upload = {
  1. days_after_initiation : int;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-abortincompletemultipartupload.html

and versioning_configuration = {
  1. status : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-versioningconfiguration.html

and transition = {
  1. transition_date : string option;
  2. storage_class : string;
  3. transition_in_days : int option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-transition.html

and ownership_controls_rule = {
  1. object_ownership : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ownershipcontrolsrule.html

and cors_rule = {
  1. exposed_headers : string list option;
  2. allowed_methods : string list;
  3. allowed_origins : string list;
  4. allowed_headers : string list option;
  5. max_age : int option;
  6. id : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-corsrule.html

and partitioned_prefix = {
  1. partition_date_source : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-partitionedprefix.html

and default_retention = {
  1. years : int option;
  2. days : int option;
  3. mode : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-defaultretention.html

and tiering = {
  1. access_tier : string;
  2. days : int;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tiering.html

and access_control_translation = {
  1. owner : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-accesscontroltranslation.html

and redirect_all_requests_to = {
  1. protocol : string option;
  2. host_name : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-redirectallrequeststo.html

and replica_modifications = {
  1. status : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicamodifications.html

and redirect_rule = {
  1. replace_key_with : string option;
  2. http_redirect_code : string option;
  3. protocol : string option;
  4. host_name : string option;
  5. replace_key_prefix_with : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-redirectrule.html

and server_side_encryption_by_default = {
  1. sse_algorithm : string;
  2. kms_master_key_id : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionbydefault.html

and noncurrent_version_transition = {
  1. storage_class : string;
  2. transition_in_days : int;
  3. newer_noncurrent_versions : int option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-noncurrentversiontransition.html

and public_access_block_configuration = {
  1. restrict_public_buckets : bool option;
  2. block_public_policy : bool option;
  3. block_public_acls : bool option;
  4. ignore_public_acls : bool option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-publicaccessblockconfiguration.html

and routing_rule_condition = {
  1. key_prefix_equals : string option;
  2. http_error_code_returned_equals : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-routingrulecondition.html

and delete_marker_replication = {
  1. status : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-deletemarkerreplication.html

and accelerate_configuration = {
  1. acceleration_status : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-accelerateconfiguration.html

and sse_kms_encrypted_objects = {
  1. status : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ssekmsencryptedobjects.html

and replication_time_value = {
  1. minutes : int;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationtimevalue.html

and destination = {
  1. bucket_arn : string;
  2. format : string;
  3. bucket_account_id : string option;
  4. prefix : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-destination.html

and cors_configuration = {
  1. cors_rules : cors_rule list;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-corsconfiguration.html

and target_object_key_format = {
  1. partitioned_prefix : partitioned_prefix option;
  2. simple_prefix : Yojson.Safe.t option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-targetobjectkeyformat.html

and inventory_configuration = {
  1. destination : destination;
  2. optional_fields : string list option;
  3. included_object_versions : string;
  4. enabled : bool;
  5. id : string;
  6. prefix : string option;
  7. schedule_frequency : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventoryconfiguration.html

and data_export = {
  1. destination : destination;
  2. output_schema_version : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-dataexport.html

and intelligent_tiering_configuration = {
  1. status : string;
  2. tierings : tiering list;
  3. tag_filters : tag_filter list option;
  4. id : string;
  5. prefix : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-intelligenttieringconfiguration.html

and metrics_configuration = {
  1. access_point_arn : string option;
  2. tag_filters : tag_filter list option;
  3. id : string;
  4. prefix : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metricsconfiguration.html

and object_lock_rule = {
  1. default_retention : default_retention option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-objectlockrule.html

and s3_key_filter = {
  1. rules : filter_rule list;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-s3keyfilter.html

and replication_rule_and_operator = {
  1. tag_filters : tag_filter list option;
  2. prefix : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationruleandoperator.html

and ownership_controls = {
  1. rules : ownership_controls_rule list;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ownershipcontrols.html

and routing_rule = {
  1. redirect_rule : redirect_rule;
  2. routing_rule_condition : routing_rule_condition option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-routingrule.html

and rule = {
  1. status : string;
  2. expired_object_delete_marker : bool option;
  3. noncurrent_version_expiration_in_days : int option;
  4. transitions : transition list option;
  5. object_size_greater_than : string option;
  6. tag_filters : tag_filter list option;
  7. noncurrent_version_transitions : noncurrent_version_transition list option;
  8. prefix : string option;
  9. object_size_less_than : string option;
  10. noncurrent_version_transition : noncurrent_version_transition option;
  11. expiration_date : string option;
  12. noncurrent_version_expiration : noncurrent_version_expiration option;
  13. expiration_in_days : int option;
  14. transition : transition option;
  15. id : string option;
  16. abort_incomplete_multipart_upload : abort_incomplete_multipart_upload option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-rule.html

and replication_time = {
  1. status : string;
  2. time : replication_time_value;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationtime.html

and metrics = {
  1. status : string;
  2. event_threshold : replication_time_value option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metrics.html

and source_selection_criteria = {
  1. replica_modifications : replica_modifications option;
  2. sse_kms_encrypted_objects : sse_kms_encrypted_objects option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-sourceselectioncriteria.html

and server_side_encryption_rule = {
  1. bucket_key_enabled : bool option;
  2. server_side_encryption_by_default : server_side_encryption_by_default option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionrule.html

and replication_destination = {
  1. access_control_translation : access_control_translation option;
  2. account : string option;
  3. metrics : metrics option;
  4. bucket : string;
  5. encryption_configuration : encryption_configuration option;
  6. storage_class : string option;
  7. replication_time : replication_time option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationdestination.html

and website_configuration = {
  1. index_document : string option;
  2. redirect_all_requests_to : redirect_all_requests_to option;
  3. routing_rules : routing_rule list option;
  4. error_document : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-websiteconfiguration.html

and replication_rule_filter = {
  1. and_ : replication_rule_and_operator option;
  2. tag_filter : tag_filter option;
  3. prefix : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationrulefilter.html

and object_lock_configuration = {
  1. object_lock_enabled : string option;
  2. rule : object_lock_rule option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-objectlockconfiguration.html

and lifecycle_configuration = {
  1. rules : rule list;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfiguration.html

and storage_class_analysis = {
  1. data_export : data_export option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-storageclassanalysis.html

and logging_configuration = {
  1. target_object_key_format : target_object_key_format option;
  2. log_file_prefix : string option;
  3. destination_bucket_name : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-loggingconfiguration.html

and notification_filter = {
  1. s3_key : s3_key_filter;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationfilter.html

and bucket_encryption = {
  1. server_side_encryption_configuration : server_side_encryption_rule list;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-bucketencryption.html

and analytics_configuration = {
  1. storage_class_analysis : storage_class_analysis;
  2. tag_filters : tag_filter list option;
  3. id : string;
  4. prefix : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-analyticsconfiguration.html

and replication_rule = {
  1. status : string;
  2. destination : replication_destination;
  3. filter : replication_rule_filter option;
  4. priority : int option;
  5. source_selection_criteria : source_selection_criteria option;
  6. id : string option;
  7. prefix : string option;
  8. delete_marker_replication : delete_marker_replication option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationrule.html

and lambda_configuration = {
  1. function_ : string;
  2. filter : notification_filter option;
  3. event : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lambdaconfiguration.html

and topic_configuration = {
  1. filter : notification_filter option;
  2. event : string;
  3. topic : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-topicconfiguration.html

and queue_configuration = {
  1. filter : notification_filter option;
  2. event : string;
  3. queue : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-queueconfiguration.html

and replication_configuration = {
  1. role : string;
  2. rules : replication_rule list;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration.html

and notification_configuration = {
  1. topic_configurations : topic_configuration list option;
  2. queue_configurations : queue_configuration list option;
  3. lambda_configurations : lambda_configuration list option;
  4. event_bridge_configuration : event_bridge_configuration option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration.html

type properties = {
  1. inventory_configurations : inventory_configuration list option;
  2. bucket_encryption : bucket_encryption option;
  3. website_configuration : website_configuration option;
  4. notification_configuration : notification_configuration option;
  5. lifecycle_configuration : lifecycle_configuration option;
  6. versioning_configuration : versioning_configuration option;
  7. metrics_configurations : metrics_configuration list option;
  8. access_control : string option;
  9. intelligent_tiering_configurations : intelligent_tiering_configuration list option;
  10. analytics_configurations : analytics_configuration list option;
  11. accelerate_configuration : accelerate_configuration option;
  12. public_access_block_configuration : public_access_block_configuration option;
  13. bucket_name : string option;
  14. cors_configuration : cors_configuration option;
  15. ownership_controls : ownership_controls option;
  16. object_lock_configuration : object_lock_configuration option;
  17. object_lock_enabled : bool option;
  18. logging_configuration : logging_configuration option;
  19. replication_configuration : replication_configuration option;
  20. tags : tag list option;
}

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

val make_properties : ?inventory_configurations:inventory_configuration list -> ?bucket_encryption:bucket_encryption -> ?website_configuration:website_configuration -> ?notification_configuration:notification_configuration -> ?lifecycle_configuration:lifecycle_configuration -> ?versioning_configuration:versioning_configuration -> ?metrics_configurations:metrics_configuration list -> ?access_control:string -> ?intelligent_tiering_configurations:intelligent_tiering_configuration list -> ?analytics_configurations:analytics_configuration list -> ?accelerate_configuration:accelerate_configuration -> ?public_access_block_configuration:public_access_block_configuration -> ?bucket_name:string -> ?cors_configuration:cors_configuration -> ?ownership_controls:ownership_controls -> ?object_lock_configuration:object_lock_configuration -> ?object_lock_enabled:bool -> ?logging_configuration:logging_configuration -> ?replication_configuration:replication_configuration -> ?tags:tag list -> unit -> properties
val make_tag : value:string -> key:string -> unit -> tag
val make_tag_filter : value:string -> key:string -> unit -> tag_filter
val make_encryption_configuration : replica_kms_key_id:string -> unit -> encryption_configuration
val make_event_bridge_configuration : event_bridge_enabled:bool -> unit -> event_bridge_configuration
val make_filter_rule : value:string -> name:string -> unit -> filter_rule
val make_noncurrent_version_expiration : noncurrent_days:int -> ?newer_noncurrent_versions:int -> unit -> noncurrent_version_expiration
val make_abort_incomplete_multipart_upload : days_after_initiation:int -> unit -> abort_incomplete_multipart_upload
val make_versioning_configuration : status:string -> unit -> versioning_configuration
val make_transition : ?transition_date:string -> storage_class:string -> ?transition_in_days:int -> unit -> transition
val make_ownership_controls_rule : ?object_ownership:string -> unit -> ownership_controls_rule
val make_cors_rule : ?exposed_headers:string list -> allowed_methods:string list -> allowed_origins:string list -> ?allowed_headers:string list -> ?max_age:int -> ?id:string -> unit -> cors_rule
val make_partitioned_prefix : ?partition_date_source:string -> unit -> partitioned_prefix
val make_default_retention : ?years:int -> ?days:int -> ?mode:string -> unit -> default_retention
val make_tiering : access_tier:string -> days:int -> unit -> tiering
val make_access_control_translation : owner:string -> unit -> access_control_translation
val make_redirect_all_requests_to : ?protocol:string -> host_name:string -> unit -> redirect_all_requests_to
val make_replica_modifications : status:string -> unit -> replica_modifications
val make_redirect_rule : ?replace_key_with:string -> ?http_redirect_code:string -> ?protocol:string -> ?host_name:string -> ?replace_key_prefix_with:string -> unit -> redirect_rule
val make_server_side_encryption_by_default : sse_algorithm:string -> ?kms_master_key_id:string -> unit -> server_side_encryption_by_default
val make_noncurrent_version_transition : storage_class:string -> transition_in_days:int -> ?newer_noncurrent_versions:int -> unit -> noncurrent_version_transition
val make_public_access_block_configuration : ?restrict_public_buckets:bool -> ?block_public_policy:bool -> ?block_public_acls:bool -> ?ignore_public_acls:bool -> unit -> public_access_block_configuration
val make_routing_rule_condition : ?key_prefix_equals:string -> ?http_error_code_returned_equals:string -> unit -> routing_rule_condition
val make_delete_marker_replication : ?status:string -> unit -> delete_marker_replication
val make_accelerate_configuration : acceleration_status:string -> unit -> accelerate_configuration
val make_sse_kms_encrypted_objects : status:string -> unit -> sse_kms_encrypted_objects
val make_replication_time_value : minutes:int -> unit -> replication_time_value
val make_destination : bucket_arn:string -> format:string -> ?bucket_account_id:string -> ?prefix:string -> unit -> destination
val make_cors_configuration : cors_rules:cors_rule list -> unit -> cors_configuration
val make_target_object_key_format : ?partitioned_prefix:partitioned_prefix -> ?simple_prefix:Yojson.Safe.t -> unit -> target_object_key_format
val make_inventory_configuration : destination:destination -> ?optional_fields:string list -> included_object_versions:string -> enabled:bool -> id:string -> ?prefix:string -> schedule_frequency:string -> unit -> inventory_configuration
val make_data_export : destination:destination -> output_schema_version:string -> unit -> data_export
val make_intelligent_tiering_configuration : status:string -> tierings:tiering list -> ?tag_filters:tag_filter list -> id:string -> ?prefix:string -> unit -> intelligent_tiering_configuration
val make_metrics_configuration : ?access_point_arn:string -> ?tag_filters:tag_filter list -> id:string -> ?prefix:string -> unit -> metrics_configuration
val make_object_lock_rule : ?default_retention:default_retention -> unit -> object_lock_rule
val make_s3_key_filter : rules:filter_rule list -> unit -> s3_key_filter
val make_replication_rule_and_operator : ?tag_filters:tag_filter list -> ?prefix:string -> unit -> replication_rule_and_operator
val make_ownership_controls : rules:ownership_controls_rule list -> unit -> ownership_controls
val make_routing_rule : redirect_rule:redirect_rule -> ?routing_rule_condition:routing_rule_condition -> unit -> routing_rule
val make_rule : status:string -> ?expired_object_delete_marker:bool -> ?noncurrent_version_expiration_in_days:int -> ?transitions:transition list -> ?object_size_greater_than:string -> ?tag_filters:tag_filter list -> ?noncurrent_version_transitions:noncurrent_version_transition list -> ?prefix:string -> ?object_size_less_than:string -> ?noncurrent_version_transition:noncurrent_version_transition -> ?expiration_date:string -> ?noncurrent_version_expiration:noncurrent_version_expiration -> ?expiration_in_days:int -> ?transition:transition -> ?id:string -> ?abort_incomplete_multipart_upload:abort_incomplete_multipart_upload -> unit -> rule
val make_replication_time : status:string -> time:replication_time_value -> unit -> replication_time
val make_metrics : status:string -> ?event_threshold:replication_time_value -> unit -> metrics
val make_source_selection_criteria : ?replica_modifications:replica_modifications -> ?sse_kms_encrypted_objects:sse_kms_encrypted_objects -> unit -> source_selection_criteria
val make_server_side_encryption_rule : ?bucket_key_enabled:bool -> ?server_side_encryption_by_default:server_side_encryption_by_default -> unit -> server_side_encryption_rule
val make_replication_destination : ?access_control_translation:access_control_translation -> ?account:string -> ?metrics:metrics -> bucket:string -> ?encryption_configuration:encryption_configuration -> ?storage_class:string -> ?replication_time:replication_time -> unit -> replication_destination
val make_website_configuration : ?index_document:string -> ?redirect_all_requests_to:redirect_all_requests_to -> ?routing_rules:routing_rule list -> ?error_document:string -> unit -> website_configuration
val make_replication_rule_filter : ?and_:replication_rule_and_operator -> ?tag_filter:tag_filter -> ?prefix:string -> unit -> replication_rule_filter
val make_object_lock_configuration : ?object_lock_enabled:string -> ?rule:object_lock_rule -> unit -> object_lock_configuration
val make_lifecycle_configuration : rules:rule list -> unit -> lifecycle_configuration
val make_storage_class_analysis : ?data_export:data_export -> unit -> storage_class_analysis
val make_logging_configuration : ?target_object_key_format:target_object_key_format -> ?log_file_prefix:string -> ?destination_bucket_name:string -> unit -> logging_configuration
val make_notification_filter : s3_key:s3_key_filter -> unit -> notification_filter
val make_bucket_encryption : server_side_encryption_configuration:server_side_encryption_rule list -> unit -> bucket_encryption
val make_analytics_configuration : storage_class_analysis:storage_class_analysis -> ?tag_filters:tag_filter list -> id:string -> ?prefix:string -> unit -> analytics_configuration
val make_replication_rule : status:string -> destination:replication_destination -> ?filter:replication_rule_filter -> ?priority:int -> ?source_selection_criteria:source_selection_criteria -> ?id:string -> ?prefix:string -> ?delete_marker_replication:delete_marker_replication -> unit -> replication_rule
val make_lambda_configuration : function_:string -> ?filter:notification_filter -> event:string -> unit -> lambda_configuration
val make_topic_configuration : ?filter:notification_filter -> event:string -> topic:string -> unit -> topic_configuration
val make_queue_configuration : ?filter:notification_filter -> event:string -> queue:string -> unit -> queue_configuration
val make_replication_configuration : role:string -> rules:replication_rule list -> unit -> replication_configuration
val make_notification_configuration : ?topic_configurations:topic_configuration list -> ?queue_configurations:queue_configuration list -> ?lambda_configurations:lambda_configuration list -> ?event_bridge_configuration:event_bridge_configuration -> unit -> notification_configuration
val yojson_of_tag : tag -> [> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_tag_filter : tag_filter -> Yojson.Safe.t
val yojson_of_encryption_configuration : encryption_configuration -> Yojson.Safe.t
val yojson_of_event_bridge_configuration : event_bridge_configuration -> Yojson.Safe.t
val yojson_of_filter_rule : filter_rule -> Yojson.Safe.t
val yojson_of_noncurrent_version_expiration : noncurrent_version_expiration -> Yojson.Safe.t
val yojson_of_abort_incomplete_multipart_upload : abort_incomplete_multipart_upload -> Yojson.Safe.t
val yojson_of_versioning_configuration : versioning_configuration -> [> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_transition : transition -> Yojson.Safe.t
val yojson_of_ownership_controls_rule : ownership_controls_rule -> [> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_cors_rule : cors_rule -> [> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_partitioned_prefix : partitioned_prefix -> Yojson.Safe.t
val yojson_of_default_retention : default_retention -> Yojson.Safe.t
val yojson_of_tiering : tiering -> Yojson.Safe.t
val yojson_of_access_control_translation : access_control_translation -> Yojson.Safe.t
val yojson_of_redirect_all_requests_to : redirect_all_requests_to -> Yojson.Safe.t
val yojson_of_replica_modifications : replica_modifications -> Yojson.Safe.t
val yojson_of_redirect_rule : redirect_rule -> Yojson.Safe.t
val yojson_of_server_side_encryption_by_default : server_side_encryption_by_default -> Yojson.Safe.t
val yojson_of_noncurrent_version_transition : noncurrent_version_transition -> Yojson.Safe.t
val yojson_of_public_access_block_configuration : public_access_block_configuration -> [> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_routing_rule_condition : routing_rule_condition -> Yojson.Safe.t
val yojson_of_delete_marker_replication : delete_marker_replication -> Yojson.Safe.t
val yojson_of_accelerate_configuration : accelerate_configuration -> [> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_sse_kms_encrypted_objects : sse_kms_encrypted_objects -> Yojson.Safe.t
val yojson_of_replication_time_value : replication_time_value -> Yojson.Safe.t
val yojson_of_destination : destination -> Yojson.Safe.t
val yojson_of_cors_configuration : cors_configuration -> [> `Assoc of (string * [> `List of [> `Assoc of (string * Yojson.Safe.t) list ] list ]) list ]
val yojson_of_target_object_key_format : target_object_key_format -> Yojson.Safe.t
val yojson_of_inventory_configuration : inventory_configuration -> [> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_data_export : data_export -> Yojson.Safe.t
val yojson_of_intelligent_tiering_configuration : intelligent_tiering_configuration -> [> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_metrics_configuration : metrics_configuration -> [> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_object_lock_rule : object_lock_rule -> Yojson.Safe.t
val yojson_of_s3_key_filter : s3_key_filter -> Yojson.Safe.t
val yojson_of_replication_rule_and_operator : replication_rule_and_operator -> Yojson.Safe.t
val yojson_of_ownership_controls : ownership_controls -> [> `Assoc of (string * [> `List of [> `Assoc of (string * Yojson.Safe.t) list ] list ]) list ]
val yojson_of_routing_rule : routing_rule -> Yojson.Safe.t
val yojson_of_rule : rule -> [> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_replication_time : replication_time -> Yojson.Safe.t
val yojson_of_metrics : metrics -> Yojson.Safe.t
val yojson_of_source_selection_criteria : source_selection_criteria -> Yojson.Safe.t
val yojson_of_server_side_encryption_rule : server_side_encryption_rule -> [> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_replication_destination : replication_destination -> Yojson.Safe.t
val yojson_of_website_configuration : website_configuration -> [> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_replication_rule_filter : replication_rule_filter -> Yojson.Safe.t
val yojson_of_object_lock_configuration : object_lock_configuration -> [> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_lifecycle_configuration : lifecycle_configuration -> [> `Assoc of (string * [> `List of [> `Assoc of (string * Yojson.Safe.t) list ] list ]) list ]
val yojson_of_storage_class_analysis : storage_class_analysis -> Yojson.Safe.t
val yojson_of_logging_configuration : logging_configuration -> [> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_notification_filter : notification_filter -> Yojson.Safe.t
val yojson_of_bucket_encryption : bucket_encryption -> [> `Assoc of (string * [> `List of [> `Assoc of (string * Yojson.Safe.t) list ] list ]) list ]
val yojson_of_analytics_configuration : analytics_configuration -> [> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_replication_rule : replication_rule -> Yojson.Safe.t
val yojson_of_lambda_configuration : lambda_configuration -> Yojson.Safe.t
val yojson_of_topic_configuration : topic_configuration -> Yojson.Safe.t
val yojson_of_queue_configuration : queue_configuration -> Yojson.Safe.t
val yojson_of_replication_configuration : replication_configuration -> [> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_notification_configuration : notification_configuration -> [> `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. regional_domain_name : string;
  3. domain_name : string;
  4. website_url : string;
  5. dual_stack_domain_name : string;
  6. arn : string;
}
val create_attributes : string -> attributes
val cloudformation_type : string