opsmanager

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Feb 7, 2020 License: Apache-2.0 Imports: 7 Imported by: 1

Documentation

Overview

Package opsmanager hosts a HTTP client which abstracts communication with Ops Manager instances.

To create a new client, you have to call the following code:

resolver := httpclient.NewURLResolverWithPrefix("http://OPS-MANAGER-INSTANCE", opsmanager.PublicApiPrefix)
client := opsmanager.NewClient(WithResolver(resolver))

The client can then be used to issue requests such as:

user := User{Username: ..., Password: ..., ...}
globalOwner := client.CreateFirstUser(user, WhitelistAllowAll)

See the Client interface below for a list of all the support operations. If however, you need one that is not currently supported, the _opsManagerApi_ struct extends _httpclient.BasicHTTPOperation_, allowing you to issue raw HTTP requests to the specified Ops Manager instance.

url := resolver.Of("/path/to/a/resource/%s", id)
resp:= client.GetJSON(url)
useful.PanicOnUnrecoverableError(resp.Err)
defer useful.LogError(resp.Response.Body.Close)
var data SomeType
decoder := json.NewDecoder(resp.Response.Body)
err := decoder.Decode(&result)
useful.PanicOnUnrecoverableError(err)
// do something with _data_

You can create an authenticated client as follows:

resolver := httpclient.NewURLResolverWithPrefix("http://OPS-MANAGER-INSTANCE", PublicAPIPrefix)
client:= opsmanager.NewClientWithDigestAuth(resolver, "username", "password")

The code above is a simplification of the following (which can be used for a more configurable set-up):

withResolver := opsmanager.WithResolver(httpclient.NewURLResolverWithPrefix("http://OPS-MANAGER-INSTANCE", PublicAPIPrefix))
withDigestAuth := httpclient.WithDigestAuthentication(publicKey, privateKey)
withHTTPClient := opsmanager.WithHTTPClient(httpclient.NewClient(withDigestAuth))
client := opsmanager.NewClient(withResolver, withHTTPClient)

The following can be used for authentication:

  • Ops Manager user credentials: (username, password) - only works with some APIs and should not be used
  • Programmatic API keys: (publicKey, privateKey) - preferred credentials pair
  • Ops Manager user and a Personal API Key: (username, personalAPIKey) - deprecated

You can read more about this topic here: https://docs.opsmanager.mongodb.com/master/tutorial/configure-public-api-access/#configure-public-api-access

Index

Constants

View Source
const PublicAPIPrefix = "/api/public/v1.0"

PublicAPIPrefix prefix

Variables

This section is empty.

Functions

func AddProcessToDeployment

func AddProcessToDeployment(process Process, automationConfig map[string]interface{}) map[string]interface{}

AddProcessToDeployment adds the specified Process to the processes list of the given deployment

func WithHTTPClient

func WithHTTPClient(basicClient httpclient.BasicClient) func(*opsManagerClient)

WithHTTPClient configures an Ops Manager which delegates basic HTTP operations to the specified client

func WithResolver

func WithResolver(resolver httpclient.URLResolver) func(*opsManagerClient)

WithResolver configures an Ops Manager client which relies on the specified resolver

Types

type AgentAttributes added in v0.0.2

type AgentAttributes struct {
	LogPath                 string     `json:"logPath,omitempty"`
	LogPathWindows          string     `json:"logPathWindows,omitempty"`
	LogRotate               *LogRotate `json:"logRotate"`
	Username                string     `json:"username,omitempty"`
	Password                string     `json:"password,omitempty"`
	KerberosPrincipal       string     `json:"kerberosPrincipal,omitempty"`
	KerberosKeytab          string     `json:"kerberosKeytab,omitempty"`
	KerberowWindowsUsername string     `json:"kerberosWindowsUsername,omitempty"`
	KerberowWindowsPassword string     `json:"kerberosWindowsPassword,omitempty"`
	SSLPEMKeyfile           string     `json:"sslPEMKeyfile,omitempty"`
	SSLPEMKeyfileWindows    string     `json:"sslPEMKeyfileWindows,omitempty"`
	SSLPEMKeyPwd            string     `json:"sslPEMKeyPwd,omitempty"`
}

AgentAttributes represent an agent properties

type AgentResult

type AgentResult struct {
	ConfCount int    `json:"confCount,omitempty"`
	Hostname  string `json:"hostname,omitempty"`
	LastConf  string `json:"lastConf,omitempty"`
	StateName string `json:"stateName,omitempty"`
	TypeName  string `json:"typeName,omitempty"`
}

