ssoready

package module
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Nov 1, 2024 License: MIT Imports: 5 Imported by: 1

README

SSOReady-Go

github.com/ssoready/ssoready-go is a Go SDK for the SSOReady API.

SSOReady is a set of open-source dev tools for implementing Enterprise SSO. You can use SSOReady to add SAML and SCIM support to your product this afternoon.

For example applications built using SSOReady-Go, check out:

Installation

Run the following:

go get github.com/ssoready/ssoready-go

Usage

This section provides a high-level overview of how SSOReady works, and how it's possible to implement SAML and SCIM in just an afternoon. For a more thorough introduction, visit the SAML quickstart or the SCIM quickstart.

The first thing you'll do is create a SSOReady client instance:

import (
	"github.com/ssoready/ssoready-go"
	ssoreadyclient "github.com/ssoready/ssoready-go/client"
)

ssoreadyClient := ssoreadyclient.NewClient()
SAML in two lines of code

SAML (aka "Enterprise SSO") consists of two steps: an initiation step where you redirect your users to their corporate identity provider, and a handling step where you log them in once you know who they are.

To initiate logins, you'll use SSOReady's Get SAML Redirect URL endpoint:

// this is how you implement a "Sign in with SSO" button
getRedirectURLRes, err := ssoreadyClient.SAML.GetSAMLRedirectURL(ctx, &ssoready.GetSAMLRedirectURLRequest{
    OrganizationExternalID: "...",
})
if err != nil { ... }

// redirect the user to getRedirectURLRes.RedirectURL ...

You can use whatever your preferred ID is for organizations (you might call them "workspaces" or "teams") as your OrganizationExternalID. You configure those IDs inside SSOReady, and SSOReady handles keeping track of that organization's SAML and SCIM settings.

To handle logins, you'll use SSOReady's Redeem SAML Access Code endpoint:

redeemRes, err := ssoreadyClient.SAML.RedeemSAMLAccessCode(ctx, &ssoready.RedeemSAMLAccessCodeRequest{
	SAMLAccessCode: "saml_access_code_...",
})

// log the user in as redeemRes.Email inside redeemRes.OrganizationExternalID

You configure the URL for your /ssoready-callback endpoint in SSOReady.

SCIM in one line of code

SCIM (aka "Enterprise directory sync") is basically a way for you to get a list of your customer's employees offline.

To get a customer's employees, you'll use SSOReady's List SCIM Users endpoint:

listSCIMUsersRes, err := ssoreadyClient.SCIM.ListSCIMUsers(ctx, &ssoready.SCIMListSCIMUsersRequest{
	OrganizationExternalID: "...",
})
if err != nil { ... }

// create users from each scim user
for _, scimUser := range listSCIMUsersRes.SCIMUsers { 
	// each scimUser has an ID, Email, Attributes, and Deleted
}

Contributing

Issues and PRs are more than welcome. Be advised that this library is largely autogenerated from ssoready/docs. Most code changes ultimately need to be made there, not on this repo.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Environments = struct {
	Default string
}{
	Default: "https://api.ssoready.com",
}

Environments defines all of the API environments. These values can be used with the WithBaseURL RequestOption to override the client's default environment, if any.

Functions

func Bool

func Bool(b bool) *bool

Bool returns a pointer to the given bool value.

func Byte

func Byte(b byte) *byte

Byte returns a pointer to the given byte value.

func Complex64

func Complex64(c complex64) *complex64

Complex64 returns a pointer to the given complex64 value.

func Complex128

func Complex128(c complex128) *complex128

Complex128 returns a pointer to the given complex128 value.

func Float32

func Float32(f float32) *float32

Float32 returns a pointer to the given float32 value.

func Float64

func Float64(f float64) *float64

Float64 returns a pointer to the given float64 value.

func Int

func Int(i int) *int

Int returns a pointer to the given int value.

func Int8

func Int8(i int8) *int8

Int8 returns a pointer to the given int8 value.

func Int16

func Int16(i int16) *int16

Int16 returns a pointer to the given int16 value.

func Int32

func Int32(i int32) *int32

Int32 returns a pointer to the given int32 value.

func Int64

func Int64(i int64) *int64

Int64 returns a pointer to the given int64 value.

func MustParseDate

func MustParseDate(date string) time.Time

MustParseDate attempts to parse the given string as a date time.Time, and panics upon failure.

