account

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Sep 15, 2026 License: MIT Imports: 9 Imported by: 0

Documentation

Overview

Package account provides typed access to Jamf Platform account API endpoints.

Index

Constants

This section is empty.

Variables

View Source
var Privileges = map[string]jamfplatform.MethodPrivileges{
	"CreateConnection":                 {Method: "CreateConnection", HTTPMethod: "POST", Path: "/v1/connections", Scopes: []jamfplatform.ScopeKind{jamfplatform.ScopeOrganization}, ScopesSource: "config-override", Scoped: []string{"sso-connections:create"}, Legacy: nil, Source: "gateway-policy"},
	"CreateDistributorPurchaseOrder":   {Method: "CreateDistributorPurchaseOrder", HTTPMethod: "POST", Path: "/v1/distributor/purchase-orders", Scopes: []jamfplatform.ScopeKind{jamfplatform.ScopeOrganization}, ScopesSource: "config-override", Scoped: []string{"distributor-actions:create"}, Legacy: nil, Source: "gateway-policy"},
	"CreateDomain":                     {Method: "CreateDomain", HTTPMethod: "POST", Path: "/v1/domains", Scopes: []jamfplatform.ScopeKind{jamfplatform.ScopeOrganization}, ScopesSource: "config-override", Scoped: []string{"sso-domains:create"}, Legacy: nil, Source: "gateway-policy"},
	"DeleteConnection":                 {Method: "DeleteConnection", HTTPMethod: "DELETE", Path: "/v1/connections/{connectionId}", Scopes: []jamfplatform.ScopeKind{jamfplatform.ScopeOrganization}, ScopesSource: "config-override", Scoped: []string{"sso-connections:delete"}, Legacy: nil, Source: "gateway-policy"},
	"DeleteDomain":                     {Method: "DeleteDomain", HTTPMethod: "DELETE", Path: "/v1/domains/{domainId}", Scopes: []jamfplatform.ScopeKind{jamfplatform.ScopeOrganization}, ScopesSource: "config-override", Scoped: []string{"sso-domains:delete"}, Legacy: nil, Source: "gateway-policy"},
	"GetConnection":                    {Method: "GetConnection", HTTPMethod: "GET", Path: "/v1/connections/{connectionId}", Scopes: []jamfplatform.ScopeKind{jamfplatform.ScopeOrganization}, ScopesSource: "config-override", Scoped: []string{"sso-connections:read"}, Legacy: nil, Source: "gateway-policy"},
	"GetDistributorConfiguration":      {Method: "GetDistributorConfiguration", HTTPMethod: "GET", Path: "/v1/distributor/configuration", Scopes: []jamfplatform.ScopeKind{jamfplatform.ScopeOrganization}, ScopesSource: "config-override", Scoped: []string{"distributor-actions:read"}, Legacy: nil, Source: "gateway-policy"},
	"GetDistributorPurchaseOrder":      {Method: "GetDistributorPurchaseOrder", HTTPMethod: "GET", Path: "/v1/distributor/purchase-orders/{jamfPoNumber}", Scopes: []jamfplatform.ScopeKind{jamfplatform.ScopeOrganization}, ScopesSource: "config-override", Scoped: []string{"distributor-actions:read"}, Legacy: nil, Source: "gateway-policy"},
	"GetDistributorQuote":              {Method: "GetDistributorQuote", HTTPMethod: "GET", Path: "/v1/distributor/quotes/{quoteNumber}", Scopes: []jamfplatform.ScopeKind{jamfplatform.ScopeOrganization}, ScopesSource: "config-override", Scoped: []string{"distributor-actions:read"}, Legacy: nil, Source: "gateway-policy"},
	"GetDomainAllocation":              {Method: "GetDomainAllocation", HTTPMethod: "GET", Path: "/v1/domains/allocation/{domain}", Scopes: []jamfplatform.ScopeKind{jamfplatform.ScopeOrganization}, ScopesSource: "config-override", Scoped: []string{"sso-domains:read"}, Legacy: nil, Source: "gateway-policy"},
	"ListConnections":                  {Method: "ListConnections", HTTPMethod: "GET", Path: "/v1/connections", Scopes: []jamfplatform.ScopeKind{jamfplatform.ScopeOrganization}, ScopesSource: "config-override", Scoped: []string{"sso-connections:read"}, Legacy: nil, Source: "gateway-policy"},
	"ListDealRegistrations":            {Method: "ListDealRegistrations", HTTPMethod: "GET", Path: "/v1/deal-registrations", Scopes: []jamfplatform.ScopeKind{jamfplatform.ScopeOrganization}, ScopesSource: "config-override", Scoped: []string{"deal-registration:read"}, Legacy: nil, Source: "gateway-policy"},
	"ListDomains":                      {Method: "ListDomains", HTTPMethod: "GET", Path: "/v1/domains", Scopes: []jamfplatform.ScopeKind{jamfplatform.ScopeOrganization}, ScopesSource: "config-override", Scoped: []string{"sso-domains:read"}, Legacy: nil, Source: "gateway-policy"},
	"ListLicenses":                     {Method: "ListLicenses", HTTPMethod: "GET", Path: "/v1/licenses", Scopes: []jamfplatform.ScopeKind{jamfplatform.ScopeOrganization}, ScopesSource: "config-override", Scoped: []string{"licensing:read"}, Legacy: nil, Source: "gateway-policy"},
	"UpdateConnection":                 {Method: "UpdateConnection", HTTPMethod: "PUT", Path: "/v1/connections/{connectionId}", Scopes: []jamfplatform.ScopeKind{jamfplatform.ScopeOrganization}, ScopesSource: "config-override", Scoped: []string{"sso-connections:update"}, Legacy: nil, Source: "gateway-policy"},
	"UpdateDistributorConfiguration":   {Method: "UpdateDistributorConfiguration", HTTPMethod: "PATCH", Path: "/v1/distributor/configuration", Scopes: []jamfplatform.ScopeKind{jamfplatform.ScopeOrganization}, ScopesSource: "config-override", Scoped: []string{"distributor-actions:update"}, Legacy: nil, Source: "gateway-policy"},
	"ValidateDistributorPurchaseOrder": {Method: "ValidateDistributorPurchaseOrder", HTTPMethod: "POST", Path: "/v1/distributor/validate-purchase-order", Scopes: []jamfplatform.ScopeKind{jamfplatform.ScopeOrganization}, ScopesSource: "config-override", Scoped: []string{"distributor-actions:update"}, Legacy: nil, Source: "gateway-policy"},
	"VerifyDomain":                     {Method: "VerifyDomain", HTTPMethod: "POST", Path: "/v1/domains/{domainId}/actions/verify", Scopes: []jamfplatform.ScopeKind{jamfplatform.ScopeOrganization}, ScopesSource: "config-override", Scoped: []string{"sso-domains:update"}, Legacy: nil, Source: "gateway-policy"},
}

Privileges maps each account SDK method name to the Jamf API privileges it requires, sourced from the x-required-privileges vendor extensions in the Jamf OpenAPI specs. Identifiers are GA capability permissions in {capability}:{action} form and a multi-entry Scoped slice means all of them are required.

Source names where each entry's Scoped set came from: "spec" for the operation's own x-required-privileges, "gateway-policy" for one the published spec omits and this SDK supplies from the gateway's authorization policy, and "" when Scoped is empty. An empty Scoped slice means nothing declares a privilege for the endpoint, which is NOT the same as none being required — see jamfplatform.MethodPrivileges. Do not render it as "no permission needed".

Scopes lists the scope kinds each endpoint accepts. It is an alternatives set: a client carries one scope, so a consumer needs a credential matching one of the listed kinds. ScopesSource names where the set came from — "spec" for the spec root's own x-scope-types, "config-override" for one this SDK supplies because the published spec understates what the gateway serves or declares no extension at all. A spec-sourced set is what the spec declares, which for the Platform APIs is currently stricter than the gateway — see jamfplatform.MethodPrivileges.

Synthetic Resolve<X>ByName / Apply<X> methods are not present; document the privileges of the operations they call instead.

Functions

func PrivilegesFor

func PrivilegesFor(method string) (jamfplatform.MethodPrivileges, bool)

PrivilegesFor returns the privilege metadata for the named SDK method and true when the method is present in the registry, or the zero value and false otherwise.

Types

type AddOnType

type AddOnType = string

AddOnType represents a add on type value.

const (
	AddOnTypeJamfInfrastructureManager AddOnType = "JAMF_INFRASTRUCTURE_MANAGER"
	AddOnTypeJamfPkiProxy              AddOnType = "JAMF_PKI_PROXY"
	AddOnTypeJamfProServerTools        AddOnType = "JAMF_PRO_SERVER_TOOLS"
	AddOnTypeAdCsConnector             AddOnType = "AD_CS_CONNECTOR"
	AddOnTypeSccmPlugin                AddOnType = "SCCM_PLUGIN"
	AddOnTypeSelfServicePlus           AddOnType = "SELF_SERVICE_PLUS"
	AddOnTypeJamfTrust                 AddOnType = "JAMF_TRUST"
	AddOnTypeJsde                      AddOnType = "JSDE"
	AddOnTypeMspToolkit                AddOnType = "MSP_TOOLKIT"
	AddOnTypeComposer                  AddOnType = "COMPOSER"
)

AddOnType values accepted by the Jamf API. The alias above is a string, so these constants pass to any parameter or field declared as a plain string.

func AddOnTypeValues

func AddOnTypeValues() []AddOnType

