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.



9051
9052
9053
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 9051

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

Instance Attribute Details

#attributesGoogle::Apis::CloudsearchV1::Attributes

Corresponds to the JSON property attributes



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

def attributes
  @attributes
end

#creation_time_microsecondsFixnum

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

Returns:

  • (Fixnum)


8919
8920
8921
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 8919

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



8924
8925
8926
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 8924

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



8955
8956
8957
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 8955

def item_key
  @item_key
end

#labelsGoogle::Apis::CloudsearchV1::Labels

Corresponds to the JSON property labels



8960
8961
8962
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 8960

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)


8966
8967
8968
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 8966

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



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

def locker_references
  @locker_references
end

#match_infoGoogle::Apis::CloudsearchV1::MatchInfo

Corresponds to the JSON property matchInfo



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

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



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

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)


8991
8992
8993
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 8991

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



8996
8997
8998
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 8996

def references
  @references
end

#snippetString

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

Returns:

  • (String)


9001
9002
9003
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 9001

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



9032
9033
9034
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 9032

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)


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

def thread_locator
  @thread_locator
end

#triggersGoogle::Apis::CloudsearchV1::Triggers

Corresponds to the JSON property triggers



9044
9045
9046
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 9044

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)


9049
9050
9051
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 9049

def version
  @version
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



9056
9057
9058
9059
9060
9061
9062
9063
9064
9065
9066
9067
9068
9069
9070
9071
9072
9073
# File 'lib/google/apis/cloudsearch_v1/classes.rb', line 9056

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