Documentation ¶
Overview ¶
jamfpro_api_headers.go
jamfpro_api_request.go
jamfpro_api_url.go
Index ¶
- Constants
- type ConfigMap
- type EndpointConfig
- type JamfAPIHandler
- func (j *JamfAPIHandler) ConstructAPIAuthEndpoint(endpointPath string, log logger.Logger) string
- func (j *JamfAPIHandler) ConstructAPIResourceEndpoint(endpointPath string, log logger.Logger) string
- func (j *JamfAPIHandler) GetAPIBearerTokenAuthenticationSupportStatus() bool
- func (j *JamfAPIHandler) GetAPIOAuthAuthenticationSupportStatus() bool
- func (j *JamfAPIHandler) GetAPIOAuthWithCertAuthenticationSupportStatus() bool
- func (j *JamfAPIHandler) GetAPIRequestHeaders(endpoint string) map[string]string
- func (j *JamfAPIHandler) GetAcceptHeader() string
- func (j *JamfAPIHandler) GetBearerTokenEndpoint() string
- func (j *JamfAPIHandler) GetContentTypeHeader(endpoint string, log logger.Logger) string
- func (j *JamfAPIHandler) GetDefaultBaseDomain() string
- func (j *JamfAPIHandler) GetOAuthTokenEndpoint() string
- func (j *JamfAPIHandler) GetOAuthTokenScope() string
- func (j *JamfAPIHandler) GetTokenInvalidateEndpoint() string
- func (j *JamfAPIHandler) GetTokenRefreshEndpoint() string
- func (j *JamfAPIHandler) MarshalMultipartRequest(fields map[string]string, files map[string]string, log logger.Logger) ([]byte, string, error)
- func (j *JamfAPIHandler) MarshalRequest(body interface{}, method string, endpoint string, log logger.Logger) ([]byte, error)
- func (j *JamfAPIHandler) SetBaseDomain() string
Constants ¶
const ( APIName = "jamf pro" // APIName: represents the name of the API. DefaultBaseDomain = ".jamfcloud.com" // DefaultBaseDomain: represents the base domain for the jamf instance. OAuthTokenEndpoint = "/api/oauth/token" // OAuthTokenEndpoint: The endpoint to obtain an OAuth token. OAuthTokenScope = "" // OAuthTokenScope: Not used for Jamf. BearerTokenEndpoint = "/api/v1/auth/token" // BearerTokenEndpoint: The endpoint to obtain a bearer token. TokenRefreshEndpoint = "/api/v1/auth/keep-alive" // TokenRefreshEndpoint: The endpoint to refresh an existing token. TokenInvalidateEndpoint = "/api/v1/auth/invalidate-token" // TokenInvalidateEndpoint: The endpoint to invalidate an active token. BearerTokenAuthenticationSupport = true // BearerTokenAuthSuppport: A boolean to indicate if the API supports bearer token authentication. OAuthAuthenticationSupport = true // OAuthAuthSuppport: A boolean to indicate if the API supports OAuth authentication. OAuthWithCertAuthenticationSupport = false // OAuthWithCertAuthSuppport: A boolean to indicate if the API supports OAuth with client certificate authentication. )
Endpoint constants represent the URL suffixes used for Jamf API token interactions.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ConfigMap ¶
type ConfigMap map[string]EndpointConfig
ConfigMap is a map that associates endpoint URL patterns with their corresponding configurations. The map's keys are strings that identify the endpoint, and the values are EndpointConfig structs that hold the configuration for that endpoint.
type EndpointConfig ¶
type EndpointConfig struct { Accept string `json:"accept"` // Accept specifies the MIME type the endpoint can handle in responses. ContentType *string `json:"content_type"` // ContentType, if not nil, specifies the MIME type to set for requests sent to the endpoint. A pointer is used to distinguish between a missing field and an empty string. }
EndpointConfig is a struct that holds configuration details for a specific API endpoint. It includes what type of content it can accept and what content type it should send.
type JamfAPIHandler ¶
type JamfAPIHandler struct { OverrideBaseDomain string // OverrideBaseDomain is used to override the base domain for URL construction. InstanceName string // InstanceName is the name of the Jamf instance. Logger logger.Logger // Logger is the structured logger used for logging. }
JamfAPIHandler implements the APIHandler interface for the Jamf Pro API.
func (*JamfAPIHandler) ConstructAPIAuthEndpoint ¶
func (j *JamfAPIHandler) ConstructAPIAuthEndpoint(endpointPath string, log logger.Logger) string
ConstructAPIAuthEndpoint constructs the full URL for a Jamf API auth endpoint path and logs the URL. It uses the instance name to construct the full URL.
func (*JamfAPIHandler) ConstructAPIResourceEndpoint ¶
func (j *JamfAPIHandler) ConstructAPIResourceEndpoint(endpointPath string, log logger.Logger) string
ConstructAPIResourceEndpoint constructs the full URL for a Jamf API resource endpoint path and logs the URL. It uses the instance name to construct the full URL.
func (*JamfAPIHandler) GetAPIBearerTokenAuthenticationSupportStatus ¶
func (j *JamfAPIHandler) GetAPIBearerTokenAuthenticationSupportStatus() bool
GetAPIBearerTokenAuthenticationSupportStatus returns a boolean indicating if bearer token authentication is supported in the api handler.
func (*JamfAPIHandler) GetAPIOAuthAuthenticationSupportStatus ¶
func (j *JamfAPIHandler) GetAPIOAuthAuthenticationSupportStatus() bool
GetAPIOAuthAuthenticationSupportStatus returns a boolean indicating if OAuth authentication is supported in the api handler.
func (*JamfAPIHandler) GetAPIOAuthWithCertAuthenticationSupportStatus ¶
func (j *JamfAPIHandler) GetAPIOAuthWithCertAuthenticationSupportStatus() bool
GetAPIOAuthWithCertAuthenticationSupportStatus returns a boolean indicating if OAuth with client certificate authentication is supported in the api handler.
func (*JamfAPIHandler) GetAPIRequestHeaders ¶
func (j *JamfAPIHandler) GetAPIRequestHeaders(endpoint string) map[string]string
GetAPIRequestHeaders returns a map of standard headers required for making API requests.
func (*JamfAPIHandler) GetAcceptHeader ¶
func (j *JamfAPIHandler) GetAcceptHeader() string
GetAcceptHeader constructs and returns a weighted Accept header string for HTTP requests. The Accept header indicates the MIME types that the client can process and prioritizes them based on the quality factor (q) parameter. Higher q-values signal greater preference. This function specifies a range of MIME types with their respective weights, ensuring that the server is informed of the client's versatile content handling capabilities while indicating a preference for XML. The specified MIME types cover common content formats like images, JSON, XML, HTML, plain text, and certificates, with a fallback option for all other types.
func (*JamfAPIHandler) GetBearerTokenEndpoint ¶
func (j *JamfAPIHandler) GetBearerTokenEndpoint() string
GetBearerTokenEndpoint returns the endpoint for obtaining a bearer token. Used for constructing API URLs for the http client.
func (*JamfAPIHandler) GetContentTypeHeader ¶
func (j *JamfAPIHandler) GetContentTypeHeader(endpoint string, log logger.Logger) string
GetContentTypeHeader determines the appropriate Content-Type header for a given API endpoint. It attempts to find a content type that matches the endpoint prefix in the global configMap. If a match is found and the content type is defined (not nil), it returns the specified content type. If the content type is nil or no match is found in configMap, it falls back to default behaviors: - For url endpoints starting with "/JSSResource", it defaults to "application/xml" for the Classic API. - For url endpoints starting with "/api", it defaults to "application/json" for the JamfPro API. If the endpoint does not match any of the predefined patterns, "application/json" is used as a fallback. This method logs the decision process at various stages for debugging purposes.
func (*JamfAPIHandler) GetDefaultBaseDomain ¶
func (j *JamfAPIHandler) GetDefaultBaseDomain() string
GetDefaultBaseDomain returns the default base domain used for constructing API URLs to the http client.
func (*JamfAPIHandler) GetOAuthTokenEndpoint ¶
func (j *JamfAPIHandler) GetOAuthTokenEndpoint() string
GetOAuthTokenEndpoint returns the endpoint for obtaining an OAuth token. Used for constructing API URLs for the http client.
func (*JamfAPIHandler) GetOAuthTokenScope ¶ added in v0.1.16
func (j *JamfAPIHandler) GetOAuthTokenScope() string
GetOAuthTokenScope returns the scope for the OAuth token scope
func (*JamfAPIHandler) GetTokenInvalidateEndpoint ¶
func (j *JamfAPIHandler) GetTokenInvalidateEndpoint() string
GetTokenInvalidateEndpoint returns the endpoint for invalidating an active token. Used for constructing API URLs for the http client.
func (*JamfAPIHandler) GetTokenRefreshEndpoint ¶
func (j *JamfAPIHandler) GetTokenRefreshEndpoint() string
GetTokenRefreshEndpoint returns the endpoint for refreshing an existing token. Used for constructing API URLs for the http client.
func (*JamfAPIHandler) MarshalMultipartRequest ¶
func (j *JamfAPIHandler) MarshalMultipartRequest(fields map[string]string, files map[string]string, log logger.Logger) ([]byte, string, error)
MarshalMultipartRequest handles multipart form data encoding with secure file handling and returns the encoded body and content type.
func (*JamfAPIHandler) MarshalRequest ¶
func (j *JamfAPIHandler) MarshalRequest(body interface{}, method string, endpoint string, log logger.Logger) ([]byte, error)
MarshalRequest encodes the request body according to the endpoint for the API.
func (*JamfAPIHandler) SetBaseDomain ¶
func (j *JamfAPIHandler) SetBaseDomain() string
SetBaseDomain returns the appropriate base domain for URL construction. It uses j.OverrideBaseDomain if set, otherwise falls back to DefaultBaseDomain.