Google Cloud IoT Core is being retired on August 16, 2023. Contact your Google Cloud account team for more information.

Delete a gateway

Delete the gateway with the given ID.

Code sample


use Google\Cloud\Iot\V1\DeviceManagerClient;

 * Delete the gateway with the given id.
 * @param string $registryId IOT Device Registry ID
 * @param string $gatewayId ID for the gateway to delete
 * @param string $projectId Google Cloud project ID
 * @param string $location (Optional) Google Cloud region
function delete_gateway(
    $location = 'us-central1'
) {
    print('Deleting Gateway' . PHP_EOL);

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

    // TODO: unbind all bound devices when list_devices_for_gateway
    // is working
    $response = $deviceManager->deleteDevice($gatewayName);

    printf('Deleted %s' . PHP_EOL, $gatewayName);


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

require "google/apis/cloudiot_v1"

# Initialize the client and authenticate with the specified scope
Cloudiot   = Google::Apis::CloudiotV1
iot_client =
iot_client.authorization = Google::Auth.get_application_default(

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

# TODO: unbind all devices?
# Delete the gateway
result = iot_client.delete_project_location_registry_device(

puts "Deleted gateway."

What's next

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