AgentResult represents an agent returned by the GetAgentsByType() call

type AgentVersion added in v0.0.2

type AgentVersion struct {
	Name      string     `json:"name,omitempty"`
	Hostname  string     `json:"hostname"`
	LogPath   string     `json:"logPath,omitempty"`
	LogRotate *LogRotate `json:"logRotate,omitempty"`
}

AgentVersion agent versions struct

type Args26

type Args26 struct {
	NET         *Net            `json:"net,omitempty"`
	Storage     *StorageArg     `json:"storage,omitempty"`
	SystemLog   *SystemLog      `json:"systemLog,omitempty"`
	Replication *ReplicationArg `json:"replication,omitempty"`
	Sharding    *ShardingArg    `json:"sharding,omitempty"`
}

Args26 part of the internal Process struct

type Auth added in v0.0.2

type Auth struct {
	AutoUser                 string        `json:"autoUser"`
	AutoPwd                  string        `json:"autoPwd"`
	DeploymentAuthMechanisms []string      `json:"deploymentAuthMechanisms"`
	Key                      string        `json:"key"`
	Keyfile                  string        `json:"keyfile"`
	KeyfileWindows           string        `json:"keyfileWindows"`
	Disabled                 bool          `json:"disabled"`
	UsersDeleted             []interface{} `json:"usersDeleted"`
	UsersWanted              []UserWanted  `json:"usersWanted"`
	AutoAuthMechanism        string        `json:"autoAuthMechanism"`
}

Auth authentication config

type AutomationConfig

type AutomationConfig struct {
	Auth               Auth                     `json:"auth,omitempty"`
	LDAP               map[string]interface{}   `json:"ldap,omitempty"`
	Processes          []*Process               `json:"processes,omitempty"`
	ReplicaSets        []ReplicaSet             `json:"replicaSets,omitempty"`
	Roles              []map[string]interface{} `json:"roles,omitempty"`
	MonitoringVersions []*AgentVersion          `json:"monitoringVersions,omitempty"`
	BackupVersions     []*AgentVersion          `json:"backupVersions,omitempty"`
	MongoSQLDs         []map[string]interface{} `json:"mongosqlds,omitempty"`
	MongoDBVersions    []*MongoDBVersion        `json:"mongoDbVersions,omitempty"`
	AgentVersion       map[string]interface{}   `json:"agentVersion,omitempty"`
	Balancer           map[string]interface{}   `json:"balancer,omitempty"`
	CPSModules         []map[string]interface{} `json:"cpsModules,omitempty"`
	IndexConfigs       []map[string]interface{} `json:"indexConfigs,omitempty"`
	Kerberos           map[string]interface{}   `json:"kerberos,omitempty"`
	MongoTs            []map[string]interface{} `json:"mongots,omitempty"`
	Options            *Options                 `json:"options"`
	SSL                *SSL                     `json:"ssl,omitempty"`
	Version            int                      `json:"version,omitempty"`
	Sharding           []Sharding               `json:"sharding,omitempty"`
	UIBaseURL          string                   `json:"uiBaseUrl,omitempty"`
}

AutomationConfig represents a cluster definition within an automation config object NOTE: this struct is mutable

type AutomationStatusResponse

type AutomationStatusResponse struct {
	Processes   []Process `json:"processes"`
	GoalVersion int       `json:"goalVersion"`
}

AutomationStatusResponse automation status

type BackupConfigs added in v0.1.0

type BackupConfigs struct {
	Links         []Link         `json:"links"`
	BackupResults []BackupResult `json:"results"`
	TotalCount    int            `json:"totalCount"`
}

BackupConfigs response structure

type BackupResult added in v0.1.0

type BackupResult struct {
	AuthMechanismName  string   `json:"authMechanismName,omitempty"`
	ClusterID          string   `json:"clusterId,omitempty"`
	EncryptionEnabled  bool     `json:"encryptionEnabled,omitempty"`
	ExcludedNamespaces []string `json:"excludedNamespaces,omitempty"`
	IncludedNamespaces []string `json:"includednamespaces,omitempty"`
	GroupID            string   `json:"groupId,omitempty"`
	Links              []Link   `json:"links,omitempty"`
	SSLEnabled         bool     `json:"sslEnabled,omitempty"`
	StatusName         string   `json:"statusName,omitempty"`
	StorageEngineName  string   `json:"storageEngineName,omitempty"`
	Username           string   `json:"username,omitempty"`
}

