evernote-thrift 1.22.2 → 1.23.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -315,7 +315,6 @@ module Evernote
315
315
  # The value can be a literal match or, if the last character is an
316
316
  # asterisk, a prefix match.
317
317
  # </dd>
318
- #
319
318
  # </dl>
320
319
  class SyncChunkFilter
321
320
  include ::Thrift::Struct, ::Thrift::Struct_Union
@@ -409,6 +408,14 @@ module Evernote
409
408
  # the Trash) will be returned. Otherwise, only active notes will be returned.
410
409
  # There is no way to find both active and inactive notes in a single query.
411
410
  # </dd>
411
+ #
412
+ # <dt>emphasized</dt>
413
+ # <dd>
414
+ # If present, a search query string that may or may not influence the notes
415
+ # to be returned, both in terms of coverage as well as of order. Think of it
416
+ # as a wish list, not a requirement.
417
+ # Accepts the full search grammar documented in the Evernote API Overview.
418
+ # </dd>
412
419
  # </dl>
413
420
  class NoteFilter
414
421
  include ::Thrift::Struct, ::Thrift::Struct_Union
@@ -419,6 +426,7 @@ module Evernote
419
426
  TAGGUIDS = 5
420
427
  TIMEZONE = 6
421
428
  INACTIVE = 7
429
+ EMPHASIZED = 8
422
430
 
423
431
  FIELDS = {
424
432
  ORDER => {:type => ::Thrift::Types::I32, :name => 'order', :optional => true},
@@ -427,7 +435,8 @@ module Evernote
427
435
  NOTEBOOKGUID => {:type => ::Thrift::Types::STRING, :name => 'notebookGuid', :optional => true},
428
436
  TAGGUIDS => {:type => ::Thrift::Types::LIST, :name => 'tagGuids', :element => {:type => ::Thrift::Types::STRING}, :optional => true},
429
437
  TIMEZONE => {:type => ::Thrift::Types::STRING, :name => 'timeZone', :optional => true},
430
- INACTIVE => {:type => ::Thrift::Types::BOOL, :name => 'inactive', :optional => true}
438
+ INACTIVE => {:type => ::Thrift::Types::BOOL, :name => 'inactive', :optional => true},
439
+ EMPHASIZED => {:type => ::Thrift::Types::STRING, :name => 'emphasized', :optional => true}
431
440
  }
432
441
 
433
442
  def struct_fields; FIELDS; end
@@ -743,105 +752,6 @@ module Evernote
743
752
  ::Thrift::Struct.generate_accessors self
744
753
  end
745
754
 
746
- # Information for tracking the display of a particular ad by a client.
747
- #
748
- # <dl>
749
- # <dt>adId</dt>
750
- # <dd>
751
- # The identifier for this ad, from a previous Ad.id given to the client
752
- # </dd>
753
- #
754
- # <dt>impressionCount</dt>
755
- # <dd>
756
- # The number of times this ad was displayed since the last successful
757
- # ad retrieval. The client should only report times the ad was selected
758
- # when the client was visible.
759
- # </dd>
760
- #
761
- # <dt>impressionTime</dt>
762
- # <dd>
763
- # The number of seconds that the client displayed the advertisement since
764
- # the last successful ad retrieval. This corresponds to the seconds that
765
- # the client application was visible.
766
- # </dd>
767
- # </dl>
768
- class AdImpressions
769
- include ::Thrift::Struct, ::Thrift::Struct_Union
770
- ADID = 1
771
- IMPRESSIONCOUNT = 2
772
- IMPRESSIONTIME = 3
773
-
774
- FIELDS = {
775
- ADID => {:type => ::Thrift::Types::I32, :name => 'adId'},
776
- IMPRESSIONCOUNT => {:type => ::Thrift::Types::I32, :name => 'impressionCount'},
777
- IMPRESSIONTIME => {:type => ::Thrift::Types::I32, :name => 'impressionTime'}
778
- }
779
-
780
- def struct_fields; FIELDS; end
781
-
782
- def validate
783
- raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field adId is unset!') unless @adId
784
- raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field impressionCount is unset!') unless @impressionCount
785
- raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field impressionTime is unset!') unless @impressionTime
786
- end
787
-
788
- ::Thrift::Struct.generate_accessors self
789
- end
790
-
791
- # Parameters that will be given by a client to the service when it requests
792
- # a set of advertisements to display. If any of these values are omitted,
793
- # the service will use default values.
794
- #
795
- # <dl>
796
- # <dt>clientLanguage</dt>
797
- # <dd>
798
- # The ISO 639-1 language code for the primary language for the client.
799
- # If omitted, English will be assumed ('en').
800
- # </dd>
801
- #
802
- # <dt>impressions</dt>
803
- # <dd>
804
- # A list of the impression counts and total display time for the ads
805
- # that were displayed in the last day.
806
- # </dd>
807
- #
808
- # <dt>supportHtml</dt>
809
- # <dd>
810
- # If true, the client requesting the ads supports ads specified via
811
- # general HTML (with rich media, Javascript, etc.).
812
- # </dd>
813
- #
814
- # <dt>clientProperties</dt>
815
- # <dd>
816
- # If provided, this may contain a set of key/value pairs that identify
817
- # the characteristics of a particular client that may be used to help
818
- # determine appropriate ads for that client. These tuples may be used
819
- # either to reduce or increase the likelihood that each ad will be
820
- # returned.
821
- # </dd>
822
- # </dl>
823
- class AdParameters
824
- include ::Thrift::Struct, ::Thrift::Struct_Union
825
- CLIENTLANGUAGE = 2
826
- IMPRESSIONS = 4
827
- SUPPORTHTML = 5
828
- CLIENTPROPERTIES = 6
829
-
830
- FIELDS = {
831
- CLIENTLANGUAGE => {:type => ::Thrift::Types::STRING, :name => 'clientLanguage', :optional => true},
832
- IMPRESSIONS => {:type => ::Thrift::Types::LIST, :name => 'impressions', :element => {:type => ::Thrift::Types::STRUCT, :class => Evernote::EDAM::NoteStore::AdImpressions}, :optional => true},
833
- SUPPORTHTML => {:type => ::Thrift::Types::BOOL, :name => 'supportHtml', :optional => true},
834
- CLIENTPROPERTIES => {:type => ::Thrift::Types::MAP, :name => 'clientProperties', :key => {:type => ::Thrift::Types::STRING}, :value => {:type => ::Thrift::Types::STRING}, :optional => true}
835
- }
836
-
837
- def struct_fields; FIELDS; end
838
-
839
- def validate
840
- end
841
-
842
- ::Thrift::Struct.generate_accessors self
843
- end
844
-
845
755
  # Parameters that must be given to the NoteStore emailNote call. These allow
846
756
  # the caller to specify the note to send, the recipient addresses, etc.
847
757
  #
@@ -1008,7 +918,10 @@ module Evernote
1008
918
  end
1009
919
 
1010
920
  # A description of the thing for which we are searching for related
1011
- # entities. You must choose exactly one field.
921
+ # entities.
922
+ #
923
+ # You must specify either <em>noteGuid</em> or <em>plainText</em>, but
924
+ # not both. <em>filter</em> is optional.
1012
925
  #
1013
926
  # <dl>
1014
927
  # <dt>noteGuid</dt>
@@ -1020,15 +933,24 @@ module Evernote
1020
933
  # You should provide a text block with a number of characters between
1021
934
  # EDAM_RELATED_PLAINTEXT_LEN_MIN and EDAM_RELATED_PLAINTEXT_LEN_MAX.
1022
935
  # </dd>
936
+ #
937
+ # <dt>filter</dt>
938
+ # <dd>The list of criteria that will constrain the notes being considered
939
+ # related.
940
+ # Please note that some of the parameters may be ignored, such as
941
+ # <em>order</em> and <em>ascending</em>.
942
+ # </dd>
1023
943
  # </dl>
1024
944
  class RelatedQuery
1025
945
  include ::Thrift::Struct, ::Thrift::Struct_Union
1026
946
  NOTEGUID = 1
1027
947
  PLAINTEXT = 2
948
+ FILTER = 3
1028
949
 
1029
950
  FIELDS = {
1030
951
  NOTEGUID => {:type => ::Thrift::Types::STRING, :name => 'noteGuid', :optional => true},
1031
- PLAINTEXT => {:type => ::Thrift::Types::STRING, :name => 'plainText', :optional => true}
952
+ PLAINTEXT => {:type => ::Thrift::Types::STRING, :name => 'plainText', :optional => true},
953
+ FILTER => {:type => ::Thrift::Types::STRUCT, :name => 'filter', :class => Evernote::EDAM::NoteStore::NoteFilter, :optional => true}
1032
954
  }
