Class: Google::Apis::CloudsearchV1::FuseboxItem

Inherits:
Object
  • Object
show all
Includes:
Google::Apis::Core::Hashable, Google::Apis::Core::JsonObjectSupport
Defined in:
lib/google/apis/cloudsearch_v1/classes.rb,
lib/google/apis/cloudsearch_v1/representations.rb,
lib/google/apis/cloudsearch_v1/representations.rb

Overview

The Item message is the read interface for user data (traditionally referred to as a "message", such as a mail message or a chat message, but generalized to encompass other types such as tasks) and stored in Tingle. Each Item is associated with a single Thread. An Item contains three classes of data. (1): Item "fields" are common to items of all message types (e.g. mail, chat, task, etc.) and are identified by the ItemFieldSpec.FetchType enum when fetching Items. (2): Item "attributes" represent data associated with an Item that is stored on behalf of the client but to which the fusebox and storage layers are otherwise agnostic. (3): Item "parts" are application-defined protocol buffers that affect how the Item is indexed. Item parts are referenced as extensions to the ItemParts message. By default the application specifies the index terms associated with an Item part. For performance sensitive applications, the storage layer can be modified to understand and index data types natively.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**args) ⇒ FuseboxItem

Returns a new instance of FuseboxItem.



8989
8990
8991
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 8989

def initialize(**args)
   update!(**args)
end

Instance Attribute Details

#attributesGoogle::Apis::CloudsearchV1::Attributes

Corresponds to the JSON property attributes



8852
8853
8854
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 8852

def attributes
  @attributes
end

#creation_time_microsecondsFixnum

The creation time of the Item in micro seconds. Corresponds to the JSON property creationTimeMicroseconds

Returns:

  • (Fixnum)


8857
8858
8859
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 8857

def creation_time_microseconds
  @creation_time_microseconds
end

#historyGoogle::Apis::CloudsearchV1::History

The most recent history records associated with the item. Corresponds to the JSON property history



8862
8863
8864
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 8862

def history
  @history
end

#item_keyGoogle::Apis::CloudsearchV1::MultiKey

A union-like type for identifiying an object in storage. MultiKeys contain multiple key fields, each in a separate key space. At least one key field must be set. More than one key field may be set as long as all key values refer to the same object. All objects in storage have unique server_id keys. All MultiKeys returned from storage to storage clients will always have the server_id field set. When creating an object, if a MultiKey without a server_id is supplied to storage, the storage system will auto-assign a server ID to the new object. For all other storage requests (i.e. those not creating new objects), clients may omit server_id (as long as they supply another key). Instead of server ids, clients can specify string based client_assigned_perm_id keys. Mail message drafts are a prime example of these kinds of objects. Each time a user saves a new version of a draft, the storage system needs to create a new object with the updated draft content and needs to delete the object containing the old content. The new object gets a new SERVER_ID but should get the same CLIENT_ASSIGNED_PERM_ID as the now-deleted object containing the old content. Carrying forward the perm ID allows it to be used to consistently refer to the same logical object across revisions. These perm IDs save sync clients from having to deal with changing object IDs. For example, assume there's a mail message in storage with SERVER_ID = 123 and CLIENT_ASSIGNED_PERM_ID = "foo". The following are all valid ways of addressing the object using MultiKeys: 1) MultiKey server_id = 123 2) MultiKey server_id = 123, client_assigned_perm_id = "foo" 3) MultiKey client_assigned_perm_id = "foo" Multikeys are never serialized in the storage. The individual keys are extracted and processed separately. Both the integer ids as well as string ids are indexed for efficient retrieval using the same fields in the backend. See go/tingle-multikeys for more information on background and motivation. Corresponds to the JSON property itemKey



8893
8894
8895
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 8893

def item_key
  @item_key
end

#labelsGoogle::Apis::CloudsearchV1::Labels

Corresponds to the JSON property labels



8898
8899
8900
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 8898

def labels
  @labels
end

#last_modification_time_usFixnum

The modification time of the Item in micro seconds. Modifications to the message include label addition, deletion, etc. Corresponds to the JSON property lastModificationTimeUs

Returns:

  • (Fixnum)


8904
8905
8906
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 8904

def last_modification_time_us
  @last_modification_time_us
end

#locker_referencesGoogle::Apis::CloudsearchV1::References

go/lockpicker Locker counterpart of references. Corresponds to the JSON property lockerReferences



8909
8910
8911
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 8909

def locker_references
  @locker_references
end

#match_infoGoogle::Apis::CloudsearchV1::MatchInfo

Corresponds to the JSON property matchInfo



8914
8915
8916
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 8914

def match_info
  @match_info
end

#partsGoogle::Apis::CloudsearchV1::ItemParts

