#
# Autogenerated by Thrift Compiler (0.5.0-en-exported)
#
# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
#
require 'thrift'
require 'types_types'
require 'errors_types'
module Evernote
module EDAM
module UserStore
# This structure is used to provide publicly-available user information
# about a particular account.
#
# - userId:
# -
# The unique numeric user identifier for the user account.
#
# - shardId:
# -
# DEPRECATED - Client applications should have no need to use this field.
#
# - privilege:
# -
# The privilege level of the account, to determine whether
# this is a Premium or Free account.
#
# - noteStoreUrl:
# -
# This field will contain the full URL that clients should use to make
# NoteStore requests to the server shard that contains that user's data.
# I.e. this is the URL that should be used to create the Thrift HTTP client
# transport to send messages to the NoteStore service for the account.
#
# - webApiUrlPrefix:
# -
# This field will contain the initial part of the URLs that should be used
# to make requests to Evernote's thin client "web API", which provide
# optimized operations for clients that aren't capable of manipulating
# the full contents of accounts via the full Thrift data model. Clients
# should concatenate the relative path for the various servlets onto the
# end of this string to construct the full URL, as documented on our
# developer web site.
#
#
class PublicUserInfo
include ::Thrift::Struct, ::Thrift::Struct_Union
USERID = 1
SHARDID = 2
PRIVILEGE = 3
USERNAME = 4
NOTESTOREURL = 5
WEBAPIURLPREFIX = 6
FIELDS = {
USERID => {:type => ::Thrift::Types::I32, :name => 'userId'},
SHARDID => {:type => ::Thrift::Types::STRING, :name => 'shardId'},
PRIVILEGE => {:type => ::Thrift::Types::I32, :name => 'privilege', :optional => true, :enum_class => ::Evernote::EDAM::Type::PrivilegeLevel},
USERNAME => {:type => ::Thrift::Types::STRING, :name => 'username', :optional => true},
NOTESTOREURL => {:type => ::Thrift::Types::STRING, :name => 'noteStoreUrl', :optional => true},
WEBAPIURLPREFIX => {:type => ::Thrift::Types::STRING, :name => 'webApiUrlPrefix', :optional => true}
}
def struct_fields; FIELDS; end
def validate
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field userId is unset!') unless @userId
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field shardId is unset!') unless @shardId
unless @privilege.nil? || ::Evernote::EDAM::Type::PrivilegeLevel::VALID_VALUES.include?(@privilege)
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field privilege!')
end
end
::Thrift::Struct.generate_accessors self
end
# When an authentication (or re-authentication) is performed, this structure
# provides the result to the client.
#
# - currentTime:
# -
# The server-side date and time when this result was
# generated.
#
# - authenticationToken:
# -
# Holds an opaque, ASCII-encoded token that can be
# used by the client to perform actions on a NoteStore.
#
# - expiration:
# -
# Holds the server-side date and time when the
# authentication token will expire.
# This time can be compared to "currentTime" to produce an expiration
# time that can be reconciled with the client's local clock.
#
# - user:
# -
# Holds the information about the account which was
# authenticated if this was a full authentication. May be absent if this
# particular authentication did not require user information.
#
# - publicUserInfo:
# -
# If this authentication result was achieved without full permissions to
# access the full User structure, this field may be set to give back
# a more limited public set of data.
#
# - noteStoreUrl:
# -
# This field will contain the full URL that clients should use to make
# NoteStore requests to the server shard that contains that user's data.
# I.e. this is the URL that should be used to create the Thrift HTTP client
# transport to send messages to the NoteStore service for the account.
#
# - webApiUrlPrefix:
# -
# This field will contain the initial part of the URLs that should be used
# to make requests to Evernote's thin client "web API", which provide
# optimized operations for clients that aren't capable of manipulating
# the full contents of accounts via the full Thrift data model. Clients
# should concatenate the relative path for the various servlets onto the
# end of this string to construct the full URL, as documented on our
# developer web site.
#
# - secondFactorRequired:
# -
# If set to true, this field indicates that the user has enabled two-factor
# authentication and must enter their second factor in order to complete
# authentication. In this case the value of authenticationResult will be
# a short-lived authentication token that may only be used to make a
# subsequent call to completeTwoFactorAuthentication.
#
# - secondFactorDeliveryHint:
# -
# When secondFactorRequired is set to true, this field may contain a string
# describing the second factor delivery method that the user has configured.
# This will typically be an obfuscated mobile device number, such as
# "(xxx) xxx-x095". This string can be displayed to the user to remind them
# how to obtain the required second factor.
# TODO do we need to differentiate between SMS and voice delivery?
#
#
class AuthenticationResult
include ::Thrift::Struct, ::Thrift::Struct_Union
CURRENTTIME = 1
AUTHENTICATIONTOKEN = 2
EXPIRATION = 3
USER = 4
PUBLICUSERINFO = 5
NOTESTOREURL = 6
WEBAPIURLPREFIX = 7
SECONDFACTORREQUIRED = 8
SECONDFACTORDELIVERYHINT = 9
FIELDS = {
CURRENTTIME => {:type => ::Thrift::Types::I64, :name => 'currentTime'},
AUTHENTICATIONTOKEN => {:type => ::Thrift::Types::STRING, :name => 'authenticationToken'},
EXPIRATION => {:type => ::Thrift::Types::I64, :name => 'expiration'},
USER => {:type => ::Thrift::Types::STRUCT, :name => 'user', :class => ::Evernote::EDAM::Type::User, :optional => true},
PUBLICUSERINFO => {:type => ::Thrift::Types::STRUCT, :name => 'publicUserInfo', :class => ::Evernote::EDAM::UserStore::PublicUserInfo, :optional => true},
NOTESTOREURL => {:type => ::Thrift::Types::STRING, :name => 'noteStoreUrl', :optional => true},
WEBAPIURLPREFIX => {:type => ::Thrift::Types::STRING, :name => 'webApiUrlPrefix', :optional => true},
SECONDFACTORREQUIRED => {:type => ::Thrift::Types::BOOL, :name => 'secondFactorRequired', :optional => true},
SECONDFACTORDELIVERYHINT => {:type => ::Thrift::Types::STRING, :name => 'secondFactorDeliveryHint', :optional => true}
}
def struct_fields; FIELDS; end
def validate
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field currentTime is unset!') unless @currentTime
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field authenticationToken is unset!') unless @authenticationToken
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field expiration is unset!') unless @expiration
end
::Thrift::Struct.generate_accessors self
end
# This structure describes a collection of bootstrap settings.
#
# - serviceHost:
# -
# The hostname and optional port for composing Evernote web service URLs.
# This URL can be used to access the UserStore and related services,
# but must not be used to compose the NoteStore URL. Client applications
# must handle serviceHost values that include only the hostname
# (e.g. www.evernote.com) or both the hostname and port (e.g. www.evernote.com:8080).
# If no port is specified, or if port 443 is specified, client applications must
# use the scheme "https" when composing URLs. Otherwise, a client must use the
# scheme "http".
#
# - marketingUrl:
# -
# The URL stem for the Evernote corporate marketing website, e.g. http://www.evernote.com.
# This stem can be used to compose website URLs. For example, the URL of the Evernote
# Trunk is composed by appending "/about/trunk/" to the value of marketingUrl.
#
# - supportUrl:
# -
# The full URL for the Evernote customer support website, e.g. https://support.evernote.com.
#
# - accountEmailDomain:
# -
# The domain used for an Evernote user's incoming email address, which allows notes to
# be emailed into an account. E.g. m.evernote.com.
#
# - enableFacebookSharing:
# -
# Whether the client application should enable sharing of notes on Facebook.
#
# - enableGiftSubscriptions:
# -
# Whether the client application should enable gift subscriptions.
#
# - enableSupportTickets:
# -
# Whether the client application should enable in-client creation of support tickets.
#
# - enableSharedNotebooks:
# -
# Whether the client application should enable shared notebooks.
#
# - enableSingleNoteSharing:
# -
# Whether the client application should enable single note sharing.
#
# - enableSponsoredAccounts:
# -
# Whether the client application should enable sponsored accounts.
#
# - enableTwitterSharing:
# -
# Whether the client application should enable sharing of notes on Twitter.
#
#
class BootstrapSettings
include ::Thrift::Struct, ::Thrift::Struct_Union
SERVICEHOST = 1
MARKETINGURL = 2
SUPPORTURL = 3
ACCOUNTEMAILDOMAIN = 4
ENABLEFACEBOOKSHARING = 5
ENABLEGIFTSUBSCRIPTIONS = 6
ENABLESUPPORTTICKETS = 7
ENABLESHAREDNOTEBOOKS = 8
ENABLESINGLENOTESHARING = 9
ENABLESPONSOREDACCOUNTS = 10
ENABLETWITTERSHARING = 11
ENABLELINKEDINSHARING = 12
ENABLEPUBLICNOTEBOOKS = 13
FIELDS = {
SERVICEHOST => {:type => ::Thrift::Types::STRING, :name => 'serviceHost'},
MARKETINGURL => {:type => ::Thrift::Types::STRING, :name => 'marketingUrl'},
SUPPORTURL => {:type => ::Thrift::Types::STRING, :name => 'supportUrl'},
ACCOUNTEMAILDOMAIN => {:type => ::Thrift::Types::STRING, :name => 'accountEmailDomain'},
ENABLEFACEBOOKSHARING => {:type => ::Thrift::Types::BOOL, :name => 'enableFacebookSharing', :optional => true},
ENABLEGIFTSUBSCRIPTIONS => {:type => ::Thrift::Types::BOOL, :name => 'enableGiftSubscriptions', :optional => true},
ENABLESUPPORTTICKETS => {:type => ::Thrift::Types::BOOL, :name => 'enableSupportTickets', :optional => true},
ENABLESHAREDNOTEBOOKS => {:type => ::Thrift::Types::BOOL, :name => 'enableSharedNotebooks', :optional => true},
ENABLESINGLENOTESHARING => {:type => ::Thrift::Types::BOOL, :name => 'enableSingleNoteSharing', :optional => true},
ENABLESPONSOREDACCOUNTS => {:type => ::Thrift::Types::BOOL, :name => 'enableSponsoredAccounts', :optional => true},
ENABLETWITTERSHARING => {:type => ::Thrift::Types::BOOL, :name => 'enableTwitterSharing', :optional => true},
ENABLELINKEDINSHARING => {:type => ::Thrift::Types::BOOL, :name => 'enableLinkedInSharing', :optional => true},
ENABLEPUBLICNOTEBOOKS => {:type => ::Thrift::Types::BOOL, :name => 'enablePublicNotebooks', :optional => true}
}
def struct_fields; FIELDS; end
def validate
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field serviceHost is unset!') unless @serviceHost
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field marketingUrl is unset!') unless @marketingUrl
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field supportUrl is unset!') unless @supportUrl
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field accountEmailDomain is unset!') unless @accountEmailDomain
end
::Thrift::Struct.generate_accessors self
end
# This structure describes a collection of bootstrap settings.
#
# - name:
# -
# The unique name of the profile, which is guaranteed to remain consistent across
# calls to getBootstrapInfo.
#
# - settings:
# -
# The settings for this profile.
#
#
class BootstrapProfile
include ::Thrift::Struct, ::Thrift::Struct_Union
NAME = 1
SETTINGS = 2
FIELDS = {
NAME => {:type => ::Thrift::Types::STRING, :name => 'name'},
SETTINGS => {:type => ::Thrift::Types::STRUCT, :name => 'settings', :class => ::Evernote::EDAM::UserStore::BootstrapSettings}
}
def struct_fields; FIELDS; end
def validate
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field name is unset!') unless @name
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field settings is unset!') unless @settings
end
::Thrift::Struct.generate_accessors self
end
# This structure describes a collection of bootstrap profiles.
#
# - profiles:
# -
# List of one or more bootstrap profiles, in descending
# preference order.
#
#
class BootstrapInfo
include ::Thrift::Struct, ::Thrift::Struct_Union
PROFILES = 1
FIELDS = {
PROFILES => {:type => ::Thrift::Types::LIST, :name => 'profiles', :element => {:type => ::Thrift::Types::STRUCT, :class => ::Evernote::EDAM::UserStore::BootstrapProfile}}
}
def struct_fields; FIELDS; end
def validate
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field profiles is unset!') unless @profiles
end
::Thrift::Struct.generate_accessors self
end
end
end
end