1033
955
 
1034
956
  def struct_fields; FIELDS; end
@@ -1058,16 +980,35 @@ module Evernote
1058
980
  # <dd>If tags have been requested to be included, this will be the list
1059
981
  # of tags.</dd>
1060
982
  # </dl>
983
+ #
984
+ # <dt>containingNotebooks</dt>
985
+ # <dd>If <code>includeContainingNotebooks</code> is set to <code>true</code>
986
+ # in the RelatedResultSpec, return the list of notebooks to
987
+ # to which the returned related notes belong. The notebooks in this
988
+ # list will occur once per notebook GUID and are represented as
989
+ # NotebookDescriptor objects.</dd>
990
+ # </dl>
991
+ #
992
+ # <dt>debugInfo</dt>
993
+ # <dd>NOTE: This should be excluded from the public API.<br /><br />
994
+ # If <code>includeDebugInfo</code> in RelatedResultSpec is set to
995
+ # <code>true</code>, this field may contain debug information
996
+ # if the service decides to do so.</dd>
997
+ # </dl>
1061
998
  class RelatedResult
1062
999
  include ::Thrift::Struct, ::Thrift::Struct_Union
1063
1000
  NOTES = 1
1064
1001
  NOTEBOOKS = 2
1065
1002
  TAGS = 3
1003
+ CONTAININGNOTEBOOKS = 4
1004
+ DEBUGINFO = 5
1066
1005
 
1067
1006
  FIELDS = {
1068
1007
  NOTES => {:type => ::Thrift::Types::LIST, :name => 'notes', :element => {:type => ::Thrift::Types::STRUCT, :class => Evernote::EDAM::Type::Note}, :optional => true},
1069
1008
  NOTEBOOKS => {:type => ::Thrift::Types::LIST, :name => 'notebooks', :element => {:type => ::Thrift::Types::STRUCT, :class => Evernote::EDAM::Type::Notebook}, :optional => true},
1070
- TAGS => {:type => ::Thrift::Types::LIST, :name => 'tags', :element => {:type => ::Thrift::Types::STRUCT, :class => Evernote::EDAM::Type::Tag}, :optional => true}
1009
+ TAGS => {:type => ::Thrift::Types::LIST, :name => 'tags', :element => {:type => ::Thrift::Types::STRUCT, :class => Evernote::EDAM::Type::Tag}, :optional => true},
1010
+ CONTAININGNOTEBOOKS => {:type => ::Thrift::Types::LIST, :name => 'containingNotebooks', :element => {:type => ::Thrift::Types::STRUCT, :class => Evernote::EDAM::Type::NotebookDescriptor}, :optional => true},
1011
+ DEBUGINFO => {:type => ::Thrift::Types::STRING, :name => 'debugInfo', :optional => true}
1071
1012
  }
1072
1013
 
1073
1014
  def struct_fields; FIELDS; end
@@ -1081,7 +1022,7 @@ module Evernote
1081
1022
  # A description of the thing for which the service will find related
1082
1023
  # entities, via findRelated(), together with a description of what
1083
1024
  # type of entities and how many you are seeking in the
1084
- # RelatednessResult.
1025
+ # RelatedResult.
1085
1026
  #
1086
1027
  # <dl>
1087
1028
  # <dt>maxNotes</dt>
@@ -1102,16 +1043,41 @@ module Evernote
1102
1043
  # will be silently capped. If you do not set this field, then
1103
1044
  # no tags will be returned.</dd>
1104
1045
  # </dl>
1046
+ #
1047
+ # <dt>writableNotebooksOnly</dt>
1048
+ # <dd>Require that all returned related notebooks are writable.
1049
+ # The user will be able to create notes in all returned notebooks.
1050
+ # However, individual notes returned may still belong to notebooks
1051
+ # in which the user lacks the ability to create notes.</dd>
1052
+ # </dl>
1053
+ #
1054
+ # <dt>includeContainingNotebooks</dt>
1055
+ # <dd>If set to <code>true</code>, return the containingNotebooks field
1056
+ # in the RelatedResult, which will contain the list of notebooks to
1057
+ # to which the returned related notes belong.</dd>
1058
+ # </dl>
1059
+ #
1060
+ # <dt>includeDebugInfo</dt>
1061
+ # <dd>NOTE: This should be excluded from the public API.<br /><br />
1062
+ # If set to <code>true</code>, indicate that debug information should
1063
+ # be returned in the 'debugInfo' field of RelatedResult.</dd>
1064
+ # </dl>
1105
1065
  class RelatedResultSpec
1106
1066
  include ::Thrift::Struct, ::Thrift::Struct_Union
1107
1067
  MAXNOTES = 1
1108
1068
  MAXNOTEBOOKS = 2
1109
1069
  MAXTAGS = 3
1070
+ WRITABLENOTEBOOKSONLY = 4
1071
+ INCLUDECONTAININGNOTEBOOKS = 5
1072
+ INCLUDEDEBUGINFO = 6
1110
1073
 
1111
1074
  FIELDS = {
1112
1075
  MAXNOTES => {:type => ::Thrift::Types::I32, :name => 'maxNotes', :optional => true},
1113
1076
  MAXNOTEBOOKS => {:type => ::Thrift::Types::I32, :name => 'maxNotebooks', :optional => true},
1114
- MAXTAGS => {:type => ::Thrift::Types::I32, :name => 'maxTags', :optional => true}
1077
+ MAXTAGS => {:type => ::Thrift::Types::I32, :name => 'maxTags', :optional => true},
1078
+ WRITABLENOTEBOOKSONLY => {:type => ::Thrift::Types::BOOL, :name => 'writableNotebooksOnly', :optional => true},
1079
+ INCLUDECONTAININGNOTEBOOKS => {:type => ::Thrift::Types::BOOL, :name => 'includeContainingNotebooks', :optional => true},
1080
+ INCLUDEDEBUGINFO => {:type => ::Thrift::Types::BOOL, :name => 'includeDebugInfo', :optional => true}
1115
1081
  }
1116
1082
 
1117
1083
  def struct_fields; FIELDS; end
@@ -9,6 +9,12 @@ require 'types_types'
9
9
  module Evernote
10
10
  module EDAM
11
11
  module Type
12
+ CLASSIFICATION_RECIPE_USER_NON_RECIPE = %q"000"
13
+
14
+ CLASSIFICATION_RECIPE_USER_RECIPE = %q"001"
15
+
16
+ CLASSIFICATION_RECIPE_SERVICE_RECIPE = %q"002"
17
+
12
18
  EDAM_NOTE_SOURCE_WEB_CLIP = %q"web.clip"
13
19
 
14
20
  EDAM_NOTE_SOURCE_MAIL_CLIP = %q"mail.clip"
@@ -48,6 +48,39 @@ module Evernote
48
48
  VALID_VALUES = Set.new([NONE, PENDING, ACTIVE, FAILED, CANCELLATION_PENDING, CANCELED]).freeze
49
49
  end
50
50
 
51
+ module SharedNotebookPrivilegeLevel
52
+ READ_NOTEBOOK = 0
53
+ MODIFY_NOTEBOOK_PLUS_ACTIVITY = 1
54
+ READ_NOTEBOOK_PLUS_ACTIVITY = 2
55
+ GROUP = 3
56
+ FULL_ACCESS = 4
57
+ BUSINESS_FULL_ACCESS = 5
58
+ VALUE_MAP = {0 => "READ_NOTEBOOK", 1 => "MODIFY_NOTEBOOK_PLUS_ACTIVITY", 2 => "READ_NOTEBOOK_PLUS_ACTIVITY", 3 => "GROUP", 4 => "FULL_ACCESS", 5 => "BUSINESS_FULL_ACCESS"}
59
+ VALID_VALUES = Set.new([READ_NOTEBOOK, MODIFY_NOTEBOOK_PLUS_ACTIVITY, READ_NOTEBOOK_PLUS_ACTIVITY, GROUP, FULL_ACCESS, BUSINESS_FULL_ACCESS]).freeze
60
+ end
61
+
62
+ module SponsoredGroupRole
63
+ GROUP_MEMBER = 1
64
+ GROUP_ADMIN = 2
65
+ GROUP_OWNER = 3
66
+ VALUE_MAP = {1 => "GROUP_MEMBER", 2 => "GROUP_ADMIN", 3 => "GROUP_OWNER"}
67
+ VALID_VALUES = Set.new([GROUP_MEMBER, GROUP_ADMIN, GROUP_OWNER]).freeze
68
+ end
69
+
70
+ module BusinessUserRole
71
+ ADMIN = 1
72
+ NORMAL = 2
73
+ VALUE_MAP = {1 => "ADMIN", 2 => "NORMAL"}
74
+ VALID_VALUES = Set.new([ADMIN, NORMAL]).freeze
75
+ end
76
+
77
+ module SharedNotebookInstanceRestrictions
78
+ ONLY_JOINED_OR_PREVIEW = 1
79
+ NO_SHARED_NOTEBOOKS = 2
80
+ VALUE_MAP = {1 => "ONLY_JOINED_OR_PREVIEW", 2 => "NO_SHARED_NOTEBOOKS"}
81
+ VALID_VALUES = Set.new([ONLY_JOINED_OR_PREVIEW, NO_SHARED_NOTEBOOKS]).freeze
82
+ end
83
+
51
84
  # In several places, EDAM exchanges blocks of bytes of data for a component
