Documentation
¶
Overview ¶
Package api provides types used by the Jottacloud API.
Index ¶
- type AllocateFileRequest
- type AllocateFileResponse
- type CustomerInfo
- type DeviceRegistrationResponse
- type DriveInfo
- type Error
- type Flag
- type JottaDevice
- type JottaFile
- type JottaFolder
- type JottaMountPoint
- type JottaTime
- type LoginToken
- type Rfc3339Time
- type TokenJSON
- type TrashResponse
- type UploadResponse
- type WellKnown
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AllocateFileRequest ¶
type AllocateFileRequest struct {
Bytes int64 `json:"bytes"`
Created string `json:"created"`
Md5 string `json:"md5"`
Modified string `json:"modified"`
Path string `json:"path"`
}
AllocateFileRequest to prepare an upload to Jottacloud
type AllocateFileResponse ¶
type AllocateFileResponse struct {
Name string `json:"name"`
Path string `json:"path"`
State string `json:"state"`
UploadID string `json:"upload_id"`
UploadURL string `json:"upload_url"`
Bytes int64 `json:"bytes"`
ResumePos int64 `json:"resume_pos"`
}
AllocateFileResponse for upload requests
type CustomerInfo ¶
type CustomerInfo struct {
Username string `json:"username"`
Email string `json:"email"`
Name string `json:"name"`
CountryCode string `json:"country_code"`
LanguageCode string `json:"language_code"`
CustomerGroupCode string `json:"customer_group_code"`
BrandCode string `json:"brand_code"`
AccountType string `json:"account_type"`
SubscriptionType string `json:"subscription_type"`
Usage int64 `json:"usage"`
Quota int64 `json:"quota"`
BusinessUsage int64 `json:"business_usage"`
BusinessQuota int64 `json:"business_quota"`
WriteLocked bool `json:"write_locked"`
ReadLocked bool `json:"read_locked"`
LockedCause any `json:"locked_cause"`
WebHash string `json:"web_hash"`
AndroidHash string `json:"android_hash"`
IOSHash string `json:"ios_hash"`
}
CustomerInfo provides general information about the account. Required for finding the correct internal username.
type DeviceRegistrationResponse ¶
type DeviceRegistrationResponse struct {
ClientID string `json:"client_id"`
ClientSecret string `json:"client_secret"`
}
DeviceRegistrationResponse is the response to registering a device
type DriveInfo ¶
type DriveInfo struct {
Username string `xml:"username"`
AccountType string `xml:"account-type"`
Locked bool `xml:"locked"`
Capacity int64 `xml:"capacity"`
MaxDevices int `xml:"max-devices"`
MaxMobileDevices int `xml:"max-mobile-devices"`
Usage int64 `xml:"usage"`
ReadLocked bool `xml:"read-locked"`
WriteLocked bool `xml:"write-locked"`
QuotaWriteLocked bool `xml:"quota-write-locked"`
EnableSync bool `xml:"enable-sync"`
Devices []JottaDevice `xml:"devices>device"`
}
DriveInfo represents a Jottacloud account
type Error ¶
type Error struct {
StatusCode int `xml:"code"`
Message string `xml:"message"`
Reason string `xml:"reason"`
Cause string `xml:"cause"`
}
Error is a custom Error for wrapping Jottacloud error responses
type Flag ¶
type Flag bool
Flag is a hacky type for checking if an attribute is present
func (*Flag) MarshalXMLAttr ¶
MarshalXMLAttr : Do not use
type JottaDevice ¶
type JottaDevice struct {
Name string `xml:"name"`
DisplayName string `xml:"display_name"`
Type string `xml:"type"`
Sid string `xml:"sid"`
Size int64 `xml:"size"`
User string `xml:"user"`
MountPoints []JottaMountPoint `xml:"mountPoints>mountPoint"`
}
JottaDevice represents a Jottacloud Device
type JottaFile ¶
type JottaFile struct {
XMLName xml.Name
Name string `xml:"name,attr"`
Deleted Flag `xml:"deleted,attr"`
PublicURI string `xml:"publicURI"`
State string `xml:"currentRevision>state"`
CreatedAt JottaTime `xml:"currentRevision>created"`
ModifiedAt JottaTime `xml:"currentRevision>modified"`
UpdatedAt JottaTime `xml:"currentRevision>updated"`
Size int64 `xml:"currentRevision>size"`
MimeType string `xml:"currentRevision>mime"`
MD5 string `xml:"currentRevision>md5"`
}
JottaFile represents a Jottacloud file
type JottaFolder ¶
type JottaFolder struct {
XMLName xml.Name
Name string `xml:"name,attr"`
Deleted Flag `xml:"deleted,attr"`
Path string `xml:"path"`
CreatedAt JottaTime `xml:"created"`
ModifiedAt JottaTime `xml:"modified"`
Updated JottaTime `xml:"updated"`
Folders []JottaFolder `xml:"folders>folder"`
Files []JottaFile `xml:"files>file"`
}
JottaFolder represents a JottacloudFolder
type JottaMountPoint ¶
type JottaMountPoint struct {
Name string `xml:"name"`
Size int64 `xml:"size"`
Device string `xml:"device"`
Folders []JottaFolder `xml:"folders>folder"`
Files []JottaFile `xml:"files>file"`
}
JottaMountPoint represents a Jottacloud mountpoint
type JottaTime ¶
JottaTime represents time values in the classic API using a custom RFC3339 like format
func (*JottaTime) MarshalXML ¶
MarshalXML turns a JottaTime into XML
func (*JottaTime) UnmarshalXML ¶
UnmarshalXML turns XML into a JottaTime
type LoginToken ¶
type LoginToken struct {
Username string `json:"username"`
Realm string `json:"realm"`
WellKnownLink string `json:"well_known_link"`
AuthToken string `json:"auth_token"`
}
LoginToken is struct representing the login token generated in the WebUI
type Rfc3339Time ¶
Rfc3339Time represents time values in the newer APIs using standard RFC3339 format
func (*Rfc3339Time) MarshalJSON ¶
func (t *Rfc3339Time) MarshalJSON() ([]byte, error)
MarshalJSON turns a Rfc3339Time into JSON
func (*Rfc3339Time) MarshalXML ¶
func (t *Rfc3339Time) MarshalXML(e *xml.Encoder, start xml.StartElement) error
MarshalXML turns a Rfc3339Time into XML
func (Rfc3339Time) String ¶
func (t Rfc3339Time) String() string
String returns Rfc3339Time string in Jottacloud RFC3339 format
func (*Rfc3339Time) UnmarshalXML ¶
func (t *Rfc3339Time) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
UnmarshalXML turns XML into a Rfc3339Time
type TokenJSON ¶
type TokenJSON struct {
AccessToken string `json:"access_token"`
ExpiresIn int32 `json:"expires_in"` // at least PayPal returns string, while most return number
RefreshExpiresIn int32 `json:"refresh_expires_in"`
RefreshToken string `json:"refresh_token"`
TokenType string `json:"token_type"`
IDToken string `json:"id_token"`
NotBeforePolicy int32 `json:"not-before-policy"`
SessionState string `json:"session_state"`
Scope string `json:"scope"`
}
TokenJSON is the struct representing the HTTP response from OAuth2 providers returning a token in JSON form.
type TrashResponse ¶
TrashResponse is returned when emptying the Trash
type UploadResponse ¶
type UploadResponse struct {
Path string `json:"path"`
ContentID string `json:"content_id"`
Bytes int64 `json:"bytes"`
Md5 string `json:"md5"`
Modified int64 `json:"modified"`
}
UploadResponse after an upload
type WellKnown ¶
type WellKnown struct {
Issuer string `json:"issuer"`
AuthorizationEndpoint string `json:"authorization_endpoint"`
TokenEndpoint string `json:"token_endpoint"`
TokenIntrospectionEndpoint string `json:"token_introspection_endpoint"`
UserinfoEndpoint string `json:"userinfo_endpoint"`
EndSessionEndpoint string `json:"end_session_endpoint"`
JwksURI string `json:"jwks_uri"`
CheckSessionIframe string `json:"check_session_iframe"`
GrantTypesSupported []string `json:"grant_types_supported"`
ResponseTypesSupported []string `json:"response_types_supported"`
SubjectTypesSupported []string `json:"subject_types_supported"`
IDTokenSigningAlgValuesSupported []string `json:"id_token_signing_alg_values_supported"`
UserinfoSigningAlgValuesSupported []string `json:"userinfo_signing_alg_values_supported"`
RequestObjectSigningAlgValuesSupported []string `json:"request_object_signing_alg_values_supported"`
ResponseNodesSupported []string `json:"response_modes_supported"`
RegistrationEndpoint string `json:"registration_endpoint"`
TokenEndpointAuthMethodsSupported []string `json:"token_endpoint_auth_methods_supported"`
TokenEndpointAuthSigningAlgValuesSupported []string `json:"token_endpoint_auth_signing_alg_values_supported"`
ClaimsSupported []string `json:"claims_supported"`
ClaimTypesSupported []string `json:"claim_types_supported"`
ClaimsParameterSupported bool `json:"claims_parameter_supported"`
ScopesSupported []string `json:"scopes_supported"`
RequestParameterSupported bool `json:"request_parameter_supported"`
RequestURIParameterSupported bool `json:"request_uri_parameter_supported"`
CodeChallengeMethodsSupported []string `json:"code_challenge_methods_supported"`
TLSClientCertificateBoundAccessTokens bool `json:"tls_client_certificate_bound_access_tokens"`
IntrospectionEndpoint string `json:"introspection_endpoint"`
}
WellKnown contains some configuration parameters for setting up endpoints