Creating devices

This page explains how to create devices.

Before you begin

Perform the following tasks before proceeding with the information on this page:

Creating a device

The following examples shows you how to create a device.

REST

To create a device, call devices.create() with the name of the customer (organization) and a Device object.

Python HTTP

The following example shows a helper function to create a device using the Python HTTP library:

"""Example script to use the create method of the Devices API.""" import json import pprint from six.moves import urllib import google.auth.transport.requests from google.oauth2 import service_account SCOPES = ['https://www.googleapis.com/auth/cloud-identity.devices'] BASE_URL = 'https://cloudidentity.googleapis.com/v1/' # Change this to the location of the service account key SA_FILE = '' # Enter the administrator to call as here. ADMIN_EMAIL = '' if not SA_FILE: print('Please specify the location of the service account key file') if not ADMIN_EMAIL: print('Please specify the email of the administrator to call as') if not SA_FILE or not ADMIN_EMAIL: exit(-1) def create_delegated_credentials(user_email): credentials = service_account.Credentials.from_service_account_file( SA_FILE, scopes=['https://www.googleapis.com/auth/cloud-identity.devices']) delegated_credentials = credentials.with_subject(user_email) return delegated_credentials ###################################################################### # AUTHENTICATE the service account and retrieve an oauth2 access token request = google.auth.transport.requests.Request() dc = create_delegated_credentials(ADMIN_EMAIL) dc.refresh(request) print('Access token: ' + dc.token + '\n') ############################### # Create the Device header = { 'authorization': 'Bearer ' + dc.token, 'Content-Type': 'application/json' } body = { 'serialNumber': 'someSerial', # the serial number of your device. # see values in # https://cloud.google.com/identity/docs/reference/rest/v1/devices#DeviceType 'deviceType': 'LINUX' } serialized_body = json.dumps(body, separators=(',', ':')) request_url = BASE_URL + 'devices' print('Request URL: ' + request_url) print('Request body: ' + serialized_body) serialized_body = json.dumps(body, separators=(',', ':')) request = urllib.request.Request(request_url, serialized_body, headers=header) request.get_method = lambda: 'POST' try: contents = urllib.request.urlopen(request) except urllib.error.HTTPError as e: if e.code == 409: print('The request was invalid. Perhaps the device is already present?') else: print('Unknown error occurred: {}', e.code) exit(-1) create_response = json.loads(contents.read()) inner_response = create_response['response'] pp = pprint.PrettyPrinter(indent=4) pp.pprint(inner_response)