UNPKG

@itentialopensource/adapter-godaddy

Version:

This adapter integrates with system described as: GoDaddy REST API v1 and v2.

1,581 lines 53.1 kB
{ "$id": "adapter-godaddy", "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "host": { "type": "string", "description": "hostname of the server", "default": "", "examples": [ "systemx.customer.com" ] }, "port": { "type": "integer", "description": "port on which to connect to the server", "default": 443, "minimum": 1, "maximum": 65535 }, "choosepath": { "type": "string", "description": "choose the path to use -- requires entityPath choices", "default": "" }, "base_path": { "type": "string", "description": "a base path that is consistent across api calls", "default": "", "examples": [ "/system/api" ] }, "version": { "type": "string", "description": "api version this adapter integrates with", "default": "", "examples": [ "v1", "v2.6", "4.5.1" ] }, "cache_location": { "type": "string", "description": "Where cache of information should be located redis or local memory", "default": "none", "enum": [ "redis", "local", "none" ] }, "encode_pathvars": { "type": "boolean", "description": "When true the path variables are encoded in the url", "default": true }, "encode_queryvars": { "type": "boolean", "description": "When true the query parameters are encoded in the url", "default": true }, "save_metric": { "type": [ "boolean", "string" ], "description": "When true the metrics collected by the adapter will be stored in mongo or on the filesystem", "default": false }, "stub": { "type": "boolean", "description": "When true will not connect to the remote server, but will use a static object for all responses", "default": false }, "protocol": { "type": "string", "description": "the protocol to use to connect to server", "default": "http", "enum": [ "http", "https" ] }, "service": { "type": "string", "description": "Service we are integrating with -- used with AWS Authentication", "examples": [ "ec2", "route53" ] }, "authentication": { "$ref": "#/definitions/authentication" }, "healthcheck": { "$ref": "#/definitions/healthcheck" }, "throttle": { "$ref": "#/definitions/throttle" }, "request": { "$ref": "#/definitions/request" }, "proxy": { "$ref": "#/definitions/proxy" }, "ssl": { "$ref": "#/definitions/ssl" }, "mongo": { "$ref": "#/definitions/mongo" }, "devicebroker": { "$ref": "#/definitions/devicebroker" }, "cache": { "$ref": "#/definitions/cache" } }, "required": [ "host", "port", "authentication", "healthcheck" ], "definitions": { "authentication": { "type": "object", "properties": { "auth_method": { "type": "string", "description": "The authentication method for requests", "default": "basic user_password", "enum": [ "basic user_password", "static_token", "jwt_token", "request_token", "no_authentication", "multi_step_authentication", "aws_authentication" ] }, "username": { "type": "string", "description": "The username used for requests", "default": "", "examples": [ "username" ] }, "password": { "type": "string", "description": "The password used for requests. If it was retrieved through the encrypt password call, use the exact return including the {code} or {crypt}", "default": "", "examples": [ "password", "{code}password", "{crypt}password" ] }, "token": { "type": "string", "description": "The token used for requests", "default": "", "examples": [ "sdadafdsf_dummytoken_adfkdhfkajd" ] }, "token_user_field": { "type": "string", "description": "The field to send the user credential when getting a token", "default": "username", "examples": [ "username" ] }, "token_password_field": { "type": "string", "description": "The field to send the password credential when getting a token", "default": "password", "examples": [ "password" ] }, "token_result_field": { "type": "string", "description": "The field to pull the result from when getting a token", "default": "token", "examples": [ "token" ] }, "token_URI_path": { "type": "string", "description": "The path used to retrieve a token", "default": "", "examples": [ "/api/version/authenticate" ] }, "invalid_token_error": { "type": "integer", "description": "http error status number which defines an invalid token", "default": 401, "minimum": 0, "maximum": 1000 }, "token_timeout": { "type": "integer", "description": "How long a token is valid (in milliseconds), -1 (always get token), 0 use expiration returned with token", "default": -1, "minimum": -1, "maximum": 3600000 }, "token_cache": { "type": "string", "description": "Whether tokens should be stored in redis or local memory", "default": "local", "enum": [ "redis", "local" ] }, "auth_field": { "type": [ "string", "array" ], "description": "The field in which to pass the token", "default": "header.headers.X-AUTH-TOKEN", "examples": [ "header.headers.X-AUTH-TOKEN", "header.headers.Authorization", "header.auth", "body.token", "url" ] }, "auth_field_format": { "type": [ "string", "array" ], "description": "The format used to pass the authentication -- variables {token}, {username}, {password} will be replaced with the proper values. {b64}...{/b64} will base64 encode everything between the start and end tag.", "default": "{token}", "examples": [ "{token}", "Token {token}", "{username}:{password}", "Basic {b64}{username}:{password}{/b64}", "token={token}" ] }, "auth_logging": { "type": "boolean", "description": "This property turns on logging of Authentication Information and should only be true when debugging authentication and connectivity", "default": false }, "client_id": { "type": "string", "description": "The client id for OAuth requests - can also use username depending on schema", "default": "" }, "client_secret": { "type": "string", "description": "The client secret for OAuth requests - can also use password depending on schema", "default": "" }, "grant_type": { "type": "string", "description": "The grant type for OAuth requests - can also provide in schema", "default": "" }, "sensitive": { "type": "array", "description": "List of sensitive keys to search and hide values from being logged", "default": [], "items": { "type": "string" } }, "sso": { "type": "object", "properties": { "protocol": { "type": "string", "description": "the protocol to request token from system", "default": "", "enum": [ "http", "https", "" ] }, "host": { "type": "string", "description": "hostname of the authentication system", "default": "", "examples": [ "systemx.customer.com" ] }, "port": { "type": "integer", "description": "port on which to connect to the authentication system", "default": 0, "minimum": 0, "maximum": 65535 } } }, "multiStepAuthCalls": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Id of the step call", "examples": [ "getAccessToken" ] }, "requestFields": { "type": "object", "description": "The fields set in step request" }, "responseFields": { "type": "object", "description": "The fields from the step result" }, "successfullResponseCode": { "type": "integer", "description": "Expected response code for given step, if not set any successfull http response is accepted", "examples": [ 200 ] } } } } }, "required": [ "auth_method" ], "allOf": [ { "if": { "properties": { "auth_method": { "enum": [ "basic user_password" ] } } }, "then": { "required": [ "username", "password", "auth_field", "auth_field_format" ] } }, { "if": { "properties": { "auth_method": { "enum": [ "request_token" ] } } }, "then": { "required": [ "username", "password", "auth_field", "auth_field_format" ] } }, { "if": { "properties": { "auth_method": { "enum": [ "static_token" ] } } }, "then": { "required": [ "token", "auth_field", "auth_field_format" ] } } ] }, "healthcheck": { "type": "object", "properties": { "type": { "type": "string", "description": "The type of healthcheck to run", "default": "intermittent", "enum": [ "none", "startup", "intermittent" ] }, "frequency": { "type": "integer", "description": "How often the healthcheck should run (in milliseconds).", "default": 300000, "minimum": 60000, "maximum": 3600000 }, "protocol": { "type": "string", "description": "The protocol used to check the health of the system", "default": "REST", "enum": [ "REST" ] }, "URI_Path": { "type": "string", "description": "The path used to check the health of the system", "default": "", "examples": [ "/api/version/ping" ] }, "query_object": { "type": "object", "description": "Query object { device: xxxxx } to be placed into the healthcheck, will be converted to query string by the adapter", "default": {} }, "addlHeaders": { "type": "object", "description": "headers that will be appended to the headers for the call", "default": {} } }, "required": [ "type" ], "allOf": [ { "if": { "properties": { "type": { "enum": [ "intermittent" ] } } }, "then": { "required": [ "frequency" ] } } ] }, "throttle": { "type": "object", "properties": { "throttle_enabled": { "type": "boolean", "description": "Whether to use throttling", "default": false }, "number_pronghorns": { "type": "integer", "description": "whether the throttling is being done in a single Pronghorn instance or whether requests are being throttled across multiple pronghorns", "default": 1, "minimum": 1, "maximum": 20 }, "sync_async": { "type": "string", "description": "should the queue handle request synchronously or asynchronously", "default": "sync", "examples": [ "async", "sync" ] }, "max_in_queue": { "type": "integer", "description": "the maximum number of requests that Pronghorn should allow into the queue before rejecting requests", "default": 1000, "minimum": 1, "maximum": 5000 }, "concurrent_max": { "type": "integer", "description": "defines the number of request that Pronghorn can send godaddy at one time", "default": 1, "minimum": 0, "maximum": 1000 }, "expire_timeout": { "type": "integer", "description": "After the request has completed, Pronghorn will wait the additional expire timeout time (in milliseconds) prior to sending in the next request.", "default": 0, "minimum": 0, "maximum": 60000 }, "avg_runtime": { "type": "integer", "description": "an approximate average of how long it takes godaddy to handle each request", "default": 200, "minimum": 50, "maximum": 60000 }, "priorities": { "type": "array", "description": "define your priorities here", "default": [], "items": { "type": "object", "properties": { "value": { "type": "number", "description": "Defines a priority - this number is what is passed in on a priority request" }, "percent": { "type": "number", "description": "this is the percent of the queue that comes before the priority request (0 is front of queue, 100 is last in queue)" } } } } }, "required": [ "throttle_enabled" ], "allOf": [ { "if": { "properties": { "throttle_enabled": { "enum": [ true ] } } }, "then": { "required": [ "number_pronghorns", "sync_async", "max_in_queue", "concurrent_max", "expire_timeout", "avg_runtime" ] } } ] }, "request": { "type": "object", "properties": { "number_redirects": { "type": "integer", "description": "how many redirects before it gives up on the request", "default": 0, "minimum": 0, "maximum": 20 }, "number_retries": { "type": "integer", "description": "how many attempt to make before it gives up on the request", "default": 3, "minimum": 0, "maximum": 20 }, "limit_retry_error": { "type": [ "integer", "array" ], "description": "http error status number which defines that no capacity was available and thus after waiting a short interval the adapter can retry the request. Supports an array of numbers or strings including a range provided as '###-###'", "default": 0 }, "failover_codes": { "type": "array", "description": "An array of codes where it is ok to try another method", "default": [], "items": { "type": "integer" } }, "attempt_timeout": { "type": "integer", "description": "how long Pronghorn should wait before aborting the attempt", "default": 5000, "minimum": 1000, "maximum": 3600000 }, "global_request": { "type": "object", "description": "Global Request data that is overriden by the request object", "properties": { "payload": { "type": "object", "description": "payload fields that will be appended to the provided payload (excluding GET calls)", "default": {} }, "uriOptions": { "type": "object", "description": "options that will be appended to all GET calls", "default": {} }, "addlHeaders": { "type": "object", "description": "headers that will be appended to the headers for the call", "default": {} }, "authData": { "type": "object", "description": "authentication data that will be appended to the payload for authentication calls", "default": {} } } }, "healthcheck_on_timeout": { "type": "boolean", "description": "Should the system run a healthcheck on timeout", "default": false }, "return_raw": { "type": "boolean", "description": "Will include the raw response with the data that is returned", "default": false }, "archiving": { "type": "boolean", "description": "Archives each request/response and corresponding metrics", "default": false }, "return_request": { "type": "boolean", "description": "This property turns on returning the response information - need to be carefull in case credentials are in the path", "default": false } }, "required": [ "number_retries", "limit_retry_error", "attempt_timeout", "healthcheck_on_timeout" ] }, "proxy": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Whether or not there is a proxy for the Server", "default": false }, "host": { "type": "string", "description": "hostname of the proxy for the server", "default": "", "examples": [ "proxy.customer.com" ] }, "port": { "type": "integer", "description": "port on which to connect to the proxy for the server", "default": 443, "minimum": 1, "maximum": 65535 }, "protocol": { "type": "string", "description": "the protocol to use to connect to the proxy", "default": "http", "enum": [ "http", "https", "socks4", "socks5", "tls" ] }, "username": { "type": "string", "description": "username for proxy authentication", "default": "" }, "password": { "type": "string", "description": "password for proxy authentication", "default": "" } }, "required": [ "enabled" ], "allOf": [ { "if": { "properties": { "enabled": { "enum": [ true ] } } }, "then": { "required": [ "host", "port" ] } } ] }, "ssl": { "type": "object", "properties": { "ecdhCurve": { "type": "string", "description": "Do we need to set the autoCurve on this request", "default": "", "examples": [ "auto" ] }, "enabled": { "type": "boolean", "description": "Whether or not ssl is enabled on Server", "default": false }, "accept_invalid_cert": { "type": "boolean", "description": "Whether the adapter should accept invalid certificates", "default": false }, "ca_file": { "type": "string", "description": "The fully qualified path name to the CA file used for SSL", "default": "", "examples": [ "security/ca.pem" ] }, "key_file": { "type": "string", "description": "The fully qualified path name to the key file used for SSL", "default": "", "examples": [ "security/key.pem" ] }, "cert_file": { "type": "string", "description": "The fully qualified path name to the Cert file used for SSL", "default": "", "examples": [ "security/cert.pem" ] }, "secure_protocol": { "type": "string", "description": "What protocol to set on the ssl request", "default": "", "examples": [ "SSLv2_method", "SSLv3_method" ] }, "ciphers": { "type": "string", "description": "Hyphen separated list of acceptable ciphers", "default": "", "examples": [ "DHE-RSA-AES256-SHA" ] } }, "required": [ "enabled" ], "allOf": [ { "if": { "properties": { "enabled": { "enum": [ true ] } } }, "then": { "required": [ "accept_invalid_cert", "ciphers" ] } }, { "if": { "allOf": [ { "properties": { "enabled": { "enum": [ true ] } } }, { "properties": { "accept_invalid_cert": { "enum": [ false ] } } } ] }, "then": { "required": [ "ca_file" ] } } ] }, "mongo": { "type": "object", "properties": { "host": { "type": "string", "description": "host where mongo database can be found", "default": "", "examples": [ "localhost" ] }, "port": { "type": "integer", "description": "port on which to connect to the mongo database", "default": 443, "minimum": 0, "maximum": 65535 }, "database": { "type": "string", "description": "The name of the database to store adapter information in", "default": "", "examples": [ "adapter-xyz" ] }, "username": { "type": "string", "description": "The user to connect to the database with", "default": "", "examples": [ "username" ] }, "password": { "type": "string", "description": "The password to connect to the database with", "default": "", "examples": [ "password" ] }, "replSet": { "type": "string", "description": "The replica set for the database", "default": "", "examples": [ "my_repolica_set" ] }, "db_ssl": { "type": "object", "description": "SSL for mongo database connection", "properties": { "enabled": { "type": "boolean", "description": "Whether or not ssl is enabled on Database Server", "default": false }, "accept_invalid_cert": { "type": "boolean", "description": "Whether the adapter should accept invalid certificates", "default": false }, "ca_file": { "type": "string", "description": "The fully qualified path name to the CA file used for Database SSL", "default": "", "examples": [ "security/ca.pem" ] }, "key_file": { "type": "string", "description": "The fully qualified path name to the key file used for Database SSL", "default": "", "examples": [ "security/key.pem" ] }, "cert_file": { "type": "string", "description": "The fully qualified path name to the Cert file used for Database SSL", "default": "", "examples": [ "security/cert.pem" ] } } } } }, "devicebroker": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Whether or not the device broker calls have been mapped", "default": false }, "getDevice": { "type": "array", "description": "Broker call(s) to getDevice", "items": { "type": "object", "properties": { "path": { "type": "string", "description": "The fully qualified path of the call to getDevice (e.g. /rest/api/device/{deviceid})", "default": "" }, "method": { "type": "string", "description": "The method of the call to getDevice", "default": "GET" }, "query": { "type": "object", "description": "The json object with query parameters of the call to getDevice", "additionalProperties": { "type": [ "string", "number" ] } }, "body": { "type": "object", "description": "The json object with body of the call to getDevice", "additionalProperties": { "type": [ "string", "number" ] } }, "headers": { "type": "object", "description": "The json object with headers of the call to getDevice", "additionalProperties": { "type": [ "string", "number" ] } }, "handleFailure": { "type": "string", "enum": [ "ignore", "fail" ], "description": "return failure or ignore failure", "default": "ignore" }, "requestFields": { "type": "object", "description": "The json object with response fields of the call to getDevice", "additionalProperties": { "type": [ "string", "number" ] }, "properties": {} }, "responseDatakey": { "type": "string", "description": "place in the response where the data is - supports jsonquery", "default": "" }, "responseFields": { "type": "object", "description": "The json object with response fields of the call to getDevice", "additionalProperties": { "type": [ "string", "number" ] }, "properties": { "name": { "type": "string", "description": "The field in response to getDevice that contains the name of the device", "default": "name" }, "ostype": { "type": "string", "description": "The field in response to getDevice that contains the ostype of the device", "default": "ostype" }, "ostypePrefix": { "type": "string", "description": "Any prefix that should be added to the ostype of the device (e.g. aws-)", "default": "" }, "port": { "type": "string", "description": "The field in response to getDevice that contains the port of the device", "default": "" }, "ipaddress": { "type": "string", "description": "The field in response to getDevice that contains the ip address of the device", "default": "" } } } } } }, "getDevicesFiltered": { "type": "array", "description": "Broker call(s) to getDevicesFiltered", "items": { "type": "object", "properties": { "path": { "type": "string", "description": "The fully qualified path of the call to getDevicesFiltered (e.g. /rest/api/device/{deviceid})", "default": "" }, "method": { "type": "string", "description": "The method of the call to getDevicesFiltered", "default": "GET" }, "pagination": { "type": "object", "description": "todo", "properties": { "offsetVar": { "type": "string", "description": "Name of variable that defines how to go to next set of results" }, "limitVar": { "type": "string", "description": "Name of variable that defines the max results returned in a request" }, "incrementBy": { "type": "string", "enum": [ "limit", "page" ], "description": "How to incremenet offset. Default limit", "default": "limit" }, "requestLocation": { "type": "string", "enum": [ "query", "body" ], "description": "Where in request the pagination data goes", "default": "query" } } }, "query": { "type": "object", "description": "The json object with query parameters of the call to getDevicesFiltered", "additionalProperties": { "type": [ "string", "number" ] } }, "body": { "type": "object", "description": "The json object with body of the call to getDevicesFiltered", "additionalProperties": { "type": [ "string", "number" ] } }, "headers": { "type": "object", "description": "The json object with headers of the call to getDevicesFiltered", "additionalProperties": { "type": [ "string", "number" ] } }, "handleFailure": { "type": "string", "enum": [ "ignore", "fail" ], "description": "return failure or ignore failure", "default": "ignore" }, "requestFields": { "type": "object", "description": "The json object with response fields of the call to getDevice", "additionalProperties": { "type": [ "string", "number" ] }, "properties": {} }, "responseDatakey": { "type": "string", "description": "place in the response where the data is - supports jsonquery", "default": "" }, "responseFields": { "type": "object", "description": "The json object with response fields of the call to getDevicesFiltered", "additionalProperties": { "type": [ "string", "number" ] }, "properties": { "name": { "type": "string", "description": "The field in response to getDevicesFiltered that contains the name of the device", "default": "name" }, "ostype": { "type": "string", "description": "The field in response to getDevicesFiltered that contains the ostype of the device", "default": "ostype" }, "ostypePrefix": { "type": "string", "description": "Any prefix that should be added to the ostype of the device (e.g. aws-)", "default": "" }, "port": { "type": "string", "description": "The field in response to getDevicesFiltered that contains the port of the device", "default": "" }, "ipaddress": { "type": "string", "description": "The field in response to getDevicesFiltered that contains the ip address of the device", "default": "" } } } } } }, "isAlive": { "type": "array", "description": "Broker call(s) to determine if the device isAlive", "items": { "type": "object", "properties": { "path": { "type": "string", "description": "The fully qualified path of the call to isAlive (e.g. /rest/api/device/{deviceid})", "default": "" }, "method": { "type": "string", "description": "The method of the call to isAlive", "default": "GET" }, "query": { "type": "object", "description": "The json object with query parameters of the call to isAlive", "additionalProperties": { "type": [ "string", "number" ] } }, "body": { "type": "object", "description": "The json object with body of the call to isAlive", "additionalProperties": { "type": [ "string", "number" ] } }, "headers": { "type": "object", "description": "The json object with headers of the call to isAlive", "additionalProperties": { "type": [ "string", "number" ] } }, "handleFailure": { "type": "string", "enum": [ "ignore", "fail" ], "description": "return failure or ignore isAlive", "default": "ignore" }, "requestFields": { "type": "object", "description": "The json object with response fields of the call to getDevice", "additionalProperties": { "type": [ "string", "number" ] }, "properties": {} }, "responseDatakey": { "type": "string", "description": "place in the response where the data is - supports jsonquery", "default": "" }, "responseFields": { "type": "object", "description": "The json object with response fields of the call to isAlive", "additionalProperties": { "type": [ "string", "number" ] }, "properties": { "status": { "type": "string", "description": "The field in response to isAlive that contains the status of the device", "default": "name" }, "statusValue": { "type": "string", "description": "The expected value in the status field", "default": "true" } } } } } }, "getConfig": { "type": "array", "description": "Broker call(s) to getConfig", "items": { "type": "object", "properties": { "path": { "type": "string", "description": "The fully qualified path of the call to getConfig (e.g. /rest/api/device/{deviceid})", "default": "" }, "method": { "type": "string", "description": "The method of the call to getConfig", "default": "GET" }, "query": { "type": "object", "description": "The json object with query parameters of the call to getConfig", "additionalProperties": { "type": [ "string", "number" ] } }, "body": { "type": "object", "description": "The json object with body of the call to getConfig", "additionalProperties": { "type": [ "string", "number" ] } }, "headers": { "type": "object", "description": "The json object with headers of the call to getConfig", "additionalProperties": { "type": [ "string", "number" ] } }, "handleFailure": { "type": "string", "enum": [ "ignore", "fail" ], "description": "return failure or ignore getConfig", "default": "ignore" }, "requestFields": { "type": "object", "description": "The json object with response fields of the call to getDevice", "additionalProperties": { "type": [ "string", "number" ] }, "properties": {} }, "responseDatakey": { "type": "string", "description": "place in the response where the data is - supports jsonquery", "default": "" }, "responseFields": { "type": "object", "description": "The json object with response fields of the call to getConfig", "additionalProperties": { "type": [ "string", "number" ] }, "properties": {} } } } }, "getCount": { "type": "array", "description": "Broker call(s) to getCount", "items": { "type": "object", "properties": { "path": { "type": "string", "description": "The fully qualified path of the call to getCount (e.g. /rest/api/device/{deviceid})", "default": "" }, "method": { "type": "string", "description": "The method of the call to getCount", "default": "GET" }, "query": { "type": "object", "description": "The json object with query parameters of the call to getCount", "additionalProperties": { "type": [ "string", "number" ] } }, "body": { "type": "object", "description": "The json object with body of the call to getCount", "additionalProperties": { "type": [ "string", "number" ] } }, "headers": { "type": "object", "description": "The json object with headers of the call to getCount", "additionalProperties": { "type": [ "string", "number" ] } }, "handleFailure": { "type": "string", "enum": [ "ignore", "fail" ], "description": "return failure or ignore getCount", "default": "ignore" }, "requestFields": { "type": "object", "description": "The json object with response fields of the call to getDevice", "additionalProperties": { "type": [ "string", "number" ] }, "properties": {} }, "responseDatakey": { "type": "string", "description": "place in the response where the data is - supports jsonquery", "default": "" }, "responseFields": { "type": "object", "description": "The json object with response fields of the call to getConfig", "additionalProperties": { "type": [ "string", "number" ] }, "properties": {} } } } } } }, "cache": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Whether or not cache is enabled for adapter", "default": false }, "entities": { "type": "array", "description": "Information for the cached entities", "items": { "type": "object", "properties": { "entityType": { "type": "string", "description": "The name of the entity - should match adapter entity configuration or a broker (e.g. Device)", "default": "" }, "frequency": { "type": "integer", "description": "how long (in minutes) we wait to re-populate the cache", "default": 1440, "maximum": 10080 }, "flushOnFail": { "type": "boolean", "description": "Whether to clear the cache we have if the populate failed", "default": false }, "limit": { "type": "integer", "description": "maximum number of items to keep in cache", "default": 1000 }, "retryAttempts": { "type": "integer", "description": "number of times to retry the populate call before failure", "default": 5 }, "sort": { "type": "boolean", "description": "whether to sort the data or not", "default": true }, "populate": { "type": "array", "description": "Information for the call(s) used to populate the cache", "items": { "type": "object", "properties": { "path": { "type": "string", "description": "The fully qualified path of the call to getDevice (e.g. /rest/api/device/{deviceid})", "default": "" }, "method": { "type": "string", "description": "The method of the call to getDevice", "default": "GET" }, "pagination": { "type": "object", "description": "todo", "properties": { "offsetVar": { "type": "string", "description": "Name of variable that defines how to go to next set of results" }, "limitVar": { "type": "string", "description": "Name of variable that defines the max results returned in a request" }, "incrementBy": { "type": "string", "enum": [ "limit", "page" ], "description": "How to incremenet offset. Default limit", "default": "limit" }, "requestLocation": { "type": "string", "enum": [ "query", "body" ], "description": "Where in request the pagination data goes", "default": "query" } } }, "query": { "type": "object", "description": "The json object with query parameters of the call to getDevice", "additionalProperties": { "type": [ "string", "number" ] } }, "body": { "type": "object", "description": "The json object with body of the call to getDevice", "ad