Class DeviceManagerClient (2.1.7)

public class DeviceManagerClient implements BackgroundResource

Service Description: Internet of Things (IoT) service. Securely connect and manage IoT devices.

This class provides the ability to make remote calls to the backing service through method calls that map to API methods. Sample code to get started:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
   DeviceRegistry deviceRegistry = DeviceRegistry.newBuilder().build();
   DeviceRegistry response = deviceManagerClient.createDeviceRegistry(parent, deviceRegistry);
 }
 

Note: close() needs to be called on the DeviceManagerClient object to clean up resources such as threads. In the example above, try-with-resources is used, which automatically calls close().

The surface of this class includes several types of Java methods for each of the API's methods:

  1. A "flattened" method. With this type of method, the fields of the request type have been converted into function parameters. It may be the case that not all fields are available as parameters, and not every API method will have a flattened method entry point.
  2. A "request object" method. This type of method only takes one parameter, a request object, which must be constructed before the call. Not every API method will have a request object method.
  3. A "callable" method. This type of method takes no parameters and returns an immutable API callable object, which can be used to initiate calls to the service.

See the individual methods for example code.

Many parameters require resource names to be formatted in a particular way. To assist with these names, this class includes a format method for each type of name, and additionally a parse method to extract the individual identifiers contained within names that are returned.

This class can be customized by passing in a custom instance of DeviceManagerSettings to create(). For example:

To customize credentials:


 DeviceManagerSettings deviceManagerSettings =
     DeviceManagerSettings.newBuilder()
         .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials))
         .build();
 DeviceManagerClient deviceManagerClient = DeviceManagerClient.create(deviceManagerSettings);
 

To customize the endpoint:


 DeviceManagerSettings deviceManagerSettings =
     DeviceManagerSettings.newBuilder().setEndpoint(myEndpoint).build();
 DeviceManagerClient deviceManagerClient = DeviceManagerClient.create(deviceManagerSettings);
 

Please refer to the GitHub repository's samples for more quickstart code snippets.

Inheritance

java.lang.Object > DeviceManagerClient

Implements

BackgroundResource

Static Methods

create()

public static final DeviceManagerClient create()

Constructs an instance of DeviceManagerClient with default settings.

Returns
TypeDescription
DeviceManagerClient
Exceptions
TypeDescription
IOException

create(DeviceManagerSettings settings)

public static final DeviceManagerClient create(DeviceManagerSettings settings)

Constructs an instance of DeviceManagerClient, using the given settings. The channels are created based on the settings passed in, or defaults for any settings that are not set.

Parameter
NameDescription
settingsDeviceManagerSettings
Returns
TypeDescription
DeviceManagerClient
Exceptions
TypeDescription
IOException

create(DeviceManagerStub stub)

public static final DeviceManagerClient create(DeviceManagerStub stub)

Constructs an instance of DeviceManagerClient, using the given stub for making calls. This is for advanced usage - prefer using create(DeviceManagerSettings).

Parameter
NameDescription
stubDeviceManagerStub
Returns
TypeDescription
DeviceManagerClient

Constructors

DeviceManagerClient(DeviceManagerSettings settings)

protected DeviceManagerClient(DeviceManagerSettings settings)

Constructs an instance of DeviceManagerClient, using the given settings. This is protected so that it is easy to make a subclass, but otherwise, the static factory methods should be preferred.

Parameter
NameDescription
settingsDeviceManagerSettings

DeviceManagerClient(DeviceManagerStub stub)

protected DeviceManagerClient(DeviceManagerStub stub)
Parameter
NameDescription
stubDeviceManagerStub

Methods

awaitTermination(long duration, TimeUnit unit)

public boolean awaitTermination(long duration, TimeUnit unit)
Parameters
NameDescription
durationlong
unitTimeUnit
Returns
TypeDescription
boolean
Exceptions
TypeDescription
InterruptedException

bindDeviceToGateway(BindDeviceToGatewayRequest request)

public final BindDeviceToGatewayResponse bindDeviceToGateway(BindDeviceToGatewayRequest request)

Associates the device with the gateway.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   BindDeviceToGatewayRequest request =
       BindDeviceToGatewayRequest.newBuilder()
           .setParent(RegistryName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]").toString())
           .setGatewayId("gatewayId-1354641793")
           .setDeviceId("deviceId1109191185")
           .build();
   BindDeviceToGatewayResponse response = deviceManagerClient.bindDeviceToGateway(request);
 }
 
Parameter
NameDescription
requestBindDeviceToGatewayRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
BindDeviceToGatewayResponse

bindDeviceToGateway(RegistryName parent, String gatewayId, String deviceId)

public final BindDeviceToGatewayResponse bindDeviceToGateway(RegistryName parent, String gatewayId, String deviceId)

Associates the device with the gateway.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   RegistryName parent = RegistryName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]");
   String gatewayId = "gatewayId-1354641793";
   String deviceId = "deviceId1109191185";
   BindDeviceToGatewayResponse response =
       deviceManagerClient.bindDeviceToGateway(parent, gatewayId, deviceId);
 }
 
Parameters
NameDescription
parentRegistryName

Required. The name of the registry. For example, projects/example-project/locations/us-central1/registries/my-registry.

gatewayIdString

Required. The value of gateway_id can be either the device numeric ID or the user-defined device identifier.

deviceIdString

Required. The device to associate with the specified gateway. The value of device_id can be either the device numeric ID or the user-defined device identifier.

Returns
TypeDescription
BindDeviceToGatewayResponse

bindDeviceToGateway(String parent, String gatewayId, String deviceId)

public final BindDeviceToGatewayResponse bindDeviceToGateway(String parent, String gatewayId, String deviceId)

Associates the device with the gateway.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   String parent = RegistryName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]").toString();
   String gatewayId = "gatewayId-1354641793";
   String deviceId = "deviceId1109191185";
   BindDeviceToGatewayResponse response =
       deviceManagerClient.bindDeviceToGateway(parent, gatewayId, deviceId);
 }
 
Parameters
NameDescription
parentString

Required. The name of the registry. For example, projects/example-project/locations/us-central1/registries/my-registry.

gatewayIdString

Required. The value of gateway_id can be either the device numeric ID or the user-defined device identifier.

deviceIdString

Required. The device to associate with the specified gateway. The value of device_id can be either the device numeric ID or the user-defined device identifier.

Returns
TypeDescription
BindDeviceToGatewayResponse

bindDeviceToGatewayCallable()

public final UnaryCallable<BindDeviceToGatewayRequest,BindDeviceToGatewayResponse> bindDeviceToGatewayCallable()

Associates the device with the gateway.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   BindDeviceToGatewayRequest request =
       BindDeviceToGatewayRequest.newBuilder()
           .setParent(RegistryName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]").toString())
           .setGatewayId("gatewayId-1354641793")
           .setDeviceId("deviceId1109191185")
           .build();
   ApiFuture
Returns
TypeDescription
UnaryCallable<BindDeviceToGatewayRequest,BindDeviceToGatewayResponse>

close()

public final void close()

createDevice(CreateDeviceRequest request)

public final Device createDevice(CreateDeviceRequest request)

Creates a device in a device registry.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   CreateDeviceRequest request =
       CreateDeviceRequest.newBuilder()
           .setParent(RegistryName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]").toString())
           .setDevice(Device.newBuilder().build())
           .build();
   Device response = deviceManagerClient.createDevice(request);
 }
 