52
85
  # which may be relatively large. For example: the contents of a clipped
53
86
  # HTML note, the bytes of an embedded image, or the recognition XML for
@@ -260,6 +293,11 @@ module Evernote
260
293
  # account owner's settings page
261
294
  # </dd>
262
295
  # </dl>
296
+ #
297
+ # <dt>taxExempt</dt>
298
+ # <dd>A flag indicating the user's sponsored group is exempt from sale tax
299
+ # </dd>
300
+ # </dl>
263
301
  class UserAttributes
264
302
  include ::Thrift::Struct, ::Thrift::Struct_Union
265
303
  DEFAULTLOCATIONNAME = 1
@@ -291,6 +329,7 @@ module Evernote
291
329
  EDUCATIONALDISCOUNT = 29
292
330
  BUSINESSADDRESS = 30
293
331
  HIDESPONSORBILLING = 31
332
+ TAXEXEMPT = 32
294
333
 
295
334
  FIELDS = {
296
335
  DEFAULTLOCATIONNAME => {:type => ::Thrift::Types::STRING, :name => 'defaultLocationName', :optional => true},
@@ -321,7 +360,8 @@ module Evernote
321
360
  REFERRALPROOF => {:type => ::Thrift::Types::STRING, :name => 'referralProof', :optional => true},
322
361
  EDUCATIONALDISCOUNT => {:type => ::Thrift::Types::BOOL, :name => 'educationalDiscount', :optional => true},
323
362
  BUSINESSADDRESS => {:type => ::Thrift::Types::STRING, :name => 'businessAddress', :optional => true},
324
- HIDESPONSORBILLING => {:type => ::Thrift::Types::BOOL, :name => 'hideSponsorBilling', :optional => true}
363
+ HIDESPONSORBILLING => {:type => ::Thrift::Types::BOOL, :name => 'hideSponsorBilling', :optional => true},
364
+ TAXEXEMPT => {:type => ::Thrift::Types::BOOL, :name => 'taxExempt', :optional => true}
325
365
  }
326
366
 
327
367
  def struct_fields; FIELDS; end
@@ -407,6 +447,15 @@ module Evernote
407
447
  # <dd>ISO 4217 currency code</dd>
408
448
  # <dt>unitPrice</dt>
409
449
  # <dd>charge in the smallest unit of the currency (e.g. cents for USD)</dd>
450
+ # <dt>businessId</dt>
451
+ # <dd>If set, the ID of the Evernote Business account that the user is a
452
+ # member of. If not set, the user is not a member of a business.</dd>
453
+ # <dt>businessName</dt>
454
+ # <dd>The human-readable name of the Evernote Business account that
455
+ # the user is a member of.</dd>
456
+ # <dt>businessRole</dt>
457
+ # <dd>If set, the role of the user within the Evernote Business account
458
+ # that they are a member of.</dd>
410
459
  # </dl>
411
460
  class Accounting
412
461
  include ::Thrift::Struct, ::Thrift::Struct_Union
@@ -428,6 +477,9 @@ module Evernote
428
477
  LASTREQUESTEDCHARGE = 17
429
478
  CURRENCY = 18
430
479
  UNITPRICE = 19
480
+ BUSINESSID = 20
481
+ BUSINESSNAME = 21
482
+ BUSINESSROLE = 22
431
483
 
432
484
  FIELDS = {
433
485
  UPLOADLIMIT => {:type => ::Thrift::Types::I64, :name => 'uploadLimit', :optional => true},
@@ -447,7 +499,10 @@ module Evernote
447
499
  PREMIUMSUBSCRIPTIONNUMBER => {:type => ::Thrift::Types::STRING, :name => 'premiumSubscriptionNumber', :optional => true},
448
500
  LASTREQUESTEDCHARGE => {:type => ::Thrift::Types::I64, :name => 'lastRequestedCharge', :optional => true},
449
501
  CURRENCY => {:type => ::Thrift::Types::STRING, :name => 'currency', :optional => true},
450
- UNITPRICE => {:type => ::Thrift::Types::I32, :name => 'unitPrice', :optional => true}
502
+ UNITPRICE => {:type => ::Thrift::Types::I32, :name => 'unitPrice', :optional => true},
503
+ BUSINESSID => {:type => ::Thrift::Types::I32, :name => 'businessId', :optional => true},
504
+ BUSINESSNAME => {:type => ::Thrift::Types::STRING, :name => 'businessName', :optional => true},
505
+ BUSINESSROLE => {:type => ::Thrift::Types::I32, :name => 'businessRole', :optional => true, :enum_class => Evernote::EDAM::Type::BusinessUserRole}
451
506
  }
452
507
 
453
508
  def struct_fields; FIELDS; end
@@ -456,6 +511,98 @@ module Evernote
456
511
  unless @premiumServiceStatus.nil? || Evernote::EDAM::Type::PremiumOrderStatus::VALID_VALUES.include?(@premiumServiceStatus)
457
512
  raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field premiumServiceStatus!')
458
513
  end
514
+ unless @businessRole.nil? || Evernote::EDAM::Type::BusinessUserRole::VALID_VALUES.include?(@businessRole)
515
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field businessRole!')
516
+ end
517
+ end
518
+
519
+ ::Thrift::Struct.generate_accessors self
520
+ end
521
+
522
+ # This structure is used to provide information about a user's Premium account.
523
+ # <dl>
524
+ # <dt>currentTime</dt>
525
+ # <dd>
526
+ # The server-side date and time when this data was generated.
527
+ # </dd>
528
+ # <dt>premium</dt>
529
+ # <dd>
530
+ # True if the user's account is Premium.
531
+ # </dd>
532
+ # <dt>premiumRecurring</dt>
533
+ # <dd>
534
+ # True if the user's account is Premium and has a recurring payment method.
535
+ # </dd>
536
+ # <dt>premiumExpirationDate</dt>
537
+ # <dd>
538
+ # The date when the user's Premium account expires, or the date when the
539
+ # user's account will be charged if it has a recurring payment method.
540
+ # </dd>
541
+ # <dt>premiumExtendable</dt>
542
+ # <dd>
543
+ # True if the user is eligible for purchasing Premium account extensions.
544
+ # </dd>
545
+ # <dt>premiumPending</dt>
546
+ # <dd>
547
+ # True if the user's Premium account is pending payment confirmation
548
+ # </dd>
549
+ # <dt>premiumCancellationPending</dt>
550
+ # <dd>
551
+ # True if the user has requested that no further charges to be made; the
552
+ # Premium account will remain active until it expires.
553
+ # </dd>
554
+ # <dt>canPurchaseUploadAllowance</dt>
555
+ # <dd>
556
+ # True if the user is eligible for purchasing additional upload allowance.
557
+ # </dd>
558
+ # <dt>sponsoredGroupName</dt>
559
+ # <dd>
560
+ # The name of the sponsored group that the user is part of.
561
+ # </dd>
562
+ # <dt>sponsoredGroupRole</dt>
563
+ # <dd>
564
+ # DEPRECATED - will be removed in a future update.
565
+ # </dd>
566
+ # </dl>
567
+ class PremiumInfo
568
+ include ::Thrift::Struct, ::Thrift::Struct_Union
569
+ CURRENTTIME = 1
570
+ PREMIUM = 2
571
+ PREMIUMRECURRING = 3
572
+ PREMIUMEXPIRATIONDATE = 4
573
+ PREMIUMEXTENDABLE = 5
574
+ PREMIUMPENDING = 6
575
+ PREMIUMCANCELLATIONPENDING = 7
576
+ CANPURCHASEUPLOADALLOWANCE = 8
577
+ SPONSOREDGROUPNAME = 9
578
+ SPONSOREDGROUPROLE = 10
579
+
580
+ FIELDS = {
581
+ CURRENTTIME => {:type => ::Thrift::Types::I64, :name => 'currentTime'},
582
+ PREMIUM => {:type => ::Thrift::Types::BOOL, :name => 'premium'},
583
+ PREMIUMRECURRING => {:type => ::Thrift::Types::BOOL, :name => 'premiumRecurring'},
584
+ PREMIUMEXPIRATIONDATE => {:type => ::Thrift::Types::I64, :name => 'premiumExpirationDate', :optional => true},
585
+ PREMIUMEXTENDABLE => {:type => ::Thrift::Types::BOOL, :name => 'premiumExtendable'},
586
+ PREMIUMPENDING => {:type => ::Thrift::Types::BOOL, :name => 'premiumPending'},
587
+ PREMIUMCANCELLATIONPENDING => {:type => ::Thrift::Types::BOOL, :name => 'premiumCancellationPending'},
588
+ CANPURCHASEUPLOADALLOWANCE => {:type => ::Thrift::Types::BOOL, :name => 'canPurchaseUploadAllowance'},
589
+ SPONSOREDGROUPNAME => {:type => ::Thrift::Types::STRING, :name => 'sponsoredGroupName', :optional => true},
590
+ SPONSOREDGROUPROLE => {:type => ::Thrift::Types::I32, :name => 'sponsoredGroupRole', :optional => true, :enum_class => Evernote::EDAM::Type::SponsoredGroupRole}
591
+ }
592
+
593
+ def struct_fields; FIELDS; end
594
+
595
+ def validate
596
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field currentTime is unset!') unless @currentTime
597
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field premium is unset!') if @premium.nil?
598
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field premiumRecurring is unset!') if @premiumRecurring.nil?
599
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field premiumExtendable is unset!') if @premiumExtendable.nil?
600
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field premiumPending is unset!') if @premiumPending.nil?
601
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field premiumCancellationPending is unset!') if @premiumCancellationPending.nil?
602
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field canPurchaseUploadAllowance is unset!') if @canPurchaseUploadAllowance.nil?
603
+ unless @sponsoredGroupRole.nil? || Evernote::EDAM::Type::SponsoredGroupRole::VALID_VALUES.include?(@sponsoredGroupRole)
604
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field sponsoredGroupRole!')
605
+ end
459
606
  end