func MustParseDateTime

func MustParseDateTime(datetime string) time.Time

MustParseDateTime attempts to parse the given string as a datetime time.Time, and panics upon failure.

func Rune

func Rune(r rune) *rune

Rune returns a pointer to the given rune value.

func String

func String(s string) *string

String returns a pointer to the given string value.

func Time

func Time(t time.Time) *time.Time

Time returns a pointer to the given time.Time value.

func UUID

func UUID(u uuid.UUID) *uuid.UUID

UUID returns a pointer to the given uuid.UUID value.

func Uint

func Uint(u uint) *uint

Uint returns a pointer to the given uint value.

func Uint8

func Uint8(u uint8) *uint8

Uint8 returns a pointer to the given uint8 value.

func Uint16

func Uint16(u uint16) *uint16

Uint16 returns a pointer to the given uint16 value.

func Uint32

func Uint32(u uint32) *uint32

Uint32 returns a pointer to the given uint32 value.

func Uint64

func Uint64(u uint64) *uint64

Uint64 returns a pointer to the given uint64 value.

func Uintptr

func Uintptr(u uintptr) *uintptr

Uintptr returns a pointer to the given uintptr value.

Types

type CreateOrganizationResponse

type CreateOrganizationResponse struct {
	// The created organization.
	Organization *Organization `json:"organization,omitempty" url:"organization,omitempty"`
	// contains filtered or unexported fields
}

func (*CreateOrganizationResponse) GetExtraProperties

func (c *CreateOrganizationResponse) GetExtraProperties() map[string]interface{}

func (*CreateOrganizationResponse) String

func (c *CreateOrganizationResponse) String() string

func (*CreateOrganizationResponse) UnmarshalJSON

func (c *CreateOrganizationResponse) UnmarshalJSON(data []byte) error

type CreateSAMLConnectionResponse

type CreateSAMLConnectionResponse struct {
	// The created SAML connection.
	SAMLConnection *SAMLConnection `json:"samlConnection,omitempty" url:"samlConnection,omitempty"`
	// contains filtered or unexported fields
}

func (*CreateSAMLConnectionResponse) GetExtraProperties

func (c *CreateSAMLConnectionResponse) GetExtraProperties() map[string]interface{}

func (*CreateSAMLConnectionResponse) String

func (*CreateSAMLConnectionResponse) UnmarshalJSON

func (c *CreateSAMLConnectionResponse) UnmarshalJSON(data []byte) error

type CreateSCIMDirectoryResponse

type CreateSCIMDirectoryResponse struct {
	// The updated SCIM directory.
	SCIMDirectory *SCIMDirectory `json:"scimDirectory,omitempty" url:"scimDirectory,omitempty"`
	// contains filtered or unexported fields
}

func (*CreateSCIMDirectoryResponse) GetExtraProperties

func (c *CreateSCIMDirectoryResponse) GetExtraProperties() map[string]interface{}

func (*CreateSCIMDirectoryResponse) String

func (c *CreateSCIMDirectoryResponse) String() string

func (*CreateSCIMDirectoryResponse) UnmarshalJSON

func (c *CreateSCIMDirectoryResponse) UnmarshalJSON(data []byte) error

type CreateSetupURLResponse

type CreateSetupURLResponse struct {
	// The one-time, short-lived self-serve setup URL.
	//
	// Do not log or store this URL. Because this URL is one-time, loading it yourself means your customer will not be
	// able to load it after you.
	URL *string `json:"url,omitempty" url:"url,omitempty"`
	// contains filtered or unexported fields
}

func (*CreateSetupURLResponse) GetExtraProperties

func (c *CreateSetupURLResponse) GetExtraProperties() map[string]interface{}

func (*CreateSetupURLResponse) String

func (c *CreateSetupURLResponse) String() string

func (*CreateSetupURLResponse) UnmarshalJSON

func (c *CreateSetupURLResponse) UnmarshalJSON(data []byte) error

type GetOrganizationResponse

type GetOrganizationResponse struct {
	// The requested organization.
	Organization *Organization `json:"organization,omitempty" url:"organization,omitempty"`
	// contains filtered or unexported fields
}

func (*GetOrganizationResponse) GetExtraProperties

func (g *GetOrganizationResponse) GetExtraProperties() map[string]interface{}