Parameter
NameDescription
requestCreateDeviceRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
Device

createDevice(RegistryName parent, Device device)

public final Device createDevice(RegistryName parent, Device device)

Creates a device in a device registry.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   RegistryName parent = RegistryName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]");
   Device device = Device.newBuilder().build();
   Device response = deviceManagerClient.createDevice(parent, device);
 }
 
Parameters
NameDescription
parentRegistryName

Required. The name of the device registry where this device should be created. For example, projects/example-project/locations/us-central1/registries/my-registry.

deviceDevice

Required. The device registration details. The field name must be empty. The server generates name from the device registry id and the parent field.

Returns
TypeDescription
Device

createDevice(String parent, Device device)

public final Device createDevice(String parent, Device device)

Creates a device in a device registry.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   String parent = RegistryName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]").toString();
   Device device = Device.newBuilder().build();
   Device response = deviceManagerClient.createDevice(parent, device);
 }
 
Parameters
NameDescription
parentString

Required. The name of the device registry where this device should be created. For example, projects/example-project/locations/us-central1/registries/my-registry.

deviceDevice

Required. The device registration details. The field name must be empty. The server generates name from the device registry id and the parent field.

Returns
TypeDescription
Device

createDeviceCallable()

public final UnaryCallable<CreateDeviceRequest,Device> createDeviceCallable()

Creates a device in a device registry.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   CreateDeviceRequest request =
       CreateDeviceRequest.newBuilder()
           .setParent(RegistryName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]").toString())
           .setDevice(Device.newBuilder().build())
           .build();
   ApiFuture<Device> future = deviceManagerClient.createDeviceCallable().futureCall(request);
   // Do something.
   Device response = future.get();
 }
 
Returns
TypeDescription
UnaryCallable<CreateDeviceRequest,Device>

createDeviceRegistry(CreateDeviceRegistryRequest request)

public final DeviceRegistry createDeviceRegistry(CreateDeviceRegistryRequest request)

Creates a device registry that contains devices.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   CreateDeviceRegistryRequest request =
       CreateDeviceRegistryRequest.newBuilder()
           .setParent(LocationName.of("[PROJECT]", "[LOCATION]").toString())
           .setDeviceRegistry(DeviceRegistry.newBuilder().build())
           .build();
   DeviceRegistry response = deviceManagerClient.createDeviceRegistry(request);
 }
 
Parameter
NameDescription
requestCreateDeviceRegistryRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
DeviceRegistry

createDeviceRegistry(LocationName parent, DeviceRegistry deviceRegistry)

public final DeviceRegistry createDeviceRegistry(LocationName parent, DeviceRegistry deviceRegistry)

Creates a device registry that contains devices.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
   DeviceRegistry deviceRegistry = DeviceRegistry.newBuilder().build();
   DeviceRegistry response = deviceManagerClient.createDeviceRegistry(parent, deviceRegistry);
 }
 
Parameters
NameDescription
parentLocationName

Required. The project and cloud region where this device registry must be created. For example, projects/example-project/locations/us-central1.

deviceRegistryDeviceRegistry

Required. The device registry. The field name must be empty. The server will generate that field from the device registry id provided and the parent field.

Returns
TypeDescription
DeviceRegistry

createDeviceRegistry(String parent, DeviceRegistry deviceRegistry)

public final DeviceRegistry createDeviceRegistry(String parent, DeviceRegistry deviceRegistry)

Creates a device registry that contains devices.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   String parent = LocationName.of("[PROJECT]", "[LOCATION]").toString();
   DeviceRegistry deviceRegistry = DeviceRegistry.newBuilder().build();
   DeviceRegistry response = deviceManagerClient.createDeviceRegistry(parent, deviceRegistry);
 }
 
Parameters
NameDescription
parentString

Required. The project and cloud region where this device registry must be created. For example, projects/example-project/locations/us-central1.

deviceRegistryDeviceRegistry

Required. The device registry. The field name must be empty. The server will generate that field from the device registry id provided and the parent field.

Returns
TypeDescription
DeviceRegistry

createDeviceRegistryCallable()

public final UnaryCallable<CreateDeviceRegistryRequest,DeviceRegistry> createDeviceRegistryCallable()

Creates a device registry that contains devices.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   CreateDeviceRegistryRequest request =
       CreateDeviceRegistryRequest.newBuilder()
           .setParent(LocationName.of("[PROJECT]", "[LOCATION]").toString())
           .setDeviceRegistry(DeviceRegistry.newBuilder().build())
           .build();
   ApiFuture
Returns
TypeDescription
UnaryCallable<CreateDeviceRegistryRequest,DeviceRegistry>

deleteDevice(DeleteDeviceRequest request)

public final void deleteDevice(DeleteDeviceRequest request)

Deletes a device.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   DeleteDeviceRequest request =
       DeleteDeviceRequest.newBuilder()
           .setName(
               DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]").toString())
           .build();
   deviceManagerClient.deleteDevice(request);
 }
 
Parameter
NameDescription
requestDeleteDeviceRequest

The request object containing all of the parameters for the API call.

deleteDevice(DeviceName name)

public final void deleteDevice(DeviceName name)

Deletes a device.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   DeviceName name = DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]");
   deviceManagerClient.deleteDevice(name);
 }
 
Parameter
NameDescription
nameDeviceName

Required. The name of the device. For example, projects/p0/locations/us-central1/registries/registry0/devices/device0 or projects/p0/locations/us-central1/registries/registry0/devices/{num_id}.

deleteDevice(String name)

public final void deleteDevice(String name)

Deletes a device.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   String name = DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]").toString();
   deviceManagerClient.deleteDevice(name);
 }
 
Parameter
NameDescription
nameString

Required. The name of the device. For example, projects/p0/locations/us-central1/registries/registry0/devices/device0 or projects/p0/locations/us-central1/registries/registry0/devices/{num_id}.

deleteDeviceCallable()

public final UnaryCallable<DeleteDeviceRequest,Empty> deleteDeviceCallable()

Deletes a device.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   DeleteDeviceRequest request =
       DeleteDeviceRequest.newBuilder()
           .setName(
               DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]").toString())
           .build();
   ApiFuture<Empty> future = deviceManagerClient.deleteDeviceCallable().futureCall(request);
   // Do something.
   future.get();
 }
 
Returns
TypeDescription
UnaryCallable<DeleteDeviceRequest,Empty>

deleteDeviceRegistry(DeleteDeviceRegistryRequest request)

public final void deleteDeviceRegistry(DeleteDeviceRegistryRequest request)

Deletes a device registry configuration.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   DeleteDeviceRegistryRequest request =
       DeleteDeviceRegistryRequest.newBuilder()
           .setName(RegistryName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]").toString())
           .build();
   deviceManagerClient.deleteDeviceRegistry(request);
 }
 
Parameter
NameDescription
requestDeleteDeviceRegistryRequest

The request object containing all of the parameters for the API call.

deleteDeviceRegistry(RegistryName name)

public final void deleteDeviceRegistry(RegistryName name)

Deletes a device registry configuration.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   RegistryName name = RegistryName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]");
   deviceManagerClient.deleteDeviceRegistry(name);
 }
 