460
607
 
461
608
  ::Thrift::Struct.generate_accessors self
@@ -469,9 +616,9 @@ module Evernote
469
616
  # </dd>
470
617
  #
471
618
  # <dt>username</dt>
472
- # <dd>The name that the user provides to log in to their
473
- # account. In the future, this may be empty for some accounts if their login
474
- # process is indirect (e.g. via social networks, etc.).
619
+ # <dd>The name that uniquely identifies a single user account. This name
620
+ # may be presented by the user, along with their password, to log into
621
+ # their account.
475
622
  # May only contain a-z, 0-9, or '-', and may not start or end with the '-'
476
623
  # <br/>
477
624
  # Length: EDAM_USER_USERNAME_LEN_MIN - EDAM_USER_USERNAME_LEN_MAX
@@ -482,6 +629,8 @@ module Evernote
482
629
  # <dt>email</dt>
483
630
  # <dd>The email address registered for the user. Must comply with
484
631
  # RFC 2821 and RFC 2822.<br/>
632
+ # For privacy reasons, this field may not be populated when a User
633
+ # is retrieved via a call to UserStore.getUser().
485
634
  # Length: EDAM_EMAIL_LEN_MIN - EDAM_EMAIL_LEN_MAX
486
635
  # <br/>
487
636
  # Regex: EDAM_EMAIL_REGEX
@@ -502,9 +651,7 @@ module Evernote
502
651
  # <dt>timezone</dt>
503
652
  # <dd>The zone ID for the user's default location. If present,
504
653
  # this may be used to localize the display of any timestamp for which no
505
- # other timezone is available - for example, an note that arrives via
506
- # a micro-browser may not contain enough information to display its
507
- # local time, so this default timezone may be assigned to the note.
654
+ # other timezone is available.
508
655
  # The format must be encoded as a standard zone ID such as
509
656
  # "America/Los_Angeles" or "GMT+08:00"
510
657
  # <br/>
@@ -539,9 +686,7 @@ module Evernote
539
686
  # </dd>
540
687
  #
541
688
  # <dt>shardId</dt>
542
- # <dd>The name of the virtual server that manages the state of
543
- # this user. This value is used internally to determine which system should
544
- # service requests about this user's data.
689
+ # <dd>DEPRECATED - Client applications should have no need to use this field.
545
690
  # </dd>
546
691
  #
547
692
  # <dt>attributes</dt>
@@ -552,6 +697,11 @@ module Evernote
552
697
  # <dt>accounting</dt>
553
698
  # <dd>Bookkeeping information for the user's subscription.
554
699
  # </dd>
700
+ #
701
+ # <dt>premiumInfo</dt>
702
+ # <dd>If present, this will contain a set of commerce information
703
+ # relating to the user's premium service level.
704
+ # </dd>
555
705
  # </dl>
556
706
  class User
557
707
  include ::Thrift::Struct, ::Thrift::Struct_Union
@@ -568,6 +718,7 @@ module Evernote
568
718
  SHARDID = 14
569
719
  ATTRIBUTES = 15
570
720
  ACCOUNTING = 16
721
+ PREMIUMINFO = 17
571
722
 
572
723
  FIELDS = {
573
724
  ID => {:type => ::Thrift::Types::I32, :name => 'id', :optional => true},
@@ -582,7 +733,8 @@ module Evernote
582
733
  ACTIVE => {:type => ::Thrift::Types::BOOL, :name => 'active', :optional => true},
583
734
  SHARDID => {:type => ::Thrift::Types::STRING, :name => 'shardId', :optional => true},
584
735
  ATTRIBUTES => {:type => ::Thrift::Types::STRUCT, :name => 'attributes', :class => Evernote::EDAM::Type::UserAttributes, :optional => true},
585
- ACCOUNTING => {:type => ::Thrift::Types::STRUCT, :name => 'accounting', :class => Evernote::EDAM::Type::Accounting, :optional => true}
736
+ ACCOUNTING => {:type => ::Thrift::Types::STRUCT, :name => 'accounting', :class => Evernote::EDAM::Type::Accounting, :optional => true},
737
+ PREMIUMINFO => {:type => ::Thrift::Types::STRUCT, :name => 'premiumInfo', :class => Evernote::EDAM::Type::PremiumInfo, :optional => true}
586
738
  }
587
739
 
588
740
  def struct_fields; FIELDS; end
@@ -1054,6 +1206,11 @@ module Evernote
1054
1206
  # it will be left unset. This field is read-only by clients. The server
1055
1207
  # will ignore all values set by clients into this field.</dd>
1056
1208
  #
1209
+ # <dt>classifications</dt>
1210
+ # <dd>A map of classifications applied to the note by clients or by the
1211
+ # Evernote service. The key is the string name of the classification type,
1212
+ # and the value is a constant that begins with CLASSIFICATION_.</dd>
1213
+ #
1057
1214
  # </dl>
1058
1215
  class NoteAttributes
1059
1216
  include ::Thrift::Struct, ::Thrift::Struct_Union
@@ -1070,6 +1227,7 @@ module Evernote
1070
1227
  CONTENTCLASS = 22
1071
1228
  APPLICATIONDATA = 23
1072
1229
  LASTEDITEDBY = 24
1230
+ CLASSIFICATIONS = 26
1073
1231
 
1074
1232
  FIELDS = {
1075
1233
  SUBJECTDATE => {:type => ::Thrift::Types::I64, :name => 'subjectDate', :optional => true},
@@ -1084,7 +1242,8 @@ module Evernote
1084
1242
  PLACENAME => {:type => ::Thrift::Types::STRING, :name => 'placeName', :optional => true},
1085
1243
  CONTENTCLASS => {:type => ::Thrift::Types::STRING, :name => 'contentClass', :optional => true},
1086
1244
  APPLICATIONDATA => {:type => ::Thrift::Types::STRUCT, :name => 'applicationData', :class => Evernote::EDAM::Type::LazyMap, :optional => true},
1087
- LASTEDITEDBY => {:type => ::Thrift::Types::STRING, :name => 'lastEditedBy', :optional => true}
1245
+ LASTEDITEDBY => {:type => ::Thrift::Types::STRING, :name => 'lastEditedBy', :optional => true},
1246
+ CLASSIFICATIONS => {:type => ::Thrift::Types::MAP, :name => 'classifications', :key => {:type => ::Thrift::Types::STRING}, :value => {:type => ::Thrift::Types::STRING}, :optional => true}
1088
1247
  }
