Documentation ¶
Overview ¶
Package apitypes defines types shared between the daemon and its api client.
Index ¶
- Constants
- Variables
- func FormatError(err error) error
- func IsNotFoundError(err error) bool
- type BaseCredential
- type Credential
- type CredentialEnvelope
- type CredentialResp
- type CredentialV2
- type CredentialValue
- type Environment
- type Error
- type ErrorType
- type InviteAccept
- type Login
- type LoginCredential
- type MachineLogin
- type MachineSegment
- type MachinesCreateRequest
- type Membership
- type OrgInvite
- type Profile
- type ProfileUpdate
- type PublicKeySegment
- type Self
- type Service
- type SessionStatus
- type Signup
- type Team
- type UserLogin
- type VerifyEmail
- type Version
- type WorklogID
- type WorklogItem
- type WorklogResult
- type WorklogResultType
- type WorklogType
Constants ¶
const ( BadRequestError = "bad_request" NotFoundError = "not_found" InternalServerError = "internal_server" NotImplementedError = "not_implemented" )
These are the possible error types.
const ( MachineSession = "machine" UserSession = "user" NotLoggedIn = "no_session" )
A session can represent either a machine or a user
const ( SuccessWorklogResult = "success" FailureWorklogResult = "failure" ErrorWorklogResult = "error" ManualWorklogResult = "manual" )
WorklogResult result states.
Variables ¶
var ErrIncorrectWorklogIDLen = errors.New("Incorrect worklog ID length")
ErrIncorrectWorklogIDLen is returned when a base32 encoded worklog id is the wrong length.
Functions ¶
func FormatError ¶ added in v0.16.0
FormatError updates an error to contain more context
func IsNotFoundError ¶ added in v0.12.0
IsNotFoundError returns whether or not an error is a 404 result from the api.
Types ¶
type BaseCredential ¶ added in v0.11.0
type BaseCredential struct { Name string `json:"name"` OrgID *identity.ID `json:"org_id"` PathExp *pathexp.PathExp `json:"pathexp"` ProjectID *identity.ID `json:"project_id"` Value *CredentialValue `json:"value"` }
BaseCredential is the body of an unencrypted Credential
func (*BaseCredential) GetName ¶ added in v0.11.0
func (c *BaseCredential) GetName() string
GetName returns the name
func (*BaseCredential) GetOrgID ¶ added in v0.11.0
func (c *BaseCredential) GetOrgID() *identity.ID
GetOrgID returns the org id
func (*BaseCredential) GetPathExp ¶ added in v0.11.0
func (c *BaseCredential) GetPathExp() *pathexp.PathExp
GetPathExp returns the pathexp
func (*BaseCredential) GetProjectID ¶ added in v0.11.0
func (c *BaseCredential) GetProjectID() *identity.ID
GetProjectID returns the project id
func (*BaseCredential) GetValue ¶ added in v0.11.0
func (c *BaseCredential) GetValue() *CredentialValue
GetValue returns the value object, unless unset then returns nil
type Credential ¶
type Credential interface { GetName() string GetOrgID() *identity.ID GetPathExp() *pathexp.PathExp GetProjectID() *identity.ID GetValue() *CredentialValue }
Credential interface is either a v1 or v2 credential object
type CredentialEnvelope ¶
type CredentialEnvelope struct { ID *identity.ID `json:"id"` Version uint8 `json:"version"` Body *Credential `json:"body"` }
CredentialEnvelope is an unencrypted credential object with a deserialized body
type CredentialResp ¶ added in v0.11.0
type CredentialResp struct { ID *identity.ID `json:"id"` Version uint8 `json:"version"` Body json.RawMessage `json:"body"` }
CredentialResp is used to facilitate unmarshalling of versioned objects
type CredentialV2 ¶ added in v0.11.0
type CredentialV2 struct { BaseCredential State string `json:"state"` }
CredentialV2 is the body of an unencrypted Credential
func (*CredentialV2) GetValue ¶ added in v0.11.0
func (c *CredentialV2) GetValue() *CredentialValue
GetValue returns the value object, unless unset then returns nil
type CredentialValue ¶
type CredentialValue struct {
// contains filtered or unexported fields
}
CredentialValue is the raw value of a credential.
func NewFloatCredentialValue ¶ added in v0.8.0
func NewFloatCredentialValue(f float64) *CredentialValue
NewFloatCredentialValue creates a CredentialValue with a float value.
func NewIntCredentialValue ¶ added in v0.8.0
func NewIntCredentialValue(i int) *CredentialValue
NewIntCredentialValue creates a CredentialValue with an int value.
func NewStringCredentialValue ¶ added in v0.8.0
func NewStringCredentialValue(s string) *CredentialValue
NewStringCredentialValue creates a CredentialValue with a string value.
func NewUnsetCredentialValue ¶ added in v0.8.0
func NewUnsetCredentialValue() *CredentialValue
NewUnsetCredentialValue creates a CredentialValue with an unset value.
func (*CredentialValue) IsUnset ¶
func (c *CredentialValue) IsUnset() bool
IsUnset returns if this credential has been unset (deleted)
func (*CredentialValue) MarshalJSON ¶ added in v0.8.0
func (c *CredentialValue) MarshalJSON() ([]byte, error)
MarshalJSON implements the json.Marshaler interface.
func (*CredentialValue) Raw ¶ added in v0.17.0
func (c *CredentialValue) Raw() (interface{}, error)
Raw returns the underlying typed value for this Credential.
func (*CredentialValue) String ¶
func (c *CredentialValue) String() string
String returns the string representation of this credential. It panics if the credential was deleted.
func (*CredentialValue) UnmarshalJSON ¶
func (c *CredentialValue) UnmarshalJSON(b []byte) error
UnmarshalJSON implements the json.Unmarshaler interface.
type Environment ¶
type Environment struct { ID string `json:"id"` Version int `json:"version"` Body *primitive.Environment `json:"body"` }
Environment contains information for creating a new Env object
type Error ¶
Error represents standard formatted API errors from the daemon or registry.
func NewUnverifiedError ¶ added in v0.16.0
func NewUnverifiedError() *Error
NewUnverifiedError returns a message telling the user to verify their account before continuing
type ErrorType ¶
type ErrorType string
ErrorType represents the string error types that the daemon and registry can return.
type InviteAccept ¶
type InviteAccept struct { Org string `json:"org"` Email string `json:"email"` Code string `json:"code"` }
InviteAccept contains data required to accept org invite
type Login ¶
type Login struct { Type string `json:"type"` Credentials json.RawMessage `json:"credentials"` }
Login is a wrapper around a login request from the CLI to the Daemon
type LoginCredential ¶ added in v0.15.0
type LoginCredential interface { Type() string Valid() bool Passphrase() []byte Identifier() string }
LoginCredential represents an login credentials for a user or machine
type MachineLogin ¶ added in v0.15.0
type MachineLogin struct { TokenID *identity.ID `json:"token_id"` Secret *base64.Value `json:"secret"` }
MachineLogin contains the required details for logging into the api and daemon as a machine.
func (*MachineLogin) Identifier ¶ added in v0.15.0
func (m *MachineLogin) Identifier() string
Identifier returns the identifying piece of information of the request
func (*MachineLogin) Passphrase ¶ added in v0.15.0
func (m *MachineLogin) Passphrase() []byte
Passphrase returns the "secret" component of the request
func (*MachineLogin) Type ¶ added in v0.15.0
func (m *MachineLogin) Type() string
Type returns the type of the login request
func (*MachineLogin) Valid ¶ added in v0.15.0
func (m *MachineLogin) Valid() bool
Valid returns whether or not this is a valid machine login request
type MachineSegment ¶ added in v0.15.0
type MachineSegment struct { Machine *struct { ID *identity.ID `json:"id"` Body *primitive.Machine `json:"body"` } `json:"machine"` Memberships []*struct { ID *identity.ID `json:"id"` Body *primitive.Membership `json:"body"` } `json:"memberships"` Tokens []*struct { Token *struct { ID *identity.ID `json:"id"` Body *primitive.MachineToken `json:"body"` } `json:"token"` Keypairs []PublicKeySegment `json:"keypairs"` } `json:"tokens"` }
MachineSegment represents a machine, its tokens, and their connected keypairs
type MachinesCreateRequest ¶ added in v0.15.0
type MachinesCreateRequest struct { Name string `json:"name"` OrgID *identity.ID `json:"org_id"` TeamID *identity.ID `json:"team_id"` Secret *base64.Value `json:"secret"` }
MachinesCreateRequest represents a request by a client to create a machine for a specific org, team using the given name and secret.
type Membership ¶ added in v0.8.0
type Membership struct { ID *identity.ID `json:"id"` Version int `json:"version"` Body *primitive.Membership `json:"body"` }
Membership contains data required to be added to a team
type OrgInvite ¶
type OrgInvite struct { ID string `json:"id"` Version int `json:"version"` Body *primitive.OrgInvite `json:"body"` }
OrgInvite contains information for sending an Org invite
type Profile ¶
type Profile struct { ID *identity.ID `json:"id"` Body *struct { Name string `json:"name"` Username string `json:"username"` } `json:"body"` }
Profile contains the fields in the response for the profiles endpoint
type ProfileUpdate ¶ added in v0.17.0
type ProfileUpdate struct { Name string `json:"name"` Email string `json:"email"` Password string `json:"password"` }
ProfileUpdate contains the fields a user can change on their user object
type PublicKeySegment ¶ added in v0.15.0
type PublicKeySegment struct { PublicKey *envelope.Signed `json:"public_key"` Claims []envelope.Signed `json:"claims"` }
PublicKeySegment represents a sub section of a claimtree targeting a specific public key and it's claims.
func (*PublicKeySegment) Revoked ¶ added in v0.18.0
func (pks *PublicKeySegment) Revoked() bool
Revoked returns a bool indicating if any revocation claims exist against this PublicKey
type Self ¶ added in v0.15.0
type Self struct { Type string `json:"type"` Identity *envelope.Unsigned `json:"identity"` Auth *envelope.Unsigned `json:"auth"` }
Self represents the current identity and auth combination for this session
type Service ¶
type Service struct { ID *identity.ID `json:"id"` Version int `json:"version"` Body *primitive.Service `json:"body"` }
Service contains information for creating a new Service object
type SessionStatus ¶
SessionStatus contains details about the user's daemon session.
type Signup ¶
type Signup struct { Name string Username string Email string Passphrase string InviteCode string OrgName string OrgInvite bool }
Signup contains information required for registering an account
type Team ¶
type Team struct { ID *identity.ID `json:"id"` Version int `json:"version"` Body *primitive.Team `json:"body"` }
Team contains information for creating a new Team object
type UserLogin ¶ added in v0.15.0
UserLogin contains the required details for logging in to the api and daemon as a user.
func (*UserLogin) Identifier ¶ added in v0.15.0
Identifier returns the identifying piece of information of the request
func (*UserLogin) Passphrase ¶ added in v0.15.0
Passphrase returns the "secret" or "password" component of the request
type VerifyEmail ¶ added in v0.8.0
type VerifyEmail struct {
Code string `json:"code"`
}
VerifyEmail contains email verification code
type Version ¶
type Version struct {
Version string `json:"version"`
}
Version contains the release version of the daemon.
type WorklogID ¶ added in v0.12.0
type WorklogID [worklogIDLen]byte
WorklogID is the unique content-based identifier for worklog entries
func DecodeWorklogIDFromString ¶ added in v0.12.0
DecodeWorklogIDFromString decodes a WorklogID from the given base32 encoded representation.
type WorklogItem ¶ added in v0.12.0
type WorklogItem struct { ID *WorklogID `json:"id"` Subject string `json:"subject"` Summary string `json:"summary"` SubjectID *identity.ID `json:"subject_id"` // Optional. }
WorklogItem is an item that the daemon has identified as needing to be done to ensure system correctness, or security in the face of stale secrets.
func (*WorklogItem) CreateID ¶ added in v0.12.0
func (w *WorklogItem) CreateID(worklogType WorklogType)
CreateID creates and populates a WorklogID for the WorklogItem based on the given type and its subject.
func (*WorklogItem) Type ¶ added in v0.12.0
func (w *WorklogItem) Type() WorklogType
Type returns this item's type
type WorklogResult ¶ added in v0.12.0
type WorklogResult struct { ID *WorklogID `json:"id"` State string `json:"state"` Message string `json:"message"` }
WorklogResult is the result, either positive or negative, of attempting to resolve a WorklogItem
type WorklogResultType ¶ added in v0.18.0
type WorklogResultType string
WorklogResultType is the string type of worklog results
type WorklogType ¶ added in v0.12.0
type WorklogType byte
WorklogType is the enumerated byte type of WorklogItems
const ( SecretRotateWorklogType WorklogType = 1 << iota MissingKeypairsWorklogType InviteApproveWorklogType )
The enumberated byte types of WorklogItems
func (WorklogType) String ¶ added in v0.12.0
func (t WorklogType) String() string
String returns a human reable string for this worklog item type.