Parameter
NameDescription
nameRegistryName

Required. The name of the device registry. For example, projects/example-project/locations/us-central1/registries/my-registry.

deleteDeviceRegistry(String name)

public final void deleteDeviceRegistry(String name)

Deletes a device registry configuration.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   String name = RegistryName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]").toString();
   deviceManagerClient.deleteDeviceRegistry(name);
 }
 
Parameter
NameDescription
nameString

Required. The name of the device registry. For example, projects/example-project/locations/us-central1/registries/my-registry.

deleteDeviceRegistryCallable()

public final UnaryCallable<DeleteDeviceRegistryRequest,Empty> deleteDeviceRegistryCallable()

Deletes a device registry configuration.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   DeleteDeviceRegistryRequest request =
       DeleteDeviceRegistryRequest.newBuilder()
           .setName(RegistryName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]").toString())
           .build();
   ApiFuture<Empty> future =
       deviceManagerClient.deleteDeviceRegistryCallable().futureCall(request);
   // Do something.
   future.get();
 }
 
Returns
TypeDescription
UnaryCallable<DeleteDeviceRegistryRequest,Empty>

getDevice(DeviceName name)

public final Device getDevice(DeviceName name)

Gets details about a device.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   DeviceName name = DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]");
   Device response = deviceManagerClient.getDevice(name);
 }
 
Parameter
NameDescription
nameDeviceName

Required. The name of the device. For example, projects/p0/locations/us-central1/registries/registry0/devices/device0 or projects/p0/locations/us-central1/registries/registry0/devices/{num_id}.

Returns
TypeDescription
Device

getDevice(GetDeviceRequest request)

public final Device getDevice(GetDeviceRequest request)

Gets details about a device.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   GetDeviceRequest request =
       GetDeviceRequest.newBuilder()
           .setName(
               DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]").toString())
           .setFieldMask(FieldMask.newBuilder().build())
           .build();
   Device response = deviceManagerClient.getDevice(request);
 }
 
Parameter
NameDescription
requestGetDeviceRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
Device

getDevice(String name)

public final Device getDevice(String name)

Gets details about a device.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   String name = DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]").toString();
   Device response = deviceManagerClient.getDevice(name);
 }
 
Parameter
NameDescription
nameString

Required. The name of the device. For example, projects/p0/locations/us-central1/registries/registry0/devices/device0 or projects/p0/locations/us-central1/registries/registry0/devices/{num_id}.

Returns
TypeDescription
Device

getDeviceCallable()

public final UnaryCallable<GetDeviceRequest,Device> getDeviceCallable()

Gets details about a device.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   GetDeviceRequest request =
       GetDeviceRequest.newBuilder()
           .setName(
               DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]").toString())
           .setFieldMask(FieldMask.newBuilder().build())
           .build();
   ApiFuture<Device> future = deviceManagerClient.getDeviceCallable().futureCall(request);
   // Do something.
   Device response = future.get();
 }
 
Returns
TypeDescription
UnaryCallable<GetDeviceRequest,Device>

getDeviceRegistry(GetDeviceRegistryRequest request)

public final DeviceRegistry getDeviceRegistry(GetDeviceRegistryRequest request)

Gets a device registry configuration.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   GetDeviceRegistryRequest request =
       GetDeviceRegistryRequest.newBuilder()
           .setName(RegistryName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]").toString())
           .build();
   DeviceRegistry response = deviceManagerClient.getDeviceRegistry(request);
 }
 
Parameter
NameDescription
requestGetDeviceRegistryRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
DeviceRegistry

getDeviceRegistry(RegistryName name)

public final DeviceRegistry getDeviceRegistry(RegistryName name)

Gets a device registry configuration.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   RegistryName name = RegistryName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]");
   DeviceRegistry response = deviceManagerClient.getDeviceRegistry(name);
 }
 
Parameter
NameDescription
nameRegistryName

Required. The name of the device registry. For example, projects/example-project/locations/us-central1/registries/my-registry.

Returns
TypeDescription
DeviceRegistry

getDeviceRegistry(String name)

public final DeviceRegistry getDeviceRegistry(String name)

Gets a device registry configuration.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   String name = RegistryName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]").toString();
   DeviceRegistry response = deviceManagerClient.getDeviceRegistry(name);
 }
 
Parameter
NameDescription
nameString

Required. The name of the device registry. For example, projects/example-project/locations/us-central1/registries/my-registry.

Returns
TypeDescription
DeviceRegistry

getDeviceRegistryCallable()

public final UnaryCallable<GetDeviceRegistryRequest,DeviceRegistry> getDeviceRegistryCallable()

Gets a device registry configuration.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   GetDeviceRegistryRequest request =
       GetDeviceRegistryRequest.newBuilder()
           .setName(RegistryName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]").toString())
           .build();
   ApiFuture
Returns
TypeDescription
UnaryCallable<GetDeviceRegistryRequest,DeviceRegistry>

getIamPolicy(ResourceName resource)

public final Policy getIamPolicy(ResourceName resource)

Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   ResourceName resource = DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]");
   Policy response = deviceManagerClient.getIamPolicy(resource);
 }
 
Parameter
NameDescription
resourcecom.google.api.resourcenames.ResourceName

REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.

Returns
TypeDescription
com.google.iam.v1.Policy

getIamPolicy(GetIamPolicyRequest request)

public final Policy getIamPolicy(GetIamPolicyRequest request)

Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   GetIamPolicyRequest request =
       GetIamPolicyRequest.newBuilder()
           .setResource(
               DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]").toString())
           .setOptions(GetPolicyOptions.newBuilder().build())
           .build();
   Policy response = deviceManagerClient.getIamPolicy(request);
 }
 
Parameter
NameDescription
requestcom.google.iam.v1.GetIamPolicyRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
com.google.iam.v1.Policy

getIamPolicy(String resource)

public final Policy getIamPolicy(String resource)

Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   String resource =
       DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]").toString();
   Policy response = deviceManagerClient.getIamPolicy(resource);
 }
 
Parameter
NameDescription
resourceString

REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.

Returns
TypeDescription
com.google.iam.v1.Policy

getIamPolicyCallable()

public final UnaryCallable<GetIamPolicyRequest,Policy> getIamPolicyCallable()

Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   GetIamPolicyRequest request =
       GetIamPolicyRequest.newBuilder()
           .setResource(
               DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]").toString())
           .setOptions(GetPolicyOptions.newBuilder().build())
           .build();
   ApiFuture<Policy> future = deviceManagerClient.getIamPolicyCallable().futureCall(request);
   // Do something.
   Policy response = future.get();
 }
 
Returns
TypeDescription
UnaryCallable<com.google.iam.v1.GetIamPolicyRequest,com.google.iam.v1.Policy>

getSettings()

public final DeviceManagerSettings getSettings()
Returns
TypeDescription
DeviceManagerSettings

getStub()

public DeviceManagerStub getStub()
Returns
TypeDescription
DeviceManagerStub

isShutdown()

public boolean isShutdown()
Returns
TypeDescription
boolean

isTerminated()

public boolean isTerminated()
Returns
TypeDescription
boolean

listDeviceConfigVersions(DeviceName name)

public final ListDeviceConfigVersionsResponse listDeviceConfigVersions(DeviceName name)

