Module Helpers.Iam_policy

IAM Policy generation

type iam_policy_version =
  1. | PolicyVersion2008_10_17
  2. | PolicyVersion2012_10_17
val yojson_of_iam_policy_version : iam_policy_version -> [> `String of string ]
type principal_map =
  1. | AWS of string list
  2. | CanonicalUser of string list
  3. | Federated of string list
  4. | Service of string list
val yojson_of_principal_map : principal_map -> Yojson.Safe.t
type principal =
  1. | Principal of principal_map
  2. | PrincipalAll
val yojson_of_principal : principal -> Yojson.Safe.t
type effect =
  1. | Allow
  2. | Deny
val yojson_of_effect : effect -> [> `String of string ]
type action = string list
val yojson_of_action : string list -> [> `List of Yojson.Safe.t list ]
type resource = string list
val yojson_of_resource : string list -> Yojson.Safe.t
type condition_operator =
  1. | StringEquals
  2. | StringNotEquals
  3. | StringEqualsIgnoreCase
  4. | StringNotEqualsIgnoreCase
  5. | StringLike
  6. | NumericEquals
  7. | NumericNotEquals
  8. | NumericLessThan
  9. | NumericGreaterThan
  10. | NumericLessThanEquals
  11. | NumericGreaterThanEquals
  12. | DateEquals
  13. | DateNotEquals
  14. | DateLessThan
  15. | DateGreaterThan
  16. | DateLessThanEquals
  17. | DateGreaterThanEquals
  18. | Bool
  19. | BinaryEquals
  20. | IPAddress
  21. | NotIPAddress
val string_of_condition_operator : condition_operator -> string
val yojson_of_condition_value : string -> Yojson.Safe.t
type condition_term = string * string list
type condition_operator_spec =
  1. | ForValue of condition_operator
  2. | ForAnyValue of condition_operator
  3. | ForAllValues of condition_operator
val yojson_of_condition_term : condition_term -> Yojson.Safe.t
val yojson_of_condition_operator_spec : condition_operator_spec -> string
type condition = (condition_operator_spec * condition_term) list
val yojson_of_condition : condition -> Yojson.Safe.t
type statement = {
  1. sid : string option;
  2. principal : principal option;
  3. not_principal : principal option;
  4. effect : effect;
  5. action : action;
  6. resource : resource option;
  7. condition : condition option;
}
val yojson_of_statement : statement -> Yojson.Safe.t
type policy = {
  1. version : iam_policy_version;
  2. id : string option;
  3. statement : statement list;
}
val yojson_of_policy : policy -> [> `Assoc of (string * Yojson.Safe.t) list ]
val statement : ?effect:effect -> ?sid:string -> ?principal:principal -> ?not_principal:principal -> ?condition:condition -> ?resource:resource -> action:action -> unit -> statement
val aws_service_principal : string -> principal
val assume_role_statement : ?effect:effect -> principal -> statement
val policy : ?version:iam_policy_version -> ?id:string -> statement list -> policy