func (*GetOrganizationResponse) String

func (g *GetOrganizationResponse) String() string

func (*GetOrganizationResponse) UnmarshalJSON

func (g *GetOrganizationResponse) UnmarshalJSON(data []byte) error

type GetSAMLConnectionResponse

type GetSAMLConnectionResponse struct {
	// The requested SAML connection.
	SAMLConnection *SAMLConnection `json:"samlConnection,omitempty" url:"samlConnection,omitempty"`
	// contains filtered or unexported fields
}

func (*GetSAMLConnectionResponse) GetExtraProperties

func (g *GetSAMLConnectionResponse) GetExtraProperties() map[string]interface{}

func (*GetSAMLConnectionResponse) String

func (g *GetSAMLConnectionResponse) String() string

func (*GetSAMLConnectionResponse) UnmarshalJSON

func (g *GetSAMLConnectionResponse) UnmarshalJSON(data []byte) error

type GetSAMLRedirectURLRequest

type GetSAMLRedirectURLRequest struct {
	// The SAML connection to start a SAML login for.
	//
	//	One of `samlConnectionId`, `organizationId`, or `organizationExternalId` must be specified.
	SAMLConnectionID *string `json:"samlConnectionId,omitempty" url:"-"`
	// The ID of the organization to start a SAML login for.
	//
	//	The primary SAML connection in this organization will be used for logins.
	//
	//	One of `samlConnectionId`, `organizationId`, or `organizationExternalId` must be specified.
	OrganizationID *string `json:"organizationId,omitempty" url:"-"`
	// The `externalId` of the organization to start a SAML login for.
	//
	//	The primary SAML connection in this organization will be used for logins.
	//
	//	One of `samlConnectionId`, `organizationId`, or `organizationExternalId` must be specified.
	OrganizationExternalID *string `json:"organizationExternalId,omitempty" url:"-"`
	// This string will be returned back to you when you redeem this login's SAML access code.
	//
	//	You can do anything you like with this `state`, but the most common use-case is to keep track of where to redirect
	//	your user back to after logging in with SAML.
	State *string `json:"state,omitempty" url:"-"`
}

type GetSAMLRedirectURLResponse

type GetSAMLRedirectURLResponse struct {
	// Redirect your user to this URL to start a SAML login.
	RedirectURL *string `json:"redirectUrl,omitempty" url:"redirectUrl,omitempty"`
	// contains filtered or unexported fields
}

func (*GetSAMLRedirectURLResponse) GetExtraProperties

func (g *GetSAMLRedirectURLResponse) GetExtraProperties() map[string]interface{}

func (*GetSAMLRedirectURLResponse) String

func (g *GetSAMLRedirectURLResponse) String() string

func (*GetSAMLRedirectURLResponse) UnmarshalJSON

func (g *GetSAMLRedirectURLResponse) UnmarshalJSON(data []byte) error

type GetSCIMDirectoryResponse

type GetSCIMDirectoryResponse struct {
	// The requested SCIM directory.
	SCIMDirectory *SCIMDirectory `json:"scimDirectory,omitempty" url:"scimDirectory,omitempty"`
	// contains filtered or unexported fields
}

func (*GetSCIMDirectoryResponse) GetExtraProperties

func (g *GetSCIMDirectoryResponse) GetExtraProperties() map[string]interface{}

func (*GetSCIMDirectoryResponse) String

func (g *GetSCIMDirectoryResponse) String() string

func (*GetSCIMDirectoryResponse) UnmarshalJSON

func (g *GetSCIMDirectoryResponse) UnmarshalJSON(data []byte) error

type GetSCIMGroupResponse

type GetSCIMGroupResponse struct {
	// The requested SCIM group.
	SCIMGroup *SCIMGroup `json:"scimGroup,omitempty" url:"scimGroup,omitempty"`
	// contains filtered or unexported fields
}

func (*GetSCIMGroupResponse) GetExtraProperties

func (g *GetSCIMGroupResponse) GetExtraProperties() map[string]interface{}

func (*GetSCIMGroupResponse) String

func (g *GetSCIMGroupResponse) String() string

func (*GetSCIMGroupResponse) UnmarshalJSON

func (g *GetSCIMGroupResponse) UnmarshalJSON(data []byte) error

type GetSCIMUserResponse