Lists the last few versions of the device configuration in descending order (i.e.: newest first).

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   DeviceName name = DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]");
   ListDeviceConfigVersionsResponse response =
       deviceManagerClient.listDeviceConfigVersions(name);
 }
 
Parameter
NameDescription
nameDeviceName

Required. The name of the device. For example, projects/p0/locations/us-central1/registries/registry0/devices/device0 or projects/p0/locations/us-central1/registries/registry0/devices/{num_id}.

Returns
TypeDescription
ListDeviceConfigVersionsResponse

listDeviceConfigVersions(ListDeviceConfigVersionsRequest request)

public final ListDeviceConfigVersionsResponse listDeviceConfigVersions(ListDeviceConfigVersionsRequest request)

Lists the last few versions of the device configuration in descending order (i.e.: newest first).

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   ListDeviceConfigVersionsRequest request =
       ListDeviceConfigVersionsRequest.newBuilder()
           .setName(
               DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]").toString())
           .setNumVersions(-315385036)
           .build();
   ListDeviceConfigVersionsResponse response =
       deviceManagerClient.listDeviceConfigVersions(request);
 }
 
Parameter
NameDescription
requestListDeviceConfigVersionsRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
ListDeviceConfigVersionsResponse

listDeviceConfigVersions(String name)

public final ListDeviceConfigVersionsResponse listDeviceConfigVersions(String name)

Lists the last few versions of the device configuration in descending order (i.e.: newest first).

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   String name = DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]").toString();
   ListDeviceConfigVersionsResponse response =
       deviceManagerClient.listDeviceConfigVersions(name);
 }
 
Parameter
NameDescription
nameString

Required. The name of the device. For example, projects/p0/locations/us-central1/registries/registry0/devices/device0 or projects/p0/locations/us-central1/registries/registry0/devices/{num_id}.

Returns
TypeDescription
ListDeviceConfigVersionsResponse

listDeviceConfigVersionsCallable()

public final UnaryCallable<ListDeviceConfigVersionsRequest,ListDeviceConfigVersionsResponse> listDeviceConfigVersionsCallable()

Lists the last few versions of the device configuration in descending order (i.e.: newest first).

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   ListDeviceConfigVersionsRequest request =
       ListDeviceConfigVersionsRequest.newBuilder()
           .setName(
               DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]").toString())
           .setNumVersions(-315385036)
           .build();
   ApiFuture
Returns
TypeDescription
UnaryCallable<ListDeviceConfigVersionsRequest,ListDeviceConfigVersionsResponse>

listDeviceRegistries(ListDeviceRegistriesRequest request)

public final DeviceManagerClient.ListDeviceRegistriesPagedResponse listDeviceRegistries(ListDeviceRegistriesRequest request)

Lists device registries.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   ListDeviceRegistriesRequest request =
       ListDeviceRegistriesRequest.newBuilder()
           .setParent(LocationName.of("[PROJECT]", "[LOCATION]").toString())
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .build();
   for (DeviceRegistry element :
       deviceManagerClient.listDeviceRegistries(request).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameter
NameDescription
requestListDeviceRegistriesRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
DeviceManagerClient.ListDeviceRegistriesPagedResponse

listDeviceRegistries(LocationName parent)

public final DeviceManagerClient.ListDeviceRegistriesPagedResponse listDeviceRegistries(LocationName parent)

Lists device registries.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
   for (DeviceRegistry element : deviceManagerClient.listDeviceRegistries(parent).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameter
NameDescription
parentLocationName

Required. The project and cloud region path. For example, projects/example-project/locations/us-central1.

Returns
TypeDescription
DeviceManagerClient.ListDeviceRegistriesPagedResponse

listDeviceRegistries(String parent)

public final DeviceManagerClient.ListDeviceRegistriesPagedResponse listDeviceRegistries(String parent)

Lists device registries.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   String parent = LocationName.of("[PROJECT]", "[LOCATION]").toString();
   for (DeviceRegistry element : deviceManagerClient.listDeviceRegistries(parent).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameter
NameDescription
parentString

Required. The project and cloud region path. For example, projects/example-project/locations/us-central1.

Returns
TypeDescription
DeviceManagerClient.ListDeviceRegistriesPagedResponse

listDeviceRegistriesCallable()

public final UnaryCallable<ListDeviceRegistriesRequest,ListDeviceRegistriesResponse> listDeviceRegistriesCallable()

Lists device registries.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   ListDeviceRegistriesRequest request =
       ListDeviceRegistriesRequest.newBuilder()
           .setParent(LocationName.of("[PROJECT]", "[LOCATION]").toString())
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .build();
   while (true) {
     ListDeviceRegistriesResponse response =
         deviceManagerClient.listDeviceRegistriesCallable().call(request);
     for (DeviceRegistry element : response.getResponsesList()) {
       // doThingsWith(element);
     }
     String nextPageToken = response.getNextPageToken();
     if (!Strings.isNullOrEmpty(nextPageToken)) {
       request = request.toBuilder().setPageToken(nextPageToken).build();
     } else {
       break;
     }
   }
 }
 
Returns
TypeDescription
UnaryCallable<ListDeviceRegistriesRequest,ListDeviceRegistriesResponse>

listDeviceRegistriesPagedCallable()

public final UnaryCallable<ListDeviceRegistriesRequest,DeviceManagerClient.ListDeviceRegistriesPagedResponse> listDeviceRegistriesPagedCallable()

Lists device registries.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   ListDeviceRegistriesRequest request =
       ListDeviceRegistriesRequest.newBuilder()
           .setParent(LocationName.of("[PROJECT]", "[LOCATION]").toString())
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .build();
   ApiFuture
Returns
TypeDescription
UnaryCallable<ListDeviceRegistriesRequest,ListDeviceRegistriesPagedResponse>

listDeviceStates(DeviceName name)

public final ListDeviceStatesResponse listDeviceStates(DeviceName name)

Lists the last few versions of the device state in descending order (i.e.: newest first).

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   DeviceName name = DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]");
   ListDeviceStatesResponse response = deviceManagerClient.listDeviceStates(name);
 }
 
Parameter
NameDescription
nameDeviceName

Required. The name of the device. For example, projects/p0/locations/us-central1/registries/registry0/devices/device0 or projects/p0/locations/us-central1/registries/registry0/devices/{num_id}.

Returns
TypeDescription
ListDeviceStatesResponse

listDeviceStates(ListDeviceStatesRequest request)

public final ListDeviceStatesResponse listDeviceStates(ListDeviceStatesRequest request)

Lists the last few versions of the device state in descending order (i.e.: newest first).

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   ListDeviceStatesRequest request =
       ListDeviceStatesRequest.newBuilder()
           .setName(
               DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]").toString())
           .setNumStates(1643330779)
           .build();
   ListDeviceStatesResponse response = deviceManagerClient.listDeviceStates(request);
 }
 
Parameter
NameDescription
requestListDeviceStatesRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
ListDeviceStatesResponse

listDeviceStates(String name)

public final ListDeviceStatesResponse listDeviceStates(String name)

Lists the last few versions of the device state in descending order (i.e.: newest first).

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   String name = DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]").toString();
   ListDeviceStatesResponse response = deviceManagerClient.listDeviceStates(name);
 }
 
Parameter
NameDescription
nameString

