Class: Google::Apis::HomegraphV1::HomeGraphServiceService

Inherits:
Core::BaseService show all
Defined in:
generated/google/apis/homegraph_v1/service.rb

Overview

HomeGraph API

Examples:

require 'google/apis/homegraph_v1'

Homegraph = Google::Apis::HomegraphV1 # Alias the module
service = Homegraph::HomeGraphServiceService.new

See Also:

Instance Attribute Summary collapse

Attributes inherited from Core::BaseService

#authorization, #base_path, #batch_path, #client, #client_options, #request_options, #root_url, #upload_path

Instance Method Summary collapse

Methods inherited from Core::BaseService

#batch, #batch_upload, #fetch_all, #http

Methods included from Core::Logging

#logger

Constructor Details

#initializeHomeGraphServiceService

Returns a new instance of HomeGraphServiceService.



45
46
47
48
# File 'generated/google/apis/homegraph_v1/service.rb', line 45

def initialize
  super('https://homegraph.googleapis.com/', '')
  @batch_path = 'batch'
end

Instance Attribute Details

#keyString

Returns API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.

Returns:

  • (String)

    API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.



38
39
40
# File 'generated/google/apis/homegraph_v1/service.rb', line 38

def key
  @key
end

#quota_userString

Returns Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.

Returns:

  • (String)

    Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.



43
44
45
# File 'generated/google/apis/homegraph_v1/service.rb', line 43

def quota_user
  @quota_user
end

Instance Method Details

#delete_agent_user(agent_user_id, request_id: nil, fields: nil, quota_user: nil, options: nil) {|result, err| ... } ⇒ Google::Apis::HomegraphV1::Empty

Unlinks an agent user from Google. As a result, all data related to this user will be deleted. Here is how the agent user is created in Google:

  1. When a user opens their Google Home App, they can begin linking a 3p partner.
  2. User is guided through the OAuth process.
  3. After entering the 3p credentials, Google gets the 3p OAuth token and uses it to make a Sync call to the 3p partner and gets back all of the user's data, including agent_user_id and devices.
  4. Google creates the agent user and stores a mapping from the agent_user_id -> Google ID mapping. Google also stores all of the user's devices under that Google ID. The mapping from agent_user_id to Google ID is many to many, since one Google user can have multiple 3p accounts, and multiple Google users can map to one agent_user_id (e.g., a husband and wife share one Nest account username/password). The third-party user's identity is passed in as agent_user_id. The agent is identified by the JWT signed by the partner's service account. Note: Special characters (except "/") in agent_user_id must be URL-encoded.

Parameters:

  • agent_user_id (String)

    Required. Third-party user ID.

  • request_id (String) (defaults to: nil)

    Request ID used for debugging.

  • fields (String) (defaults to: nil)

    Selector specifying which fields to include in a partial response.

  • quota_user (String) (defaults to: nil)

    Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.

  • options (Google::Apis::RequestOptions) (defaults to: nil)

    Request-specific options

Yields:

  • (result, err)

    Result & error if block supplied

Yield Parameters:

Returns:

Raises:



91
92
93
94
95
96
97
98
99
100
# File 'generated/google/apis/homegraph_v1/service.rb', line 91

def delete_agent_user(agent_user_id, request_id: nil, fields: nil, quota_user: nil, options: nil, &block)
  command = make_simple_command(:delete, 'v1/{+agentUserId}', options)
  command.response_representation = Google::Apis::HomegraphV1::Empty::Representation
  command.response_class = Google::Apis::HomegraphV1::Empty
  command.params['agentUserId'] = agent_user_id unless agent_user_id.nil?
  command.query['requestId'] = request_id unless request_id.nil?
  command.query['fields'] = fields unless fields.nil?
  command.query['quotaUser'] = quota_user unless quota_user.nil?
  execute_or_queue_command(command, &block)
end

#query_device(query_request_object = nil, fields: nil, quota_user: nil, options: nil) {|result, err| ... } ⇒ Google::Apis::HomegraphV1::QueryResponse

Gets the device states for the devices in QueryRequest. The third-party user's identity is passed in as agent_user_id. The agent is identified by the JWT signed by the third-party partner's service account.

Parameters:

  • query_request_object (Google::Apis::HomegraphV1::QueryRequest) (defaults to: nil)
  • fields (String) (defaults to: nil)

    Selector specifying which fields to include in a partial response.

  • quota_user (String) (defaults to: nil)

    Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.

  • options (Google::Apis::RequestOptions) (defaults to: nil)

    Request-specific options

Yields:

  • (result, err)

    Result & error if block supplied

Yield Parameters:

Returns:

Raises:



124
125
126
127
128
129
130
131
132
133
# File 'generated/google/apis/homegraph_v1/service.rb', line 124

def query_device(query_request_object = nil, fields: nil, quota_user: nil, options: nil, &block)
  command = make_simple_command(:post, 'v1/devices:query', options)
  command.request_representation = Google::Apis::HomegraphV1::QueryRequest::Representation
  command.request_object = query_request_object
  command.response_representation = Google::Apis::HomegraphV1::QueryResponse::Representation
  command.response_class = Google::Apis::HomegraphV1::QueryResponse
  command.query['fields'] = fields unless fields.nil?
  command.query['quotaUser'] = quota_user unless quota_user.nil?
  execute_or_queue_command(command, &block)
end