type GetSCIMUserResponse struct {
	// The requested SCIM user.
	SCIMUser *SCIMUser `json:"scimUser,omitempty" url:"scimUser,omitempty"`
	// contains filtered or unexported fields
}

func (*GetSCIMUserResponse) GetExtraProperties

func (g *GetSCIMUserResponse) GetExtraProperties() map[string]interface{}

func (*GetSCIMUserResponse) String

func (g *GetSCIMUserResponse) String() string

func (*GetSCIMUserResponse) UnmarshalJSON

func (g *GetSCIMUserResponse) UnmarshalJSON(data []byte) error

type GoogleProtobufAny

type GoogleProtobufAny struct {
	// The type of the serialized message.
	Type *string `json:"@type,omitempty" url:"@type,omitempty"`

	ExtraProperties map[string]interface{} `json:"-" url:"-"`
	// contains filtered or unexported fields
}

Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.

func (*GoogleProtobufAny) GetExtraProperties

func (g *GoogleProtobufAny) GetExtraProperties() map[string]interface{}

func (*GoogleProtobufAny) MarshalJSON

func (g *GoogleProtobufAny) MarshalJSON() ([]byte, error)

func (*GoogleProtobufAny) String

func (g *GoogleProtobufAny) String() string

func (*GoogleProtobufAny) UnmarshalJSON

func (g *GoogleProtobufAny) UnmarshalJSON(data []byte) error

type ListOrganizationsResponse

type ListOrganizationsResponse struct {
	// List of organizations.
	Organizations []*Organization `json:"organizations,omitempty" url:"organizations,omitempty"`
	// Value to use as `pageToken` for the next page of data. Empty if there is no more data.
	NextPageToken *string `json:"nextPageToken,omitempty" url:"nextPageToken,omitempty"`
	// contains filtered or unexported fields
}

func (*ListOrganizationsResponse) GetExtraProperties

func (l *ListOrganizationsResponse) GetExtraProperties() map[string]interface{}

func (*ListOrganizationsResponse) String

func (l *ListOrganizationsResponse) String() string

func (*ListOrganizationsResponse) UnmarshalJSON

func (l *ListOrganizationsResponse) UnmarshalJSON(data []byte) error

type ListSAMLConnectionsResponse

type ListSAMLConnectionsResponse struct {
	// The list of SAML connections.
	SAMLConnections []*SAMLConnection `json:"samlConnections,omitempty" url:"samlConnections,omitempty"`
	// Value to use as `pageToken` for the next page of data. Empty if there is no more data.
	NextPageToken *string `json:"nextPageToken,omitempty" url:"nextPageToken,omitempty"`
	// contains filtered or unexported fields
}

func (*ListSAMLConnectionsResponse) GetExtraProperties

func (l *ListSAMLConnectionsResponse) GetExtraProperties() map[string]interface{}

func (*ListSAMLConnectionsResponse) String

func (l *ListSAMLConnectionsResponse) String() string

func (*ListSAMLConnectionsResponse) UnmarshalJSON

func (l *ListSAMLConnectionsResponse) UnmarshalJSON(data []byte) error

type ListSCIMDirectoriesResponse

type ListSCIMDirectoriesResponse struct {
	// The list of SCIM directories.
	SCIMDirectories []*SCIMDirectory `json:"scimDirectories,omitempty" url:"scimDirectories,omitempty"`
	// Value to use as `pageToken` for the next page of data. Empty if there is no more data.
	NextPageToken *string `json:"nextPageToken,omitempty" url:"nextPageToken,omitempty"`
	// contains filtered or unexported fields
}

func (*ListSCIMDirectoriesResponse) GetExtraProperties

func (l *ListSCIMDirectoriesResponse) GetExtraProperties() map[string]interface{}

func (*ListSCIMDirectoriesResponse) String

func (l *ListSCIMDirectoriesResponse) String() string

func (*ListSCIMDirectoriesResponse) UnmarshalJSON

func (l *ListSCIMDirectoriesResponse) UnmarshalJSON(data []byte) error

type ListSCIMGroupsResponse

type ListSCIMGroupsResponse struct {
	// List of SCIM groups.
	SCIMGroups []*SCIMGroup `json:"scimGroups,omitempty" url:"scimGroups,omitempty"`
	// Value to use as `pageToken` for the next page of data. Empty if there is no more data.
	NextPageToken *string `json:"nextPageToken,omitempty" url:"nextPageToken,omitempty"`
	// contains filtered or unexported fields
}