Required. The name of the device. For example, projects/p0/locations/us-central1/registries/registry0/devices/device0 or projects/p0/locations/us-central1/registries/registry0/devices/{num_id}.

Returns
TypeDescription
ListDeviceStatesResponse

listDeviceStatesCallable()

public final UnaryCallable<ListDeviceStatesRequest,ListDeviceStatesResponse> listDeviceStatesCallable()

Lists the last few versions of the device state in descending order (i.e.: newest first).

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   ListDeviceStatesRequest request =
       ListDeviceStatesRequest.newBuilder()
           .setName(
               DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]").toString())
           .setNumStates(1643330779)
           .build();
   ApiFuture
Returns
TypeDescription
UnaryCallable<ListDeviceStatesRequest,ListDeviceStatesResponse>

listDevices(ListDevicesRequest request)

public final DeviceManagerClient.ListDevicesPagedResponse listDevices(ListDevicesRequest request)

List devices in a device registry.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   ListDevicesRequest request =
       ListDevicesRequest.newBuilder()
           .setParent(RegistryName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]").toString())
           .addAllDeviceNumIds(new ArrayList<Long>())
           .addAllDeviceIds(new ArrayList<String>())
           .setFieldMask(FieldMask.newBuilder().build())
           .setGatewayListOptions(GatewayListOptions.newBuilder().build())
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .build();
   for (Device element : deviceManagerClient.listDevices(request).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameter
NameDescription
requestListDevicesRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
DeviceManagerClient.ListDevicesPagedResponse

listDevices(RegistryName parent)

public final DeviceManagerClient.ListDevicesPagedResponse listDevices(RegistryName parent)

List devices in a device registry.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   RegistryName parent = RegistryName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]");
   for (Device element : deviceManagerClient.listDevices(parent).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameter
NameDescription
parentRegistryName

Required. The device registry path. Required. For example, projects/my-project/locations/us-central1/registries/my-registry.

Returns
TypeDescription
DeviceManagerClient.ListDevicesPagedResponse

listDevices(String parent)

public final DeviceManagerClient.ListDevicesPagedResponse listDevices(String parent)

List devices in a device registry.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   String parent = RegistryName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]").toString();
   for (Device element : deviceManagerClient.listDevices(parent).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameter
NameDescription
parentString

Required. The device registry path. Required. For example, projects/my-project/locations/us-central1/registries/my-registry.

Returns
TypeDescription
DeviceManagerClient.ListDevicesPagedResponse

listDevicesCallable()

public final UnaryCallable<ListDevicesRequest,ListDevicesResponse> listDevicesCallable()

List devices in a device registry.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   ListDevicesRequest request =
       ListDevicesRequest.newBuilder()
           .setParent(RegistryName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]").toString())
           .addAllDeviceNumIds(new ArrayList<Long>())
           .addAllDeviceIds(new ArrayList<String>())
           .setFieldMask(FieldMask.newBuilder().build())
           .setGatewayListOptions(GatewayListOptions.newBuilder().build())
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .build();
   while (true) {
     ListDevicesResponse response = deviceManagerClient.listDevicesCallable().call(request);
     for (Device element : response.getResponsesList()) {
       // doThingsWith(element);
     }
     String nextPageToken = response.getNextPageToken();
     if (!Strings.isNullOrEmpty(nextPageToken)) {
       request = request.toBuilder().setPageToken(nextPageToken).build();
     } else {
       break;
     }
   }
 }
 
Returns
TypeDescription
UnaryCallable<ListDevicesRequest,ListDevicesResponse>

listDevicesPagedCallable()

public final UnaryCallable<ListDevicesRequest,DeviceManagerClient.ListDevicesPagedResponse> listDevicesPagedCallable()

List devices in a device registry.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   ListDevicesRequest request =
       ListDevicesRequest.newBuilder()
           .setParent(RegistryName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]").toString())
           .addAllDeviceNumIds(new ArrayList<Long>())
           .addAllDeviceIds(new ArrayList<String>())
           .setFieldMask(FieldMask.newBuilder().build())
           .setGatewayListOptions(GatewayListOptions.newBuilder().build())
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .build();
   ApiFuture<Device> future = deviceManagerClient.listDevicesPagedCallable().futureCall(request);
   // Do something.
   for (Device element : future.get().iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Returns
TypeDescription
UnaryCallable<ListDevicesRequest,ListDevicesPagedResponse>

modifyCloudToDeviceConfig(DeviceName name, ByteString binaryData)

public final DeviceConfig modifyCloudToDeviceConfig(DeviceName name, ByteString binaryData)

Modifies the configuration for the device, which is eventually sent from the Cloud IoT Core servers. Returns the modified configuration version and its metadata.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   DeviceName name = DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]");
   ByteString binaryData = ByteString.EMPTY;
   DeviceConfig response = deviceManagerClient.modifyCloudToDeviceConfig(name, binaryData);
 }
 
Parameters
NameDescription
nameDeviceName

Required. The name of the device. For example, projects/p0/locations/us-central1/registries/registry0/devices/device0 or projects/p0/locations/us-central1/registries/registry0/devices/{num_id}.

binaryDataByteString

Required. The configuration data for the device.

Returns
TypeDescription
DeviceConfig

modifyCloudToDeviceConfig(ModifyCloudToDeviceConfigRequest request)

public final DeviceConfig modifyCloudToDeviceConfig(ModifyCloudToDeviceConfigRequest request)

Modifies the configuration for the device, which is eventually sent from the Cloud IoT Core servers. Returns the modified configuration version and its metadata.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   ModifyCloudToDeviceConfigRequest request =
       ModifyCloudToDeviceConfigRequest.newBuilder()
           .setName(
               DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]").toString())
           .setVersionToUpdate(462348390)
           .setBinaryData(ByteString.EMPTY)
           .build();
   DeviceConfig response = deviceManagerClient.modifyCloudToDeviceConfig(request);
 }
 
Parameter
NameDescription
requestModifyCloudToDeviceConfigRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
DeviceConfig

modifyCloudToDeviceConfig(String name, ByteString binaryData)

public final DeviceConfig modifyCloudToDeviceConfig(String name, ByteString binaryData)

Modifies the configuration for the device, which is eventually sent from the Cloud IoT Core servers. Returns the modified configuration version and its metadata.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   String name = DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]").toString();
   ByteString binaryData = ByteString.EMPTY;
   DeviceConfig response = deviceManagerClient.modifyCloudToDeviceConfig(name, binaryData);
 }
 
Parameters
NameDescription
nameString

Required. The name of the device. For example, projects/p0/locations/us-central1/registries/registry0/devices/device0 or projects/p0/locations/us-central1/registries/registry0/devices/{num_id}.

binaryDataByteString

Required. The configuration data for the device.

Returns
TypeDescription
DeviceConfig

modifyCloudToDeviceConfigCallable()

public final UnaryCallable<ModifyCloudToDeviceConfigRequest,DeviceConfig> modifyCloudToDeviceConfigCallable()

Modifies the configuration for the device, which is eventually sent from the Cloud IoT Core servers. Returns the modified configuration version and its metadata.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   ModifyCloudToDeviceConfigRequest request =
       ModifyCloudToDeviceConfigRequest.newBuilder()
           .setName(
               DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]").toString())
           .setVersionToUpdate(462348390)
           .setBinaryData(ByteString.EMPTY)
           .build();
   ApiFuture
