onelogin

package
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 12, 2024 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	GET    method = http.MethodGet
	POST   method = http.MethodPost
	PUT    method = http.MethodPut
	DELETE method = http.MethodDelete
)
View Source
const (
	DefaultTimeout = 10 * time.Second
)

Variables

This section is empty.

Functions

This section is empty.

Types

type App

type App struct {
	ID                 int                   `json:"id,omitempty"`
	ConnectorID        int                   `json:"connector_id"`
	Name               string                `json:"name"`
	Description        string                `json:"description,omitempty"`
	Notes              string                `json:"notes,omitempty"`
	PolicyID           int                   `json:"policy_id,omitempty"`
	BrandID            int                   `json:"brand_id,omitempty"`
	IconURL            string                `json:"icon_url,omitempty"`
	Visible            bool                  `json:"visible,omitempty"`
	AuthMethod         int                   `json:"auth_method,omitempty"`
	TabID              int                   `json:"tab_id,omitempty"`
	CreatedAt          string                `json:"created_at,omitempty"`
	UpdatedAt          string                `json:"updated_at,omitempty"`
	RoleIDs            []int                 `json:"role_ids,omitempty"`
	AllowAssumedSignin bool                  `json:"allow_assumed_signin,omitempty"`
	Provisioning       *Provisioning         `json:"provisioning,omitempty"`
	SSO                *SSO                  `json:"sso,omitempty"`
	Configuration      *Configuration        `json:"configuration,omitempty"`
	Parameters         map[string]*Parameter `json:"parameters,omitempty"`
	EnforcementPoint   *EnforcementPoint     `json:"enforcement_point,omitempty"`
}

type AppAuthMethod

type AppAuthMethod int
const (
	AppAuthMethodNull AppAuthMethod = iota
	AppAuthMethodPassword
	AppAuthMethodOpenId
	AppAuthMethodSAML
	AppAuthMethodAPI
	AppAuthMethodGoogle
	AppAuthMethodForm
	AppAuthMethodWSFed
	AppAuthMethodOIDC
)

type AppConnectorQuery

type AppConnectorQuery struct {
	Paging
	Name       string        `json:"name,omitempty"`
	AuthMethod AppAuthMethod `json:"auth_method,omitempty"`
}

type AppConnectorQueryResponse

type AppConnectorQueryResponse struct {
	ID                  int    `json:"id,omitempty"`
	Name                string `json:"name,omitempty"`
	AuthMethod          int    `json:"auth_method,omitempty"`
	AllowsNewParameters bool   `json:"allows_new_parameters,omitempty"`
	IconURL             string `json:"icon_url,omitempty"`
}

type AppQuery

type AppQuery struct {
	Paging
	Name        string        `json:"name,omitempty"`
	ConnectorID int           `json:"connector_id,omitempty"`
	AuthMethod  AppAuthMethod `json:"auth_method,omitempty"`
}

type AppQueryResponse

type AppQueryResponse struct {
	ID                 int       `json:"id"`
	ConnectorID        int       `json:"connector_id"`
	Name               string    `json:"name"`
	Description        string    `json:"description"`
	Notes              string    `json:"notes"`
	Visible            bool      `json:"visible"`
	AuthMethod         int       `json:"auth_method"`
	TabID              int       `json:"tab_id"`
	CreatedAt          time.Time `json:"created_at"`
	UpdatedAt          time.Time `json:"updated_at"`
	AllowAssumedSignin bool      `json:"allow_assumed_signin"`
}

type AuthResponse

type AuthResponse struct {
	AccessToken  string    `json:"access_token,omitempty"`
	CreatedAt    time.Time `json:"created_at,omitempty"`
	ExpiresIn    int       `json:"expires_in,omitempty"`
	RefreshToken string    `json:"refresh_token,omitempty"`
	TokenType    string    `json:"token_type,omitempty"`
	AccountID    int       `json:"account_id,omitempty"`
}

type Certificate

type Certificate struct {
	ID    int    `json:"id,omitempty"`
	Name  string `json:"name,omitempty"`
	Value string `json:"value,omitempty"`
}

type Client

type Client struct {
	// contains filtered or unexported fields
}

func NewClient

func NewClient(config ClientConfig) (*Client, error)

func (*Client) CreateApp

func (c *Client) CreateApp(app *App) (*App, error)

func (*Client) CreateRole

func (c *Client) CreateRole(role *Role) (*Role, error)

func (*Client) DeleteApp

func (c *Client) DeleteApp(id int) error

func (*Client) DeleteRole

func (c *Client) DeleteRole(id int) error

func (*Client) GetApp

func (c *Client) GetApp(id int) (*App, error)

func (*Client) GetRole

func (c *Client) GetRole(id int) (*Role, error)

func (*Client) ListApps

func (c *Client) ListApps(query *AppQuery) ([]*AppQueryResponse, error)

func (*Client) ListConnectorIDs