AddOnTypeValues returns every value the Jamf API accepts for AddOnType, in the order the spec declares them. Returns a fresh slice per call, so no caller can corrupt the set for the rest of the process — which a package level var would allow. Suits attribute validation (Terraform's stringvalidator.OneOf, say) and anything that needs to enumerate the set rather than name one member.

type ApiError

type ApiError struct {
	// Every problem found with the request. Always holds at least one entry.
	Errors []ApiErrorItem `json:"errors"`
	// HTTP status code of the response.
	HttpStatus int `json:"httpStatus"`
	// Trace identifier correlating the response with Jamf server-side logs. Quote it when reporting a
	// failure. Null when the request carried no active trace.
	TraceID *string `json:"traceId,omitempty"`
}

ApiError Standard Jamf error response body, returned for every non-2xx response raised by the service.

type ApiErrorItem

type ApiErrorItem struct {
	// Machine-readable, stable classification of the problem. Values used by this API include
	// `BAD_REQUEST`, `UNAUTHORIZED`, `FORBIDDEN`, `NOT_FOUND`, `UPSTREAM_ERROR`, and `INTERNAL_ERROR`.
	// Prefer this over matching on `description`.
	Code string `json:"code"`
	// Human-readable explanation, for troubleshooting rather than display to an end user. Generic for
	// server-side failures, which are correlated through `traceId` instead.
	Description string `json:"description"`
	// Request field the problem relates to. Null when the problem is not about one field.
	Field *string `json:"field,omitempty"`
}

ApiErrorItem A single problem with the request.

type BaseConnectionSettings

type BaseConnectionSettings struct {
	// Whether the signing-in user's email address is forwarded to the provider as a login hint, so they do
	// not have to type it twice.
	AliasLoginHintToIdp bool `json:"aliasLoginHintToIdp"`
	// JSON document, as a string, mapping provider claims onto Jamf user attributes. Null to use the
	// provider's default mapping.
	AttributeMap *string `json:"attributeMap,omitempty"`
	// Client identifier of the application registered with the provider.
	ClientID *string `json:"clientId,omitempty"`
	// Client secret of the application registered with the provider. Write-only: supply it to set or
	// rotate the secret, omit it on update to keep the stored value, and expect it to be omitted from
	// every response.
	// Write-only. Servers MUST NOT return this field in responses; the SDK preserves it only so the caller
	// can supply a value on update.
	ClientSecret *string `json:"clientSecret,omitempty"`
	// Claim to read the username from, when the provider does not put it in the standard claim.
	CustomUsernameClaimName *string `json:"customUsernameClaimName,omitempty"`
	// Pattern limiting which provider groups are passed through to Jamf, for directories with more groups
	// than Jamf needs.
	GroupNameFilter *string `json:"groupNameFilter,omitempty"`
	// Display name for the connection, shown to administrators in Jamf Account.
	Name string `json:"name"`
	// Proof Key for Code Exchange method used with the provider. Defaults to `DISABLED`.
	PkceAuthType *PkceAuthType `json:"pkceAuthType,omitempty"`
	// Region to create the connection in. Cannot be changed once the connection exists.
	Region Region `json:"region"`
	// Whether a nonce is sent on the authentication request. Leave unset unless the provider requires it.
	SendNonce *bool `json:"sendNonce,omitempty"`
	// Session lifetime limits for users signing in through this connection. Null to use the Jamf defaults.
	SessionInfo *SessionInfo `json:"sessionInfo,omitempty"`
	// Whether the user's profile attributes are refreshed from the provider on every sign-in. Defaults to
	// true.
	SyncUserProfileAttributesAtLogin *bool `json:"syncUserProfileAttributesAtLogin,omitempty"`
	// How Jamf authenticates to the provider's token endpoint. Defaults to `CLIENT_SECRET_POST`.
	TokenEndpointAuthMethod *TokenEndpointAuthMethod `json:"tokenEndpointAuthMethod,omitempty"`
	// Domain appended to a bare username from the provider to form the user's email address.
	UsernameDomain *string `json:"usernameDomain,omitempty"`
}

BaseConnectionSettings Settings common to every connection type. Not used on its own — see the per-type settings schemas.

type BusinessType

type BusinessType = string

BusinessType represents a business type value.

const (
	BusinessTypeCommercial      BusinessType = "Commercial"
	BusinessTypeGovernment      BusinessType = "Government"
	BusinessTypeEducationK12    BusinessType = "Education-K12"
	BusinessTypeEducationHighEd BusinessType = "Education-High Ed"
	BusinessTypeEducationIntlEd BusinessType = "Education-Intl Ed"
)

BusinessType values accepted by the Jamf API. The alias above is a string, so these constants pass to any parameter or field declared as a plain string.

func BusinessTypeValues

func BusinessTypeValues() []BusinessType

BusinessTypeValues returns every value the Jamf API accepts for BusinessType, in the order the spec declares them. Returns a fresh slice per call, so no caller can corrupt the set for the rest of the process — which a package level var would allow. Suits attribute validation (Terraform's stringvalidator.OneOf, say) and anything that needs to enumerate the set rather than name one member.

type Client

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

Client provides typed methods for account operations.

func New

func New(base *jamfplatform.Client) *Client

New creates a account client that shares the authenticated transport of the given root client.

func (*Client) CreateConnection

func (c *Client) CreateConnection(ctx context.Context, request *ConnectionRequest) (*Connection, error)

CreateConnection add Connection.

Required privileges: sso-connections:create. The published spec declares none for this operation; these are the capabilities the gateway's own authorization policy enforces. See Privileges in this package for the provenance.

func (*Client) CreateDistributorPurchaseOrder

func (c *Client) CreateDistributorPurchaseOrder(ctx context.Context, request *DistributorPurchaseOrder) error

CreateDistributorPurchaseOrder submit Distributor Purchase Order.

Required privileges: distributor-actions:create. The published spec declares none for this operation; these are the capabilities the gateway's own authorization policy enforces. See Privileges in this package for the provenance.

func (*Client) CreateDomain

func (c *Client) CreateDomain(ctx context.Context, request *DomainRequest) (*Domain, error)

CreateDomain add Domain.

Required privileges: sso-domains:create. The published spec declares none for this operation; these are the capabilities the gateway's own authorization policy enforces. See Privileges in this package for the provenance.

func (*Client) DeleteConnection

func (c *Client) DeleteConnection(ctx context.Context, connectionID string) error

DeleteConnection delete Connection.

Required privileges: sso-connections:delete. The published spec declares none for this operation; these are the capabilities the gateway's own authorization policy enforces. See Privileges in this package for the provenance.

Parameters:

  • connectionID: Identifier of the connection, as returned in the `id` field of a connection.

func (*Client) DeleteDomain

func (c *Client) DeleteDomain(ctx context.Context, domainID string) error

DeleteDomain delete Domain.

Required privileges: sso-domains:delete. The published spec declares none for this operation; these are the capabilities the gateway's own authorization policy enforces. See Privileges in this package for the provenance.

Parameters:

  • domainID: Jamf-assigned identifier of the domain, as returned in the `id` field of a domain. Treat it as an opaque string: it is currently a decimal number, and a value that is not one is rejected with `400`.

func (*Client) GetConnection

func (c *Client) GetConnection(ctx context.Context, connectionID string) (*Connection, error)

GetConnection get Connection.

Required privileges: sso-connections:read. The published spec declares none for this operation; these are the capabilities the gateway's own authorization policy enforces. See Privileges in this package for the provenance.

Parameters:

  • connectionID: Identifier of the connection, as returned in the `id` field of a connection.

func (*Client) GetDistributorConfiguration

func (c *Client) GetDistributorConfiguration(ctx context.Context) (*DistributorConfiguration, error)

GetDistributorConfiguration get Distributor Configuration.

Required privileges: distributor-actions:read. The published spec declares none for this operation; these are the capabilities the gateway's own authorization policy enforces. See Privileges in this package for the provenance.

func (*Client) GetDistributorPurchaseOrder

func (c *Client) GetDistributorPurchaseOrder(ctx context.Context, jamfPoNumber string) (*DistributorPurchaseOrder, error)

GetDistributorPurchaseOrder get Distributor Purchase Order.

Required privileges: distributor-actions:read. The published spec declares none for this operation; these are the capabilities the gateway's own authorization policy enforces. See Privileges in this package for the provenance.

Parameters:

  • jamfPoNumber: Jamf-assigned purchase order number, as returned in the `jamfPoNumber` field of a purchase order. This is not the distributor's own `poNumber`.

func (*Client) GetDistributorQuote

func (c *Client) GetDistributorQuote(ctx context.Context, quoteNumber string) (*DistributorQuote, error)

GetDistributorQuote get Distributor Quote.

Required privileges: distributor-actions:read. The published spec declares none for this operation; these are the capabilities the gateway's own authorization policy enforces. See Privileges in this package for the provenance.

Parameters:

  • quoteNumber: Jamf-assigned quote number, as returned in the `quoteNumber` field of a quote.

func (*Client) GetDomainAllocation

func (c *Client) GetDomainAllocation(ctx context.Context, domain string) (*DomainAllocation, error)

GetDomainAllocation get Domain Allocation.

Required privileges: sso-domains:read. The published spec declares none for this operation; these are the capabilities the gateway's own authorization policy enforces. See Privileges in this package for the provenance.

Parameters:

  • domain: The domain name itself, as returned in the `domain` field of a domain. Domains have no separate opaque identifier for allocation lookups.

func (*Client) ListConnections

func (c *Client) ListConnections(ctx context.Context) ([]ConnectionSummary, error)

ListConnections list Connections.

Required privileges: sso-connections:read. The published spec declares none for this operation; these are the capabilities the gateway's own authorization policy enforces. See Privileges in this package for the provenance.

func (*Client) ListDealRegistrations

func (c *Client) ListDealRegistrations(ctx context.Context) ([]DealRegistration, error)

ListDealRegistrations list Deal Registrations.

Required privileges: deal-registration:read. The published spec declares none for this operation; these are the capabilities the gateway's own authorization policy enforces. See Privileges in this package for the provenance.

func (*Client) ListDomains

func (c *Client) ListDomains(ctx context.Context) ([]Domain, error)

ListDomains list Domains.

Required privileges: sso-domains:read. The published spec declares none for this operation; these are the capabilities the gateway's own authorization policy enforces. See Privileges in this package for the provenance.

func (*Client) ListLicenses

func (c *Client) ListLicenses(ctx context.Context) ([]License, error)

ListLicenses list Licenses.

Required privileges: licensing:read. The published spec declares none for this operation; these are the capabilities the gateway's own authorization policy enforces. See Privileges in this package for the provenance.

func (*Client) UpdateConnection

func (c *Client) UpdateConnection(ctx context.Context, connectionID string, request *ConnectionRequest) (*Connection, error)

UpdateConnection update Connection.

Required privileges: sso-connections:update. The published spec declares none for this operation; these are the capabilities the gateway's own authorization policy enforces. See Privileges in this package for the provenance.

Parameters:

  • connectionID: Identifier of the connection, as returned in the `id` field of a connection.

func (*Client) UpdateDistributorConfiguration

func (c *Client) UpdateDistributorConfiguration(ctx context.Context, request *DistributorConfiguration) error

UpdateDistributorConfiguration update Distributor Configuration.

Required privileges: distributor-actions:update. The published spec declares none for this operation; these are the capabilities the gateway's own authorization policy enforces. See Privileges in this package for the provenance.

func (*Client) ValidateDistributorPurchaseOrder

func (c *Client) ValidateDistributorPurchaseOrder(ctx context.Context, request *DistributorPurchaseOrder) (*PurchaseOrderValidationResult, error)

ValidateDistributorPurchaseOrder validate Distributor Purchase Order.

Required privileges: distributor-actions:update. The published spec declares none for this operation; these are the capabilities the gateway's own authorization policy enforces. See Privileges in this package for the provenance.

func (*Client) VerifyDomain

func (c *Client) VerifyDomain(ctx context.Context, domainID string) (*Domain, error)

VerifyDomain verify Domain.

Required privileges: sso-domains:update. The published spec declares none for this operation; these are the capabilities the gateway's own authorization policy enforces. See Privileges in this package for the provenance.

Parameters:

  • domainID: Jamf-assigned identifier of the domain, as returned in the `id` field of a domain. Treat it as an opaque string: it is currently a decimal number, and a value that is not one is rejected with `400`.

type Connection

type Connection struct {
	// Whether the signing-in user's email address is forwarded to the provider as a login hint.
	AliasLoginHintToIdp bool `json:"aliasLoginHintToIdp"`
	// JSON document, as a string, mapping provider claims onto Jamf user attributes. Null when the
	// provider's default mapping is used.
	AttributeMap *string `json:"attributeMap,omitempty"`
	// Entra-specific settings. Present only when `type` is `WAAD`.
	AzureOptions *EntraOptions `json:"azureOptions,omitempty"`
	// Client identifier of the application registered with the provider. Null for a connection using Entra
	// admin consent, which has no client of its own.
	ClientID *string `json:"clientId,omitempty"`
	// Whether the connection authenticates through Entra admin consent rather than a client registered by
	// the administrator. Managed by Jamf; `clientId` is null when true.
	ConsentFlow bool `json:"consentFlow"`
	// Claim the username is read from, when it is not the standard one.
	CustomUsernameClaimName *string `json:"customUsernameClaimName,omitempty"`
	// Verified domains the connection signs users in for.
	Domains []string `json:"domains"`
	// Whether the connection was created by Jamf's guided setup rather than configured directly.
	EasyConfig bool `json:"easyConfig"`
	// Google Workspace-specific settings. Present only when `type` is `GOOGLE_APPS`.
	GoogleOptions *GoogleOptions `json:"googleOptions,omitempty"`
	// Pattern limiting which provider groups are passed through to Jamf.
	GroupNameFilter *string `json:"groupNameFilter,omitempty"`
	// Identifier of the connection.
	ID string `json:"id"`
	// Display name of the connection.
	Name string `json:"name"`
	// Generic OIDC endpoints. Present only when `type` is `OIDC`.
	OidcOptions *OidcOptions `json:"oidcOptions,omitempty"`
	// Okta-specific settings. Present only when `type` is `OKTA`.
	OktaOptions *OktaOptions `json:"oktaOptions,omitempty"`
	// Proof Key for Code Exchange method used with the provider.
	PkceAuthType *PkceAuthType `json:"pkceAuthType,omitempty"`
	// Region the connection lives in.
	Region *Region `json:"region,omitempty"`
	// Space-separated OAuth scopes requested from the provider. Null for types that do not use
	// configurable scopes.
	Scopes *string `json:"scopes,omitempty"`
	// Whether a nonce is sent on the authentication request.
	SendNonce bool `json:"sendNonce"`
	// Session lifetime limits for users signing in through this connection. Null when the Jamf defaults
	// apply.
	SessionInfo *SessionInfo `json:"sessionInfo,omitempty"`
	// Whether the user's profile attributes are refreshed from the provider on every sign-in.
	SyncUserProfileAttributesAtLogin bool `json:"syncUserProfileAttributesAtLogin"`
	// How Jamf authenticates to the provider's token endpoint.
	TokenEndpointAuthMethod *TokenEndpointAuthMethod `json:"tokenEndpointAuthMethod,omitempty"`
	// Provider type of the connection.
	Type *ConnectionType `json:"type,omitempty"`
	// Domain appended to a bare username from the provider to form the user's email address.
	UsernameDomain *string `json:"usernameDomain,omitempty"`
}

Connection A connection as returned by a read. Client secrets are never included. The provider settings appear in the options object matching `type`; the others are null.

type ConnectionRequest

type ConnectionRequest struct {
	// Provider settings, in the shape matching `connectionType`.
	Connection ConnectionRequestConnection `json:"connection"`
	// Provider type, which selects the settings expected in `connection`.
	ConnectionType ConnectionType `json:"connectionType"`
	// Verified domains the connection signs users in for. Every domain must already be verified for the
	// organization.
	Domains []string `json:"domains"`
	// Products scoped by environment rather than by tenant, if any. Omit unless a product requires it.
	EnabledEnvironments *[]EnabledEnvironment `json:"enabledEnvironments,omitempty"`
	// Products, and the tenants of those products, the connection is enabled for. Send an empty array to
	// enable the connection for no tenant-scoped product.
	EnabledProducts []EnabledProduct `json:"enabledProducts"`
}

ConnectionRequest A connection to create or replace, together with the domains and products it serves.

type ConnectionRequestConnection

type ConnectionRequestConnection struct {
	OidcConnectionSettings   *OidcConnectionSettings   `json:"-"`
	EntraConnectionSettings  *EntraConnectionSettings  `json:"-"`
	OktaConnectionSettings   *OktaConnectionSettings   `json:"-"`
	GoogleConnectionSettings *GoogleConnectionSettings `json:"-"`
	// Raw holds the payload exactly as it arrived. Decoding cannot choose a
	// variant — the spec declares no discriminator, so nothing inside the
	// payload names one — so UnmarshalJSON stores the bytes here and leaves
	// every variant pointer nil. Decode it into the variant whichever sibling
	// field selects.
	Raw json.RawMessage `json:"-"`
}

ConnectionRequestConnection Provider settings, in the shape matching `connectionType`.

Set exactly one variant pointer. The spec declares no discriminator, so nothing here can check the choice against the sibling field that selects it; marshaling more than one is an error, and marshaling none emits null.

func (ConnectionRequestConnection) MarshalJSON

func (u ConnectionRequestConnection) MarshalJSON() ([]byte, error)

MarshalJSON emits the one variant that is set.

More than one is an error rather than an arbitrary pick between them: the wire has room for exactly one, and silently dropping the rest is how a caller ships a body it did not write. With none set it emits Raw, or JSON null when Raw is empty too — the zero value has to stay marshalable, since it is what the enclosing request carries until the caller fills it in, and null is what the server rejects with a message naming the field.

func (*ConnectionRequestConnection) UnmarshalJSON

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

UnmarshalJSON preserves the payload in Raw. See that field's comment for why it does not populate a variant.

type ConnectionSummary

type ConnectionSummary struct {
	// Verified domains the connection signs users in for.
	Domains []string `json:"domains"`
	// Whether the connection was created by Jamf's guided setup rather than configured directly.
	EasyConfig bool `json:"easyConfig"`
	// Jamf products the connection is enabled for.
	EnabledApplications []Product `json:"enabledApplications"`
	// Identifier of the connection.
	ID string `json:"id"`
	// Display name of the connection.
	Name string `json:"name"`
	// Region the connection lives in.
	Region *Region `json:"region,omitempty"`
	// Whether the user's profile attributes are refreshed from the provider on every sign-in.
	SyncUserProfileAttributesAtLogin bool `json:"syncUserProfileAttributesAtLogin"`
	// Relative path to the Google Workspace admin consent request for the connection. Null for every type
	// other than `GOOGLE_APPS`, and for Google connections that need no consent.
	TicketURL *string `json:"ticketUrl,omitempty"`
	// How Jamf authenticates to the provider's token endpoint.
	TokenEndpointAuthMethod *TokenEndpointAuthMethod `json:"tokenEndpointAuthMethod,omitempty"`
	// Provider type of the connection.
	Type *ConnectionType `json:"type,omitempty"`
}

ConnectionSummary A connection as it appears in a list, without the provider settings. Read a single connection for those.

type ConnectionSummaryList

type ConnectionSummaryList struct {
	// The connections enabled for the organization.
	Results []ConnectionSummary `json:"results"`
	// Number of connections in `results`.
	TotalCount int `json:"totalCount"`
}

ConnectionSummaryList The connections enabled for the organization.

type ConnectionType

type ConnectionType = string

ConnectionType represents a connection type value.

const (
	ConnectionTypeOidc       ConnectionType = "OIDC"
	ConnectionTypeWaad       ConnectionType = "WAAD"
	ConnectionTypeOkta       ConnectionType = "OKTA"
	ConnectionTypeGoogleApps ConnectionType = "GOOGLE_APPS"
)

ConnectionType values accepted by the Jamf API. The alias above is a string, so these constants pass to any parameter or field declared as a plain string.

func ConnectionTypeValues

func ConnectionTypeValues() []ConnectionType

ConnectionTypeValues returns every value the Jamf API accepts for ConnectionType, in the order the spec declares them. Returns a fresh slice per call, so no caller can corrupt the set for the rest of the process — which a package level var would allow. Suits attribute validation (Terraform's stringvalidator.OneOf, say) and anything that needs to enumerate the set rather than name one member.

type DealRegistration

type DealRegistration struct {
	// Address of the prospective end customer.
	Address *DealRegistrationAddress `json:"address,omitempty"`
	// Market segment of the prospective end customer.
	BusinessType *BusinessType `json:"businessType,omitempty"`
	// Email address of the contact at the prospective end customer.
	Email string `json:"email"`
	// Date the registration expires. Null while the registration is pending, since an expiry is set on
	// approval.
	ExpirationDate *time.Time `json:"expirationDate,omitempty"`
	// Given name of the contact at the prospective end customer.
	FirstName string `json:"firstName"`
	// Family name of the contact at the prospective end customer.
	LastName string `json:"lastName"`
	// Name of the prospective end customer organization.
	OrganizationName string `json:"organizationName"`
	// Identifier Jamf assigned to the deal registration.
	PartnerRegistrationID string `json:"partnerRegistrationId"`
	// Telephone number of the contact, as submitted.
	Phone *string `json:"phone,omitempty"`
	// Jamf products the prospective end customer is interested in.
	ProductInterests *[]string `json:"productInterests,omitempty"`
	// Current status of the deal registration.
	RegistrationStatus *DealRegistrationStatus `json:"registrationStatus,omitempty"`
	// Website of the prospective end customer organization.
	Website *string `json:"website,omitempty"`
}

DealRegistration A deal registration submitted by a reseller partner against a prospective end customer.

type DealRegistrationAddress

type DealRegistrationAddress struct {
	// First line of the street address.
	AddressLine1 *string `json:"addressLine1,omitempty"`
	// Second line of the street address, such as a suite or unit.
	AddressLine2 *string `json:"addressLine2,omitempty"`
	// City or locality.
	City *string `json:"city,omitempty"`
	// Country name.
	Country *string `json:"country,omitempty"`
	// Postal or ZIP code.
	PostalCode *string `json:"postalCode,omitempty"`
	// State, province, or region.
	StateProvince *string `json:"stateProvince,omitempty"`
}

DealRegistrationAddress Address of a prospective end customer on a deal registration.

type DealRegistrationList

type DealRegistrationList struct {
	// The deal registrations submitted by the partner organization.
	Results []DealRegistration `json:"results"`
	// Number of deal registrations in `results`.
	TotalCount int `json:"totalCount"`
}

DealRegistrationList The deal registrations submitted by the partner organization.

type DealRegistrationStatus

type DealRegistrationStatus = string

DealRegistrationStatus represents a deal registration status value.

const (
	DealRegistrationStatusPending  DealRegistrationStatus = "PENDING"
	DealRegistrationStatusDenied   DealRegistrationStatus = "DENIED"
	DealRegistrationStatusApproved DealRegistrationStatus = "APPROVED"
	DealRegistrationStatusExpired  DealRegistrationStatus = "EXPIRED"
)

DealRegistrationStatus values accepted by the Jamf API. The alias above is a string, so these constants pass to any parameter or field declared as a plain string.

func DealRegistrationStatusValues

func DealRegistrationStatusValues() []DealRegistrationStatus

DealRegistrationStatusValues returns every value the Jamf API accepts for DealRegistrationStatus, in the order the spec declares them. Returns a fresh slice per call, so no caller can corrupt the set for the rest of the process — which a package level var would allow. Suits attribute validation (Terraform's stringvalidator.OneOf, say) and anything that needs to enumerate the set rather than name one member.

type DistributorAddress

type DistributorAddress struct {
	// City or locality.
	City *string `json:"city,omitempty"`
	// Full country name.
	Country *string `json:"country,omitempty"`
	// ISO 3166-1 alpha-2 country code.
	CountryCode *string `json:"countryCode,omitempty"`
	// First line of the street address.
	Line1 *string `json:"line1,omitempty"`
	// Second line of the street address, such as a suite or unit.
	Line2 *string `json:"line2,omitempty"`
	// Third line of the street address, where one is used.
	Line3 *string `json:"line3,omitempty"`
	// Fourth line of the street address, where one is used.
	Line4 *string `json:"line4,omitempty"`
	// Postal or ZIP code.
	PostalCode *string `json:"postalCode,omitempty"`
	// Full name of the state, province, or region.
	StateProvince *string `json:"stateProvince,omitempty"`
	// Abbreviated code for the state, province, or region.
	StateProvinceCode *string `json:"stateProvinceCode,omitempty"`
}

DistributorAddress A billing or shipping address on a distributor quote or purchase order.

type DistributorConfiguration

type DistributorConfiguration struct {
	// Details Jamf maintains about the distributor. Read-only; ignored if supplied on update. Null when
	// the distributor platform holds no Jamf-maintained details for the organization.
	JamfInfo *DistributorJamfInfo `json:"jamfInfo,omitempty"`
	// How the distributor is permitted to submit purchase orders. Values are human-readable phrases and
	// may contain spaces, such as `API only`, `Email only`, or `API and email`. Null when the distributor
	// platform has no submission permission recorded.
	PoSubmissionPermission *string `json:"poSubmissionPermission,omitempty"`
	// Webhook delivery settings for events raised on the distributor's purchase orders. Null when no
	// webhook has been configured.
	Webhook *DistributorWebhook `json:"webhook,omitempty"`
}

DistributorConfiguration Integration configuration for a distributor organization: how it is permitted to submit purchase orders and where Jamf delivers its webhooks.

type DistributorJamfInfo

type DistributorJamfInfo struct {
	// Registered name of the distributor.
	DistributorName *string `json:"distributorName,omitempty"`
	// CIDR ranges that API requests from the distributor are permitted to originate from.
	OriginCidr *[]string `json:"originCidr,omitempty"`
}

DistributorJamfInfo Details Jamf maintains about a distributor. Read-only.

type DistributorPurchaseOrder

type DistributorPurchaseOrder struct {
	// Address the order is billed to. Defaults to the quote's billing address when omitted.
	BillingAddress *DistributorAddress `json:"billingAddress,omitempty"`
	// When Jamf received the purchase order. Assigned by Jamf; ignored on submission.
	CreatedOn *time.Time `json:"createdOn,omitempty"`
	// ISO 4217 currency code that `totalAmount` and all line amounts are denominated in. Must match the
	// quote.
	CurrencyCode *string `json:"currencyCode,omitempty"`
	// Sales order Jamf raised from this purchase order. Null until the purchase order has been processed.
	// Assigned by Jamf; ignored on submission.
	JamfOrderNumber *string `json:"jamfOrderNumber,omitempty"`
	// Purchase order number Jamf assigned during processing. Use it to read the purchase order back.
	// Assigned by Jamf; ignored on submission.
	JamfPoNumber *string `json:"jamfPoNumber,omitempty"`
	// When the purchase order last changed. Assigned by Jamf; ignored on submission.
	LastModifiedOn *time.Time `json:"lastModifiedOn,omitempty"`
	// Jamf legal entity contracting on the order. Taken from the quote; ignored on submission.
	LegalEntity *string `json:"legalEntity,omitempty"`
	// Line items on the purchase order.
	Lines *[]DistributorPurchaseOrderLine `json:"lines,omitempty"`
	// Order reference within the distributor platform. Assigned during processing; ignored on submission.
	OrderNumber *string `json:"orderNumber,omitempty"`
	// Payment terms that apply to the order.
	PaymentTerms *string `json:"paymentTerms,omitempty"`
	// Date the distributor raised the purchase order.
	PoDate *string `json:"poDate,omitempty"`
	// The distributor's own purchase order number.
	PoNumber *string `json:"poNumber,omitempty"`
	// Quote this purchase order is raised against, as returned by `GET /distributor/quotes/{quoteNumber}`.
	QuoteNumber *string `json:"quoteNumber,omitempty"`
	// Address the order ships to. Defaults to the quote's shipping address when omitted.
	ShippingAddress *DistributorAddress `json:"shippingAddress,omitempty"`
	// Processing status of the purchase order. Assigned by Jamf; ignored on submission.
	Status *string `json:"status,omitempty"`
	// Total value of the purchase order in `currencyCode`. Validated against the quote total.
	TotalAmount *float64 `json:"totalAmount,omitempty"`
}

DistributorPurchaseOrder A distributor purchase order raised against a quote. The schema is shared by requests and responses. On submission, supply the quote being ordered against, the distributor's own purchase order details, and the lines; the Jamf-assigned fields (`jamfPoNumber`, `jamfOrderNumber`, `orderNumber`, `status`, `createdOn`, `lastModifiedOn`, `legalEntity`) are populated by Jamf during processing and are ignored if supplied.

type DistributorPurchaseOrderLine

type DistributorPurchaseOrderLine struct {
	// Description of the ordered product.
	Description *string `json:"description,omitempty"`
	// Value of this line in the purchase order's `currencyCode`.
	LineAmount *float64 `json:"lineAmount,omitempty"`
	// Number of units ordered.
	Quantity *int `json:"quantity,omitempty"`
	// Stock-keeping unit being ordered. Must appear on the quote.
	Sku *string `json:"sku,omitempty"`
}

DistributorPurchaseOrderLine A single line item on a distributor purchase order.

type DistributorQuote

type DistributorQuote struct {
	// Address the resulting order is billed to.
	BillingAddress *DistributorAddress `json:"billingAddress,omitempty"`
	// How often the resulting subscription is billed.
	BillingFrequency *string `json:"billingFrequency,omitempty"`
	// When the quote was created.
	CreatedOn *time.Time `json:"createdOn,omitempty"`
	// ISO 4217 currency code that `totalAmount` and all line amounts are denominated in.
	CurrencyCode string `json:"currencyCode"`
	// Date after which the quote can no longer be ordered against.
	ExpiresOn *string `json:"expiresOn,omitempty"`
	// When the quote was last changed.
	LastModifiedOn *time.Time `json:"lastModifiedOn,omitempty"`
	// Jamf legal entity that will contract on the resulting order.
	LegalEntity *string `json:"legalEntity,omitempty"`
	// Line items on the quote.
	Lines *[]DistributorQuoteLine `json:"lines,omitempty"`
	// Payment terms that apply to orders placed against the quote.
	PaymentTerms *string `json:"paymentTerms,omitempty"`
	// Jamf-assigned quote number. Reference this when validating or submitting a purchase order against
	// the quote.
	QuoteNumber string `json:"quoteNumber"`
	// Address the resulting order ships to.
	ShippingAddress *DistributorAddress `json:"shippingAddress,omitempty"`
	// Status of the quote in the distributor platform, such as whether it is still in draft or has been
	// approved for ordering.
	Status *string `json:"status,omitempty"`
	// Total value of the quote in `currencyCode`, after all discounts.
	TotalAmount *float64 `json:"totalAmount,omitempty"`
}

DistributorQuote A quote issued to a distributor, priced with the distributor's and partner's contracted discounts.

type DistributorQuoteLine

type DistributorQuoteLine struct {
	// Additional discount applied to this line, as a percentage, beyond the contracted partner and
	// distributor discounts.
	AdditionalDiscountPct *float64 `json:"additionalDiscountPct,omitempty"`
	// Description of the quoted product.
	Description *string `json:"description,omitempty"`
	// Distributor's contracted discount on this line, as a percentage.
	DistributorDiscountPct *float64 `json:"distributorDiscountPct,omitempty"`
	// Date the quoted term for this line ends.
	EndDate *string `json:"endDate,omitempty"`
	// Value of this line in the quote's `currencyCode`, after all discounts.
	LineAmount *float64 `json:"lineAmount,omitempty"`
	// Reseller partner's contracted discount on this line, as a percentage.
	PartnerDiscountPct *float64 `json:"partnerDiscountPct,omitempty"`
	// Fraction of a full term this line is priced for, used when the line is co-termed with an existing
	// subscription. `1` for a full term.
	ProrateMultiplier *float64 `json:"prorateMultiplier,omitempty"`
	// Number of units quoted.
	Quantity *int `json:"quantity,omitempty"`
	// Stock-keeping unit being quoted.
	Sku string `json:"sku"`
	// Date the quoted term for this line begins.
	StartDate *string `json:"startDate,omitempty"`
}

DistributorQuoteLine A single line item on a distributor quote.

type DistributorWebhook

type DistributorWebhook struct {
	// How the delivery is authenticated to the distributor's endpoint, such as a bearer token or a
	// signature header.
	AuthType *string `json:"authType,omitempty"`
	// Whether Jamf delivers webhooks to `url`. When false, the remaining settings are retained but no
	// deliveries are made.
	Enabled *bool `json:"enabled,omitempty"`
	// Name of the header the secret is sent in.
	SecretName *string `json:"secretName,omitempty"`
	// Secret used to authenticate webhook deliveries. Write-only: supply it to set or rotate the secret,
	// and expect it to be omitted from every response.
	// Write-only. Servers MUST NOT return this field in responses; the SDK preserves it only so the caller
	// can supply a value on update.
	SecretValue *string `json:"secretValue,omitempty"`
	// Event types the distributor receives. An empty list means no events are delivered even when
	// `enabled` is true.
	SubscribedTo *[]string `json:"subscribedTo,omitempty"`
	// HTTPS endpoint Jamf delivers webhooks to. Required when `enabled` is true.
	URL *string `json:"url,omitempty"`
}

DistributorWebhook Webhook delivery settings for events raised on a distributor's purchase orders.

type Domain

type Domain struct {
	// Salesforce account the domain belongs to. For a shared domain this is the owning organization's
	// account, not the caller's.
	AccountID string `json:"accountId"`
	// Name of the Jamf Account user who added the domain. Null when the domain was added over this API,
	// which has no user.
	CreatedByName *string `json:"createdByName,omitempty"`
	// When the domain was claimed.
	CreatedDate *time.Time `json:"createdDate,omitempty"`
	// The DNS domain, lower-cased.
	Domain string `json:"domain"`
	// Current verification status of the domain.
	DomainStatus *DomainStatus `json:"domainStatus,omitempty"`
	// Jamf-assigned identifier of the domain. Use it to verify or delete the domain. Treat it as an opaque
	// string, even though it is currently a decimal number.
	ID *json.Number `json:"id,omitempty"`
	// When the domain last changed. Also the point the five-minute verification rate limit is measured
	// from.
	LastModifiedDate *time.Time `json:"lastModifiedDate,omitempty"`
	// When ownership was last successfully verified. Null for a domain that has never verified.
	LastVerificationDate *time.Time `json:"lastVerificationDate,omitempty"`
	// Whether the domain is owned by another organization and shared with this one. A shared domain can be
	// assigned to a connection but not changed or deleted.
	SharedDomain bool `json:"sharedDomain"`
	// When the current verification lapses, being 14 days after the last successful verification, or after
	// the domain was claimed if it has never verified. Jamf will attempt to automatically reverify the
	// domain on this date.
	VerificationExpirationDate *time.Time `json:"verificationExpirationDate,omitempty"`
	// Value to publish as a TXT record on the domain to prove ownership. Reissued if the domain is deleted
	// and claimed again.
	VerificationKey string `json:"verificationKey"`
	// Identifier of the verified parent domain this subdomain inherits its verification from, in the same
	// form as `id`. Null for a domain verified in its own right.
	VerifiedTldID *json.Number `json:"verifiedTldId,omitempty"`
}

Domain A DNS domain claimed by an organization, and the state of its ownership verification.

type DomainAllocation

type DomainAllocation struct {
	// Connections the domain is assigned to. Empty when the domain is verified but not yet in use by any
	// connection.
	Connections []DomainAllocationConnection `json:"connections"`
	// The domain the allocation is for.
	Domain string `json:"domain"`
	// Whether users on this domain can still sign in with a Jamf ID alongside the identity provider.
	JamfIDEnabled bool `json:"jamfIdEnabled"`
}

DomainAllocation The connections a domain is currently assigned to, and whether Jamf ID sign-in is enabled for it.

type DomainAllocationConnection

type DomainAllocationConnection struct {
	// Identifier of the connection, as accepted by `GET /connections/{connectionId}`.
	AssignedConnection string `json:"assignedConnection"`
	// Identifier of the organization the connection is assigned through. Managed by Jamf; informational
	// only. Note - different from the standard Jamf Org UUID and used only for identity operations.
	AssignedConnectionOrgID string `json:"assignedConnectionOrgId"`
	// Region the connection lives in.
	Region Region `json:"region"`
}

DomainAllocationConnection A connection a domain is assigned to. The spec calls the region property `authRegion`; the wire sends `region`, and the property is renamed here to match. Wire-verified 2026-09-14 on an organization tenant: every one of 5 domain allocations answered `region`, none answered `authRegion` or the `authZeroRegion` the spec carried before v2082, with `GET /licensing/v1/licenses` at 200 and a bogus path in the same namespace at 403 as controls in the same invocation. The spec itself is the evidence that this is an authoring slip rather than a per-schema distinction: Connection, ConnectionSummary and BaseConnectionSettings all name the identical Region type `region`, and the wire agrees with those three. Reported upstream; the rename panics the day the spec declares `region`, which is the notification to delete it.

type DomainList

type DomainList struct {
	// The domains claimed by, or shared with, the organization.
	Results []Domain `json:"results"`
	// Number of domains in `results`.
	TotalCount int `json:"totalCount"`
}

DomainList The domains claimed by, or shared with, the organization.

type DomainRequest

type DomainRequest struct {
	// The DNS domain to claim, such as `example.com`. Lower-cased on storage, so casing in the request is
	// not significant.
	Domain string `json:"domain"`
}

DomainRequest A request to claim a domain. Only `domain` is read; every other field on a domain is assigned by Jamf.

type DomainStatus

type DomainStatus = string

DomainStatus represents a domain status value.

const (
	DomainStatusPending          DomainStatus = "PENDING"
	DomainStatusVerified         DomainStatus = "VERIFIED"
	DomainStatusUnverified       DomainStatus = "UNVERIFIED"
	DomainStatusManuallyVerified DomainStatus = "MANUALLY_VERIFIED"
	DomainStatusMsVerified       DomainStatus = "MS_VERIFIED"
)

DomainStatus values accepted by the Jamf API. The alias above is a string, so these constants pass to any parameter or field declared as a plain string.

func DomainStatusValues

func DomainStatusValues() []DomainStatus

DomainStatusValues returns every value the Jamf API accepts for DomainStatus, in the order the spec declares them. Returns a fresh slice per call, so no caller can corrupt the set for the rest of the process — which a package level var would allow. Suits attribute validation (Terraform's stringvalidator.OneOf, say) and anything that needs to enumerate the set rather than name one member.

type EnabledEnvironment

type EnabledEnvironment struct {
	// Environments of the product the connection applies to.
	EnabledEnvironments []string `json:"enabledEnvironments"`
	// Set only when the environments belong to a managed account rather than the caller's own.
	ManagedAccountID *string `json:"managedAccountId,omitempty"`
	// The Jamf product.
	Product Product `json:"product"`
}

EnabledEnvironment A product the connection is enabled for, and the environments of that product it applies to. Only products scoped by environment use this.

type EnabledProduct

type EnabledProduct struct {
	// Tenants of the product the connection applies to. Empty for products scoped to the organization
	// rather than to a tenant, such as `ACCOUNT`.
	EnabledTenants []string `json:"enabledTenants"`
	// Set only when the tenants belong to a managed account rather than the caller's own, as a Jamf
	// partner managing a customer.
	ManagedAccountID *string `json:"managedAccountId,omitempty"`
	// The Jamf product.
	Product Product `json:"product"`
}

EnabledProduct A product the connection is enabled for, and the tenants of that product it applies to.

type EntraConnectionSettings

type EntraConnectionSettings struct {
	// Whether the signing-in user's email address is forwarded to the provider as a login hint, so they do
	// not have to type it twice.
	AliasLoginHintToIdp bool `json:"aliasLoginHintToIdp"`
	// JSON document, as a string, mapping provider claims onto Jamf user attributes. Null to use the
	// provider's default mapping.
	AttributeMap *string `json:"attributeMap,omitempty"`
	// Whether the user's basic profile is read from Entra on sign-in.
	BasicProfile bool `json:"basicProfile"`
	// Client identifier of the application registered with the provider.
	ClientID *string `json:"clientId,omitempty"`
	// Client secret of the application registered with the provider. Write-only: supply it to set or
	// rotate the secret, omit it on update to keep the stored value, and expect it to be omitted from
	// every response.
	// Write-only. Servers MUST NOT return this field in responses; the SDK preserves it only so the caller
	// can supply a value on update.
	ClientSecret *string `json:"clientSecret,omitempty"`
	// Claim to read the username from, when the provider does not put it in the standard claim.
	CustomUsernameClaimName *string `json:"customUsernameClaimName,omitempty"`
	// Primary domain of the Entra tenant.
	Domain string `json:"domain"`
	// Whether the Microsoft Graph users API is used to read attributes the token does not carry. Requires
	// the application to hold the corresponding Graph permission.
	EnableUsersApi bool `json:"enableUsersApi"`
	// Whether the user's extended profile attributes are read from Entra on sign-in.
	ExtendedProfile bool `json:"extendedProfile"`
	// Pattern limiting which provider groups are passed through to Jamf, for directories with more groups
	// than Jamf needs.
	GroupNameFilter *string `json:"groupNameFilter,omitempty"`
	// Whether the user's Entra group memberships are passed through to Jamf.
	Groups bool `json:"groups"`
	// Graph permission used to read groups. `GROUP_READ_ALL` is the narrower of the two and is the right
	// choice for new connections; `DEFAULT` is `DIRECTORY_READ_ALL`, kept for existing ones.
	GroupsScope *EntraGroupsScope `json:"groupsScope,omitempty"`
	// Microsoft identity platform version the connection targets.
	IdentityApi EntraIdentityApi `json:"identityApi"`
	// Maximum number of groups read for a user. Entra truncates group claims on large directories, so
	// raising this only helps up to what the provider will return.
	MaxGroups int `json:"maxGroups"`
	// Display name for the connection, shown to administrators in Jamf Account.
	Name string `json:"name"`
	// Whether groups inherited through nested group membership are included. Only meaningful when `groups`
	// is true.
	NestedGroups bool `json:"nestedGroups"`
	// Proof Key for Code Exchange method used with the provider. Defaults to `DISABLED`.
	PkceAuthType *PkceAuthType `json:"pkceAuthType,omitempty"`
	// Region to create the connection in. Cannot be changed once the connection exists.
	Region Region `json:"region"`
	// Whether a nonce is sent on the authentication request. Leave unset unless the provider requires it.
	SendNonce *bool `json:"sendNonce,omitempty"`
	// Session lifetime limits for users signing in through this connection. Null to use the Jamf defaults.
	SessionInfo *SessionInfo `json:"sessionInfo,omitempty"`
	// Whether email addresses from this provider are treated as already verified, so users are not asked
	// to confirm them again.
	SetEmailsVerified bool `json:"setEmailsVerified"`
	// Whether the user's profile attributes are refreshed from the provider on every sign-in. Defaults to
	// true.
	SyncUserProfileAttributesAtLogin *bool `json:"syncUserProfileAttributesAtLogin,omitempty"`
	// Domain identifying the Entra tenant to authenticate against. Usually the same as `domain`.
	TenantDomain string `json:"tenantDomain"`
	// How Jamf authenticates to the provider's token endpoint. Defaults to `CLIENT_SECRET_POST`.
	TokenEndpointAuthMethod *TokenEndpointAuthMethod `json:"tokenEndpointAuthMethod,omitempty"`
	// Whether the multi-tenant common endpoint is used instead of the tenant-specific one. Required for a
	// multi-tenant application, in which case `clientId` may be omitted.
	UseCommonEndpoint bool `json:"useCommonEndpoint"`
	// Whether WS-Federation is used instead of OIDC. Leave false unless the tenant requires it.
	UseWsfed bool `json:"useWsfed"`
	// Domain appended to a bare username from the provider to form the user's email address.
	UsernameDomain *string `json:"usernameDomain,omitempty"`
}

EntraConnectionSettings Settings for a Microsoft Entra ID connection (`connectionType: WAAD`).

type EntraExtendedOptions

type EntraExtendedOptions struct {
	// Whether the user's extended profile attributes are read from Entra.
	ExtendedProfile *bool `json:"extendedProfile,omitempty"`
	// Whether the user's Entra group memberships are passed through to Jamf.
	Groups *bool `json:"groups,omitempty"`
	// Whether groups inherited through nested group membership are included.
	NestedGroups *bool `json:"nestedGroups,omitempty"`
}

EntraExtendedOptions Entra group and profile options, which control what is read from the directory beyond the token's claims.

type EntraGroupsScope

type EntraGroupsScope = string

EntraGroupsScope represents a entra groups scope value.

const (
	EntraGroupsScopeGroupReadAll     EntraGroupsScope = "GROUP_READ_ALL"
	EntraGroupsScopeDirectoryReadAll EntraGroupsScope = "DIRECTORY_READ_ALL"
)

EntraGroupsScope values accepted by the Jamf API. The alias above is a string, so these constants pass to any parameter or field declared as a plain string.

func EntraGroupsScopeValues

func EntraGroupsScopeValues() []EntraGroupsScope

EntraGroupsScopeValues returns every value the Jamf API accepts for EntraGroupsScope, in the order the spec declares them. Returns a fresh slice per call, so no caller can corrupt the set for the rest of the process — which a package level var would allow. Suits attribute validation (Terraform's stringvalidator.OneOf, say) and anything that needs to enumerate the set rather than name one member.

type EntraIdentityApi

type EntraIdentityApi = string

EntraIdentityApi represents a entra identity api value.

const (
	EntraIdentityApiMicrosoftIdentityPlatformV2 EntraIdentityApi = "MICROSOFT_IDENTITY_PLATFORM_V2"
	EntraIdentityApiAzureActiveDirectoryV1      EntraIdentityApi = "AZURE_ACTIVE_DIRECTORY_V1"
)

EntraIdentityApi values accepted by the Jamf API. The alias above is a string, so these constants pass to any parameter or field declared as a plain string.

func EntraIdentityApiValues

func EntraIdentityApiValues() []EntraIdentityApi

EntraIdentityApiValues returns every value the Jamf API accepts for EntraIdentityApi, in the order the spec declares them. Returns a fresh slice per call, so no caller can corrupt the set for the rest of the process — which a package level var would allow. Suits attribute validation (Terraform's stringvalidator.OneOf, say) and anything that needs to enumerate the set rather than name one member.

type EntraOptions

type EntraOptions struct {
	// Whether the user's basic profile is read from Entra on sign-in.
	BasicProfile *bool `json:"basicProfile,omitempty"`
	// Primary domain of the Entra tenant.
	Domain *string `json:"domain,omitempty"`
	// Whether the Microsoft Graph users API is used to read attributes the token does not carry.
	EnableUsersApi *bool `json:"enableUsersApi,omitempty"`
	// Group and profile options read from the directory.
	ExtOptions *EntraExtendedOptions `json:"extOptions,omitempty"`
	// Graph permission used to read groups.
	GroupsScope *EntraGroupsScope `json:"groupsScope,omitempty"`
	// Microsoft identity platform version the connection targets.
	IdentityApi *EntraIdentityApi `json:"identityApi,omitempty"`
	// Maximum number of groups read for a user.
	MaxGroups *int `json:"maxGroups,omitempty"`
	// Whether email addresses from this provider are treated as already verified.
	SetEmailsVerified *bool `json:"setEmailsVerified,omitempty"`
	// Domain identifying the Entra tenant authenticated against.
	TenantDomain *string `json:"tenantDomain,omitempty"`
	// Whether the multi-tenant common endpoint is used instead of the tenant-specific one.
	UseCommonEndpoint *bool `json:"useCommonEndpoint,omitempty"`
	// Whether WS-Federation is used instead of OIDC.
	UseWsfed *bool `json:"useWsfed,omitempty"`
}

EntraOptions Entra-specific settings of a connection.

type GoogleConnectionSettings

type GoogleConnectionSettings struct {
	// Whether the signing-in user's email address is forwarded to the provider as a login hint, so they do
	// not have to type it twice.
	AliasLoginHintToIdp bool `json:"aliasLoginHintToIdp"`
	// Whether the Google Directory users API is used to read attributes the token does not carry.
	ApiEnableUsers bool `json:"apiEnableUsers"`
	// JSON document, as a string, mapping provider claims onto Jamf user attributes. Null to use the
	// provider's default mapping.
	AttributeMap *string `json:"attributeMap,omitempty"`
	// Client identifier of the application registered with the provider.
	ClientID *string `json:"clientId,omitempty"`
	// Client secret of the application registered with the provider. Write-only: supply it to set or
	// rotate the secret, omit it on update to keep the stored value, and expect it to be omitted from
	// every response.
	// Write-only. Servers MUST NOT return this field in responses; the SDK preserves it only so the caller
	// can supply a value on update.
	ClientSecret *string `json:"clientSecret,omitempty"`
	// Claim to read the username from, when the provider does not put it in the standard claim.
	CustomUsernameClaimName *string `json:"customUsernameClaimName,omitempty"`
	// Primary domain of the Google Workspace account.
	Domain string `json:"domain"`
	// Whether groups are read through the Google Directory API rather than from the token, which returns
	// groups the token omits. Defaults to false.
	ExtendedGroups *bool `json:"extendedGroups,omitempty"`
	// Pattern limiting which provider groups are passed through to Jamf, for directories with more groups
	// than Jamf needs.
	GroupNameFilter *string `json:"groupNameFilter,omitempty"`
	// Whether the user's Google Workspace group memberships are passed through to Jamf.
	Groups bool `json:"groups"`
	// Display name for the connection, shown to administrators in Jamf Account.
	Name string `json:"name"`
	// Proof Key for Code Exchange method used with the provider. Defaults to `DISABLED`.
	PkceAuthType *PkceAuthType `json:"pkceAuthType,omitempty"`
	// Region to create the connection in. Cannot be changed once the connection exists.
	Region Region `json:"region"`
	// Space-separated OAuth scopes requested from Google. Null to use the defaults Jamf requests.
	Scopes *string `json:"scopes,omitempty"`
	// Whether a nonce is sent on the authentication request. Leave unset unless the provider requires it.
	SendNonce *bool `json:"sendNonce,omitempty"`
	// Session lifetime limits for users signing in through this connection. Null to use the Jamf defaults.
	SessionInfo *SessionInfo `json:"sessionInfo,omitempty"`
	// Whether the user's profile attributes are refreshed from the provider on every sign-in. Defaults to
	// true.
	SyncUserProfileAttributesAtLogin *bool `json:"syncUserProfileAttributesAtLogin,omitempty"`
	// How Jamf authenticates to the provider's token endpoint. Defaults to `CLIENT_SECRET_POST`.
	TokenEndpointAuthMethod *TokenEndpointAuthMethod `json:"tokenEndpointAuthMethod,omitempty"`
	// Domain appended to a bare username from the provider to form the user's email address.
	UsernameDomain *string `json:"usernameDomain,omitempty"`
}

GoogleConnectionSettings Settings for a Google Workspace connection (`connectionType: GOOGLE_APPS`).

type GoogleOptions

type GoogleOptions struct {
	// Primary domain of the Google Workspace account.
	Domain *string `json:"domain,omitempty"`
	// Whether the Google Directory users API is used to read attributes the token does not carry.
	EnableUsersApi *bool `json:"enableUsersApi,omitempty"`
	// Whether the user's Google Workspace group memberships are passed through to Jamf.
	ExtGroups *bool `json:"extGroups,omitempty"`
	// Whether groups are read through the Google Directory API rather than from the token.
	ExtGroupsExtended *bool `json:"extGroupsExtended,omitempty"`
	// Relative path to the Google Workspace admin consent request for the connection. Null when no consent
	// is outstanding.
	TicketURL *string `json:"ticketUrl,omitempty"`
}

GoogleOptions Google Workspace-specific settings of a connection.

type License

type License struct {
	// Activation code for the licensed product, where the product uses one.
	ActivationCode *string `json:"activationCode,omitempty"`
	// Add-on classification. Populated only for add-on products whose type is computed by bundle
	// purchases; null otherwise.
	AddOnType *AddOnType `json:"addOnType,omitempty"`
	// Identifier of the license asset in Jamf systems.
	AssetID *string `json:"assetId,omitempty"`
	// Code of the bundle this license was sold under, when it was sold as part of a bundle.
	BundleProductCode *string `json:"bundleProductCode,omitempty"`
	// Identifier of the contact the license is registered against.
	ContactID *string `json:"contactId,omitempty"`
	// Date the license term ends.
	EndDate *time.Time `json:"endDate,omitempty"`
	// Commercial type of the license.
	LicenseType *LicenseType `json:"licenseType,omitempty"`
	// Name of the licensed product.
	ProductName *string `json:"productName,omitempty"`
	// Product family the `productTopLine` rolls up to. Derived from `productTopLine`; null when
	// `productTopLine` is null.
	ProductParent *ProductParent `json:"productParent,omitempty"`
	// Product top line the license belongs to. Null when the source record is not mapped to a top line.
	ProductTopLine *ProductTopLine `json:"productTopLine,omitempty"`
	// Number of seats purchased under this license. Zero when the source record specifies no seat count.
	PurchasedSeats int `json:"purchasedSeats"`
	// Date the license renews. Null when the source record carries no end date.
	RenewalDate *time.Time `json:"renewalDate,omitempty"`
	// Stock-keeping unit the license was sold under.
	Sku *string `json:"sku,omitempty"`
	// Date the license term begins.
	StartDate *time.Time `json:"startDate,omitempty"`
	// Display title of the license.
	Title string `json:"title"`
}

License A single license held by the organization.

type LicenseList

type LicenseList struct {
	// The licenses held by the organization.
	Results []License `json:"results"`
	// Number of licenses in `results`.
	TotalCount int `json:"totalCount"`
}

LicenseList The licenses held by the organization.

type LicenseType

type LicenseType = string

LicenseType represents a license type value.

const (
	LicenseTypeTrial             LicenseType = "TRIAL"
	LicenseTypeNfr               LicenseType = "NFR"
	LicenseTypeSandboxDev        LicenseType = "SANDBOX_DEV"
	LicenseTypeSubscription      LicenseType = "SUBSCRIPTION"
	LicenseTypeAnnualMaintenance LicenseType = "ANNUAL_MAINTENANCE"
	LicenseTypeLicense           LicenseType = "LICENSE"
	LicenseTypePrepaid           LicenseType = "PREPAID"
	LicenseTypeBeta              LicenseType = "BETA"
	LicenseTypeNa                LicenseType = "NA"
)

LicenseType values accepted by the Jamf API. The alias above is a string, so these constants pass to any parameter or field declared as a plain string.

func LicenseTypeValues

func LicenseTypeValues() []LicenseType

LicenseTypeValues returns every value the Jamf API accepts for LicenseType, in the order the spec declares them. Returns a fresh slice per call, so no caller can corrupt the set for the rest of the process — which a package level var would allow. Suits attribute validation (Terraform's stringvalidator.OneOf, say) and anything that needs to enumerate the set rather than name one member.

type OidcConnectionSettings

type OidcConnectionSettings struct {
	// Whether the signing-in user's email address is forwarded to the provider as a login hint, so they do
	// not have to type it twice.
	AliasLoginHintToIdp bool `json:"aliasLoginHintToIdp"`
	// JSON document, as a string, mapping provider claims onto Jamf user attributes. Null to use the
	// provider's default mapping.
	AttributeMap *string `json:"attributeMap,omitempty"`
	// Authorization endpoint users are redirected to.
	AuthorizationEndpoint string `json:"authorizationEndpoint"`
	// Client identifier of the application registered with the provider.
	ClientID *string `json:"clientId,omitempty"`
	// Client secret of the application registered with the provider. Write-only: supply it to set or
	// rotate the secret, omit it on update to keep the stored value, and expect it to be omitted from
	// every response.
	// Write-only. Servers MUST NOT return this field in responses; the SDK preserves it only so the caller
	// can supply a value on update.
	ClientSecret *string `json:"clientSecret,omitempty"`
	// Claim to read the username from, when the provider does not put it in the standard claim.
	CustomUsernameClaimName *string `json:"customUsernameClaimName,omitempty"`
	// Pattern limiting which provider groups are passed through to Jamf, for directories with more groups
	// than Jamf needs.
	GroupNameFilter *string `json:"groupNameFilter,omitempty"`
	// Issuer URL of the provider, as it appears in its tokens.
	IssuerURL string `json:"issuerUrl"`
	// JWKS endpoint the provider publishes its signing keys at.
	JwksUri string `json:"jwksUri"`
	// Display name for the connection, shown to administrators in Jamf Account.
	Name string `json:"name"`
	// Proof Key for Code Exchange method used with the provider. Defaults to `DISABLED`.
	PkceAuthType *PkceAuthType `json:"pkceAuthType,omitempty"`
	// Region to create the connection in. Cannot be changed once the connection exists.
	Region Region `json:"region"`
	// Space-separated OAuth scopes requested from the provider. Must include the scopes needed for the
	// profile attributes Jamf reads.
	Scopes string `json:"scopes"`
	// Whether a nonce is sent on the authentication request. Leave unset unless the provider requires it.
	SendNonce *bool `json:"sendNonce,omitempty"`
	// Session lifetime limits for users signing in through this connection. Null to use the Jamf defaults.
	SessionInfo *SessionInfo `json:"sessionInfo,omitempty"`
	// Whether the user's profile attributes are refreshed from the provider on every sign-in. Defaults to
	// true.
	SyncUserProfileAttributesAtLogin *bool `json:"syncUserProfileAttributesAtLogin,omitempty"`
	// Token endpoint the authorization code is exchanged at.
	TokenEndpoint string `json:"tokenEndpoint"`
	// How Jamf authenticates to the provider's token endpoint. Defaults to `CLIENT_SECRET_POST`.
	TokenEndpointAuthMethod *TokenEndpointAuthMethod `json:"tokenEndpointAuthMethod,omitempty"`
	// Userinfo endpoint profile attributes are read from. Null when the provider returns everything needed
	// in the ID token.
	UserInfoEndpoint *string `json:"userInfoEndpoint,omitempty"`
	// Domain appended to a bare username from the provider to form the user's email address.
	UsernameDomain *string `json:"usernameDomain,omitempty"`
}

OidcConnectionSettings Settings for a generic OIDC connection (`connectionType: OIDC`). Use this for any provider without a dedicated type.

type OidcOptions

type OidcOptions struct {
	// Authorization endpoint users are redirected to.
	AuthorizationEndpoint *string `json:"authorizationEndpoint,omitempty"`
	// Issuer URL of the provider, as it appears in its tokens.
	IssuerURL *string `json:"issuerUrl,omitempty"`
	// JWKS endpoint the provider publishes its signing keys at.
	JwksUri *string `json:"jwksUri,omitempty"`
	// Token endpoint the authorization code is exchanged at.
	TokenEndpoint *string `json:"tokenEndpoint,omitempty"`
	// Userinfo endpoint profile attributes are read from.
	UserInfoEndpoint *string `json:"userInfoEndpoint,omitempty"`
}

OidcOptions Endpoints of a generic OIDC connection.

type OktaConnectionSettings

type OktaConnectionSettings struct {
	// Whether the signing-in user's email address is forwarded to the provider as a login hint, so they do
	// not have to type it twice.
	AliasLoginHintToIdp bool `json:"aliasLoginHintToIdp"`
	// JSON document, as a string, mapping provider claims onto Jamf user attributes. Null to use the
	// provider's default mapping.
	AttributeMap *string `json:"attributeMap,omitempty"`
	// Client identifier of the application registered with the provider.
	ClientID *string `json:"clientId,omitempty"`
	// Client secret of the application registered with the provider. Write-only: supply it to set or
	// rotate the secret, omit it on update to keep the stored value, and expect it to be omitted from
	// every response.
	// Write-only. Servers MUST NOT return this field in responses; the SDK preserves it only so the caller
	// can supply a value on update.
	ClientSecret *string `json:"clientSecret,omitempty"`
	// Claim to read the username from, when the provider does not put it in the standard claim.
	CustomUsernameClaimName *string `json:"customUsernameClaimName,omitempty"`
	// Okta org domain, without a scheme.
	Domain string `json:"domain"`
	// Pattern limiting which provider groups are passed through to Jamf, for directories with more groups
	// than Jamf needs.
	GroupNameFilter *string `json:"groupNameFilter,omitempty"`
	// Display name for the connection, shown to administrators in Jamf Account.
	Name string `json:"name"`
	// Proof Key for Code Exchange method used with the provider. Defaults to `DISABLED`.
	PkceAuthType *PkceAuthType `json:"pkceAuthType,omitempty"`
	// Region to create the connection in. Cannot be changed once the connection exists.
	Region Region `json:"region"`
	// Space-separated OAuth scopes requested from Okta.
	Scopes string `json:"scopes"`
	// Whether a nonce is sent on the authentication request. Leave unset unless the provider requires it.
	SendNonce *bool `json:"sendNonce,omitempty"`
	// Session lifetime limits for users signing in through this connection. Null to use the Jamf defaults.
	SessionInfo *SessionInfo `json:"sessionInfo,omitempty"`
	// Whether the user's profile attributes are refreshed from the provider on every sign-in. Defaults to
	// true.
	SyncUserProfileAttributesAtLogin *bool `json:"syncUserProfileAttributesAtLogin,omitempty"`
	// How Jamf authenticates to the provider's token endpoint. Defaults to `CLIENT_SECRET_POST`.
	TokenEndpointAuthMethod *TokenEndpointAuthMethod `json:"tokenEndpointAuthMethod,omitempty"`
	// Domain appended to a bare username from the provider to form the user's email address.
	UsernameDomain *string `json:"usernameDomain,omitempty"`
}

OktaConnectionSettings Settings for an Okta connection (`connectionType: OKTA`). Native Okta connections are preferred over configuring Okta as generic OIDC.

type OktaOptions

type OktaOptions struct {
	// Authorization endpoint users are redirected to.
	AuthorizationEndpoint *string `json:"authorizationEndpoint,omitempty"`
	// Okta org domain, derived from the issuer URL.
	Domain *string `json:"domain,omitempty"`
	// Issuer URL of the Okta authorization server.
	IssuerURL *string `json:"issuerUrl,omitempty"`
	// JWKS endpoint Okta publishes its signing keys at.
	JwksUri *string `json:"jwksUri,omitempty"`
	// Token endpoint the authorization code is exchanged at.
	TokenEndpoint *string `json:"tokenEndpoint,omitempty"`
}

OktaOptions Okta-specific settings of a connection.

type PkceAuthType

type PkceAuthType = string

PkceAuthType represents a pkce auth type value.

const (
	PkceAuthTypePlain    PkceAuthType = "PLAIN"
	PkceAuthTypeS256     PkceAuthType = "S256"
	PkceAuthTypeAuto     PkceAuthType = "AUTO"
	PkceAuthTypeDisabled PkceAuthType = "DISABLED"
)

PkceAuthType values accepted by the Jamf API. The alias above is a string, so these constants pass to any parameter or field declared as a plain string.

func PkceAuthTypeValues

func PkceAuthTypeValues() []PkceAuthType

PkceAuthTypeValues returns every value the Jamf API accepts for PkceAuthType, in the order the spec declares them. Returns a fresh slice per call, so no caller can corrupt the set for the rest of the process — which a package level var would allow. Suits attribute validation (Terraform's stringvalidator.OneOf, say) and anything that needs to enumerate the set rather than name one member.

type Product

type Product = string

Product represents a product value.

const (
	ProductAccount       Product = "ACCOUNT"
	ProductPro           Product = "PRO"
	ProductProtect       Product = "PROTECT"
	ProductSchool        Product = "SCHOOL"
	ProductSecurityCloud Product = "SECURITY_CLOUD"
	ProductJetp          Product = "JETP"
	ProductRoutines      Product = "ROUTINES"
	ProductInsights      Product = "INSIGHTS"
	ProductElevate       Product = "ELEVATE"
)

Product values accepted by the Jamf API. The alias above is a string, so these constants pass to any parameter or field declared as a plain string.

func ProductValues

func ProductValues() []Product

ProductValues returns every value the Jamf API accepts for Product, in the order the spec declares them. Returns a fresh slice per call, so no caller can corrupt the set for the rest of the process — which a package level var would allow. Suits attribute validation (Terraform's stringvalidator.OneOf, say) and anything that needs to enumerate the set rather than name one member.

type ProductParent

type ProductParent = string

ProductParent represents a product parent value.

const (
	ProductParentPro            ProductParent = "PRO"
	ProductParentNow            ProductParent = "NOW"
	ProductParentConnect        ProductParent = "CONNECT"
	ProductParentProtect        ProductParent = "PROTECT"
	ProductParentSchool         ProductParent = "SCHOOL"
	ProductParentAddon          ProductParent = "ADDON"
	ProductParentSecurityCloud  ProductParent = "SECURITY_CLOUD"
	ProductParentBundles        ProductParent = "BUNDLES"
	ProductParentTraining       ProductParent = "TRAINING"
	ProductParentSupport        ProductParent = "SUPPORT"
	ProductParentOther          ProductParent = "OTHER"
	ProductParentJetp           ProductParent = "JETP"
	ProductParentCloud          ProductParent = "CLOUD"
	ProductParentHighCompliance ProductParent = "HIGH_COMPLIANCE"
	ProductParentServices       ProductParent = "SERVICES"
	ProductParentElevate        ProductParent = "ELEVATE"
	ProductParentRapidIdentity  ProductParent = "RAPID_IDENTITY"
)

ProductParent values accepted by the Jamf API. The alias above is a string, so these constants pass to any parameter or field declared as a plain string.

func ProductParentValues

func ProductParentValues() []ProductParent

ProductParentValues returns every value the Jamf API accepts for ProductParent, in the order the spec declares them. Returns a fresh slice per call, so no caller can corrupt the set for the rest of the process — which a package level var would allow. Suits attribute validation (Terraform's stringvalidator.OneOf, say) and anything that needs to enumerate the set rather than name one member.

type ProductTopLine

type ProductTopLine = string

ProductTopLine represents a product top line value.

const (
	ProductTopLineAppleUnlimited                ProductTopLine = "APPLE_UNLIMITED"
	ProductTopLineComplianceReporter            ProductTopLine = "COMPLIANCE_REPORTER"
	ProductTopLineDataCapping                   ProductTopLine = "DATA_CAPPING"
	ProductTopLineDeviceIdentity                ProductTopLine = "DEVICE_IDENTITY"
	ProductTopLineEducationEnhanced             ProductTopLine = "EDUCATION_ENHANCED"
	ProductTopLineEducationUltimate             ProductTopLine = "EDUCATION_ULTIMATE"
	ProductTopLineJamfAppPack                   ProductTopLine = "JAMF_APP_PACK"
	ProductTopLineJamfByod                      ProductTopLine = "JAMF_BYOD"
	ProductTopLineJamfConnect                   ProductTopLine = "JAMF_CONNECT"
	ProductTopLineJamfConnectBasic              ProductTopLine = "JAMF_CONNECT_BASIC"
	ProductTopLineJamfDataPolicy                ProductTopLine = "JAMF_DATA_POLICY"
	ProductTopLineJamfBusiness                  ProductTopLine = "JAMF_BUSINESS"
	ProductTopLineJamfEnterprise                ProductTopLine = "JAMF_ENTERPRISE"
	ProductTopLineJamfEvent                     ProductTopLine = "JAMF_EVENT"
	ProductTopLineJamfExecutiveThreatProtection ProductTopLine = "JAMF_EXECUTIVE_THREAT_PROTECTION"
	ProductTopLineJamfNow                       ProductTopLine = "JAMF_NOW"
	ProductTopLineJamfPrivateAccess             ProductTopLine = "JAMF_PRIVATE_ACCESS"
	ProductTopLineJamfPro                       ProductTopLine = "JAMF_PRO"
	ProductTopLineJamfProtect                   ProductTopLine = "JAMF_PROTECT"
	ProductTopLineJamfSafeInternet              ProductTopLine = "JAMF_SAFE_INTERNET"
	ProductTopLineJamfSchool                    ProductTopLine = "JAMF_SCHOOL"
	ProductTopLineJamfThreatDefense             ProductTopLine = "JAMF_THREAT_DEFENSE"
	ProductTopLineNetworkTrafficStream          ProductTopLine = "NETWORK_TRAFFIC_STREAM"
	ProductTopLineOther                         ProductTopLine = "OTHER"
	ProductTopLinePremiumCloud                  ProductTopLine = "PREMIUM_CLOUD"
	ProductTopLinePremiumSupport                ProductTopLine = "PREMIUM_SUPPORT"
	ProductTopLineService                       ProductTopLine = "SERVICE"
	ProductTopLineSolutionPartner               ProductTopLine = "SOLUTION_PARTNER"
	ProductTopLineTrainingAndCertifications     ProductTopLine = "TRAINING_AND_CERTIFICATIONS"
	ProductTopLineTrust                         ProductTopLine = "TRUST"
	ProductTopLineWorkflows                     ProductTopLine = "WORKFLOWS"
	ProductTopLineAddOn                         ProductTopLine = "ADD_ON"
	ProductTopLineBusiness                      ProductTopLine = "BUSINESS"
	ProductTopLineCarrierSecurity               ProductTopLine = "CARRIER_SECURITY"
	ProductTopLineSecurityCloud                 ProductTopLine = "SECURITY_CLOUD"
	ProductTopLineConnect                       ProductTopLine = "CONNECT"
	ProductTopLineCoursesAndTraining            ProductTopLine = "COURSES_AND_TRAINING"
	ProductTopLineEnterprise                    ProductTopLine = "ENTERPRISE"
	ProductTopLineEvent                         ProductTopLine = "EVENT"
	ProductTopLineExecutiveThreatProtection     ProductTopLine = "EXECUTIVE_THREAT_PROTECTION"
	ProductTopLineFundamentals                  ProductTopLine = "FUNDAMENTALS"
	ProductTopLineHealthcare                    ProductTopLine = "HEALTHCARE"
	ProductTopLineOnboardingAndImplementations  ProductTopLine = "ONBOARDING_AND_IMPLEMENTATIONS"
	ProductTopLinePaidPartnerships              ProductTopLine = "PAID_PARTNERSHIPS"
	ProductTopLinePro                           ProductTopLine = "PRO"
	ProductTopLineProServices                   ProductTopLine = "PRO_SERVICES"
	ProductTopLineProtect                       ProductTopLine = "PROTECT"
	ProductTopLineSchool                        ProductTopLine = "SCHOOL"
	ProductTopLineJamfInfrastructureManager     ProductTopLine = "JAMF_INFRASTRUCTURE_MANAGER"
	ProductTopLineComposer                      ProductTopLine = "COMPOSER"
	ProductTopLineJamfPkiProxy                  ProductTopLine = "JAMF_PKI_PROXY"
	ProductTopLineJamfProServerTools            ProductTopLine = "JAMF_PRO_SERVER_TOOLS"
	ProductTopLineAdCsConnector                 ProductTopLine = "AD_CS_CONNECTOR"
	ProductTopLineSccmPlugin                    ProductTopLine = "SCCM_PLUGIN"
	ProductTopLineSelfServicePlus               ProductTopLine = "SELF_SERVICE_PLUS"
	ProductTopLineSelfService                   ProductTopLine = "SELF_SERVICE"
	ProductTopLineJsde                          ProductTopLine = "JSDE"
	ProductTopLineMspToolkit                    ProductTopLine = "MSP_TOOLKIT"
	ProductTopLineElevate                       ProductTopLine = "ELEVATE"
	ProductTopLineRapidIdentity                 ProductTopLine = "RAPID_IDENTITY"
)

ProductTopLine values accepted by the Jamf API. The alias above is a string, so these constants pass to any parameter or field declared as a plain string.

func ProductTopLineValues

func ProductTopLineValues() []ProductTopLine

ProductTopLineValues returns every value the Jamf API accepts for ProductTopLine, in the order the spec declares them. Returns a fresh slice per call, so no caller can corrupt the set for the rest of the process — which a package level var would allow. Suits attribute validation (Terraform's stringvalidator.OneOf, say) and anything that needs to enumerate the set rather than name one member.

type PurchaseOrderValidationResult

type PurchaseOrderValidationResult struct {
	// Overall outcome, being the most severe outcome across all evaluated rules.
	Result *ValidationOutcome `json:"result,omitempty"`
	// Outcome of each validation rule that was evaluated.
	Rules *[]ValidationRule `json:"rules,omitempty"`
}

PurchaseOrderValidationResult Outcome of validating a distributor purchase order, with a rule-by-rule breakdown.

type Region

type Region = string

Region represents a region value.

const (
	RegionUs   Region = "US"
	RegionEu   Region = "EU"
	RegionAu   Region = "AU"
	RegionJp   Region = "JP"
	RegionRamp Region = "RAMP"
)

Region values accepted by the Jamf API. The alias above is a string, so these constants pass to any parameter or field declared as a plain string.

func RegionValues

func RegionValues() []Region

RegionValues returns every value the Jamf API accepts for Region, in the order the spec declares them. Returns a fresh slice per call, so no caller can corrupt the set for the rest of the process — which a package level var would allow. Suits attribute validation (Terraform's stringvalidator.OneOf, say) and anything that needs to enumerate the set rather than name one member.

type SessionInfo

type SessionInfo struct {
	// How long a session survives without activity before the user must sign in again. Null to use the
	// Jamf default.
	MaxInactivityTimeInMinutes *int `json:"maxInactivityTimeInMinutes,omitempty"`
	// How long a session lasts before the user must sign in again, regardless of activity. Null to use the
	// Jamf default.
	MaxSessionTimeInMinutes *int `json:"maxSessionTimeInMinutes,omitempty"`
}

SessionInfo Session lifetime limits for users signing in through a connection.

type TokenEndpointAuthMethod

type TokenEndpointAuthMethod = string

TokenEndpointAuthMethod represents a token endpoint auth method value.

const (
	TokenEndpointAuthMethodClientSecretPost TokenEndpointAuthMethod = "CLIENT_SECRET_POST"
	TokenEndpointAuthMethodPrivateKeyJwt    TokenEndpointAuthMethod = "PRIVATE_KEY_JWT"
)

TokenEndpointAuthMethod values accepted by the Jamf API. The alias above is a string, so these constants pass to any parameter or field declared as a plain string.

func TokenEndpointAuthMethodValues

func TokenEndpointAuthMethodValues() []TokenEndpointAuthMethod

TokenEndpointAuthMethodValues returns every value the Jamf API accepts for TokenEndpointAuthMethod, in the order the spec declares them. Returns a fresh slice per call, so no caller can corrupt the set for the rest of the process — which a package level var would allow. Suits attribute validation (Terraform's stringvalidator.OneOf, say) and anything that needs to enumerate the set rather than name one member.

type ValidationOutcome

type ValidationOutcome = string

ValidationOutcome represents a validation outcome value.

const (
	ValidationOutcomePass    ValidationOutcome = "Pass"
	ValidationOutcomeWarning ValidationOutcome = "Warning"
	ValidationOutcomeFail    ValidationOutcome = "Fail"
)

ValidationOutcome values accepted by the Jamf API. The alias above is a string, so these constants pass to any parameter or field declared as a plain string.

func ValidationOutcomeValues

func ValidationOutcomeValues() []ValidationOutcome

ValidationOutcomeValues returns every value the Jamf API accepts for ValidationOutcome, in the order the spec declares them. Returns a fresh slice per call, so no caller can corrupt the set for the rest of the process — which a package level var would allow. Suits attribute validation (Terraform's stringvalidator.OneOf, say) and anything that needs to enumerate the set rather than name one member.

type ValidationRule

type ValidationRule struct {
	// Explanation of the outcome, suitable for showing to the submitting distributor. Null when the rule
	// passed with nothing to report.
	Message *string `json:"message,omitempty"`
	// Outcome of this rule.
	Result *ValidationOutcome `json:"result,omitempty"`
	// Name of the validation rule that was evaluated.
	RuleName string `json:"ruleName"`
}

ValidationRule Outcome of a single validation rule.

Jump to

Keyboard shortcuts

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