Search in sources :

Example 1 with Device

use of com.google.api.services.cloudiot.v1.model.Device in project java-docs-samples by GoogleCloudPlatform.

the class DeviceRegistryExample method main.

// [END iot_set_iam_policy]
/**
 * Entry poit for CLI.
 */
public static void main(String[] args) throws Exception {
    DeviceRegistryExampleOptions options = DeviceRegistryExampleOptions.fromFlags(args);
    if (options == null) {
        // Could not parse.
        return;
    }
    switch(options.command) {
        case "create-iot-topic":
            System.out.println("Create IoT Topic:");
            createIotTopic(options.projectId, options.pubsubTopic);
            break;
        case "create-es":
            System.out.println("Create ES Device:");
            createDeviceWithEs256(options.deviceId, options.ecPublicKeyFile, options.projectId, options.cloudRegion, options.registryName);
            break;
        case "create-rsa":
            System.out.println("Create RSA Device:");
            createDeviceWithRs256(options.deviceId, options.rsaCertificateFile, options.projectId, options.cloudRegion, options.registryName);
            break;
        case "create-unauth":
            System.out.println("Create Unauth Device");
            createDeviceWithNoAuth(options.deviceId, options.projectId, options.cloudRegion, options.registryName);
            break;
        case "create-registry":
            System.out.println("Create registry");
            createRegistry(options.cloudRegion, options.projectId, options.registryName, options.pubsubTopic);
            break;
        case "delete-device":
            System.out.println("Delete device");
            deleteDevice(options.deviceId, options.projectId, options.cloudRegion, options.registryName);
            break;
        case "delete-registry":
            System.out.println("Delete registry");
            deleteRegistry(options.cloudRegion, options.projectId, options.registryName);
            break;
        case "get-device":
            System.out.println("Get device");
            System.out.println(getDevice(options.deviceId, options.projectId, options.cloudRegion, options.registryName).toPrettyString());
            break;
        case "get-iam-permissions":
            System.out.println("Get iam permissions");
            getIamPermissions(options.projectId, options.cloudRegion, options.registryName);
            break;
        case "get-device-state":
            System.out.println("Get device state");
            List<DeviceState> states = getDeviceStates(options.deviceId, options.projectId, options.cloudRegion, options.registryName);
            for (DeviceState state : states) {
                System.out.println(state.toPrettyString());
            }
            break;
        case "get-registry":
            System.out.println("Get registry");
            System.out.println(getRegistry(options.projectId, options.cloudRegion, options.registryName));
            break;
        case "list-devices":
            System.out.println("List devices");
            listDevices(options.projectId, options.cloudRegion, options.registryName);
            break;
        case "list-registries":
            System.out.println("List registries");
            listRegistries(options.projectId, options.cloudRegion);
            break;
        case "patch-device-es":
            System.out.println("Patch device with ES");
            patchEs256ForAuth(options.deviceId, options.ecPublicKeyFile, options.projectId, options.cloudRegion, options.registryName);
            break;
        case "patch-device-rsa":
            System.out.println("Patch device with RSA");
            patchRsa256ForAuth(options.deviceId, options.rsaCertificateFile, options.projectId, options.cloudRegion, options.registryName);
            break;
        case "set-config":
            if (options.deviceId == null) {
                System.out.println("Specify device_id for the device you are updating.");
            } else {
                System.out.println("Setting device configuration");
                setDeviceConfiguration(options.deviceId, options.projectId, options.cloudRegion, options.registryName, options.configuration, options.version);
            }
            break;
        case "set-iam-permissions":
            if (options.member == null || options.role == null) {
                System.out.println("Specify member and role for the policy you are updating.");
            } else {
                System.out.println("Setting iam permissions");
                setIamPermissions(options.projectId, options.cloudRegion, options.registryName, options.member, options.role);
            }
            break;
        default:
            String header = "Cloud IoT Core Commandline Example (Device / Registry management): \n\n";
            String footer = "\nhttps://cloud.google.com/iot-core";
            HelpFormatter formatter = new HelpFormatter();
            formatter.printHelp("DeviceRegistryExample", header, options.options, footer, true);
            break;
    }
}
Also used : HelpFormatter(org.apache.commons.cli.HelpFormatter) DeviceState(com.google.api.services.cloudiot.v1.model.DeviceState)

Example 2 with Device

use of com.google.api.services.cloudiot.v1.model.Device in project java-docs-samples by GoogleCloudPlatform.

the class DeviceRegistryExample method patchEs256ForAuth.

// [END iot_list_registries]
// [START iot_patch_es]
/**
 * Patch the device to add an ES256 key for authentication.
 */