1089
1248
 
1090
1249
  def struct_fields; FIELDS; end
@@ -1303,6 +1462,7 @@ module Evernote
1303
1462
  # <br/>
1304
1463
  # Regex: EDAM_PUBLISHING_DESCRIPTION_REGEX
1305
1464
  # </dd>
1465
+ #
1306
1466
  # </dl>
1307
1467
  class Publishing
1308
1468
  include ::Thrift::Struct, ::Thrift::Struct_Union
@@ -1329,6 +1489,56 @@ module Evernote
1329
1489
  ::Thrift::Struct.generate_accessors self
1330
1490
  end
1331
1491
 
1492
+ # If a Notebook contained in an Evernote Business account has been published
1493
+ # the to business library, the Notebook will have a reference to one of these
1494
+ # structures, which specifies how the Notebook will be represented in the
1495
+ # library.
1496
+ #
1497
+ # <dl>
1498
+ # <dt>notebookDescription</dt>
1499
+ # <dd>A short description of the notebook's content that will be displayed
1500
+ # in the business library user interface. The description may not begin
1501
+ # or end with whitespace.
1502
+ # <br/>
1503
+ # Length: EDAM_BUSINESS_NOTEBOOK_DESCRIPTION_LEN_MIN -
1504
+ # EDAM_BUSINESS_NOTEBOOK_DESCRIPTION_LEN_MAX
1505
+ # <br/>
1506
+ # Regex: EDAM_BUSINESS_NOTEBOOK_DESCRIPTION_REGEX
1507
+ # </dd>
1508
+ #
1509
+ # <dt>privilege</dt>
1510
+ # <dd>The privileges that will be granted to users who join the notebook through
1511
+ # the business library.
1512
+ # </dd>
1513
+ #
1514
+ # <dt>recommended</dt>
1515
+ # <dd>Whether the notebook should be "recommended" when displayed in the business
1516
+ # library user interface.
1517
+ # </dd>
1518
+ # </dl>
1519
+ class BusinessNotebook
1520
+ include ::Thrift::Struct, ::Thrift::Struct_Union
1521
+ NOTEBOOKDESCRIPTION = 1
1522
+ PRIVILEGE = 2
1523
+ RECOMMENDED = 3
1524
+
1525
+ FIELDS = {
1526
+ NOTEBOOKDESCRIPTION => {:type => ::Thrift::Types::STRING, :name => 'notebookDescription', :optional => true},
1527
+ PRIVILEGE => {:type => ::Thrift::Types::I32, :name => 'privilege', :optional => true, :enum_class => Evernote::EDAM::Type::SharedNotebookPrivilegeLevel},
1528
+ RECOMMENDED => {:type => ::Thrift::Types::BOOL, :name => 'recommended', :optional => true}
1529
+ }
1530
+
1531
+ def struct_fields; FIELDS; end
1532
+
1533
+ def validate
1534
+ unless @privilege.nil? || Evernote::EDAM::Type::SharedNotebookPrivilegeLevel::VALID_VALUES.include?(@privilege)
1535
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field privilege!')
1536
+ end
1537
+ end
1538
+
1539
+ ::Thrift::Struct.generate_accessors self
1540
+ end
1541
+
1332
1542
  # A named search associated with the account that can be quickly re-used.
1333
1543
  # <dl>
1334
1544
  # <dt>guid</dt>
@@ -1395,108 +1605,6 @@ module Evernote
1395
1605
  ::Thrift::Struct.generate_accessors self
1396
1606
  end
1397
1607
 
1398
- # An advertisement that may be displayed within an Evernote client.
1399
- # Advertisements are either a snippet of HTML or else they
1400
- # are an image (of type: JPEG, GIF, PNG) with an associated destination URL.
1401
- #
1402
- # <dl>
1403
- # <dt>id</dt>
1404
- # <dd>The unique identifier of this advertisement within Evernote's ad
1405
- # inventory.
1406
- # </dd>
1407
- #
1408
- # <dt>width</dt>
1409
- # <dd>This ad should be displayed within a rectangle that is this wide,
1410
- # in pixels.
1411
- # </dd>
1412
- #
1413
- # <dt>height</dt>
1414
- # <dd>This ad should be displayed within a rectangle that is this high,
1415
- # in pixels.
1416
- # </dd>
1417
- #
1418
- # <dt>advertiserName</dt>
1419
- # <dd>A string containing a readable version of the name of this advertiser.
1420
- # </dd>
1421
- #
1422
- # <dt>imageUrl</dt>
1423
- # <dd>The location of the image to display for this ad.</dd>
1424
- #
1425
- # <dt>destinationUrl</dt>
1426
- # <dd>When a user clicks on the ad, this is the destination they should be
1427
- # sent to in a browser.</dd>
1428
- #
1429
- # <dt>displaySeconds</dt>
1430
- # <dd>The number of seconds that the ad should be displayed before it is
1431
- # replaced with a different ad.</dd>
1432
- #
1433
- # <dt>score</dt>
1434
- # <dd>A numeric indicator of the relative value of this ad, which can be
1435
- # compared against other ads from the same day.
1436
- # </dd>
1437
- #
1438
- # <dt>image</dt>
1439
- # <dd>If present, this is the raw image bits of the image file to display
1440
- # for the ad. If not present, the imageUrl should be retrieved directly.
1441
- # </dd>
1442
- #
1443
- # <dt>imageMime</dt>
1444
- # <dd>The MIME type of the 'image' bytes, if those are set.</dd>
1445
- #
1446
- # <dt>html</dt>
1447
- # <dd>The exact HTML to display for this ad, to support rich or external
1448
- # advertisements.</dd>
1449
- #
1450
- # <dt>displayFrequency</dt>
1451
- # <dd>If this value is set, this is the relatively frequency that this
1452
- # ad should be displayed in the daily set of ads, relative to a base
1453
- # frequency of 1.0. I.e. an ad with a frequency of 3.0 should be displayed
1454
- # three times more frequently than an ad with a frequency of 1.0.</dd>
1455
- #
1456
- # <dt>openInTrunk</dt>
1457
- # <dd>If true, the ad should be opened in the embedded Trunk window by
1458
- # clients with Trunk support.</dd>
1459
- # </dl>
1460
- class Ad
1461
- include ::Thrift::Struct, ::Thrift::Struct_Union
1462
- ID = 1
1463
- WIDTH = 2
1464
- HEIGHT = 3
1465
- ADVERTISERNAME = 4
1466
- IMAGEURL = 5
1467
- DESTINATIONURL = 6
1468
- DISPLAYSECONDS = 7
1469
- SCORE = 8
1470
- IMAGE = 9
1471
- IMAGEMIME = 10
1472
- HTML = 11
1473
- DISPLAYFREQUENCY = 12
1474
- OPENINTRUNK = 13
1475
-
1476
- FIELDS = {
1477
- ID => {:type => ::Thrift::Types::I32, :name => 'id', :optional => true},
1478
- WIDTH => {:type => ::Thrift::Types::I16, :name => 'width', :optional => true},
1479
- HEIGHT => {:type => ::Thrift::Types::I16, :name => 'height', :optional => true},
1480
- ADVERTISERNAME => {:type => ::Thrift::Types::STRING, :name => 'advertiserName', :optional => true},
1481
- IMAGEURL => {:type => ::Thrift::Types::STRING, :name => 'imageUrl', :optional => true},
1482
- DESTINATIONURL => {:type => ::Thrift::Types::STRING, :name => 'destinationUrl', :optional => true},
1483
- DISPLAYSECONDS => {:type => ::Thrift::Types::I16, :name => 'displaySeconds', :optional => true},
1484
- SCORE => {:type => ::Thrift::Types::DOUBLE, :name => 'score', :optional => true},
1485
- IMAGE => {:type => ::Thrift::Types::STRING, :name => 'image', :binary => true, :optional => true},
1486
- IMAGEMIME => {:type => ::Thrift::Types::STRING, :name => 'imageMime', :optional => true},
1487
- HTML => {:type => ::Thrift::Types::STRING, :name => 'html', :optional => true},
1488
- DISPLAYFREQUENCY => {:type => ::Thrift::Types::DOUBLE, :name => 'displayFrequency', :optional => true},
1489
- OPENINTRUNK => {:type => ::Thrift::Types::BOOL, :name => 'openInTrunk', :optional => true}
1490
- }
1491
-
1492
- def struct_fields; FIELDS; end
1493
-
1494
- def validate
1495
- end
1496
-
1497
- ::Thrift::Struct.generate_accessors self
1498
- end
1499
-
1500
1608
  # Shared notebooks represent a relationship between a notebook and a single