func (*ListSCIMGroupsResponse) GetExtraProperties

func (l *ListSCIMGroupsResponse) GetExtraProperties() map[string]interface{}

func (*ListSCIMGroupsResponse) String

func (l *ListSCIMGroupsResponse) String() string

func (*ListSCIMGroupsResponse) UnmarshalJSON

func (l *ListSCIMGroupsResponse) UnmarshalJSON(data []byte) error

type ListSCIMUsersResponse

type ListSCIMUsersResponse struct {
	// List of SCIM users.
	SCIMUsers []*SCIMUser `json:"scimUsers,omitempty" url:"scimUsers,omitempty"`
	// Value to use as `pageToken` for the next page of data. Empty if there is no more data.
	NextPageToken *string `json:"nextPageToken,omitempty" url:"nextPageToken,omitempty"`
	// contains filtered or unexported fields
}

func (*ListSCIMUsersResponse) GetExtraProperties

func (l *ListSCIMUsersResponse) GetExtraProperties() map[string]interface{}

func (*ListSCIMUsersResponse) String

func (l *ListSCIMUsersResponse) String() string

func (*ListSCIMUsersResponse) UnmarshalJSON

func (l *ListSCIMUsersResponse) UnmarshalJSON(data []byte) error

type Organization

type Organization struct {
	// Unique identifier for this organization.
	ID *string `json:"id,omitempty" url:"id,omitempty"`
	// The environment this organization belongs to.
	EnvironmentID *string `json:"environmentId,omitempty" url:"environmentId,omitempty"`
	// An optional human-friendly name for this organization.
	DisplayName *string `json:"displayName,omitempty" url:"displayName,omitempty"`
	// An identifier you can attach to an organization. Meant to be used to correlate an SSOReady organization to your
	// internal equivalent concept.
	//
	// External IDs are unique within an environment. No two organizations in the same environment can have
	// the same external ID.
	ExternalID *string `json:"externalId,omitempty" url:"externalId,omitempty"`
	// A list of domains that users from this organization use.
	//
	// SAML connections and SCIM directories within this organization will only produce users whose email are included in
	// `domains`. SSOReady will reject SAML and SCIM users that do not fall within `domains`.
	Domains []string `json:"domains,omitempty" url:"domains,omitempty"`
	// contains filtered or unexported fields
}

func (*Organization) GetExtraProperties

func (o *Organization) GetExtraProperties() map[string]interface{}

func (*Organization) String

func (o *Organization) String() string

func (*Organization) UnmarshalJSON

func (o *Organization) UnmarshalJSON(data []byte) error

type RedeemSAMLAccessCodeRequest

type RedeemSAMLAccessCodeRequest struct {
	// The SAML access code to redeem.
	SAMLAccessCode *string `json:"samlAccessCode,omitempty" url:"-"`
}

type RedeemSAMLAccessCodeResponse

type RedeemSAMLAccessCodeResponse struct {
	// The user's email address.
	Email *string `json:"email,omitempty" url:"email,omitempty"`
	// The `state` you provided when getting a SAML initiation URL, if any.
	//
	// If your user logged in to your product using Identity Provider-initiated SAML (e.g. they clicked on your app inside
	// their corporate Okta dashboard), then `state` will be empty.
	//
	// SSOReady validates the authenticity of non-empty `state` values. You do not need to implement your own CSRF on top
	// of it, but doing so anyway will have no bad consequences.
	State *string `json:"state,omitempty" url:"state,omitempty"`
	// Arbitrary key-value pairs the Identity Provider included about the user.
	//
	// Typically, these `attributes` are used to pass along the user's first/last name, or whether they should be
	// considered an admin within their company.
	Attributes map[string]string `json:"attributes,omitempty" url:"attributes,omitempty"`
	// The ID of the organization this user belongs to.
	OrganizationID *string `json:"organizationId,omitempty" url:"organizationId,omitempty"`
	// The `externalId`, if any, of the organization this user belongs to.
	OrganizationExternalID *string `json:"organizationExternalId,omitempty" url:"organizationExternalId,omitempty"`
	// A unique identifier of this particular SAML login. It is not a secret. You can safely log it.
	//
	// SSOReady maintains an audit log of every SAML login. Use this SAML flow ID to find this login in the audit logs.
	SAMLFlowID *string `json:"samlFlowId,omitempty" url:"samlFlowId,omitempty"`
	// contains filtered or unexported fields
}