public static void patchEs256ForAuth(String deviceId, String publicKeyFilePath, String projectId, String cloudRegion, String registryName) throws GeneralSecurityException, IOException {
    GoogleCredential credential = GoogleCredential.getApplicationDefault().createScoped(CloudIotScopes.all());
    JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
    HttpRequestInitializer init = new RetryHttpInitializerWrapper(credential);
    final CloudIot service = new CloudIot.Builder(GoogleNetHttpTransport.newTrustedTransport(), jsonFactory, init).setApplicationName(APP_NAME).build();
    final String devicePath = String.format("projects/%s/locations/%s/registries/%s/devices/%s", projectId, cloudRegion, registryName, deviceId);
    PublicKeyCredential publicKeyCredential = new PublicKeyCredential();
    String key = Files.toString(new File(publicKeyFilePath), Charsets.UTF_8);
    publicKeyCredential.setKey(key);
    publicKeyCredential.setFormat("ES256_PEM");
    DeviceCredential devCredential = new DeviceCredential();
    devCredential.setPublicKey(publicKeyCredential);
    Device device = new Device();
    device.setCredentials(Arrays.asList(devCredential));
    Device patchedDevice = service.projects().locations().registries().devices().patch(devicePath, device).setUpdateMask("credentials").execute();
    System.out.println("Patched device is " + patchedDevice.toPrettyString());
}
Also used : CloudIot(com.google.api.services.cloudiot.v1.CloudIot) DeviceCredential(com.google.api.services.cloudiot.v1.model.DeviceCredential) Device(com.google.api.services.cloudiot.v1.model.Device) JsonFactory(com.google.api.client.json.JsonFactory) GoogleCredential(com.google.api.client.googleapis.auth.oauth2.GoogleCredential) PublicKeyCredential(com.google.api.services.cloudiot.v1.model.PublicKeyCredential) HttpRequestInitializer(com.google.api.client.http.HttpRequestInitializer) File(java.io.File)

Example 3 with Device

use of com.google.api.services.cloudiot.v1.model.Device in project java-docs-samples by GoogleCloudPlatform.

the class DeviceRegistryExample method setDeviceConfiguration.

// [END iot_patch_rsa]
// [START iot_set_device_config]
/**
 * Set a device configuration to the specified data (string, JSON) and version (0 for latest).
 */
public static void setDeviceConfiguration(String deviceId, String projectId, String cloudRegion, String registryName, String data, long version) throws GeneralSecurityException, IOException {
    GoogleCredential credential = GoogleCredential.getApplicationDefault().createScoped(CloudIotScopes.all());
    JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
    HttpRequestInitializer init = new RetryHttpInitializerWrapper(credential);
    final CloudIot service = new CloudIot.Builder(GoogleNetHttpTransport.newTrustedTransport(), jsonFactory, init).setApplicationName(APP_NAME).build();
    final String devicePath = String.format("projects/%s/locations/%s/registries/%s/devices/%s", projectId, cloudRegion, registryName, deviceId);
    ModifyCloudToDeviceConfigRequest req = new ModifyCloudToDeviceConfigRequest();
    req.setVersionToUpdate(version);
    // Data sent through the wire has to be base64 encoded.
    Base64.Encoder encoder = Base64.getEncoder();
    String encPayload = encoder.encodeToString(data.getBytes("UTF-8"));
    req.setBinaryData(encPayload);
    DeviceConfig config = service.projects().locations().registries().devices().modifyCloudToDeviceConfig(devicePath, req).execute();
    System.out.println("Updated: " + config.getVersion());
}
Also used : CloudIot(com.google.api.services.cloudiot.v1.CloudIot) Base64(java.util.Base64) JsonFactory(com.google.api.client.json.JsonFactory) GoogleCredential(com.google.api.client.googleapis.auth.oauth2.GoogleCredential) HttpRequestInitializer(com.google.api.client.http.HttpRequestInitializer) DeviceConfig(com.google.api.services.cloudiot.v1.model.DeviceConfig) ModifyCloudToDeviceConfigRequest(com.google.api.services.cloudiot.v1.model.ModifyCloudToDeviceConfigRequest)

Example 4 with Device

use of com.google.api.services.cloudiot.v1.model.Device in project java-docs-samples by GoogleCloudPlatform.

the class DeviceRegistryExample method createDeviceWithEs256.

// [END iot_list_devices]
// [START iot_create_es_device]
/**
 * Create a device that is authenticated using ES256.
 */
