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.



9089
9090
9091
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 9089

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

Instance Attribute Details

#attributesGoogle::Apis::CloudsearchV1::Attributes

Corresponds to the JSON property attributes



8952
8953
8954
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 8952

def attributes
  @attributes
end

#creation_time_microsecondsFixnum

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

Returns:

  • (Fixnum)


8957
8958
8959
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 8957

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



8962
8963
8964
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 8962

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



8993
8994
8995
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 8993

def item_key
  @item_key
end

#labelsGoogle::Apis::CloudsearchV1::Labels

Corresponds to the JSON property labels



8998
8999
9000
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 8998

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)


9004
9005
9006
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 9004

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



9009
9010
9011
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 9009

def locker_references
  @locker_references
end

#match_infoGoogle::Apis::CloudsearchV1::MatchInfo

Corresponds to the JSON property matchInfo



9014
9015
9016
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 9014

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



9021
9022
9023
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 9021

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)


9029
9030
9031
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 9029

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



9034
9035
9036
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 9034

def references
  @references
end

#snippetString

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

Returns:

  • (String)


9039
9040
9041
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 9039

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



9070
9071
9072
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 9070

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)


9077
9078
9079
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 9077

def thread_locator
  @thread_locator
end

#triggersGoogle::Apis::CloudsearchV1::Triggers

Corresponds to the JSON property triggers



9082
9083
9084
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 9082

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)


9087
9088
9089
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 9087

def version
  @version
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



9094
9095
9096
9097
9098
9099
9100
9101
9102
9103
9104
9105
9106
9107
9108
9109
9110
9111
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 9094

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