BackupResult response structure

type Build

type Build struct {
	Architecture       string   `json:"architecture"`
	Bits               int      `json:"bits"`
	Flavor             string   `json:"flavor,omitempty"`
	GitVersion         string   `json:"gitVersion,omitempty"`
	MaxOsVersion       string   `json:"maxOsVersion,omitempty"`
	MinOsVersion       string   `json:"minOsVersion,omitempty"`
	Platform           string   `json:"platform,omitempty"`
	URL                string   `json:"url,omitempty"`
	Modules            []string `json:"modules,omitempty"`
	Win2008plus        bool     `json:"win2008plus,omitempty"`
	WinVCRedistDll     string   `json:"winVCRedistDll,omitempty"`
	WinVCRedistOptions []string `json:"winVCRedistOptions,omitempty"`
	WinVCRedistURL     string   `json:"winVCRedistUrl,omitempty"`
	WinVCRedistVersion string   `json:"winVCRedistVersion,omitempty"`
}

Build a MongoDB build

type Client

type Client interface {
	httpclient.BasicClient

	// https://docs.opsmanager.mongodb.com/master/reference/api/user-create-first/
	CreateFirstUser(user User, whitelistIP string) (CreateFirstUserResponse, error)
	// https://docs.opsmanager.mongodb.com/master/reference/api/groups/get-all-groups-for-current-user/
	GetAllProjects() (ProjectsResponse, error)
	// https://docs.opsmanager.mongodb.com/master/reference/api/groups/create-one-group/
	CreateOneProject(name string, orgID string) (ProjectResponse, error)
	// https://docs.opsmanager.mongodb.com/master/reference/api/automation-config/#get-the-automation-configuration
	GetAutomationConfig(projectID string) (AutomationConfig, error)
	// https://docs.opsmanager.mongodb.com/master/reference/api/automation-config/#update-the-automation-configuration
	UpdateAutomationConfig(projectID string, config AutomationConfig) (AutomationConfig, error)
	// GET /agents/api/automation/conf/v1/{projectID}
	GetRawAutomationConfig(projectID string) (RawAutomationConfig, error)
	// https://docs.opsmanager.mongodb.com/master/reference/api/automation-status/
	GetAutomationStatus(projectID string) (AutomationStatusResponse, error)
	// https://docs.opsmanager.mongodb.com/master/reference/api/agents-get-by-type/
	GetAgentsByType(projectID string, agentType string) (GetAgentsByTypeResponse, error)
	// https://docs.opsmanager.mongodb.com/master/reference/api/automation-config/#update-the-automation-configuration
	UpdateDeployments(projectID string, body io.Reader) (map[string]interface{}, error)
	// https://docs.opsmanager.mongodb.com/master/reference/api/agentapikeys/create-one-agent-api-key/
	CreateAgentAPIKEY(projectID string, desc string) (CreateAgentAPIKEYResponse, error)
	// https://docs.opsmanager.mongodb.com/master/reference/api/groups/get-one-group-by-id/
	GetProjectByID(projectID string) (ProjectResponse, error)
	// https://docs.opsmanager.mongodb.com/master/reference/api/groups/get-one-group-by-name/
	GetProjectByName(name string) (ProjectResponse, error)
	// https://docs.opsmanager.mongodb.com/master/reference/api/groups/delete-one-group/
	DeleteProject(projectID string) error
	// https://docs.opsmanager.mongodb.com/master/reference/api/groups/add-or-remove-tags-from-one-group/
	SetProjectTags(projectID string, tags []string) (ProjectResponse, error)
	// https://docs.opsmanager.mongodb.com/master/reference/api/hosts/get-all-hosts-in-group/
	GetHosts(projectID string) (HostsResponse, error)
	// https://docs.opsmanager.mongodb.com/master/reference/api/automation-config/index.html#update-the-monitoring-or-backup
	UpdateMonitoringConfig(projectID string, config AgentAttributes) error
	// https://docs.opsmanager.mongodb.com/master/reference/api/automation-config/index.html#update-the-monitoring-or-backup
	UpdateBackupConfig(projectID string, config AgentAttributes) error
	// https://docs.opsmanager.mongodb.com/master/reference/api/backup/get-all-backup-configs-for-group/
	GetBackupConfigs(projectID string) (BackupConfigs, error)
}

Client defines the API actions implemented in this client