1501
1609
  # share invitation recipient.
1502
1610
  # <dl>
@@ -1514,10 +1622,15 @@ module Evernote
1514
1622
  # owner to identify who they shared with.</dd>
1515
1623
  #
1516
1624
  # <dt>notebookModifiable</dt>
1517
- # <dd>a flag indicating the share is read/write -otherwise it's read only</dd>
1625
+ # <dd>(DEPRECATED) a flag indicating the share is read/write -otherwise it's read
1626
+ # only. This field is deprecated in favor of the new "privilege" field.</dd>
1518
1627
  #
1519
1628
  # <dt>requireLogin</dt>
1520
- # <dd>indicates that a user must login to access the share</dd>
1629
+ # <dd>(DEPRECATED) indicates that a user must login to access the share. This
1630
+ # field is deprecated and will be "true" for all new shared notebooks. It
1631
+ # is read-only and ignored when creating or modifying a shared notebook,
1632
+ # except that a shared notebook can be modified to require login.
1633
+ # See "allowPreview" for information on privileges and shared notebooks.</dd>
1521
1634
  #
1522
1635
  # <dt>serviceCreated</dt>
1523
1636
  # <dd>the date the owner first created the share with the specific email
@@ -1532,6 +1645,19 @@ module Evernote
1532
1645
  # <dt>username</dt>
1533
1646
  # <dd>the username of the user who can access this share.
1534
1647
  # Once it's assigned it cannot be changed.</dd>
1648
+ #
1649
+ # <dt>privilege</dt>
1650
+ # <dd>The privilege level granted to the notebook, activity stream, and
1651
+ # invitations. See the corresponding enumeration for details.</dd>
1652
+ #
1653
+ # <dt>allowPreview</dt>
1654
+ # <dd>Whether or not to grant "READ_NOTEBOOK" privilege without an
1655
+ # authentication token, for authenticateToSharedNotebook(...). With
1656
+ # the change to "requireLogin" always being true for new shared
1657
+ # notebooks, this is the only way to access a shared notebook without
1658
+ # an authorization token. This setting expires after the first use
1659
+ # of authenticateToSharedNotebook(...) with a valid authentication
1660
+ # token.</dd>
1535
1661
  # </dl>
1536
1662
  class SharedNotebook
1537
1663
  include ::Thrift::Struct, ::Thrift::Struct_Union
@@ -1545,6 +1671,8 @@ module Evernote
1545
1671
  SERVICEUPDATED = 10
1546
1672
  SHAREKEY = 8
1547
1673
  USERNAME = 9
1674
+ PRIVILEGE = 11
1675
+ ALLOWPREVIEW = 12
1548
1676
 
1549
1677
  FIELDS = {
1550
1678
  ID => {:type => ::Thrift::Types::I64, :name => 'id', :optional => true},
@@ -1556,12 +1684,178 @@ module Evernote
1556
1684
  SERVICECREATED => {:type => ::Thrift::Types::I64, :name => 'serviceCreated', :optional => true},
1557
1685
  SERVICEUPDATED => {:type => ::Thrift::Types::I64, :name => 'serviceUpdated', :optional => true},
1558
1686
  SHAREKEY => {:type => ::Thrift::Types::STRING, :name => 'shareKey', :optional => true},
1559
- USERNAME => {:type => ::Thrift::Types::STRING, :name => 'username', :optional => true}
1687
+ USERNAME => {:type => ::Thrift::Types::STRING, :name => 'username', :optional => true},
1688
+ PRIVILEGE => {:type => ::Thrift::Types::I32, :name => 'privilege', :optional => true, :enum_class => Evernote::EDAM::Type::SharedNotebookPrivilegeLevel},
1689
+ ALLOWPREVIEW => {:type => ::Thrift::Types::BOOL, :name => 'allowPreview', :optional => true}
1560
1690
  }
1561
1691
 
1562
1692
  def struct_fields; FIELDS; end
1563
1693
 
1564
1694
  def validate