func (*RedeemSAMLAccessCodeResponse) GetExtraProperties

func (r *RedeemSAMLAccessCodeResponse) GetExtraProperties() map[string]interface{}

func (*RedeemSAMLAccessCodeResponse) String

func (*RedeemSAMLAccessCodeResponse) UnmarshalJSON

func (r *RedeemSAMLAccessCodeResponse) UnmarshalJSON(data []byte) error

type RotateSCIMDirectoryBearerTokenResponse

type RotateSCIMDirectoryBearerTokenResponse struct {
	// The new, updated bearer token.
	//
	// Do not log or store this bearer token. It is an authentication token that your customer should securely input into
	// their Identity Provider.
	BearerToken *string `json:"bearerToken,omitempty" url:"bearerToken,omitempty"`
	// contains filtered or unexported fields
}

func (*RotateSCIMDirectoryBearerTokenResponse) GetExtraProperties

func (r *RotateSCIMDirectoryBearerTokenResponse) GetExtraProperties() map[string]interface{}

func (*RotateSCIMDirectoryBearerTokenResponse) String

func (*RotateSCIMDirectoryBearerTokenResponse) UnmarshalJSON

func (r *RotateSCIMDirectoryBearerTokenResponse) UnmarshalJSON(data []byte) error

type SAMLConnection

type SAMLConnection struct {
	// Unique identifier for this SAML connection.
	ID *string `json:"id,omitempty" url:"id,omitempty"`
	// The organization this SAML connection belongs to.
	OrganizationID *string `json:"organizationId,omitempty" url:"organizationId,omitempty"`
	// Whether this is the primary SAML connection for the organization.
	Primary *bool `json:"primary,omitempty" url:"primary,omitempty"`
	// URL to redirect to when initiating SAML flows.
	//
	// IDP redirect URLs are assigned by an Identity Provider, and need to be inputted into SSOReady.
	IdpRedirectURL *string `json:"idpRedirectUrl,omitempty" url:"idpRedirectUrl,omitempty"`
	// Certificate to authenticate SAML assertions. This is a PEM-encoded X.509 certificate.
	//
	// IDP certificates are assigned by an Identity Provider, and need to be inputted into SSOReady.
	IdpCertificate *string `json:"idpCertificate,omitempty" url:"idpCertificate,omitempty"`
	// Identifier for the identity provider when handling SAML operations.
	//
	// IDP entity IDs are assigned by an Identity Provider, and need to be inputted into SSOReady.
	IdpEntityID *string `json:"idpEntityId,omitempty" url:"idpEntityId,omitempty"`
	// Identifier for the SAML connection when handling SAML operations.
	//
	// SP entity IDs are assigned by SSOReady, and need to be inputted into your customer's Identity Provider.
	SpEntityID *string `json:"spEntityId,omitempty" url:"spEntityId,omitempty"`
	// URL the Identity Provider redirects to when transmitting SAML assertions. Stands for "Service Provider Assertion
	// Consumer Service" URL.
	//
	// SP ACS URLs are assigned by SSOReady, and need to be inputted into your customer's Identity Provider.
	SpAcsURL *string `json:"spAcsUrl,omitempty" url:"spAcsUrl,omitempty"`
	// contains filtered or unexported fields
}

func (*SAMLConnection) GetExtraProperties

func (s *SAMLConnection) GetExtraProperties() map[string]interface{}

func (*SAMLConnection) String

func (s *SAMLConnection) String() string

func (*SAMLConnection) UnmarshalJSON

func (s *SAMLConnection) UnmarshalJSON(data []byte) error

type SCIMDirectory

type SCIMDirectory struct {
	// Unique identifier for this SCIM directory.
	ID *string `json:"id,omitempty" url:"id,omitempty"`
	// The organization this SCIM directory belongs to.
	OrganizationID *string `json:"organizationId,omitempty" url:"organizationId,omitempty"`
	// Whether this is the primary SCIM directory for the organization.
	Primary *bool `json:"primary,omitempty" url:"primary,omitempty"`
	// Base URL the Identity Provider uses to perform SCIM HTTP requests.
	//
	// SCIM base URLs are assigned by SSOReady, and need to be inputted into your customer's Identity Provider.
	SCIMBaseURL *string `json:"scimBaseUrl,omitempty" url:"scimBaseUrl,omitempty"`
	// Whether this SCIM directory has a bearer token assigned.
	//
	// SSOReady only stores a hash of the bearer token. To get a bearer token value, you must rotate this SCIM directory's
	// bearer token.
	HasClientBearerToken *bool `json:"hasClientBearerToken,omitempty" url:"hasClientBearerToken,omitempty"`
	// contains filtered or unexported fields
}