func NewClient

func NewClient(configs ...func(*opsManagerClient)) Client

NewClient builds a new API client for connecting to Ops Manager

func NewClientWithDigestAuth

func NewClientWithDigestAuth(resolver httpclient.URLResolver, username string, password string) Client

NewClientWithDigestAuth builds a new API client with default configurations, which uses digest authentication

func NewDefaultClient

func NewDefaultClient(resolver httpclient.URLResolver) Client

NewDefaultClient builds a new, unauthenticated, API client with default configurations

type CreateAgentAPIKEYResponse

type CreateAgentAPIKEYResponse struct {
	ID            string `json:"_id,omitempty"`
	CreatedBy     string `json:"createdBy,omitempty"`
	CreatedIPAddr string `json:"createdIpAddr,omitempty"`
	CreatedTime   int    `json:"createdTime,omitempty"`
	CreatedUserID string `json:"createdUserId,omitempty"`
	Desc          string `json:"desc,omitempty"`
	Key           string `json:"key,omitempty"`
}

CreateAgentAPIKEYResponse API response for the CreateAgentAPIKEY() call

type CreateFirstUserResponse

type CreateFirstUserResponse struct {
	APIKey string       `json:"apiKey"`
	User   UserResponse `json:"user"`
}

CreateFirstUserResponse API response for the CreateFirstUser() call

type GetAgentsByTypeResponse

type GetAgentsByTypeResponse struct {
	Links      []Link        `json:"links,omitempty"`
	Results    []AgentResult `json:"results,omitempty"`
	TotalCount int           `json:"totalCount,omitempty"`
}

GetAgentsByTypeResponse API response for the GetAgentsByType() call

type HostCounts

type HostCounts struct {
	Arbiter   int `json:"arbiter"`
	Config    int `json:"config"`
	Primary   int `json:"primary"`
	Secondary int `json:"secondary"`
	Mongos    int `json:"mongos"`
	Master    int `json:"master"`
	Slave     int `json:"slave"`
}

HostCounts for the project

type HostResponse added in v0.0.2

type HostResponse struct {
	ID                 string        `json:"id"`
	Aliases            []string      `json:"aliases,omitempty"`
	AlertsEnabled      bool          `json:"alertsEnabled"`
	AuthMechanismName  string        `json:"authMechanismName,omitempty"`
	ClusterID          string        `json:"clusterId,omitempty"`
	Created            string        `json:"created,omitempty"`
	Deactivated        bool          `json:"deactivated"`
	GroupID            string        `json:"groupId,omitempty"`
	HasStartupWarnings bool          `json:"hasStartupWarnings"`
	Hidden             bool          `json:"hidden"`
	HiddenSecondary    bool          `json:"hiddenSecondary"`
	HostEnabled        bool          `json:"hostEnabled"`
	Hostname           string        `json:"hostname,omitempty"`
	IPAddress          string        `json:"ipAddress,omitempty"`
	JournalingEnabled  bool          `json:"journalingEnabled"`
	LastDataSizeBytes  int           `json:"lastDataSizeBytes,omitempty"`
	LastIndexSizeBytes int           `json:"lastIndexSizeBytes,omitempty"`
	LastPing           string        `json:"lastPing,omitempty"`
	LastRestart        string        `json:"lastRestart,omitempty"`
	Links              []interface{} `json:"links,omitempty"`
	LogsEnabled        bool          `json:"logsEnabled"`
	LowULimit          bool          `json:"lowULimit"`
	MuninEnabled       bool          `json:"muninEnabled"`
	MuninPort          int           `json:"muninPort,omitempty"`
	Port               int           `json:"port,omitempty"`
	ProfilerEnabled    bool          `json:"profilerEnabled"`
	ReplicaSetName     string        `json:"replicaSetName,omitempty"`
	ReplicaStateName   string        `json:"replicaStateName,omitempty"`
	ShardName          string        `json:"shardName,omitempty"`
	SlaveDelaySec      int           `json:"slaveDelaySec,omitempty"`
	SSLEnabled         bool          `json:"sslEnabled"`
	TypeName           string        `json:"typeName,omitempty"`
	UptimeMSec         int           `json:"uptimeMsec,omitempty"`
	Version            string        `json:"version,omitempty"`
}

HostResponse represents a host information

type HostsResponse added in v0.0.2

type HostsResponse struct {
	Results    []HostResponse `json:"results,omitempty"`
	Links      []interface{}  `json:"links,omitempty"`
	TotalCount int            `json:"totalCount,omitempty"`
}