Returns
TypeDescription
UnaryCallable<ModifyCloudToDeviceConfigRequest,DeviceConfig>

sendCommandToDevice(DeviceName name, ByteString binaryData)

public final SendCommandToDeviceResponse sendCommandToDevice(DeviceName name, ByteString binaryData)

Sends a command to the specified device. In order for a device to be able to receive commands, it must: 1) be connected to Cloud IoT Core using the MQTT protocol, and 2) be subscribed to the group of MQTT topics specified by /devices/{device-id}/commands/#. This subscription will receive commands at the top-level topic /devices/{device-id}/commands as well as commands for subfolders, like /devices/{device-id}/commands/subfolder. Note that subscribing to specific subfolders is not supported. If the command could not be delivered to the device, this method will return an error; in particular, if the device is not subscribed, this method will return FAILED_PRECONDITION. Otherwise, this method will return OK. If the subscription is QoS 1, at least once delivery will be guaranteed; for QoS 0, no acknowledgment will be expected from the device.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   DeviceName name = DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]");
   ByteString binaryData = ByteString.EMPTY;
   SendCommandToDeviceResponse response =
       deviceManagerClient.sendCommandToDevice(name, binaryData);
 }
 
Parameters
NameDescription
nameDeviceName

Required. The name of the device. For example, projects/p0/locations/us-central1/registries/registry0/devices/device0 or projects/p0/locations/us-central1/registries/registry0/devices/{num_id}.

binaryDataByteString

Required. The command data to send to the device.

Returns
TypeDescription
SendCommandToDeviceResponse

sendCommandToDevice(DeviceName name, ByteString binaryData, String subfolder)

public final SendCommandToDeviceResponse sendCommandToDevice(DeviceName name, ByteString binaryData, String subfolder)

Sends a command to the specified device. In order for a device to be able to receive commands, it must: 1) be connected to Cloud IoT Core using the MQTT protocol, and 2) be subscribed to the group of MQTT topics specified by /devices/{device-id}/commands/#. This subscription will receive commands at the top-level topic /devices/{device-id}/commands as well as commands for subfolders, like /devices/{device-id}/commands/subfolder. Note that subscribing to specific subfolders is not supported. If the command could not be delivered to the device, this method will return an error; in particular, if the device is not subscribed, this method will return FAILED_PRECONDITION. Otherwise, this method will return OK. If the subscription is QoS 1, at least once delivery will be guaranteed; for QoS 0, no acknowledgment will be expected from the device.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   DeviceName name = DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]");
   ByteString binaryData = ByteString.EMPTY;
   String subfolder = "subfolder153561774";
   SendCommandToDeviceResponse response =
       deviceManagerClient.sendCommandToDevice(name, binaryData, subfolder);
 }
 
Parameters
NameDescription
nameDeviceName

Required. The name of the device. For example, projects/p0/locations/us-central1/registries/registry0/devices/device0 or projects/p0/locations/us-central1/registries/registry0/devices/{num_id}.

binaryDataByteString

Required. The command data to send to the device.

subfolderString

Optional subfolder for the command. If empty, the command will be delivered to the /devices/{device-id}/commands topic, otherwise it will be delivered to the /devices/{device-id}/commands/{subfolder} topic. Multi-level subfolders are allowed. This field must not have more than 256 characters, and must not contain any MQTT wildcards ("+" or "#") or null characters.

Returns
TypeDescription
SendCommandToDeviceResponse

sendCommandToDevice(SendCommandToDeviceRequest request)

public final SendCommandToDeviceResponse sendCommandToDevice(SendCommandToDeviceRequest request)

Sends a command to the specified device. In order for a device to be able to receive commands, it must: 1) be connected to Cloud IoT Core using the MQTT protocol, and 2) be subscribed to the group of MQTT topics specified by /devices/{device-id}/commands/#. This subscription will receive commands at the top-level topic /devices/{device-id}/commands as well as commands for subfolders, like /devices/{device-id}/commands/subfolder. Note that subscribing to specific subfolders is not supported. If the command could not be delivered to the device, this method will return an error; in particular, if the device is not subscribed, this method will return FAILED_PRECONDITION. Otherwise, this method will return OK. If the subscription is QoS 1, at least once delivery will be guaranteed; for QoS 0, no acknowledgment will be expected from the device.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   SendCommandToDeviceRequest request =
       SendCommandToDeviceRequest.newBuilder()
           .setName(
               DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]").toString())
           .setBinaryData(ByteString.EMPTY)
           .setSubfolder("subfolder153561774")
           .build();
   SendCommandToDeviceResponse response = deviceManagerClient.sendCommandToDevice(request);
 }
 
Parameter
NameDescription
requestSendCommandToDeviceRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
SendCommandToDeviceResponse

sendCommandToDevice(String name, ByteString binaryData)

public final SendCommandToDeviceResponse sendCommandToDevice(String name, ByteString binaryData)

Sends a command to the specified device. In order for a device to be able to receive commands, it must: 1) be connected to Cloud IoT Core using the MQTT protocol, and 2) be subscribed to the group of MQTT topics specified by /devices/{device-id}/commands/#. This subscription will receive commands at the top-level topic /devices/{device-id}/commands as well as commands for subfolders, like /devices/{device-id}/commands/subfolder. Note that subscribing to specific subfolders is not supported. If the command could not be delivered to the device, this method will return an error; in particular, if the device is not subscribed, this method will return FAILED_PRECONDITION. Otherwise, this method will return OK. If the subscription is QoS 1, at least once delivery will be guaranteed; for QoS 0, no acknowledgment will be expected from the device.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   String name = DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]").toString();
   ByteString binaryData = ByteString.EMPTY;
   SendCommandToDeviceResponse response =
       deviceManagerClient.sendCommandToDevice(name, binaryData);
 }
 
Parameters
NameDescription
nameString

Required. The name of the device. For example, projects/p0/locations/us-central1/registries/registry0/devices/device0 or projects/p0/locations/us-central1/registries/registry0/devices/{num_id}.

binaryDataByteString

Required. The command data to send to the device.

Returns
TypeDescription
SendCommandToDeviceResponse

sendCommandToDevice(String name, ByteString binaryData, String subfolder)

public final SendCommandToDeviceResponse sendCommandToDevice(String name, ByteString binaryData, String subfolder)

Sends a command to the specified device. In order for a device to be able to receive commands, it must: 1) be connected to Cloud IoT Core using the MQTT protocol, and 2) be subscribed to the group of MQTT topics specified by /devices/{device-id}/commands/#. This subscription will receive commands at the top-level topic /devices/{device-id}/commands as well as commands for subfolders, like /devices/{device-id}/commands/subfolder. Note that subscribing to specific subfolders is not supported. If the command could not be delivered to the device, this method will return an error; in particular, if the device is not subscribed, this method will return FAILED_PRECONDITION. Otherwise, this method will return OK. If the subscription is QoS 1, at least once delivery will be guaranteed; for QoS 0, no acknowledgment will be expected from the device.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   String name = DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]").toString();
   ByteString binaryData = ByteString.EMPTY;
   String subfolder = "subfolder153561774";
   SendCommandToDeviceResponse response =
       deviceManagerClient.sendCommandToDevice(name, binaryData, subfolder);
 }
 
