Unbind a device from a gateway

Unbind a device from a gateway.

Documentation pages that include this code sample

To view the code sample used in context, see the following documentation:

Code sample

C#

public static object UnbindDeviceFromGateway(string projectId, string cloudRegion,
    string registryName, string deviceId, string gatewayId)
{
    var cloudIot = CreateAuthorizedClient();
    var registryPath = $"projects/{projectId}" +
        $"/locations/{cloudRegion}" +
        $"/registries/{registryName}";
    UnbindDeviceFromGatewayRequest req = new UnbindDeviceFromGatewayRequest
    {
        DeviceId = deviceId,
        GatewayId = gatewayId
    };

    var res = cloudIot
        .Projects
        .Locations
        .Registries
        .UnbindDeviceFromGateway(req, registryPath)
        .Execute();
    Console.WriteLine("Device unbound: {0}", deviceId);

    return 0;
}

Java

GoogleCredentials credential =
    GoogleCredentials.getApplicationDefault().createScoped(CloudIotScopes.all());
JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
HttpRequestInitializer init = new HttpCredentialsAdapter(credential);
final CloudIot service =
    new CloudIot.Builder(GoogleNetHttpTransport.newTrustedTransport(), jsonFactory, init)
        .setApplicationName(APP_NAME)
        .build();

final String registryPath =
    String.format(
        "projects/%s/locations/%s/registries/%s", projectId, cloudRegion, registryName);

UnbindDeviceFromGatewayRequest request = new UnbindDeviceFromGatewayRequest();
request.setDeviceId(deviceId);
request.setGatewayId(gatewayId);

UnbindDeviceFromGatewayResponse response =
    service
        .projects()
        .locations()
        .registries()
        .unbindDeviceFromGateway(registryPath, request)
        .execute();

System.out.println(String.format("Device unbound: %s", response.toPrettyString()));

PHP

use Google\Cloud\Iot\V1\DeviceManagerClient;

/**
 * Unbinds a device from a gateway.
 *
 * @param string $projectId (optional) Google Cloud project ID
 * @param string $location (Optional) Google Cloud region
 * @param string $registryId IOT Device Registry ID
 * @param string $deviceId the device ID to unbind
 * @param string $gatewayId the ID for the gateway to unbind from
 */
function unbind_device_from_gateway(
    $projectId,
    $location = 'us-central1',
    $registryId,
    $gatewayId,
    $deviceId
) {
    print('Unbinding Device from Gateway' . PHP_EOL);

    // Instantiate a client.
    $deviceManager = new DeviceManagerClient();
    $registryName = $deviceManager->registryName($projectId, $location, $registryId);

    $result = $deviceManager->unbindDeviceFromGateway($registryName, $gatewayId, $deviceId);

    print('Device unbound');
}

Python

# project_id = 'YOUR_PROJECT_ID'
# cloud_region = 'us-central1'
# registry_id = 'your-registry-id'
# device_id = 'your-device-id'
# gateway_id = 'your-gateway-id'
client = iot_v1.DeviceManagerClient()

parent = client.registry_path(project_id, cloud_region, registry_id)

res = client.unbind_device_from_gateway(
    request={"parent": parent, "gateway_id": gateway_id, "device_id": device_id}
)

print("Device unbound: {}".format(res))

Ruby

# project_id  = "Your Google Cloud project ID"
# location_id = "The Cloud region the registry is located in"
# registry_id = "The registry to bind a device in"
# gateway_id  = "The Gateway to bind to"
# device_id   = "The identifier of the device to bind"

require "google/apis/cloudiot_v1"

# Initialize the client and authenticate with the specified scope
Cloudiot   = Google::Apis::CloudiotV1
iot_client = Cloudiot::CloudIotService.new
iot_client.authorization = Google::Auth.get_application_default(
  "https://www.googleapis.com/auth/cloud-platform"
)

# The resource name of the location associated with the project
parent = "projects/#{project_id}/locations/#{location_id}/registries/#{registry_id}"

unbind_req = Google::Apis::CloudiotV1::UnbindDeviceFromGatewayRequest.new
unbind_req.gateway_id = gateway_id
unbind_req.device_id = device_id

res = iot_client.unbind_registry_device_from_gateway parent, unbind_req
puts "Device unbound"

What's next

To search and filter code samples for other Google Cloud products, see the Google Cloud sample browser