HostsResponse an array of hosts

type LDAPGroupMapping

type LDAPGroupMapping struct {
	RoleName   string   `json:"roleName,omitempty"`
	LdapGroups []string `json:"ldapGroups,omitempty"`
}

LDAPGroupMapping holds a single mapping of role to LDAP groups

type Link struct {
	HREF string `json:"href"`
	Rel  string `json:"rel"`
}

Link holder for links returned by the API

type LogRotate

type LogRotate struct {
	SizeThresholdMB  float64 `json:"sizeThresholdMB,omitempty"`
	TimeThresholdHrs int     `json:"timeThresholdHrs,omitempty"`
}

LogRotate part of the internal Process struct

type Member added in v0.0.2

type Member struct {
	ID          int     `json:"_id"`
	ArbiterOnly bool    `json:"arbiterOnly"`
	Hidden      bool    `json:"hidden"`
	Host        string  `json:"host"`
	Priority    float64 `json:"priority"`
	SlaveDelay  int     `json:"slaveDelay"`
	Votes       float64 `json:"votes"`
}

Member configs

type MongoDBVersion

type MongoDBVersion struct {
	Name   string  `json:"name,omitempty"`
	Builds []Build `json:"builds,omitempty"`
}

MongoDBVersion ways to install MongoDB

type Net

type Net struct {
	Port int     `json:"port,omitempty"`
	SSL  *NetSSL `json:"ssl,omitempty"`
}

Net part of the internal Process struct

type NetSSL added in v0.0.2

type NetSSL struct {
	Mode       string `json:"mode"`
	PEMKeyFile string `json:"PEMKeyFile"`
}

NetSSL defines SSL parameters for Net

type Options added in v0.0.2

type Options struct {
	DownloadBase string `json:"downloadBase"`
}

Options configs

type Process

type Process struct {
	Name                        string     `json:"name,omitempty"`
	ProcessType                 string     `json:"processType,omitempty"`
	Version                     string     `json:"version,omitempty"`
	AuthSchemaVersion           int        `json:"authSchemaVersion,omitempty"`
	FeatureCompatibilityVersion string     `json:"featureCompatibilityVersion,omitempty"`
	Disabled                    bool       `json:"disabled,omitempty"`
	ManualMode                  bool       `json:"manualMode,omitempty"`
	Hostname                    string     `json:"hostname,omitempty"`
	Args26                      *Args26    `json:"args2_6,omitempty"`
	LogRotate                   *LogRotate `json:"logRotate,omitempty"`
	Plan                        []string   `json:"plan,omitempty"`
	LastGoalVersionAchieved     int        `json:"lastGoalVersionAchieved,omitempty"`
	Cluster                     string     `json:"cluster,omitempty"`
}

Process represents a single process in a deployment

type ProjectResponse

type ProjectResponse struct {
	ID                string             `json:"id"`
	OrgID             string             `json:"orgId"`
	Name              string             `json:"name"`
	LastActiveAgent   string             `json:"lastActiveAgent,omitempty"`
	AgentAPIKey       string             `json:"agentApiKey,omitempty"`
	ActiveAgentCount  int                `json:"activeAgentCount"`
	HostCounts        HostCounts         `json:"hostCounts,omitempty"`
	PublicAPIEnabled  bool               `json:"publicApiEnabled"`
	ReplicaSetCount   int                `json:"replicaSetCount"`
	ShardCount        int                `json:"shardCount"`
	Tags              []string           `json:"tags,omitempty"`
	Links             []Link             `json:"links,omitempty"`
	LDAPGroupMappings []LDAPGroupMapping `json:"ldapGroupMappings,omitempty"`
}

ProjectResponse represents the structure of a project

type ProjectsResponse

type ProjectsResponse struct {
	Links      []Link            `json:"links"`
	Results    []ProjectResponse `json:"results"`
	TotalCount int               `json:"totalCount"`
}

ProjectsResponse represents a array of project

type RawAutomationConfig