Parameters
NameDescription
nameString

Required. The name of the device. For example, projects/p0/locations/us-central1/registries/registry0/devices/device0 or projects/p0/locations/us-central1/registries/registry0/devices/{num_id}.

binaryDataByteString

Required. The command data to send to the device.

subfolderString

Optional subfolder for the command. If empty, the command will be delivered to the /devices/{device-id}/commands topic, otherwise it will be delivered to the /devices/{device-id}/commands/{subfolder} topic. Multi-level subfolders are allowed. This field must not have more than 256 characters, and must not contain any MQTT wildcards ("+" or "#") or null characters.

Returns
TypeDescription
SendCommandToDeviceResponse

sendCommandToDeviceCallable()

public final UnaryCallable<SendCommandToDeviceRequest,SendCommandToDeviceResponse> sendCommandToDeviceCallable()

Sends a command to the specified device. In order for a device to be able to receive commands, it must: 1) be connected to Cloud IoT Core using the MQTT protocol, and 2) be subscribed to the group of MQTT topics specified by /devices/{device-id}/commands/#. This subscription will receive commands at the top-level topic /devices/{device-id}/commands as well as commands for subfolders, like /devices/{device-id}/commands/subfolder. Note that subscribing to specific subfolders is not supported. If the command could not be delivered to the device, this method will return an error; in particular, if the device is not subscribed, this method will return FAILED_PRECONDITION. Otherwise, this method will return OK. If the subscription is QoS 1, at least once delivery will be guaranteed; for QoS 0, no acknowledgment will be expected from the device.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   SendCommandToDeviceRequest request =
       SendCommandToDeviceRequest.newBuilder()
           .setName(
               DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]").toString())
           .setBinaryData(ByteString.EMPTY)
           .setSubfolder("subfolder153561774")
           .build();
   ApiFuture
Returns
TypeDescription
UnaryCallable<SendCommandToDeviceRequest,SendCommandToDeviceResponse>

setIamPolicy(ResourceName resource, Policy policy)

public final Policy setIamPolicy(ResourceName resource, Policy policy)

Sets the access control policy on the specified resource. Replaces any existing policy.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   ResourceName resource = DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]");
   Policy policy = Policy.newBuilder().build();
   Policy response = deviceManagerClient.setIamPolicy(resource, policy);
 }
 
Parameters
NameDescription
resourcecom.google.api.resourcenames.ResourceName

REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.

policycom.google.iam.v1.Policy

REQUIRED: The complete policy to be applied to the resource. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them.

Returns
TypeDescription
com.google.iam.v1.Policy

setIamPolicy(SetIamPolicyRequest request)

public final Policy setIamPolicy(SetIamPolicyRequest request)

Sets the access control policy on the specified resource. Replaces any existing policy.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   SetIamPolicyRequest request =
       SetIamPolicyRequest.newBuilder()
           .setResource(
               DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]").toString())
           .setPolicy(Policy.newBuilder().build())
           .build();
   Policy response = deviceManagerClient.setIamPolicy(request);
 }
 
Parameter
NameDescription
requestcom.google.iam.v1.SetIamPolicyRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
com.google.iam.v1.Policy

setIamPolicy(String resource, Policy policy)

public final Policy setIamPolicy(String resource, Policy policy)

Sets the access control policy on the specified resource. Replaces any existing policy.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   String resource =
       DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]").toString();
   Policy policy = Policy.newBuilder().build();
   Policy response = deviceManagerClient.setIamPolicy(resource, policy);
 }
 
Parameters
NameDescription
resourceString

REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.

policycom.google.iam.v1.Policy

REQUIRED: The complete policy to be applied to the resource. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them.

Returns
TypeDescription
com.google.iam.v1.Policy

setIamPolicyCallable()

public final UnaryCallable<SetIamPolicyRequest,Policy> setIamPolicyCallable()

Sets the access control policy on the specified resource. Replaces any existing policy.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   SetIamPolicyRequest request =
       SetIamPolicyRequest.newBuilder()
           .setResource(
               DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]").toString())
           .setPolicy(Policy.newBuilder().build())
           .build();
   ApiFuture<Policy> future = deviceManagerClient.setIamPolicyCallable().futureCall(request);
   // Do something.
   Policy response = future.get();
 }
 
Returns
TypeDescription
UnaryCallable<com.google.iam.v1.SetIamPolicyRequest,com.google.iam.v1.Policy>

shutdown()

public void shutdown()

shutdownNow()

public void shutdownNow()

testIamPermissions(ResourceName resource, List<String> permissions)

public final TestIamPermissionsResponse testIamPermissions(ResourceName resource, List<String> permissions)

Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   ResourceName resource = DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]");
   List<String> permissions = new ArrayList<>();
   TestIamPermissionsResponse response =
       deviceManagerClient.testIamPermissions(resource, permissions);
 }
 
Parameters
NameDescription
resourcecom.google.api.resourcenames.ResourceName

REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.

permissionsList<String>

The set of permissions to check for the resource. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see IAM Overview.

Returns
TypeDescription
com.google.iam.v1.TestIamPermissionsResponse

testIamPermissions(TestIamPermissionsRequest request)

public final TestIamPermissionsResponse testIamPermissions(TestIamPermissionsRequest request)

Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   TestIamPermissionsRequest request =
       TestIamPermissionsRequest.newBuilder()
           .setResource(
               DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]").toString())
           .addAllPermissions(new ArrayList<String>())
           .build();
   TestIamPermissionsResponse response = deviceManagerClient.testIamPermissions(request);
 }
 
Parameter
NameDescription
requestcom.google.iam.v1.TestIamPermissionsRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
com.google.iam.v1.TestIamPermissionsResponse

testIamPermissions(String resource, List<String> permissions)

public final TestIamPermissionsResponse testIamPermissions(String resource, List<String> permissions)

Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   String resource =
       DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]").toString();
   List<String> permissions = new ArrayList<>();
   TestIamPermissionsResponse response =
       deviceManagerClient.testIamPermissions(resource, permissions);
 }
 
Parameters
NameDescription
resourceString

REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.

permissionsList<String>

The set of permissions to check for the resource. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see IAM Overview.

Returns
TypeDescription
com.google.iam.v1.TestIamPermissionsResponse

testIamPermissionsCallable()

public final UnaryCallable<TestIamPermissionsRequest,TestIamPermissionsResponse> testIamPermissionsCallable()

Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   TestIamPermissionsRequest request =
       TestIamPermissionsRequest.newBuilder()
           .setResource(
               DeviceName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]").toString())
           .addAllPermissions(new ArrayList<String>())
           .build();
   ApiFuture
Returns
TypeDescription
UnaryCallable<com.google.iam.v1.TestIamPermissionsRequest,com.google.iam.v1.TestIamPermissionsResponse>

unbindDeviceFromGateway(RegistryName parent, String gatewayId, String deviceId)

public final UnbindDeviceFromGatewayResponse unbindDeviceFromGateway(RegistryName parent, String gatewayId, String deviceId)

Deletes the association between the device and the gateway.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   RegistryName parent = RegistryName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]");
   String gatewayId = "gatewayId-1354641793";
   String deviceId = "deviceId1109191185";
   UnbindDeviceFromGatewayResponse response =
       deviceManagerClient.unbindDeviceFromGateway(parent, gatewayId, deviceId);
 }
 