func (*SCIMDirectory) GetExtraProperties

func (s *SCIMDirectory) GetExtraProperties() map[string]interface{}

func (*SCIMDirectory) String

func (s *SCIMDirectory) String() string

func (*SCIMDirectory) UnmarshalJSON

func (s *SCIMDirectory) UnmarshalJSON(data []byte) error

type SCIMGroup

type SCIMGroup struct {
	// Unique identifier for this SCIM group.
	ID *string `json:"id,omitempty" url:"id,omitempty"`
	// SCIM directory this SCIM group belongs to.
	SCIMDirectoryID *string `json:"scimDirectoryId,omitempty" url:"scimDirectoryId,omitempty"`
	// A human-friendly name for the SCIM group.
	DisplayName *string `json:"displayName,omitempty" url:"displayName,omitempty"`
	// Whether the SCIM group has been deleted or deprovisioned from its SCIM directory.
	//
	// Identity Providers are inconsistent about reliably deleting SCIM groups. Many Identity Providers will deprovision
	// the users inside a group, but not the group itself. For this reason, it's typical to ignore this field until a
	// specific need arises.
	Deleted *bool `json:"deleted,omitempty" url:"deleted,omitempty"`
	// Arbitrary, potentially nested, attributes the Identity Provider included about the group.
	//
	// Identity Providers are inconsistent about supporting sending custom attributes on groups. For this reason, it's
	// typical to not rely on them until a specific need arises.
	Attributes map[string]interface{} `json:"attributes,omitempty" url:"attributes,omitempty"`
	// contains filtered or unexported fields
}

func (*SCIMGroup) GetExtraProperties

func (s *SCIMGroup) GetExtraProperties() map[string]interface{}

func (*SCIMGroup) String

func (s *SCIMGroup) String() string

func (*SCIMGroup) UnmarshalJSON

func (s *SCIMGroup) UnmarshalJSON(data []byte) error

type SCIMListSCIMGroupsRequest

type SCIMListSCIMGroupsRequest struct {
	// The SCIM directory to list from.
	//
	// One of `scimDirectoryId`, `organizationId`, or `organizationExternalId` must be specified.
	SCIMDirectoryID *string `json:"-" url:"scimDirectoryId,omitempty"`
	// The ID of the organization to list from. The primary SCIM directory of this organization is used.
	//
	// One of `scimDirectoryId`, `organizationId`, or `organizationExternalId` must be specified.
	OrganizationID *string `json:"-" url:"organizationId,omitempty"`
	// The `externalId` of the organization to list from. The primary SCIM directory of this organization is used.
	//
	// One of `scimDirectoryId`, `organizationId`, or `organizationExternalId` must be specified.
	OrganizationExternalID *string `json:"-" url:"organizationExternalId,omitempty"`
	// Pagination token. Leave empty to get the first page of results.
	PageToken *string `json:"-" url:"pageToken,omitempty"`
}

type SCIMListSCIMUsersRequest

type SCIMListSCIMUsersRequest struct {
	// The SCIM directory to list from.
	//
	// One of `scimDirectoryId`, `organizationId`, or `organizationExternalId` must be specified.
	SCIMDirectoryID *string `json:"-" url:"scimDirectoryId,omitempty"`
	// The ID of the organization to list from. The primary SCIM directory of this organization is used.
	//
	// One of `scimDirectoryId`, `organizationId`, or `organizationExternalId` must be specified.
	OrganizationID *string `json:"-" url:"organizationId,omitempty"`
	// The `externalId` of the organization to list from. The primary SCIM directory of this organization is used.
	//
	// One of `scimDirectoryId`, `organizationId`, or `organizationExternalId` must be specified.
	OrganizationExternalID *string `json:"-" url:"organizationExternalId,omitempty"`
	// If specified, only users that are members of this SCIM group are returned.
	SCIMGroupID *string `json:"-" url:"scimGroupId,omitempty"`
	// Pagination token. Leave empty to get the first page of results.
	PageToken *string `json:"-" url:"pageToken,omitempty"`
}