1695
+ unless @privilege.nil? || Evernote::EDAM::Type::SharedNotebookPrivilegeLevel::VALID_VALUES.include?(@privilege)
1696
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field privilege!')
1697
+ end
1698
+ end
1699
+
1700
+ ::Thrift::Struct.generate_accessors self
1701
+ end
1702
+
1703
+ # This structure captures information about the types of operations
1704
+ # that cannot be performed on a given notebook with a type of
1705
+ # authenticated access and credentials. The values filled into this
1706
+ # structure are based on then-current values in the server database
1707
+ # for shared notebooks and notebook publishing records, as well as
1708
+ # information related to the authentication token. Information from
1709
+ # the authentication token includes the application that is accessing
1710
+ # the server, as defined by the permissions granted by consumer (api)
1711
+ # key, and the method used to obtain the token, for example via
1712
+ # authenticateToSharedNotebook, authenticateToBusiness, etc. Note
1713
+ # that changes to values in this structure that are the result of
1714
+ # shared notebook or publishing record changes are communicated to
1715
+ # the client via a change in the notebook USN during sync. It is
1716
+ # important to use the same access method, parameters, and consumer
1717
+ # key in order obtain correct results from the sync engine.
1718
+ #
1719
+ # The server has the final say on what is allowed as values may
1720
+ # change between calls to obtain NotebookRestrictions instances
1721
+ # and to operate on data on the service.
1722
+ #
1723
+ # If the following are set and true, then the given restriction is
1724
+ # in effect, as accessed by the same authentication token from which
1725
+ # the values were obtained.
1726
+ #
1727
+ # <dt>noReadNotes</dt>
1728
+ # <dd>The client is not able to read notes from the service and
1729
+ # the notebook is write-only.
1730
+ # </dd>
1731
+ # <dt>noCreateNotes</dt>
1732
+ # <dd>The client may not create new notes in the notebook.
1733
+ # </dd>
1734
+ # <dt>noUpdateNotes</dt>
1735
+ # <dd>The client may not update notes currently in the notebook.
1736
+ # </dd>
1737
+ # <dt>noExpungeNotes</dt>
1738
+ # <dd>The client may not expunge notes currently in the notebook.
1739
+ # </dd>
1740
+ # <dt>noShareNotes</dt>
1741
+ # <dd>The client may not share notes in the notebook via the
1742
+ # shareNote method.
1743
+ # </dd>
1744
+ # <dt>noEmailNotes</dt>
1745
+ # <dd>The client may not e-mail notes via the Evernote service by
1746
+ # using the emailNote method.
1747
+ # </dd>
1748
+ # <dt>noSendMessageToRecipients</dt>
1749
+ # <dd>The client may not send messages to the share recipients of
1750
+ # the notebook.
1751
+ # </dd>
1752
+ # <dt>noUpdateNotebook</dt>
1753
+ # <dd>The client may not update the Notebook object itself, for
1754
+ # example, via the updateNotebook method.
1755
+ # </dd>
1756
+ # <dt>noExpungeNotebook</dt>
1757
+ # <dd>The client may not expunge the Notebook object itself, for
1758
+ # example, via the expungeNotebook method.
1759
+ # </dd>
1760
+ # <dt>noSetDefaultNotebook</dt>
1761
+ # <dd>The client may not set this notebook to be the default notebook.
1762
+ # The caller should leave Notebook.defaultNotebook unset.
1763
+ # </dd>
1764
+ # <dt>noSetNotebookStack</dt>
1765
+ # <dd>If the client is able to update the Notebook, the Notebook.stack
1766
+ # value may not be set.
1767
+ # </dd>
1768
+ # <dt>noPublishToPublic</dt>
1769
+ # <dd>The client may not change the publish the notebook to the public.
1770
+ # For example, business notebooks may not be shared publicly.
1771
+ # </dd>
1772
+ # <dt>noPublishToBusinessLibrary</dt>
1773
+ # <dd>The client may not publish the notebook to the business library.
1774
+ # </dd>
1775
+ # <dt>noCreateTags</dt>
1776
+ # <dd>The client may not complete an operation that results in a new tag
1777
+ # being created in the owner's account.
1778
+ # </dd>
1779
+ # <dt>noUpdateTags</dt>
1780
+ # <dd>The client may not update tags in the owner's account.
1781
+ # </dd>
1782
+ # <dt>noExpungeTags</dt>
1783
+ # <dd>The client may not expunge tags in the owner's account.
1784
+ # </dd>
1785
+ # <dt>noSetParentTag</dt>
1786
+ # <dd>If the client is able to create or update tags in the owner's account,
1787
+ # then they will not be able to set the parent tag. Leave the value unset.
1788
+ # </dd>
1789
+ # <dt>noCreateSharedNotebooks</dt>
1790
+ # <dd>The client is unable to create shared notebooks for the notebook.
1791
+ # </dd>
1792
+ # <dt>updateWhichSharedNotebookRestrictions</dt>
1793
+ # <dd>Restrictions on which shared notebook instances can be updated. If the
1794
+ # value is not set or null, then the client can update any of the shared notebooks
1795
+ # associated with the notebook on which the NotebookRestrictions are defined.
1796
+ # See the enumeration for further details.
1797
+ # </dd>
1798
+ # <dt>expungeWhichSharedNotebookRestrictions</dt>
1799
+ # <dd>Restrictions on which shared notebook instances can be expunged. If the
1800
+ # value is not set or null, then the client can expunge any of the shared notebooks
1801
+ # associated with the notebook on which the NotebookRestrictions are defined.
1802
+ # See the enumeration for further details.
1803
+ # </dd>
1804
+ class NotebookRestrictions
1805
+ include ::Thrift::Struct, ::Thrift::Struct_Union
1806
+ NOREADNOTES = 1
1807
+ NOCREATENOTES = 2
1808
+ NOUPDATENOTES = 3
1809
+ NOEXPUNGENOTES = 4
1810
+ NOSHARENOTES = 5
1811
+ NOEMAILNOTES = 6
1812
+ NOSENDMESSAGETORECIPIENTS = 7
1813
+ NOUPDATENOTEBOOK = 8
1814
+ NOEXPUNGENOTEBOOK = 9
1815
+ NOSETDEFAULTNOTEBOOK = 10
1816
+ NOSETNOTEBOOKSTACK = 11
1817
+ NOPUBLISHTOPUBLIC = 12
1818
+ NOPUBLISHTOBUSINESSLIBRARY = 13
1819
+ NOCREATETAGS = 14
1820
+ NOUPDATETAGS = 15
1821
+ NOEXPUNGETAGS = 16
1822
+ NOSETPARENTTAG = 17
1823
+ NOCREATESHAREDNOTEBOOKS = 18
1824
+ UPDATEWHICHSHAREDNOTEBOOKRESTRICTIONS = 19
1825
+ EXPUNGEWHICHSHAREDNOTEBOOKRESTRICTIONS = 20
1826
+
1827
+ FIELDS = {
1828
+ NOREADNOTES => {:type => ::Thrift::Types::BOOL, :name => 'noReadNotes', :optional => true},
1829
+ NOCREATENOTES => {:type => ::Thrift::Types::BOOL, :name => 'noCreateNotes', :optional => true},
1830
+ NOUPDATENOTES => {:type => ::Thrift::Types::BOOL, :name => 'noUpdateNotes', :optional => true},
1831
+ NOEXPUNGENOTES => {:type => ::Thrift::Types::BOOL, :name => 'noExpungeNotes', :optional => true},
1832
+ NOSHARENOTES => {:type => ::Thrift::Types::BOOL, :name => 'noShareNotes', :optional => true},
1833
+ NOEMAILNOTES => {:type => ::Thrift::Types::BOOL, :name => 'noEmailNotes', :optional => true},
1834
+ NOSENDMESSAGETORECIPIENTS => {:type => ::Thrift::Types::BOOL, :name => 'noSendMessageToRecipients', :optional => true},
1835
+ NOUPDATENOTEBOOK => {:type => ::Thrift::Types::BOOL, :name => 'noUpdateNotebook', :optional => true},
1836
+ NOEXPUNGENOTEBOOK => {:type => ::Thrift::Types::BOOL, :name => 'noExpungeNotebook', :optional => true},
1837
+ NOSETDEFAULTNOTEBOOK => {:type => ::Thrift::Types::BOOL, :name => 'noSetDefaultNotebook', :optional => true},
1838
+ NOSETNOTEBOOKSTACK => {:type => ::Thrift::Types::BOOL, :name => 'noSetNotebookStack', :optional => true},
1839
+ NOPUBLISHTOPUBLIC => {:type => ::Thrift::Types::BOOL, :name => 'noPublishToPublic', :optional => true},
1840
+ NOPUBLISHTOBUSINESSLIBRARY => {:type => ::Thrift::Types::BOOL, :name => 'noPublishToBusinessLibrary', :optional => true},
1841
+ NOCREATETAGS => {:type => ::Thrift::Types::BOOL, :name => 'noCreateTags', :optional => true},
1842
+ NOUPDATETAGS => {:type => ::Thrift::Types::BOOL, :name => 'noUpdateTags', :optional => true},
1843
+ NOEXPUNGETAGS => {:type => ::Thrift::Types::BOOL, :name => 'noExpungeTags', :optional => true},
1844
+ NOSETPARENTTAG => {:type => ::Thrift::Types::BOOL, :name => 'noSetParentTag', :optional => true},
1845
+ NOCREATESHAREDNOTEBOOKS => {:type => ::Thrift::Types::BOOL, :name => 'noCreateSharedNotebooks', :optional => true},
1846
+ UPDATEWHICHSHAREDNOTEBOOKRESTRICTIONS => {:type => ::Thrift::Types::I32, :name => 'updateWhichSharedNotebookRestrictions', :optional => true, :enum_class => Evernote::EDAM::Type::SharedNotebookInstanceRestrictions},
1847
+ EXPUNGEWHICHSHAREDNOTEBOOKRESTRICTIONS => {:type => ::Thrift::Types::I32, :name => 'expungeWhichSharedNotebookRestrictions', :optional => true, :enum_class => Evernote::EDAM::Type::SharedNotebookInstanceRestrictions}
1848
+ }
1849
+
1850
+ def struct_fields; FIELDS; end
1851
+
1852
+ def validate
1853
+ unless @updateWhichSharedNotebookRestrictions.nil? || Evernote::EDAM::Type::SharedNotebookInstanceRestrictions::VALID_VALUES.include?(@updateWhichSharedNotebookRestrictions)
1854
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field updateWhichSharedNotebookRestrictions!')
1855
+ end
1856
+ unless @expungeWhichSharedNotebookRestrictions.nil? || Evernote::EDAM::Type::SharedNotebookInstanceRestrictions::VALID_VALUES.include?(@expungeWhichSharedNotebookRestrictions)
1857
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field expungeWhichSharedNotebookRestrictions!')
1858
+ end
1565
1859
  end
1566
1860
 
1567
1861
  ::Thrift::Struct.generate_accessors self
@@ -1623,20 +1917,22 @@ module Evernote
1623
1917
  # </dd>
1624
1918
  #
1625
1919
  # <dt>publishing</dt>
1626
- # <dd>If the Notebook has been opened for public access (i.e.
1627
- # if 'published' is set to true), then this will point to the set of
1628
- # publishing information for the Notebook (URI, description, etc.). A
1629
- # Notebook cannot be published without providing this information, but it
1630
- # will persist for later use if publishing is ever disabled on the Notebook.
1631
- # Clients that do not wish to change the publishing behavior of a Notebook
1632
- # should not set this value when calling NoteStore.updateNotebook().
1920
+ # <dd>If the Notebook has been opened for public access, or
1921
+ # business users shared with their business (i.e. if 'published' is
1922
+ # set to true), then this will point to the set of publishing
1923
+ # information for the Notebook (URI, description, etc.). A
1924
+ # Notebook cannot be published without providing this information,
1925
+ # but it will persist for later use if publishing is ever disabled
1926
+ # on the Notebook. Clients that do not wish to change the
1927
+ # publishing behavior of a Notebook should not set this value when
1928
+ # calling NoteStore.updateNotebook().
1633
1929
  # </dd>
1634
1930
  #
1635
1931
  # <dt>published</dt>
1636
1932
  # <dd>If this is set to true, then the Notebook will be
1637
- # accessible to the public via the 'publishing' specification, which must
1638
- # also be set. If this is set to false, the Notebook will not be available
1639
- # to the public.
1933
+ # accessible either to the public, or for business users to their business,
1934
+ # via the 'publishing' specification, which must also be set. If this is set
1935
+ # to false, the Notebook will not be available to the public (or business).
1640
1936
  # Clients that do not wish to change the publishing behavior of a Notebook
1641
1937
  # should not set this value when calling NoteStore.updateNotebook().
1642
1938
  # </dd>
@@ -1662,6 +1958,24 @@ module Evernote
1662
1958
  # via this field.
1663
1959
  # </dd>
1664
1960
  #