Container for type-specific extensions of an Item. This protobuf is defined in a separate file to allow types to reference/extend the message without depending on other fusebox protobufs. See items.proto. Corresponds to the JSON property parts



8921
8922
8923
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 8921

def parts
  @parts
end

#read_tsFixnum

The read timestamp at which this item was read. This is a temporary field used to check if two items streamed during dual reading were read at the same timestamp. This will be populated by Fusebox RPCs. "DO NOT USE UNLESS YOU TALK TO FUSEBOX TEAM (gmail-fusebox@)". Corresponds to the JSON property readTs

Returns:

  • (Fixnum)


8929
8930
8931
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 8929

def read_ts
  @read_ts
end

#referencesGoogle::Apis::CloudsearchV1::References

References to attachments, video attachments in Youtube and Hangout messages. Corresponds to the JSON property references



8934
8935
8936
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 8934

def references
  @references
end

#snippetString

The snippet is a brief bit of text describing this item. Corresponds to the JSON property snippet

Returns:

  • (String)


8939
8940
8941
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 8939

def snippet
  @snippet
end

#thread_keyGoogle::Apis::CloudsearchV1::MultiKey

A union-like type for identifiying an object in storage. MultiKeys contain multiple key fields, each in a separate key space. At least one key field must be set. More than one key field may be set as long as all key values refer to the same object. All objects in storage have unique server_id keys. All MultiKeys returned from storage to storage clients will always have the server_id field set. When creating an object, if a MultiKey without a server_id is supplied to storage, the storage system will auto-assign a server ID to the new object. For all other storage requests (i.e. those not creating new objects), clients may omit server_id (as long as they supply another key). Instead of server ids, clients can specify string based client_assigned_perm_id keys. Mail message drafts are a prime example of these kinds of objects. Each time a user saves a new version of a draft, the storage system needs to create a new object with the updated draft content and needs to delete the object containing the old content. The new object gets a new SERVER_ID but should get the same CLIENT_ASSIGNED_PERM_ID as the now-deleted object containing the old content. Carrying forward the perm ID allows it to be used to consistently refer to the same logical object across revisions. These perm IDs save sync clients from having to deal with changing object IDs. For example, assume there's a mail message in storage with SERVER_ID = 123 and CLIENT_ASSIGNED_PERM_ID = "foo". The following are all valid ways of addressing the object using MultiKeys: 1) MultiKey server_id = 123 2) MultiKey server_id = 123, client_assigned_perm_id = "foo" 3) MultiKey client_assigned_perm_id = "foo" Multikeys are never serialized in the storage. The individual keys are extracted and processed separately. Both the integer ids as well as string ids are indexed for efficient retrieval using the same fields in the backend. See go/tingle-multikeys for more information on background and motivation. Corresponds to the JSON property threadKey



8970
8971
8972
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 8970

def thread_key
  @thread_key
end

#thread_locatorString

A base64 encoded and encrypted string generated from the Gaia Id and the thread id. Used to generate the permalink for this thread, exposed from Gmail API. Corresponds to the JSON property threadLocator

Returns:

  • (String)


8977
8978
8979
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 8977

def thread_locator
  @thread_locator
end

#triggersGoogle::Apis::CloudsearchV1::Triggers

Corresponds to the JSON property triggers



8982
8983
8984
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 8982

def triggers
  @triggers
end

#versionFixnum

The latest history operation id that resulted in a mutation of the item. Corresponds to the JSON property version

Returns:

  • (Fixnum)


8987
8988
8989
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 8987

def version
  @version
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



8994
8995
8996
8997
8998
8999
9000
9001
9002
9003
9004
9005
9006
9007
9008
9009
9010
9011
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 8994

def update!(**args)
  @attributes = args[:attributes] if args.key?(:attributes)
  @creation_time_microseconds = args[:creation_time_microseconds] if args.key?(:creation_time_microseconds)
  @history = args[:history] if args.key?(:history)
  @item_key = args[:item_key] if args.key?(:item_key)
  @labels = args[:labels] if args.key?(:labels)
  @last_modification_time_us = args[:last_modification_time_us] if args.key?(:last_modification_time_us)
  @locker_references = args[:locker_references] if args.key?(:locker_references)
  @match_info = args[:match_info] if args.key?(:match_info)
  @parts = args[:parts] if args.key?(:parts)
  @read_ts = args[:read_ts] if args.key?(:read_ts)
  @references = args[:references] if args.key?(:references)
  @snippet = args[:snippet] if args.key?(:snippet)
  @thread_key = args[:thread_key] if args.key?(:thread_key)
  @thread_locator = args[:thread_locator] if args.key?(:thread_locator)
  @triggers = args[:triggers] if args.key?(:triggers)
  @version = args[:version] if args.key?(:version)
end