type RawAutomationConfig struct {
	IDCounter                        int                    `json:"idCounter,omitempty"`
	State                            string                 `json:"state,omitempty"`
	Version                          int                    `json:"version,omitempty"`
	GroupID                          string                 `json:"groupId,omitempty"`
	UserID                           string                 `json:"userId,omitempty"`
	PublishTimestamp                 int                    `json:"publishTimestamp,omitempty"`
	PublishedVersion                 string                 `json:"publishedVersion,omitempty"`
	SaveTimestamp                    int                    `json:"saveTimestamp,omitempty"`
	LatestAutomationAgentVersionName string                 `json:"latestAutomationAgentVersionName,omitempty"`
	LatestMonitoringAgentVersionName string                 `json:"latestMonitoringAgentVersionName,omitempty"`
	LatestBackupAgentVersionName     string                 `json:"latestBackupAgentVersionName,omitempty"`
	LatestBiConnectorVersionName     string                 `json:"latestBiConnectorVersionName,omitempty"`
	Cluster                          *AutomationConfig      `json:"cluster,omitempty"`
	VersionConfig                    map[string]interface{} `json:"versionConfig,omitempty"`
	LogRotate                        map[string]interface{} `json:"logRotate,omitempty"`
	MonitoringAgentTemplate          map[string]interface{} `json:"monitoringAgentTemplate,omitempty"`
	BackupAgentTemplate              map[string]interface{} `json:"backupAgentTemplate,omitempty"`
	CPSModuleTemplate                map[string]interface{} `json:"cpsModuleTemplate,omitempty"`
	DeploymentJobStatuses            []interface{}
}

RawAutomationConfig represents a raw automation config NOTE: this struct is mutable

type ReplicaSet added in v0.0.2

type ReplicaSet struct {
	ID              string   `json:"_id"`
	ProtocolVersion string   `json:"protocolVersion,omitempty"`
	Members         []Member `json:"members"`
}

ReplicaSet configs

type ReplicationArg added in v0.0.2

type ReplicationArg struct {
	ReplSetName string `json:"replSetName"`
}

ReplicationArg is part of the internal Process struct

type Result

type Result struct {
	Links     []Link   `json:"links"`
	RoleNames []string `json:"roleNames"`
	TeamID    string   `json:"teamId"`
}

Result is part of TeamsAssigned structure

type Role added in v0.0.2

type Role struct {
	DB   string `json:"db"`
	Role string `json:"role"`
}

Role user role

type SSL added in v0.0.2

type SSL struct {
	AutoPEMKeyFilePath    string `json:"autoPEMKeyFilePath"`
	CAFilePath            string `json:"CAFilePath"`
	ClientCertificateMode string `json:"clientCertificateMode"`
}

SSL ssl config properties

type Shard added in v0.0.2

type Shard struct {
	Tags []interface{} `json:"tags"`
	ID   string        `json:"_id"`
	Rs   string        `json:"rs"`
}

Shard configs

type Sharding added in v0.0.2

type Sharding struct {
	Shards              []Shard       `json:"shards"`
	Name                string        `json:"name"`
	ConfigServer        []interface{} `json:"configServer"`
	ConfigServerReplica string        `json:"configServerReplica"`
	Collections         []interface{} `json:"collections"`
}

Sharding configs

type ShardingArg added in v0.0.2

type ShardingArg struct {
	ClusterRole string `json:"clusterRole"`
}

ShardingArg is part of the internal Process struct

type StorageArg added in v0.0.2

type StorageArg struct {
	DBPath string `json:"dbPath,omitempty"`
}

StorageArg part of the internal Process struct

type SystemLog

type SystemLog struct {
	Destination string `json:"destination,omitempty"`
	Path        string `json:"path,omitempty"`
}

SystemLog part of the internal Process struct

type User

type User struct {
	Username     string `json:"username"`
	Password     string `json:"password,omitempty"`
	FirstName    string `json:"firstName"`
	LastName     string `json:"lastName"`
	EmailAddress string `json:"emailAddress,omitempty"`
}

User request object which identifies a user

type UserResponse

type UserResponse struct {
	User

	ID    string     `json:"id"`
	Links []Link     `json:"links,omitempty"`
	Roles []UserRole `json:"roles,omitempty"`
}

UserResponse wrapper for a user response, augmented with a few extra fields

type UserRole

type UserRole struct {
	RoleName string `json:"roleName"`
	GroupID  string `json:"groupId,omitempty"`
	OrgID    string `json:"orgId,omitempty"`
}

UserRole denotes a single user role

type UserWanted added in v0.0.2

type UserWanted struct {
	DB      string `json:"db"`
	Roles   []Role `json:"roles"`
	User    string `json:"user"`
	InitPwd string `json:"initPwd"`
}

UserWanted :shrug:

Jump to

Keyboard shortcuts

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