Fugue.AWS.IAM.Typed.Principal

Principals are described here: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html and here: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#Principal_specifying

Module Members

aws

(Function)

Construct an AWS entry from a Ludwig.List of Ids.

Type Signature

 fun (List<Id>) -> Entry
Argument: ids
Type: List<Id>
Returns:
Type: Entry

blockTypeFromField

(Function)

Return the BlockType of a given JSON field.

Type Signature

 fun (String) -> Result<BlockType>
Argument: x
Type: String
Returns:
Type: Result<BlockType>

federated

(Function)

Construct a Federated entry from a Ludwig.List of Ids.

Type Signature

 fun (List<Id>) -> Entry
Argument: ids
Type: List<Id>
Returns:
Type: Entry

isValid

(Function)

ensure a principal Block is valid

Type Signature

 fun (Block) -> Validation
Argument: x
Type: Block
Returns:
Type: Validation

notPrincipal

(Function)

Construct a Block which excludes a (possibly wildcard) list of Entrys.

Type Signature

 fun (Wildcard<List<Entry>>) -> Block
Argument: principals
Type: Wildcard<List<Entry>>
Returns:
Type: Block

parse

(Function)

Given a BlockType and a JSON value, construct a Block.

Type Signature

 fun (BlockType) -> Parser<Block>
Argument: ty
Type: BlockType
Returns:
Type: Parser<Block>

principal

(Function)

Construct a Block from a (possibly wildcard) list of Entrys.

Type Signature

 fun (Wildcard<List<Entry>>) -> Block
Argument: principals
Type: Wildcard<List<Entry>>
Returns:
Type: Block

service

(Function)

Construct a Service entry from a Ludwig.List of Ids.

Type Signature

 fun (List<Id>) -> Entry
Argument: ids
Type: List<Id>
Returns:
Type: Entry

toJSON

(Function)

Given a Block, construct a pair consisting of the JSON field and JSON value.

Type Signature

 fun (Block) -> (String, JSON)
Argument: x
Type: Block
Returns:
Type: ( String, JSON)

Block

(Type)

type Block:
  type: BlockType
  principals: Wildcard<List<Entry>>

IAM principal Block

Record {

Field: type
Type: BlockType
Field: principals
Type: Wildcard<List<Entry>>

}

BlockType

(Type)

type BlockType:
  | Principal
  | NotPrincipal

NotPrincipal

(Constructor)

Principal

(Constructor)

IAM principal Block type

Entry

(Type)

type Entry:
  type: EntryType
  ids: List<Id>

principal Entry

Record {

Field: type
Type: EntryType
Field: ids
Type: List<Id>

}

EntryType

(Type)

type EntryType:
  | AWS
  | Federated
  | Service

AWS

(Constructor)

Federated

(Constructor)

Service

(Constructor)

IAM principal entry type

Id

(Type)

type Id:
  String

principal Id Ludwig.String