Parameters
NameDescription
parentRegistryName

Required. The name of the registry. For example, projects/example-project/locations/us-central1/registries/my-registry.

gatewayIdString

Required. The value of gateway_id can be either the device numeric ID or the user-defined device identifier.

deviceIdString

Required. The device to disassociate from the specified gateway. The value of device_id can be either the device numeric ID or the user-defined device identifier.

Returns
TypeDescription
UnbindDeviceFromGatewayResponse

unbindDeviceFromGateway(UnbindDeviceFromGatewayRequest request)

public final UnbindDeviceFromGatewayResponse unbindDeviceFromGateway(UnbindDeviceFromGatewayRequest request)

Deletes the association between the device and the gateway.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   UnbindDeviceFromGatewayRequest request =
       UnbindDeviceFromGatewayRequest.newBuilder()
           .setParent(RegistryName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]").toString())
           .setGatewayId("gatewayId-1354641793")
           .setDeviceId("deviceId1109191185")
           .build();
   UnbindDeviceFromGatewayResponse response =
       deviceManagerClient.unbindDeviceFromGateway(request);
 }
 
Parameter
NameDescription
requestUnbindDeviceFromGatewayRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
UnbindDeviceFromGatewayResponse

unbindDeviceFromGateway(String parent, String gatewayId, String deviceId)

public final UnbindDeviceFromGatewayResponse unbindDeviceFromGateway(String parent, String gatewayId, String deviceId)

Deletes the association between the device and the gateway.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   String parent = RegistryName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]").toString();
   String gatewayId = "gatewayId-1354641793";
   String deviceId = "deviceId1109191185";
   UnbindDeviceFromGatewayResponse response =
       deviceManagerClient.unbindDeviceFromGateway(parent, gatewayId, deviceId);
 }
 
Parameters
NameDescription
parentString

Required. The name of the registry. For example, projects/example-project/locations/us-central1/registries/my-registry.

gatewayIdString

Required. The value of gateway_id can be either the device numeric ID or the user-defined device identifier.

deviceIdString

Required. The device to disassociate from the specified gateway. The value of device_id can be either the device numeric ID or the user-defined device identifier.

Returns
TypeDescription
UnbindDeviceFromGatewayResponse

unbindDeviceFromGatewayCallable()

public final UnaryCallable<UnbindDeviceFromGatewayRequest,UnbindDeviceFromGatewayResponse> unbindDeviceFromGatewayCallable()

Deletes the association between the device and the gateway.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   UnbindDeviceFromGatewayRequest request =
       UnbindDeviceFromGatewayRequest.newBuilder()
           .setParent(RegistryName.of("[PROJECT]", "[LOCATION]", "[REGISTRY]").toString())
           .setGatewayId("gatewayId-1354641793")
           .setDeviceId("deviceId1109191185")
           .build();
   ApiFuture
Returns
TypeDescription
UnaryCallable<UnbindDeviceFromGatewayRequest,UnbindDeviceFromGatewayResponse>

updateDevice(Device device, FieldMask updateMask)

public final Device updateDevice(Device device, FieldMask updateMask)

Updates a device.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   Device device = Device.newBuilder().build();
   FieldMask updateMask = FieldMask.newBuilder().build();
   Device response = deviceManagerClient.updateDevice(device, updateMask);
 }
 
Parameters
NameDescription
deviceDevice

Required. The new values for the device. The id and num_id fields must be empty, and the field name must specify the name path. For example, projects/p0/locations/us-central1/registries/registry0/devices/device0or projects/p0/locations/us-central1/registries/registry0/devices/{num_id}.

updateMaskFieldMask

Required. Only updates the device fields indicated by this mask. The field mask must not be empty, and it must not contain fields that are immutable or only set by the server. Mutable top-level fields: credentials, blocked, and metadata

Returns
TypeDescription
Device

updateDevice(UpdateDeviceRequest request)

public final Device updateDevice(UpdateDeviceRequest request)

Updates a device.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   UpdateDeviceRequest request =
       UpdateDeviceRequest.newBuilder()
           .setDevice(Device.newBuilder().build())
           .setUpdateMask(FieldMask.newBuilder().build())
           .build();
   Device response = deviceManagerClient.updateDevice(request);
 }
 
Parameter
NameDescription
requestUpdateDeviceRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
Device

updateDeviceCallable()

public final UnaryCallable<UpdateDeviceRequest,Device> updateDeviceCallable()

Updates a device.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   UpdateDeviceRequest request =
       UpdateDeviceRequest.newBuilder()
           .setDevice(Device.newBuilder().build())
           .setUpdateMask(FieldMask.newBuilder().build())
           .build();
   ApiFuture<Device> future = deviceManagerClient.updateDeviceCallable().futureCall(request);
   // Do something.
   Device response = future.get();
 }
 
Returns
TypeDescription
UnaryCallable<UpdateDeviceRequest,Device>

updateDeviceRegistry(DeviceRegistry deviceRegistry, FieldMask updateMask)

public final DeviceRegistry updateDeviceRegistry(DeviceRegistry deviceRegistry, FieldMask updateMask)

Updates a device registry configuration.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   DeviceRegistry deviceRegistry = DeviceRegistry.newBuilder().build();
   FieldMask updateMask = FieldMask.newBuilder().build();
   DeviceRegistry response =
       deviceManagerClient.updateDeviceRegistry(deviceRegistry, updateMask);
 }
 
Parameters
NameDescription
deviceRegistryDeviceRegistry

Required. The new values for the device registry. The id field must be empty, and the name field must indicate the path of the resource. For example, projects/example-project/locations/us-central1/registries/my-registry.

updateMaskFieldMask

Required. Only updates the device_registry fields indicated by this mask. The field mask must not be empty, and it must not contain fields that are immutable or only set by the server. Mutable top-level fields: event_notification_config, http_config, mqtt_config, and state_notification_config.

Returns
TypeDescription
DeviceRegistry

updateDeviceRegistry(UpdateDeviceRegistryRequest request)

public final DeviceRegistry updateDeviceRegistry(UpdateDeviceRegistryRequest request)

Updates a device registry configuration.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   UpdateDeviceRegistryRequest request =
       UpdateDeviceRegistryRequest.newBuilder()
           .setDeviceRegistry(DeviceRegistry.newBuilder().build())
           .setUpdateMask(FieldMask.newBuilder().build())
           .build();
   DeviceRegistry response = deviceManagerClient.updateDeviceRegistry(request);
 }
 
Parameter
NameDescription
requestUpdateDeviceRegistryRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
DeviceRegistry

updateDeviceRegistryCallable()

public final UnaryCallable<UpdateDeviceRegistryRequest,DeviceRegistry> updateDeviceRegistryCallable()

Updates a device registry configuration.

Sample code:


 try (DeviceManagerClient deviceManagerClient = DeviceManagerClient.create()) {
   UpdateDeviceRegistryRequest request =
       UpdateDeviceRegistryRequest.newBuilder()
           .setDeviceRegistry(DeviceRegistry.newBuilder().build())
           .setUpdateMask(FieldMask.newBuilder().build())
           .build();
   ApiFuture
Returns
TypeDescription
UnaryCallable<UpdateDeviceRegistryRequest,DeviceRegistry>