#report_device_state_and_notification(report_state_and_notification_request_object = nil, fields: nil, quota_user: nil, options: nil) {|result, err| ... } ⇒ Google::Apis::HomegraphV1::ReportStateAndNotificationResponse

Reports device state and optionally sends device notifications. Called by an agent when the device state of a third-party changes or the agent wants to send a notification about the device. See Implement Report State for more information. This method updates a predefined set of states for a device, which all devices have according to their prescribed traits (for example, a light will have the OnOff trait that reports the state on as a boolean value). A new state may not be created and an INVALID_ARGUMENT code will be thrown if so. It also optionally takes in a list of Notifications that may be created, which are associated to this state change. The third-party user's identity is passed in as agent_user_id. The agent is identified by the JWT signed by the partner's service account.

Parameters:

  • report_state_and_notification_request_object (Google::Apis::HomegraphV1::ReportStateAndNotificationRequest) (defaults to: nil)
  • fields (String) (defaults to: nil)

    Selector specifying which fields to include in a partial response.

  • quota_user (String) (defaults to: nil)

    Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.

  • options (Google::Apis::RequestOptions) (defaults to: nil)

    Request-specific options

Yields:

  • (result, err)

    Result & error if block supplied

Yield Parameters:

Returns:

Raises:



167
168
169
170
171
172
173
174
175
176
# File 'generated/google/apis/homegraph_v1/service.rb', line 167

def report_device_state_and_notification(report_state_and_notification_request_object = nil, fields: nil, quota_user: nil, options: nil, &block)
  command = make_simple_command(:post, 'v1/devices:reportStateAndNotification', options)
  command.request_representation = Google::Apis::HomegraphV1::ReportStateAndNotificationRequest::Representation
  command.request_object = report_state_and_notification_request_object
  command.response_representation = Google::Apis::HomegraphV1::ReportStateAndNotificationResponse::Representation
  command.response_class = Google::Apis::HomegraphV1::ReportStateAndNotificationResponse
  command.query['fields'] = fields unless fields.nil?
  command.query['quotaUser'] = quota_user unless quota_user.nil?
  execute_or_queue_command(command, &block)
end

#request_sync_devices(request_sync_devices_request_object = nil, fields: nil, quota_user: nil, options: nil) {|result, err| ... } ⇒ Google::Apis::HomegraphV1::RequestSyncDevicesResponse

Requests a SYNC call from Google to a 3p partner's home control agent for a user. The third-party user's identity is passed in as agent_user_id (see RequestSyncDevicesRequest) and forwarded back to the agent. The agent is identified by the API key or JWT signed by the partner's service account.

Parameters:

  • request_sync_devices_request_object (Google::Apis::HomegraphV1::RequestSyncDevicesRequest) (defaults to: nil)
  • fields (String) (defaults to: nil)

    Selector specifying which fields to include in a partial response.

  • quota_user (String) (defaults to: nil)

    Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.

  • options (Google::Apis::RequestOptions) (defaults to: nil)

    Request-specific options

Yields:

  • (result, err)

    Result & error if block supplied

Yield Parameters:

Returns:

Raises:



202
203
204
205
206
207
208
209
210
211
# File 'generated/google/apis/homegraph_v1/service.rb', line 202

def request_sync_devices(request_sync_devices_request_object = nil, fields: nil, quota_user: nil, options: nil, &block)
  command = make_simple_command(:post, 'v1/devices:requestSync', options)
  command.request_representation = Google::Apis::HomegraphV1::RequestSyncDevicesRequest::Representation
  command.request_object = request_sync_devices_request_object
  command.response_representation = Google::Apis::HomegraphV1::RequestSyncDevicesResponse::Representation
  command.response_class = Google::Apis::HomegraphV1::RequestSyncDevicesResponse
  command.query['fields'] = fields unless fields.nil?
  command.query['quotaUser'] = quota_user unless quota_user.nil?
  execute_or_queue_command(command, &block)
end

#sync_device(sync_request_object = nil, fields: nil, quota_user: nil, options: nil) {|result, err| ... } ⇒ Google::Apis::HomegraphV1::SyncResponse

Gets all the devices associated with the given third-party user. The third-party user's identity is passed in as agent_user_id. The agent is identified by the JWT signed by the third-party partner's service account.

Parameters:

  • sync_request_object (Google::Apis::HomegraphV1::SyncRequest) (defaults to: nil)
  • fields (String) (defaults to: nil)

    Selector specifying which fields to include in a partial response.

  • quota_user (String) (defaults to: nil)

    Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.

  • options (Google::Apis::RequestOptions) (defaults to: nil)

    Request-specific options

Yields:

  • (result, err)

    Result & error if block supplied

Yield Parameters:

Returns:

Raises:



235
236
237
238
239
240
241
242
243
244
# File 'generated/google/apis/homegraph_v1/service.rb', line 235

def sync_device(sync_request_object = nil, fields: nil, quota_user: nil, options: nil, &block)
  command = make_simple_command(:post, 'v1/devices:sync', options)
  command.request_representation = Google::Apis::HomegraphV1::SyncRequest::Representation
  command.request_object = sync_request_object
  command.response_representation = Google::Apis::HomegraphV1::SyncResponse::Representation
  command.response_class = Google::Apis::HomegraphV1::SyncResponse
  command.query['fields'] = fields unless fields.nil?
  command.query['quotaUser'] = quota_user unless quota_user.nil?
  execute_or_queue_command(command, &block)
end