public static void createDeviceWithEs256(String deviceId, String publicKeyFilePath, String projectId, String cloudRegion, String registryName) throws GeneralSecurityException, IOException {
    GoogleCredential credential = GoogleCredential.getApplicationDefault().createScoped(CloudIotScopes.all());
    JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
    HttpRequestInitializer init = new RetryHttpInitializerWrapper(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);
    PublicKeyCredential publicKeyCredential = new PublicKeyCredential();
    final String key = Files.toString(new File(publicKeyFilePath), Charsets.UTF_8);
    publicKeyCredential.setKey(key);
    publicKeyCredential.setFormat("ES256_PEM");
    DeviceCredential devCredential = new DeviceCredential();
    devCredential.setPublicKey(publicKeyCredential);
    System.out.println("Creating device with id: " + deviceId);
    Device device = new Device();
    device.setId(deviceId);
    device.setCredentials(Arrays.asList(devCredential));
    Device createdDevice = service.projects().locations().registries().devices().create(registryPath, device).execute();
    System.out.println("Created device: " + createdDevice.toPrettyString());
}
Also used : CloudIot(com.google.api.services.cloudiot.v1.CloudIot) DeviceCredential(com.google.api.services.cloudiot.v1.model.DeviceCredential) Device(com.google.api.services.cloudiot.v1.model.Device) JsonFactory(com.google.api.client.json.JsonFactory) GoogleCredential(com.google.api.client.googleapis.auth.oauth2.GoogleCredential) PublicKeyCredential(com.google.api.services.cloudiot.v1.model.PublicKeyCredential) HttpRequestInitializer(com.google.api.client.http.HttpRequestInitializer) File(java.io.File)

Example 5 with Device

use of com.google.api.services.cloudiot.v1.model.Device in project java-docs-samples by GoogleCloudPlatform.

the class DeviceRegistryExample method createDeviceWithRs256.

// [END iot_create_es_device]
// [START iot_create_rsa_device]
/**
 * Create a device that is authenticated using RS256.
 */
public static void createDeviceWithRs256(String deviceId, String certificateFilePath, String projectId, String cloudRegion, String registryName) throws GeneralSecurityException, IOException {
    GoogleCredential credential = GoogleCredential.getApplicationDefault().createScoped(CloudIotScopes.all());
    JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
    HttpRequestInitializer init = new RetryHttpInitializerWrapper(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);
    PublicKeyCredential publicKeyCredential = new PublicKeyCredential();
    String key = Files.toString(new File(certificateFilePath), Charsets.UTF_8);
    publicKeyCredential.setKey(key);
    publicKeyCredential.setFormat("RSA_X509_PEM");
    DeviceCredential devCredential = new DeviceCredential();
    devCredential.setPublicKey(publicKeyCredential);
    System.out.println("Creating device with id: " + deviceId);
    Device device = new Device();
    device.setId(deviceId);
    device.setCredentials(Arrays.asList(devCredential));
    Device createdDevice = service.projects().locations().registries().devices().create(registryPath, device).execute();
    System.out.println("Created device: " + createdDevice.toPrettyString());
}
Also used : CloudIot(com.google.api.services.cloudiot.v1.CloudIot) DeviceCredential(com.google.api.services.cloudiot.v1.model.DeviceCredential) Device(com.google.api.services.cloudiot.v1.model.Device) JsonFactory(com.google.api.client.json.JsonFactory) GoogleCredential(com.google.api.client.googleapis.auth.oauth2.GoogleCredential) PublicKeyCredential(com.google.api.services.cloudiot.v1.model.PublicKeyCredential) HttpRequestInitializer(com.google.api.client.http.HttpRequestInitializer) File(java.io.File)

Aggregations

GoogleCredential (com.google.api.client.googleapis.auth.oauth2.GoogleCredential)11 HttpRequestInitializer (com.google.api.client.http.HttpRequestInitializer)11 JsonFactory (com.google.api.client.json.JsonFactory)11 CloudIot (com.google.api.services.cloudiot.v1.CloudIot)11 Device (com.google.api.services.cloudiot.v1.model.Device)6 DeviceCredential (com.google.api.services.cloudiot.v1.model.DeviceCredential)5 PublicKeyCredential (com.google.api.services.cloudiot.v1.model.PublicKeyCredential)4 File (java.io.File)4 DeviceConfig (com.google.api.services.cloudiot.v1.model.DeviceConfig)2 DeviceState (com.google.api.services.cloudiot.v1.model.DeviceState)1 ListDeviceStatesResponse (com.google.api.services.cloudiot.v1.model.ListDeviceStatesResponse)1 ModifyCloudToDeviceConfigRequest (com.google.api.services.cloudiot.v1.model.ModifyCloudToDeviceConfigRequest)1 Base64 (java.util.Base64)1 HelpFormatter (org.apache.commons.cli.HelpFormatter)1