func (c *Client) ListConnectorIDs(query *AppConnectorQuery) ([]*AppConnectorQueryResponse, error)

func (*Client) ListRoles

func (c *Client) ListRoles() ([]*Role, error)

func (*Client) UpdateApp

func (c *Client) UpdateApp(app *App) error

func (*Client) UpdateRole

func (c *Client) UpdateRole(role *Role) (*Role, error)

type ClientConfig

type ClientConfig struct {
	ClientID     string
	ClientSecret string
	Subdomain    string
	Timeout      time.Duration
}

type Conditions

type Conditions struct {
	Type  string   `json:"type"`
	Roles []string `json:"roles"`
}

type Configuration

type Configuration struct {
	RedirectURI                   string `json:"redirect_uri,omitempty"`
	RefreshTokenExpirationMinutes int    `json:"refresh_token_expiration_minutes,omitempty"`
	LoginURL                      string `json:"login_url,omitempty"`
	OidcApplicationType           int    `json:"oidc_application_type,omitempty"`
	TokenEndpointAuthMethod       int    `json:"token_endpoint_auth_method,omitempty"`
	AccessTokenExpirationMinutes  int    `json:"access_token_expiration_minutes,omitempty"`
	ProviderArn                   string `json:"provider_arn,omitempty"`
	IdpList                       string `json:"idp_list,omitempty"`
	SignatureAlgorithm            string `json:"signature_algorithm,omitempty"`
	LogoutURL                     string `json:"logout_url,omitempty"`
	PostLogoutRedirectURI         string `json:"post_logout_redirect_uri,omitempty"`
	Audience                      string `json:"audience,omitempty"`
	ConsumerURL                   string `json:"consumer_url,omitempty"`
	Login                         string `json:"login,omitempty"`
	Recipient                     string `json:"recipient,omitempty"`
	Validator                     string `json:"validator,omitempty"`
	RelayState                    string `json:"relaystate,omitempty"`
	Relay                         string `json:"relay,omitempty"`
	SAMLNotValidOnOrAafter        string `json:"saml_notonorafter,omitempty"`
	GenerateAttributeValueTags    string `json:"generate_attribute_value_tags,omitempty"`
	SAMLInitiaterID               string `json:"saml_initiater_id,omitempty"`
	SAMLNotValidBefore            string `json:"saml_notbefore,omitempty"`
	SAMLIssuerType                string `json:"saml_issuer_type,omitempty"`
	SAMLSignElement               string `json:"saml_sign_element,omitempty"`
	EncryptAssertion              string `json:"encrypt_assertion,omitempty"`
	SAMLSessionNotValidOnOrAfter  string `json:"saml_sessionnotonorafter,omitempty"`
	SAMLEncryptionMethodID        string `json:"saml_encryption_method_id,omitempty"`
	SAMLNameIDFormatID            string `json:"saml_nameid_format_id,omitempty"`
}

type Duration

type Duration struct {
	Value int `json:"value"`
	Unit  int `json:"unit"`
}

type EnforcementPoint

type EnforcementPoint struct {
	RequireSitewideAuthentication bool        `json:"require_sitewide_authentication"`
	Conditions                    *Conditions `json:"conditions,omitempty"`
	SessionExpiryFixed            *Duration   `json:"session_expiry_fixed"`
	SessionExpiryInactivity       *Duration   `json:"session_expiry_inactivity"`
	Permissions                   string      `json:"permissions"`
	Token                         string      `json:"token,omitempty"`
	Target                        string      `json:"target"`
	Resources                     []*Resource `json:"resources"`
	ContextRoot                   string      `json:"context_root"`
	UseTargetHostHeader           bool        `json:"use_target_host_header"`
	Vhost                         string      `json:"vhost"`
	LandingPage                   string      `json:"landing_page"`
	CaseSensitive                 bool        `json:"case_sensitive"`
}

type ErrMissingField

type ErrMissingField struct {
	Field string
}

ErrMissingField is returned when a required field is missing

func (ErrMissingField) Error

func (e ErrMissingField) Error() string

type ErrNotImplemented

type ErrNotImplemented struct{}

ErrNotImplemented is returned when a method is not implemented

func (ErrNotImplemented) Error

func (e ErrNotImplemented) Error() string

type ErrOneloginAPIBroken

type ErrOneloginAPIBroken struct{}

ErrOneloginAPIBroken is returned when a required field is missing

func (ErrOneloginAPIBroken) Error

func (e ErrOneloginAPIBroken) Error() string

type Paging

type Paging struct {
	Limit  int    `json:"limit,omitempty"`
	Page   int    `json:"page,omitempty"`
	Cursor string `json:"cursor,omitempty"`
}

Paging holds common paging parameters for APIs that support paging https://developers.onelogin.com/api-docs/2/getting-started/using-query-parameters#pagination

type Parameter

