Module IoT.JobTemplate

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-jobtemplate.html

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

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

and rate_increase_criteria = {
  1. number_of_succeeded_things : int option;
  2. number_of_notified_things : int option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-jobtemplate-rateincreasecriteria.html

and presigned_url_config = {
  1. expires_in_sec : int option;
  2. role_arn : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-jobtemplate-presignedurlconfig.html

and maintenance_window = {
  1. duration_in_minutes : int option;
  2. start_time : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-jobtemplate-maintenancewindow.html

and timeout_config = {
  1. in_progress_timeout_in_minutes : int;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-jobtemplate-timeoutconfig.html

and retry_criteria = {
  1. failure_type : string option;
  2. number_of_retries : int option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-jobtemplate-retrycriteria.html

and abort_criteria = {
  1. action : string;
  2. failure_type : string;
  3. threshold_percentage : float;
  4. min_number_of_executed_things : int;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-jobtemplate-abortcriteria.html

and job_executions_retry_config = {
  1. retry_criteria_list : retry_criteria list option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-jobtemplate-jobexecutionsretryconfig.html

and abort_config = {
  1. criteria_list : abort_criteria list;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-jobtemplate-abortconfig.html

and exponential_rollout_rate = {
  1. rate_increase_criteria : rate_increase_criteria;
  2. base_rate_per_minute : int;
  3. increment_factor : float;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-jobtemplate-exponentialrolloutrate.html

and job_executions_rollout_config = {
  1. maximum_per_minute : int option;
  2. exponential_rollout_rate : exponential_rollout_rate option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-jobtemplate-jobexecutionsrolloutconfig.html

type properties = {
  1. timeout_config : timeout_config option;
  2. description : string;
  3. job_executions_retry_config : job_executions_retry_config option;
  4. abort_config : abort_config option;
  5. job_template_id : string;
  6. document : string option;
  7. destination_package_versions : string list option;
  8. job_arn : string option;
  9. job_executions_rollout_config : job_executions_rollout_config option;
  10. document_source : string option;
  11. maintenance_windows : maintenance_window list option;
  12. presigned_url_config : presigned_url_config option;
  13. tags : tag list option;
}

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

val make_properties : ?timeout_config:timeout_config -> description:string -> ?job_executions_retry_config:job_executions_retry_config -> ?abort_config:abort_config -> job_template_id:string -> ?document:string -> ?destination_package_versions:string list -> ?job_arn:string -> ?job_executions_rollout_config:job_executions_rollout_config -> ?document_source:string -> ?maintenance_windows:maintenance_window list -> ?presigned_url_config:presigned_url_config -> ?tags:tag list -> unit -> properties
val make_tag : value:string -> key:string -> unit -> tag
val make_rate_increase_criteria : ?number_of_succeeded_things:int -> ?number_of_notified_things:int -> unit -> rate_increase_criteria
val make_presigned_url_config : ?expires_in_sec:int -> role_arn:string -> unit -> presigned_url_config
val make_maintenance_window : ?duration_in_minutes:int -> ?start_time:string -> unit -> maintenance_window
val make_timeout_config : in_progress_timeout_in_minutes:int -> unit -> timeout_config
val make_retry_criteria : ?failure_type:string -> ?number_of_retries:int -> unit -> retry_criteria
val make_abort_criteria : action:string -> failure_type:string -> threshold_percentage:float -> min_number_of_executed_things:int -> unit -> abort_criteria
val make_job_executions_retry_config : ?retry_criteria_list:retry_criteria list -> unit -> job_executions_retry_config
val make_abort_config : criteria_list:abort_criteria list -> unit -> abort_config
val make_exponential_rollout_rate : rate_increase_criteria:rate_increase_criteria -> base_rate_per_minute:int -> increment_factor:float -> unit -> exponential_rollout_rate
val make_job_executions_rollout_config : ?maximum_per_minute:int -> ?exponential_rollout_rate:exponential_rollout_rate -> unit -> job_executions_rollout_config
val yojson_of_tag : tag -> [> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_rate_increase_criteria : rate_increase_criteria -> Yojson.Safe.t
val yojson_of_presigned_url_config : presigned_url_config -> [> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_maintenance_window : maintenance_window -> [> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_timeout_config : timeout_config -> [> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_retry_criteria : retry_criteria -> Yojson.Safe.t
val yojson_of_abort_criteria : abort_criteria -> [> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_job_executions_retry_config : job_executions_retry_config -> [> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_abort_config : abort_config -> [> `Assoc of (string * [> `List of [> `Assoc of (string * Yojson.Safe.t) list ] list ]) list ]
val yojson_of_exponential_rollout_rate : exponential_rollout_rate -> Yojson.Safe.t
val yojson_of_job_executions_rollout_config : job_executions_rollout_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. arn : string;
}
val create_attributes : string -> attributes
val cloudformation_type : string