Class: Google::Apis::HomegraphV1::HomeGraphServiceService
- Inherits:
-
Core::BaseService
- Object
- Core::BaseService
- Google::Apis::HomegraphV1::HomeGraphServiceService
- Defined in:
- generated/google/apis/homegraph_v1/service.rb
Overview
HomeGraph API
Instance Attribute Summary collapse
-
#key ⇒ String
API key.
-
#quota_user ⇒ String
Available to use for quota purposes for server-side applications.
Attributes inherited from Core::BaseService
#authorization, #base_path, #batch_path, #client, #client_options, #request_options, #root_url, #upload_path
Instance Method Summary collapse
-
#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.
-
#initialize ⇒ HomeGraphServiceService
constructor
A new instance of HomeGraphServiceService.
-
#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.
-
#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.
-
#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. -
#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.
Methods inherited from Core::BaseService
#batch, #batch_upload, #fetch_all, #http
Methods included from Core::Logging
Constructor Details
#initialize ⇒ HomeGraphServiceService
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
#key ⇒ String
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.
38 39 40 |
# File 'generated/google/apis/homegraph_v1/service.rb', line 38 def key @key end |
#quota_user ⇒ String
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.
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:
- When a user opens their Google Home App, they can begin linking a 3p partner.
- User is guided through the OAuth process.
- 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. - 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 fromagent_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 oneagent_user_id
(e.g., a husband and wife share one Nest account username/password). The third-party user's identity is passed in asagent_user_id
. The agent is identified by the JWT signed by the partner's service account. Note: Special characters (except "/") inagent_user_id
must be URL-encoded.
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}', ) 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.
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', ) 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.
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', ) 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.
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', ) 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.
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', ) 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 |