1961
+ # <dt>businessNotebook</dt>
1962
+ # <dd>If the notebook is part of a business account and has been published to the
1963
+ # business library, this will contain information for the library listing.
1964
+ # The presence or absence of this field is not a reliable test of whether a given
1965
+ # notebook is in fact a business notebook - the field is only used when a notebook is or
1966
+ # has been published to the business library.
1967
+ # </dd>
1968
+ #
1969
+ # <dt>contact</dt>
1970
+ # <dd>Intended for use with Business accounts, this field identifies the user who
1971
+ # has been designated as the "contact". For notebooks created in business
1972
+ # accounts, the server will automatically set this value to the user who created
1973
+ # the notebook unless Notebook.contact.username has been set, in which that value
1974
+ # will be used. When updating a notebook, it is common to leave Notebook.contact
1975
+ # field unset, indicating that no change to the value is being requested and that
1976
+ # the existing value, if any, should be preserved.
1977
+ # </dd>
1978
+ #
1665
1979
  # </dl>
1666
1980
  class Notebook
1667
1981
  include ::Thrift::Struct, ::Thrift::Struct_Union
@@ -1676,6 +1990,9 @@ module Evernote
1676
1990
  STACK = 12
1677
1991
  SHAREDNOTEBOOKIDS = 13
1678
1992
  SHAREDNOTEBOOKS = 14
1993
+ BUSINESSNOTEBOOK = 15
1994
+ CONTACT = 16
1995
+ RESTRICTIONS = 17
1679
1996
 
1680
1997
  FIELDS = {
1681
1998
  GUID => {:type => ::Thrift::Types::STRING, :name => 'guid', :optional => true},
@@ -1688,7 +2005,10 @@ module Evernote
1688
2005
  PUBLISHED => {:type => ::Thrift::Types::BOOL, :name => 'published', :optional => true},
1689
2006
  STACK => {:type => ::Thrift::Types::STRING, :name => 'stack', :optional => true},
1690
2007
  SHAREDNOTEBOOKIDS => {:type => ::Thrift::Types::LIST, :name => 'sharedNotebookIds', :element => {:type => ::Thrift::Types::I64}, :optional => true},
1691
- SHAREDNOTEBOOKS => {:type => ::Thrift::Types::LIST, :name => 'sharedNotebooks', :element => {:type => ::Thrift::Types::STRUCT, :class => Evernote::EDAM::Type::SharedNotebook}, :optional => true}
2008
+ SHAREDNOTEBOOKS => {:type => ::Thrift::Types::LIST, :name => 'sharedNotebooks', :element => {:type => ::Thrift::Types::STRUCT, :class => Evernote::EDAM::Type::SharedNotebook}, :optional => true},
2009
+ BUSINESSNOTEBOOK => {:type => ::Thrift::Types::STRUCT, :name => 'businessNotebook', :class => Evernote::EDAM::Type::BusinessNotebook, :optional => true},
2010
+ CONTACT => {:type => ::Thrift::Types::STRUCT, :name => 'contact', :class => Evernote::EDAM::Type::User, :optional => true},
2011
+ RESTRICTIONS => {:type => ::Thrift::Types::STRUCT, :name => 'restrictions', :class => Evernote::EDAM::Type::NotebookRestrictions, :optional => true}
1692
2012
  }
1693
2013
 
1694
2014
  def struct_fields; FIELDS; end
@@ -1721,8 +2041,8 @@ module Evernote
1721
2041
  #
1722
2042
  # <dt>guid</dt>
1723
2043
  # <dd>The unique identifier of this linked notebook. Will be set whenever
1724
- # a resource is retrieved from the service, but may be null when a client
1725
- # is creating a resource.
2044
+ # a linked notebook is retrieved from the service, but may be null when a client
2045
+ # is creating a linked notebook.
1726
2046
  # <br/>
1727
2047
  # Length: EDAM_GUID_LEN_MIN - EDAM_GUID_LEN_MAX
1728
2048
  # <br/>
@@ -1754,6 +2074,20 @@ module Evernote
1754
2074
  # end of this string to construct the full URL, as documented on our
1755
2075
  # developer web site.
1756
2076
  # </dd>
2077
+ #
2078
+ # <dt>stack</dt>
2079
+ # <dd>If this is set, then the notebook is visually contained within a stack
2080
+ # of notebooks with this name. All notebooks in the same account with the
2081
+ # same 'stack' field are considered to be in the same stack.
2082
+ # Notebooks with no stack set are "top level" and not contained within a
2083
+ # stack. The link owner can change this and this field is for the benefit
2084
+ # of the link owner.
2085
+ # </dd>
2086
+ #
2087
+ # <dt>businessId</dt>
2088
+ # <dd>If set, this will be the unique identifier for the business that owns
2089
+ # the notebook to which the linked notebook refers.
2090
+ #
1757
2091
  # </dl>
1758
2092
  class LinkedNotebook
1759
2093
  include ::Thrift::Struct, ::Thrift::Struct_Union
@@ -1766,6 +2100,8 @@ module Evernote
1766
2100
  UPDATESEQUENCENUM = 8
1767
2101
  NOTESTOREURL = 9
1768
2102
  WEBAPIURLPREFIX = 10
2103
+ STACK = 11
2104
+ BUSINESSID = 12
1769
2105
 
1770
2106
  FIELDS = {
1771
2107
  SHARENAME => {:type => ::Thrift::Types::STRING, :name => 'shareName', :optional => true},
@@ -1776,7 +2112,60 @@ module Evernote
1776
2112
  GUID => {:type => ::Thrift::Types::STRING, :name => 'guid', :optional => true},
1777
2113
  UPDATESEQUENCENUM => {:type => ::Thrift::Types::I32, :name => 'updateSequenceNum', :optional => true},
1778
2114
  NOTESTOREURL => {:type => ::Thrift::Types::STRING, :name => 'noteStoreUrl', :optional => true},
1779
- WEBAPIURLPREFIX => {:type => ::Thrift::Types::STRING, :name => 'webApiUrlPrefix', :optional => true}
2115
+ WEBAPIURLPREFIX => {:type => ::Thrift::Types::STRING, :name => 'webApiUrlPrefix', :optional => true},
2116
+ STACK => {:type => ::Thrift::Types::STRING, :name => 'stack', :optional => true},
2117
+ BUSINESSID => {:type => ::Thrift::Types::I32, :name => 'businessId', :optional => true}
2118
+ }
2119
+
2120
+ def struct_fields; FIELDS; end
2121
+
2122
+ def validate
2123
+ end
2124
+
2125
+ ::Thrift::Struct.generate_accessors self
2126
+ end
2127
+
2128
+ # A structure that describes a notebook or a user's relationship with
2129
+ # a notebook. NotebookDescriptor is expected to remain a lighter-weight
2130
+ # structure when compared to Notebook.
2131
+ # <dl>
2132
+ # <dt>guid</dt>
2133
+ # <dd>The unique identifier of the notebook.
2134
+ # </dd>
2135
+ #
2136
+ # <dt>notebookDisplayName</dt>
2137
+ # <dd>A sequence of characters representing the name of the
2138
+ # notebook.
2139
+ # </dd>
2140
+ #
2141
+ # <dt>contactName</dt>
2142
+ # <dd>The User.name value of the notebook's "contact".
2143
+ # </dd>
2144
+ #
2145
+ # <dt>hasSharedNotebook</dt>
2146
+ # <dd>Whether a SharedNotebook record exists between the calling user and this
2147
+ # notebook.
2148
+ # </dd>
2149
+ #
2150
+ # <dt>joinedUserCount</dt>
2151
+ # <dd>The number of users who have joined this notebook.
2152
+ # </dd>
2153
+ #
2154
+ # </dl>
2155
+ class NotebookDescriptor
2156
+ include ::Thrift::Struct, ::Thrift::Struct_Union
2157
+ GUID = 1
2158
+ NOTEBOOKDISPLAYNAME = 2
2159
+ CONTACTNAME = 3
2160
+ HASSHAREDNOTEBOOK = 4
2161
+ JOINEDUSERCOUNT = 5
2162
+
2163
+ FIELDS = {
2164
+ GUID => {:type => ::Thrift::Types::STRING, :name => 'guid', :optional => true},
2165
+ NOTEBOOKDISPLAYNAME => {:type => ::Thrift::Types::STRING, :name => 'notebookDisplayName', :optional => true},
2166
+ CONTACTNAME => {:type => ::Thrift::Types::STRING, :name => 'contactName', :optional => true},
2167
+ HASSHAREDNOTEBOOK => {:type => ::Thrift::Types::BOOL, :name => 'hasSharedNotebook', :optional => true},
2168
+ JOINEDUSERCOUNT => {:type => ::Thrift::Types::I32, :name => 'joinedUserCount', :optional => true}
1780
2169
  }
1781
2170
 
1782
2171
  def struct_fields; FIELDS; end