type SCIMUser

type SCIMUser struct {
	// Unique identifier for this SCIM user.
	ID *string `json:"id,omitempty" url:"id,omitempty"`
	// SCIM directory this SCIM user belongs to.
	SCIMDirectoryID *string `json:"scimDirectoryId,omitempty" url:"scimDirectoryId,omitempty"`
	// The SCIM user's email address.
	Email *string `json:"email,omitempty" url:"email,omitempty"`
	// Whether the SCIM user has been deleted or deprovisioned from its SCIM directory.
	Deleted *bool `json:"deleted,omitempty" url:"deleted,omitempty"`
	// Arbitrary, potentially nested, attributes the Identity Provider included about the user.
	//
	// Typically, these `attributes` are used to pass along the user's first/last name, or whether they should be
	// considered an admin within their company.
	Attributes map[string]interface{} `json:"attributes,omitempty" url:"attributes,omitempty"`
	// contains filtered or unexported fields
}

func (*SCIMUser) GetExtraProperties

func (s *SCIMUser) GetExtraProperties() map[string]interface{}

func (*SCIMUser) String

func (s *SCIMUser) String() string

func (*SCIMUser) UnmarshalJSON

func (s *SCIMUser) UnmarshalJSON(data []byte) error

type Status

type Status struct {
	// The status code, which should be an enum value of [google.rpc.Code][google.rpc.code].
	Code *int `json:"code,omitempty" url:"code,omitempty"`
	// A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.status.details] field, or localized by the client.
	Message *string `json:"message,omitempty" url:"message,omitempty"`
	// A list of messages that carry the error details. There is a common set of message types for APIs to use.
	Details []*GoogleProtobufAny `json:"details,omitempty" url:"details,omitempty"`
	// contains filtered or unexported fields
}

The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).

func (*Status) GetExtraProperties

func (s *Status) GetExtraProperties() map[string]interface{}

func (*Status) String

func (s *Status) String() string

func (*Status) UnmarshalJSON

func (s *Status) UnmarshalJSON(data []byte) error

type UpdateOrganizationResponse

type UpdateOrganizationResponse struct {
	// The updated organization.
	Organization *Organization `json:"organization,omitempty" url:"organization,omitempty"`
	// contains filtered or unexported fields
}

func (*UpdateOrganizationResponse) GetExtraProperties

func (u *UpdateOrganizationResponse) GetExtraProperties() map[string]interface{}

func (*UpdateOrganizationResponse) String

func (u *UpdateOrganizationResponse) String() string

func (*UpdateOrganizationResponse) UnmarshalJSON

func (u *UpdateOrganizationResponse) UnmarshalJSON(data []byte) error

type UpdateSAMLConnectionResponse

type UpdateSAMLConnectionResponse struct {
	// The updated SAML connection.
	SAMLConnection *SAMLConnection `json:"samlConnection,omitempty" url:"samlConnection,omitempty"`
	// contains filtered or unexported fields
}

func (*UpdateSAMLConnectionResponse) GetExtraProperties

func (u *UpdateSAMLConnectionResponse) GetExtraProperties() map[string]interface{}

func (*UpdateSAMLConnectionResponse) String

func (*UpdateSAMLConnectionResponse) UnmarshalJSON

func (u *UpdateSAMLConnectionResponse) UnmarshalJSON(data []byte) error

type UpdateSCIMDirectoryResponse

type UpdateSCIMDirectoryResponse struct {
	// The updated SCIM directory.
	SCIMDirectory *SCIMDirectory `json:"scimDirectory,omitempty" url:"scimDirectory,omitempty"`
	// contains filtered or unexported fields
}

func (*UpdateSCIMDirectoryResponse) GetExtraProperties

func (u *UpdateSCIMDirectoryResponse) GetExtraProperties() map[string]interface{}

func (*UpdateSCIMDirectoryResponse) String

func (u *UpdateSCIMDirectoryResponse) String() string

func (*UpdateSCIMDirectoryResponse) UnmarshalJSON

func (u *UpdateSCIMDirectoryResponse) UnmarshalJSON(data []byte) error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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