Current section
Files
Jump to
Current section
Files
lib/okta/idps/policy.ex
defmodule Okta.IdPs.Policy do
@moduledoc """
The `Okta.IdPs.Policy` represents an Okta Policy Object for both creation and retrieval
https://developer.okta.com/docs/reference/api/idps/#policy-object
"""
defstruct [
:provisioning,
:accountLink,
:subject,
:maxClockSkew
]
@doc """
Creates a partial Policy that will autoprovision Idp users to a group
"""
@spec auto_provision_to_groups_policy(list(String.t())) :: Okta.IdPs.Policy.t()
def auto_provision_to_groups_policy(group_ids) do
%__MODULE__{
provisioning: %{
"action" => "AUTO",
"conditions" => %{
"deprovisioned" => %{"action" => "NONE"},
"suspended" => %{"action" => "NONE"}
},
"groups" => %{
"action" => "ASSIGN",
"assignments" => group_ids
},
"profileMaster" => false
}
}
end
@doc """
Creates a partial Policy that will disable autoprovisioning in an Idp
"""
@spec no_auto_provision_policy :: Okta.IdPs.Policy.t()
def no_auto_provision_policy() do
%__MODULE__{
provisioning: %{
"action" => "DISABLED",
"conditions" => %{
"deprovisioned" => %{"action" => "NONE"},
"suspended" => %{"action" => "NONE"}
},
"groups" => %{"action" => "NONE"},
"profileMaster" => false
}
}
end
end