type Parameter struct {
	ID                        int         `json:"id,omitempty"`
	Label                     string      `json:"label,omitempty"`
	UserAttributeMappings     string      `json:"user_attribute_mappings,omitempty"`
	UserAttributeMacros       string      `json:"user_attribute_macros,omitempty"`
	AttributesTransformations string      `json:"attributes_transformations,omitempty"`
	Values                    string      `json:"values,omitempty"`
	ProvisionedEntitlements   bool        `json:"provisioned_entitlements,omitempty"`
	SkipIfBlank               bool        `json:"skip_if_blank,omitempty"`
	DefaultValues             interface{} `json:"default_values"`
	IncludeInSamlAssertion    bool        `json:"include_in_saml_assertion,omitempty"`
}

type Provisioning

type Provisioning struct {
	Enabled bool `json:"enabled,omitempty"`
}

type Resource

type Resource struct {
	Path        string  `json:"path"`
	RequireAuth string  `json:"require_authentication"`
	Permissions string  `json:"permissions"`
	Conditions  *string `json:"conditions,omitempty"`
	IsPathRegex *bool   `json:"is_path_regex,omitempty"`
	ResourceID  int     `json:"resource_id,omitempty"`
}

type Role

type Role struct {
	ID     int    `json:"id,omitempty"`
	Name   string `json:"name,omitempty"`
	Admins []int  `json:"admins,omitempty"`
	Apps   []int  `json:"apps,omitempty"`
	Users  []int  `json:"users,omitempty"`
}

type SSO

type SSO struct {
	ClientID     string       `json:"client_id,omitempty"`
	ClientSecret string       `json:"client_secret,omitempty"`
	MetadataURL  string       `json:"metadata_url,omitempty"`
	AcsURL       string       `json:"acs_url,omitempty"`
	SlsURL       string       `json:"sls_url,omitempty"`
	Issuer       string       `json:"issuer,omitempty"`
	Certificate  *Certificate `json:"certificate,omitempty"`
}

type User

type User struct {
	ID                   int                    `json:"id,omitempty"`
	UserName             string                 `json:"username,omitempty"`
	Email                string                 `json:"email,omitempty"`
	FirstName            string                 `json:"firstname,omitempty"`
	LastName             string                 `json:"lastname,omitempty"`
	Password             string                 `json:"password,omitempty"`
	PasswordConfirmation string                 `json:"password_confirmation,omitempty"`
	PasswordAlgorithm    string                 `json:"password_algorithm,omitempty"`
	Salt                 string                 `json:"salt,omitempty"`
	Title                string                 `json:"title,omitempty"`
	Department           string                 `json:"department,omitempty"`
	Company              string                 `json:"company,omitempty"`
	Comment              string                 `json:"comment,omitempty"`
	GroupID              int                    `json:"group_id,omitempty"`
	RoleIDs              []int                  `json:"role_ids,omitempty"`
	Phone                string                 `json:"phone,omitempty"`
	State                int                    `json:"state,omitempty"`
	Status               int                    `json:"status,omitempty"`
	DirectoryID          int                    `json:"directory_id,omitempty"`
	TrustedIDPID         int                    `json:"trusted_idp_id,omitempty"`
	ManagerADID          int                    `json:"manager_ad_id,omitempty"`
	Samaccountname       string                 `json:"samaccountname,omitempty"`
	MemberOf             string                 `json:"member_of,omitempty"`
	UserPrincipalName    string                 `json:"userprincipalname,omitempty"`
	DistinguishedName    string                 `json:"distinguished_name,omitempty"`
	ExternalID           string                 `json:"external_id,omitempty"`
	OpenidName           string                 `json:"openid_name,omitempty"`
	InvalidLoginAttempts int                    `json:"invalid_login_attempts,omitempty"`
	CustomAttributes     map[string]interface{} `json:"custom_attributes,omitempty"`
}

type UserQuery

type UserQuery struct {
	CreatedSince     time.Time              `json:"created_since,omitempty"`
	CreatedUntil     time.Time              `json:"created_until,omitempty"`
	UpdatedSince     time.Time              `json:"updated_since,omitempty"`
	UpdatedUntil     time.Time              `json:"updated_until,omitempty"`
	LastLoginSince   time.Time              `json:"last_login_since,omitempty"`
	LastLoginUntil   time.Time              `json:"last_login_until,omitempty"`
	FirstName        string                 `json:"firstname,omitempty"`
	LastName         string                 `json:"lastname,omitempty"`
	Email            string                 `json:"email,omitempty"`
	Username         string                 `json:"username,omitempty"`
	Samaccountname   string                 `json:"samaccountname,omitempty"`
	DirectoryID      string                 `json:"directory_id,omitempty"`
	ExternalID       string                 `json:"external_id,omitempty"`
	AppID            string                 `json:"app_id,omitempty"`
	UserIDs          []int                  `json:"user_ids,omitempty"`
	CustomAttributes map[string]interface{} `json:"custom_attributes,omitempty"`
	Fields           []string               `json:"fields,omitempty"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL