diff --git a/api_specifications/public/pelion_dm_public_openapi.yaml b/api_specifications/public/pelion_dm_public_openapi.yaml
index 75c7a24c9..5718a52e3 100644
--- a/api_specifications/public/pelion_dm_public_openapi.yaml
+++ b/api_specifications/public/pelion_dm_public_openapi.yaml
@@ -1,4 +1,148 @@
definitions:
+ AccessKey:
+ description: Represents an application in Device Management.
+ properties:
+ account_id:
+ description: The ID of the account.
+ example: 01619571e2e90242ac12000600000000
+ pattern: '[a-f0-9]{32}'
+ readOnly: true
+ type: string
+ application_id:
+ description: The ID of the application.
+ example: 01705c6383f6c85b76f92f4e00000000
+ pattern: '[a-f0-9]{32}'
+ readOnly: true
+ type: string
+ created_at:
+ description: Creation UTC time RFC3339.
+ example: '2020-02-13T09:35:20Z'
+ format: date-time
+ readOnly: true
+ type: string
+ description:
+ description: The description of the access key.
+ example: Access key to control the warp drive
+ maxLength: 500
+ type: string
+ etag:
+ description: API resource entity version.
+ example: '1'
+ readOnly: true
+ type: string
+ expiration:
+ description: 'Expiration time of the access key, as UTC time RFC3339.
+
+ Expiration makes the access key inoperative and the status will be EXPIRED.
+
+ The client using the expired access key is no longer able to use the REST
+ API.
+
+ The access key expiration does not invalidate existing configurations meaning
+ that subscribed events will continue to flow on existing channels.'
+ format: date-time
+ type: string
+ id:
+ description: The ID of the access key.
+ example: 01619571f7020242ac12000600000000
+ pattern: '[a-f0-9]{32}'
+ readOnly: true
+ type: string
+ key:
+ description: The access key. The full key including the secret part is visible
+ in the response for create only
+ example: ak_2MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000
+ readOnly: true
+ type: string
+ last_used_at:
+ description: The time of the latest access key usage.
+ example: '2020-02-14T15:24:14Z'
+ format: date-time
+ readOnly: true
+ type: string
+ name:
+ description: The display name for the access key.
+ example: Access key warp
+ maxLength: 100
+ type: string
+ object:
+ description: 'Entity name: always ''access-key'''
+ enum:
+ - access-key
+ readOnly: true
+ type: string
+ status:
+ description: 'The status of the access key.
+
+ ACTIVE means that the access key is operational.
+
+ INACTIVE means that the access key is not operational and it prevents the
+ clients to use the REST API. Inactivating the access key does not invalidate
+ existing configurations meaning that subscribed events will continue to
+ flow on existing channels.
+
+ The EXPIRED status is not allowed to be set directly, it is derived from
+ the expiration attribute.'
+ enum:
+ - ACTIVE
+ - INACTIVE
+ - EXPIRED
+ example: ACTIVE
+ type: string
+ updated_at:
+ description: Last update UTC time RFC3339.
+ example: '2020-02-14T15:24:14Z'
+ format: date-time
+ readOnly: true
+ type: string
+ required:
+ - name
+ type: object
+ AccessKeyList:
+ properties:
+ after:
+ description: The entity ID to retrieve after the given one.
+ example: 01619571f3c00242ac12000600000000
+ pattern: '[a-f0-9]{32}'
+ type: string
+ data:
+ description: A list of entities.
+ items:
+ $ref: '#/definitions/AccessKey'
+ type: array
+ has_more:
+ description: Flag indicating whether there are more results.
+ example: false
+ type: boolean
+ limit:
+ description: The number of results to return, or equal to `total_count`.
+ example: 50
+ format: int32
+ type: integer
+ object:
+ description: 'Entity name: always `list`.'
+ enum:
+ - list
+ type: string
+ order:
+ description: 'The order of the records to return based on creation time. Available
+ values: ASC, DESC; by default ASC.'
+ enum:
+ - ASC
+ - DESC
+ type: string
+ total_count:
+ description: The total number of records, if requested.
+ example: 20
+ format: int32
+ type: integer
+ required:
+ - data
+ - has_more
+ - limit
+ - object
+ - total_count
+ type: object
AccountCreationReq:
description: Represents an account creation request.
properties:
@@ -39,13 +183,16 @@ definitions:
type: string
x-nullable: true
aliases:
- description: An array of aliases.
+ description: An array of aliases for the tenant account ID. The aliases must
+ be globally unique.
items:
pattern: '[\w\-._]{8,100}'
type: string
maxItems: 10
type: array
x-nullable: true
+ business_model:
+ $ref: '#/definitions/BusinessModel'
city:
description: The city part of the postal address. Required for commercial
accounts only.
@@ -54,7 +201,8 @@ definitions:
type: string
x-nullable: true
company:
- description: The name of the company. Required for commercial accounts only.
+ description: The name of the company used in billing. Required for commercial
+ accounts only.
example: ARM Holdings Plc
maxLength: 100
type: string
@@ -86,7 +234,7 @@ definitions:
type: string
x-nullable: true
display_name:
- description: The display name for the account.
+ description: The display name for the tenant account.
example: ARM
maxLength: 100
type: string
@@ -123,7 +271,7 @@ definitions:
required:
- end_market
type: object
- AccountInfo:
+ AccountCreationResp:
description: Represents an account in requests and responses.
properties:
address_line1:
@@ -153,7 +301,8 @@ definitions:
type: string
x-nullable: true
admin_id:
- description: The ID of the admin user created for this account.
+ description: The ID of the admin user created for this account. Present only
+ in the response for the account creation.
example: 01619571e2e89242ac12000600000000
pattern: '[a-f0-9]{32}'
type: string
@@ -164,6 +313,11 @@ definitions:
example: ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000B40IkJADMANmAscAj0Ot0n2yeQnyt9tT
readOnly: true
type: string
+ x-deprecation:
+ comment: This field is deprecated, do not use it anymore.
+ end_of_life_at: '2021-09-01T00:00:00+00:00'
+ issued_at: '2020-09-01T00:00:00+00:00'
+ links: []
x-nullable: true
admin_name:
description: The username of the admin user created for this account. Present
@@ -179,12 +333,20 @@ definitions:
type: string
x-nullable: true
aliases:
- description: An array of aliases.
+ description: An array of aliases for the tenant account ID. The aliases must
+ be globally unique.
items:
pattern: '[\w\-._]{8,100}'
type: string
maxItems: 10
type: array
+ business_model:
+ $ref: '#/definitions/BusinessModel'
+ business_model_history:
+ description: Business model history for this account.
+ items:
+ $ref: '#/definitions/BusinessModelHistory'
+ type: array
city:
description: The city part of the postal address.
example: Cambridge
@@ -192,7 +354,7 @@ definitions:
type: string
x-nullable: true
company:
- description: The name of the company.
+ description: The name of the company used in billing.
example: ARM Holdings Plc
maxLength: 100
type: string
@@ -231,7 +393,7 @@ definitions:
type: string
x-nullable: true
display_name:
- description: The display name for the account.
+ description: The display name for the tenant account.
example: ARM
maxLength: 100
type: string
@@ -275,11 +437,20 @@ definitions:
minimum: 1
type: integer
x-nullable: true
+ limitations:
+ description: List of account limitation objects.
+ items:
+ $ref: '#/definitions/AccountLimitation'
+ type: array
limits:
additionalProperties:
type: string
- description: List of limits as key-value pairs if requested.
+ description: 'DEPRECATED: Replaced by the limitations parameter.'
type: object
+ x-deprecation:
+ comment: Replaced by the limitations parameter.
+ end_of_life_at: '2020-08-27T12:03:58+00:00'
+ issued_at: '2019-08-27T12:03:58+00:00'
x-nullable: true
mfa_status:
description: The enforcement status of multi-factor authentication, either
@@ -387,6 +558,11 @@ definitions:
account, `2`: partner tier. Other values are reserved for the future.'
example: '1'
type: string
+ tier_history:
+ description: Tier history for this account.
+ items:
+ $ref: '#/definitions/TierHistory'
+ type: array
updated_at:
description: Last update UTC time RFC3339.
example: '2018-02-14T15:24:14Z'
@@ -397,64 +573,12 @@ definitions:
example: '2018-02-14T15:24:14Z'
format: date-time
type: string
- required:
- - end_market
- - etag
- - id
- - object
- - status
- - tier
- type: object
- AccountInfoList:
- properties:
- after:
- description: The entity ID to fetch after the given one.
- example: 01619571f3c00242ac12000600000000
- pattern: '[a-f0-9]{32}'
- type: string
- data:
- description: A list of entities.
- items:
- $ref: '#/definitions/AccountInfo'
- type: array
- has_more:
- description: Flag indicating whether there are more results.
- example: false
- type: boolean
- limit:
- description: The number of results to return (2-1000), or equal to `total_count`.
- example: 50
- format: int32
- type: integer
- object:
- description: 'Entity name: always `list`.'
- enum:
- - list
- type: string
- order:
- description: 'The order of the records to return based on creation time. Available
- values: ASC, DESC; by default ASC.'
- enum:
- - ASC
- - DESC
- type: string
- total_count:
- description: The total number of records, if requested.
- example: 20
- format: int32
- type: integer
- required:
- - data
- - has_more
- - limit
- - object
- - total_count
type: object
- AccountUpdateReq:
- description: Represents an account creation request.
+ AccountInfo:
+ description: Represents an account in requests and responses.
properties:
address_line1:
- description: Postal address line 1. Required for commercial accounts only.
+ description: Postal address line 1.
example: 110 Fulbourn Rd
maxLength: 100
type: string
@@ -466,79 +590,125 @@ definitions:
type: string
x-nullable: true
aliases:
- description: An array of aliases.
+ description: An array of aliases for the tenant account ID. The aliases must
+ be globally unique.
items:
pattern: '[\w\-._]{8,100}'
type: string
maxItems: 10
type: array
- x-nullable: true
+ business_model:
+ $ref: '#/definitions/BusinessModel'
+ business_model_history:
+ description: Business model history for this account.
+ items:
+ $ref: '#/definitions/BusinessModelHistory'
+ type: array
city:
- description: The city part of the postal address. Required for commercial
- accounts only.
+ description: The city part of the postal address.
example: Cambridge
maxLength: 100
type: string
x-nullable: true
company:
- description: The name of the company. Required for commercial accounts only.
+ description: The name of the company used in billing.
example: ARM Holdings Plc
maxLength: 100
type: string
x-nullable: true
contact:
- description: The name of the contact person for this account. Required for
- commercial accounts only.
+ description: The name of the contact person for this account.
example: J. Doe
maxLength: 100
type: string
x-nullable: true
+ contract_number:
+ description: Contract number of the customer.
+ example: 1NX25_0001
+ type: string
+ x-nullable: true
country:
- description: The country part of the postal address. Required for commercial
- accounts only.
+ description: The country part of the postal address.
example: United Kingdom
maxLength: 100
type: string
x-nullable: true
+ created_at:
+ description: Creation UTC time RFC3339.
+ example: '2018-02-13T09:35:20Z'
+ format: date-time
+ type: string
custom_fields:
additionalProperties:
type: string
description: Account's custom properties as key-value pairs.
- maxItems: 10
type: object
x-nullable: true
+ customer_number:
+ description: Customer number of the customer.
+ example: 1NC25_0001
+ type: string
+ x-nullable: true
display_name:
- description: The display name for the account.
+ description: The display name for the tenant account.
example: ARM
maxLength: 100
type: string
x-nullable: true
email:
- description: The company email address for this account. Required for commercial
- accounts only.
+ description: The company email address for this account.
example: info@arm.com
pattern: ^(?=.{3,254}$).+\@.+
type: string
x-nullable: true
end_market:
- description: The end market for this account.
+ description: Account end market.
example: IT
- maxLength: 100
+ type: string
+ etag:
+ description: API resource entity version.
+ example: '1'
+ type: string
+ expiration:
+ description: Expiration time of the account, as UTC time RFC3339.
+ format: date-time
type: string
x-nullable: true
expiration_warning_threshold:
- description: Indicates how many days before account expiration a notification
+ description: Indicates how many days (1-180) before account expiration a notification
email is sent.
+ example: '180'
maximum: 180
minimum: 1
type: integer
x-nullable: true
+ id:
+ description: Account ID.
+ example: 01619571e2e90242ac12000600000000
+ pattern: '[a-f0-9]{32}'
+ type: string
idle_timeout:
- description: Reference token expiration time in minutes.
+ description: The reference token expiration time, in minutes, for this account.
+ example: '30'
maximum: 120
minimum: 1
type: integer
x-nullable: true
+ limitations:
+ description: List of account limitation objects.
+ items:
+ $ref: '#/definitions/AccountLimitation'
+ type: array
+ limits:
+ additionalProperties:
+ type: string
+ description: 'DEPRECATED: Replaced by the limitations parameter.'
+ type: object
+ x-deprecation:
+ comment: Replaced by the limitations parameter.
+ end_of_life_at: '2020-08-27T12:03:58+00:00'
+ issued_at: '2019-08-27T12:03:58+00:00'
+ x-nullable: true
mfa_status:
description: The enforcement status of multi-factor authentication, either
`enforced` or `optional`.
@@ -554,9 +724,24 @@ definitions:
type: string
type: array
x-nullable: true
+ object:
+ description: 'Entity name: always `account`.'
+ enum:
+ - account
+ type: string
+ parent_account:
+ $ref: '#/definitions/ParentAccountInfo'
+ description: Contact details of the parent account.
+ x-nullable: true
+ parent_id:
+ description: The ID of the parent account, if any.
+ example: 01619571dad80242ac12000600000000
+ pattern: '[a-f0-9]{32}'
+ type: string
+ x-nullable: true
password_policy:
$ref: '#/definitions/PasswordPolicy'
- description: Password policy for this account.
+ description: The password policy for this account.
x-nullable: true
password_recovery_expiration:
description: Indicates for how many minutes a password recovery email is valid.
@@ -564,427 +749,239 @@ definitions:
maximum: 45
minimum: 1
type: integer
- x-nullable: true
phone_number:
- description: The phone number of a representative of the company.
+ description: The phone number of a company representative.
example: +44 (1223) 400 400
maxLength: 100
type: string
x-nullable: true
+ policies:
+ description: List of policies if requested.
+ items:
+ $ref: '#/definitions/FeaturePolicy'
+ type: array
+ x-nullable: true
postal_code:
description: The postal code part of the postal address.
example: CB1 9NJ
maxLength: 100
type: string
x-nullable: true
- state:
- description: The state part of the postal address.
- example: ' '
- maxLength: 100
- type: string
- x-nullable: true
- type: object
- AccountUpdateRootReq:
- description: Represents an account update request.
- properties:
- address_line1:
- description: Postal address line 1. Required for commercial accounts only.
- example: 110 Fulbourn Rd
- maxLength: 100
- type: string
- x-nullable: true
- address_line2:
- description: Postal address line 2.
- example: ' '
- maxLength: 100
+ reason:
+ description: A note with the reason for account status update.
+ example: Subscription paid.
type: string
x-nullable: true
- aliases:
- description: An array of aliases.
- items:
- pattern: '[\w\-._]{8,100}'
- type: string
- maxItems: 10
- type: array
- x-nullable: true
- city:
- description: The city part of the postal address. Required for commercial
- accounts only.
- example: Cambridge
- maxLength: 100
+ reference_note:
+ description: A reference note for updating the status of the account.
+ example: ARM-INT-0001
type: string
x-nullable: true
- company:
- description: The name of the company. Required for commercial accounts only.
- example: ARM Holdings Plc
- maxLength: 100
+ sales_contact:
+ description: Email address of the sales contact.
+ example: sales@arm.com
+ pattern: ^(?=.{3,254}$).+\@.+
type: string
x-nullable: true
- contact:
- description: The name of the contact person for this account. Required for
- commercial accounts only.
- example: J. Doe
+ state:
+ description: The state part of the postal address.
+ example: ' '
maxLength: 100
type: string
x-nullable: true
- contract_number:
- description: Contract number of the customer.
- type: string
- x-nullable: true
- country:
- description: The country part of the postal address. Required for commercial
- accounts only.
- example: United Kingdom
- maxLength: 100
+ status:
+ description: The status of the account.
+ enum:
+ - ENROLLING
+ - ACTIVE
+ - RESTRICTED
+ - SUSPENDED
+ example: ACTIVE
type: string
+ sub_accounts:
+ description: List of sub accounts. Not available for developer users.
+ items:
+ $ref: '#/definitions/AccountInfo'
+ type: array
x-nullable: true
- custom_fields:
- additionalProperties:
- type: string
- description: Account's custom properties as key-value pairs.
- maxItems: 10
- type: object
- x-nullable: true
- customer_number:
- description: Customer number of the customer.
+ template_id:
+ description: Account template ID.
+ example: 01619571e7160242ac12000600000000
+ pattern: '[a-f0-9]{32}'
type: string
x-nullable: true
- display_name:
- description: The display name for the account.
- example: ARM
- maxLength: 100
+ tier:
+ description: 'The tier level of the account; `0`: free tier, `1`: commercial
+ account, `2`: partner tier. Other values are reserved for the future.'
+ example: '1'
type: string
- x-nullable: true
- email:
- description: The company email address for this account. Required for commercial
- accounts only.
- example: info@arm.com
- pattern: ^(?=.{3,254}$).+\@.+
+ tier_history:
+ description: Tier history for this account.
+ items:
+ $ref: '#/definitions/TierHistory'
+ type: array
+ updated_at:
+ description: Last update UTC time RFC3339.
+ example: '2018-02-14T15:24:14Z'
+ format: date-time
type: string
- x-nullable: true
- end_market:
- description: The end market for this account.
- example: IT
- maxLength: 100
+ upgraded_at:
+ description: Time when upgraded to commercial account in UTC format RFC3339.
+ example: '2018-02-14T15:24:14Z'
+ format: date-time
type: string
- x-nullable: true
- expiration_warning_threshold:
- description: Indicates how many days before account expiration a notification
- email is sent.
- maximum: 180
- minimum: 1
- type: integer
- x-nullable: true
- idle_timeout:
- description: The reference token expiration time in minutes for this account.
- Between 1 and 120 minutes.
- maximum: 120
- minimum: 1
- type: integer
- x-nullable: true
- mfa_status:
- description: The enforcement status of setting up the multi-factor authentication.
- 'Enforced' means that setting up the MFA is required after login. 'Optional'
- means that the MFA is not required.
- enum:
- - enforced
- - optional
+ required:
+ - end_market
+ - etag
+ - id
+ - object
+ - status
+ - tier
+ type: object
+ AccountInfoList:
+ properties:
+ after:
+ description: The entity ID to retrieve after the given one.
+ example: 01619571f3c00242ac12000600000000
+ pattern: '[a-f0-9]{32}'
type: string
- x-nullable: true
- notification_emails:
- description: A list of notification email addresses.
+ data:
+ description: A list of entities.
items:
- pattern: ^(?=.{3,254}$).+\@.+
- type: string
+ $ref: '#/definitions/AccountInfo'
type: array
- x-nullable: true
- password_policy:
- $ref: '#/definitions/PasswordPolicy'
- description: Password policy for this account.
- x-nullable: true
- password_recovery_expiration:
- description: Indicates for how many minutes a password recovery email is valid.
+ has_more:
+ description: Flag indicating whether there are more results.
+ example: false
+ type: boolean
+ limit:
+ description: The number of results to return (2-1000), or equal to `total_count`.
+ example: 50
format: int32
- maximum: 45
- minimum: 1
type: integer
- x-nullable: true
- phone_number:
- description: The phone number of a representative of the company.
- example: +44 (1223) 400 400
- maxLength: 100
- type: string
- x-nullable: true
- postal_code:
- description: The postal code part of the postal address.
- example: CB1 9NJ
- maxLength: 100
- type: string
- x-nullable: true
- sales_contact:
- description: Email address of the sales contact.
- pattern: ^(?=.{3,254}$).+\@.+
+ object:
+ description: 'Entity name: always `list`.'
+ enum:
+ - list
type: string
- x-nullable: true
- state:
- description: The state part of the postal address.
- example: ' '
- maxLength: 100
+ order:
+ description: 'The order of the records to return based on creation time. Available
+ values: ASC, DESC; by default ASC.'
+ enum:
+ - ASC
+ - DESC
type: string
- x-nullable: true
+ total_count:
+ description: The total number of records, if requested.
+ example: 20
+ format: int32
+ type: integer
+ required:
+ - data
+ - has_more
+ - limit
+ - object
+ - total_count
type: object
- ActiveServicePackage:
- description: An active service package.
+ AccountLimitation:
+ description: This object represents an account limitation.
properties:
- created:
- description: Service package creation time in RFC3339 date-time with millisecond
- accuracy and UTC time zone.
- format: date-time
- type: string
- expires:
- description: Service package expiration time in RFC3339 date-time with millisecond
- accuracy and UTC time zone.
- format: date-time
- type: string
- firmware_update_count:
- description: Size of firmware update quota of this service package.
+ billing_period:
+ description: Billing period of the account limitation.
format: int32
type: integer
- grace_period:
- description: Indicates whether the service package is in its grace period.
- type: boolean
- id:
- description: ID of this service package.
- type: string
- modified:
- description: Service package latest modified time in RFC3339 date-time with
- millisecond accuracy and UTC time zone.
+ created_at:
+ description: Creation UTC time RFC3339.
+ example: '2018-02-13T09:35:20Z'
format: date-time
type: string
- next_id:
- description: Next service package ID if this service package has a pending
- renewal, or null.
- type: string
- previous_id:
- description: Previous service package ID or null.
- type: string
- start_time:
- description: Service package start time in RFC3339 date-time with millisecond
- accuracy and UTC time zone.
- format: date-time
- type: string
- required:
- - id
- - created
- - modified
- - start_time
- - expires
- - firmware_update_count
- - grace_period
- type: object
- ActiveSession:
- description: Represents an active user session.
- properties:
- account_id:
- description: The UUID of the account.
- example: 01619571e2e90242ac12000600000000
- pattern: '[a-f0-9]{32}'
- type: string
- ip_address:
- description: IP address of the client.
- example: 127.0.0.1
- type: string
- login_time:
- description: The login time of the user.
- example: '2018-02-14T17:52:07Z'
- format: date-time
- type: string
- object:
- description: 'Entity name: always ''user-session'''
- enum:
- - user-session
- type: string
- reference_token:
- description: The reference token.
- example: rt_CI6+5hS8p9DrCmkRyS6u4doUdiXr71dX7MqD+g0327hYQthEkYTxMMnCwHyf1rDdk
- type: string
- user_agent:
- description: User Agent header from the login request.
- example: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36
- (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36
- type: string
- required:
- - account_id
- - ip_address
- - login_time
- - object
- - reference_token
- - user_agent
- type: object
- AggregatedQuotaUsageReport:
- description: Aggregated quota usage entry.
- properties:
- account_id:
- type: string
- amount:
- description: Amount of quota usage entry. Negative if quota consumption.
- format: int64
- type: integer
- campaign_name:
- description: 'Campaign name of quota usage entry.
-
- Null if quota usage entry type is not `reservation` or `reservation release`.'
- type: string
- time:
- description: Added time of quota usage entry in RFC3339 date-time with millisecond
- accuracy and UTC time zone.
- format: date-time
- type: string
- type:
- description: Type of quota usage entry.
- enum:
- - reservation
- - reservation_release
- - reservation_termination
- - package_renewal
- - package_creation
- - package_termination
- type: string
- required:
- - account_id
- - amount
- - type
- - time
- type: object
- AllServerCredentialsResponseData:
- properties:
- bootstrap:
- $ref: '#/definitions/CredentialsResponseData'
- lwm2m:
- $ref: '#/definitions/CredentialsResponseData'
- type: object
- ApiKeyInfoReq:
- description: Represents an API key in requests towards Device Management.
- properties:
- groups:
- description: A list of group IDs this API key belongs to.
- items:
- type: string
- type: array
- name:
- description: The display name for the API key.
- maxLength: 100
- type: string
- owner:
- description: The owner of this API key.
- type: string
- status:
- description: The status of the API key.
- enum:
- - ACTIVE
- - INACTIVE
- type: string
- required:
- - name
- type: object
- ApiKeyInfoResp:
- description: Represents an API key in Device Management.
- properties:
- account_id:
- description: The ID of the account.
- example: 01619571e2e90242ac12000600000000
- pattern: '[a-f0-9]{32}'
- type: string
- created_at:
- description: Creation UTC time RFC3339.
- example: '2018-02-13T09:35:20Z'
- format: date-time
+ description:
+ description: Description of the account limitation.
+ readOnly: true
type: string
- creation_time:
- description: The timestamp of the API key creation in the storage, in milliseconds.
- example: 1518630727683
- format: int64
- type: integer
etag:
description: API resource entity version.
example: '1'
type: string
- groups:
- description: A list of group IDs this API key belongs to.
- items:
- type: string
- type: array
id:
- description: The ID of the API key.
- example: 01619571f7020242ac12000600000000
- pattern: '[a-f0-9]{32}'
+ description: Entity ID.
+ example: 01619571d01d0242ac12000600000000
type: string
- key:
- description: The API key.
- example: ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000
+ inherited:
+ description: Flag indicating whether this limitation is inherited.
+ readOnly: true
+ type: boolean
+ inherited_from:
+ description: Indicates where this limit is inherited from.
+ readOnly: true
type: string
- last_login_time:
- description: The timestamp of the latest API key usage, in milliseconds.
- example: 1518630727688
- format: int64
+ inherited_type:
+ description: Indicates the type of the entity where the limitation is inherited
+ from.
+ readOnly: true
+ type: string
+ limit:
+ description: The value of the limit.
+ format: int32
type: integer
name:
- description: The display name for the API key.
- example: API key gorgon
- maxLength: 100
+ description: Name of the account limitation.
type: string
object:
- description: 'Entity name: always ''api-key'''
+ description: 'Entity name: always ''limitation'''
enum:
+ - user
- api-key
+ - group
+ - account
+ - account_template
+ - trusted_cert
+ - list
+ - error
+ - agreement
+ - signed_agreement
+ - policy
+ - limitation
+ - identity_provider
+ - user_session
+ - user_invitation
+ - notification_entry
+ - branding_color
+ - branding_image
type: string
- owner:
- description: The owner of this API key, who is the creator by default.
- example: 01619571e2e89242ac12000600000000
- pattern: '[a-f0-9]{32}'
- type: string
- status:
- description: The status of the API key.
- enum:
- - ACTIVE
- - INACTIVE
- example: ACTIVE
- type: string
+ quota:
+ description: Quota of the account limitation.
+ format: int32
+ type: integer
updated_at:
description: Last update UTC time RFC3339.
example: '2018-02-14T15:24:14Z'
format: date-time
type: string
- required:
- - etag
- - id
- - key
- - name
- - object
type: object
- ApiKeyInfoRespList:
+ AccountLimitationList:
properties:
after:
- description: The entity ID to fetch after the given one.
+ description: The entity ID to retrieve after the given one.
example: 01619571f3c00242ac12000600000000
- pattern: '[a-f0-9]{32}'
type: string
data:
description: A list of entities.
items:
- $ref: '#/definitions/ApiKeyInfoResp'
+ $ref: '#/definitions/AccountLimitation'
type: array
has_more:
- description: Flag indicating whether there are more results.
+ description: Flag indicating whether there is more results.
example: false
type: boolean
limit:
- description: The number of results to return, or equal to `total_count`.
+ description: 'The number of results to return, (range: 2-1000), or equals
+ to `total_count`'
example: 50
format: int32
type: integer
object:
- description: 'Entity name: always `list`.'
+ description: 'Entity name: always ''list'''
enum:
- list
type: string
@@ -996,7 +993,8 @@ definitions:
- DESC
type: string
total_count:
- description: The total number of records, if requested.
+ description: The total number or records, if requested. It might be returned
+ also for small lists.
example: 20
format: int32
type: integer
@@ -1007,260 +1005,76 @@ definitions:
- object
- total_count
type: object
- ApiKeyUpdateReq:
- description: Represents an API key in requests towards Device Management.
+ AccountResponse:
+ description: This object represents an account in responses.
properties:
- groups:
- description: A list of group IDs this API key belongs to.
+ alias:
+ description: Alias of the account.
+ example: cust-314159
+ readOnly: true
+ type: string
+ display_name:
+ description: The display name for the account.
+ example: Customer 3.14159
+ readOnly: true
+ type: string
+ id:
+ description: The UUID of the account.
+ example: 01619571e2e90242ac12000600000000
+ readOnly: true
+ type: string
+ login_profiles:
+ description: A list of login profiles for the user in the account.
items:
- type: string
+ $ref: '#/definitions/LoginProfile'
type: array
- name:
- description: The display name for the API key.
- maxLength: 100
- type: string
- owner:
- description: The owner of this API key.
+ x-nullable: true
+ parent_id:
+ description: The UUID of the parent account, if it has any.
+ example: 01619571f3c00242ac12000600000000
+ readOnly: true
type: string
status:
- description: The status of the API key.
+ description: The status of the account.
enum:
+ - ENROLLING
- ACTIVE
- - INACTIVE
+ - RESTRICTED
+ - SUSPENDED
+ example: ACTIVE
+ readOnly: true
type: string
- required:
- - name
type: object
- AsyncID:
+ AccountResponseList:
properties:
- async-response-id:
- description: Asynchronous response unique ID.
- example: 9e3c96b8-c4d7-496a-ab90-cc732b9b560e
- type: string
- type: object
- AsyncIDResponse:
- properties:
- ct:
- description: The content type.
- example: text/plain
- type: string
- error:
- description: 'An optional error message describing the error. Please refer
- to status listing above.
-
- '
- example: TIMEOUT
- type: string
- id:
- description: The unique ID of the asynchronous response.
- example: 9e3c96b8-c4d7-496a-ab90-cc732b9b560e
- type: string
- max-age:
- description: Determines how long this value stays valid in the cache, in seconds.
- 0 means that the value is not stored in the cache.
- example: 60
- type: string
- payload:
- description: Requested data, base64 encoded.
- example: My4zMQ==
- type: string
- status:
- description: "\nStates whether sending a command to the device succeeded or\
- \ failed.\n\n
\n \n \n | Code | \n Description | \n\
- \
\n \n \n \n | 200 | \n\
- \ Operation succeeded. The playload contains result of the operation\
- \ from the device. | \n
\n \n | 404 | \n\
- \ Endpoint does not have requested resource. | \n
\n\
- \ \n | 412 | \n Precondition failed and\
- \ operation was not executed. Device responded with 4.12 CoAP response code. | \n\
- \
\n \n | 413 | \n Request entity\
- \ is too large and could not be delivered to the device. | \n
\n\
- \ \n | 415 | \n Endpoint does not support\
- \ media type. | \n
\n \n | 429 | \n \
- \ Expired request was removed from queue (REQUEST_EXPIRED), device\
- \ requested deregistration (DEVICE_REMOVED_REGISTRATION), or device was\
- \ suspended (DEVICE_BLOCKED). | \n
\n \n | 502 | \n\
- \ Request to the device failed and retry count exceeded. Last retry\
- \ failed to establish TCP or TLS connection to endpoint. | \n
\n\
- \ \n | 503 | \n Request to the device failed\
- \ and retry count exceeded. Last retry failed because endpoint is currently\
- \ unavailable (NOT_CONNECTED). | \n
\n \n | 504 | \n\
- \ Request to the device failed and retry count exceeded. Last retry\
- \ failed, as device did not respond in the time of protocol-specific retransmission\
- \ logic (TIMEOUT). | \n
\n \n
\n"
- example: 200
- type: integer
- type: object
- BadRequestErrorResponse:
- description: 400 Bad request response.
- properties:
- code:
- description: Response code. Always set to 400.
- enum:
- - 400
- type: integer
- fields:
- items:
- $ref: '#/definitions/BadRequestErrorResponseField'
- type: array
- message:
- description: A human-readable message with detailed info.
- type: string
- object:
- description: Always set to `error`.
- enum:
- - error
- type: string
- request_id:
- description: Request ID.
- type: string
- type:
- description: Error type. Always set to `validation_error`.
- enum:
- - validation_error
- type: string
- required:
- - object
- - message
- - request_id
- - type
- - code
- - fields
- type: object
- BadRequestErrorResponseField:
- description: Single field that failed validation.
- properties:
- message:
- description: A human-readable message with detailed validation error.
- type: string
- name:
- description: Name of the field that failed validation. If name is set to `body,`
- then the validation failed on request body.
- type: string
- required:
- - name
- - message
- type: object
- BillingReportRawDataResponse:
- description: The response includes the URL to download raw billing data.
- properties:
- filename:
- description: The filename of the raw billing data file to download. Contains
- file extensions.
- type: string
- object:
- description: API Resource name.
- type: string
- url:
- description: The URL to download raw billing data.
- type: string
- required:
- - object
- - url
- - filename
- type: object
- BlackListedDeviceData:
- properties:
- account_id:
- description: account id
- example: 00005a4e027f0a580a01081c00000000
- pattern: '[a-f0-9]{32}'
- type: string
- created_at:
- description: date on which the failed bootstrap was attempted on
- example: '2000-01-23T04:56:07.000+00:00'
- format: date-time
- type: string
- endpoint_name:
- description: endpoint name
- example: Endpoint_1234
- type: string
- id:
- description: id of the recorded failed bootstrap attempt
- example: 00005a4e027f0a580a04567c00000000
- pattern: '[a-f0-9]{32}'
- type: string
- object:
- enum:
- - denied_device
- type: string
- trusted_certificate_id:
- description: Trusted certificate id
- example: 00005a4e027f0a580a01081c00000000
- pattern: '[a-f0-9]{32}'
- type: string
- required:
- - id
- - account_id
- - endpoint_name
- - trusted_certificate_id
- - created_at
- - object
- BrandingColor:
- properties:
- color:
- description: The color given as name (purple) or as a hex code.
- example: '#f3f93e'
- type: string
- x-nullable: true
- object:
- description: 'Entity name: always ''branding_color'''
- enum:
- - branding_color
- readOnly: true
- type: string
- reference:
- description: Color name.
- enum: &id019
- - error_color
- - primary
- - secondary
- - success_color
- - warning_color
- - canvas_background
- - canvas_background_font_color
- - workspace_background
- - workspace_background_font_color
- - info_color
- - info_font_color
- - primary_font_color
- - secondary_font_color
- - error_font_color
- - success_font_color
- - warning_font_color
- type: string
- updated_at:
- description: Last update time in UTC.
- example: '2018-02-14T15:24:14Z'
- format: date-time
- readOnly: true
- type: string
- type: object
- BrandingColorList:
- properties:
- after:
- description: The entity ID to fetch after the given one.
- example: 01619571f3c00242ac12000600000000
- pattern: '[a-f0-9]{32}'
+ after:
+ description: The entity ID to fetch after the given one.
+ example: 01619571f3c00242ac12000600000000
+ readOnly: true
type: string
data:
description: A list of entities.
items:
- $ref: '#/definitions/BrandingColor'
+ $ref: '#/definitions/AccountResponse'
+ readOnly: true
type: array
has_more:
- description: Flag indicating whether there are more results.
+ description: Flag indicating whether there is more results.
example: false
+ readOnly: true
type: boolean
limit:
- description: The number of results to return, or equal to `total_count`.
+ description: 'The number of results to return, (range: 2-1000), or equals
+ to `total_count`'
example: 50
format: int32
+ readOnly: true
type: integer
object:
- description: 'Entity name: always `list`.'
+ description: 'Entity name: always ''list'''
enum:
- list
+ readOnly: true
type: string
order:
description: 'The order of the records to return based on creation time. Available
@@ -1268,1636 +1082,1951 @@ definitions:
enum:
- ASC
- DESC
+ readOnly: true
type: string
total_count:
- description: The total number of records, if requested.
- example: 20
+ description: The total number or records, if requested. It might be returned
+ also for small lists.
+ example: 5
format: int32
+ readOnly: true
type: integer
- required:
- - data
- - has_more
- - limit
- - object
- - total_count
type: object
- BrandingImage:
+ AccountUpdateReq:
+ description: Represents an account creation request.
properties:
- object:
- description: 'Entity name: always ''branding_image'''
- enum:
- - branding_image
- readOnly: true
- type: string
- reference:
- description: Name of the image.
- enum: &id020
- - brand_logo_portrait
- - brand_logo_square
- - brand_logo_landscape
- - brand_logo_email
- - desktop_background_landscape
- - desktop_background_square
- - desktop_background_portrait
- - carousel_image_portrait_0
- - carousel_image_portrait_1
- - carousel_image_portrait_2
- - carousel_image_portrait_3
- - carousel_image_portrait_4
- - carousel_image_portrait_5
- - carousel_image_portrait_6
- - carousel_image_portrait_7
- - carousel_image_portrait_8
- - carousel_image_portrait_9
- - carousel_image_square_0
- - carousel_image_square_1
- - carousel_image_square_2
- - carousel_image_square_3
- - carousel_image_square_4
- - carousel_image_square_5
- - carousel_image_square_6
- - carousel_image_square_7
- - carousel_image_square_8
- - carousel_image_square_9
- - carousel_image_landscape_0
- - carousel_image_landscape_1
- - carousel_image_landscape_2
- - carousel_image_landscape_3
- - carousel_image_landscape_4
- - carousel_image_landscape_5
- - carousel_image_landscape_6
- - carousel_image_landscape_7
- - carousel_image_landscape_8
- - carousel_image_landscape_9
+ address_line1:
+ description: Postal address line 1. Required for commercial accounts only.
+ example: 110 Fulbourn Rd
+ maxLength: 100
type: string
- static_uri:
- description: The static link to the image.
- example: https://static.mbed.com/123456789.jpg
- format: uri
- readOnly: true
+ x-nullable: true
+ address_line2:
+ description: Postal address line 2.
+ example: ' '
+ maxLength: 100
type: string
- updated_at:
- description: Last update time in UTC.
- example: '2018-02-14T15:24:14Z'
- format: date-time
- readOnly: true
+ x-nullable: true
+ aliases:
+ description: An array of aliases for the tenant account ID. The aliases must
+ be globally unique.
+ items:
+ pattern: '[\w\-._]{8,100}'
+ type: string
+ maxItems: 10
+ type: array
+ x-nullable: true
+ city:
+ description: The city part of the postal address. Required for commercial
+ accounts only.
+ example: Cambridge
+ maxLength: 100
type: string
- type: object
- BrandingImageList:
- properties:
- after:
- description: The entity ID to fetch after the given one.
- example: 01619571f3c00242ac12000600000000
- pattern: '[a-f0-9]{32}'
+ x-nullable: true
+ company:
+ description: The name of the company used in billing. Required for commercial
+ accounts only.
+ example: ARM Holdings Plc
+ maxLength: 100
type: string
- data:
- description: A list of entities.
+ x-nullable: true
+ contact:
+ description: The name of the contact person for this account. Required for
+ commercial accounts only.
+ example: J. Doe
+ maxLength: 100
+ type: string
+ x-nullable: true
+ country:
+ description: The country part of the postal address. Required for commercial
+ accounts only.
+ example: United Kingdom
+ maxLength: 100
+ type: string
+ x-nullable: true
+ custom_fields:
+ additionalProperties:
+ type: string
+ description: Account's custom properties as key-value pairs.
+ maxItems: 10
+ type: object
+ x-nullable: true
+ display_name:
+ description: The display name for the tenant account.
+ example: ARM
+ maxLength: 100
+ type: string
+ x-nullable: true
+ email:
+ description: The company email address for this account. Required for commercial
+ accounts only.
+ example: info@arm.com
+ pattern: ^(?=.{3,254}$).+\@.+
+ type: string
+ x-nullable: true
+ end_market:
+ description: The end market for this account.
+ example: IT
+ maxLength: 100
+ type: string
+ x-nullable: true
+ expiration_warning_threshold:
+ description: Indicates how many days before account expiration a notification
+ email is sent.
+ maximum: 180
+ minimum: 1
+ type: integer
+ x-nullable: true
+ idle_timeout:
+ description: Reference token expiration time in minutes.
+ maximum: 120
+ minimum: 1
+ type: integer
+ x-nullable: true
+ mfa_status:
+ description: The enforcement status of multi-factor authentication, either
+ `enforced` or `optional`.
+ enum:
+ - enforced
+ - optional
+ type: string
+ x-nullable: true
+ notification_emails:
+ description: A list of notification email addresses.
items:
- $ref: '#/definitions/BrandingImage'
+ pattern: ^(?=.{3,254}$).+\@.+
+ type: string
type: array
- has_more:
- description: Flag indicating whether there are more results.
- example: false
- type: boolean
- limit:
- description: The number of results to return, or equal to `total_count`.
- example: 50
+ x-nullable: true
+ password_policy:
+ $ref: '#/definitions/PasswordPolicy'
+ description: Password policy for this account.
+ x-nullable: true
+ password_recovery_expiration:
+ description: Indicates for how many minutes a password recovery email is valid.
format: int32
+ maximum: 45
+ minimum: 1
type: integer
- object:
- description: 'Entity name: always `list`.'
- enum:
- - list
+ x-nullable: true
+ phone_number:
+ description: The phone number of a representative of the company.
+ example: +44 (1223) 400 400
+ maxLength: 100
type: string
- order:
- description: 'The order of the records to return based on creation time. Available
- values: ASC, DESC; by default ASC.'
- enum:
- - ASC
- - DESC
+ x-nullable: true
+ postal_code:
+ description: The postal code part of the postal address.
+ example: CB1 9NJ
+ maxLength: 100
type: string
- total_count:
- description: The total number of records, if requested.
- example: 20
- format: int32
- type: integer
- required:
- - data
- - has_more
- - limit
- - object
- - total_count
+ x-nullable: true
+ state:
+ description: The state part of the postal address.
+ example: ' '
+ maxLength: 100
+ type: string
+ x-nullable: true
type: object
- BulkResponse:
+ AccountUpdateRootReq:
+ description: Represents an account update request.
properties:
- account_id:
- description: ID
- example: 00005a4e027f0a580a01081c00000000
+ address_line1:
+ description: Postal address line 1. Required for commercial accounts only.
+ example: 110 Fulbourn Rd
+ maxLength: 100
type: string
- completed_at:
- description: 'The time the bulk creation task was completed.
-
- Null when creating bulk upload or delete.'
- format: date-time
+ x-nullable: true
+ address_line2:
+ description: Postal address line 2.
+ example: ' '
+ maxLength: 100
type: string
- created_at:
- description: The time of receiving the bulk creation task.
- format: date-time
+ x-nullable: true
+ aliases:
+ description: An array of aliases for the tenant account ID. The aliases must
+ be globally unique.
+ items:
+ pattern: '[\w\-._]{8,100}'
+ type: string
+ maxItems: 10
+ type: array
+ x-nullable: true
+ business_model:
+ $ref: '#/definitions/BusinessModel'
+ city:
+ description: The city part of the postal address. Required for commercial
+ accounts only.
+ example: Cambridge
+ maxLength: 100
type: string
- errors_count:
- description: The number of enrollment identities with failed processing.
- example: 0
- type: integer
- errors_report_file:
- description: 'Link to error report file.
-
- Null when creating bulk upload or delete.'
- example: https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/errors_report.csv
+ x-nullable: true
+ company:
+ description: The name of the company used in billing. Required for commercial
+ accounts only.
+ example: ARM Holdings Plc
+ maxLength: 100
type: string
- etag:
- description: etag
- example: '1'
- pattern: '[A-Za-z0-9]{0,256}'
+ x-nullable: true
+ contact:
+ description: The name of the contact person for this account. Required for
+ commercial accounts only.
+ example: J. Doe
+ maxLength: 100
type: string
- full_report_file:
- description: 'Link to full report file.
-
- Null when creating bulk upload or delete.'
- example: https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/full_report.csv
+ x-nullable: true
+ contract_number:
+ description: Contract number of the customer. An administrator can set this
+ property on tenant accounts only.
type: string
- id:
- description: Bulk ID
- pattern: ^[A-Za-z0-9]{32}
+ x-nullable: true
+ country:
+ description: The country part of the postal address. Required for commercial
+ accounts only.
+ example: United Kingdom
+ maxLength: 100
type: string
- object:
- enum:
- - enrollment-identity-bulk-uploads
- example: enrollment-identity-bulk-uploads
+ x-nullable: true
+ custom_fields:
+ additionalProperties:
+ type: string
+ description: Account's custom properties as key-value pairs.
+ maxItems: 10
+ type: object
+ x-nullable: true
+ customer_number:
+ description: Customer number of the customer. An administrator can set this
+ property on tenant accounts only.
type: string
- processed_count:
- description: The number of enrollment identities processed until now.
- example: 0
- type: integer
- status:
- default: new
- description: The state of the process is 'new' at the time of creation. If
- creation is still in progress, the state shows as 'processing'. When the
- request is fully processed, the state changes to 'completed'.
- enum:
- - new
- - processing
- - completed
- example: new
- total_count:
- description: Total number of enrollment identities found in the input CSV.
- example: 10
- type: integer
- required:
- - object
- - id
- - etag
- - created_at
- - account_id
- - status
- - total_count
- - processed_count
- - errors_count
- - completet_at
- - full_report_file
- - errors_report_file
- type: object
- CampaignDeviceMetadata:
- properties:
- campaign:
- description: The device's campaign ID
- example: 015bf72fccda00000000000100100280
+ x-nullable: true
+ display_name:
+ description: The display name for the tenant account.
+ example: ARM
+ maxLength: 100
type: string
- created_at:
- description: The time the campaign was created
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
+ x-nullable: true
+ email:
+ description: The company email address for this account. Required for commercial
+ accounts only.
+ example: info@arm.com
+ pattern: ^(?=.{3,254}$).+\@.+
type: string
- deployment_state:
- description: The state of the update campaign on the device
- enum:
- - pending
- - updated_connector_channel
- - failed_connector_channel_update
- - deployed
- - manifestremoved
- - deregistered
+ x-nullable: true
+ end_market:
+ description: The end market for this account.
+ example: IT
+ maxLength: 100
type: string
- description:
- description: Description
- example: ''
- maxLength: 2000
+ x-nullable: true
+ expiration_warning_threshold:
+ description: Indicates how many days before account expiration a notification
+ email is sent.
+ maximum: 180
+ minimum: 1
+ type: integer
+ x-nullable: true
+ idle_timeout:
+ description: The reference token expiration time in minutes for this account.
+ Between 1 and 120 minutes.
+ maximum: 120
+ minimum: 1
+ type: integer
+ x-nullable: true
+ mfa_status:
+ description: The enforcement status of setting up the multi-factor authentication.
+ 'Enforced' means that setting up the MFA is required after login. 'Optional'
+ means that the MFA is not required.
+ enum:
+ - enforced
+ - optional
type: string
- device_id:
- description: The device ID
- example: 015c2fec9bba0000000000010010036f
+ x-nullable: true
+ notification_emails:
+ description: A list of notification email addresses.
+ items:
+ pattern: ^(?=.{3,254}$).+\@.+
+ type: string
+ type: array
+ x-nullable: true
+ password_policy:
+ $ref: '#/definitions/PasswordPolicy'
+ description: Password policy for this account.
+ x-nullable: true
+ password_recovery_expiration:
+ description: Indicates for how many minutes a password recovery email is valid.
+ format: int32
+ maximum: 45
+ minimum: 1
+ type: integer
+ x-nullable: true
+ phone_number:
+ description: The phone number of a representative of the company.
+ example: +44 (1223) 400 400
+ maxLength: 100
type: string
- etag:
- description: API resource entity version
- example: '2017-05-22T12:37:58.753425Z'
+ x-nullable: true
+ postal_code:
+ description: The postal code part of the postal address.
+ example: CB1 9NJ
+ maxLength: 100
type: string
- id:
- description: The metadata record ID
- example: 015c3029f6f7000000000001001000c3
+ x-nullable: true
+ sales_contact:
+ description: Email address of the sales contact.
+ pattern: ^(?=.{3,254}$).+\@.+
type: string
- mechanism:
- description: How the firmware is delivered (connector or direct)
- example: connector
+ x-nullable: true
+ state:
+ description: The state part of the postal address.
+ example: ' '
+ maxLength: 100
type: string
- mechanism_url:
- description: The Device Management Connect URL
- example: ''
+ x-nullable: true
+ type: object
+ ActiveDevicesCounter:
+ description: Active device count is the total number of unique active devices
+ connected to Device Management. A device is considered active when it has registered
+ at least once over a billing period.
+ format: int64
+ minimum: 0
+ type: integer
+ ActiveServicePackage:
+ description: An active service package.
+ properties:
+ created:
+ description: Service package creation time in RFC3339 date-time with millisecond
+ accuracy and UTC time zone.
+ format: date-time
type: string
- name:
- description: The record name
- example: default_object_name
- maxLength: 128
+ expires:
+ description: Service package expiration time in RFC3339 date-time with millisecond
+ accuracy and UTC time zone.
+ format: date-time
type: string
- object:
- description: 'The entity name: always ''update-campaign-device-metadata'''
- example: update-campaign-device-metadata
+ firmware_update_count:
+ description: Size of firmware update quota of this service package.
+ format: int32
+ type: integer
+ grace_period:
+ description: Indicates whether the service package is in its grace period.
+ type: boolean
+ id:
+ description: ID of this service package.
type: string
- updated_at:
- description: 'The record was modified in the database format: date-time'
- example: '2017-05-22T12:37:58.776736Z'
+ modified:
+ description: Service package latest modified time in RFC3339 date-time with
+ millisecond accuracy and UTC time zone.
format: date-time
type: string
- type: object
- CampaignDeviceMetadataPage:
- properties:
- after:
- description: The entity ID to fetch after the given one
- example: 'null'
- type: string
- data:
- description: A list of entities
- items:
- $ref: '#/definitions/CampaignDeviceMetadata'
- type: array
- has_more:
- description: A flag indicating whether there are more results
- example: 'false'
- type: boolean
- limit:
- description: How many objects to retrieve in the page. The minimum limit is
- 2 and the maximum is 1000. Limit values outside of this range are set to
- the closest limit.
- example: '50'
- maximum: 1000
- minimum: 2
- type: integer
- object:
- description: 'The entity name: always ''list'''
- example: list
+ next_id:
+ description: Next service package ID if this service package has a pending
+ renewal, or null.
type: string
- order:
- description: 'The order of the records to return. Acceptable values: ASC,
- DESC. Default: ASC'
- enum:
- - ASC
- - DESC
- example: ASC
+ previous_id:
+ description: Previous service package ID or null.
type: string
- total_count:
- description: The total number or records, if requested. It may be returned
- also for small lists.
- example: '1'
- type: integer
- type: object
- CampaignMetrics:
- properties:
- created_at:
- description: The time the metrics were created.
- example: '2017-05-22T12:37:55.576563Z'
+ start_time:
+ description: Service package start time in RFC3339 date-time with millisecond
+ accuracy and UTC time zone.
format: date-time
type: string
- failed_count:
- description: Running total of devices that could not be updated.
- example: '0'
- format: int32
- type: integer
- object:
- description: 'Entity name: always ''update-campaign-metrics'''
- example: update-campaign-metrics
- type: string
- pending_count:
- description: Running total of devices that have yet to receive an update or
- are applying an update.
- example: '5'
- format: int32
- type: integer
- skipped_count:
- description: Running total of devices that were skipped.
- example: '5'
- format: int32
- type: integer
- success_count:
- description: Running total of successfully updated devices.
- example: '90'
- format: int32
- type: integer
- total_count:
- description: Number of devices in the campaign.
- example: '100'
- format: int32
- type: integer
+ required:
+ - id
+ - created
+ - modified
+ - start_time
+ - expires
+ - firmware_update_count
+ - grace_period
type: object
- CertificateEnrollment:
+ ActiveSession:
+ description: Represents an active user session.
properties:
- certificate_name:
- description: The certificate name.
- example: customer.dlms
- maxLength: 50
+ account_id:
+ description: The UUID of the account.
+ example: 01619571e2e90242ac12000600000000
+ pattern: '[a-f0-9]{32}'
type: string
created_at:
description: Creation UTC time RFC3339.
- example: '2017-01-01T00:00:00Z'
+ example: '2018-02-13T09:35:20Z'
format: date-time
type: string
- device_id:
- description: The device ID.
- example: 01625daa23230a580a0100bd00000000
+ ip_address:
+ description: IP address of the client.
+ example: 127.0.0.1
type: string
- enroll_result:
- description: The result of certificate enrollment request.
- enum:
- - success
- - failure
- example: success
+ login_time:
+ description: The login time of the user.
+ example: '2018-02-14T17:52:07Z'
+ format: date-time
type: string
- enroll_result_detail:
- description: Additional information in case of failure.
- example: The device is currently processing too many certificate renewals.
+ object:
+ description: 'Entity name: always ''user-session'''
+ enum:
+ - user-session
type: string
- enroll_status:
- description: The status of certificate enrollment request.
+ reference_token:
+ description: The reference token.
+ example: rt_CI6+5hS8p9DrCmkRyS6u4doUdiXr71dX7MqD+g0327hYQthEkYTxMMnCwHyf1rDdk
+ type: string
+ user_agent:
+ description: User Agent header from the login request.
+ example: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36
+ (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36
+ type: string
+ required:
+ - account_id
+ - ip_address
+ - login_time
+ - object
+ - reference_token
+ - user_agent
+ type: object
+ AggregatedQuotaUsageReport:
+ description: Aggregated quota usage entry.
+ properties:
+ account_id:
+ type: string
+ amount:
+ description: Amount of quota usage entry. Negative if quota consumption.
+ format: int64
+ type: integer
+ campaign_name:
+ description: 'Campaign name of quota usage entry.
+
+ Null if quota usage entry type is not `reservation` or `reservation release`.'
+ type: string
+ time:
+ description: Added time of quota usage entry in RFC3339 date-time with millisecond
+ accuracy and UTC time zone.
+ format: date-time
+ type: string
+ type:
+ description: Type of quota usage entry.
enum:
- - new
- - completed
+ - reservation
+ - reservation_release
+ - reservation_termination
+ - package_renewal
+ - package_creation
+ - package_termination
+ - package_tokens_edit
+ type: string
+ required:
+ - account_id
+ - amount
+ - type
+ - time
+ type: object
+ AllServerCredentialsResponseData:
+ properties:
+ bootstrap:
+ $ref: '#/definitions/CredentialsResponseData'
+ lwm2m:
+ $ref: '#/definitions/CredentialsResponseData'
+ type: object
+ ApiKeyInfoReq:
+ description: Represents an API key in requests towards Device Management.
+ properties:
+ groups:
+ description: 'A list of group IDs this API key belongs to.
+
+ Adding an API key to the ''Administrators'' group is restricted to administrators.'
+ items:
+ type: string
+ type: array
+ name:
+ description: The display name for the API key.
+ maxLength: 100
+ type: string
+ owner:
+ description: The owner of this API key. Only an administrator can set the
+ owner of an API key.
+ type: string
+ status:
+ description: The status of the API key. Only an administrator can set the
+ status of an API key.
+ enum:
+ - ACTIVE
+ - INACTIVE
+ type: string
+ required:
+ - name
+ type: object
+ ApiKeyInfoResp:
+ description: Represents an API key in Device Management.
+ properties:
+ account_id:
+ description: The ID of the account.
+ example: 01619571e2e90242ac12000600000000
+ pattern: '[a-f0-9]{32}'
type: string
+ created_at:
+ description: Creation UTC time RFC3339.
+ example: '2018-02-13T09:35:20Z'
+ format: date-time
+ type: string
+ creation_time:
+ description: The timestamp of the API key creation in the storage, in milliseconds.
+ example: 1518630727683
+ format: int64
+ type: integer
etag:
- description: Entity instance signature.
+ description: API resource entity version.
example: '1'
type: string
+ groups:
+ description: A list of group IDs this API key belongs to.
+ items:
+ type: string
+ type: array
id:
- description: The certificate enrollment ID.
- example: 01612df56f3b0a580a010fc700000000
+ description: The ID of the API key.
+ example: 01619571f7020242ac12000600000000
+ pattern: '[a-f0-9]{32}'
+ type: string
+ key:
+ description: The API key.
+ example: ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000
+ type: string
+ last_login_time:
+ description: The timestamp of the latest API key usage, in milliseconds.
+ example: 1518630727688
+ format: int64
+ type: integer
+ name:
+ description: The display name for the API key.
+ example: API key gorgon
+ maxLength: 100
type: string
object:
+ description: 'Entity name: always ''api-key'''
enum:
- - certificate-enrollment
+ - api-key
+ type: string
+ owner:
+ description: The owner of this API key, who is the creator by default.
+ example: 01619571e2e89242ac12000600000000
+ pattern: '[a-f0-9]{32}'
+ type: string
+ status:
+ description: The status of the API key.
+ enum:
+ - ACTIVE
+ - INACTIVE
+ example: ACTIVE
type: string
updated_at:
- description: Update UTC time RFC3339.
- example: '2017-01-01T00:00:00Z'
+ description: Last update UTC time RFC3339.
+ example: '2018-02-14T15:24:14Z'
format: date-time
type: string
required:
- - created_at
- etag
- id
- - device_id
- - certificate_name
+ - key
+ - name
+ - object
type: object
- CertificateEnrollmentListResponse:
+ ApiKeyInfoRespList:
properties:
after:
- description: The entity ID to fetch after the given one.
- example: 01625daa23230a580a0100bd00000000
+ description: The entity ID to retrieve after the given one.
+ example: 01619571f3c00242ac12000600000000
+ pattern: '[a-f0-9]{32}'
type: string
data:
- description: List of certificate enrollments.
+ description: A list of entities.
items:
- $ref: '#/definitions/CertificateEnrollment'
+ $ref: '#/definitions/ApiKeyInfoResp'
type: array
has_more:
description: Flag indicating whether there are more results.
+ example: false
type: boolean
limit:
- description: The number of results to return.
+ description: The number of results to return, or equal to `total_count`.
+ example: 50
format: int32
type: integer
object:
- description: Describes the type of objects in the list.
+ description: 'Entity name: always `list`.'
enum:
- list
type: string
order:
- description: 'Record order based on creation time. Acceptable values: ASC,
- DESC. Default: ASC.'
+ description: 'The order of the records to return based on creation time. Available
+ values: ASC, DESC; by default ASC.'
enum:
- ASC
- DESC
type: string
total_count:
- description: The total number of records.
+ description: The total number of records, if requested.
+ example: 20
format: int32
type: integer
+ required:
+ - data
+ - has_more
+ - limit
+ - object
+ - total_count
type: object
- CertificateGenerationReq:
- description: Generate a new service provider certificate.
+ ApiKeyUpdateReq:
+ description: Represents an API key in requests towards Device Management.
properties:
- algorithm:
- description: The algorithm and its key size used for generating the certificate.
- Defaults to RSA2048.
+ groups:
+ description: A list of group IDs this API key belongs to. Only an administrator
+ can update the group membership of an API key.
+ items:
+ type: string
+ type: array
+ name:
+ description: The display name for the API key.
+ maxLength: 100
+ type: string
+ owner:
+ description: The owner of this API key. Only an administrator can update the
+ owner of an API key.
+ type: string
+ status:
+ description: The status of the API key. Only the owner of the API key or an
+ administrator can update the status of an API key.
enum:
- - RSA2048
- - RSA3072
- - EC224
- - EC256
- - EC384
- - EC521
- - ECDSA224
- - ECDSA256
- - ECDSA384
- - ECDSA521
+ - ACTIVE
+ - INACTIVE
type: string
- validity:
- description: Validity for the certificate in days.
- format: int32
- type: integer
type: object
- CertificateIssuerConfigListResponse:
+ Application:
+ description: Represents an application in Device Management.
properties:
- after: &id001
- description: An offset token for current page.
- example: '01631667477600000000000100100374'
+ account_id:
+ description: The ID of the account.
+ example: 01619571e2e90242ac12000600000000
+ pattern: '[a-f0-9]{32}'
+ readOnly: true
type: string
- data:
- description: List of certificate issuers.
+ created_at:
+ description: Creation UTC time RFC3339.
+ example: '2020-02-18T09:16:40Z'
+ format: date-time
+ readOnly: true
+ type: string
+ description:
+ description: The description of the application.
+ example: Application to control the warp drive
+ maxLength: 500
+ type: string
+ etag:
+ description: API resource entity version.
+ example: '1'
+ readOnly: true
+ type: string
+ groups:
+ description: A list of group IDs this application belongs to.
items:
- $ref: '#/definitions/CertificateIssuerConfigResponse'
+ example: 01705c6383f6c85b76f92f4e00000000
+ type: string
type: array
- has_more: &id002
- description: Are there more results available.
- example: false
- type: boolean
- limit: &id003
- description: How many objects to retrieve in the page. The minimum limit is
- 2 and the maximum is 1000. Limit values outside of this range are set to
- the closest limit.
- example: 50
- maximum: 1000
- minimum: 2
- type: integer
- object: &id004
- description: The type of this API object is a `list`.
- example: list
- type: string
- order: &id005
- description: The creation time based order of the entries.
- example: DESC
- type: string
- total_count: &id006
- example: 1
- format: integer
- type: integer
- type: object
- CertificateIssuerConfigRequest:
- properties:
- certificate_issuer_id:
- description: 'Certificate issuer ID.
-
- For LwM2M, may be null if Device Management internal certificate issuer
- is used.'
- example: 01648415a2a30242ac18000500000000
- type: string
- x-nullable: true
- type: object
- CertificateIssuerConfigResponse:
- properties:
- certificate_issuer_id:
- description: 'The ID of the certificate issuer.
-
- Null if Device Management internal HSM is used.
-
- '
- example: 01648415a2a30242ac18000500000000
+ id:
+ description: The ID of the application.
+ example: 01619571f7020242ac12000600000000
+ pattern: '[a-f0-9]{32}'
+ readOnly: true
type: string
- x-nullable: true
- created_at:
- description: Created UTC time RFC3339.
- example: '2017-01-01T00:00:00Z'
+ last_used_at:
+ description: The time of the latest application usage.
+ example: '2020-02-14T15:24:14Z'
format: date-time
+ readOnly: true
type: string
- etag:
- description: Entity instance signature.
- example: '1'
- type: string
- id:
- description: 'The ID of the certificate issuer configuration.
-
- '
- example: 01648415a2a30242ac18000500000000
+ name:
+ description: The display name for the application.
+ example: Application warp
+ maxLength: 100
type: string
- is_custom:
- example: true
- type: boolean
object:
+ description: 'Entity name: always ''application'''
enum:
- - certificate-issuer-configuration
+ - application
+ readOnly: true
type: string
- reference:
- description: The certificate name to which the certificate issuer configuration
- applies.
- example: customer.dlms
+ status:
+ description: The status of the application. When admin sets the application
+ as inactive all related data and configurations are cleared from the system.
+ If application is activated again, client must open new channels and set
+ new subscriptions to start receiving events again.
+ enum:
+ - ACTIVE
+ - INACTIVE
+ example: ACTIVE
type: string
updated_at:
- description: Updated UTC time RFC3339.
- example: '2017-02-01T00:00:00Z'
+ description: Last update UTC time RFC3339.
+ example: '2020-02-19T11:54:32Z'
format: date-time
+ readOnly: true
type: string
+ required:
+ - name
type: object
- CertificateIssuerInfo:
+ ApplicationList:
properties:
- created_at:
- description: Creation UTC time RFC3339.
- example: '2017-01-01T00:00:00Z'
- format: date-time
- type: string
- description:
- description: General description for the certificate issuer.
- example: GlobalSign sample issuer
- maxLength: 100
- type: string
- x-nullable: true
- etag:
- description: Entity instance signature.
- example: '1'
- type: string
- id:
- description: The ID of the certificate issuer.
- example: 01234567890ABCDEF01234567890ABCDEF
+ after:
+ description: The entity ID to retrieve after the given one.
+ example: 01619571f3c00242ac12000600000000
+ pattern: '[a-f0-9]{32}'
type: string
- issuer_attributes:
- additionalProperties: &id007
- type: string
- description: 'General attributes for connecting the certificate issuer.
-
- When the issuer_type is GLOBAL_SIGN, the value shall be empty.
-
- When the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes.
-
- '
- example: &id008 {}
- type: object
- issuer_type:
- description: "The type of the certificate issuer.\n- GLOBAL_SIGN:\n Certificates\
- \ are issued by GlobalSign service. The users must provide their own GlobalSign\
- \ account credentials.\n- CFSSL_AUTH:\n Certificates are issued by CFSSL\
- \ authenticated signing service.\n The users must provide their own CFSSL\
- \ host_url and credentials.\n"
+ data:
+ description: A list of entities.
+ items:
+ $ref: '#/definitions/Application'
+ type: array
+ has_more:
+ description: Flag indicating whether there are more results.
+ example: false
+ type: boolean
+ limit:
+ description: The number of results to return, or equal to `total_count`.
+ example: 50
+ format: int32
+ type: integer
+ object:
+ description: 'Entity name: always `list`.'
enum:
- - GLOBAL_SIGN
- - CFSSL_AUTH
- example: GLOBAL_SIGN
- type: string
- name:
- description: Certificate issuer name, unique per account.
- example: GS Issuer
- maxLength: 50
+ - list
type: string
- object:
+ order:
+ description: 'The order of the records to return based on creation time. Available
+ values: ASC, DESC; by default ASC.'
enum:
- - certificate-issuer
+ - ASC
+ - DESC
type: string
+ total_count:
+ description: The total number of records, if requested.
+ example: 20
+ format: int32
+ type: integer
required:
- - issuer_type
- type: object
- CertificateIssuerInfoListResponse:
- properties:
- after: *id001
- data:
- description: List of certificate issuers.
- items:
- $ref: '#/definitions/CertificateIssuerInfo'
- type: array
- has_more: *id002
- limit: *id003
- object: *id004
- order: *id005
- total_count: *id006
+ - data
+ - has_more
+ - limit
+ - object
+ - total_count
type: object
- CertificateIssuerRequest:
- example:
- description: Sample GlobalSign certificate issuer.
- issuer_attributes: null
- issuer_credentials:
- api_key: e510e289e6cd8947
- api_secret: a477a8393d17a55ecb2ba6a61f58feb84770b621
- client_certificate: '"-----BEGIN CERTIFICATE-----MIIC7zCCAdegAwIBAgIJANTlU4x5S74VMA0GCSqGSIb3DQEBCwUAMA4xDDAKBgNVBAoMA0FybTAeFw0xODAzMTExMzE5MTFaFw0xOTAzMTExMzE5MTFaMA4xDDAKBgNVBAoMA0FybTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJWLStsVMJULZtxdieK9qocM4ymDXMaAusmd9TZLzBgznKQe/CW2yxyA8C8K5e6MmvMYGeKDd4Lkw/ezOj2OsUj2xzNIltUxpGi/GhsNYiN/khNJa/Y1SllLoihJAPm/xbMywOBRu/dM88PiJsNZccOk0I8DYvvyAs9wCTkbKLnfHygl98DCRqXw7nBCplU6F03qpUd/4BUtMtugyqt7yboGH+4YewnUh4Yh4QNOJIvE93Ob++eKjO3pIOYEhQmUxzOLaLNuWXlv2l1WuN281hUP4XBcV8mCzRQfTBBDYTWt+5BEWoLOUkXjW0Um6EAaN3usph1IKDEH6Ia5VHP4Pj0CAwEAAaNQME4wHQYDVR0OBBYEFLsfYZxFcQTjPJKYMjHI2In316fmMB8GA1UdIwQYMBaAFLsfYZxFcQTjPJKYMjHI2In316fmMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFl08GFsIkkUs6M7QgCWmsnwP6PtD8V87wM1GAqQQlOOeztaeRR2TEOeYiKRZQugYszJ/FVfVp4ggqzepJMn6UZ42j5nmSJs+6t79i23QAzX1zNQ354lr/t7kt3fMdhuL3AP0oZGzdy+EnXXiWeAD22UwzvVmLt38ypJIl+pmTsx9jJy4PN7yoRgtP9k+50m3X6oDxVruehC/JPSeTvEhqyLW3fLcG6IoJMX3vIwfO9uXbFJumTowQeViNJJ9duWvD2KBXn/muOOBe97TPuvAms1gOtMmmPT9/jpo9b4+NsfFiAN6bMici81aIKZzLC+lLGOUmR2fFJyM5OsVLxKsko=-----END
- CERTIFICATE-----"
-
- '
- passphrase: helloworld
- private_key: '"-----BEGIN RSA PRIVATE KEY-----\nProc-Type: 4,ENCRYPTED\nDEK-Info:
- DES-EDE3-CBC,CCAC26A4133947CB\n\np3KJ4FI3wcz3I0MtiLkrznkjWFvprVmoNywySUGb5IqZViJZqCMEsyU9a9iDsSfP\nZ07cg9GviV21WYIPSxZOQrpy1g1VWILzFnH+J6z8dSH4mxXh0PwdOzYgAeqkrIVM\nJ7KRm6t222dZFjjXK3eEcLmBLGo29XwVJxKHx+l4++gU1LZmeHZR5M8fJ4jejUly\n7sqzPlmRF0N3I4lwKVj+PfQTVz43QoCnpxOjuSEL4liBrc2agY2xH1O0PFyHimz9\n3XM9HR/iuPHW0N2D+NPjXlWKacerupH9d4i9IYIagzB+HTgej8limdo03GmmxcZ6\nYNa58n5yQSaqu0TPRU9DsrKeGjadHTlZQGdzfq1SWsROCnHLrXFKE2ozIG3+hxA5\nujBF/QWpX5+inXUwDJhBxp8isHbPEnBEUUd6ZRzCTjvN0jaUti5B9yFhO2G6mbE8\nCvhyzQK8oJqsjZXnlcpPf95LP+9XbcCDjLSIaWJstzXO9tPiv6+x1MVWmivtRHcC\nSTzpx8jAGCiG6ejLqWB87ZXiZm7ujlCBheHSf5RHwNHhUvoP2JEYalDDRxjcDMSx\n4uV42Np4yJlIQEDlGHcBlXoL7vEukFpuWgkYdpcZy/Ou9qz8mXrpLcu8C8MhLmSC\nixGoR5iRhV7cxoHLyuCzj87eYEA73Xu238DQorSEEuiVFnLzQ2+PJMs4qoI14q/L\notlBDz+Ko6DrU/EZROYmiqMkLKXR2sx9zNAJwPYRs6nSH08tZ3dwqzZbgtP3Wazi\nhLWHt5/En7wQRA5a+/dDEHXSoLvvSQ9jvhclhWf+eCYuq2eH+g54oyJGRSY+8GV7\nujhLxkzl/3OZdhZPWoz4U13KpbSTcNWu5Y7oGDoabw19UbvqmLf1PJkpDH/tQgzB\nxYtsLBRUcofpYoeIiIxfAA4do5WilJc8xqrGhkE4WcHfY24HXAiOvsjbxV+BRprX\n1jtgJpV/9nJESMap+8PxipGUFRGjB83/uwJaa6mLftEKflX8i4MZ+HnqraXERsqA\nWRUcDHIWmFfpzIB3iNuxawVvPH8NdCSPmQ9qTb8Cozl0AuOK2E9S+ke8oiYQScWR\nLdu+zhej7GjuQ9R+Ub+wPWqvOA5qLXejqnCexVScDUuN+z9JWM3N2FG1MwxhAzhP\ndEfoQHoBn6uyOmrVGP6fosV3chqhPoec42KeOAm1xDvx692isaIy1jPgIyPxeqhm\n2Tw4E+02R7dlP8Ljf7JzfLm4oKpWHWlcHeqg24x6lY/wXU1RBcWaTa0AQUwoGm2m\nIQCPfIqOEv/QC2HpO7SVCYkl65KwR0oTd1AzYxdxEq3xHQbh69EL0FGZPVxVCPI+\nhEAyifKy1/tm3l91Rf/kGpHY7nIQKCXH49tmFwix8gke2nZJmRgX7/zAdMOAKeKH\nAaIl4nQtv14EbaasMgnn9qgaDYnWzaReEob2QlQ/WYlTor61+KFpGtcf9jAkgudT\n2op+4CF7wT2+aTXdtkVWfmv++iB8GnlqZdxLvyG1cTYjjYHVFbMSWQnxzQqiE2ms\nQgp+byjWCumpsWTMdTO+d9NkDOo80vDpaRxEgebmhJ0MbX+eFjBgVg==\n-----END
- RSA PRIVATE KEY-----"'
- issuer_type: GLOBAL_SIGN
- name: GS Issuer
+ ArchiveInfoResponse:
+ description: This object represents the response for the archive info request.
properties:
- description:
- description: General description of the certificate issuer.
- maxLength: 100
+ download_size_bytes:
+ description: The size of the archive file in bytes.
+ example: 2402668
+ type: integer
+ download_url:
+ description: URL to download the Factory Configurator Utility archive.
+ example: https://api.us-east-1.mbedcloud.com/downloads/fcu/factory_configurator_utility.zip
type: string
- x-nullable: true
- issuer_attributes:
- additionalProperties: *id007
- description: 'General attributes for connecting the certificate issuer.
-
- When the issuer_type is GLOBAL_SIGN, the value shall be empty.
-
- When the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes.
-
- '
- example: *id008
- type: object
- issuer_credentials:
- additionalProperties: &id009
- type: string
- description: 'The credentials required for connecting to the certificate issuer.
-
- When the issuer_type is GLOBAL_SIGN, see definition of GlobalSignCredentials.
-
- When the issuer_type is CFSSL_AUTH, see definition of CfsslAuthCredentials.
-
- '
- example: &id010 {}
- type: object
- issuer_type:
- description: "The type of the certificate issuer.\n- GLOBAL_SIGN:\n Certificates\
- \ are issued by GlobalSign service. The users must provide their own GlobalSign\
- \ account credentials.\n- CFSSL_AUTH:\n Certificates are issued by CFSSL\
- \ authenticated signing service.\n The users must provide their own CFSSL\
- \ host_url and credentials.\n"
- enum:
- - GLOBAL_SIGN
- - CFSSL_AUTH
+ license_type:
+ description: The license agreement type required for downloading Factory Configurator
+ Utility.
+ example: fcu
type: string
- name:
- description: Certificate issuer name, unique per account.
- maxLength: 50
+ license_version:
+ description: The license agreement version required for downloading Factory
+ Configurator Utility.
+ example: '1.0'
type: string
- required:
- - name
- - issuer_type
- - issuer_credentials
- type: object
- CertificateIssuerUpdateRequest:
- example:
- description: Sample GlobalSign certificate issuer - updated.
- name: GlobalSign Issuer
- properties:
- description:
- description: General description of the certificate issuer.
- maxLength: 100
+ release_notes_url:
+ description: URL to the Factory Configurator Utility release notes.
+ example: https://api.us-east-1.mbedcloud.com/downloads/fcu/release_notes
type: string
- x-nullable: true
- issuer_attributes:
- additionalProperties: *id007
- description: 'General attributes for connecting the certificate issuer.
-
- When the issuer_type is GLOBAL_SIGN, the value shall be empty.
-
- When the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes.
-
- '
- example: *id008
- type: object
- issuer_credentials:
- additionalProperties: *id009
- description: 'The credentials required for connecting to the certificate issuer.
-
- When the issuer_type is GLOBAL_SIGN, see definition of GlobalSignCredentials.
-
- When the issuer_type is CFSSL_AUTH, see definition of CfsslAuthCredentials.
-
- '
- example: *id010
- type: object
- name:
- description: Certificate issuer name.
- maxLength: 50
+ version:
+ description: The Factory Configurator Utility version.
+ example: 1.2.9.500
type: string
+ required:
+ - download_size_bytes
+ - version
+ - download_url
+ - release_notes_url
type: object
- CertificateIssuerVerifyResponse:
+ AsyncID:
properties:
- message:
- description: 'Provides details in case of failure.
-
- '
- example: message describing the verification failure
+ async-response-id:
+ description: Asynchronous response unique ID.
+ example: 9e3c96b8-c4d7-496a-ab90-cc732b9b560e
type: string
- successful:
- description: 'Indicates whether the certificate issuer was verified successfully.
-
- '
- example: false
- type: boolean
type: object
- CfsslAttributes:
- description: 'Describes the attributes required to connect to the CFSSL server.
-
- '
+ AsyncIDResponse:
properties:
- cfssl_label:
- description: 'The label that is used by CFSSL when creating the certificate.
-
- '
+ ct:
+ description: The content type.
+ example: text/plain
type: string
- cfssl_profile:
- description: 'The profile that is configured on the CFSSL server and is used
- by CFSSL when creating the certificate.
+ error:
+ description: 'An optional error message describing the error. Please refer
+ to status listing above.
'
+ example: TIMEOUT
type: string
- host_url:
- description: 'The URL to connect to the CFSSL server.
-
- '
- type: string
- required:
- - host_url
- type: object
- CfsslAuthCredentials:
- description: 'Describes the credentials required when using CFSSL authenticated
- signing.
-
- '
- properties:
- hmac_hex_key:
- description: 'The key that is used to compute the HMAC of the request using
- the HMAC-SHA-256 algorithm.
-
- Must contain an even number of hexadecimal characters.
-
- '
- example: 0010203ABCD708EF
- maxLength: 64
- pattern: ^([a-fA-F0-9][a-fA-F0-9]){1,32}$
- type: string
- required:
- - hmac_hex_key
- type: object
- ChannelMetadata:
- properties:
- delivery_mechanism:
- description: Channel delivery mechanism.
- enum:
- - CALLBACK
- - LONG_POLLING
- - WEB_SOCKET
- example: CALLBACK
- type: string
- type: object
- CreateCertificateIssuerConfig:
- properties:
- certificate_issuer_id:
- description: 'The ID of the certificate issuer.
-
- '
- example: 01648415a2a30242ac18000500000000
- maxLength: 32
- type: string
- x-nullable: true
- reference:
- description: 'The certificate name, as created in the factory, to which the
- certificate issuer configuration applies.
-
- The following names are reserved and cannot be configured: LwM2M, BOOTSTRAP.
-
- '
- example: customer.dlms
- maxLength: 100
- pattern: (?!mbed\.)[\w-_.]{1,100}
+ id:
+ description: The unique ID of the asynchronous response.
+ example: 9e3c96b8-c4d7-496a-ab90-cc732b9b560e
type: string
- required:
- - reference
- - certificate_issuer_id
- type: object
- CredentialsResponseData:
- properties:
- certificate:
- description: PEM-format X.509 server certificate used to validate the server
- certificate received during the TLS/DTLS handshake.
+ max-age:
+ description: Determines how long this value stays valid in the cache, in seconds.
+ 0 means that the value is not stored in the cache.
+ example: 60
type: string
- url:
- description: Server URI that the client connects to.
+ payload:
+ description: Requested data, base64 encoded.
+ example: My4zMQ==
type: string
+ status:
+ description: "\nStates whether sending a command to the device succeeded or\
+ \ failed.\n\n\n \n \n | Code | \n Description | \n\
+ \
\n \n \n \n | 200 | \n\
+ \ Operation succeeded. The payload contains result of the operation\
+ \ from the device. | \n
\n \n | 400 | \n\
+ \ The device rejected the request, possibly because it does not\
+ \ support the request method.\n See how the supported methods are\n\
+ \ [configured for the device resources](https://www.pelion.com/docs/device-management/current/resources/index.html). | \n\
+ \
\n \n | 404 | \n The device replied\
+ \ that it does not have the requested resource. | \n
\n \n\
+ \ | 412 | \n Precondition failed and the operation\
+ \ was not executed. The device responded with 4.12 CoAP\n response\
+ \ code. The device may reject a subscription request with this response\
+ \ code. | \n
\n \n | 413 | \n Request\
+ \ entity is too large and could not be delivered to the device. | \n \
+ \
\n \n | 415 | \n The device does\
+ \ not support the media type in the request. | \n
\n \n\
+ \ | 429 | \n An expired request was removed from\
+ \ queue (REQUEST_EXPIRED),\n the device requested deregistration (DEVICE_REMOVED_REGISTRATION),\n\
+ \ or the device was suspended (DEVICE_BLOCKED). The request was never\
+ \ delivered to the device. | \n
\n \n | 502 | \n\
+ \ The request to the device failed and the retry count was exceeded.\n\
+ \ The last retry failed to establish TCP or TLS connection to the device. | \n\
+ \
\n \n | 503 | \n The request to\
+ \ the device failed and the retry count was exceeded.\n The last retry\
+ \ failed because the device is currently unavailable (NOT_CONNECTED). | \n\
+ \
\n \n | 504 | \n The request to\
+ \ the device failed and the retry count was exceeded.\n The last retry\
+ \ failed because the device did not respond in time according to the protocol-specific\n\
+ \ retransmission logic (TIMEOUT). | \n
\n \n
\n"
+ example: 200
+ type: integer
type: object
- DenialAttemptsResponse:
+ AudienceItem:
+ description: Audience item, device ID or endpoint name.
+ pattern: ^ep:[a-zA-Z0-9 -]{1,57}$|^id:[0-9a-fA-F]{32}$
+ type: string
+ BadRequestErrorResponse:
+ description: 400 Bad request response.
properties:
- after:
- description: An offset token for current page.
- type: string
- data:
+ code:
+ description: Response code. Always set to 400.
+ enum:
+ - 400
+ type: integer
+ fields:
items:
- $ref: '#/definitions/BlackListedDeviceData'
+ $ref: '#/definitions/BadRequestErrorResponseField'
type: array
- has_more:
- description: Are there more results available.
- example: false
- type: boolean
- limit:
- description: How many objects to retrieve in the page. The minimum limit is
- 2 and the maximum is 1000. Limit values outside of this range are set to
- the closest limit.
- example: 50
- maximum: 1000
- minimum: 2
- type: integer
+ message:
+ description: A human-readable message with detailed info.
+ type: string
object:
- description: The type of this API object is a "list".
- example: list
+ description: Always set to `error`.
+ enum:
+ - error
type: string
- order:
- description: The creation time based order of the entries.
+ request_id:
+ description: Request ID.
+ type: string
+ type:
+ description: Error type. Always set to `validation_error`.
enum:
- - ASC
- - DESC
- example: DESC
+ - validation_error
type: string
- total_count:
- example: 1
- format: integer
- type: integer
required:
- object
- - data
+ - message
+ - request_id
+ - type
+ - code
+ - fields
type: object
- DeveloperCertificateRequestData:
+ BadRequestErrorResponseField:
+ description: Single field that failed validation.
properties:
- description:
- description: Description for the developer certificate. Maximum 500 characters.
- Please see [TrustedCertificateReq](../current/api-references/account-management-api.html#trustedcertificatereq).
- maxLength: 500
+ message:
+ description: A human-readable message with detailed validation error.
type: string
- x-nullable: true
name:
- description: Name of the developer certificate. Must be unique. Maximum 100
- characters. Please see [TrustedCertificateReq](../current/api-references/account-management-api.html#trustedcertificatereq).
- maxLength: 100
+ description: Name of the field that failed validation. If name is set to `body,`
+ then the validation failed on request body.
type: string
required:
- name
+ - message
type: object
- DeveloperCertificateResponseData:
+ BillingReportRawDataResponse:
+ description: The response includes the URL to download raw billing data.
properties:
- account_id:
- description: Account to which the developer certificate belongs.
- type: string
- created_at:
- description: Creation UTC time RFC3339.
- format: date-time
- type: string
- description:
- description: Description for the developer certificate.
- type: string
- x-nullable: true
- developer_certificate:
- description: PEM-format X.509 developer certificate.
- type: string
- developer_private_key:
- description: PEM-format developer private key associated with the certificate.
- type: string
- etag:
- description: API resource entity version.
- type: string
- id:
- description: ID that uniquely identifies the developer certificate.
- type: string
- name:
- description: Name of the developer certificate.
+ filename:
+ description: The filename of the raw billing data file to download. Contains
+ file extensions.
type: string
object:
- description: 'Entity name: always `trusted-cert`.'
+ description: API Resource name.
type: string
- security_file_content:
- description: Content of the `security.c` file flashed to the device to provide
- security credentials.
+ url:
+ description: The URL to download raw billing data.
type: string
+ required:
+ - object
+ - url
+ - filename
type: object
- DeviceBlockCategory:
+ BootstrapRequestsCounter:
+ description: The number of bootstrap requests received from devices.
+ format: int64
+ minimum: 0
+ type: integer
+ BootstrapsCounter:
+ description: The total number of successful bootstrap operations in the requested
+ time.
+ format: int64
+ minimum: 0
+ type: integer
+ BrandingColor:
properties:
- description:
- example: Suspended for maintenance.
+ color:
+ description: The color given as name (purple) or as a hex code.
+ example: '#f3f93e'
type: string
+ x-nullable: true
object:
- description: 'Entity name: always ''device-block-category''.'
- example: device-block-category
+ description: 'Entity name: always ''branding_color'''
+ enum:
+ - branding_color
+ readOnly: true
type: string
reference:
- example: maintenance
+ description: Color name.
+ enum: &id001
+ - error_color
+ - primary
+ - secondary
+ - success_color
+ - warning_color
+ - canvas_background
+ - canvas_background_font_color
+ - workspace_background
+ - workspace_background_font_color
+ - info_color
+ - info_font_color
+ - primary_font_color
+ - secondary_font_color
+ - error_font_color
+ - success_font_color
+ - warning_font_color
type: string
updated_at:
+ description: Last update time in UTC.
+ example: '2018-02-14T15:24:14Z'
format: date-time
+ readOnly: true
type: string
type: object
- DeviceBlockCategoryPage:
+ BrandingColorList:
properties:
after:
- description: An offset token for current page.
+ description: The entity ID to retrieve after the given one.
+ example: 01619571f3c00242ac12000600000000
+ pattern: '[a-f0-9]{32}'
type: string
data:
+ description: A list of entities.
items:
- $ref: '#/definitions/DeviceBlockCategory'
+ $ref: '#/definitions/BrandingColor'
type: array
has_more:
- description: More results are available.
+ description: Flag indicating whether there are more results.
example: false
type: boolean
limit:
- description: How many objects to retrieve in the page (2-1000). Limit values
- outside of this range are set to the closest limit.
+ description: The number of results to return, or equal to `total_count`.
example: 50
- maximum: 1000
- minimum: 2
+ format: int32
type: integer
object:
- description: The type of this API object is 'list'.
- example: list
+ description: 'Entity name: always `list`.'
+ enum:
+ - list
type: string
order:
- description: Order of entries based on creation time.
- example: DESC
+ description: 'The order of the records to return based on creation time. Available
+ values: ASC, DESC; by default ASC.'
+ enum:
+ - ASC
+ - DESC
type: string
total_count:
- example: 1
- format: integer
+ description: The total number of records, if requested.
+ example: 20
+ format: int32
type: integer
+ required:
+ - data
+ - has_more
+ - limit
+ - object
+ - total_count
type: object
- DeviceData:
+ BrandingColorUpdate:
properties:
- account_id:
- description: The ID of the associated account.
- example: '00000000000000000000000000000000'
- type: string
- auto_update:
- description: 'DEPRECATED: Mark this device for automatic firmware update.'
- type: boolean
- bootstrap_expiration_date:
- description: The expiration date of the certificate used to connect to bootstrap
- server.
- format: date
- type: string
- x-nullable: true
- bootstrapped_timestamp:
- description: The timestamp of the device's most recent bootstrap process.
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- ca_id:
- description: The certificate issuer's ID.
- example: '00000000000000000000000000000000'
- maxLength: 500
- type: string
- connector_expiration_date:
- description: The expiration date of the certificate used to connect to LwM2M
- server.
- format: date
+ color:
+ description: The color given as name (purple) or as a hex code.
+ example: '#f3f93e'
type: string
x-nullable: true
- created_at:
- description: The timestamp of when the device was created in the device directory.
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
+ reference:
+ description: Color name.
+ enum: *id001
type: string
- custom_attributes:
- additionalProperties:
- maxLength: 128
- pattern: ^[A-Za-z].*
- type: string
- description: Up to five custom key-value attributes. Note that keys cannot
- begin with a number. Both keys and values are limited to 128 characters.
- Updating this field replaces existing contents.
- example:
- key: value
- maxProperties: 5
- type: object
- deployed_state:
- description: 'DEPRECATED: The state of the device''s deployment.'
+ required:
+ - reference
+ type: object
+ BrandingImage:
+ properties:
+ object:
+ description: 'Entity name: always ''branding_image'''
enum:
- - development
- - production
+ - branding_image
+ readOnly: true
type: string
- deployment:
- description: 'DEPRECATED: The last deployment used on the device.'
- example: ''
+ reference:
+ description: Name of the image.
+ enum: &id026
+ - brand_logo_portrait
+ - brand_logo_square
+ - brand_logo_landscape
+ - brand_logo_email
+ - desktop_background_landscape
+ - desktop_background_square
+ - desktop_background_portrait
+ - carousel_image_portrait_0
+ - carousel_image_portrait_1
+ - carousel_image_portrait_2
+ - carousel_image_portrait_3
+ - carousel_image_portrait_4
+ - carousel_image_portrait_5
+ - carousel_image_portrait_6
+ - carousel_image_portrait_7
+ - carousel_image_portrait_8
+ - carousel_image_portrait_9
+ - carousel_image_square_0
+ - carousel_image_square_1
+ - carousel_image_square_2
+ - carousel_image_square_3
+ - carousel_image_square_4
+ - carousel_image_square_5
+ - carousel_image_square_6
+ - carousel_image_square_7
+ - carousel_image_square_8
+ - carousel_image_square_9
+ - carousel_image_landscape_0
+ - carousel_image_landscape_1
+ - carousel_image_landscape_2
+ - carousel_image_landscape_3
+ - carousel_image_landscape_4
+ - carousel_image_landscape_5
+ - carousel_image_landscape_6
+ - carousel_image_landscape_7
+ - carousel_image_landscape_8
+ - carousel_image_landscape_9
type: string
- description:
- description: The description of the device.
- example: description
- maxLength: 2000
+ static_uri:
+ description: The static link to the image.
+ example: https://static.mbed.com/123456789.jpg
+ format: uri
+ readOnly: true
type: string
- device_class:
- description: An ID representing the model and hardware revision of the device.
- example: ''
- maxLength: 32
+ updated_at:
+ description: Last update time in UTC.
+ example: '2018-02-14T15:24:14Z'
+ format: date-time
+ readOnly: true
type: string
- device_execution_mode: &id011
- default: 0
- description: "The execution mode from the certificate of the device. Defaults\
- \ to inheriting from host_gateway device.\nPermitted values:\n - 0 - Unspecified\
- \ execution mode (default if host_gateway invalid or not set). The device\
- \ firmware uses a certificate that is not identified as a developer or production\
- \ certificate.\n - 1 - Development device. The device firmware uses a developer\
- \ certificate to communicate with Device Management.\n - 5 - Production\
- \ device. The device firmware uses a factory-generated certificate to communicate\
- \ with Device Management."
- enum:
- - 0
- - 1
- - 5
- example: 0
+ type: object
+ BrandingImageList:
+ properties:
+ after:
+ description: The entity ID to retrieve after the given one.
+ example: 01619571f3c00242ac12000600000000
+ pattern: '[a-f0-9]{32}'
+ type: string
+ data:
+ description: A list of entities.
+ items:
+ $ref: '#/definitions/BrandingImage'
+ type: array
+ has_more:
+ description: Flag indicating whether there are more results.
+ example: false
+ type: boolean
+ limit:
+ description: The number of results to return, or equal to `total_count`.
+ example: 50
+ format: int32
type: integer
- device_key:
- description: The fingerprint of the device certificate.
- example: 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
- maxLength: 512
+ object:
+ description: 'Entity name: always `list`.'
+ enum:
+ - list
type: string
- endpoint_name:
- description: The endpoint name given to the device.
- example: 00000000-0000-0000-0000-000000000000
- readOnly: true
+ order:
+ description: 'The order of the records to return based on creation time. Available
+ values: ASC, DESC; by default ASC.'
+ enum:
+ - ASC
+ - DESC
type: string
- endpoint_type:
- description: The endpoint type of the device. For example, the device is a
- gateway.
- example: ''
- maxLength: 64
+ total_count:
+ description: The total number of records, if requested.
+ example: 20
+ format: int32
+ type: integer
+ required:
+ - data
+ - has_more
+ - limit
+ - object
+ - total_count
+ type: object
+ BulkResponse:
+ properties:
+ account_id:
+ description: ID
+ example: 00005a4e027f0a580a01081c00000000
type: string
- enrolment_list_timestamp:
- description: The claim date/time.
- example: '2017-05-22T12:37:55.576563Z'
+ completed_at:
+ description: 'The time the bulk creation task was completed.
+
+ Null when creating bulk upload or delete.'
format: date-time
type: string
- etag:
- description: The entity instance signature.
- example: '2017-05-22T12:37:55.576563Z'
+ created_at:
+ description: The time of receiving the bulk creation task.
format: date-time
type: string
- firmware_checksum:
- description: The SHA256 checksum of the current firmware image.
- example: '0000000000000000000000000000000000000000000000000000000000000000'
+ errors_count:
+ description: The number of enrollment identities with failed processing.
+ example: 0
+ type: integer
+ errors_report_file:
+ description: 'Link to error report file.
+
+ Null when creating bulk upload or delete.'
+ example: https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/errors_report.csv
type: string
- groups:
- description: An array containing an ID of each group this device belongs to.
- items:
- example: '00000000000000000000000000000000'
- type: string
- type: array
- host_gateway:
- description: The ID of the host gateway, if appropriate.
- example: ''
+ x-nullable: true
+ etag:
+ description: etag
+ example: '1'
+ pattern: '[A-Za-z0-9]{0,256}'
+ type: string
+ full_report_file:
+ description: 'Link to full report file.
+
+ Null when creating bulk upload or delete.'
+ example: https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/full_report.csv
type: string
+ x-nullable: true
id:
- description: The ID of the device. The device ID is used across all Device
- Management APIs.
- example: '00000000000000000000000000000000'
+ description: Bulk ID
+ pattern: ^[A-Za-z0-9]{32}
type: string
- issuer_fingerprint: &id012
- description: SHA256 fingerprint of the certificate used to validate the signature
- of the device certificate.
- example: C42EDEFC75871E4CE2146FCDA67D03DDA05CC26FDF93B17B55F42C1EADFDC322
- pattern: '[A-Fa-f0-9]{64}'
+ object:
+ enum:
+ - enrollment-identity-bulk-uploads
+ example: enrollment-identity-bulk-uploads
type: string
- x-nullable: true
- last_operator_suspended_category:
- description: The reference of the block category.
- example: maintenance
- pattern: '[a-f0-9_]{32}'
+ processed_count:
+ description: The number of enrollment identities processed until now.
+ example: 0
+ type: integer
+ status:
+ default: new
+ description: The state of the process is 'new' at the time of creation. If
+ creation is still in progress, the state shows as 'processing'. When the
+ request is fully processed, the state changes to 'completed'.
+ enum:
+ - new
+ - processing
+ - completed
+ example: new
+ total_count:
+ description: Total number of enrollment identities found in the input CSV.
+ example: 10
+ type: integer
+ required:
+ - object
+ - id
+ - etag
+ - created_at
+ - account_id
+ - status
+ - total_count
+ - processed_count
+ - errors_count
+ - completet_at
+ - full_report_file
+ - errors_report_file
+ type: object
+ BusinessModel:
+ default: active_device_business_model
+ description: Business model for this account. Manageable by the root admin only.
+ enum:
+ - active_device_business_model
+ - api_calls_1_business_model
+ example: api_calls_1_business_model
+ type: string
+ BusinessModelHistory:
+ properties:
+ business_model:
+ $ref: '#/definitions/BusinessModel'
+ updated_at:
+ description: Last update UTC time RFC3339.
+ example: '2018-02-14T15:24:14Z'
+ format: date-time
type: string
- last_operator_suspended_description:
- description: The most recent description why the device was suspended or returned
- to service.
- example: Suspended for maintenance.
- maxLength: 2000
+ type: object
+ CampaignDeviceMetadata:
+ properties:
+ campaign:
+ description: The device's campaign ID.
+ example: 015bf72fccda00000000000100100280
type: string
- last_operator_suspended_updated_at:
- description: The timestamp of the most recent suspension activity.
+ created_at: &id014
+ description: The time the entity was created.
example: '2017-05-22T12:37:55.576563Z'
format: date-time
type: string
- last_system_suspended_category:
- description: The reference of the block category.
- example: maintenance
- pattern: '[a-f0-9_]{32}'
+ deployment_state:
+ description: The state of the update campaign on the device.
+ enum:
+ - pending
+ - updated_connector_channel
+ - failed_connector_channel_update
+ - deployed
+ - manifestremoved
+ - deregistered
type: string
- last_system_suspended_description:
- description: The most recent description of why the device was blocked or
- unblocked by the system.
- example: A certificate in the device's certificate chain was blacklisted by
- the system.
+ description:
+ description: Description.
+ example: a description
maxLength: 2000
type: string
- last_system_suspended_updated_at:
- description: The timestamp of the most recent system block activity.
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- lifecycle_status:
- description: The lifecycle status of the device.
- enum:
- - enabled
- - blocked
- example: enabled
+ device_id:
+ description: The device ID.
+ example: 015c2fec9bba0000000000010010036f
type: string
- manifest:
- description: 'DEPRECATED: The URL for the current device manifest.'
- example: ''
+ etag: &id015
+ description: API resource entity version.
+ example: '2017-05-22T12:37:58.753425Z'
type: string
- manifest_timestamp:
- description: The timestamp of the current manifest version.
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
+ id:
+ description: The metadata record ID.
+ example: 015c3029f6f7000000000001001000c3
+ pattern: '[A-Fa-f0-9]{32}'
type: string
mechanism:
- description: The ID of the channel used to communicate with the device.
- enum:
- - connector
- - direct
+ description: How the firmware is delivered (connector or direct).
+ example: connector
type: string
mechanism_url:
- description: The address of the connector to use.
- example: ''
+ description: The Device Management Connect URL.
type: string
name:
- description: The name of the device.
- example: 00000000-0000-0000-0000-000000000000
+ default: default_object_name
+ description: The record name.
maxLength: 128
type: string
object:
- description: The API resource entity.
- example: device
+ description: 'The entity name: always ''update-campaign-device-metadata''.'
+ example: update-campaign-device-metadata
type: string
- operator_suspended:
- description: Is the device suspended by the operator?
+ updated_at: &id016
+ description: The time the entity was updated.
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ type: object
+ CampaignDeviceMetadataPage:
+ properties:
+ after:
+ description: The entity ID to fetch after the given one.
+ example: 'null'
+ type: string
+ data:
+ description: A list of entities.
+ items:
+ $ref: '#/definitions/CampaignDeviceMetadata'
+ type: array
+ has_more:
+ description: A flag indicating whether there are more results.
+ example: 'false'
type: boolean
- serial_number:
- description: The serial number of the device.
- example: 00000000-0000-0000-0000-000000000000
+ limit:
+ description: How many objects to retrieve in the page. The minimum limit is
+ 2 and the maximum is 1000. Limit values outside of this range are set to
+ the closest limit.
+ example: '50'
+ maximum: 1000
+ minimum: 2
+ type: integer
+ object:
+ description: 'The entity name: always ''list''.'
+ example: list
type: string
- state:
- description: The current state of the device.
+ order:
+ description: 'The order of the records to return. Acceptable values: ASC,
+ DESC. Default: ASC.'
enum:
- - unenrolled
- - cloud_enrolling
- - bootstrapped
- - registered
- - deregistered
+ - ASC
+ - DESC
+ example: ASC
type: string
- system_suspended:
- description: Is the device suspended by the system?
- type: boolean
- updated_at:
- description: The time the object was updated.
+ total_count:
+ description: The total number or records, if requested. It may be returned
+ also for small lists.
+ example: '1'
+ type: integer
+ type: object
+ CampaignMetrics:
+ properties:
+ created_at:
+ description: The time the metrics were created.
example: '2017-05-22T12:37:55.576563Z'
format: date-time
type: string
- vendor_id:
- description: The device vendor ID.
- example: 00000000-0000-0000-0000-000000000000
+ failed_count:
+ description: Running total of devices that could not be updated.
+ example: '0'
+ format: int32
+ type: integer
+ object:
+ description: 'Entity name: always ''update-campaign-metrics''.'
+ example: update-campaign-metrics
type: string
- DeviceDataPostRequest:
+ pending_count:
+ description: Running total of devices that have yet to receive an update or
+ are applying an update.
+ example: '5'
+ format: int32
+ type: integer
+ skipped_count:
+ description: Running total of devices that were skipped.
+ example: '5'
+ format: int32
+ type: integer
+ success_count:
+ description: Running total of successfully updated devices.
+ example: '90'
+ format: int32
+ type: integer
+ total_count:
+ description: Number of devices in the campaign.
+ example: '100'
+ format: int32
+ type: integer
+ type: object
+ CertificateEnrollment:
properties:
- auto_update:
- description: 'DEPRECATED: Mark this device for automatic firmware update.'
- type: boolean
- bootstrap_expiration_date:
- description: The expiration date of the certificate used to connect to bootstrap
- server.
- example: '2017-05-22'
- format: date
- type: string
- x-nullable: true
- ca_id:
- description: The certificate issuer's ID.
- example: '00000000000000000000000000000000'
- maxLength: 500
+ certificate_name:
+ description: The certificate name.
+ example: customer.dlms
+ maxLength: 50
type: string
- connector_expiration_date:
- description: The expiration date of the certificate used to connect to the
- LwM2M server.
- example: '2017-05-22'
- format: date
+ created_at:
+ description: Creation UTC time RFC3339.
+ example: '2017-01-01T00:00:00Z'
+ format: date-time
type: string
- x-nullable: true
- custom_attributes:
- additionalProperties:
- maxLength: 128
- pattern: ^[A-Za-z].*
- type: string
- description: Up to five custom key-value attributes. Note that keys cannot
- begin with a number. Both keys and values are limited to 128 characters.
- Updating this field replaces existing contents.
- example:
- key: value
- maxProperties: 5
- type: object
- deployment:
- description: 'DEPRECATED: The last deployment used on the device.'
- example: ''
+ device_id:
+ description: The device ID.
+ example: 01625daa23230a580a0100bd00000000
type: string
- description:
- description: The description of the device.
- example: ''
- maxLength: 2000
- type: string
- device_class:
- description: An ID representing the model and hardware revision of the device.
- maxLength: 32
- type: string
- device_execution_mode: *id011
- device_key:
- description: The fingerprint of the device certificate.
- example: 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
- maxLength: 512
- type: string
- endpoint_name:
- description: The endpoint name given to the device.
- example: 00000000-0000-0000-0000-000000000000
- maxLength: 64
- type: string
- endpoint_type:
- description: The endpoint type of the device. For example, the device is a
- gateway.
- example: ''
- maxLength: 64
- type: string
- host_gateway:
- description: The ID of the host gateway, if appropriate.
- example: ''
+ enroll_result:
+ description: The result of certificate enrollment request.
+ enum:
+ - success
+ - failure
+ example: success
type: string
- issuer_fingerprint: *id012
- manifest:
- description: 'DEPRECATED: The URL for the current device manifest.'
- example: ''
+ enroll_result_detail:
+ description: Additional information in case of failure.
+ example: The device is currently processing too many certificate renewals.
type: string
- mechanism:
- description: The ID of the channel used to communicate with the device.
+ enroll_status:
+ description: The status of certificate enrollment request.
enum:
- - connector
- - direct
- type: string
- mechanism_url:
- description: The address of the connector to use.
- example: ''
+ - new
+ - completed
type: string
- name:
- description: The name of the device.
- example: 00000000-0000-0000-0000-000000000000
- maxLength: 128
+ etag:
+ description: Entity instance signature.
+ example: '1'
type: string
- serial_number:
- description: The serial number of the device.
- example: 00000000-0000-0000-0000-000000000000
- maxLength: 64
+ id:
+ description: The certificate enrollment ID.
+ example: 01612df56f3b0a580a010fc700000000
type: string
- state:
- description: The current state of the device.
+ object:
enum:
- - unenrolled
- - cloud_enrolling
- - bootstrapped
- - registered
- - deregistered
+ - certificate-enrollment
type: string
- vendor_id:
- description: The device vendor ID.
- example: 00000000-0000-0000-0000-000000000000
- maxLength: 255
+ updated_at:
+ description: Update UTC time RFC3339.
+ example: '2017-01-01T00:00:00Z'
+ format: date-time
type: string
- DeviceDataPutRequest:
+ required:
+ - created_at
+ - etag
+ - id
+ - device_id
+ - certificate_name
+ type: object
+ CertificateEnrollmentListResponse:
properties:
- auto_update:
- description: 'DEPRECATED: Mark this device for automatic firmware update.'
- type: boolean
- ca_id:
- description: The certificate issuer's ID.
- example: '00000000000000000000000000000000'
- maxLength: 500
- type: string
- custom_attributes:
- additionalProperties:
- maxLength: 128
- pattern: ^[A-Za-z].*
- type: string
- description: Up to five custom key-value attributes. Note that keys cannot
- begin with a number. Both keys and values are limited to 128 characters.
- Updating this field replaces existing contents.
- example:
- key: value
- maxProperties: 5
- type: object
- description:
- description: The description of the device.
- example: ''
- maxLength: 2000
- type: string
- device_key:
- description: The fingerprint of the device certificate.
- example: 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
- maxLength: 512
- type: string
- endpoint_name:
- description: The endpoint name given to the device.
- example: 00000000-0000-0000-0000-000000000000
- maxLength: 64
- readOnly: true
+ after:
+ description: The entity ID to fetch after the given one.
+ example: 01625daa23230a580a0100bd00000000
type: string
- endpoint_type:
- description: The endpoint type of the device. For example, the device is a
- gateway.
- example: ''
- maxLength: 64
+ data:
+ description: List of certificate enrollments.
+ items:
+ $ref: '#/definitions/CertificateEnrollment'
+ type: array
+ has_more:
+ description: Flag indicating whether there are more results.
+ type: boolean
+ limit:
+ description: The number of results to return.
+ format: int32
+ type: integer
+ object:
+ description: Describes the type of objects in the list.
+ enum:
+ - list
type: string
- host_gateway:
- description: The ID of the host gateway, if appropriate.
- example: ''
+ order:
+ description: 'Record order based on creation time. Acceptable values: ASC,
+ DESC. Default: ASC.'
+ enum:
+ - ASC
+ - DESC
type: string
- name:
- description: The name of the device.
- example: 00000000-0000-0000-0000-000000000000
- maxLength: 128
+ total_count:
+ description: The total number of records.
+ format: int32
+ type: integer
+ type: object
+ CertificateGenerationReq:
+ description: Generate a new service provider certificate.
+ properties:
+ algorithm:
+ description: The algorithm and its key size used for generating the certificate.
+ Defaults to RSA2048.
+ enum:
+ - RSA2048
+ - RSA3072
+ - EC224
+ - EC256
+ - EC384
+ - EC521
+ - ECDSA224
+ - ECDSA256
+ - ECDSA384
+ - ECDSA521
type: string
- DeviceEqNeqFilter:
+ validity:
+ description: Validity for the certificate in days.
+ format: int32
+ type: integer
+ type: object
+ CertificateIssuerConfigListResponse:
properties:
- account_id:
+ after: &id002
+ description: An offset token for current page.
+ example: '01631667477600000000000100100374'
type: string
- auto_update:
+ data:
+ description: List of certificate issuers.
+ items:
+ $ref: '#/definitions/CertificateIssuerConfigResponse'
+ type: array
+ has_more: &id003
+ description: More results are available.
+ example: false
type: boolean
- bootstrap_expiration_date:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
+ limit: &id004
+ description: The number of results to return (2-1000). Values outside of this
+ range are set to the closest limit.
+ example: 50
+ maximum: 1000
+ minimum: 2
+ type: integer
+ object: &id005
+ description: The type of this API object is `list`.
+ example: list
type: string
- bootstrapped_timestamp:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
+ order: &id006
+ description: Record order based on creation time.
+ example: DESC
type: string
- ca_id:
+ total_count: &id007
+ example: 1
+ format: integer
+ type: integer
+ type: object
+ CertificateIssuerConfigRequest:
+ properties:
+ certificate_issuer_id:
+ description: 'Certificate issuer ID.
+
+ For LwM2M, may be null if Device Management internal certificate issuer
+ is used.'
+ example: 01648415a2a30242ac18000500000000
type: string
- connector_expiration_date:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
+ x-nullable: true
+ type: object
+ CertificateIssuerConfigResponse:
+ properties:
+ certificate_issuer_id:
+ description: 'Certificate issuer ID.
+
+ Null if Device Management internal HSM is used.'
+ example: 01648415a2a30242ac18000500000000
type: string
+ x-nullable: true
created_at:
- example: '2017-05-22T12:37:55.576563Z'
+ description: Created UTC time RFC3339.
+ example: '2017-01-01T00:00:00Z'
format: date-time
type: string
- custom_attributes:
- additionalProperties:
- type: string
- type: object
- deployed_state:
+ etag:
+ description: Entity instance signature.
+ example: '1'
type: string
- deployment:
+ id:
+ description: Certificate issuer ID. configuration.
+ example: 01648415a2a30242ac18000500000000
type: string
- description:
- type: string
- device_class:
- type: string
- device_execution_mode:
- type: integer
- device_key:
- type: string
- endpoint_name:
- type: string
- endpoint_type:
- type: string
- enrolment_list_timestamp:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- etag:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- firmware_checksum:
- type: string
- host_gateway:
- type: string
- id:
- type: string
- manifest:
- type: string
- manifest_timestamp:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- mechanism:
- type: string
- mechanism_url:
- type: string
- name:
- type: string
- serial_number:
+ is_custom:
+ example: true
+ type: boolean
+ object:
+ enum:
+ - certificate-issuer-configuration
type: string
- state:
+ reference:
+ description: The certificate name to which the certificate issuer configuration
+ applies.
+ example: customer.dlms
type: string
updated_at:
- example: '2017-05-22T12:37:55.576563Z'
+ description: Updated UTC time RFC3339.
+ example: '2017-02-01T00:00:00Z'
format: date-time
type: string
- vendor_id:
- type: string
type: object
- DeviceEventData:
+ CertificateIssuerInfo:
properties:
- changes:
- additionalProperties:
- type: object
- example: {}
- type: object
- x-deprecation:
- comment: This field is not used.
- end_of_life_at: '2020-01-15T14:55:20+00:00'
- issued_at: '2019-01-15T14:55:20+00:00'
- links: []
created_at:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- data:
- additionalProperties:
- type: string
- description: Additional data relevant to the event.
- example:
- campaign_id: '00000000000000000000000000000000'
- type: object
- date_time:
- example: '2017-05-22T12:37:55.576563Z'
+ description: Creation UTC time RFC3339.
+ example: '2017-01-01T00:00:00Z'
format: date-time
type: string
description:
- example: Device record created
- type: string
- device_id:
- example: '00000000000000000000000000000000'
+ description: General description for the certificate issuer.
+ example: GlobalSign sample issuer
+ maxLength: 100
type: string
+ x-nullable: true
etag:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- event_type:
- description: Event code
- example: UPD2_100
- maxLength: 100
+ description: Entity instance signature.
+ example: '1'
type: string
- event_type_category:
- description: Category code which groups the event type by a summary category.
- example: FAIL_MANIFEST_REJECTED
+ id:
+ description: Certificate issuer ID.
+ example: 01234567890ABCDEF01234567890ABCDEF
type: string
- event_type_description:
- description: Generic description of the event.
- example: FAIL
+ issuer_attributes:
+ additionalProperties: &id008
+ type: string
+ description: 'General attributes for connecting the certificate issuer.
+
+ When the issuer_type is GLOBAL_SIGN, the value is empty.
+
+ When the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes.'
+ example: &id009 {}
+ type: object
+ issuer_type:
+ description: "Certificate issuer type.\n- GLOBAL_SIGN:\n Certificates are\
+ \ issued by GlobalSign service. You must provide your own GlobalSign account\
+ \ credentials.\n- CFSSL_AUTH:\n Certificates are issued by CFSSL authenticated\
+ \ signing service.\n You must provide your own CFSSL host_url and credentials."
+ enum:
+ - GLOBAL_SIGN
+ - CFSSL_AUTH
+ example: GLOBAL_SIGN
type: string
- id:
- example: '00000000000000000000000000000000'
+ name:
+ description: Certificate issuer name, unique per account.
+ example: GS Issuer
+ maxLength: 50
type: string
object:
- description: The API resource entity.
- example: device-event
+ enum:
+ - certificate-issuer
type: string
- state_change:
- type: boolean
required:
- - date_time
- - id
- DeviceEventEqNeqFilter:
+ - issuer_type
+ type: object
+ CertificateIssuerInfoListResponse:
+ properties:
+ after: *id002
+ data:
+ description: List of certificate issuers.
+ items:
+ $ref: '#/definitions/CertificateIssuerInfo'
+ type: array
+ has_more: *id003
+ limit: *id004
+ object: *id005
+ order: *id006
+ total_count: *id007
+ type: object
+ CertificateIssuerRequest:
+ example:
+ description: Sample GlobalSign certificate issuer.
+ issuer_attributes: null
+ issuer_credentials:
+ api_key: e510e289e6cd8947
+ api_secret: a477a8393d17a55ecb2ba6a61f58feb84770b621
+ client_certificate: '"-----BEGIN CERTIFICATE-----MIIC7zCCAdegAwIBAgIJANTlU4x5S74VMA0GCSqGSIb3DQEBCwUAMA4xDDAKBgNVBAoMA0FybTAeFw0xODAzMTExMzE5MTFaFw0xOTAzMTExMzE5MTFaMA4xDDAKBgNVBAoMA0FybTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJWLStsVMJULZtxdieK9qocM4ymDXMaAusmd9TZLzBgznKQe/CW2yxyA8C8K5e6MmvMYGeKDd4Lkw/ezOj2OsUj2xzNIltUxpGi/GhsNYiN/khNJa/Y1SllLoihJAPm/xbMywOBRu/dM88PiJsNZccOk0I8DYvvyAs9wCTkbKLnfHygl98DCRqXw7nBCplU6F03qpUd/4BUtMtugyqt7yboGH+4YewnUh4Yh4QNOJIvE93Ob++eKjO3pIOYEhQmUxzOLaLNuWXlv2l1WuN281hUP4XBcV8mCzRQfTBBDYTWt+5BEWoLOUkXjW0Um6EAaN3usph1IKDEH6Ia5VHP4Pj0CAwEAAaNQME4wHQYDVR0OBBYEFLsfYZxFcQTjPJKYMjHI2In316fmMB8GA1UdIwQYMBaAFLsfYZxFcQTjPJKYMjHI2In316fmMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFl08GFsIkkUs6M7QgCWmsnwP6PtD8V87wM1GAqQQlOOeztaeRR2TEOeYiKRZQugYszJ/FVfVp4ggqzepJMn6UZ42j5nmSJs+6t79i23QAzX1zNQ354lr/t7kt3fMdhuL3AP0oZGzdy+EnXXiWeAD22UwzvVmLt38ypJIl+pmTsx9jJy4PN7yoRgtP9k+50m3X6oDxVruehC/JPSeTvEhqyLW3fLcG6IoJMX3vIwfO9uXbFJumTowQeViNJJ9duWvD2KBXn/muOOBe97TPuvAms1gOtMmmPT9/jpo9b4+NsfFiAN6bMici81aIKZzLC+lLGOUmR2fFJyM5OsVLxKsko=-----END
+ CERTIFICATE-----"
+
+ '
+ passphrase: helloworld
+ private_key: '"-----BEGIN RSA PRIVATE KEY-----\nProc-Type: 4,ENCRYPTED\nDEK-Info:
+ DES-EDE3-CBC,CCAC26A4133947CB\n\np3KJ4FI3wcz3I0MtiLkrznkjWFvprVmoNywySUGb5IqZViJZqCMEsyU9a9iDsSfP\nZ07cg9GviV21WYIPSxZOQrpy1g1VWILzFnH+J6z8dSH4mxXh0PwdOzYgAeqkrIVM\nJ7KRm6t222dZFjjXK3eEcLmBLGo29XwVJxKHx+l4++gU1LZmeHZR5M8fJ4jejUly\n7sqzPlmRF0N3I4lwKVj+PfQTVz43QoCnpxOjuSEL4liBrc2agY2xH1O0PFyHimz9\n3XM9HR/iuPHW0N2D+NPjXlWKacerupH9d4i9IYIagzB+HTgej8limdo03GmmxcZ6\nYNa58n5yQSaqu0TPRU9DsrKeGjadHTlZQGdzfq1SWsROCnHLrXFKE2ozIG3+hxA5\nujBF/QWpX5+inXUwDJhBxp8isHbPEnBEUUd6ZRzCTjvN0jaUti5B9yFhO2G6mbE8\nCvhyzQK8oJqsjZXnlcpPf95LP+9XbcCDjLSIaWJstzXO9tPiv6+x1MVWmivtRHcC\nSTzpx8jAGCiG6ejLqWB87ZXiZm7ujlCBheHSf5RHwNHhUvoP2JEYalDDRxjcDMSx\n4uV42Np4yJlIQEDlGHcBlXoL7vEukFpuWgkYdpcZy/Ou9qz8mXrpLcu8C8MhLmSC\nixGoR5iRhV7cxoHLyuCzj87eYEA73Xu238DQorSEEuiVFnLzQ2+PJMs4qoI14q/L\notlBDz+Ko6DrU/EZROYmiqMkLKXR2sx9zNAJwPYRs6nSH08tZ3dwqzZbgtP3Wazi\nhLWHt5/En7wQRA5a+/dDEHXSoLvvSQ9jvhclhWf+eCYuq2eH+g54oyJGRSY+8GV7\nujhLxkzl/3OZdhZPWoz4U13KpbSTcNWu5Y7oGDoabw19UbvqmLf1PJkpDH/tQgzB\nxYtsLBRUcofpYoeIiIxfAA4do5WilJc8xqrGhkE4WcHfY24HXAiOvsjbxV+BRprX\n1jtgJpV/9nJESMap+8PxipGUFRGjB83/uwJaa6mLftEKflX8i4MZ+HnqraXERsqA\nWRUcDHIWmFfpzIB3iNuxawVvPH8NdCSPmQ9qTb8Cozl0AuOK2E9S+ke8oiYQScWR\nLdu+zhej7GjuQ9R+Ub+wPWqvOA5qLXejqnCexVScDUuN+z9JWM3N2FG1MwxhAzhP\ndEfoQHoBn6uyOmrVGP6fosV3chqhPoec42KeOAm1xDvx692isaIy1jPgIyPxeqhm\n2Tw4E+02R7dlP8Ljf7JzfLm4oKpWHWlcHeqg24x6lY/wXU1RBcWaTa0AQUwoGm2m\nIQCPfIqOEv/QC2HpO7SVCYkl65KwR0oTd1AzYxdxEq3xHQbh69EL0FGZPVxVCPI+\nhEAyifKy1/tm3l91Rf/kGpHY7nIQKCXH49tmFwix8gke2nZJmRgX7/zAdMOAKeKH\nAaIl4nQtv14EbaasMgnn9qgaDYnWzaReEob2QlQ/WYlTor61+KFpGtcf9jAkgudT\n2op+4CF7wT2+aTXdtkVWfmv++iB8GnlqZdxLvyG1cTYjjYHVFbMSWQnxzQqiE2ms\nQgp+byjWCumpsWTMdTO+d9NkDOo80vDpaRxEgebmhJ0MbX+eFjBgVg==\n-----END
+ RSA PRIVATE KEY-----"'
+ issuer_type: GLOBAL_SIGN
+ name: GS Issuer
properties:
- date_time:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
description:
+ description: General description of the certificate issuer.
+ maxLength: 100
type: string
- device_id:
- type: string
- event_type:
- type: string
- id:
+ x-nullable: true
+ issuer_attributes:
+ additionalProperties: *id008
+ description: 'General attributes for connecting the certificate issuer.
+
+ When the issuer_type is GLOBAL_SIGN, the value is empty.
+
+ When the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes.'
+ example: *id009
+ type: object
+ issuer_credentials:
+ additionalProperties: &id010
+ type: string
+ description: 'The credentials required to connect to the certificate issuer.
+
+ When the issuer_type is GLOBAL_SIGN, see definition of GlobalSignCredentials.
+
+ When the issuer_type is CFSSL_AUTH, see definition of CfsslAuthCredentials.'
+ example: &id011 {}
+ type: object
+ issuer_type:
+ description: "Certificate issuer type.\n- GLOBAL_SIGN:\n Certificates are\
+ \ issued by GlobalSign service. You must provide your own GlobalSign account\
+ \ credentials.\n- CFSSL_AUTH:\n Certificates are issued by CFSSL authenticated\
+ \ signing service.\n You must provide your own CFSSL host_url and credentials."
+ enum:
+ - GLOBAL_SIGN
+ - CFSSL_AUTH
type: string
- state_change:
- type: boolean
- DeviceEventGteLteFilter:
- properties:
- date_time:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
+ name:
+ description: Certificate issuer name, unique per account.
+ maxLength: 50
type: string
- DeviceEventInNinFilter:
+ required:
+ - name
+ - issuer_type
+ - issuer_credentials
+ type: object
+ CertificateIssuerUpdateRequest:
+ example:
+ description: Sample GlobalSign certificate issuer - updated.
+ name: GlobalSign Issuer
properties:
- date_time:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
description:
+ description: General description of the certificate issuer.
+ maxLength: 100
type: string
- device_id:
- type: string
- event_type:
- type: string
- id:
+ x-nullable: true
+ issuer_attributes:
+ additionalProperties: *id008
+ description: 'General attributes for connecting the certificate issuer.
+
+ When the issuer_type is GLOBAL_SIGN, the value is empty.
+
+ When the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes.'
+ example: *id009
+ type: object
+ issuer_credentials:
+ additionalProperties: *id010
+ description: 'The credentials required to connect to the certificate issuer.
+
+ When the issuer_type is GLOBAL_SIGN, see definition of GlobalSignCredentials.
+
+ When the issuer_type is CFSSL_AUTH, see definition of CfsslAuthCredentials.'
+ example: *id011
+ type: object
+ name:
+ description: Certificate issuer name.
+ maxLength: 50
type: string
- state_change:
- type: boolean
- DeviceEventPage:
+ type: object
+ CertificateIssuerVerifyResponse:
properties:
- after:
- example: null
+ message:
+ description: Provides details in case of failure.
+ example: Message describing the verification failure
type: string
- data:
- example: '[]'
- items:
- $ref: '#/definitions/DeviceEventData'
- type: array
- has_more:
+ successful:
+ description: Indicates whether the certificate issuer was verified successfully.
example: false
type: boolean
- limit:
- example: 1000
- type: integer
- object:
- example: list
+ type: object
+ CfsslAttributes:
+ description: Describes the attributes required to connect to the CFSSL server.
+ properties:
+ cfssl_label:
+ description: The label that is used by CFSSL when creating the certificate.
type: string
- order:
- example: DESC
+ cfssl_profile:
+ description: The profile that is configured on the CFSSL server and used by
+ CFSSL when creating the certificate.
type: string
- total_count:
- example: 1
- type: integer
- DeviceGroup:
+ host_url:
+ description: The URL to connect to the CFSSL server.
+ example: http://my.cfssl.service:5555
+ type: string
+ required:
+ - host_url
+ type: object
+ CfsslAuthCredentials:
+ description: Describes the credentials required when using CFSSL authenticated
+ signing.
+ properties:
+ hmac_hex_key:
+ description: 'The key that is used to compute the HMAC of the request using
+ the HMAC-SHA-256 algorithm.
+
+ Must contain an even number of hexadecimal characters.'
+ example: 0010203ABCD708EF
+ maxLength: 64
+ pattern: ^([a-fA-F0-9][a-fA-F0-9]){1,32}$
+ type: string
+ required:
+ - hmac_hex_key
+ type: object
+ ChannelMetadata:
+ properties:
+ delivery_mechanism:
+ description: Channel delivery mechanism.
+ enum:
+ - CALLBACK
+ - LONG_POLLING
+ - WEB_SOCKET
+ example: CALLBACK
+ type: string
+ type: object
+ CreateCertificateIssuerConfig:
+ properties:
+ certificate_issuer_id:
+ description: Certificate issuer ID.
+ example: 01648415a2a30242ac18000500000000
+ maxLength: 32
+ type: string
+ x-nullable: true
+ reference:
+ description: 'The certificate name, as created in the factory, to which the
+ certificate issuer configuration applies.
+
+ The following names are reserved and cannot be configured: LwM2M, BOOTSTRAP.'
+ example: customer.dlms
+ maxLength: 100
+ pattern: (?!mbed\.)[\w-_.]{1,100}
+ type: string
+ required:
+ - reference
+ - certificate_issuer_id
+ type: object
+ CreateTrustAnchorRequest:
+ properties:
+ description:
+ description: The description of the new trust anchor key pair.
+ format: Free text
+ maxLength: 256
+ minLength: 1
+ type: string
+ required:
+ - description
+ type: object
+ CreateTrustAnchorResponse:
+ properties:
+ created_at: &id017
+ description: Creation UTC time.
+ example: '2017-01-01T00:00:00Z'
+ format: date-time
+ type: string
+ description:
+ description: Notes about the trust anchor.
+ format: free text
+ maxLength: 256
+ minLength: 1
+ type: string
+ etag: &id018
+ description: Entity instance signature, 1 or Unix timestamp of last customer
+ update.
+ example: '1'
+ type: string
+ fingerprint:
+ description: The SHA256 of the trust anchor public key; the prefix 'mbed.ta.'
+ followed by the trust anchor public key as a SHA256 hash in Base64-encoded
+ DER format.
+ format: byte
+ type: string
+ id: &id019
+ description: The ID of the entity.
+ example: 01612df56f3b0a580a010fc700000000
+ pattern: '[A-Fa-f0-9]{32}'
+ type: string
+ object: &id020
+ description: The API resource entity
+ example: trust-anchor
+ type: string
+ public_key:
+ description: The generated trust anchor public key in PEM format.
+ format: byte
+ type: string
+ public_key_der:
+ description: The generated trust anchor public key in Base64-encoded DER format.
+ format: byte
+ type: string
+ updated_at: &id021
+ description: Update UTC time.
+ example: '2017-01-01T00:00:00Z'
+ format: date-time
+ type: string
+ type: object
+ CredentialsResponseData:
+ properties:
+ certificate:
+ description: PEM-format X.509 server certificate used to validate the server
+ certificate received during the TLS/DTLS handshake.
+ type: string
+ url:
+ description: Server URI that the client connects to.
+ type: string
+ type: object
+ DeveloperCertificateRequestData:
+ properties:
+ description:
+ description: Description for the developer certificate. Maximum 500 characters.
+ Please see [TrustedCertificateReq](https://www.pelion.com/docs/device-management-api/account-management/).
+ maxLength: 500
+ type: string
+ x-nullable: true
+ name:
+ description: Name of the developer certificate. Must be unique. Maximum 100
+ characters. Please see [TrustedCertificateReq](https://www.pelion.com/docs/device-management-api/account-management/).
+ maxLength: 100
+ type: string
+ required:
+ - name
+ type: object
+ DeveloperCertificateResponseData:
properties:
+ account_id:
+ description: Account to which the developer certificate belongs.
+ type: string
created_at:
- description: The time the campaign was created.
- example: '2017-05-22T12:37:55.576563Z'
+ description: Creation UTC time RFC3339.
format: date-time
type: string
- custom_attributes: &id022
- additionalProperties:
- maxLength: 128
- pattern: ^[A-Za-z].*
- type: string
- description: Up to ten custom key-value attributes. Keys cannot begin with
- a number. Both key and value are limited to 128 characters. Updating this
- field replaces existing contents.
- example:
- key: value
- maxProperties: 10
- type: object
- description: &id023
- description: The description of the group.
- example: Devices on the factory floor.
- maxLength: 2000
+ description:
+ description: Description for the developer certificate.
+ type: string
+ x-nullable: true
+ developer_certificate:
+ description: PEM-format X.509 developer certificate.
+ type: string
+ developer_private_key:
+ description: PEM-format developer private key associated with the certificate.
type: string
- devices_count:
- description: The number of devices in this group.
- example: 10
- type: integer
etag:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
+ description: API resource entity version.
type: string
id:
- description: The group ID.
- example: 015c3029f6f7000000000001001000c3
+ description: ID that uniquely identifies the developer certificate.
type: string
- name: &id024
- description: Name of the group.
- example: My devices
- maxLength: 128
+ name:
+ description: Name of the developer certificate.
type: string
object:
- description: 'Entity name: always `device-group`.'
- example: device-group
+ description: 'Entity name: always `trusted-cert`.'
type: string
- updated_at:
- description: The time the object was updated.
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
+ security_file_content:
+ description: Content of the `security.c` file flashed to the device to provide
+ security credentials.
type: string
type: object
- DeviceGroupManipulation:
+ DeviceBlockCategory:
properties:
- device_id:
- example: '00000000000000000000000000000000'
+ description:
+ example: Suspended for maintenance.
+ type: string
+ object:
+ description: 'Entity name: always ''device-block-category''.'
+ example: device-block-category
+ type: string
+ reference:
+ example: maintenance
+ type: string
+ updated_at:
+ format: date-time
type: string
- required:
- - device_id
type: object
- DeviceGroupPage:
+ DeviceBlockCategoryPage:
properties:
after:
description: An offset token for current page.
- example: '01631667477600000000000100100374'
type: string
data:
items:
- $ref: '#/definitions/DeviceGroup'
+ $ref: '#/definitions/DeviceBlockCategory'
type: array
has_more:
description: More results are available.
@@ -2915,7 +3044,7 @@ definitions:
example: list
type: string
order:
- description: Record order based on creation time.
+ description: Order of entries based on creation time.
example: DESC
type: string
total_count:
@@ -2923,253 +3052,636 @@ definitions:
format: integer
type: integer
type: object
- DeviceGteLteFilter:
- properties:
- bootstrap_expiration_date:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- bootstrapped_timestamp:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- connector_expiration_date:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- created_at:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- enrolment_list_timestamp:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- etag:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- manifest_timestamp:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- updated_at:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- type: object
- DeviceInNinFilter:
+ DeviceData:
properties:
account_id:
+ description: The ID of the associated account.
+ example: '00000000000000000000000000000000'
type: string
auto_update:
+ description: 'DEPRECATED: Mark this device for automatic firmware update.'
type: boolean
bootstrap_expiration_date:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
+ description: The expiration date of the certificate used to connect to bootstrap
+ server.
+ format: date
type: string
+ x-nullable: true
bootstrapped_timestamp:
+ description: The timestamp of the device's most recent bootstrap process.
example: '2017-05-22T12:37:55.576563Z'
format: date-time
type: string
ca_id:
+ description: The certificate issuer's ID.
+ example: '00000000000000000000000000000000'
+ maxLength: 500
type: string
+ component_attributes:
+ additionalProperties:
+ maxLength: 128
+ type: string
+ description: Up to ten custom key-value attributes. Note that keys cannot
+ begin with a number. Both keys and values are limited to 128 characters.
+ Updating this field replaces existing contents.
+ example:
+ key: value
+ maxProperties: 10
+ type: object
connector_expiration_date:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
+ description: The expiration date of the certificate used to connect to LwM2M
+ server.
+ format: date
type: string
+ x-nullable: true
created_at:
+ description: The timestamp of when the device was created in the device directory.
example: '2017-05-22T12:37:55.576563Z'
format: date-time
type: string
custom_attributes:
additionalProperties:
+ maxLength: 128
+ pattern: ^[A-Za-z].*
type: string
- type: object
- deployed_state:
+ description: Up to five custom key-value attributes. Note that keys cannot
+ begin with a number. Both keys and values are limited to 128 characters.
+ Updating this field replaces existing contents.
+ example:
+ key: value
+ maxProperties: 5
+ type: object
+ deployed_state:
+ description: 'DEPRECATED: The state of the device''s deployment.'
+ enum:
+ - development
+ - production
type: string
deployment:
+ description: 'DEPRECATED: The last deployment used on the device.'
+ example: ''
type: string
description:
+ description: The description of the device.
+ example: Temperature measuring device
+ maxLength: 2000
type: string
device_class:
+ description: An ID representing the model and hardware revision of the device.
+ example: ''
+ maxLength: 32
type: string
- device_execution_mode:
+ device_execution_mode: &id012
+ default: 0
+ description: "The execution mode from the certificate of the device. Defaults\
+ \ to inheriting from host_gateway device.\nPermitted values:\n - 0 - Unspecified\
+ \ execution mode (default if host_gateway invalid or not set). The device\
+ \ firmware uses a certificate that is not identified as a developer or production\
+ \ certificate.\n - 1 - Development device. The device firmware uses a developer\
+ \ certificate to communicate with Device Management.\n - 5 - Production\
+ \ device. The device firmware uses a factory-generated certificate to communicate\
+ \ with Device Management."
+ enum:
+ - 0
+ - 1
+ - 5
+ example: 0
type: integer
device_key:
+ description: The fingerprint of the device certificate.
+ example: 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
+ maxLength: 512
type: string
endpoint_name:
+ description: The endpoint name given to the device. The endpoint_name is from
+ the device certificate and is set by factory tool.
+ example: 00000000-0000-0000-0000-000000000000
+ readOnly: true
type: string
endpoint_type:
+ description: The endpoint type of the device. For example, the device is a
+ gateway.
+ example: ''
+ maxLength: 64
type: string
enrolment_list_timestamp:
+ description: The claim date/time.
example: '2017-05-22T12:37:55.576563Z'
format: date-time
type: string
etag:
+ description: The entity instance signature.
example: '2017-05-22T12:37:55.576563Z'
format: date-time
type: string
firmware_checksum:
+ description: The SHA256 checksum of the current firmware image.
+ example: '0000000000000000000000000000000000000000000000000000000000000000'
type: string
+ groups:
+ description: An array containing an ID of each group this device belongs to.
+ items:
+ example: '00000000000000000000000000000000'
+ type: string
+ type: array
host_gateway:
+ description: The ID of the host gateway, if appropriate. A device behind Edge
+ has this host_gateway set.
+ example: ''
type: string
id:
+ description: The ID of the device. The device ID is used across all Device
+ Management APIs.
+ example: '00000000000000000000000000000000'
+ type: string
+ issuer_fingerprint: &id013
+ description: SHA256 fingerprint of the certificate used to validate the signature
+ of the device certificate.
+ example: C42EDEFC75871E4CE2146FCDA67D03DDA05CC26FDF93B17B55F42C1EADFDC322
+ pattern: '[A-Fa-f0-9]{64}'
+ type: string
+ x-nullable: true
+ last_operator_suspended_category:
+ description: The reference of the block category.
+ example: maintenance
+ pattern: '[a-f0-9_]{32}'
+ type: string
+ last_operator_suspended_description:
+ description: The most recent description why the device was suspended or returned
+ to service.
+ example: Suspended for maintenance.
+ maxLength: 2000
+ type: string
+ last_operator_suspended_updated_at:
+ description: The timestamp of the most recent suspension activity.
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ last_system_suspended_category:
+ description: The reference of the block category.
+ example: maintenance
+ pattern: '[a-f0-9_]{32}'
+ type: string
+ last_system_suspended_description:
+ description: The most recent description of why the device was blocked or
+ unblocked by the system.
+ example: A certificate in the device's certificate chain was blacklisted by
+ the system.
+ maxLength: 2000
+ type: string
+ last_system_suspended_updated_at:
+ description: The timestamp of the most recent system block activity.
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ lifecycle_status:
+ description: 'The lifecycle status of the device.
+
+ * Enabled: The device is allowed to connect to Pelion Device Management.
+
+ * Blocked: The device is prevented from connecting to Pelion Device Management.
+ Device can be, for example, ''suspended''.'
+ enum:
+ - enabled
+ - blocked
+ example: enabled
type: string
manifest:
+ description: 'DEPRECATED: The URL for the current device manifest.'
+ example: ''
type: string
manifest_timestamp:
+ description: The timestamp of the current manifest version.
example: '2017-05-22T12:37:55.576563Z'
format: date-time
type: string
mechanism:
+ description: 'NOT USED: The ID of the channel used to communicate with the
+ device.'
+ enum:
+ - connector
+ - direct
type: string
mechanism_url:
+ description: 'NOT USED: The address of the connector to use.'
+ example: ''
type: string
name:
+ description: The name given by the web application for the device. Device
+ itself provides only the endpoint_name.
+ example: 00000000-0000-0000-0000-000000000000
+ maxLength: 128
+ type: string
+ net_id:
+ default: ''
+ description: Private network identifier. Used to group nodes connected to
+ a specific border router.
+ example: 0000:0000:0000:0000:0000:0000:0000:0000
+ maxLength: 40
+ type: string
+ object:
+ description: The API resource entity.
+ example: device
type: string
+ operator_suspended:
+ description: Device has been suspended by operator.
+ type: boolean
serial_number:
+ description: The [serial number](https://www.pelion.com/docs/device-management-provision/latest/provisioning-info/lwm2m-device-object.html#serial-number)
+ of the device. The serial number is injected by the factory tool during
+ manufacturing.
+ example: 00000000-0000-0000-0000-000000000000
type: string
state:
+ description: 'The current state of the device.
+
+ * Unenrolled: The device has been created, but has not yet bootstrapped
+ or connected to Device Management.
+
+ * Cloud_enrolling: The device is bootstrapping for the first time. This
+ state is set only while bootstrapping is in progress. For example, an external
+ CA gives an error, and the device tries to bootstrap again after few seconds.
+
+ * Bootstrapped: The device has bootstrapped, and has credentials to connect
+ to Device Management.
+
+ * Registered: The device has registered with Pelion Device Management. [Device
+ commands](https://www.pelion.com/docs/device-management-api/connect/) can
+ be queued. The device sends events for [subscribed](https://www.pelion.com/docs/device-management/current/resources/handle-resource-webapp.html)
+ resources.
+
+ * Deregistered: The device has requested deregistration, or its registration
+ has expired.'
+ enum:
+ - unenrolled
+ - cloud_enrolling
+ - bootstrapped
+ - registered
+ - deregistered
type: string
+ system_suspended:
+ description: Is the device suspended by the system?
+ type: boolean
updated_at:
+ description: The time this data object was updated.
example: '2017-05-22T12:37:55.576563Z'
format: date-time
type: string
vendor_id:
+ description: The device vendor ID.
+ example: 00000000-0000-0000-0000-000000000000
type: string
- type: object
- DevicePage:
+ DeviceDataPostRequest:
properties:
- after:
- description: An offset token for current page.
- example: '01631667477600000000000100100374'
- type: string
- data:
- items:
- $ref: '#/definitions/DeviceData'
- type: array
- has_more:
- description: Are there more results available.
- example: false
+ auto_update:
+ description: 'DEPRECATED: Mark this device for automatic firmware update.'
type: boolean
- limit:
- description: How many objects to retrieve in the page. The minimum limit is
- 2 and the maximum is 1000. Limit values outside of this range are set to
- the closest limit.
- example: 50
- maximum: 1000
- minimum: 2
- type: integer
- object:
- description: The type of this API object is a "list".
- example: list
+ bootstrap_expiration_date:
+ description: The expiration date of the certificate used to connect to bootstrap
+ server.
+ example: '2017-05-22'
+ format: date
type: string
- order:
- description: The order of the records based on creation time, `ASC` or `DESC`;
- by default `ASC`.
- example: DESC
+ x-nullable: true
+ ca_id:
+ description: The certificate issuer's ID.
+ example: '00000000000000000000000000000000'
+ maxLength: 500
type: string
- total_count:
- example: 1
- format: integer
- type: integer
- DeviceQuery:
- properties:
- created_at:
- description: The timestamp of when the device was created in Device Directory.
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
+ connector_expiration_date:
+ description: The expiration date of the certificate used to connect to the
+ LwM2M server.
+ example: '2017-05-22'
+ format: date
type: string
- etag:
- description: The entity instance signature.
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
+ x-nullable: true
+ custom_attributes:
+ additionalProperties:
+ maxLength: 128
+ pattern: ^[A-Za-z].*
+ type: string
+ description: Up to five custom key-value attributes. Note that keys cannot
+ begin with a number. Both keys and values are limited to 128 characters.
+ Updating this field replaces existing contents.
+ example:
+ key: value
+ maxProperties: 5
+ type: object
+ deployment:
+ description: 'DEPRECATED: The last deployment used on the device.'
+ example: ''
type: string
- id:
- description: The ID of the query.
- example: '00000000000000000000000000000000'
+ description:
+ description: The description of the device.
+ example: ''
+ maxLength: 2000
type: string
- name:
- description: The name of the query.
- example: '00000000000000000000000000000000'
+ device_class:
+ description: An ID representing the model and hardware revision of the device.
+ maxLength: 32
type: string
- object:
- description: The API resource entity.
- example: device-query
+ device_execution_mode: *id012
+ device_key:
+ description: The fingerprint of the device certificate.
+ example: 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
+ maxLength: 512
type: string
- query:
- description: The device query.
- example: id=00000000000000000000000000000000
+ endpoint_name:
+ description: The endpoint name given to the device.
+ example: 00000000-0000-0000-0000-000000000000
+ maxLength: 64
type: string
- updated_at:
- description: The time the object was updated.
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
+ endpoint_type:
+ description: The endpoint type of the device. For example, the device is a
+ gateway.
+ example: ''
+ maxLength: 64
type: string
- required:
- - created_at
- - etag
- - id
- - name
- - object
- - query
- - updated_at
- DeviceQueryEqNeqFilter:
+ host_gateway:
+ description: The ID of the host gateway, if appropriate.
+ example: ''
+ type: string
+ issuer_fingerprint: *id013
+ manifest:
+ description: 'DEPRECATED: The URL for the current device manifest.'
+ example: ''
+ type: string
+ mechanism:
+ description: The ID of the channel used to communicate with the device.
+ enum:
+ - connector
+ - direct
+ type: string
+ mechanism_url:
+ description: The address of the connector to use.
+ example: ''
+ type: string
+ name:
+ description: The name of the device.
+ example: 00000000-0000-0000-0000-000000000000
+ maxLength: 128
+ type: string
+ serial_number:
+ description: The serial number of the device.
+ example: 00000000-0000-0000-0000-000000000000
+ maxLength: 64
+ type: string
+ state:
+ description: The current state of the device.
+ enum:
+ - unenrolled
+ - cloud_enrolling
+ - bootstrapped
+ - registered
+ - deregistered
+ type: string
+ vendor_id:
+ description: The device vendor ID.
+ example: 00000000-0000-0000-0000-000000000000
+ maxLength: 255
+ type: string
+ DeviceDataPutRequest:
+ properties:
+ auto_update:
+ description: 'DEPRECATED: Mark this device for automatic firmware update.'
+ type: boolean
+ ca_id:
+ description: 'The certificate issuer''s ID. WARNING: This value comes from
+ the device, and should not be changed via the API.'
+ example: '00000000000000000000000000000000'
+ maxLength: 500
+ type: string
+ custom_attributes:
+ additionalProperties:
+ maxLength: 128
+ pattern: ^[A-Za-z].*
+ type: string
+ description: Up to five custom key-value attributes. Note that keys cannot
+ begin with a number. Both keys and values are limited to 128 characters.
+ Updating this field replaces existing contents.
+ example:
+ key: value
+ maxProperties: 5
+ type: object
+ description:
+ description: The description of the device.
+ example: ''
+ maxLength: 2000
+ type: string
+ device_key:
+ description: 'The fingerprint of the device certificate. WARNING: This value
+ comes from the device, and should not be changed via the API.'
+ example: 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
+ maxLength: 512
+ type: string
+ endpoint_name:
+ description: 'The endpoint name given to the device. WARNING: This value comes
+ from the device, and should not be changed via the API.'
+ example: 00000000-0000-0000-0000-000000000000
+ maxLength: 64
+ readOnly: true
+ type: string
+ endpoint_type:
+ description: The endpoint type of the device. For example, the device is a
+ gateway.
+ example: ''
+ maxLength: 64
+ type: string
+ host_gateway:
+ description: The ID of the host gateway, if appropriate.
+ example: ''
+ type: string
+ name:
+ description: The name of the device.
+ example: 00000000-0000-0000-0000-000000000000
+ maxLength: 128
+ type: string
+ DeviceEqNeqFilter:
properties:
+ account_id:
+ type: string
+ auto_update:
+ type: boolean
+ bootstrap_expiration_date:
+ example: '2017-05-22'
+ format: date
+ type: string
+ bootstrapped_timestamp:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ ca_id:
+ type: string
+ component_attributes:
+ additionalProperties:
+ type: string
+ type: object
+ connector_expiration_date:
+ example: '2017-05-22'
+ format: date
+ type: string
created_at:
example: '2017-05-22T12:37:55.576563Z'
format: date-time
type: string
+ custom_attributes:
+ additionalProperties:
+ type: string
+ type: object
+ deployed_state:
+ type: string
+ deployment:
+ type: string
+ description:
+ type: string
+ device_class:
+ type: string
+ device_execution_mode:
+ type: integer
+ device_key:
+ type: string
+ endpoint_name:
+ type: string
+ endpoint_type:
+ type: string
+ enrolment_list_timestamp:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
etag:
example: '2017-05-22T12:37:55.576563Z'
format: date-time
type: string
+ firmware_checksum:
+ type: string
+ host_gateway:
+ type: string
id:
type: string
+ manifest:
+ type: string
+ manifest_timestamp:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ mechanism:
+ type: string
+ mechanism_url:
+ type: string
name:
type: string
- query:
+ serial_number:
+ type: string
+ state:
type: string
updated_at:
example: '2017-05-22T12:37:55.576563Z'
format: date-time
type: string
- DeviceQueryGteLteFilter:
+ vendor_id:
+ type: string
+ type: object
+ DeviceEventData:
properties:
+ changes:
+ additionalProperties:
+ type: object
+ example: {}
+ type: object
+ x-deprecation:
+ comment: This field is not used.
+ end_of_life_at: '2020-01-15T14:55:20+00:00'
+ issued_at: '2019-01-15T14:55:20+00:00'
+ links: []
created_at:
example: '2017-05-22T12:37:55.576563Z'
format: date-time
type: string
+ data:
+ additionalProperties:
+ type: string
+ description: Additional data relevant to the event.
+ example:
+ campaign_id: '00000000000000000000000000000000'
+ type: object
+ date_time:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ description:
+ example: Device record created
+ type: string
+ device_id:
+ example: '00000000000000000000000000000000'
+ type: string
etag:
example: '2017-05-22T12:37:55.576563Z'
format: date-time
type: string
- updated_at:
+ event_type:
+ description: Event code
+ example: UPD2_100
+ maxLength: 100
+ type: string
+ event_type_category:
+ description: Category code that groups the event type by a summary category.
+ example: FAIL_MANIFEST_REJECTED
+ type: string
+ event_type_description:
+ description: Generic description of the event.
+ example: FAIL
+ type: string
+ id:
+ example: '00000000000000000000000000000000'
+ type: string
+ object:
+ description: The API resource entity.
+ example: device-event
+ type: string
+ state_change:
+ type: boolean
+ required:
+ - date_time
+ - id
+ DeviceEventEqNeqFilter:
+ properties:
+ date_time:
example: '2017-05-22T12:37:55.576563Z'
format: date-time
type: string
- DeviceQueryInNinFilter:
+ description:
+ type: string
+ device_id:
+ type: string
+ event_type:
+ type: string
+ id:
+ type: string
+ state_change:
+ type: boolean
+ DeviceEventGteLteFilter:
properties:
- created_at:
+ date_time:
example: '2017-05-22T12:37:55.576563Z'
format: date-time
type: string
- etag:
+ DeviceEventInNinFilter:
+ properties:
+ date_time:
example: '2017-05-22T12:37:55.576563Z'
format: date-time
type: string
- id:
+ description:
type: string
- name:
+ device_id:
type: string
- query:
+ event_type:
type: string
- updated_at:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
+ id:
type: string
- DeviceQueryPage:
+ state_change:
+ type: boolean
+ DeviceEventPage:
properties:
after:
example: null
@@ -3177,14 +3689,13 @@ definitions:
data:
example: '[]'
items:
- $ref: '#/definitions/DeviceQuery'
+ $ref: '#/definitions/DeviceEventData'
type: array
has_more:
example: false
type: boolean
limit:
example: 1000
- format: integer
type: integer
object:
example: list
@@ -3194,571 +3705,317 @@ definitions:
type: string
total_count:
example: 1
- format: integer
type: integer
- required:
- - limit
- - order
- - object
- - has_more
- - total_count
- - data
- DeviceQueryPatchRequest:
- properties:
- name:
- description: The name of the query.
- maxLength: 200
- type: string
- query:
- description: The device query.
- maxLength: 1000
- type: string
- DeviceQueryPostPutRequest:
- properties:
- name:
- description: The name of the query.
- maxLength: 200
- type: string
- query:
- description: The device query.
- maxLength: 1000
- type: string
- required:
- - name
- - query
- DeviceRequest:
+ DeviceGroup:
properties:
- accept:
- description: The content type of an accepted response.
- example: text/plain
- type: string
- content-type:
- description: The content type of the payload.
- example: text/plain
+ created_at:
+ description: The time the group was created.
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
type: string
- method:
- description: The CoAP request method. Allowed values are GET, POST, PUT and
- DELETE.
- example: GET
+ custom_attributes: &id028
+ additionalProperties:
+ maxLength: 128
+ pattern: ^[A-Za-z].*
+ type: string
+ description: Up to ten custom key-value attributes. Keys cannot begin with
+ a number. Both key and value are limited to 128 characters. Updating this
+ field replaces existing contents.
+ example:
+ key: value
+ maxProperties: 10
+ type: object
+ description: &id029
+ description: The description of the group.
+ example: Devices on the factory floor.
+ maxLength: 1024
type: string
- payload-b64:
- description: The base64 encoded payload to send to the device.
- example: dmFsdWUxCg==
+ devices_count:
+ description: The number of devices in this group.
+ example: 10
+ type: integer
+ etag:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
type: string
- uri:
- description: The URI path of the requested resource.
- example: /5/0/1
+ id:
+ description: The group ID.
+ example: 015c3029f6f7000000000001001000c3
type: string
- required:
- - method
- - uri
- type: object
- EndpointData:
- properties:
- ep:
- description: Unique Device Management device ID.
- example: 015f3850a657000000000001001002ab
+ name: &id030
+ description: Name of the group.
+ example: My devices
+ maxLength: 128
type: string
- ept:
- description: Endpoint type.
- example: Light
+ object:
+ description: 'Entity name: always `device-group`.'
+ example: device-group
type: string
- original-ep:
- description: If device registration is initiated with a self-provided endpoint
- name, Device Management provides a new device ID for subsequent use. The
- new platform-provided Device ID is forwarded as the 'ep' property and the
- original self-provided one as the optional 'original-ep' property in a registration
- notification. The name and ID can then be mapped accordingly. Device Management
- saves the original endpoint name in the Device Directory for future device
- registrations so you don't need to do mapping again.
- example: my-device-123
+ updated_at:
+ description: The time this object was updated.
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
type: string
- q:
- description: Queue mode (default value is false).
- example: false
- type: boolean
- resources:
- items:
- $ref: '#/definitions/ResourcesData'
- type: array
type: object
- EnrollmentId:
+ DeviceGroupManipulation:
properties:
- enrollment_identity:
- description: Enrollment identity.
- example: A-35:e7:72:8a:07:50:3b:3d:75:96:57:52:72:41:0d:78:cc:c6:e5:53:48:c6:65:58:5b:fa:af:4d:2d:73:95:c5
- pattern: ^A-[A-Za-z0-9:]{95}$
+ device_id:
+ example: '00000000000000000000000000000000'
type: string
required:
- - enrollment_identity
+ - device_id
type: object
- EnrollmentIdentities:
+ DeviceGroupPage:
properties:
after:
- description: ID
- example: 00005a4e027f0a580a01081c00000000
- pattern: ^[A-Za-z0-9]{32}
+ description: An offset token for current page.
+ example: '01631667477600000000000100100374'
type: string
data:
items:
- $ref: '#/definitions/EnrollmentIdentity'
+ $ref: '#/definitions/DeviceGroup'
type: array
has_more:
- example: true
+ description: More results are available.
+ example: false
type: boolean
limit:
- description: Range 2-1000, or default.
+ description: How many objects to retrieve in the page (2-1000). Limit values
+ outside of this range are set to the closest limit.
example: 50
maximum: 1000
minimum: 2
type: integer
object:
- enum:
- - list
+ description: The type of this API object is 'list'.
example: list
type: string
order:
- default: ASC
- enum:
- - ASC
- - DESC
- example: ASC
+ description: Record order based on creation time.
+ example: DESC
type: string
total_count:
- example: 100
- format: int32
- minimum: 1
+ example: 1
+ format: integer
type: integer
- required:
- - object
- - limit
- - after
- - order
- - has_more
- - total_count
- - data
type: object
- EnrollmentIdentity:
+ DeviceGteLteFilter:
properties:
- account_id:
- description: ID
- example: 00005a4e027f0a580a01081c00000000
+ bootstrap_expiration_date:
+ example: '2017-05-22'
+ format: date
type: string
- claimed_at:
- description: The time the device was claimed.
+ bootstrapped_timestamp:
+ example: '2017-05-22T12:37:55.576563Z'
format: date-time
type: string
+ connector_expiration_date:
+ example: '2017-05-22'
+ format: date
+ type: string
created_at:
- description: The time of the enrollment identity creation.
+ example: '2017-05-22T12:37:55.576563Z'
format: date-time
type: string
- enrolled_device_id:
- description: The ID of the device in the Device Directory once it is registered.
- example: 00005a4e027f0a580a01081c00000000
- pattern: ^[A-Za-z0-9]{32}
- type: string
- enrollment_identity:
- description: Enrollment identity.
- example: A-35:e7:72:8a:07:50:3b:3d:75:96:57:52:72:41:0d:78:cc:c6:e5:53:48:c6:65:58:5b:fa:af:4d:2d:73:95:c5
- pattern: ^A-[A-Za-z0-9:]{95}$
+ enrolment_list_timestamp:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
type: string
etag:
- example: 7642xfaxz
- pattern: '[A-Za-z0-9]{1,256}'
- type: string
- expires_at:
- description: The enrollment claim expiration time. If the device does not
- connect to Device Management before expiration, the claim is removed without
- separate notice.
+ example: '2017-05-22T12:37:55.576563Z'
format: date-time
type: string
- id:
- description: Enrollment identity.
- example: 00005a4e027f0a580a01081c00000000
- pattern: ^[A-Za-z0-9]{32}
+ manifest_timestamp:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
type: string
- object:
- enum:
- - enrollment
- example: enrollment
+ updated_at:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
type: string
- required:
- - object
- - id
- - etag
- - account_id
- - created_at
- - expires_at
- - claimed_at
- - enrollment_identity
- - enrolled_device_id
type: object
- ErrorObjectResponse:
+ DeviceInNinFilter:
properties:
- code:
- description: Error code. Correlates with response status code.
- format: int32
- type: integer
- fields:
- description: A list of request fields that failed validation.
- items:
- $ref: '#/definitions/FieldMessageEntry'
- type: array
- message:
- description: Error message.
+ account_id:
type: string
- object:
- description: 'Entity name: `error`.'
+ auto_update:
+ type: boolean
+ bootstrap_expiration_date:
+ example: '2017-05-22'
+ format: date
type: string
- request_id:
- description: Request ID from JWT.
+ bootstrapped_timestamp:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
type: string
- type:
- description: Error type.
+ ca_id:
type: string
- required:
- - code
- - fields
- - message
- - object
- - request_id
- - type
- type: object
- ErrorResponse:
- properties:
- code:
- description: HTTP response code
- example: 400
- format: int32
- type: integer
- fields:
- description: Request fields which failed validation.
- items:
- properties:
- message:
- description: Message describing the error condition.
- type: string
- name:
- description: Name of the field which caused the error.
- type: string
- required:
- - name
- - message
- type: object
- type: array
- message:
- description: A human readable informative explanation
- example: Validation error
+ component_attributes:
+ additionalProperties:
+ type: string
+ type: object
+ connector_expiration_date:
+ example: '2017-05-22'
+ format: date
type: string
- object:
- description: Entity name, always `error`.
- enum:
- - error
+ created_at:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
type: string
- request_id:
- description: ID of the request.
- example: 0161991d63150242ac12000600000000
+ custom_attributes:
+ additionalProperties:
+ type: string
+ type: object
+ deployed_state:
type: string
- type:
- description: Error type used to categorise the error.
- example: validation_error
+ deployment:
type: string
- required:
- - code
- - message
- - object
- - request_id
- - type
- type: object
- EventType:
- properties:
- campaign_id:
- description: ID of the associated campaign.
- example: '00000000000000000000000000000000'
+ description:
type: string
- count:
- example: 10
+ device_class:
+ type: string
+ device_execution_mode:
type: integer
- created_at:
+ device_key:
+ type: string
+ endpoint_name:
+ type: string
+ endpoint_type:
+ type: string
+ enrolment_list_timestamp:
example: '2017-05-22T12:37:55.576563Z'
format: date-time
type: string
- description:
- example: Update error, nonspecific network error
+ etag:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
type: string
- event_type:
- example: UPD4_FAIL_101
+ firmware_checksum:
+ type: string
+ host_gateway:
type: string
id:
- example: upd_fail_101
type: string
- object:
- example: event-type
+ manifest:
type: string
- summary_status:
- example: FAIL
+ manifest_timestamp:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
type: string
- summary_status_id:
- example: fail
+ mechanism:
+ type: string
+ mechanism_url:
+ type: string
+ name:
+ type: string
+ serial_number:
+ type: string
+ state:
+ type: string
+ updated_at:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ vendor_id:
type: string
type: object
- EventTypeList:
+ DevicePage:
properties:
after:
- description: The entity ID to fetch after the given one
- example: 'null'
+ description: An offset token for current page.
+ example: '01631667477600000000000100100374'
type: string
data:
items:
- $ref: '#/definitions/EventType'
+ $ref: '#/definitions/DeviceData'
type: array
has_more:
- description: A flag indicating whether there are more results
- example: 'false'
+ description: Are there more results available.
+ example: false
type: boolean
limit:
- description: 'The number of results to return, (range: 2-1000), or equals
- to total_count'
- example: '50'
+ description: How many objects to retrieve in the page. The minimum limit is
+ 2 and the maximum is 1000. Limit values outside of this range are set to
+ the closest limit.
+ example: 50
+ maximum: 1000
+ minimum: 2
type: integer
object:
- description: 'The entity name: always ''list'''
+ description: The type of this API object is a "list".
example: list
type: string
order:
- description: 'The order of the records to return. Acceptable values: ASC,
- DESC. Default: ASC'
- enum:
- - ASC
- - DESC
- example: ASC
+ description: The order of the records based on creation time, `ASC` or `DESC`;
+ by default `ASC`.
+ example: DESC
type: string
total_count:
- description: The total number or records, if requested. It may be returned
- also for small lists.
- example: '1'
+ example: 1
+ format: integer
type: integer
- type: object
- EventTypeSummary:
+ DeviceQuery:
properties:
- campaign_id:
- description: ID of the associated campaign.
- example: '00000000000000000000000000000000'
- type: string
- count:
- example: 10
- type: integer
created_at:
+ description: The timestamp of when the query was created.
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ etag:
+ description: The entity instance signature.
example: '2017-05-22T12:37:55.576563Z'
format: date-time
type: string
id:
- description: ID of the event type description
- enum:
- - fail
- - success
- - info
- - skipped
- example: fail
+ description: The ID of the query.
+ example: 015c30671894000000000001001001e9
+ type: string
+ name:
+ description: The name of the query.
+ example: example-stored-device-query
type: string
object:
- example: summary_status
+ description: The API resource entity.
+ example: device-query
type: string
- summary_status:
- description: The event type description.
- enum:
- - FAIL
- - SUCCESS
- - INFO
- - SKIPPED
- example: FAIL
+ query:
+ description: The device query.
+ example: id=0158d38771f70000000000010010038c
type: string
- type: object
- EventTypeSummaryList:
+ updated_at:
+ description: The time the object was updated.
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ required:
+ - created_at
+ - etag
+ - id
+ - name
+ - object
+ - query
+ - updated_at
+ DeviceQueryEqNeqFilter:
properties:
- after:
- description: The entity ID to fetch after the given one
- example: 'null'
+ created_at:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
type: string
- data:
- items:
- $ref: '#/definitions/EventTypeSummary'
- type: array
- has_more:
- description: A flag indicating whether there are more results
- example: 'false'
- type: boolean
- limit:
- description: 'The number of results to return, (range: 2-1000), or equals
- to total_count'
- example: '50'
- type: integer
- object:
- description: 'The entity name: always ''list'''
- example: list
+ etag:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
type: string
- order:
- description: 'The order of the records to return. Acceptable values: ASC,
- DESC. Default: ASC'
- enum:
- - ASC
- - DESC
- example: ASC
+ id:
type: string
- total_count:
- description: The total number or records, if requested. It may be returned
- also for small lists.
- example: '1'
- type: integer
- type: object
- FeaturePolicy:
- description: Represents a feature policy. Either the feature or the resource must
- be specified.
- properties:
- action:
- description: Comma-separated list of actions, empty string represents all
- actions.
- example: GET
+ name:
type: string
- allow:
- description: True or false controlling whether an action is allowed or not.
- example: true
- type: boolean
- feature:
- description: Feature name corresponding to this policy.
- example: update-campaigns
- type: string
- inherited:
- description: Flag indicating whether this feature is inherited or overwritten
- specifically.
- example: false
- readOnly: true
- type: boolean
- inherited_from:
- description: An ID indicating where this policy is inherited from.
- example: 016ada3ec2d46665bf66e32e00000000
- pattern: '[a-f0-9]{32}'
- readOnly: true
- type: string
- inherited_type:
- description: Indicates the type of entity this policy is inherited from.
- enum:
- - account
- - template
- - tier_template
- example: account
- readOnly: true
- type: string
- resource:
- description: Resource that is protected by this policy.
- example: /v3/update-campaign
- type: string
- type: object
- Field:
- properties:
- message:
- description: Message describing the erroneous situation.
- type: string
- name:
- description: Name of the erroneous field.
- type: string
- required:
- - message
- - name
- type: object
- FieldMessageEntry:
- properties:
- field:
- description: Field name.
- type: string
- message:
- description: Error message related to the field.
- type: string
- type: object
- FirmwareImage:
- properties:
- created_at:
- description: The time the object was created
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- datafile:
- description: The firmware image file URL
- example: http://example.com/00000000000000000000000000000000
- type: string
- datafile_checksum:
- description: The checksum (sha256) generated for the datafile
- example: '0000000000000000000000000000000000000000000000000000000000000000'
- type: string
- datafile_size:
- description: The size of the datafile in bytes
- format: int64
- type: integer
- description:
- description: The description of the object
- example: ''
- maxLength: 2000
- type: string
- etag:
- description: The entity instance signature
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- id:
- description: The firmware image ID
- example: '00000000000000000000000000000000'
- type: string
- name:
- description: The firmware image name
- example: ''
- maxLength: 128
- type: string
- object:
- description: The API resource entity
- example: firmware-image
- type: string
- updated_at:
- description: The time the object was updated
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- required:
- - created_at
- - datafile
- - datafile_checksum
- - description
- - etag
- - id
- - name
- - object
- - updated_at
- FirmwareImageEqNeqFilter:
- properties:
- created_at:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- datafile:
- type: string
- datafile_checksum:
- type: string
- datafile_size:
- type: integer
- description:
- type: string
- etag:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- id:
- type: string
- name:
+ query:
type: string
updated_at:
example: '2017-05-22T12:37:55.576563Z'
format: date-time
type: string
- FirmwareImageGteLteFilter:
+ DeviceQueryGteLteFilter:
properties:
created_at:
example: '2017-05-22T12:37:55.576563Z'
@@ -3772,20 +4029,12 @@ definitions:
example: '2017-05-22T12:37:55.576563Z'
format: date-time
type: string
- FirmwareImageInNinFilter:
+ DeviceQueryInNinFilter:
properties:
created_at:
example: '2017-05-22T12:37:55.576563Z'
format: date-time
type: string
- datafile:
- type: string
- datafile_checksum:
- type: string
- datafile_size:
- type: integer
- description:
- type: string
etag:
example: '2017-05-22T12:37:55.576563Z'
format: date-time
@@ -3794,11 +4043,13 @@ definitions:
type: string
name:
type: string
+ query:
+ type: string
updated_at:
example: '2017-05-22T12:37:55.576563Z'
format: date-time
type: string
- FirmwareImagePage:
+ DeviceQueryPage:
properties:
after:
example: null
@@ -3806,623 +4057,1025 @@ definitions:
data:
example: '[]'
items:
- $ref: '#/definitions/FirmwareImage'
+ $ref: '#/definitions/DeviceQuery'
type: array
has_more:
+ example: false
type: boolean
limit:
- format: int32
+ example: 1000
+ format: integer
type: integer
object:
example: list
type: string
order:
- description: The order of the records based on creation time, `ASC` or `DESC`;
- by default `ASC`.
- enum:
- - ASC
- - DESC
- example: ASC
+ example: DESC
type: string
total_count:
- format: int32
+ example: 1
+ format: integer
type: integer
- FirmwareManifest:
+ required:
+ - limit
+ - order
+ - object
+ - has_more
+ - total_count
+ - data
+ DeviceQueryPatchRequest:
properties:
- created_at:
- description: The time the object was created
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- datafile:
- description: The URL of the firmware manifest binary
- example: http://example.com/00000000000000000000000000000000
- type: string
- datafile_size:
- description: The size of the datafile in bytes
- format: int64
- type: integer
- description:
- description: The description of the firmware manifest
- example: ''
- maxLength: 2000
+ name:
+ description: The name of the query.
+ maxLength: 200
type: string
- device_class:
- description: The class of the device
- example: 00000000-0000-0000-0000-000000000000
+ query:
+ description: The device query.
+ maxLength: 1000
type: string
- etag:
- description: The entity instance signature
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
+ DeviceQueryPostPutRequest:
+ properties:
+ name:
+ description: The name of the query.
+ maxLength: 200
type: string
- id:
- description: The firmware manifest ID
- example: '00000000000000000000000000000000'
+ query:
+ description: The device query to store. A query is made of key/value pairs
+ separated by ampersands (`&`). The key defines the field name to filter
+ by when applying the query. Refer to the endpoint documentation before applying
+ a filter, as supported fields vary between endpoints.
+ maxLength: 1000
type: string
- key_table:
- description: The key table of pre-shared keys for devices
- example: http://example.com
- format: uri
+ required:
+ - name
+ - query
+ DeviceRequest:
+ properties:
+ accept:
+ description: The content type of an accepted response.
+ example: text/plain
type: string
- name:
- description: The name of the object
- example: ''
- maxLength: 128
+ content-type:
+ description: The content type of the payload.
+ example: text/plain
type: string
- object:
- description: The API resource entity
- example: firmware-manifest
+ method:
+ description: The CoAP request method. Allowed values are GET, POST, PUT and
+ DELETE.
+ example: GET
type: string
- timestamp:
- description: The firmware manifest version as a timestamp
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
+ payload-b64:
+ description: The base64 encoded payload to send to the device.
+ example: dmFsdWUxCg==
type: string
- updated_at:
- description: The time the object was updated
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
+ uri:
+ description: The URI path of the requested resource.
+ example: /5/0/1
type: string
required:
- - created_at
- - datafile
- - description
- - device_class
- - etag
- - id
- - name
- - object
- - timestamp
- - updated_at
- FirmwareManifestEqNeqFilter:
+ - method
+ - uri
+ type: object
+ DeviceToPelionMessagesCounter:
+ description: The number of messages from the device to Device Management.
+ properties:
+ bootstrap_requests:
+ $ref: '#/definitions/BootstrapRequestsCounter'
+ est_requests:
+ $ref: '#/definitions/EstRequestsCounter'
+ observations:
+ $ref: '#/definitions/ObservationsCounter'
+ proxy_responses:
+ $ref: '#/definitions/ProxyResponsesCounter'
+ registration_deletes:
+ $ref: '#/definitions/RegistrationDeletesCounter'
+ registration_updates:
+ $ref: '#/definitions/RegistrationUpdatesCounter'
+ registrations:
+ $ref: '#/definitions/RegistrationsCounter'
+ total_count:
+ description: The number of all inbound requests from devices to Device Management.
+ format: int64
+ minimum: 0
+ type: integer
+ required:
+ - total_count
+ - registrations
+ - registration_updates
+ - registration_deletes
+ - observations
+ - est_requests
+ - proxy_responses
+ - bootstrap_requests
+ type: object
+ EchoDevice:
+ description: The Device Echo object representing the device.
properties:
created_at:
- example: '2017-05-22T12:37:55.576563Z'
+ description: Response creation UTC time.
+ example: 2020-10-20 10:30:55.123000
format: date-time
type: string
- datafile:
- type: string
- datafile_size:
- type: integer
- description:
+ device_id:
+ description: The device ID.
+ example: 015f3850a657000000000001001002ab
type: string
- device_class:
+ endpoint_name:
+ description: The endpoint name.
+ example: Sensor3222454
type: string
- etag:
- example: '2017-05-22T12:37:55.576563Z'
+ last_desired_at:
+ description: The last time a write command was initiated on a resource.
+ example: 2019-10-20 10:30:55.123000
format: date-time
type: string
- id:
- type: string
- name:
- type: string
- timestamp:
- example: '2017-05-22T12:37:55.576563Z'
+ last_reported_at:
+ description: The last time any resource's reported value was updated.
+ example: 2019-10-20 10:30:55.123000
format: date-time
type: string
+ object:
+ description: API Resource name
+ example: device-echo
+ type: string
+ resources:
+ description: The list of device resources stored in Device Echo.
+ items:
+ $ref: '#/definitions/EchoResource'
+ type: array
updated_at:
- example: '2017-05-22T12:37:55.576563Z'
+ description: The time of last registration event of a Device Echo object.
+ example: 2019-10-20 10:30:55.123000
format: date-time
type: string
- FirmwareManifestGteLteFilter:
+ required:
+ - id
+ type: object
+ EchoResource:
+ description: The representation of a single resource of the device stored in Device
+ Echo.
properties:
- created_at:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- etag:
- example: '2017-05-22T12:37:55.576563Z'
+ desired:
+ $ref: '#/definitions/EchoResourceDesired'
+ reported:
+ $ref: '#/definitions/EchoResourceReported'
+ resource_path:
+ description: The path of the resource.
+ example: /3/0/1
+ type: string
+ subscribed:
+ description: System-level subscription status of the resource. If any of the
+ applications has placed a subscription, the status is true. Overlapping
+ subscriptions from multiple applications do not increase the load on the
+ device as the server handles the multiplexing.
+ type: boolean
+ type: object
+ EchoResourceDesired:
+ description: Resource value written, or queued to be written to the device.
+ properties:
+ desired_at:
+ description: The time of the latest value write was initiated.
+ example: 2019-10-20 10:30:55.123000
format: date-time
type: string
- timestamp:
- example: '2017-05-22T12:37:55.576563Z'
+ status:
+ description: The status of the desired value. 0 = 'pending write', 1 = 'success',
+ 2 = 'failed'.
+ format: integer
+ type: number
+ status_updated_at:
+ description: The time of the last status update.
+ example: 2019-10-20 10:30:55.123000
format: date-time
type: string
- updated_at:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
+ value:
+ description: The desired value in base64 encoded format.
+ example: RGVzaXJlZCB2YWx1ZS4=
+ format: byte
type: string
- FirmwareManifestInNinFilter:
+ type: object
+ EchoResourceReported:
+ description: Reported single resource data received from the device.
properties:
- created_at:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- datafile:
- type: string
- datafile_size:
- type: integer
- description:
+ content_type:
+ description: Content type of the reported resource value.
+ example: text/plain
type: string
- device_class:
+ expires_at:
+ description: The time after which the reported value is not valid, calculated
+ based on the max-age of the resource value the device reported.
+ example: 2019-10-20 10:30:55.123000
+ format: date-time
type: string
- etag:
- example: '2017-05-22T12:37:55.576563Z'
+ reported_at:
+ description: The time the last value was reported.
format: date-time
type: string
- id:
+ value:
+ description: The reported value in base64 encoded format.
+ example: UmVwb3J0ZWQgdmFsdWUu
+ format: byte
type: string
- name:
+ type: object
+ EndpointData:
+ properties:
+ ep:
+ description: Unique Device Management device ID.
+ example: 015f3850a657000000000001001002ab
type: string
- timestamp:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
+ ept:
+ description: Endpoint type.
+ example: Light
type: string
- updated_at:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
+ original-ep:
+ description: If device registration is initiated with a self-provided endpoint
+ name, Device Management provides a new device ID for subsequent use. The
+ new platform-provided Device ID is forwarded as the 'ep' property and the
+ original self-provided one as the optional 'original-ep' property in a registration
+ notification. The name and ID can then be mapped accordingly. Device Management
+ saves the original endpoint name in the Device Directory for future device
+ registrations so you don't need to do mapping again.
+ example: my-device-123
type: string
- FirmwareManifestPage:
+ q:
+ description: Queue mode (default value is false).
+ example: false
+ type: boolean
+ resources:
+ items:
+ $ref: '#/definitions/ResourcesData'
+ type: array
+ type: object
+ EnrollmentId:
+ properties:
+ enrollment_identity:
+ description: Enrollment identity.
+ example: A-35:e7:72:8a:07:50:3b:3d:75:96:57:52:72:41:0d:78:cc:c6:e5:53:48:c6:65:58:5b:fa:af:4d:2d:73:95:c5
+ pattern: ^A-[A-Za-z0-9:]{95}$
+ type: string
+ required:
+ - enrollment_identity
+ type: object
+ EnrollmentIdentities:
properties:
after:
- example: null
+ description: ID
+ example: 00005a4e027f0a580a01081c00000000
+ pattern: ^[A-Za-z0-9]{32}
type: string
data:
- example: '[]'
items:
- $ref: '#/definitions/FirmwareManifest'
+ $ref: '#/definitions/EnrollmentIdentity'
type: array
has_more:
+ example: true
type: boolean
limit:
- format: int32
+ description: Range 2-1000, or default.
+ example: 50
+ maximum: 1000
+ minimum: 2
type: integer
object:
+ enum:
+ - list
example: list
type: string
order:
- description: 'The order of the records to return. Acceptable values: ASC,
- DESC. Default: ASC'
+ default: ASC
enum:
- ASC
- DESC
example: ASC
type: string
total_count:
+ example: 100
format: int32
+ minimum: 1
type: integer
- ForbiddenErrorResponse:
- description: 403 Forbidden.
+ required:
+ - object
+ - limit
+ - after
+ - order
+ - has_more
+ - total_count
+ - data
+ type: object
+ EnrollmentIdentity:
properties:
- code:
- description: Response code. Always set to 403.
+ account_id:
+ description: ID
+ example: 00005a4e027f0a580a01081c00000000
+ type: string
+ claimed_at:
+ description: The time the device was claimed.
+ format: date-time
+ type: string
+ created_at:
+ description: The time of the enrollment identity creation.
+ format: date-time
+ type: string
+ enrolled_device_id:
+ description: The ID of the device in the Device Directory once it is registered.
+ example: 00005a4e027f0a580a01081c00000000
+ pattern: ^[A-Za-z0-9]{32}
+ type: string
+ enrollment_identity:
+ description: Enrollment identity.
+ example: A-35:e7:72:8a:07:50:3b:3d:75:96:57:52:72:41:0d:78:cc:c6:e5:53:48:c6:65:58:5b:fa:af:4d:2d:73:95:c5
+ pattern: ^A-[A-Za-z0-9:]{95}$
+ type: string
+ etag:
+ example: 7642xfaxz
+ pattern: '[A-Za-z0-9]{1,256}'
+ type: string
+ expires_at:
+ description: The enrollment claim expiration time. If the device does not
+ connect to Device Management before expiration, the claim is removed without
+ separate notice.
+ format: date-time
+ type: string
+ id:
+ description: Enrollment identity.
+ example: 00005a4e027f0a580a01081c00000000
+ pattern: ^[A-Za-z0-9]{32}
+ type: string
+ object:
enum:
- - 403
+ - enrollment
+ example: enrollment
+ type: string
+ required:
+ - object
+ - id
+ - etag
+ - account_id
+ - created_at
+ - expires_at
+ - claimed_at
+ - enrollment_identity
+ - enrolled_device_id
+ type: object
+ ErrorObjectResponse:
+ properties:
+ code:
+ description: Error code. Correlates with response status code.
+ format: int32
type: integer
+ fields:
+ description: A list of request fields that failed validation.
+ items:
+ $ref: '#/definitions/FieldMessageEntry'
+ type: array
message:
- description: A human-readable message with detailed info.
+ description: Error message.
type: string
object:
- description: Always set to `error`.
- enum:
- - error
+ description: 'Entity name: `error`.'
type: string
request_id:
- description: Request ID
+ description: Request ID from JWT.
type: string
type:
- description: Error type. Always set to `forbidden`.
- enum:
- - forbidden
+ description: Error type.
type: string
required:
- - object
+ - code
+ - fields
- message
+ - object
- request_id
- type
- - code
type: object
- GlobalSignCredentials:
- description: 'Describes the credentials required to connect to the GlobalSign
- account.
-
- The values should be taken from GlobalSign support upon account creation.
-
- '
+ ErrorResponse:
properties:
- api_key:
- description: 'Unique ID for API client (provided by GlobalSign).
-
- '
- example: e510e289e6cd8947
- maxLength: 1000
+ code:
+ description: HTTP response code
+ example: 400
+ format: int32
+ type: integer
+ fields:
+ description: Request fields which failed validation.
+ items:
+ properties:
+ message:
+ description: Message describing the error condition.
+ type: string
+ name:
+ description: Name of the field which caused the error.
+ type: string
+ required:
+ - name
+ - message
+ type: object
+ type: array
+ message:
+ description: A human readable informative explanation
+ example: Validation error
type: string
- api_secret:
- description: 'API Secret matching the API key (provided by GlobalSign).
-
- '
- example: a477a8393d17a55ecb2ba6a61f58feb84770b621
- format: password
- maxLength: 250
+ object:
+ description: Entity name, always `error`.
+ enum:
+ - error
type: string
- client_certificate:
- description: 'The client certificate provided by GlobalSign to allow HTTPS
- connection over TLS/SSL.
-
- The certificate wraps a public key that matches a private key provided by
- the customer.
-
- The certificate must be in PEM format.
-
- '
- example: '"-----BEGIN CERTIFICATE-----MIIC7zCCAdegAwIBAgIJANTlU4x5S74VMA0GCSqGSIb3DQEBCwUAMA4xDDAKBgNVBAoMA0FybTAeFw0xODAzMTExMzE5MTFaFw0xOTAzMTExMzE5MTFaMA4xDDAKBgNVBAoMA0FybTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJWLStsVMJULZtxdieK9qocM4ymDXMaAusmd9TZLzBgznKQe/CW2yxyA8C8K5e6MmvMYGeKDd4Lkw/ezOj2OsUj2xzNIltUxpGi/GhsNYiN/khNJa/Y1SllLoihJAPm/xbMywOBRu/dM88PiJsNZccOk0I8DYvvyAs9wCTkbKLnfHygl98DCRqXw7nBCplU6F03qpUd/4BUtMtugyqt7yboGH+4YewnUh4Yh4QNOJIvE93Ob++eKjO3pIOYEhQmUxzOLaLNuWXlv2l1WuN281hUP4XBcV8mCzRQfTBBDYTWt+5BEWoLOUkXjW0Um6EAaN3usph1IKDEH6Ia5VHP4Pj0CAwEAAaNQME4wHQYDVR0OBBYEFLsfYZxFcQTjPJKYMjHI2In316fmMB8GA1UdIwQYMBaAFLsfYZxFcQTjPJKYMjHI2In316fmMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFl08GFsIkkUs6M7QgCWmsnwP6PtD8V87wM1GAqQQlOOeztaeRR2TEOeYiKRZQugYszJ/FVfVp4ggqzepJMn6UZ42j5nmSJs+6t79i23QAzX1zNQ354lr/t7kt3fMdhuL3AP0oZGzdy+EnXXiWeAD22UwzvVmLt38ypJIl+pmTsx9jJy4PN7yoRgtP9k+50m3X6oDxVruehC/JPSeTvEhqyLW3fLcG6IoJMX3vIwfO9uXbFJumTowQeViNJJ9duWvD2KBXn/muOOBe97TPuvAms1gOtMmmPT9/jpo9b4+NsfFiAN6bMici81aIKZzLC+lLGOUmR2fFJyM5OsVLxKsko=-----END
- CERTIFICATE-----"'
- maxLength: 3000
- type: string
- passphrase:
- description: 'The passphrase to decrypt the private key in case it is encrypted.
-
- Empty if the private key is not encrypted.
-
- '
- example: helloworld
- format: password
- maxLength: 1000
- type: string
- private_key:
- description: 'The private key that matches the client certificate to allow
- HTTPS connection over TLS/SSL.
-
- The private key may be encrypted using a symmetric encryption key derived
- from a passphrase.
-
- The private key must be in PEM format.
-
- '
- example: '"-----BEGIN RSA PRIVATE KEY-----\nProc-Type: 4,ENCRYPTED\nDEK-Info:
- DES-EDE3-CBC,CCAC26A4133947CB\n\np3KJ4FI3wcz3I0MtiLkrznkjWFvprVmoNywySUGb5IqZViJZqCMEsyU9a9iDsSfP\nZ07cg9GviV21WYIPSxZOQrpy1g1VWILzFnH+J6z8dSH4mxXh0PwdOzYgAeqkrIVM\nJ7KRm6t222dZFjjXK3eEcLmBLGo29XwVJxKHx+l4++gU1LZmeHZR5M8fJ4jejUly\n7sqzPlmRF0N3I4lwKVj+PfQTVz43QoCnpxOjuSEL4liBrc2agY2xH1O0PFyHimz9\n3XM9HR/iuPHW0N2D+NPjXlWKacerupH9d4i9IYIagzB+HTgej8limdo03GmmxcZ6\nYNa58n5yQSaqu0TPRU9DsrKeGjadHTlZQGdzfq1SWsROCnHLrXFKE2ozIG3+hxA5\nujBF/QWpX5+inXUwDJhBxp8isHbPEnBEUUd6ZRzCTjvN0jaUti5B9yFhO2G6mbE8\nCvhyzQK8oJqsjZXnlcpPf95LP+9XbcCDjLSIaWJstzXO9tPiv6+x1MVWmivtRHcC\nSTzpx8jAGCiG6ejLqWB87ZXiZm7ujlCBheHSf5RHwNHhUvoP2JEYalDDRxjcDMSx\n4uV42Np4yJlIQEDlGHcBlXoL7vEukFpuWgkYdpcZy/Ou9qz8mXrpLcu8C8MhLmSC\nixGoR5iRhV7cxoHLyuCzj87eYEA73Xu238DQorSEEuiVFnLzQ2+PJMs4qoI14q/L\notlBDz+Ko6DrU/EZROYmiqMkLKXR2sx9zNAJwPYRs6nSH08tZ3dwqzZbgtP3Wazi\nhLWHt5/En7wQRA5a+/dDEHXSoLvvSQ9jvhclhWf+eCYuq2eH+g54oyJGRSY+8GV7\nujhLxkzl/3OZdhZPWoz4U13KpbSTcNWu5Y7oGDoabw19UbvqmLf1PJkpDH/tQgzB\nxYtsLBRUcofpYoeIiIxfAA4do5WilJc8xqrGhkE4WcHfY24HXAiOvsjbxV+BRprX\n1jtgJpV/9nJESMap+8PxipGUFRGjB83/uwJaa6mLftEKflX8i4MZ+HnqraXERsqA\nWRUcDHIWmFfpzIB3iNuxawVvPH8NdCSPmQ9qTb8Cozl0AuOK2E9S+ke8oiYQScWR\nLdu+zhej7GjuQ9R+Ub+wPWqvOA5qLXejqnCexVScDUuN+z9JWM3N2FG1MwxhAzhP\ndEfoQHoBn6uyOmrVGP6fosV3chqhPoec42KeOAm1xDvx692isaIy1jPgIyPxeqhm\n2Tw4E+02R7dlP8Ljf7JzfLm4oKpWHWlcHeqg24x6lY/wXU1RBcWaTa0AQUwoGm2m\nIQCPfIqOEv/QC2HpO7SVCYkl65KwR0oTd1AzYxdxEq3xHQbh69EL0FGZPVxVCPI+\nhEAyifKy1/tm3l91Rf/kGpHY7nIQKCXH49tmFwix8gke2nZJmRgX7/zAdMOAKeKH\nAaIl4nQtv14EbaasMgnn9qgaDYnWzaReEob2QlQ/WYlTor61+KFpGtcf9jAkgudT\n2op+4CF7wT2+aTXdtkVWfmv++iB8GnlqZdxLvyG1cTYjjYHVFbMSWQnxzQqiE2ms\nQgp+byjWCumpsWTMdTO+d9NkDOo80vDpaRxEgebmhJ0MbX+eFjBgVg==\n-----END
- RSA PRIVATE KEY-----"'
- maxLength: 3000
+ request_id:
+ description: ID of the request.
+ example: 0161991d63150242ac12000600000000
type: string
- required:
- - api_key
- - api_secret
- - client_certificate
- - private_key
- type: object
- GroupCreationInfo:
- description: This object is used when creating new groups.
- properties:
- members:
- $ref: '#/definitions/SubjectList'
- description: The members of the group as arrays of user and API key IDs.
- name:
- description: The group name.
- maxLength: 100
+ type:
+ description: Error type used to categorise the error.
+ example: validation_error
type: string
required:
- - name
+ - code
+ - message
+ - object
+ - request_id
+ - type
type: object
- GroupSummary:
- description: This object contains basic information about groups.
+ EstRequestsCounter:
+ description: The number of certificate creation requests received from devices
+ during bootstrap.
+ format: int64
+ minimum: 0
+ type: integer
+ EventType:
properties:
- account_id:
- description: The ID of the account this group belongs to.
- example: 01619571e2e90242ac12000600000000
- pattern: '[a-f0-9]{32}'
+ campaign_id:
+ description: ID of the associated campaign.
+ example: 016e652be671000000000001001001e5
type: string
- apikey_count:
- description: The number of API keys in this group.
- example: 0
- format: int32
+ count:
+ example: 10
type: integer
created_at:
- description: Creation UTC time RFC3339.
- example: '2018-02-13T09:35:20Z'
+ example: '2017-05-22T12:37:55.576563Z'
format: date-time
type: string
- etag:
- description: API resource entity version.
- example: '1'
+ description:
+ example: Update error, nonspecific network error
type: string
- id:
- description: The ID of the group.
- example: 01619571dec00242ac12000600000000
- pattern: '[a-f0-9]{32}'
+ event_type:
+ example: UPD4_FAIL_101
type: string
- name:
- description: The name of the group.
- example: Administrators
- maxLength: 100
+ id:
+ example: upd_fail_101
type: string
object:
- description: 'Entity name: always `group`.'
- enum:
- - group
+ description: 'Entity name: always ''event-type''.'
+ example: event-type
type: string
- updated_at:
- description: Last update UTC time RFC3339.
- example: '2018-02-14T15:24:14Z'
- format: date-time
+ summary_status:
+ example: FAIL
+ type: string
+ summary_status_id:
+ example: fail
type: string
- user_count:
- description: The number of users in this group.
- example: 1
- format: int32
- type: integer
- required:
- - account_id
- - apikey_count
- - etag
- - id
- - name
- - object
- - user_count
type: object
- GroupSummaryList:
+ EventTypeList:
properties:
after:
description: The entity ID to fetch after the given one.
- example: 01619571f3c00242ac12000600000000
- pattern: '[a-f0-9]{32}'
+ example: 'null'
type: string
data:
- description: A list of entities.
+ enum:
+ - fail
+ - skipped
+ - info
+ - success
items:
- $ref: '#/definitions/GroupSummary'
+ $ref: '#/definitions/EventType'
type: array
has_more:
- description: Flag indicating whether there are more results.
- example: false
+ description: A flag indicating whether there are more results.
+ example: 'false'
type: boolean
limit:
- description: The number of results to return (2-1000), or equal to `total_count`.
- example: 50
- format: int32
+ description: 'The number of results to return, (range: 2-1000), or equals
+ to total_count.'
+ example: '50'
type: integer
object:
- description: 'Entity name: always `list`.'
- enum:
- - list
+ description: 'The entity name: always ''list''.'
+ example: list
type: string
order:
- description: 'The order of the records to return based on creation time. Available
- values: ASC, DESC; by default ASC.'
+ description: 'The order of the records to return. Acceptable values: ASC,
+ DESC. Default: ASC.'
enum:
- ASC
- DESC
+ example: ASC
type: string
total_count:
- description: The total number of records, if requested.
- example: 20
- format: int32
+ description: The total number or records, if requested. It may be returned
+ also for small lists.
+ example: '1'
type: integer
- required:
- - data
- - has_more
- - limit
- - object
- - total_count
- type: object
- GroupUpdateInfo:
- description: This object is used when Update groups.
- properties:
- name:
- description: The group name.
- maxLength: 100
- type: string
- required:
- - name
type: object
- IdentityProviderCreationReq:
- description: This object is used for creating new federated identity provider
- module.
+ EventTypeSummary:
properties:
- description:
- description: Description for the identity provider.
- maxLength: 500
+ campaign_id:
+ description: ID of the associated campaign.
+ example: 016e652be6710000000000010010013d
type: string
- name:
- description: Name of the identity provider.
- maxLength: 100
+ count:
+ example: 10
+ type: integer
+ created_at:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
type: string
- oidc_attributes:
- $ref: '#/definitions/OIDCInfo'
- description: OIDC specific attributes.
- saml2_attributes:
- $ref: '#/definitions/SAML2Req'
- description: SAML2 specific attributes.
- status:
- description: Status of the identity provider.
+ id:
+ description: ID of the event type description.
enum:
- - ACTIVE
- - SUSPENDED
+ - fail
+ - success
+ - info
+ - skipped
+ example: fail
type: string
- type:
- description: Identity provider type.
+ object:
+ description: 'Entity name: always ''summary_status''.'
+ example: summary_status
+ type: string
+ summary_status:
+ description: The event type description.
enum:
- - SAML2
+ - FAIL
+ - SUCCESS
+ - INFO
+ - SKIPPED
+ example: FAIL
type: string
- required:
- - name
- - type
type: object
- IdentityProviderInfo:
+ EventTypeSummaryList:
properties:
- account_id:
- description: The ID of the account the identity provider belongs to.
- example: 01619571e2e90242ac12000600000000
- pattern: '[a-f0-9]{32}'
- type: string
- created_at:
- description: Creation UTC time RFC3339.
- example: '2018-02-13T09:35:20Z'
- format: date-time
+ after:
+ description: The entity ID to fetch after the given one.
+ example: 'null'
type: string
- description:
- description: Description for the identity provider.
- maxLength: 500
+ data:
+ items:
+ $ref: '#/definitions/EventTypeSummary'
+ type: array
+ has_more:
+ description: A flag indicating whether there are more results.
+ example: 'false'
+ type: boolean
+ limit:
+ description: 'The number of results to return, (range: 2-1000), or equals
+ to total_count.'
+ example: '50'
+ type: integer
+ object:
+ description: 'The entity name: always ''list''.'
+ example: list
type: string
- etag:
- description: API resource entity version.
- example: '1'
+ order:
+ description: 'The order of the records to return. Acceptable values: ASC,
+ DESC. Default: ASC.'
+ enum:
+ - ASC
+ - DESC
+ example: ASC
type: string
- id:
- description: Entity ID.
- example: 01619571d01d0242ac12000600000000
- pattern: '[a-f0-9]{32}'
+ total_count:
+ description: The total number or records, if requested. It may be returned
+ also for small lists.
+ example: '1'
+ type: integer
+ type: object
+ FeaturePolicy:
+ description: Represents a feature policy. Either the feature or the resource must
+ be specified.
+ properties:
+ action:
+ description: Comma-separated list of actions, empty string represents all
+ actions.
+ example: GET
type: string
- is_default:
- description: Flag indicating whether this is the global default identity provider.
+ allow:
+ description: True or false controlling whether an action is allowed or not.
+ example: true
+ type: boolean
+ feature:
+ description: Feature name corresponding to this policy.
+ example: update-campaigns
+ type: string
+ inherited:
+ description: Flag indicating whether this feature is inherited or overwritten
+ specifically.
+ example: false
readOnly: true
type: boolean
- name:
- description: Name of the identity provider.
- maxLength: 100
+ inherited_from:
+ description: An ID indicating where this policy is inherited from.
+ example: 016ada3ec2d46665bf66e32e00000000
+ pattern: '[a-f0-9]{32}'
+ readOnly: true
type: string
- object:
- description: 'Entity name: always ''identity-provider'''
+ inherited_type:
+ description: Indicates the type of entity this policy is inherited from.
enum:
- - identity-provider
+ - account
+ - template
+ - tier_template
+ example: account
+ readOnly: true
type: string
- saml2_attributes:
- $ref: '#/definitions/SAML2Info'
- description: SAML2 specific attributes.
- status:
- description: Status of the identity provider.
- enum:
- - ACTIVE
- - SUSPENDED
+ resource:
+ description: Resource that is protected by this policy.
+ example: /v3/update-campaign
type: string
- type:
- description: Identity provider type.
- enum:
- - NATIVE
- - MBED
- - SAML2
- - OIDC
+ type: object
+ Field:
+ properties:
+ message:
+ description: Message describing the erroneous situation.
type: string
- updated_at:
- description: Last update UTC time RFC3339.
- example: '2018-02-14T15:24:14Z'
- format: date-time
+ name:
+ description: Name of the erroneous field.
type: string
required:
- - etag
- - id
+ - message
- name
- - object
- - type
type: object
- IdentityProviderList:
+ FieldMessageEntry:
+ properties:
+ field:
+ description: Field name.
+ type: string
+ message:
+ description: Error message related to the field.
+ type: string
+ type: object
+ FirmwareImage:
+ properties:
+ created_at: *id014
+ datafile:
+ description: The firmware image file URL.
+ example: http://bucket.com/myimage.elf
+ type: string
+ datafile_checksum:
+ description: The checksum (sha256) generated for the datafile.
+ example: e979fe432d6a19b0e70a93b33ac29094cd5fe35a8fd5fbedfd383d8d107d6a7e
+ type: string
+ datafile_size:
+ description: The size of the datafile in bytes.
+ format: int64
+ type: integer
+ description:
+ description: The description of the object.
+ example: a description
+ format: free text
+ maxLength: 2000
+ type: string
+ etag: *id015
+ id:
+ description: The firmware image ID.
+ example: 016e652be671000000000001001001e5
+ pattern: '[A-Fa-f0-9]{32}'
+ type: string
+ name:
+ description: The firmware image name.
+ format: free text
+ maxLength: 128
+ type: string
+ object:
+ description: 'Entity name: always ''firmware-image''.'
+ example: firmware-image
+ type: string
+ updated_at: *id016
+ FirmwareImageEqNeqFilter:
+ properties:
+ created_at:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ datafile:
+ type: string
+ datafile_checksum:
+ type: string
+ datafile_size:
+ type: integer
+ description:
+ type: string
+ etag:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ id:
+ example: 015c3029f6f7000000000001001000c3
+ pattern: '[A-Fa-f0-9]{32}'
+ type: string
+ name:
+ type: string
+ updated_at:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ FirmwareImageGteLteFilter:
+ properties:
+ created_at:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ etag:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ updated_at:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ FirmwareImageInNinFilter:
+ properties:
+ created_at:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ datafile:
+ type: string
+ datafile_checksum:
+ type: string
+ datafile_size:
+ type: integer
+ description:
+ type: string
+ etag:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ id:
+ example: 015c3029f6f7000000000001001000c3
+ pattern: '[A-Fa-f0-9]{32}'
+ type: string
+ name:
+ type: string
+ updated_at:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ FirmwareImagePage:
properties:
after:
- description: The entity ID to fetch after the given one.
- example: 01619571f3c00242ac12000600000000
- pattern: '[a-f0-9]{32}'
+ example: null
type: string
data:
- description: A list of entities.
items:
- $ref: '#/definitions/IdentityProviderInfo'
+ $ref: '#/definitions/FirmwareImage'
type: array
has_more:
- description: Flag indicating whether there are more results.
- example: false
type: boolean
limit:
- description: The number of results to return , or equal to `total_count`.
- example: 50
format: int32
type: integer
object:
- description: 'Entity name: always `list`.'
- enum:
- - list
+ description: 'Entity name: always ''list''.'
+ example: list
type: string
order:
- description: 'The order of the records to return based on creation time. Available
- values: ASC, DESC; by default ASC.'
+ description: The order of the records based on creation time, `ASC` or `DESC`;
+ by default `ASC`.
enum:
- ASC
- DESC
+ example: ASC
type: string
total_count:
- description: The total number of records, if requested.
- example: 20
format: int32
type: integer
- required:
- - data
- - has_more
- - limit
- - object
- - total_count
- type: object
- IdentityProviderUpdateReq:
- description: Update existing federated identity provider module.
+ FirmwareManifest:
properties:
+ created_at: *id014
+ datafile:
+ description: The URL of the ASN.1 DER-encoded firmware manifest binary.
+ example: http://bucket.com/mymanifest.manifest
+ format: uri
+ type: string
+ datafile_size:
+ description: The size of the firmware manifest in bytes.
+ format: int64
+ type: integer
+ delivered_payload_digest:
+ description: Digest (SHA256, hex-encoded) of the payload to deliver to the
+ device.
+ example: c520fc771c0482ad39e983d27cf725a7c724fe58c616129a34a420d1941068bc
+ format: hex
+ type: string
+ delivered_payload_size:
+ description: The size in bytes of the payload to deliver to the device.
+ format: int64
+ type: integer
+ delivered_payload_type:
+ description: Type of the payload to deliver to the device (full or delta image).
+ enum:
+ - full
+ - delta
+ type: string
+ delivered_payload_url:
+ description: The URL of the payload to deliver to the device.
+ example: http://bucket.com/myimage.elf
+ format: uri
+ type: string
description:
- description: Description for the identity provider.
- maxLength: 500
+ description: The description of the firmware manifest.
+ example: ''
+ format: free text
+ maxLength: 2000
type: string
- name:
- description: Name of the identity provider.
- maxLength: 100
+ device_class:
+ description: The device class ID.
+ example: 42c4d8de-704d-546e-b9d3-1ce1eb316167
+ format: uuid
type: string
- oidc_attributes:
- $ref: '#/definitions/OIDCInfo'
- description: OIDC specific attributes.
- saml2_attributes:
- $ref: '#/definitions/SAML2Req'
- description: SAML2 specific attributes.
- status:
- description: Status of the identity provider.
- enum:
- - ACTIVE
- - SUSPENDED
+ device_vendor:
+ description: The device vendor ID.
+ example: 5d645eae-c231-5a89-9764-2e655cd94fa8
+ format: uuid
type: string
- type:
- description: Identity provider type.
+ etag: *id015
+ id:
+ description: The firmware manifest ID.
+ example: '12345678901234567890123456789012'
+ pattern: '[A-Fa-f0-9]{32}'
+ type: string
+ key_table:
+ description: The key table of pre-shared keys for devices.
+ example: http://example.com/key-table
+ format: uri
+ type: string
+ manifest_schema_version:
+ description: Version of the manifest schema (1 or 3).
enum:
- - SAML2
+ - '1'
+ - '3'
type: string
- required:
- - name
- - type
- type: object
- IdpPublicKey:
- description: Represents provider's public key and key ID used to sign ID tokens.
- PEM-encoded.
+ name:
+ description: The name of the manifest.
+ example: manifest_name
+ format: free text
+ maxLength: 128
+ type: string
+ object:
+ description: 'Entity name: always ''firmware-manifest''.'
+ example: firmware-manifest
+ type: string
+ parsed_raw_manifest:
+ description: 'Raw manifest in JSON format, parsed from ASN.1 DER encoding.
+
+ Fields may change. Backwards compatibility is not guaranteed.
+
+ Recommended for debugging only.
+
+ '
+ type: object
+ precursor_payload_digest:
+ description: Digest (SHA256, hex-encoded) of the currently installed payload.
+ example: 54d640fcd687c9b13420b9be66a265494899002aad1b7370cfb3dbfd7fbec42f
+ type: string
+ timestamp:
+ description: The firmware manifest version as a timestamp.
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ update_priority:
+ description: Update priority, passed to the application callback when an update
+ is performed. Allows the application to make application-specific decisions.
+ format: int64
+ type: integer
+ updated_at: *id016
+ FirmwareManifestEqNeqFilter:
properties:
- key:
- description: The public key.
+ created_at:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
type: string
- kid:
- description: The public key ID.
+ datafile:
type: string
- type: object
- Image:
- format: binary
- type: string
- InternalServerErrorResponse:
- description: 500 Internal server error response.
+ datafile_size:
+ type: integer
+ description:
+ type: string
+ device_class:
+ type: string
+ etag:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ id:
+ example: 015c3029f6f7000000000001001000c3
+ pattern: '[A-Fa-f0-9]{32}'
+ type: string
+ name:
+ format: free text
+ maxLength: 128
+ type: string
+ timestamp:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ updated_at:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ FirmwareManifestGteLteFilter:
+ properties:
+ created_at:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ etag:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ timestamp:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ updated_at:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ FirmwareManifestInNinFilter:
+ properties:
+ created_at:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ datafile:
+ type: string
+ datafile_size:
+ type: integer
+ description:
+ type: string
+ device_class:
+ type: string
+ etag:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ id:
+ example: 015c3029f6f7000000000001001000c3
+ pattern: '[A-Fa-f0-9]{32}'
+ type: string
+ name:
+ format: free text
+ maxLength: 128
+ type: string
+ timestamp:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ updated_at:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ FirmwareManifestPage:
+ properties:
+ after:
+ example: null
+ type: string
+ data:
+ items:
+ $ref: '#/definitions/FirmwareManifest'
+ type: array
+ has_more:
+ type: boolean
+ limit:
+ format: int32
+ type: integer
+ object:
+ description: 'Entity name: always ''list''.'
+ example: list
+ type: string
+ order:
+ description: 'The order of the records to return. Acceptable values: ASC,
+ DESC. Default: ASC.'
+ enum:
+ - ASC
+ - DESC
+ example: ASC
+ type: string
+ total_count:
+ format: int32
+ type: integer
+ FirmwareUpdatesCounter:
+ description: The total number of successful firmware update operations in the
+ requested time.
+ format: int64
+ minimum: 0
+ type: integer
+ ForbiddenErrorResponse:
+ description: 403 Forbidden.
properties:
code:
- description: Response code. Always set to 500.
+ description: Response code. Always set to 403.
enum:
- - 500
+ - 403
type: integer
message:
description: A human-readable message with detailed info.
@@ -4436,9 +5089,9 @@ definitions:
description: Request ID
type: string
type:
- description: Error type. Always set to `internal_error`.
+ description: Error type. Always set to `forbidden`.
enum:
- - internal_error
+ - forbidden
type: string
required:
- object
@@ -4447,128 +5100,278 @@ definitions:
- type
- code
type: object
- ListOfPreSharedKeysWithoutSecret:
+ GetTrustAnchorsResponse:
properties:
after:
- description: An offset token for current page.
- example: 001e001000120010fac8f300487f11e8839a459edde8bd42f07fffffebf07fffffebb1219cc7862b64bbaf775dc545e274810004
- type: string
- continuation_marker:
- description: An offset token for fetching the next page. Note that exactly
- the same limit needs to be used on the request for fetching subsequent pages.
- example: 001e001000120010fac8f300487f11e8839a459edde8bd42f07fffffebf07fffffebb1219cc7862b64bbaf775dc545e274810005
+ description: An offset token for the current page.
+ example: '01631667477600000000000100100374'
+ pattern: '[A-Fa-f0-9]{32}'
type: string
data:
- description: Array of the PSK entries. The array is empty if there are no
- PSKs.
+ description: The list of trust anchors of the account.
items:
- $ref: '#/definitions/PreSharedKeyWithoutSecret'
- minLength: 0
+ $ref: '#/definitions/TrustAnchorResponse'
type: array
has_more:
- description: More results are available.
- example: true
+ description: Indicates whether additional results are available.
+ example: false
type: boolean
limit:
- description: The value of limit query parameter from the request, or default
- if not specified.
- example: 50
+ default: 50
+ description: Indicates how many objects to retrieve in the page. The minimum
+ limit is 2 and the maximum is 1000. Limit values outside of this range are
+ set to the closest limit.
+ maximum: 1000
+ minimum: 2
type: integer
object:
- description: The type of this API object is a "list".
+ description: The type of this API object is a `list`.
example: list
type: string
order:
- description: Record order based on creation time.
+ description: Indicates how to order the entries based on when they were created.
+ enum:
+ - ASC
+ - DESC
example: DESC
type: string
- required:
- - object
- - limit
- - order
- - has_more
- - data
+ total_count:
+ example: 1
+ format: integer
+ type: integer
type: object
- LoginHistory:
- description: Represents an entry in login history.
+ GlobalSignCredentials:
+ description: 'The credentials required to connect to the GlobalSign account.
+
+ The values should be taken from GlobalSign support upon account creation.'
properties:
- date:
- description: UTC time RFC3339 for this login attempt.
- example: '2018-02-14T17:52:07Z'
- format: date-time
+ api_key:
+ description: Unique ID for API client (provided by GlobalSign).
+ example: e510e289e6cd8947
+ maxLength: 1000
type: string
- ip_address:
- description: IP address of the client.
- example: 127.0.0.1
+ api_secret:
+ description: API secret matching the API key (provided by GlobalSign).
+ example: a477a8393d17a55ecb2ba6a61f58feb84770b621
+ format: password
+ maxLength: 250
type: string
- success:
- description: Flag indicating whether login attempt was successful or not.
- example: true
- type: boolean
- user_agent:
- description: User Agent header from the login request.
- example: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36
- (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36
+ client_certificate:
+ description: 'The client certificate provided by GlobalSign to allow HTTPS
+ connection over TLS/SSL.
+
+ The certificate wraps a public key that matches a private key provided by
+ the customer.
+
+ The certificate must be in PEM format.'
+ example: '"-----BEGIN CERTIFICATE-----MIIC7zCCAdegAwIBAgIJANTlU4x5S74VMA0GCSqGSIb3DQEBCwUAMA4xDDAKBgNVBAoMA0FybTAeFw0xODAzMTExMzE5MTFaFw0xOTAzMTExMzE5MTFaMA4xDDAKBgNVBAoMA0FybTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJWLStsVMJULZtxdieK9qocM4ymDXMaAusmd9TZLzBgznKQe/CW2yxyA8C8K5e6MmvMYGeKDd4Lkw/ezOj2OsUj2xzNIltUxpGi/GhsNYiN/khNJa/Y1SllLoihJAPm/xbMywOBRu/dM88PiJsNZccOk0I8DYvvyAs9wCTkbKLnfHygl98DCRqXw7nBCplU6F03qpUd/4BUtMtugyqt7yboGH+4YewnUh4Yh4QNOJIvE93Ob++eKjO3pIOYEhQmUxzOLaLNuWXlv2l1WuN281hUP4XBcV8mCzRQfTBBDYTWt+5BEWoLOUkXjW0Um6EAaN3usph1IKDEH6Ia5VHP4Pj0CAwEAAaNQME4wHQYDVR0OBBYEFLsfYZxFcQTjPJKYMjHI2In316fmMB8GA1UdIwQYMBaAFLsfYZxFcQTjPJKYMjHI2In316fmMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFl08GFsIkkUs6M7QgCWmsnwP6PtD8V87wM1GAqQQlOOeztaeRR2TEOeYiKRZQugYszJ/FVfVp4ggqzepJMn6UZ42j5nmSJs+6t79i23QAzX1zNQ354lr/t7kt3fMdhuL3AP0oZGzdy+EnXXiWeAD22UwzvVmLt38ypJIl+pmTsx9jJy4PN7yoRgtP9k+50m3X6oDxVruehC/JPSeTvEhqyLW3fLcG6IoJMX3vIwfO9uXbFJumTowQeViNJJ9duWvD2KBXn/muOOBe97TPuvAms1gOtMmmPT9/jpo9b4+NsfFiAN6bMici81aIKZzLC+lLGOUmR2fFJyM5OsVLxKsko=-----END
+ CERTIFICATE-----"'
+ maxLength: 3000
+ type: string
+ passphrase:
+ description: 'The passphrase to decrypt the private key in case it is encrypted.
+
+ Empty if the private key is not encrypted.'
+ example: helloworld
+ format: password
+ maxLength: 1000
+ type: string
+ private_key:
+ description: 'The private key that matches the client certificate to allow
+ HTTPS connection over TLS/SSL.
+
+ The private key may be encrypted using a symmetric encryption key derived
+ from a passphrase.
+
+ The private key must be in PEM format.'
+ example: '"-----BEGIN RSA PRIVATE KEY-----\nProc-Type: 4,ENCRYPTED\nDEK-Info:
+ DES-EDE3-CBC,CCAC26A4133947CB\n\np3KJ4FI3wcz3I0MtiLkrznkjWFvprVmoNywySUGb5IqZViJZqCMEsyU9a9iDsSfP\nZ07cg9GviV21WYIPSxZOQrpy1g1VWILzFnH+J6z8dSH4mxXh0PwdOzYgAeqkrIVM\nJ7KRm6t222dZFjjXK3eEcLmBLGo29XwVJxKHx+l4++gU1LZmeHZR5M8fJ4jejUly\n7sqzPlmRF0N3I4lwKVj+PfQTVz43QoCnpxOjuSEL4liBrc2agY2xH1O0PFyHimz9\n3XM9HR/iuPHW0N2D+NPjXlWKacerupH9d4i9IYIagzB+HTgej8limdo03GmmxcZ6\nYNa58n5yQSaqu0TPRU9DsrKeGjadHTlZQGdzfq1SWsROCnHLrXFKE2ozIG3+hxA5\nujBF/QWpX5+inXUwDJhBxp8isHbPEnBEUUd6ZRzCTjvN0jaUti5B9yFhO2G6mbE8\nCvhyzQK8oJqsjZXnlcpPf95LP+9XbcCDjLSIaWJstzXO9tPiv6+x1MVWmivtRHcC\nSTzpx8jAGCiG6ejLqWB87ZXiZm7ujlCBheHSf5RHwNHhUvoP2JEYalDDRxjcDMSx\n4uV42Np4yJlIQEDlGHcBlXoL7vEukFpuWgkYdpcZy/Ou9qz8mXrpLcu8C8MhLmSC\nixGoR5iRhV7cxoHLyuCzj87eYEA73Xu238DQorSEEuiVFnLzQ2+PJMs4qoI14q/L\notlBDz+Ko6DrU/EZROYmiqMkLKXR2sx9zNAJwPYRs6nSH08tZ3dwqzZbgtP3Wazi\nhLWHt5/En7wQRA5a+/dDEHXSoLvvSQ9jvhclhWf+eCYuq2eH+g54oyJGRSY+8GV7\nujhLxkzl/3OZdhZPWoz4U13KpbSTcNWu5Y7oGDoabw19UbvqmLf1PJkpDH/tQgzB\nxYtsLBRUcofpYoeIiIxfAA4do5WilJc8xqrGhkE4WcHfY24HXAiOvsjbxV+BRprX\n1jtgJpV/9nJESMap+8PxipGUFRGjB83/uwJaa6mLftEKflX8i4MZ+HnqraXERsqA\nWRUcDHIWmFfpzIB3iNuxawVvPH8NdCSPmQ9qTb8Cozl0AuOK2E9S+ke8oiYQScWR\nLdu+zhej7GjuQ9R+Ub+wPWqvOA5qLXejqnCexVScDUuN+z9JWM3N2FG1MwxhAzhP\ndEfoQHoBn6uyOmrVGP6fosV3chqhPoec42KeOAm1xDvx692isaIy1jPgIyPxeqhm\n2Tw4E+02R7dlP8Ljf7JzfLm4oKpWHWlcHeqg24x6lY/wXU1RBcWaTa0AQUwoGm2m\nIQCPfIqOEv/QC2HpO7SVCYkl65KwR0oTd1AzYxdxEq3xHQbh69EL0FGZPVxVCPI+\nhEAyifKy1/tm3l91Rf/kGpHY7nIQKCXH49tmFwix8gke2nZJmRgX7/zAdMOAKeKH\nAaIl4nQtv14EbaasMgnn9qgaDYnWzaReEob2QlQ/WYlTor61+KFpGtcf9jAkgudT\n2op+4CF7wT2+aTXdtkVWfmv++iB8GnlqZdxLvyG1cTYjjYHVFbMSWQnxzQqiE2ms\nQgp+byjWCumpsWTMdTO+d9NkDOo80vDpaRxEgebmhJ0MbX+eFjBgVg==\n-----END
+ RSA PRIVATE KEY-----"'
+ maxLength: 3000
type: string
required:
- - date
- - ip_address
- - success
- - user_agent
+ - api_key
+ - api_secret
+ - client_certificate
+ - private_key
type: object
- LoginProfile:
- description: Represents a user login profile in Device Management.
+ GroupCreationInfo:
+ description: This object is used when creating new groups.
properties:
- id:
- description: ID of the identity provider.
+ members:
+ $ref: '#/definitions/SubjectList'
+ description: The members of the group as arrays of user and API key IDs.
+ name:
+ description: The group name.
+ maxLength: 100
+ type: string
+ required:
+ - name
+ type: object
+ GroupIdList:
+ items:
+ example: 01705c6383f6c85b76f92f4e00000000
+ type: string
+ type: array
+ GroupSummary:
+ description: This object contains basic information about groups.
+ properties:
+ account_id:
+ description: The ID of the account this group belongs to.
+ example: 01619571e2e90242ac12000600000000
+ pattern: '[a-f0-9]{32}'
+ type: string
+ apikey_count:
+ description: The number of API keys in this group.
+ example: 0
+ format: int32
+ type: integer
+ x-deprecation:
+ comment: This property is deprecated. See 'application_count' property.
+ end_of_life_at: '2021-08-01T00:00:00+00:00'
+ issued_at: '2020-08-01T00:00:00+00:00'
+ links: []
+ application_count:
+ description: The number of applications in this group.
+ example: 0
+ format: int32
+ type: integer
+ created_at:
+ description: Creation UTC time RFC3339.
+ example: '2018-02-13T09:35:20Z'
+ format: date-time
+ type: string
+ etag:
+ description: API resource entity version.
+ example: '1'
+ type: string
+ id:
+ description: The ID of the group.
+ example: 01619571dec00242ac12000600000000
+ pattern: '[a-f0-9]{32}'
type: string
name:
- description: Name of the identity provider.
- readOnly: true
+ description: The name of the group.
+ example: Administrators
+ maxLength: 100
type: string
- type:
- description: Identity provider type.
+ object:
+ description: 'Entity name: always `group`.'
enum:
- - NATIVE
- - MBED
- - SAML2
- - OIDC
- readOnly: true
+ - group
+ type: string
+ updated_at:
+ description: Last update UTC time RFC3339.
+ example: '2018-02-14T15:24:14Z'
+ format: date-time
type: string
+ user_count:
+ description: The number of users in this group.
+ example: 1
+ format: int32
+ type: integer
required:
+ - account_id
+ - apikey_count
+ - etag
- id
+ - name
+ - object
+ - user_count
type: object
- NotificationData:
+ GroupSummaryList:
properties:
- ct:
- description: Content type.
- example: text/plain
+ after:
+ description: The entity ID to retrieve after the given one.
+ example: 01619571f3c00242ac12000600000000
+ pattern: '[a-f0-9]{32}'
type: string
- ep:
- description: Device Management Device ID.
- example: 015f3850a657000000000001001002ab
+ data:
+ description: A list of entities.
+ items:
+ $ref: '#/definitions/GroupSummary'
+ type: array
+ has_more:
+ description: Flag indicating whether there are more results.
+ example: false
+ type: boolean
+ limit:
+ description: The number of results to return (2-1000), or equal to `total_count`.
+ example: 50
+ format: int32
+ type: integer
+ object:
+ description: 'Entity name: always `list`.'
+ enum:
+ - list
type: string
- max-age:
- description: 'Max age value is an integer number of seconds between 0 and
- 2^32-1, but the actual maximum cache time is limited to 3 days.
-
- Default 60.'
- example: 60
+ order:
+ description: 'The order of the records to return based on creation time. Available
+ values: ASC, DESC; by default ASC.'
+ enum:
+ - ASC
+ - DESC
type: string
- path:
- description: URI path.
- example: /sen/light
+ total_count:
+ description: The total number of records, if requested.
+ example: 20
+ format: int32
+ type: integer
+ required:
+ - data
+ - has_more
+ - limit
+ - object
+ - total_count
+ type: object
+ GroupUpdateInfo:
+ description: This object is used when Update groups.
+ properties:
+ name:
+ description: The group name.
+ maxLength: 100
type: string
- payload:
- description: Base64 encoded payload.
- example: My4zMQ==
+ required:
+ - name
+ type: object
+ IdentityProviderCreationReq:
+ description: This object is used for creating new federated identity provider
+ module.
+ properties:
+ description:
+ description: Description for the identity provider.
+ maxLength: 500
+ type: string
+ name:
+ description: Name of the identity provider.
+ maxLength: 100
+ type: string
+ oidc_attributes:
+ $ref: '#/definitions/OIDCInfo'
+ description: OIDC specific attributes.
+ saml2_attributes:
+ $ref: '#/definitions/SAML2Req'
+ description: SAML2 specific attributes.
+ status:
+ description: Status of the identity provider.
+ enum:
+ - ACTIVE
+ - SUSPENDED
+ type: string
+ type:
+ description: Identity provider type.
+ enum:
+ - SAML2
+ - OIDC
type: string
+ required:
+ - name
+ - type
type: object
- NotificationEntry:
- description: Represents an account notification entry.
+ IdentityProviderInfo:
properties:
account_id:
- description: The ID of the account.
+ description: The ID of the account the identity provider belongs to.
example: 01619571e2e90242ac12000600000000
pattern: '[a-f0-9]{32}'
type: string
@@ -4577,10 +5380,9 @@ definitions:
example: '2018-02-13T09:35:20Z'
format: date-time
type: string
- error_msg:
- description: The error message if there was an error while transmitting the
- account notification.
- example: Connection error.
+ description:
+ description: Description for the identity provider.
+ maxLength: 500
type: string
etag:
description: API resource entity version.
@@ -4591,55 +5393,69 @@ definitions:
example: 01619571d01d0242ac12000600000000
pattern: '[a-f0-9]{32}'
type: string
- message:
- description: The message contained in this account notification entry.
- example: User limit has been reached.
+ is_default:
+ description: Flag indicating whether this is the global default identity provider.
+ readOnly: true
+ type: boolean
+ name:
+ description: Name of the identity provider.
+ maxLength: 100
type: string
object:
- description: 'Entity name: always ''notification-entry'''
+ description: 'Entity name: always ''identity-provider'''
enum:
- - notification-entry
- type: string
- receiver:
- description: The receiver this account notification entry.
- example: example@email-receiver.test
- pattern: ^(?=.{3,254}$).+\@.+
+ - identity-provider
type: string
- subject:
- description: The subject of this account notification entry.
- example: Account locked.
+ oidc_attributes:
+ $ref: '#/definitions/OIDCInfo'
+ description: OIDC specific attributes.
+ saml2_attributes:
+ $ref: '#/definitions/SAML2Info'
+ description: SAML2 specific attributes.
+ status:
+ description: Status of the identity provider.
+ enum:
+ - ACTIVE
+ - SUSPENDED
type: string
- success:
- description: A flag indiciating whether the sending of this account notification
- entry was successful, true or false.
- type: boolean
type:
- description: The type of this account notification entry.
- example: email
+ description: Identity provider type.
+ enum:
+ - NATIVE
+ - MBED
+ - SAML2
+ - OIDC
+ type: string
+ updated_at:
+ description: Last update UTC time RFC3339.
+ example: '2018-02-14T15:24:14Z'
+ format: date-time
type: string
required:
- etag
- id
+ - name
- object
+ - type
type: object
- NotificationEntryList:
+ IdentityProviderList:
properties:
after:
- description: The entity ID to fetch after the given one.
+ description: The entity ID to retrieve after the given one.
example: 01619571f3c00242ac12000600000000
pattern: '[a-f0-9]{32}'
type: string
data:
description: A list of entities.
items:
- $ref: '#/definitions/NotificationEntry'
+ $ref: '#/definitions/IdentityProviderInfo'
type: array
has_more:
description: Flag indicating whether there are more results.
example: false
type: boolean
limit:
- description: The number of results to return, or equal to `total_count`.
+ description: The number of results to return , or equal to `total_count`.
example: 50
format: int32
type: integer
@@ -4667,832 +5483,752 @@ definitions:
- object
- total_count
type: object
- NotificationMessage:
+ IdentityProviderUpdateReq:
+ description: Update existing federated identity provider module.
properties:
- async-responses:
- items:
- $ref: '#/definitions/AsyncIDResponse'
- type: array
- de-registrations:
- items:
- description: The device ID.
- example: 015f3850a657000000000001001002ab
- type: string
- type: array
- notifications:
- items:
- $ref: '#/definitions/NotificationData'
- type: array
- reg-updates:
- items:
- $ref: '#/definitions/EndpointData'
- type: array
- registrations:
- items:
- $ref: '#/definitions/EndpointData'
- type: array
- registrations-expired:
- items:
- description: The device ID.
- example: 015f3850a657000000000001001002ab
- type: string
- type: array
- type: object
- OIDCClaimMapping:
- description: Mapping for non-standard OIDC claim names.
- properties:
- email:
- description: Custom claim name for 'email'.
- example: email_address
- type: string
- x-nullable: true
- email_verified:
- description: Custom claim name for 'email_verified'.
- type: string
- x-nullable: true
- family_name:
- description: Custom claim name for 'family_name'.
- type: string
- x-nullable: true
- given_name:
- description: Custom claim name for 'given_name'.
+ description:
+ description: Description for the identity provider.
+ maxLength: 500
type: string
- x-nullable: true
name:
- description: Custom claim name for 'name'.
+ description: Name of the identity provider.
+ maxLength: 100
type: string
- x-nullable: true
- phone_number:
- description: Custom claim name for 'phone_number'.
+ oidc_attributes:
+ $ref: '#/definitions/OIDCInfo'
+ description: OIDC specific attributes.
+ saml2_attributes:
+ $ref: '#/definitions/SAML2Req'
+ description: SAML2 specific attributes.
+ status:
+ description: Status of the identity provider.
+ enum:
+ - ACTIVE
+ - SUSPENDED
type: string
- x-nullable: true
- sub:
- description: Custom claim name for 'sub'.
+ type:
+ description: Identity provider type.
+ enum:
+ - SAML2
+ - OIDC
type: string
- x-nullable: true
- updated_at:
- description: Custom claim name for 'updated_at'.
+ required:
+ - name
+ - type
+ type: object
+ IdpPublicKey:
+ description: Represents provider's public key and key ID used to sign ID tokens.
+ PEM-encoded.
+ properties:
+ key:
+ description: The public key.
type: string
- x-nullable: true
- updated_at_pattern:
- description: Custom pattern for claim 'updated_at' as defined by the Java
- SimpleDateFormat class.
- example: yyyy-MM-dd'T'HH:mm:ssXXX
+ kid:
+ description: The public key ID.
type: string
- x-nullable: true
type: object
- OIDCInfo:
- description: Represents OIDC specific attributes.
+ Image:
+ format: binary
+ type: string
+ InternalServerErrorResponse:
+ description: 500 Internal server error response.
properties:
- authorization_endpoint:
- description: URL of the OAuth 2.0 authorization endpoint.
+ code:
+ description: Response code. Always set to 500.
+ enum:
+ - 500
+ type: integer
+ message:
+ description: A human-readable message with detailed info.
type: string
- x-nullable: true
- auto_enrollment:
- description: For future use.
- type: boolean
- x-nullable: true
- claim_mapping:
- $ref: '#/definitions/OIDCClaimMapping'
- description: Mapping table for supporting custom OIDC claims.
- x-nullable: true
- client_id:
- description: Client ID needed to authenticate and gain access to identity
- provider's API.
+ object:
+ description: Always set to `error`.
+ enum:
+ - error
type: string
- x-nullable: true
- client_secret:
- description: Client secret needed to authenticate and gain access to identity
- provider's API.
+ request_id:
+ description: Request ID
type: string
- x-nullable: true
- end_session_endpoint:
- description: URL of the provider's end session endpoint.
+ type:
+ description: Error type. Always set to `internal_error`.
+ enum:
+ - internal_error
type: string
- x-nullable: true
- issuer:
- description: Issuer of the identity provider.
+ required:
+ - object
+ - message
+ - request_id
+ - type
+ - code
+ type: object
+ KeyValue:
+ properties:
+ key:
type: string
- jwks_uri:
- description: URL of the provider's JSON web key set document.
+ value:
type: string
- x-nullable: true
- keys:
- description: Provider's public keys and key IDs used to sign ID tokens. PEM-encoded.
+ required:
+ - key
+ - value
+ ListOfPreSharedKeysWithoutSecret:
+ properties:
+ after:
+ description: An offset token for current page.
+ example: 001e001000120010fac8f300487f11e8839a459edde8bd42f07fffffebf07fffffebb1219cc7862b64bbaf775dc545e274810004
+ type: string
+ continuation_marker:
+ description: An offset token for fetching the next page. Note that exactly
+ the same limit needs to be used on the request for fetching subsequent pages.
+ example: 001e001000120010fac8f300487f11e8839a459edde8bd42f07fffffebf07fffffebb1219cc7862b64bbaf775dc545e274810005
+ type: string
+ data:
+ description: Array of the PSK entries. The array is empty if there are no
+ PSKs.
items:
- $ref: '#/definitions/IdpPublicKey'
+ $ref: '#/definitions/PreSharedKeyWithoutSecret'
+ minLength: 0
type: array
- x-nullable: true
- redirect_uri:
- description: The URI needed to authenticate and gain access to identity provider's
- API. Leave this empty to use the default redirect URI.
+ has_more:
+ description: More results are available.
+ example: true
+ type: boolean
+ limit:
+ description: The value of limit query parameter from the request, or default
+ if not specified.
+ example: 50
+ type: integer
+ object:
+ description: The type of this API object is a "list".
+ example: list
type: string
- x-nullable: true
- revocation_endpoint:
- description: URL of the provider's token revocation endpoint.
+ order:
+ description: Record order based on creation time.
+ example: DESC
type: string
- x-nullable: true
- scopes:
- description: Space-separated list of scopes sent in the authentication request.
- When not configured otherwise, the default scopes are ['openid profile email'](https://openid.net/specs/openid-connect-core-1_0.html#ScopeClaims).
- example: openid email
+ required:
+ - object
+ - limit
+ - order
+ - has_more
+ - data
+ type: object
+ Log:
+ properties:
+ account_id:
+ description: The ID of the account associated with the device.
+ example: 0168e7bff4f2263cf4be560700000000
type: string
- token_endpoint:
- description: URL of the OAuth 2.0 authorization endpoint.
+ app_name:
+ description: A tag indicating which application or software module produced
+ the log message.
+ example: modbus
type: string
- x-nullable: true
- token_request_mode:
- default: POST
- description: One way to obtain the access token. Since the request results
- in the transmission of clear-text credentials, the client must use the POST
- mode.
- enum:
- - POST
- - GET
+ created_at:
+ description: RFC 3339 UTC timestamp indicating when the resource entity was
+ created.
+ example: '2017-07-21T17:32:28Z'
+ format: date-time
type: string
- token_response_path:
- description: Path to the standard data in the token response. Levels in the
- JSON structure must be separated by '.' (dot) characters.
- example: oidc.data
+ device_id:
+ description: Device ID.
+ example: 00005a4e027f0a580a01081c00000000
type: string
- userinfo_endpoint:
- description: URL of the OAuth 2.0 UserInfo endpoint.
+ etag:
+ description: Entity instance signature, or Unix timestamp of last customer
+ update.
+ example: stdout
type: string
- x-nullable: true
- required:
- - issuer
- type: object
- ParentAccountInfo:
- description: Represents parent account contact details in responses.
- properties:
- admin_email:
- description: The email address of the admin user who is the contact person
- of the parent account.
- example: info@arm.com
- pattern: ^(?=.{3,254}$).+\@.+
+ id:
+ description: mUUID Entity ID. Each device log has a unique ID.
+ example: 2d238a89038b4ddb84699dd36a901063
+ pattern: /^[(0-9)(a-f)]{32}$/
type: string
- admin_name:
- description: The name of the admin user who is the contact person of the parent
- account.
- example: J. Doe
- maxLength: 100
+ level:
+ description: Log entry severity level.
+ enum:
+ - DEBUG
+ - TRACE
+ - INFO
+ - WARNING
+ - ERROR
+ - CRITICAL
+ example: ERROR
type: string
- id:
- description: The ID of the parent account.
- example: 01619571dad80242ac12000600000000
- pattern: '[a-f0-9]{32}'
+ message:
+ description: Log message body.
+ example: 'ModbusRTU Driver: Failed to start undefined'
type: string
- type: object
- PasswordPolicy:
- properties:
- minimum_length:
- description: Minimum length for the password.
- example: '8'
- maximum: 512
- minimum: 8
- type: integer
- required:
- - minimum_length
- type: object
- PendingServicePackage:
- description: A pending service package.
- properties:
- created:
- description: Service package creation time in RFC3339 date-time with millisecond
- accuracy and UTC time zone.
- format: date-time
+ object:
+ description: Device log resource name.
+ example: device-log
type: string
- expires:
- description: Service package expiration time in RFC3339 date-time with millisecond
- accuracy and UTC time zone.
+ timestamp:
+ description: RFC 3339 UTC timestamp indicating indicating the device time
+ the message was printed.
+ example: '2017-07-21T17:40:28Z'
format: date-time
type: string
- firmware_update_count:
- description: Size of firmware update quota of this service package.
- format: int32
- type: integer
- id:
- description: ID of this service package.
+ type:
+ description: Device log type.
+ example: syslog
type: string
- modified:
- description: Service package latest modified time in RFC3339 date-time with
- millisecond accuracy and UTC time zone.
+ type: object
+ LoginHistory:
+ description: Represents an entry in login history.
+ properties:
+ date:
+ description: UTC time RFC3339 for this login attempt.
+ example: '2018-02-14T17:52:07Z'
format: date-time
type: string
- previous_id:
- description: Previous service package ID.
+ ip_address:
+ description: IP address of the client.
+ example: 127.0.0.1
type: string
- start_time:
- description: Service package start time in RFC3339 date-time with millisecond
- accuracy and UTC time zone.
- format: date-time
+ success:
+ description: Flag indicating whether login attempt was successful or not.
+ example: true
+ type: boolean
+ user_agent:
+ description: User Agent header from the login request.
+ example: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36
+ (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36
type: string
required:
- - id
- - previous_id
- - created
- - modified
- - start_time
- - expires
- - firmware_update_count
+ - date
+ - ip_address
+ - success
+ - user_agent
type: object
- PreSharedKey:
+ LoginProfile:
+ description: Represents a user login profile in Device Management.
properties:
- endpoint_name:
- description: The unique endpoint identifier that this PSK applies to. 16-64
- [printable](https://en.wikipedia.org/wiki/ASCII#Printable_characters) (non-control)
- ASCII characters.
- example: my-endpoint-0001
- pattern: ^[ -~]{16,64}$
+ foreign_id:
+ description: The ID of the user in the identity provider's service.
+ example: fed/user_007
+ readOnly: true
type: string
- secret_hex:
- description: The secret of the PSK in hexadecimal. It is not case sensitive;
- 4a is same as 4A, and it is allowed with or without 0x in the beginning.
- The minimum length of the secret is 128 bits and maximum 256 bits.
- example: 4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a
- pattern: ^(0[xX])?[0-9a-fA-F]{32,64}$
+ id:
+ description: ID of the identity provider.
+ example: 01619571f3c00242ac12000600000000
+ type: string
+ name:
+ description: Name of the identity provider.
+ example: Pelion
+ readOnly: true
+ type: string
+ type:
+ description: Identity provider type.
+ enum:
+ - NATIVE
+ - MBED
+ - SAML2
+ - OIDC
+ example: NATIVE
+ readOnly: true
type: string
required:
- - endpoint_name
- - secret_hex
+ - id
type: object
- PreSharedKeyWithoutSecret:
+ LogsPage:
properties:
- created_at:
- description: The date-time (RFC3339) when this PSK was uploaded to Device
- Management.
- example: '2017-07-21T17:32:28.012Z'
- format: date-time
+ after:
+ description: An offset token for current page.
type: string
- endpoint_name:
- description: The unique endpoint identifier that this PSK applies to. 16-64
- [printable](https://en.wikipedia.org/wiki/ASCII#Printable_characters) (non-control)
- ASCII characters.
- example: my-endpoint-0001
- pattern: ^[ -~]{16,64}$
+ x-nullable: true
+ data:
+ items:
+ $ref: '#/definitions/Log'
+ type: array
+ has_more:
+ description: Indicates whether more results are available.
+ example: false
+ type: boolean
+ limit:
+ description: Limit applied on number of device log resource objects retrieved
+ in the page (2-1000).
+ example: 100
+ maximum: 1000
+ minimum: 2
+ type: integer
+ object:
+ description: Always `list`.
+ example: list
type: string
- required:
- - endpoint_name
+ order:
+ description: Entry order based on creation time.
+ example: DESC
+ type: string
+ total_count:
+ example: 1
+ format: integer
+ type: integer
type: object
- Presubscription:
+ NotificationData:
properties:
- endpoint-name:
- description: The device ID.
+ ct:
+ description: Content type.
+ example: text/plain
+ type: string
+ ep:
+ description: Device Management Device ID.
example: 015f3850a657000000000001001002ab
type: string
- endpoint-type:
- example: Light
+ max-age:
+ description: 'Max age value is an integer number of seconds between 0 and
+ 2^32-1, but the actual maximum cache time is limited to 3 days.
+
+ Default 60.'
+ example: 60
+ type: string
+ path:
+ description: URI path.
+ example: /sen/light
+ type: string
+ payload:
+ description: Base64 encoded payload.
+ example: My4zMQ==
type: string
- resource-path:
- items:
- description: A resource URI.
- example: /sen/light
- type: string
- minItems: 1
- type: array
type: object
- PresubscriptionArray:
- items:
- $ref: '#/definitions/Presubscription'
- type: array
- PreviousServicePackage:
- description: Previously active service package.
+ NotificationEntry:
+ description: Represents an account notification entry.
properties:
- created:
- description: Service package creation time in RFC3339 date-time with millisecond
- accuracy and UTC time zone.
- format: date-time
+ account_id:
+ description: The ID of the account.
+ example: 01619571e2e90242ac12000600000000
+ pattern: '[a-f0-9]{32}'
type: string
- end_time:
- description: Service package end time in RFC3339 date-time with millisecond
- accuracy and UTC time zone.
+ created_at:
+ description: Creation UTC time RFC3339.
+ example: '2018-02-13T09:35:20Z'
format: date-time
type: string
- expires:
- description: Service package expiration time in RFC3339 date-time with millisecond
- accuracy and UTC time zone.
- format: date-time
+ error_msg:
+ description: The error message if there was an error while transmitting the
+ account notification.
+ example: Connection error.
+ type: string
+ etag:
+ description: API resource entity version.
+ example: '1'
type: string
- firmware_update_count:
- description: Size of firmware update quota of this service package.
- format: int32
- type: integer
id:
- description: ID of this service package.
+ description: Entity ID.
+ example: 01619571d01d0242ac12000600000000
+ pattern: '[a-f0-9]{32}'
type: string
- modified:
- description: Service package latest modified time in RFC3339 date-time with
- millisecond accuracy and UTC time zone.
- format: date-time
+ message:
+ description: The message contained in this account notification entry.
+ example: User limit has been reached.
type: string
- next_id:
- description: Next service package ID if this service package has a pending
- renewal or null.
+ object:
+ description: 'Entity name: always ''notification-entry'''
+ enum:
+ - notification-entry
type: string
- previous_id:
- description: Previous service package ID.
+ receiver:
+ description: The receiver this account notification entry.
+ example: example@email-receiver.test
+ pattern: ^(?=.{3,254}$).+\@.+
type: string
- reason:
- description: Reason the service package was ended.
- enum:
- - renewed
- - terminated
+ subject:
+ description: The subject of this account notification entry.
+ example: Account locked.
type: string
- start_time:
- description: Service package start time in RFC3339 date-time with millisecond
- accuracy and UTC time zone.
- format: date-time
+ success:
+ description: A flag indiciating whether the sending of this account notification
+ entry was successful, true or false.
+ type: boolean
+ type:
+ description: The type of this account notification entry.
+ example: email
type: string
required:
+ - etag
- id
- - start_time
- - created
- - modified
- - expires
- - end_time
- - firmware_update_count
- - reason
+ - object
type: object
- QuotaUsageReport:
- description: Account quota usage entry for queried month.
+ NotificationEntryList:
properties:
- amount:
- description: Amount of quota usage entry. Negative if quota consumption.
- format: int64
- type: integer
- campaign_name:
- description: 'Campaign name of quota usage entry.
-
- Null if quota usage entry type is not `reservation` or `reservation release`.'
+ after:
+ description: The entity ID to retrieve after the given one.
+ example: 01619571f3c00242ac12000600000000
+ pattern: '[a-f0-9]{32}'
type: string
- time:
- description: Added time of quota usage entry in RFC3339 date-time with millisecond
- accuracy and UTC time zone.
- format: date-time
+ data:
+ description: A list of entities.
+ items:
+ $ref: '#/definitions/NotificationEntry'
+ type: array
+ has_more:
+ description: Flag indicating whether there are more results.
+ example: false
+ type: boolean
+ limit:
+ description: The number of results to return, or equal to `total_count`.
+ example: 50
+ format: int32
+ type: integer
+ object:
+ description: 'Entity name: always `list`.'
+ enum:
+ - list
type: string
- type:
- description: Type of quota usage entry.
+ order:
+ description: 'The order of the records to return based on creation time. Available
+ values: ASC, DESC; by default ASC.'
enum:
- - reservation
- - reservation_release
- - reservation_termination
- - package_renewal
- - package_creation
- - package_termination
+ - ASC
+ - DESC
type: string
+ total_count:
+ description: The total number of records, if requested.
+ example: 20
+ format: int32
+ type: integer
required:
- - amount
- - type
- - time
+ - data
+ - has_more
+ - limit
+ - object
+ - total_count
type: object
- ReportAccountContactInfo:
- description: Account contact information.
+ NotificationMessage:
properties:
- address_line1:
- type: string
- address_line2:
- type: string
- city:
- type: string
- company:
+ async-responses:
+ items:
+ $ref: '#/definitions/AsyncIDResponse'
+ type: array
+ de-registrations:
+ items:
+ description: The device ID.
+ example: 015f3850a657000000000001001002ab
+ type: string
+ type: array
+ notifications:
+ items:
+ $ref: '#/definitions/NotificationData'
+ type: array
+ reg-updates:
+ items:
+ $ref: '#/definitions/EndpointData'
+ type: array
+ registrations:
+ items:
+ $ref: '#/definitions/EndpointData'
+ type: array
+ registrations-expired:
+ items:
+ description: The device ID.
+ example: 015f3850a657000000000001001002ab
+ type: string
+ type: array
+ type: object
+ OIDCClaimMapping:
+ description: Mapping for non-standard OIDC claim names.
+ properties:
+ email:
+ description: Custom claim name for 'email'.
+ example: email_address
type: string
- contact:
+ x-nullable: true
+ email_verified:
+ description: Custom claim name for 'email_verified'.
+ example: email_verified
type: string
- country:
+ x-nullable: true
+ family_name:
+ description: Custom claim name for 'family_name'.
+ example: family_name
type: string
- email:
+ x-nullable: true
+ given_name:
+ description: Custom claim name for 'given_name'.
+ example: given_name
type: string
- id:
- description: Account ID.
+ x-nullable: true
+ name:
+ description: Custom claim name for 'name'.
+ example: name
type: string
+ x-nullable: true
phone_number:
+ description: Custom claim name for 'phone_number'.
+ example: phone_number
type: string
- postal_code:
- type: string
- state:
- type: string
- required:
- - id
- - company
- type: object
- ReportBillingData:
- properties:
- active_devices:
- format: int64
- minimum: 0
- type: integer
- firmware_updates:
- format: int64
- minimum: 0
- type: integer
- generated:
- description: Billing report generated time in RFC3339 date-time with millisecond
- accuracy and UTC time zone.
- format: date-time
+ x-nullable: true
+ sub:
+ description: Custom claim name for 'sub'.
+ example: sub
type: string
- period_end:
- description: Billing report end time in RFC3339 date-time with millisecond
- accuracy and UTC time zone.
- format: date-time
+ x-nullable: true
+ updated_at:
+ description: Custom claim name for 'updated_at'.
+ example: updated_at
type: string
- period_start:
- description: Billing report start time in RFC3339 date-time with millisecond
- accuracy and UTC time zone.
- format: date-time
+ x-nullable: true
+ updated_at_pattern:
+ description: Custom pattern for claim 'updated_at' as defined by the Java
+ SimpleDateFormat class.
+ example: yyyy-MM-dd'T'HH:mm:ssXXX
type: string
- sda_tokens:
- format: int64
- minimum: 0
- type: integer
- required:
- - generated
- - period_start
- - period_end
- - active_devices
- - firmware_updates
- - sda_tokens
+ x-nullable: true
type: object
- ReportNotFoundErrorResponse:
- description: 404 Not found response.
+ OIDCInfo:
+ description: Represents OIDC specific attributes.
properties:
- code:
- description: Response code. Always set to 404.
- enum:
- - 404
- type: integer
- message:
- description: A human-readable message with detailed info.
+ authorization_endpoint:
+ description: URL of the OAuth 2.0 authorization endpoint.
type: string
- object:
- description: Always set to `error`.
- enum:
- - error
+ x-nullable: true
+ auto_enrollment:
+ description: For future use.
+ type: boolean
+ x-nullable: true
+ claim_mapping:
+ $ref: '#/definitions/OIDCClaimMapping'
+ description: Mapping table for supporting custom OIDC claims.
+ x-nullable: true
+ client_id:
+ description: Client ID needed to authenticate and gain access to identity
+ provider's API.
type: string
- request_id:
- description: Request ID
+ x-nullable: true
+ client_secret:
+ description: Client secret needed to authenticate and gain access to identity
+ provider's API.
type: string
- type:
- description: Error type. Always set to `report_not_found`.
- enum:
- - report_not_found
+ x-nullable: true
+ end_session_endpoint:
+ description: URL of the provider's end session endpoint.
type: string
- required:
- - object
- - message
- - request_id
- - type
- - code
- type: object
- ReportResponse:
- description: Billing report response.
- properties:
- account:
- $ref: '#/definitions/ReportAccountContactInfo'
- description: Account contact information.
- aggregated:
- $ref: '#/definitions/ReportBillingData'
- description: Aggregated report billing data including all subtenant accounts,
- if any.
- billing_data:
- $ref: '#/definitions/ReportBillingData'
- description: Report billing data.
- id:
- description: Billing report ID.
+ x-nullable: true
+ issuer:
+ description: Issuer of the identity provider.
type: string
- month:
- description: Month of requested billing report.
- pattern: ^\d{4}-\d{2}$
- type: string
- object:
- description: Billing report response object. Always set to `billing-report`.
- enum:
- - billing-report
- type: string
- service_package:
- $ref: '#/definitions/ServicePackageReport'
- description: Report service package.
- subtenants:
- description: List of billing reports for subtenant accounts. Empty list if
- account does not have any subtenant account.
- items:
- $ref: '#/definitions/SubtenantAccountReport'
- type: array
- required:
- - id
- - object
- - account
- - billing_data
- - subtenants
- - aggregated
- - month
- type: object
- Resource:
- properties:
- obs:
- description: '''Determines whether you can subscribe to changes for this resource.
- It can have values `true` or `false`.'''
- example: true
- type: boolean
- rt:
- description: Application-specific resource type that describes this resource.
- It is created by the [client side application](../connecting/resource-setup-in-device-management-client.html).
- Not meant to be a human-readable name for the resource. Multiple resource
- types may be included, separated by a space.
- example: light_sensor
- type: string
- type:
- description: 'The content type of the resource.
-
-
- We recommend you use the **resource types** listed in the [LwM2M specification](http://technical.openmobilealliance.org/Technical/technical-information/omna/lightweight-m2m-lwm2m-object-registry).'
- example: text/plain
- type: string
- uri:
- description: The resource URL.
- example: /sen/light
- type: string
- required:
- - uri
- type: object
- ResourcePath:
- description: A resource URI.
- example: /sen/light
- type: string
- ResourcesData:
- properties:
- ct:
- description: Content type.
- example: text/plain
- type: string
- if:
- description: Interface description that defines a name or URI that indicates
- how to interact with the target resource. It describes a generic interface
- type, such as a 'sensor'.
- example: sensor
- type: string
- obs:
- description: Whether the resource is observable (true/false).
- example: true
- type: boolean
- path:
- description: Resource's URI path.
- example: /sen/light
- type: string
- rt:
- description: 'Application-specific resource type that describes this resource.
- It is created by the [client side application](../connecting/resource-setup-in-device-management-client.html).
-
- Not meant to be a human-readable name for the resource. Multiple resource
- types may be included, separated by a space.'
- example: light_sensor
- type: string
- type: object
- SAML2Info:
- description: Represents SAML2 specific attributes in responses.
- properties:
- assertion_endpoint:
- description: URL of the service provider's assertion endpoint. Leave this
- empty to use the default assertion endpoint.
- type: string
- x-nullable: true
- idp_entity_id:
- description: Entity ID of the identity provider.
+ jwks_uri:
+ description: URL of the provider's JSON web key set document.
type: string
x-nullable: true
- idp_x509_certs:
- description: List of public X509 certificates of the identity provider in
- PEM format.
+ keys:
+ description: Provider's public keys and key IDs used to sign ID tokens. PEM-encoded.
items:
- type: string
+ $ref: '#/definitions/IdpPublicKey'
type: array
x-nullable: true
- slo_endpoint:
- description: URL of the identity provider's SLO endpoint.
+ redirect_uri:
+ description: The URI needed to authenticate and gain access to identity provider's
+ API. Leave this empty to use the default redirect URI.
type: string
x-nullable: true
- sp_entity_id:
- description: Entity ID of the service provider.
+ revocation_endpoint:
+ description: URL of the provider's token revocation endpoint.
type: string
x-nullable: true
- sp_x509_cert:
- description: Public X509 certificate of the service provider in PEM format.
- This is a read-only attribute, see API documentation about how to generate
- a new one or how to delete it.
- readOnly: true
+ scopes:
+ description: Space-separated list of scopes sent in the authentication request.
+ When not configured otherwise, the default scopes are ['openid profile email'](https://openid.net/specs/openid-connect-core-1_0.html#ScopeClaims).
+ example: openid email
type: string
- x-nullable: true
- sso_endpoint:
- description: URL of the identity provider's SSO endpoint.
+ token_endpoint:
+ description: URL of the OAuth 2.0 authorization endpoint.
type: string
x-nullable: true
- type: object
- SAML2Req:
- properties:
- entity_descriptor:
- description: Contains an entity descriptor document for the identity provider.
- Can be used as an alternative method to provide the identity provider's
- attributes.
- format: byte
- maxLength: 65535
- type: string
- idp_entity_id:
- description: Entity ID of the identity provider.
- type: string
- idp_x509_certs:
- description: List of public X509 certificates of the identity provider. Certificates
- must be in PEM format.
- items:
- type: string
- type: array
- slo_endpoint:
- description: URL of the identity provider's SLO endpoint.
+ token_request_mode:
+ default: POST
+ description: One way to obtain the access token. Since the request results
+ in the transmission of clear-text credentials, the client must use the POST
+ mode.
+ enum:
+ - POST
+ - GET
type: string
- sp_entity_id:
- description: Entity ID of the service provider. We recommend that you leave
- it empty and let the system generate it.
+ token_response_path:
+ description: Path to the standard data in the token response. Levels in the
+ JSON structure must be separated by '.' (dot) characters.
+ example: oidc.data
type: string
- sso_endpoint:
- description: URL of the identity provider's SSO endpoint.
+ userinfo_endpoint:
+ description: URL of the OAuth 2.0 UserInfo endpoint.
type: string
+ x-nullable: true
+ required:
+ - issuer
type: object
- ServerCredentialsResponseData:
+ ObservationsCounter:
+ description: The number of resource observation event requests received from devices.
+ format: int64
+ minimum: 0
+ type: integer
+ ParentAccountInfo:
+ description: Represents parent account contact details in responses.
properties:
- created_at:
- description: Creation UTC time RFC3339.
- format: date-time
+ admin_email:
+ description: The email address of the admin user who is the contact person
+ of the parent account.
+ example: info@arm.com
+ pattern: ^(?=.{3,254}$).+\@.+
type: string
- etag:
- description: API resource entity version.
+ admin_name:
+ description: The name of the admin user who is the contact person of the parent
+ account.
+ example: J. Doe
+ maxLength: 100
type: string
id:
- description: Unique entity ID.
- type: string
- object:
- description: 'Entity name: always `server-credentials`.'
- type: string
- server_certificate:
- description: PEM-format X.509 server certificate used to validate the server
- certificate received during the TLS/DTLS handshake.
- type: string
- server_uri:
- description: Server URI that the client connects to.
+ description: The ID of the parent account.
+ example: 01619571dad80242ac12000600000000
+ pattern: '[a-f0-9]{32}'
type: string
type: object
- ServicePackageMetadata:
- description: Account's service package metadata. Value is `null` if service package
- has expired.
+ PasswordPolicy:
properties:
- end_time:
- description: Service package end time in RFC3339 date-time with millisecond
- accuracy and UTC time zone.
- format: date-time
- type: string
- remaining_quota:
- description: Current available service package quota.
- format: int64
- minimum: 0
- type: integer
- reserved_quota:
- description: Sum of all open reservations for this account.
- format: int64
- minimum: 0
+ minimum_length:
+ description: Minimum length for the password.
+ example: '8'
+ maximum: 512
+ minimum: 8
type: integer
- start_time:
- description: Service package start time in RFC3339 date-time with millisecond
- accuracy and UTC time zone.
- format: date-time
- type: string
required:
- - start_time
- - end_time
- - remaining_quota
- - reserved_quota
+ - minimum_length
type: object
- ServicePackageQuota:
- description: Quota of the service package.
+ PelionToDeviceMessagesCounter:
+ description: The number of messages from Device Management to the device.
properties:
- object:
- description: Always set to `service-package-quota`.
- enum:
- - service-package-quota
- type: string
- quota:
- description: Available quota for the service package.
+ proxy_requests:
+ $ref: '#/definitions/ProxyRequestsCounter'
+ subscriptions:
+ $ref: '#/definitions/SubscriptionsCounter'
+ total_count:
+ description: The number of all outbound requests sent to devices.
format: int64
minimum: 0
type: integer
required:
- - object
- - quota
+ - total_count
+ - proxy_requests
+ - subscriptions
type: object
- ServicePackageQuotaHistoryItem:
- description: Quota history item.
+ PelionToWebappNotificationsCounter:
+ description: The number of notifications from Device Management to the web application
+ or portal.
+ format: int64
+ minimum: 0
+ type: integer
+ PendingServicePackage:
+ description: A pending service package.
properties:
- added:
- description: Added time of quota history entry in RFC3339 date-time with millisecond
+ created:
+ description: Service package creation time in RFC3339 date-time with millisecond
accuracy and UTC time zone.
format: date-time
type: string
- amount:
- description: Negative or positive quota usage.
- format: int64
+ expires:
+ description: Service package expiration time in RFC3339 date-time with millisecond
+ accuracy and UTC time zone.
+ format: date-time
+ type: string
+ firmware_update_count:
+ description: Size of firmware update quota of this service package.
+ format: int32
type: integer
id:
- description: Service package quota history ID.
- maxLength: 32
- minLength: 32
+ description: ID of this service package.
type: string
- reason:
- description: Type of quota usage entry.
- enum:
- - reservation
- - reservation_release
- - reservation_termination
- - package_creation
- - package_renewal
- - package_termination
+ modified:
+ description: Service package latest modified time in RFC3339 date-time with
+ millisecond accuracy and UTC time zone.
+ format: date-time
+ type: string
+ previous_id:
+ description: Previous service package ID.
+ type: string
+ start_time:
+ description: Service package start time in RFC3339 date-time with millisecond
+ accuracy and UTC time zone.
+ format: date-time
type: string
- reservation:
- $ref: '#/definitions/ServicePackageQuotaHistoryReservation'
- description: Reservation details if reason is `reservation`, `reservation_releasem`
- or `reservation_termination`.
- type: object
- service_package:
- $ref: '#/definitions/ServicePackageQuotaHistoryServicePackage'
- description: Service package details if reason is `package_creation`, `package_renewal`
- or `package_termination`.
- type: object
required:
- id
- - added
- - amount
- - reason
+ - previous_id
+ - created
+ - modified
+ - start_time
+ - expires
+ - firmware_update_count
type: object
- ServicePackageQuotaHistoryReservation:
- description: Service package quota history reservation object.
+ PreSharedKey:
properties:
- account_id:
- description: Account ID.
- maxLength: 250
- minLength: 1
+ endpoint_name:
+ description: The unique endpoint identifier that this PSK applies to. 16-64
+ [printable](https://en.wikipedia.org/wiki/ASCII#Printable_characters) (non-control)
+ ASCII characters.
+ example: my-endpoint-0001
+ pattern: ^[ -~]{16,64}$
type: string
- campaign_name:
- description: Campaign name for this reservation.
- maxLength: 250
- minLength: 1
+ secret_hex:
+ description: The secret of the PSK in hexadecimal. It is not case sensitive;
+ 4a is same as 4A, and it is allowed with or without 0x in the beginning.
+ The minimum length of the secret is 128 bits and maximum 256 bits.
+ example: 4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a
+ pattern: ^(0[xX])?[0-9a-fA-F]{32,64}$
type: string
- id:
- description: Reservation ID.
- maxLength: 250
- minLength: 1
+ required:
+ - endpoint_name
+ - secret_hex
+ type: object
+ PreSharedKeyWithoutSecret:
+ properties:
+ created_at:
+ description: The date-time (RFC3339) when this PSK was uploaded to Device
+ Management.
+ example: '2017-07-21T17:32:28.012Z'
+ format: date-time
+ type: string
+ endpoint_name:
+ description: The unique endpoint identifier that this PSK applies to. 16-64
+ [printable](https://en.wikipedia.org/wiki/ASCII#Printable_characters) (non-control)
+ ASCII characters.
+ example: my-endpoint-0001
+ pattern: ^[ -~]{16,64}$
type: string
required:
- - id
- - account_id
- - campaign_name
- ServicePackageQuotaHistoryResponse:
- description: Quota history of the service package.
+ - endpoint_name
+ type: object
+ Presubscription:
properties:
- after:
- description: ID after which to fetch quota history.
- maxLength: 32
- minLength: 32
+ endpoint-name:
+ description: Device Management device ID.
+ example: 015f3850a657000000000001001002ab
type: string
- data:
- description: List of history items. Empty list if no entries are available.
+ endpoint-type:
+ example: Light
+ type: string
+ resource-path:
items:
- $ref: '#/definitions/ServicePackageQuotaHistoryItem'
+ description: A resource URI.
+ example: /sen/light
+ type: string
+ minItems: 1
type: array
- has_more:
- description: If there is next available quota history paged response to fetch.
- type: boolean
- limit:
- description: Maximum number of quota history entries contained in one paged
- response.
- format: int32
- maximum: 1000
- minimum: 2
- type: integer
- object:
- description: Always set to `service-package-quota-history`.
- enum:
- - service-package-quota-history
- type: string
- total_count:
- description: Sum of all quota history entries that should be returned.
- format: int32
- minimum: 0
- type: integer
- required:
- - object
- - data
- - has_more
- - limit
- - total_count
type: object
- ServicePackageQuotaHistoryServicePackage:
- description: Service package quota history service package object.
+ PresubscriptionArray:
+ items:
+ $ref: '#/definitions/Presubscription'
+ type: array
+ PreviousServicePackage:
+ description: Previously active service package.
properties:
+ created:
+ description: Service package creation time in RFC3339 date-time with millisecond
+ accuracy and UTC time zone.
+ format: date-time
+ type: string
+ end_time:
+ description: Service package end time in RFC3339 date-time with millisecond
+ accuracy and UTC time zone.
+ format: date-time
+ type: string
expires:
description: Service package expiration time in RFC3339 date-time with millisecond
accuracy and UTC time zone.
@@ -5505,8 +6241,23 @@ definitions:
id:
description: ID of this service package.
type: string
+ modified:
+ description: Service package latest modified time in RFC3339 date-time with
+ millisecond accuracy and UTC time zone.
+ format: date-time
+ type: string
+ next_id:
+ description: Next service package ID if this service package has a pending
+ renewal or null.
+ type: string
previous_id:
- description: Previous service package ID, or null.
+ description: Previous service package ID.
+ type: string
+ reason:
+ description: Reason the service package was ended.
+ enum:
+ - renewed
+ - terminated
type: string
start_time:
description: Service package start time in RFC3339 date-time with millisecond
@@ -5516,95 +6267,92 @@ definitions:
required:
- id
- start_time
+ - created
+ - modified
- expires
+ - end_time
- firmware_update_count
- ServicePackageReport:
- description: Account's current service package data included in reporting.
- properties:
- aggregated_quota_usage:
- items:
- $ref: '#/definitions/AggregatedQuotaUsageReport'
- type: array
- metadata:
- $ref: '#/definitions/ServicePackageMetadata'
- description: '`Null` if service package has expired.'
- x-nullable: true
- quota_usage:
- items:
- $ref: '#/definitions/QuotaUsageReport'
- type: array
- required:
- - metadata
- - quota_usage
- - aggregated_quota_usage
+ - reason
type: object
- ServicePackagesResponse:
- description: Contains service package information for currently active service
- package, currently pending service package, and all previous service packages
- associated with the account.
+ ProxyRequestsCounter:
+ description: The number of device command requests sent to devices.
+ format: int64
+ minimum: 0
+ type: integer
+ ProxyResponsesCounter:
+ description: The number of device command responses received from devices.
+ format: int64
+ minimum: 0
+ type: integer
+ QuotaUsageReport:
+ description: Account quota usage entry for queried month.
properties:
- active:
- $ref: '#/definitions/ActiveServicePackage'
- description: Currently active service package. Can be null.
- type: object
- object:
- description: Always set to `service-packages`.
+ amount:
+ description: Amount of quota usage entry. Negative if quota consumption.
+ format: int64
+ type: integer
+ campaign_name:
+ description: 'Campaign name of quota usage entry.
+
+ Null if quota usage entry type is not `reservation` or `reservation release`.'
+ type: string
+ time:
+ description: Added time of quota usage entry in RFC3339 date-time with millisecond
+ accuracy and UTC time zone.
+ format: date-time
+ type: string
+ type:
+ description: Type of quota usage entry.
enum:
- - service-packages
+ - reservation
+ - reservation_release
+ - reservation_termination
+ - package_renewal
+ - package_creation
+ - package_termination
+ - package_tokens_edit
type: string
- pending:
- $ref: '#/definitions/PendingServicePackage'
- description: Current pending service package. Can be null.
- type: object
- previous:
- description: List of previous service packages.
- items:
- $ref: '#/definitions/PreviousServicePackage'
- type: array
required:
- - object
- - previous
- SubjectList:
- description: Represents arrays of user and API key IDs.
+ - amount
+ - type
+ - time
+ type: object
+ RegisterWebsocketChannel:
properties:
- apikeys:
- description: An array of API key IDs.
- items:
- type: string
- type: array
- users:
- description: An array of user IDs.
- items:
- type: string
- type: array
+ serialization:
+ $ref: '#/definitions/SerializationConfigData'
type: object
- SubscriptionsList:
- description: A list of resource URIs, one per line.
- example: /sen/light
- type: string
- SubtenantAccountReport:
- description: Billing report for subtenant account.
- properties:
- account:
- $ref: '#/definitions/SubtenantReportAccountContactInfo'
- description: Subtenant account contact information.
- billing_data:
- $ref: '#/definitions/ReportBillingData'
- description: Report billing data.
- service_package:
- $ref: '#/definitions/SubtenantServicePackageReport'
- description: Report service package for subtenant account.
- required:
- - account
- - billing_data
- type: object
- SubtenantReportAccountContactInfo:
- description: Subtenant account contact information.
+ RegistrationDeletesCounter:
+ description: The number of deregistration requests received from devices.
+ format: int64
+ minimum: 0
+ type: integer
+ RegistrationUpdatesCounter:
+ description: The number of device registration update requests received from devices.
+ format: int64
+ minimum: 0
+ type: integer
+ RegistrationsCounter:
+ description: The number of full device registration requests received from devices.
+ format: int64
+ minimum: 0
+ type: integer
+ ReportAccountContactInfo:
+ description: Account contact information.
properties:
address_line1:
type: string
address_line2:
type: string
+ alias:
+ type: string
+ business_model:
+ description: The business model selected for the account to generate the billing
+ reports.
+ enum:
+ - active_device_business_model
+ - api_calls_1_business_model
+ type: string
city:
type: string
company:
@@ -5614,7 +6362,7 @@ definitions:
country:
type: string
customer_subtenant_id:
- description: Account subtenant ID, if a subtenant.
+ description: Account tenant ID, valid only for tenants.
type: string
email:
type: string
@@ -5630,1010 +6378,1156 @@ definitions:
required:
- id
- company
- - customer_subtenant_id
type: object
- SubtenantServicePackageReport:
+ ReportBillingData:
properties:
- quota_usage:
- items:
- $ref: '#/definitions/QuotaUsageReport'
- type: array
+ active_devices:
+ $ref: '#/definitions/ActiveDevicesCounter'
+ device_to_pelion_messages:
+ $ref: '#/definitions/DeviceToPelionMessagesCounter'
+ firmware_updates:
+ $ref: '#/definitions/FirmwareUpdatesCounter'
+ generated:
+ description: Billing report generated time in RFC3339 date-time with millisecond
+ accuracy and UTC time zone.
+ format: date-time
+ type: string
+ pelion_to_device_messages:
+ $ref: '#/definitions/PelionToDeviceMessagesCounter'
+ pelion_to_webapp_notifications:
+ $ref: '#/definitions/PelionToWebappNotificationsCounter'
+ period_end:
+ description: Billing report end time in RFC3339 date-time with millisecond
+ accuracy and UTC time zone.
+ format: date-time
+ type: string
+ period_start:
+ description: Billing report start time in RFC3339 date-time with millisecond
+ accuracy and UTC time zone.
+ format: date-time
+ type: string
+ rest_api_requests_with_api_key_token:
+ $ref: '#/definitions/RestApiRequestsWithApiKeyTokenCounter'
+ rest_api_requests_with_user_token:
+ $ref: '#/definitions/RestApiRequestsWithUserTokenCounter'
+ sda_tokens:
+ $ref: '#/definitions/SdaTokensCounter'
required:
- - quota_usage
+ - generated
+ - period_start
+ - period_end
+ - active_devices
+ - firmware_updates
+ - sda_tokens
type: object
- TrustedCertificateReq:
- description: Represents a trusted certificate in upload requests.
+ ReportNotFoundErrorResponse:
+ description: 404 Not found response.
properties:
- certificate:
- description: A chain of X509.v3 trusted certificates in PEM format. The chain
- must contain all certificates from root to leaf. Otherwise, the signature
- parameter is required.
+ code:
+ description: Response code. Always set to 404.
+ enum:
+ - 404
+ type: integer
+ message:
+ description: A human-readable message with detailed info.
type: string
- description:
- description: Human readable description of this certificate.
- maxLength: 500
+ object:
+ description: Always set to `error`.
+ enum:
+ - error
type: string
- x-nullable: true
- enrollment_mode:
- description: Certificate is used in enrollment mode. Default value is false.
- type: boolean
- name:
- description: Certificate name.
- maxLength: 100
+ request_id:
+ description: Request ID
type: string
- service:
- description: Service name where the certificate must be used.
+ type:
+ description: Error type. Always set to `report_not_found`.
enum:
- - lwm2m
- - bootstrap
+ - report_not_found
type: string
- signature:
- description: 'DEPRECATED: Base64 encoded signature of the account ID signed
- by the certificate to upload. The signature must be hashed with SHA256.'
+ required:
+ - object
+ - message
+ - request_id
+ - type
+ - code
+ type: object
+ ReportResponse:
+ description: Billing report response.
+ properties:
+ account:
+ $ref: '#/definitions/ReportAccountContactInfo'
+ description: Account contact information.
+ aggregated:
+ $ref: '#/definitions/ReportBillingData'
+ description: Aggregated report billing data including all tenant accounts,
+ if any.
+ billing_data:
+ $ref: '#/definitions/ReportBillingData'
+ description: Report billing data.
+ id:
+ description: Billing report ID.
type: string
- status:
- description: Status of the certificate.
+ month:
+ description: Month of requested billing report.
+ pattern: ^\d{4}-\d{2}$
+ type: string
+ object:
+ description: Billing report response object. Always set to `billing-report`.
enum:
- - ACTIVE
- - INACTIVE
+ - billing-report
type: string
+ service_package:
+ $ref: '#/definitions/ServicePackageReport'
+ description: Service package report.
+ subtenants:
+ description: List of billing reports for tenant accounts. Empty list if account
+ does not have any tenant account.
+ items:
+ $ref: '#/definitions/SubtenantAccountReport'
+ type: array
required:
- - certificate
- - name
- - service
+ - id
+ - object
+ - account
+ - billing_data
+ - month
type: object
- TrustedCertificateResp:
- description: Represents a trusted certificate in responses.
+ Resource:
properties:
- account_id:
- description: The ID of the account.
- example: 01619571e2e90242ac12000600000000
- pattern: '[a-f0-9]{32}'
+ obs:
+ description: '''Determines whether you can subscribe to changes for this resource.
+ It can have values `true` or `false`.'''
+ example: true
+ type: boolean
+ rt:
+ description: Application-specific resource type that describes this resource,
+ created by the [client application](https://www.pelion.com/docs/device-management/current/resources/resource-setup-in-device-management-client.html).
+ Not meant to be a human-readable name for the resource. Multiple resource
+ types may be included, separated by a space.
+ example: light_sensor
type: string
- certificate:
- description: X509.v3 trusted certificate in PEM format.
- example: '-----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----'
+ type:
+ description: 'The content type of the resource.
+
+
+ We recommend you use the content types listed in the [LwM2M specification](http://www.openmobilealliance.org/wp/omna/lwm2m/lwm2mregistry.html).'
+ example: text/plain
type: string
- certificate_fingerprint:
- description: A SHA-256 fingerprint of the certificate.
- example: a10fb2c8ba90e6de927bd0ae391dcc38f6115685de2d7024712af37ead0608f1
+ uri:
+ description: 'The resource URL. This can be the path to:
+
+
+ - An object; for example, `3303`.
+
+ - An object instance; for example `3303/0`.
+
+ - A resource; for example `3303/0/5602`.
+
+
+ For more information about the Device Management resource model, please
+ see the [Device Management documentation](https://www.pelion.com/docs/device-management/current/resources/resource-model.html).'
+ example: /sen/light
type: string
- created_at:
- description: Creation UTC time RFC3339.
- example: '2018-02-13T09:35:20Z'
- format: date-time
+ required:
+ - uri
+ type: object
+ ResourceArray:
+ items:
+ $ref: '#/definitions/Resource'
+ type: array
+ ResourcePath:
+ description: A resource URI.
+ example: /sen/light
+ type: string
+ ResourcesData:
+ properties:
+ ct:
+ description: Content type.
+ example: text/plain
type: string
- description:
- description: Human readable description of this certificate.
- example: Certificate created by me.
- maxLength: 500
+ if:
+ description: Interface description that defines a name or URI that indicates
+ how to interact with the target resource. It describes a generic interface
+ type, such as a 'sensor'.
+ example: sensor
type: string
- x-nullable: true
- device_execution_mode:
- description: Device execution mode where 1 means a developer certificate.
- example: 1
- format: int32
- type: integer
- enrollment_mode:
- description: If true, signature is not required. Default value false.
- example: false
+ obs:
+ description: Whether the resource is observable (true/false).
+ example: true
type: boolean
- etag:
- description: API resource entity version.
- example: '1'
- type: string
- id:
- description: Entity ID.
- example: 01619571d01d0242ac12000600000000
- pattern: '[a-f0-9]{32}'
- type: string
- issuer:
- description: Issuer of the certificate.
- example: CN=issuer
+ path:
+ description: Resource's URI path.
+ example: /sen/light
type: string
- name:
- description: Certificate name.
- example: My certificate
- maxLength: 100
+ rt:
+ description: 'Application-specific resource type that describes this resource.
+ It is created by the [client side application](https://www.pelion.com/docs/device-management/current/resources/resource-setup-in-device-management-client.html).
+
+ Not meant to be a human-readable name for the resource. Multiple resource
+ types may be included, separated by a space.'
+ example: light_sensor
type: string
- object:
- description: 'Entity name: always ''trusted-cert'''
- enum:
- - trusted-cert
+ type: object
+ RestApiRequestsWithApiKeyTokenCounter:
+ description: The number of REST API requests made with access keys in web applications
+ or other service integrations.
+ format: int64
+ minimum: 0
+ type: integer
+ RestApiRequestsWithUserTokenCounter:
+ description: The number of REST API requests from user sessions in Device Management
+ Portal.
+ format: int64
+ minimum: 0
+ type: integer
+ SAML2Info:
+ description: Represents SAML2 specific attributes in responses.
+ properties:
+ assertion_endpoint:
+ description: URL of the service provider's assertion endpoint. Leave this
+ empty to use the default assertion endpoint.
type: string
- owner_id:
- description: The ID of the owner.
- example: 01619571dad80242ac12000600000000
- pattern: '[a-f0-9]{32}'
+ x-nullable: true
+ idp_entity_id:
+ description: Entity ID of the identity provider.
type: string
x-nullable: true
- service:
- description: Service name where the certificate is used.
- enum:
- - lwm2m
- - bootstrap
- type: string
- status:
- description: Status of the certificate.
- enum:
- - ACTIVE
- - INACTIVE
- example: ACTIVE
- type: string
- subject:
- description: Subject of the certificate.
- example: CN=subject
+ idp_x509_certs:
+ description: List of public X509 certificates of the identity provider in
+ PEM format.
+ items:
+ type: string
+ type: array
+ x-nullable: true
+ slo_endpoint:
+ description: URL of the identity provider's SLO endpoint.
type: string
- updated_at:
- description: Last update UTC time RFC3339.
- example: '2018-02-14T15:24:14Z'
- format: date-time
+ x-nullable: true
+ sp_entity_id:
+ description: Entity ID of the service provider.
type: string
- valid:
- description: This read-only flag indicates whether the certificate is valid
- or not.
- example: true
+ x-nullable: true
+ sp_x509_cert:
+ description: Public X509 certificate of the service provider in PEM format.
+ This is a read-only attribute, see API documentation about how to generate
+ a new one or how to delete it.
readOnly: true
- type: boolean
- validity:
- description: Expiration time in UTC formatted as RFC3339.
- example: '2038-02-14T15:24:14Z'
- format: date-time
- type: string
- required:
- - account_id
- - certificate
- - certificate_fingerprint
- - etag
- - id
- - issuer
- - name
- - object
- - service
- - subject
- - validity
- type: object
- TrustedCertificateRespList:
- properties:
- after:
- description: The entity ID to fetch after the given one.
- example: 01619571f3c00242ac12000600000000
- pattern: '[a-f0-9]{32}'
type: string
- data:
- description: A list of entities.
- items:
- $ref: '#/definitions/TrustedCertificateResp'
- type: array
- has_more:
- description: Flag indicating whether there are more results.
- example: false
- type: boolean
- limit:
- description: The number of results to return (2-1000), or equal to `total_count`.
- example: 50
- format: int32
- type: integer
- object:
- description: 'Entity name: always `list`.'
- enum:
- - list
- type: string
- order:
- description: 'The order of the records to return based on creation time. Available
- values: ASC, DESC; by default ASC.'
- enum:
- - ASC
- - DESC
+ x-nullable: true
+ sso_endpoint:
+ description: URL of the identity provider's SSO endpoint.
type: string
- total_count:
- description: The total number of records, if requested.
- example: 20
- format: int32
- type: integer
- required:
- - data
- - has_more
- - limit
- - object
- - total_count
+ x-nullable: true
type: object
- TrustedCertificateUpdateReq:
- description: Represents a trusted certificate in update requests.
+ SAML2Req:
properties:
- certificate:
- description: A chain of X509.v3 trusted certificates in PEM format. The chain
- must contain all certificates from root to leaf. Otherwise, the signature
- parameter is required.
- type: string
- description:
- description: Human readable description of this certificate.
- maxLength: 500
+ entity_descriptor:
+ description: Contains an entity descriptor document for the identity provider.
+ Can be used as an alternative method to provide the identity provider's
+ attributes.
+ format: byte
+ maxLength: 65535
type: string
- x-nullable: true
- enrollment_mode:
- description: Certificate is used in enrollment mode. Default value is false.
- type: boolean
- name:
- description: Certificate name.
- maxLength: 100
+ idp_entity_id:
+ description: Entity ID of the identity provider.
type: string
- service:
- description: Service name where the certificate must be used.
- enum:
- - lwm2m
- - bootstrap
+ idp_x509_certs:
+ description: List of public X509 certificates of the identity provider. Certificates
+ must be in PEM format.
+ items:
+ type: string
+ type: array
+ slo_endpoint:
+ description: URL of the identity provider's SLO endpoint.
type: string
- signature:
- description: 'DEPRECATED: Base64 encoded signature of the account ID signed
- by the certificate to be uploaded. The signature must be hashed with SHA256.'
+ sp_entity_id:
+ description: Entity ID of the service provider. We recommend that you leave
+ it empty and let the system generate it.
type: string
- status:
- description: Status of the certificate.
- enum:
- - ACTIVE
- - INACTIVE
+ sso_endpoint:
+ description: URL of the identity provider's SSO endpoint.
type: string
type: object
- UnauthorizedErrorResponse:
- description: 401 Unauthorized response.
+ SdaTokensCounter:
+ description: The total number of devices included in the Secure Device Access
+ tokens used in the requested time. A single Secure Device Access token can be
+ linked to multiple endpoint names.
+ format: int64
+ minimum: 0
+ type: integer
+ SerializationConfigData:
+ description: Serialization configuration for a channel.
properties:
- code:
- description: Response code. Always set to 401.
- enum:
- - 401
+ cfg:
+ $ref: '#/definitions/SerializationConfigObjectV2'
+ max_chunk_size:
+ description: Maximum number of messages in NotificationMessage container delivered
+ in one request. Default is 10000. Using a very low value for high troughput
+ applications may cause lag in notification delivery, as a new chunk is sent
+ only after the previous one has been acknowledged. Using a high value is
+ recommended and safe, as chunks are sent quickly after notifications are
+ received from devices. See [notification sending logic](https://www.pelion.com/docs/device-management/current/integrate-web-app/event-notification.html#notification-sending-logic)
+ for more details.
+ example: '500'
+ maximum: 10000
+ minimum: 100
type: integer
- message:
- description: A human-readable message with detailed info.
- type: string
- object:
- description: Always set to `error`.
- enum:
- - error
- type: string
- request_id:
- description: Request ID
- type: string
type:
- description: Error type. Always set to `unauthorized`.
+ default: v2
+ description: 'Serialization type: v2 - specified in NotificationMessage.'
enum:
- - unauthorized
+ - v2
+ example: v2
type: string
required:
- - object
- - message
- - request_id
- type
- - code
type: object
- UpdateCampaign:
+ SerializationConfigObjectV2:
+ description: Serialization configuration object according to configuration type.
+ properties:
+ deregistrations_as_object:
+ default: false
+ description: 'Defines serialization format for ''de-registrations'' and ''registrations-expired''.
+ If set to true,
+
+ de-registration and registration-expired messages will be represented as
+ json objects and can have
+
+ additional fields: ''uid'', ''timestamp'', ''original-ep'', together with
+ the ''ep'' field. If set to false,
+
+ (default) - de-registration and ''registration-expired'' will be represented
+ by a string,
+
+ containing only data from ''ep'' field.
+
+ '
+ example: 'true'
+ type: boolean
+ include_original_ep:
+ default: false
+ description: 'Include ''original-ep'' message field in serialized objects.
+ This is the endpoint_name from the device.
+
+ '
+ example: 'true'
+ type: boolean
+ include_timestamp:
+ default: false
+ description: 'Include ''timestamp'' message field in serialized objects. The
+ timestamp represents the time that the notification service receives the
+ message and sorts it into the queue. Timestamp provides information of queue
+ length (web-app current time - timestamp = delay).
+
+ '
+ example: 'true'
+ type: boolean
+ include_uid:
+ default: false
+ description: 'Include ''uid'' message field to serialized objects. This is
+ message ID, and can be used for duplicate detection.
+
+ '
+ example: 'true'
+ type: boolean
+ type: object
+ ServerCredentialsResponseData:
properties:
- autostop_reason:
- description: Text description of why a campaign failed to start or why a campaign
- stopped.
- example: Insufficient billing credit.
- type: string
created_at:
- description: The time the update campaign was created
- example: '2017-05-22T12:37:55.576563Z'
+ description: Creation UTC time RFC3339.
format: date-time
type: string
- description:
- description: An optional description of the campaign
- example: ''
- maxLength: 2000
- type: string
- device_filter:
- description: The filter for the devices the campaign is targeting at
- example: id__eq=00000000000000000000000000000000
- type: string
etag:
- description: The entity instance signature
- example: '2017-05-22T12:37:58.753425Z'
- type: string
- finished:
- description: The campaign finish timestamp
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
+ description: API resource entity version.
type: string
id:
- description: The campaign ID
- example: '00000000000000000000000000000000'
- type: string
- name:
- description: The campaign name
- example: campaign
- maxLength: 128
+ description: Unique entity ID.
type: string
object:
- description: The API resource entity
- example: update-campaign
- type: string
- phase:
- description: The current phase of the campaign.
- readOnly: true
+ description: 'Entity name: always `server-credentials`.'
type: string
- root_manifest_id:
- example: '00000000000000000000000000000000'
+ server_certificate:
+ description: PEM-format X.509 server certificate used to validate the server
+ certificate received during the TLS/DTLS handshake.
type: string
- root_manifest_url:
- example: http://example.com/00000000000000000000000000000000
+ server_uri:
+ description: Server URI that the client connects to.
type: string
- started_at:
- example: '2017-05-22T12:37:55.576563Z'
+ type: object
+ ServicePackageMetadata:
+ description: Account's service package metadata. Value is `null` if service package
+ has expired.
+ properties:
+ end_time:
+ description: Service package end time in RFC3339 date-time with millisecond
+ accuracy and UTC time zone.
format: date-time
type: string
- state:
- description: 'DEPRECATED: The state of the campaign (use phase instead).'
- enum:
- - draft
- - scheduled
- - allocatingquota
- - allocatedquota
- - quotaallocationfailed
- - checkingmanifest
- - checkedmanifest
- - devicefetch
- - devicecopy
- - devicecheck
- - publishing
- - deploying
- - deployed
- - manifestremoved
- - expired
- - stopping
- - autostopped
- - userstopped
- - conflict
- type: string
- x-deprecation:
- comment: Use phase instead
- end_of_life_at: '2020-03-18T14:55:20+00:00'
- issued_at: '2019-03-18T14:55:20+00:00'
- links: []
- updated_at:
- description: The time the object was updated
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- when:
- description: The scheduled start time for the campaign. The campaign will
- start within 1 minute when then start time has elapsed.
- example: '2017-05-22T12:37:55.576563Z'
+ remaining_quota:
+ description: Current available service package quota.
+ format: int64
+ minimum: 0
+ type: integer
+ reserved_quota:
+ description: Sum of all open reservations for this account.
+ format: int64
+ minimum: 0
+ type: integer
+ start_time:
+ description: Service package start time in RFC3339 date-time with millisecond
+ accuracy and UTC time zone.
format: date-time
type: string
- x-nullable: true
- UpdateCampaignEqNeqFilter:
+ required:
+ - start_time
+ - end_time
+ - remaining_quota
+ - reserved_quota
+ type: object
+ ServicePackageQuota:
+ description: Quota of the service package.
properties:
- created_at:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- description:
- type: string
- device_filter:
- type: string
- etag:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- finished:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- id:
- type: string
- name:
- type: string
- root_manifest_id:
- type: string
- started_at:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- state:
- type: string
- updated_at:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- when:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
+ object:
+ description: Always set to `service-package-quota`.
+ enum:
+ - service-package-quota
type: string
- UpdateCampaignGteLteFilter:
+ quota:
+ description: Available quota for the service package.
+ format: int64
+ minimum: 0
+ type: integer
+ required:
+ - object
+ - quota
+ type: object
+ ServicePackageQuotaHistoryItem:
+ description: Quota history item.
properties:
- created_at:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- etag:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- finished:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- started_at:
- example: '2017-05-22T12:37:55.576563Z'
+ added:
+ description: Added time of quota history entry in RFC3339 date-time with millisecond
+ accuracy and UTC time zone.
format: date-time
type: string
- updated_at:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
+ amount:
+ description: Negative or positive quota usage.
+ format: int64
+ type: integer
+ id:
+ description: Service package quota history ID.
+ maxLength: 32
+ minLength: 32
type: string
- when:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
+ reason:
+ description: Type of quota usage entry.
+ enum:
+ - reservation
+ - reservation_release
+ - reservation_termination
+ - package_creation
+ - package_renewal
+ - package_termination
+ - package_tokens_edit
type: string
- x-nullable: true
- UpdateCampaignInNinFilter:
+ reservation:
+ $ref: '#/definitions/ServicePackageQuotaHistoryReservation'
+ description: Reservation details if reason is `reservation`, `reservation_release`
+ or `reservation_termination`.
+ type: object
+ service_package:
+ $ref: '#/definitions/ServicePackageQuotaHistoryServicePackage'
+ description: Service package details if reason is `package_creation`, `package_renewal`,
+ `package_termination`, or `package_tokens_edit`.
+ type: object
+ required:
+ - id
+ - added
+ - amount
+ - reason
+ type: object
+ ServicePackageQuotaHistoryReservation:
+ description: Service package quota history reservation object.
properties:
- created_at:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- description:
- type: string
- device_filter:
- type: string
- etag:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
+ account_id:
+ description: Account ID.
+ maxLength: 250
+ minLength: 1
type: string
- finished:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
+ campaign_name:
+ description: Campaign name for this reservation.
+ maxLength: 250
+ minLength: 1
type: string
id:
+ description: Reservation ID.
+ maxLength: 250
+ minLength: 1
type: string
- name:
- type: string
- root_manifest_id:
- type: string
- started_at:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- state:
- type: string
- updated_at:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- when:
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- UpdateCampaignPage:
+ required:
+ - id
+ - account_id
+ - campaign_name
+ ServicePackageQuotaHistoryResponse:
+ description: Quota history of the service package.
properties:
after:
- example: null
+ description: ID after which to fetch quota history.
+ maxLength: 32
+ minLength: 32
type: string
data:
- example: '[]'
+ description: List of history items. Empty list if no entries are available.
items:
- $ref: '#/definitions/UpdateCampaign'
+ $ref: '#/definitions/ServicePackageQuotaHistoryItem'
type: array
has_more:
+ description: If there is next available quota history paged response to fetch.
type: boolean
limit:
+ description: Maximum number of quota history entries in one paged response.
+ format: int32
+ maximum: 1000
+ minimum: 2
type: integer
object:
- example: list
+ description: Always set to `service-package-quota-history`.
+ enum:
+ - service-package-quota-history
type: string
order:
- description: 'The order of the records to return. Acceptable values: ASC,
- DESC. Default: ASC'
- enum:
- - ASC
- - DESC
- example: ASC
+ description: History item record order based on creation time.
type: string
total_count:
+ description: Sum of all quota history entries that should be returned.
+ format: int32
+ minimum: 0
type: integer
- UpdateCampaignPostRequest:
+ required:
+ - object
+ - data
+ - has_more
+ - limit
+ - total_count
+ - order
+ type: object
+ ServicePackageQuotaHistoryServicePackage:
+ description: Service package quota history service package object.
properties:
- description:
- description: An optional description of the campaign
- example: ''
- maxLength: 2000
- type: string
- device_filter:
- description: The filter for the devices the campaign is targeting at
- example: id__eq=00000000000000000000000000000000
+ expires:
+ description: Service package expiration time in RFC3339 date-time with millisecond
+ accuracy and UTC time zone.
+ format: date-time
type: string
- name:
- description: The name for this campaign
- example: campaign
- maxLength: 128
- type: string
- object:
- description: The API resource entity
- example: update-campaign
- type: string
- root_manifest_id:
- example: '00000000000000000000000000000000'
- maxLength: 32
+ firmware_update_count:
+ description: Size of firmware update quota of this service package.
+ format: int32
+ type: integer
+ id:
+ description: ID of this service package.
type: string
- state:
- description: 'DEPRECATED: The state of the campaign (use phase instead)'
- enum:
- - draft
- - scheduled
+ previous_id:
+ description: Previous service package ID, or null.
type: string
- x-deprecation:
- comment: Use phase instead
- end_of_life_at: '2020-03-18T14:55:20+00:00'
- issued_at: '2019-03-18T14:55:20+00:00'
- links: []
- when:
- description: The scheduled start time for the update campaign. Not in use.
- example: '2017-05-22T12:37:55.576563Z'
+ start_time:
+ description: Service package start time in RFC3339 date-time with millisecond
+ accuracy and UTC time zone.
format: date-time
type: string
- x-nullable: true
required:
- - device_filter
- UpdateCampaignPutRequest:
+ - id
+ - start_time
+ - expires
+ - firmware_update_count
+ ServicePackageReport:
+ description: Account's current service package data included in reporting.
properties:
- description:
- description: An optional description of the campaign
- example: ''
- maxLength: 2000
- type: string
- device_filter:
- description: The filter for the devices the campaign is targeting at
- example: id__eq=00000000000000000000000000000000
- type: string
- name:
- description: The campaign's name
- example: campaign
- maxLength: 128
- type: string
- object:
- description: The API resource entity
- example: update-campaign
- type: string
- root_manifest_id:
- example: '00000000000000000000000000000000'
- maxLength: 32
- type: string
- state:
- description: 'DEPRECATED: The state of the campaign (use phase instead).'
- enum:
- - draft
- - scheduled
- - allocatingquota
- - allocatedquota
- - quotaallocationfailed
- - checkingmanifest
- - checkedmanifest
- - devicefetch
- - devicecopy
- - devicecheck
- - publishing
- - deploying
- - deployed
- - manifestremoved
- - expired
- - stopping
- - autostopped
- - userstopped
- - conflict
- type: string
- x-deprecation:
- comment: Use phase instead
- end_of_life_at: '2020-03-18T14:55:20+00:00'
- issued_at: '2019-03-18T14:55:20+00:00'
- links: []
- when:
- description: The scheduled start time for the update campaign. Not in use.
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
+ aggregated_quota_usage:
+ items:
+ $ref: '#/definitions/AggregatedQuotaUsageReport'
+ type: array
+ metadata:
+ $ref: '#/definitions/ServicePackageMetadata'
+ description: '`Null` if service package has expired.'
x-nullable: true
- UpdatedResponse:
- description: Represents a response to an update request.
+ quota_usage:
+ items:
+ $ref: '#/definitions/QuotaUsageReport'
+ type: array
+ required:
+ - quota_usage
+ type: object
+ ServicePackagesResponse:
+ description: Contains service package information for currently active service
+ package, currently pending service package, and all previous service packages
+ associated with the account.
properties:
- code:
- description: Response code.
- example: 200
- format: int32
- type: integer
- id:
- description: Entity ID.
- example: 01619571dad80242ac12000600000000
- pattern: '[a-f0-9]{32}'
- type: string
- message:
- description: A human readable message with detailed info.
- example: success
- type: string
+ active:
+ $ref: '#/definitions/ActiveServicePackage'
+ description: Currently active service package. Can be null.
+ type: object
object:
- description: 'Entity name: ''user'', ''api-key'', ''group'', ''policy'' or
- ''account''.'
- enum:
- - user
- - api-key
- - group
- - policy
- - account
- type: string
- request_id:
- description: Request ID.
- example: 0161991d63150242ac12000600000000
- pattern: '[a-f0-9]{32}'
- type: string
- type:
- description: 'Response type: success.'
+ description: Always set to `service-packages`.
enum:
- - success
+ - service-packages
type: string
+ pending:
+ $ref: '#/definitions/PendingServicePackage'
+ description: Current pending service package. Can be null.
+ type: object
+ previous:
+ description: List of previous service packages.
+ items:
+ $ref: '#/definitions/PreviousServicePackage'
+ type: array
required:
- - code
- - id
- - message
- object
- - request_id
- - type
- type: object
- UploadChunkInfo:
- properties:
- created_at: &id013
- description: The time the entity was created
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- etag: &id014
- description: API resource entity version
- example: '2017-05-22T12:37:58.753425Z'
- type: string
- hash:
- description: The hash of the chunk. The default hash is MD5. If no Content-MD5
- header is supplied as part of uploading the chunk then this will be empty.
- type: string
- id:
- description: The chunk number
- example: 1
- type: integer
- length:
- description: The length of the chunk
- example: 1234
- type: integer
- object:
- description: 'Entity name: always ''upload-info'''
- example: upload-info
- type: string
- updated_at: &id015
- description: The time the entity was updated
- example: '2017-05-22T12:37:55.576563Z'
- format: date-time
- type: string
- upload_job_id:
- description: The upload job ID.
- example: '00000000000000000000000000000000'
- type: string
- type: object
- UploadChunkInfoPage:
+ - previous
+ StatisticsReportListResponse:
properties:
after:
- example: null
+ description: An offset token for the current page.
+ example: '01631667477600000000000100100374'
type: string
data:
+ description: List of manufacturing statistics.
items:
- $ref: '#/definitions/UploadChunkInfo'
+ $ref: '#/definitions/StatisticsReportResponse'
type: array
+ end:
+ example: '2020-03-30T07:30:00.000'
+ format: date-time
+ type: string
has_more:
+ description: Indicates whether additional results are available.
+ example: false
type: boolean
limit:
- format: int32
+ description: The number of results to return (2-1000). Values outside of this
+ range are set to the closest limit.
+ example: 50
+ maximum: 1000
+ minimum: 2
type: integer
object:
+ description: The API object type. The object type of this API is "list".
example: list
type: string
order:
- description: 'The order of the records to return. Acceptable values: ASC,
- DESC. Default: ASC'
- enum:
- - ASC
- - DESC
- example: ASC
+ description: Record order based on record identifier.
+ example: DESC
+ type: string
+ start:
+ example: '2020-03-29T07:30:00.000'
+ format: date-time
type: string
total_count:
- format: int32
+ example: 100
+ format: integer
type: integer
- UploadJob:
+ type: object
+ StatisticsReportResponse:
properties:
- complete:
- description: A flag that indicates job completion
- example: false
- type: boolean
- created_at: *id013
- description: &id027
- description: Human-readable description
- example: New Linux update for my devices
- maxLength: 2000
- type: string
- etag: *id014
- firmware_image_id:
- description: ID of the firmware image - empty until the Upload Job is complete
- example: '00000000000000000000000000000000'
+ avg_provisioning_time_sec:
+ description: Average provisioning time in seconds.
+ example: '2.5'
+ type: number
+ device_count:
+ description: Number of manufactured devices.
+ example: '103'
+ type: integer
+ factory_id:
+ description: Factory ID.
+ example: '164'
+ type: integer
+ factory_name:
+ description: Factory name.
+ example: factory 1
type: string
id:
- description: The upload job ID
- example: '00000000000000000000000000000000'
+ description: Unique row identifier.
+ example: 01612df56f3b0a580a010fc700000000
+ format: uuid
+ pattern: '[a-fA-F0-9]{32}'
+ type: string
+ max_provisioning_time_sec:
+ description: Maximum provisioning time in seconds.
+ example: '3.1'
+ type: number
+ min_provisioning_time_sec:
+ description: Minimum provisioning time in seconds.
+ example: '2.2'
+ type: number
+ workstation:
+ description: Workstation.
+ example: ws_1
type: string
- name: &id028
- description: Human-readable name
- example: New Linux update
- maxLength: 128
+ type: object
+ StatisticsSeriesRecord:
+ description: Statistics view record.
+ properties:
+ active_devices:
+ $ref: '#/definitions/ActiveDevicesCounter'
+ device_to_pelion_messages:
+ $ref: '#/definitions/DeviceToPelionMessagesCounter'
+ firmware_updates:
+ $ref: '#/definitions/FirmwareUpdatesCounter'
+ id:
+ description: Metric ID.
+ pattern: '[0-9a-fA-F]{32}'
type: string
object:
- description: 'Entity name: always ''upload-job'''
- example: upload-job
- type: string
- status:
- description: Status of the upload job
- example: in_progress
+ description: Always `billing-statistics`.
+ enum:
+ - billing-statistics
+ type: string
+ pelion_to_device_messages:
+ $ref: '#/definitions/PelionToDeviceMessagesCounter'
+ pelion_to_webapp_notifications:
+ $ref: '#/definitions/PelionToWebappNotificationsCounter'
+ rest_api_requests_with_api_key_token:
+ $ref: '#/definitions/RestApiRequestsWithApiKeyTokenCounter'
+ rest_api_requests_with_user_token:
+ $ref: '#/definitions/RestApiRequestsWithUserTokenCounter'
+ sda_tokens:
+ $ref: '#/definitions/SdaTokensCounter'
+ timestamp:
+ description: 'The start of the interval for which the data is aggregated,
+ in RFC3339 date-time format with millisecond accuracy and UTC time zone.
+
+ Each interval includes data for the time greater than or equal to the timestamp
+ and less than the next interval''s starting.'
+ format: date-time
type: string
- updated_at: *id015
+ required:
+ - object
+ - id
+ - timestamp
+ - active_devices
+ - firmware_updates
+ - sda_tokens
type: object
- UploadJobPage:
+ StatisticsViewResponse:
+ description: Contains the statistics view of Device Management usage information.
properties:
after:
- example: null
+ description: The ID after which to fetch the statistics view.
+ pattern: '[0-9a-fA-F]{32}'
type: string
data:
+ description: List of statistics view records. Empty list if no records are
+ available.
items:
- $ref: '#/definitions/UploadJob'
+ $ref: '#/definitions/StatisticsSeriesRecord'
type: array
has_more:
+ description: Indicates whether a new statistics view response is available.
type: boolean
limit:
+ default: 50
+ description: Maximum number of statistics view records on a page.
format: int32
+ maximum: 1000
+ minimum: 2
type: integer
object:
- example: list
+ description: Always `list`.
+ enum:
+ - list
type: string
order:
- description: 'The order of the records to return. Acceptable values: ASC,
- DESC. Default: ASC'
- enum:
- - ASC
- - DESC
- example: ASC
+ description: 'Record order. Acceptable values: ASC, DESC. Default: ASC.'
type: string
total_count:
- format: int32
+ description: Sum of all statistics view records to return. Included in the
+ response when you use the query parameter include=total_count.
+ format: int64
+ minimum: 0
type: integer
- UserInfoReq:
- description: Represents a user in requests towards Device Management.
+ required:
+ - object
+ - data
+ - has_more
+ - limit
+ - order
+ type: object
+ SubjectList:
+ description: Represents arrays of user and API key IDs.
properties:
- address:
- description: Address.
- maxLength: 100
+ apikeys:
+ description: An array of API key IDs.
+ items:
+ type: string
+ type: array
+ x-deprecation:
+ comment: This field is deprecated, use 'applications'
+ end_of_life_at: '2021-08-01T00:00:00+00:00'
+ issued_at: '2020-08-01T00:00:00+00:00'
+ links: []
+ applications:
+ description: An array of applicationIDs.
+ items:
+ type: string
+ type: array
+ users:
+ description: An array of user IDs.
+ items:
+ type: string
+ type: array
+ type: object
+ SubscriptionsCounter:
+ description: The number of subscription requests sent to devices.
+ format: int64
+ minimum: 0
+ type: integer
+ SubscriptionsList:
+ description: A list of resource URIs, one per line.
+ example: /sen/light
+ type: string
+ SubtenantAccountReport:
+ description: Billing report for tenant account.
+ properties:
+ account:
+ $ref: '#/definitions/SubtenantReportAccountContactInfo'
+ description: Tenant account contact information.
+ billing_data:
+ $ref: '#/definitions/ReportBillingData'
+ description: Report billing data.
+ service_package:
+ $ref: '#/definitions/SubtenantServicePackageReport'
+ description: service package report for the tenant.
+ required:
+ - account
+ - billing_data
+ type: object
+ SubtenantReportAccountContactInfo:
+ description: Tenant account contact information.
+ properties:
+ address_line1:
+ type: string
+ address_line2:
+ type: string
+ alias:
+ type: string
+ business_model:
+ description: The business model selected for the account to generate the billing
+ reports.
+ enum:
+ - active_device_business_model
+ - api_calls_1_business_model
+ type: string
+ city:
+ type: string
+ company:
+ type: string
+ contact:
+ type: string
+ country:
+ type: string
+ customer_subtenant_id:
+ description: Account tenant ID, valid only for tenants.
type: string
- x-nullable: true
email:
- description: The email address.
- pattern: ^(?=.{3,254}$).+\@.+
type: string
- full_name:
- description: The full name of the user.
- maxLength: 100
+ id:
+ description: Account ID.
type: string
- x-nullable: true
- groups:
- description: A list of IDs of the groups this user belongs to.
+ phone_number:
+ type: string
+ postal_code:
+ type: string
+ state:
+ type: string
+ required:
+ - id
+ - company
+ - customer_subtenant_id
+ type: object
+ SubtenantServicePackageReport:
+ properties:
+ quota_usage:
items:
- type: string
+ $ref: '#/definitions/QuotaUsageReport'
type: array
- is_gtc_accepted:
- description: A flag indicating that the user has accepted General Terms and
- Conditions.
- type: boolean
- is_marketing_accepted:
- description: A flag indicating that the user has consented to receive marketing
- information.
- type: boolean
- login_profiles:
- description: A list of login profiles for the user. Specified as the identity
- providers the user should be associated with. Only the ID attribute of the
- login profile should be set in the request object.
+ required:
+ - quota_usage
+ type: object
+ TierHistory:
+ properties:
+ tier:
+ description: 'The tier level of the account; `0`: free tier, `1`: commercial
+ account, `2`: partner tier. Other values are reserved for the future.'
+ example: '1'
+ type: string
+ updatedAt:
+ description: Last update UTC time RFC3339.
+ example: '2018-02-14T15:24:14Z'
+ format: date-time
+ type: string
+ type: object
+ TokenRequest:
+ properties:
+ aud:
+ description: 'Array of \:\ tuples representing devices for
+ which access is being requested. There must be at least one id/ep tuple.
+ \ ::= id|ep
\::=[a-zA-Z0-9+/=- ]+
\
+ :== \ ":" \
\ can be up to 60 characters
+ long, and can contain spaces.
+
+ The audience array can contain up to 50 tuples. If IAM does not authorize
+ even one item in the list, Secure Device Access does not authorize the whole
+ request and does not return an access token (access denied).'
items:
- $ref: '#/definitions/LoginProfile'
+ $ref: '#/definitions/AudienceItem'
+ maxItems: 50
+ minItems: 1
type: array
- password:
- description: The password for a new user. Generated when not present in the
- request.
+ cnf:
+ description: The Android application proof-of-possession public key.
+ format: The public key in PEM format.
+ type: string
+ grant_type:
+ description: Hardcoded - can only be "client_credentials".
+ type: string
+ scope:
+ description: The space-delimited list of operations that user is requesting
+ permission for. The array must contain at least one scope item. A scope
+ item can have up to 60 characters. A scope list can hold up to 20 scope
+ items.
\::=[a-zA-Z][a-zA-Z0-9-]*
\::= \
+ | \ " " | \ " " \
The scope being requested
+ must match the action that the Android application eventually performs on
+ the IoT device. The device matches the scope in the access token to the
+ action requested in the operation bundle.
+ format: scope-item scope-item ...
+ type: string
+ required:
+ - grant_type
+ - aud
+ - scope
+ - cnf
+ type: object
+ TokenResponse:
+ properties:
+ access_token:
+ description: The generated CWT (CBOR Web Token) access token as a Base64 string.
+ format: byte
+ type: string
+ granted_until:
+ description: Grant expiration UTC time RFC3339.
+ format: date-time
+ type: string
+ type: object
+ TransactionsCounter:
+ description: A transaction is a data block of 512 bytes processed by Device Management.
+ It can be sent either by the device (device --> Device Management) or received
+ by the device (Device Management --> device). A transaction does not include
+ IP, TCP or UDP, TLS or DTLS packet overhead. It only contains the packet payload
+ (full CoAP packet including CoAP headers).
+ format: int64
+ minimum: 0
+ type: integer
+ TrustAnchorResponse:
+ properties:
+ created_at: *id017
+ description:
+ description: The updated notes about the trust anchor.
+ format: free text
+ maxLength: 256
+ minLength: 1
+ type: string
+ etag: *id018
+ fingerprint:
+ description: The SHA256 of the trust anchor public key; the prefix 'mbed.ta.'
+ followed by the trust anchor public key as a SHA256 hash in Base64-encoded
+ DER format.
+ format: byte
+ type: string
+ id: *id019
+ object: *id020
+ public_key:
+ description: The trust anchor public key in PEM format.
+ format: byte
+ type: string
+ public_key_der:
+ description: The generated trust anchor public key in Base64-encoded DER format.
+ format: byte
+ type: string
+ updated_at: *id021
+ type: object
+ TrustedCertificateReq:
+ description: Represents a trusted certificate in upload requests.
+ properties:
+ certificate:
+ description: A chain of X509.v3 trusted certificates in PEM format. The chain
+ must contain all certificates from root to leaf. Otherwise, the signature
+ parameter is required.
+ type: string
+ description:
+ description: Human readable description of this certificate.
+ maxLength: 500
type: string
x-nullable: true
- phone_number:
- description: Phone number.
+ enrollment_mode:
+ description: 'DEPRECATED: Certificate is used in enrollment mode. Default
+ value is false.'
+ type: boolean
+ x-deprecation:
+ comment: This field is deprecated, do not use it anymore.
+ end_of_life_at: '2021-11-01T00:00:00+00:00'
+ issued_at: '2020-11-01T00:00:00+00:00'
+ links: []
+ name:
+ description: Certificate name.
maxLength: 100
type: string
- x-nullable: true
- username:
- description: A username.
- pattern: '[\w\-,._@+=]{4,30}'
+ service:
+ description: Service name where the certificate must be used.
+ enum:
+ - lwm2m
+ - bootstrap
+ type: string
+ signature:
+ description: 'DEPRECATED: Base64 encoded signature of the account ID signed
+ by the certificate to upload. The signature must be hashed with SHA256.'
+ type: string
+ status:
+ description: Status of the certificate.
+ enum:
+ - ACTIVE
+ - INACTIVE
type: string
- x-nullable: true
required:
- - email
+ - certificate
+ - name
+ - service
type: object
- UserInfoResp:
- description: Represents a user in Device Management.
+ TrustedCertificateResp:
+ description: Represents a trusted certificate in responses.
properties:
account_id:
description: The ID of the account.
example: 01619571e2e90242ac12000600000000
pattern: '[a-f0-9]{32}'
type: string
- active_sessions:
- description: List of active user sessions.
- items:
- $ref: '#/definitions/ActiveSession'
- type: array
- address:
- description: Address.
- example: 110 Fulbourn Rd, Cambridge, United Kingdom
+ certificate:
+ description: X509.v3 trusted certificate in PEM format.
+ example: '-----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----'
+ type: string
+ certificate_fingerprint:
+ description: A SHA-256 fingerprint of the certificate.
+ example: a10fb2c8ba90e6de927bd0ae391dcc38f6115685de2d7024712af37ead0608f1
type: string
- x-nullable: true
created_at:
description: Creation UTC time RFC3339.
example: '2018-02-13T09:35:20Z'
format: date-time
type: string
- creation_time:
- description: A timestamp of the user creation in the storage, in milliseconds.
- example: 1518630727683
- format: int64
- type: integer
- custom_fields:
- additionalProperties:
- type: string
- description: User's account-specific custom properties. The value is a string.
- type: object
- x-nullable: true
- email:
- description: The email address.
- example: user@arm.com
- pattern: ^(?=.{3,254}$).+\@.+
+ description:
+ description: Human readable description of this certificate.
+ example: Certificate created by me.
+ maxLength: 500
type: string
- email_verified:
- description: A flag indicating whether the user's email address has been verified
- or not.
- example: true
+ x-nullable: true
+ device_execution_mode:
+ description: Device execution mode where 1 means a developer certificate.
+ example: 1
+ format: int32
+ type: integer
+ enrollment_mode:
+ description: 'DEPRECATED: Certificate is used in enrollment mode. Default
+ value is false.'
+ example: false
type: boolean
+ x-deprecation:
+ comment: This field is deprecated, do not use it anymore.
+ end_of_life_at: '2021-11-01T00:00:00+00:00'
+ issued_at: '2020-11-01T00:00:00+00:00'
+ links: []
etag:
description: API resource entity version.
example: '1'
type: string
- full_name:
- description: The full name of the user.
- example: User Doe
- maxLength: 100
+ id:
+ description: Entity ID.
+ example: 01619571d01d0242ac12000600000000
+ pattern: '[a-f0-9]{32}'
type: string
- x-nullable: true
- groups:
- description: A list of IDs of the groups this user belongs to.
- items:
- type: string
- type: array
- id:
- description: The ID of the user.
- example: 01619571e2e89242ac12000600000000
- pattern: '[a-f0-9]{32}'
+ issuer:
+ description: Issuer of the certificate.
+ example: CN=issuer
+ type: string
+ name:
+ description: Certificate name.
+ example: My certificate
+ maxLength: 100
type: string
- is_gtc_accepted:
- description: A flag indicating that the user has accepted General Terms and
- Conditions.
- example: true
- type: boolean
- is_marketing_accepted:
- description: A flag indicating that the user has consented to receive marketing
- information.
- example: true
- type: boolean
- is_totp_enabled:
- description: A flag indicating whether two-factor authentication (TOTP) has
- been enabled.
- example: true
- type: boolean
- last_login_time:
- description: A timestamp of the latest login of the user, in milliseconds.
- example: 1518630727688
- format: int64
- type: integer
- login_history:
- description: Timestamps, succeedings, IP addresses and user agent information
- of the last five logins of the user, with timestamps in RFC3339 format.
- items:
- $ref: '#/definitions/LoginHistory'
- maxItems: 5
- type: array
- login_profiles:
- description: A list of login profiles for the user. Specified as the identity
- providers the user is associated with.
- items:
- $ref: '#/definitions/LoginProfile'
- type: array
- x-nullable: true
object:
- description: 'Entity name: always `user`.'
+ description: 'Entity name: always ''trusted-cert'''
enum:
- - user
+ - trusted-cert
type: string
- password:
- description: The password when creating a new user. It will be generated when
- not present in the request.
- example: PZf9eEUH43DAPE9ULINFeuj
+ owner_id:
+ description: The ID of the owner.
+ example: 01619571dad80242ac12000600000000
+ pattern: '[a-f0-9]{32}'
type: string
x-nullable: true
- password_changed_time:
- description: A timestamp of the latest change of the user password, in milliseconds.
- example: 1518630727688
- format: int64
- type: integer
- phone_number:
- description: Phone number.
- example: +44 (1223) 400 400
- maxLength: 100
+ service:
+ description: Service name where the certificate is used.
+ enum:
+ - lwm2m
+ - bootstrap
type: string
- x-nullable: true
status:
- description: The status of the user. ENROLLING state indicates that the user
- is in the middle of the enrollment process. INVITED means that the user
- has not accepted the invitation request. RESET means that the password must
- be changed immediately. INACTIVE users are locked out and not permitted
- to use the system.
+ description: Status of the certificate.
enum:
- - ENROLLING
- - INVITED
- ACTIVE
- - RESET
- INACTIVE
example: ACTIVE
type: string
- totp_scratch_codes:
- description: A list of scratch codes for the two-factor authentication. Visible
- only when 2FA is requested to be enabled or the codes regenerated.
- items:
- type: string
- type: array
- x-nullable: true
+ subject:
+ description: Subject of the certificate.
+ example: CN=subject
+ type: string
updated_at:
description: Last update UTC time RFC3339.
example: '2018-02-14T15:24:14Z'
format: date-time
type: string
- username:
- description: A username.
- example: admin
- pattern: '[\w\-,._@+=]{4,30}'
+ valid:
+ description: This read-only flag indicates whether the certificate is valid
+ or not.
+ example: true
+ readOnly: true
+ type: boolean
+ validity:
+ description: Expiration time in UTC formatted as RFC3339.
+ example: '2038-02-14T15:24:14Z'
+ format: date-time
type: string
- x-nullable: true
required:
- account_id
- - email
+ - certificate
+ - certificate_fingerprint
- etag
- id
+ - issuer
+ - name
- object
- - status
+ - service
+ - subject
+ - validity
type: object
- UserInfoRespList:
+ TrustedCertificateRespList:
properties:
after:
- description: The entity ID to fetch after the given one.
+ description: The entity ID to retrieve after the given one.
example: 01619571f3c00242ac12000600000000
pattern: '[a-f0-9]{32}'
type: string
data:
description: A list of entities.
items:
- $ref: '#/definitions/UserInfoResp'
+ $ref: '#/definitions/TrustedCertificateResp'
type: array
has_more:
description: Flag indicating whether there are more results.
@@ -6668,2146 +7562,6660 @@ definitions:
- object
- total_count
type: object
- UserInvitationReq:
- description: Represents a user invitation in requests towards Device Management.
+ TrustedCertificateUpdateReq:
+ description: Represents a trusted certificate in update requests.
properties:
- email:
- description: The email address.
- pattern: ^(?=.{3,254}$).+\@.+
+ certificate:
+ description: A chain of X509.v3 trusted certificates in PEM format. The chain
+ must contain all certificates from root to leaf. Otherwise, the signature
+ parameter is required.
type: string
- groups:
- description: A list of IDs of the groups this user has been invited to.
- items:
- type: string
- type: array
- login_profiles:
- description: A list of login profiles for the user. Specified as the identity
- providers the user should be associated with. Only the ID attribute of the
- login profile should be set in the request object.
- items:
- $ref: '#/definitions/LoginProfile'
- type: array
- valid_for_days:
- default: 30
- description: Specifies how many days the invitation will be valid for.
- format: int32
- maximum: 100
- minimum: 1
- type: integer
- required:
- - email
- type: object
- UserInvitationResp:
- description: Represents an user invitation in responses.
- properties:
- account_id:
- description: The ID of the account the user is invited to.
- example: 01619571e2e90242ac12000600000000
- pattern: '[a-f0-9]{32}'
+ description:
+ description: Human readable description of this certificate.
+ maxLength: 500
type: string
- created_at:
- description: Creation UTC time RFC3339.
- example: '2018-02-13T09:35:20Z'
- format: date-time
+ x-nullable: true
+ enrollment_mode:
+ description: Certificate is used in enrollment mode. Default value is false.
+ type: boolean
+ name:
+ description: Certificate name.
+ maxLength: 100
type: string
- email:
- description: Email address of the invited user.
- example: friend@arm.com
- pattern: ^(?=.{3,254}$).+\@.+
+ service:
+ description: Service name where the certificate must be used. Service cannot
+ be updated for developer certificates.
+ enum:
+ - lwm2m
+ - bootstrap
type: string
- etag:
- description: API resource entity version.
- example: '1'
+ signature:
+ description: 'DEPRECATED: Base64 encoded signature of the account ID signed
+ by the certificate to be uploaded. The signature must be hashed with SHA256.'
type: string
- expiration:
- description: Invitation expiration as UTC time RFC3339.
- example: '2018-02-14T15:24:14Z'
- format: date-time
+ status:
+ description: Status of the certificate.
+ enum:
+ - ACTIVE
+ - INACTIVE
type: string
- groups:
- description: A list of IDs of the groups the user is invited to.
- items:
- type: string
- type: array
- id:
- description: The ID of the invitation.
- example: 01619571e2e89242ac12000600000000
- pattern: '[a-f0-9]{32}'
+ type: object
+ UnauthorizedErrorResponse:
+ description: 401 Unauthorized response.
+ properties:
+ code:
+ description: Response code. Always set to 401.
+ enum:
+ - 401
+ type: integer
+ message:
+ description: A human-readable message with detailed info.
type: string
- login_profiles:
- description: A list of login profiles for the user. Specified as the identity
- providers the user is associated with.
- items:
- $ref: '#/definitions/LoginProfile'
- type: array
- x-nullable: true
object:
- description: 'Entity name: always ''user-invitation'''
+ description: Always set to `error`.
enum:
- - user-invitation
+ - error
type: string
- updated_at:
- description: Last update UTC time RFC3339.
- example: '2018-02-14T15:24:14Z'
- format: date-time
+ request_id:
+ description: Request ID
type: string
- user_id:
- description: The ID of the invited user.
- example: 01619571e2e90242ac12000600000000
- pattern: '[a-f0-9]{32}'
+ type:
+ description: Error type. Always set to `unauthorized`.
+ enum:
+ - unauthorized
type: string
required:
- - account_id
- - email
- - etag
- - id
- object
- - user_id
- type: object
- UserInvitationRespList:
+ - message
+ - request_id
+ - type
+ - code
+ type: object
+ UpdateCampaign:
properties:
- after:
- description: The entity ID to fetch after the given one.
- example: 01619571f3c00242ac12000600000000
- pattern: '[a-f0-9]{32}'
+ active_at:
+ description: The time the campaign entered the active state.
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
type: string
- data:
- description: A list of entities.
- items:
- $ref: '#/definitions/UserInvitationResp'
- type: array
- has_more:
- description: Flag indicating whether there are more results.
- example: false
+ approval_required:
+ description: Flag indicating whether approval is needed to start the campaign.
+ example: 'false'
type: boolean
- limit:
- description: The number of results to return (2-1000), or equal to `total_count`.
- example: 50
- format: int32
- type: integer
- object:
- description: 'Entity name: always `list`.'
- enum:
- - list
+ archived_at:
+ description: The time the campaign was archived.
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
type: string
- order:
- description: 'The order of the records to return based on creation time. Available
- values: ASC, DESC; by default ASC.'
+ autostop:
+ description: Flag indicating whether the campaign should be auto-stopped on
+ reaching a threshold.
+ example: 'false'
+ type: boolean
+ autostop_reason:
+ description: Text description of why a campaign failed to start or why a campaign
+ stopped.
+ example: Insufficient billing credit.
+ type: string
+ autostop_success_percent:
+ description: Percent of successful device updates to auto stop the campaign.
+ example: '85.00'
+ format: double
+ type: number
+ campaign_strategy: &id022
+ default: one-shot
+ description: How the campaign adds devices. A `one-shot` campaign does not
+ add new devices after it has started. A `continuous` campaign means that
+ devices may be added to the campaign after it has started. The default is
+ `one-shot`.
enum:
- - ASC
- - DESC
+ - one-shot
+ - continuous
type: string
- total_count:
- description: The total number of records, if requested.
- example: 20
- format: int32
- type: integer
- required:
- - data
- - has_more
- - limit
- - object
- - total_count
- type: object
- UserUpdateReq:
- description: Represents a user in requests towards Device Management.
- properties:
- address:
- description: Address.
- maxLength: 100
+ created_at: *id014
+ description:
+ description: An optional description of the campaign.
+ example: This campaign updates Class XX devices to version 1.34
+ maxLength: 2000
type: string
- x-nullable: true
- email:
- description: The email address. Not allowed to update other user's email address.
- pattern: ^(?=.{3,254}$).+\@.+
+ device_filter:
+ description: The filter for the devices the campaign targets. Refer to this
+ using the filter ID.
+ example: state__eq=registered
type: string
- x-nullable: true
- full_name:
- description: The full name of the user.
- maxLength: 100
+ etag: *id015
+ finished:
+ description: The time the campaign finished.
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
type: string
- x-nullable: true
- groups:
- description: A list of group IDs this user belongs to. Can be updated by the
- Account Admin only.
- items:
- type: string
- type: array
- x-nullable: true
- is_gtc_accepted:
- description: A flag indicating that the user has accepted General Terms and
- Conditions.
- type: boolean
- x-nullable: true
- is_marketing_accepted:
- description: A flag indicating that the user has consented to receive marketing
- information.
- type: boolean
- x-nullable: true
- is_totp_enabled:
- description: A flag indicating whether mandatory two-factor authentication
- (TOTP) is enabled.
- type: boolean
- x-nullable: true
- login_profiles:
- description: '''A list of login profiles for the user, specified as identity
- providers associated with the user. Only the ID attribute of the login profile
- should be set in the request object. The list cannot be empty. Only an account
- admin may update login profiles.'''
- items:
- $ref: '#/definitions/LoginProfile'
- type: array
- x-nullable: true
- phone_number:
- description: Phone number.
- maxLength: 100
+ id:
+ description: The campaign ID.
+ example: 016e83ddc648000000000001001000f5
+ pattern: '[A-Fa-f0-9]{32}'
type: string
- x-nullable: true
- status:
- description: The status of the user. ENROLLING indicates that the user is
- in the middle of the enrollment process. INVITED means that the user has
- not accepted the invitation request. RESET means that the password must
- be changed immediately. INACTIVE users are locked out and not permitted
- to use the system. Can be changed by the Aggregator Admin only.
+ name:
+ description: The campaign name.
+ example: campaign
+ maxLength: 128
+ type: string
+ object:
+ description: 'Entity name: always ''update-campaign''.'
+ example: update-campaign
+ type: string
+ phase:
+ description: The phase of the campaign.
enum:
- - ENROLLING
- - INVITED
- - ACTIVE
- - RESET
- - INACTIVE
- example: ACTIVE
+ - draft
+ - awaiting_approval
+ - timed
+ - starting
+ - active
+ - stopping
+ - stopped
+ - deleted
+ - archived
type: string
- x-nullable: true
- username:
- description: A username.
- pattern: '[\w\-,._@+=]{4,30}'
+ root_manifest_id:
+ description: The ID of the manifest that will be sent to the device as part
+ of the campaign.
+ example: 016e83dce36a00000000000100100102
type: string
- x-nullable: true
- type: object
- Webhook:
- properties:
- headers:
- additionalProperties:
- type: string
- description: The headers (key/value) sent with the notification. Optional.
- example: '{"authorization" : "f4b93d6e-4652-4874-82e4-41a3ced0cd56"}'
- type: object
- url:
- description: The URL to which the notifications are sent. We recommend that
- you serve this URL over HTTPS.
- example: https://www.example.com/my-webhook
+ root_manifest_url:
+ description: The URL for the manifest that will be sent to the device as part
+ of the campaign.
+ example: https://api.us-east-1.mbedcloud.com/v3/firmware-manifests/016e83dce36a00000000000100100102
type: string
- required:
- - url
- type: object
- WebsocketChannel:
- properties:
- queue_size:
- default: 0
- description: Number of events in the channel's event queue waiting to be delivered.
- example: 0
- type: integer
- status:
- default: disconnected
- description: Channel status is 'connected' when the channel has an active
- WebSocket bound to it. The state is 'disconnected' when either the channel
- or the WebSocket bound to it is closed.
+ started_at:
+ description: The time the campaign was started.
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ starting_at:
+ description: The time the campaign will be started.
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ state:
+ description: The state of the campaign.
enum:
- - connected
- - disconnected
- example: disconnected
+ - draft
+ - scheduled
+ - allocatingquota
+ - allocatedquota
+ - quotaallocationfailed
+ - checkingmanifest
+ - checkedmanifest
+ - devicefetch
+ - devicecopy
+ - devicecheck
+ - publishing
+ - deploying
+ - deployed
+ - manifestremoved
+ - expired
+ - stopping
+ - autostopped
+ - userstopped
+ - conflict
type: string
- type: object
- error-response:
+ x-deprecation:
+ comment: Use phase instead
+ end_of_life_at: '2020-03-18T14:55:20+00:00'
+ issued_at: '2019-03-18T14:55:20+00:00'
+ links: []
+ stopped_at:
+ description: The time the campaign was stopped.
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ stopping_at:
+ description: The time the campaign will be stopped.
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ updated_at: *id016
+ when:
+ description: The scheduled start time for the campaign. The campaign will
+ start within 1 minute when then start time has elapsed.
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ x-nullable: true
+ UpdateCampaignEqNeqFilter:
properties:
- code:
- description: HTTP response code.
- format: int32
- type: integer
- fields:
- description: Details of the error fields.
- items:
- $ref: '#/definitions/fields'
- type: array
- message:
- description: Description of the error.
+ created_at:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
type: string
- object:
- description: Response type, always "error".
+ description:
type: string
- request_id:
- description: Request ID.
+ device_filter:
type: string
- type:
- description: Type of error.
+ etag:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
type: string
- type: object
- fields:
- properties:
- message:
- description: Error description.
+ finished:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ id:
+ pattern: '[A-Fa-f0-9]{32}'
type: string
name:
- description: The field name in the request for which the validation has failed.
type: string
- type: object
- metric:
+ root_manifest_id:
+ pattern: '[A-Fa-f0-9]{32}'
+ type: string
+ started_at:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ state:
+ type: string
+ updated_at:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ when:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ UpdateCampaignGteLteFilter:
properties:
- bootstraps_failed:
- description: The number of failed bootstraps the account has performed. Bootstrap
- is the process of provisioning a Lightweight Machine to Machine Client to
- a state where it can initiate a management session to a new Lightweight
- Machine to Machine Server.
- format: int64
- type: integer
- bootstraps_pending:
- description: The number of pending bootstraps the account has performed. Bootstrap
- is the process of provisioning a Lightweight Machine to Machine Client to
- a state where it can initiate a management session to a new Lightweight
- Machine to Machine Server.
- format: int64
- type: integer
- bootstraps_successful:
- description: The number of successful bootstraps the account has performed.
- Bootstrap is the process of provisioning a Lightweight Machine to Machine
- Client to a state where it can initiate a management session to a new Lightweight
- Machine to Machine Server.
- format: int64
- type: integer
- connect_rest_api_error:
- description: The number of failed [Connect API](/docs/current/service-api-references/device-management-connect.html)
- requests that have been performed using the account. This metric does not
- consider the response from the device, it includes only the responses to
- the HTTP requests used to manage the device. This metric includes only messages
- handled by the Connect service, it does not include any HTTP errors returned
- by firewall as result of malformed messages.
- format: int64
- type: integer
- connect_rest_api_success:
- description: The number of successful [Connect API](/docs/current/service-api-references/device-management-connect.html)
- requests that have been performed using the account. This metric does not
- consider the response from the device, it includes only the responses to
- the HTTP requests used to manage the device.
- format: int64
- type: integer
- deleted_registrations:
- description: The number of deleted registrations (deregistrations) linked
- to the account. Deregistration is the process of removing the device registration
- from the Device Management Connect registry. The deregistration is usually
- initiated by the device. Device Management Connect no longer handles requests
- for a deregistered device.
- format: int64
- type: integer
- device_observations:
- description: '**(Beta)** The number of notifications received by the Device
- Management Connect service from the devices linked to the account. The device
- pushes notifications to Device Management Connect when you have successfully
- subscribed to the device resources using [Connect API](/docs/current/service-api-references/device-management-connect.html)
- endpoints.
-
- '
- format: int64
- type: integer
- device_proxy_request_error:
- description: '**(Beta)** The number of failed proxy requests from the Device
- Management Connect service to devices linked to the account. Device Management
- Connect makes proxy requests to devices when you try to read or write values
- to device resources using [Connect API](/docs/current/service-api-references/device-management-connect.html)
- endpoints.
-
- '
- format: int64
- type: integer
- device_proxy_request_success:
- description: '**(Beta)** The number of successful proxy requests from the
- Device Management Connect service to devices linked to the account. Device
- Management Connect makes proxy requests to devices when you try to read
- or write values to device resources using [Connect API](/docs/current/service-api-references/device-management-connect.html)
- endpoints.
-
- '
- format: int64
- type: integer
- device_subscription_request_error:
- description: '**(Beta)** The number of failed subscription requests from the
- Device Management Connect service to devices linked to the account. Device
- Management Connect makes subscription requests to devices when you try to
- subscribe to a resource path using [Connect API](/docs/current/service-api-references/device-management-connect.html)
- endpoints.
-
- '
- format: int64
- type: integer
- device_subscription_request_success:
- description: '**(Beta)** The number of successful subscription requests from
- the Device Management Connect service to devices linked to the account.
- Device Management Connect makes subscription requests to devices when you
- try to subscribe to a resource path using [Connect API](/docs/current/service-api-references/device-management-connect.html)
- endpoints.
-
- '
- format: int64
- type: integer
- expired_registrations:
- description: The number of expired registrations linked to the account. Device
- Management Connect removes the device registrations when the devices cannot
- update their registration before the expiry of the lifetime. Device Management
- Connect no longer handles requests for a device whose registration has expired
- already.
- format: int64
- type: integer
- full_registrations:
- description: The number of full registrations linked to the account. Full
- registration is the process of registering a device with Device Management
- Connect by providing its lifetime and capabilities such as the resource
- structure.The registered status of the device does not guarantee that the
- device is active and accessible from Device Management Connect at any point
- of time.
- format: int64
- type: integer
- handshakes_successful:
- description: The number of successful TLS handshakes the account has performed.
- The SSL or TLS handshake enables the SSL or TLS client and server to establish
- the secret keys with which they communicate. A successful TLS handshake
- is required for establishing a connection with Device Management Connect
- for any operaton such as registration, registration update and deregistration.
- format: int64
- type: integer
+ created_at:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ etag:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ finished:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ started_at:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ updated_at:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ when:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ x-nullable: true
+ UpdateCampaignInNinFilter:
+ properties:
+ created_at:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ description:
+ type: string
+ device_filter:
+ type: string
+ etag:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ finished:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
id:
- description: A unique metric ID.
+ example: 015c3029f6f7000000000001001000c3
+ pattern: '[A-Fa-f0-9]{32}'
type: string
- registration_updates:
- description: The number of registration updates linked to the account. Registration
- update is the process of updating the registration status with Device Management
- Connect to update or extend the lifetime of the device.
- format: int64
- type: integer
- timestamp:
- description: UTC time in RFC3339 format. The timestamp is the starting point
- of the interval for which the data is aggregated. Each interval includes
- data for the time greater than or equal to the timestamp and less than the
- next interval's starting point.
+ name:
+ type: string
+ root_manifest_id:
+ example: 015c6029f6f9000000000001001000f4
+ pattern: '[A-Fa-f0-9]{32}'
+ type: string
+ started_at:
+ example: '2017-05-22T12:37:55.576563Z'
format: date-time
type: string
- transactions:
- description: The number of transaction events from or to devices linked to
- the account. A transaction is a 512-byte block of data processed by Device
- Management. It can be either sent by the device (device --> Device Management)
- or received by the device (Device Management --> device). A transaction
- does not include IP, TCP or UDP, TLS or DTLS packet overhead. It only contains
- the packet payload (full CoAP packet including CoAP headers).
- format: int64
- type: integer
- type: object
- successful-response:
+ state:
+ type: string
+ updated_at:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ when:
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ UpdateCampaignPage:
properties:
after:
- description: The metric ID included in the request or null.
+ example: null
type: string
data:
items:
- $ref: '#/definitions/metric'
+ $ref: '#/definitions/UpdateCampaign'
type: array
has_more:
- description: Indicates whether there are more results for you to fetch in
- the next page.
type: boolean
limit:
- description: The limit used in the request to retrieve the results.
type: integer
object:
- description: API resource name.
+ description: 'Entity name: always ''list''.'
+ example: list
+ type: string
+ order:
+ description: 'The order of the records to return. Acceptable values: ASC,
+ DESC. Default: ASC.'
+ enum:
+ - ASC
+ - DESC
+ example: ASC
type: string
total_count:
- description: The total number of records available.
type: integer
- type: object
-host: api.us-east-1.mbedcloud.com
-info:
- description: Pelion Device Management API build from the publicly defined API definitions.
- title: Pelion Device Management API
- version: '3'
-paths:
- /v2/device-requests/{device-id}:
- post:
- consumes:
- - application/json
- description: 'This API provides an interface to asynchronously call methods
- on a device.
-
-
- The `async-id` is provided by the client, enabling the client to track the
- end-to-end flow with an identifier
-
- that is relevant to the end application. For example, a web application''s
- session ID along with the device ID
-
- and the resource path could be used as the `async-id`. This also avoids any
- race conditions with
-
- [the notification channel](/docs/current/integrate-web-app/event-notification.html).
- All responses are sent through the
-
- currently configured notification channel as an **AsyncIDResponse**.
-
-
- For `GET` methods, values may be fetched from an internal cache, instead of
- contacting the device.
-
-
- The server queues requests if it cannot reach the device at the time of the
- request. The queue is limited to 20
-
- requests. The queueing behaviour is affected by the `retry` and the `expiry-seconds`
- parameters. If the device
-
- is not reached, or the device fails to respond when the request is made, the
- server queues the request
-
- and retries within the given expiry period the next time the device contacts
- the server. The requests from
+ UpdateCampaignPostRequest:
+ properties:
+ approval_required:
+ default: false
+ type: boolean
+ autostop:
+ default: true
+ type: boolean
+ autostop_success_percent:
+ default: 100.0
+ type: number
+ campaign_strategy: *id022
+ description:
+ description: An optional description of the campaign.
+ example: a description
+ maxLength: 2000
+ type: string
+ device_filter:
+ description: The filter for the devices the campaign targets. Refer to this
+ using the filter ID.
+ example: state__eq=registered
+ type: string
+ name:
+ default: default_object_name
+ description: The name for this campaign.
+ maxLength: 128
+ type: string
+ root_manifest_id:
+ example: 016e83b46477000000000001001001f3
+ pattern: '[A-Fa-f0-9]{32}'
+ type: string
+ state:
+ description: 'DEPRECATED: The state of the campaign (use phase instead)'
+ enum:
+ - draft
+ - scheduled
+ type: string
+ x-deprecation:
+ comment: Use phase instead
+ end_of_life_at: '2020-03-18T14:55:20+00:00'
+ issued_at: '2019-03-18T14:55:20+00:00'
+ links: []
+ when:
+ description: The scheduled start time for the update campaign. Not in use.
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ x-nullable: true
+ required:
+ - device_filter
+ UpdateCampaignPutRequest:
+ properties:
+ approval_required:
+ default: false
+ type: boolean
+ autostop:
+ default: true
+ type: boolean
+ autostop_success_percent:
+ default: 100.0
+ type: number
+ description:
+ description: An optional description of the campaign.
+ example: description
+ format: free text
+ maxLength: 2000
+ type: string
+ device_filter:
+ description: The filter for the devices the campaign targets. Refer to this
+ using the filter ID.
+ example: state__eq=registered
+ type: string
+ name:
+ description: The campaign's name.
+ example: campaign
+ format: free text
+ maxLength: 128
+ type: string
+ root_manifest_id:
+ example: 016e83dce36a00000000000100100201
+ pattern: '[A-Fa-f0-9]{32}'
+ type: string
+ state:
+ description: 'DEPRECATED: The state of the campaign (use phase instead).'
+ enum:
+ - draft
+ - scheduled
+ - allocatingquota
+ - allocatedquota
+ - quotaallocationfailed
+ - checkingmanifest
+ - checkedmanifest
+ - devicefetch
+ - devicecopy
+ - devicecheck
+ - publishing
+ - deploying
+ - deployed
+ - manifestremoved
+ - expired
+ - stopping
+ - autostopped
+ - userstopped
+ - conflict
+ type: string
+ x-deprecation:
+ comment: Use phase instead
+ end_of_life_at: '2020-03-18T14:55:20+00:00'
+ issued_at: '2019-03-18T14:55:20+00:00'
+ links: []
+ when:
+ description: The scheduled start time for the update campaign. Not in use.
+ example: '2017-05-22T12:37:55.576563Z'
+ format: date-time
+ type: string
+ x-nullable: true
+ UpdateTrustAnchorRequest:
+ properties:
+ description:
+ description: The new description for the trust anchor.
+ format: free text
+ maxLength: 256
+ minLength: 1
+ type: string
+ required:
+ - description
+ type: object
+ UpdateTrustAnchorResponse:
+ properties:
+ created_at: *id017
+ description:
+ description: The updated notes about the trust anchor.
+ format: free text
+ maxLength: 256
+ minLength: 1
+ type: string
+ etag: *id018
+ fingerprint:
+ description: The SHA256 of the trust anchor public key; the prefix 'mbed.ta.'
+ followed by the trust anchor public key as a SHA256 hash in Base64-encoded
+ DER format.
+ format: byte
+ type: string
+ id: *id019
+ object: *id020
+ public_key:
+ description: The trust anchor public key in PEM format.
+ format: byte
+ type: string
+ public_key_der:
+ description: The generated trust anchor public key in Base64-encoded DER format.
+ format: byte
+ type: string
+ updated_at: *id021
+ type: object
+ UploadChunkInfo:
+ properties:
+ created_at: *id014
+ etag: *id015
+ hash:
+ description: The hash of the chunk. The default hash is MD5. If no Content-MD5
+ header is supplied as part of uploading the chunk then this will be empty.
+ type: string
+ id:
+ description: The chunk number.
+ example: 1
+ type: integer
+ length:
+ description: The length of the chunk.
+ example: 1234
+ type: integer
+ object:
+ description: 'Entity name: always ''upload-info''.'
+ example: upload-info
+ type: string
+ updated_at: *id016
+ upload_job_id:
+ description: The upload job ID.
+ example: '00000000000000000000000000000000'
+ type: string
+ type: object
+ UploadChunkInfoPage:
+ properties:
+ after:
+ example: null
+ type: string
+ data:
+ items:
+ $ref: '#/definitions/UploadChunkInfo'
+ type: array
+ has_more:
+ type: boolean
+ limit:
+ format: int32
+ type: integer
+ object:
+ description: 'Entity name: always ''list''.'
+ example: list
+ type: string
+ order:
+ description: 'The order of the records to return. Acceptable values: ASC,
+ DESC. Default: ASC.'
+ enum:
+ - ASC
+ - DESC
+ example: ASC
+ type: string
+ total_count:
+ format: int32
+ type: integer
+ UploadJob:
+ properties:
+ complete:
+ description: A flag that indicates job completion.
+ example: false
+ type: boolean
+ created_at: *id014
+ description: &id035
+ description: Human-readable description.
+ example: New Linux update for my devices
+ maxLength: 2000
+ type: string
+ etag: *id015
+ firmware_image_id:
+ description: ID of the firmware image - empty until the upload job is complete.
+ example: 016e652be671000000000001001001a8
+ pattern: '[A-Fa-f0-9]{32}'
+ type: string
+ id:
+ description: The upload job ID.
+ example: 016e652be671000000000001001001e5
+ pattern: '[A-Fa-f0-9]{32}'
+ type: string
+ name: &id036
+ description: Human-readable name.
+ example: New Linux update
+ maxLength: 128
+ type: string
+ object:
+ description: 'Entity name: always ''upload-job''.'
+ example: upload-job
+ type: string
+ status:
+ description: Status of the upload job.
+ example: in_progress
+ type: string
+ updated_at: *id016
+ type: object
+ UploadJobPage:
+ properties:
+ after:
+ example: null
+ type: string
+ data:
+ items:
+ $ref: '#/definitions/UploadJob'
+ type: array
+ has_more:
+ type: boolean
+ limit:
+ format: int32
+ type: integer
+ object:
+ description: 'Entity name: always ''list''.'
+ example: list
+ type: string
+ order:
+ description: 'The order of the records to return. Acceptable values: ASC,
+ DESC. Default: ASC.'
+ enum:
+ - ASC
+ - DESC
+ example: ASC
+ type: string
+ total_count:
+ format: int32
+ type: integer
+ UserInfoReq:
+ description: Represents a user in requests towards Device Management.
+ properties:
+ address:
+ description: Address.
+ maxLength: 100
+ type: string
+ x-nullable: true
+ email:
+ description: The email address.
+ pattern: ^(?=.{3,254}$).+\@.+
+ type: string
+ full_name:
+ description: The full name of the user.
+ maxLength: 100
+ type: string
+ x-nullable: true
+ groups:
+ description: A list of IDs of the groups this user belongs to.
+ items:
+ type: string
+ type: array
+ is_gtc_accepted:
+ description: A flag indicating that the user has accepted General Terms and
+ Conditions.
+ type: boolean
+ is_marketing_accepted:
+ description: A flag indicating that the user has consented to receive marketing
+ information.
+ type: boolean
+ login_profiles:
+ description: A list of login profiles for the user. Specified as the identity
+ providers the user should be associated with. Only the ID attribute of the
+ login profile should be set in the request object.
+ items:
+ $ref: '#/definitions/LoginProfile'
+ type: array
+ password:
+ description: The password for a new user. Generated when not present in the
+ request.
+ type: string
+ x-nullable: true
+ phone_number:
+ description: Phone number.
+ maxLength: 100
+ type: string
+ x-nullable: true
+ username:
+ description: A username.
+ pattern: '[\w\-,._@+=]{4,30}'
+ type: string
+ x-nullable: true
+ required:
+ - email
+ type: object
+ UserInfoResp:
+ description: Represents a user in Device Management.
+ properties:
+ account_id:
+ description: The ID of the account.
+ example: 01619571e2e90242ac12000600000000
+ pattern: '[a-f0-9]{32}'
+ type: string
+ active_sessions:
+ description: List of active user sessions.
+ items:
+ $ref: '#/definitions/ActiveSession'
+ type: array
+ address:
+ description: Address.
+ example: 110 Fulbourn Rd, Cambridge, United Kingdom
+ type: string
+ x-nullable: true
+ created_at:
+ description: Creation UTC time RFC3339.
+ example: '2018-02-13T09:35:20Z'
+ format: date-time
+ type: string
+ creation_time:
+ description: A timestamp of the user creation in the storage, in milliseconds.
+ example: 1518630727683
+ format: int64
+ type: integer
+ custom_fields:
+ additionalProperties:
+ type: string
+ description: User's account-specific custom properties. The value is a string.
+ type: object
+ x-nullable: true
+ email:
+ description: The email address.
+ example: user@arm.com
+ pattern: ^(?=.{3,254}$).+\@.+
+ type: string
+ email_verified:
+ description: A flag indicating whether the user's email address has been verified
+ or not.
+ example: true
+ type: boolean
+ etag:
+ description: API resource entity version.
+ example: '1'
+ type: string
+ full_name:
+ description: The full name of the user.
+ example: User Doe
+ maxLength: 100
+ type: string
+ x-nullable: true
+ groups:
+ description: A list of IDs of the groups this user belongs to.
+ items:
+ type: string
+ type: array
+ id:
+ description: The ID of the user.
+ example: 01619571e2e89242ac12000600000000
+ pattern: '[a-f0-9]{32}'
+ type: string
+ is_gtc_accepted:
+ description: A flag indicating that the user has accepted General Terms and
+ Conditions.
+ example: true
+ type: boolean
+ is_marketing_accepted:
+ description: A flag indicating that the user has consented to receive marketing
+ information.
+ example: true
+ type: boolean
+ is_totp_enabled:
+ description: A flag indicating whether two-factor authentication (TOTP) has
+ been enabled.
+ example: true
+ type: boolean
+ last_login_time:
+ description: A timestamp of the latest login of the user, in milliseconds.
+ example: 1518630727688
+ format: int64
+ type: integer
+ login_history:
+ description: Timestamps, succeedings, IP addresses and user agent information
+ of the last five logins of the user, with timestamps in RFC3339 format.
+ items:
+ $ref: '#/definitions/LoginHistory'
+ maxItems: 5
+ type: array
+ login_profiles:
+ description: A list of login profiles for the user. Specified as the identity
+ providers the user is associated with.
+ items:
+ $ref: '#/definitions/LoginProfile'
+ type: array
+ x-nullable: true
+ object:
+ description: 'Entity name: always `user`.'
+ enum:
+ - user
+ type: string
+ password:
+ description: The password when creating a new user. It will be generated when
+ not present in the request.
+ example: PZf9eEUH43DAPE9ULINFeuj
+ type: string
+ x-nullable: true
+ password_changed_time:
+ description: A timestamp of the latest change of the user password, in milliseconds.
+ example: 1518630727688
+ format: int64
+ type: integer
+ phone_number:
+ description: Phone number.
+ example: +44 (1223) 400 400
+ maxLength: 100
+ type: string
+ x-nullable: true
+ status:
+ description: The status of the user. ENROLLING state indicates that the user
+ is in the middle of the enrollment process. INVITED means that the user
+ has not accepted the invitation request. RESET means that the password must
+ be changed immediately. INACTIVE users are locked out and not permitted
+ to use the system.
+ enum:
+ - ENROLLING
+ - INVITED
+ - ACTIVE
+ - RESET
+ - INACTIVE
+ example: ACTIVE
+ type: string
+ totp_scratch_codes:
+ description: A list of scratch codes for the two-factor authentication. Visible
+ only when 2FA is requested to be enabled or the codes regenerated.
+ items:
+ type: string
+ type: array
+ x-nullable: true
+ updated_at:
+ description: Last update UTC time RFC3339.
+ example: '2018-02-14T15:24:14Z'
+ format: date-time
+ type: string
+ username:
+ description: A username.
+ example: admin
+ pattern: '[\w\-,._@+=]{4,30}'
+ type: string
+ x-nullable: true
+ required:
+ - account_id
+ - email
+ - etag
+ - id
+ - object
+ - status
+ type: object
+ UserInfoRespList:
+ properties:
+ after:
+ description: The entity ID to retrieve after the given one.
+ example: 01619571f3c00242ac12000600000000
+ pattern: '[a-f0-9]{32}'
+ type: string
+ data:
+ description: A list of entities.
+ items:
+ $ref: '#/definitions/UserInfoResp'
+ type: array
+ has_more:
+ description: Flag indicating whether there are more results.
+ example: false
+ type: boolean
+ limit:
+ description: The number of results to return (2-1000), or equal to `total_count`.
+ example: 50
+ format: int32
+ type: integer
+ object:
+ description: 'Entity name: always `list`.'
+ enum:
+ - list
+ type: string
+ order:
+ description: 'The order of the records to return based on creation time. Available
+ values: ASC, DESC; by default ASC.'
+ enum:
+ - ASC
+ - DESC
+ type: string
+ total_count:
+ description: The total number of records, if requested.
+ example: 20
+ format: int32
+ type: integer
+ required:
+ - data
+ - has_more
+ - limit
+ - object
+ - total_count
+ type: object
+ UserInvitationReq:
+ description: Represents a user invitation in requests towards Device Management.
+ properties:
+ email:
+ description: The email address.
+ pattern: ^(?=.{3,254}$).+\@.+
+ type: string
+ groups:
+ description: A list of IDs of the groups this user has been invited to.
+ items:
+ type: string
+ type: array
+ login_profiles:
+ description: A list of login profiles for the user. Specified as the identity
+ providers the user should be associated with. Only the ID attribute of the
+ login profile should be set in the request object.
+ items:
+ $ref: '#/definitions/LoginProfile'
+ type: array
+ valid_for_days:
+ default: 30
+ description: Specifies how many days the invitation will be valid for.
+ format: int32
+ maximum: 100
+ minimum: 1
+ type: integer
+ required:
+ - email
+ type: object
+ UserInvitationResp:
+ description: Represents an user invitation in responses.
+ properties:
+ account_id:
+ description: The ID of the account the user is invited to.
+ example: 01619571e2e90242ac12000600000000
+ pattern: '[a-f0-9]{32}'
+ type: string
+ created_at:
+ description: Creation UTC time RFC3339.
+ example: '2018-02-13T09:35:20Z'
+ format: date-time
+ type: string
+ email:
+ description: Email address of the invited user.
+ example: friend@arm.com
+ pattern: ^(?=.{3,254}$).+\@.+
+ type: string
+ etag:
+ description: API resource entity version.
+ example: '1'
+ type: string
+ expiration:
+ description: Invitation expiration as UTC time RFC3339.
+ example: '2018-02-14T15:24:14Z'
+ format: date-time
+ type: string
+ groups:
+ description: A list of IDs of the groups the user is invited to.
+ items:
+ type: string
+ type: array
+ id:
+ description: The ID of the invitation.
+ example: 01619571e2e89242ac12000600000000
+ pattern: '[a-f0-9]{32}'
+ type: string
+ login_profiles:
+ description: A list of login profiles for the user. Specified as the identity
+ providers the user is associated with.
+ items:
+ $ref: '#/definitions/LoginProfile'
+ type: array
+ x-nullable: true
+ object:
+ description: 'Entity name: always ''user-invitation'''
+ enum:
+ - user-invitation
+ type: string
+ updated_at:
+ description: Last update UTC time RFC3339.
+ example: '2018-02-14T15:24:14Z'
+ format: date-time
+ type: string
+ user_id:
+ description: The ID of the invited user.
+ example: 01619571e2e90242ac12000600000000
+ pattern: '[a-f0-9]{32}'
+ type: string
+ required:
+ - account_id
+ - email
+ - etag
+ - id
+ - object
+ - user_id
+ type: object
+ UserInvitationRespList:
+ properties:
+ after:
+ description: The entity ID to retrieve after the given one.
+ example: 01619571f3c00242ac12000600000000
+ pattern: '[a-f0-9]{32}'
+ type: string
+ data:
+ description: A list of entities.
+ items:
+ $ref: '#/definitions/UserInvitationResp'
+ type: array
+ has_more:
+ description: Flag indicating whether there are more results.
+ example: false
+ type: boolean
+ limit:
+ description: The number of results to return (2-1000), or equal to `total_count`.
+ example: 50
+ format: int32
+ type: integer
+ object:
+ description: 'Entity name: always `list`.'
+ enum:
+ - list
+ type: string
+ order:
+ description: 'The order of the records to return based on creation time. Available
+ values: ASC, DESC; by default ASC.'
+ enum:
+ - ASC
+ - DESC
+ type: string
+ total_count:
+ description: The total number of records, if requested.
+ example: 20
+ format: int32
+ type: integer
+ required:
+ - data
+ - has_more
+ - limit
+ - object
+ - total_count
+ type: object
+ UserUpdateReq:
+ description: Represents a user in requests towards Device Management.
+ properties:
+ address:
+ description: Address.
+ maxLength: 100
+ type: string
+ x-nullable: true
+ email:
+ description: The email address. Not allowed to update other user's email address.
+ pattern: ^(?=.{3,254}$).+\@.+
+ type: string
+ x-nullable: true
+ full_name:
+ description: The full name of the user.
+ maxLength: 100
+ type: string
+ x-nullable: true
+ groups:
+ description: A list of group IDs this user belongs to. Can be updated by the
+ Account Admin only.
+ items:
+ type: string
+ type: array
+ x-nullable: true
+ is_gtc_accepted:
+ description: A flag indicating that the user has accepted General Terms and
+ Conditions.
+ type: boolean
+ x-nullable: true
+ is_marketing_accepted:
+ description: A flag indicating that the user has consented to receive marketing
+ information.
+ type: boolean
+ x-nullable: true
+ is_totp_enabled:
+ description: A flag indicating whether two-factor authentication (TOTP) is
+ enabled. An account administrator can disable it, but cannot enable it for
+ other users.
+ type: boolean
+ x-nullable: true
+ login_profiles:
+ description: '''A list of login profiles for the user, specified as identity
+ providers associated with the user. Only the ID attribute of the login profile
+ should be set in the request object. The list cannot be empty. Only an account
+ admin may update login profiles.'''
+ items:
+ $ref: '#/definitions/LoginProfile'
+ type: array
+ x-nullable: true
+ phone_number:
+ description: Phone number.
+ maxLength: 100
+ type: string
+ x-nullable: true
+ status:
+ description: The status of the user. ENROLLING indicates that the user is
+ in the middle of the enrollment process. INVITED means that the user has
+ not accepted the invitation request. RESET means that the password must
+ be changed immediately. INACTIVE users are locked out and not permitted
+ to use the system. Can be changed by the Aggregator Admin only.
+ enum:
+ - ENROLLING
+ - INVITED
+ - ACTIVE
+ - RESET
+ - INACTIVE
+ example: ACTIVE
+ type: string
+ x-nullable: true
+ username:
+ description: A username.
+ pattern: '[\w\-,._@+=]{4,30}'
+ type: string
+ x-nullable: true
+ type: object
+ Webhook:
+ properties:
+ headers:
+ additionalProperties:
+ type: string
+ description: The headers (key/value) sent with the notification. Optional.
+ example: '{"authorization" : "f4b93d6e-4652-4874-82e4-41a3ced0cd56"}'
+ type: object
+ serialization:
+ $ref: '#/definitions/SerializationConfigData'
+ url:
+ description: The URL to which the notifications are sent. We recommend that
+ you serve this URL over HTTPS.
+ example: https://www.example.com/my-webhook
+ type: string
+ required:
+ - url
+ type: object
+ WebsocketChannel:
+ properties:
+ queue_size:
+ default: 0
+ description: Number of events in the channel's event queue waiting to be delivered.
+ If the server cannot determine the queue size the value will be set to `-1`.
+ example: 0
+ type: integer
+ serialization:
+ $ref: '#/definitions/SerializationConfigData'
+ status:
+ default: disconnected
+ description: Channel status is 'connected' when the channel has an active
+ WebSocket bound to it. The status is 'disconnected' when either the channel
+ or the WebSocket bound to it is closed and 'unknown' when the server cannot
+ determine it.
+ enum:
+ - connected
+ - disconnected
+ - unknown
+ example: disconnected
+ type: string
+ type: object
+ error-response:
+ properties:
+ code:
+ description: HTTP response code.
+ format: int32
+ type: integer
+ fields:
+ description: Details of the error fields.
+ items:
+ $ref: '#/definitions/fields'
+ type: array
+ message:
+ description: Description of the error.
+ type: string
+ object:
+ description: Response type, always "error".
+ type: string
+ request_id:
+ description: Request ID.
+ type: string
+ type:
+ description: Type of error.
+ type: string
+ type: object
+ fields:
+ properties:
+ message:
+ description: Error description.
+ type: string
+ name:
+ description: The field name in the request for which the validation has failed.
+ type: string
+ type: object
+ metric:
+ properties:
+ bootstraps_failed:
+ description: The number of failed bootstraps the account has performed. Bootstrap
+ is the process of provisioning a Lightweight Machine to Machine Client to
+ a state where it can initiate a management session to a new Lightweight
+ Machine to Machine Server.
+ format: int64
+ type: integer
+ bootstraps_pending:
+ description: The number of pending bootstraps the account has performed. Bootstrap
+ is the process of provisioning a Lightweight Machine to Machine Client to
+ a state where it can initiate a management session to a new Lightweight
+ Machine to Machine Server.
+ format: int64
+ type: integer
+ bootstraps_successful:
+ description: The number of successful bootstraps the account has performed.
+ Bootstrap is the process of provisioning a Lightweight Machine to Machine
+ Client to a state where it can initiate a management session to a new Lightweight
+ Machine to Machine Server.
+ format: int64
+ type: integer
+ connect_rest_api_error:
+ description: The number of failed [Connect API](/docs/current/service-api-references/device-management-connect.html)
+ requests that have been performed using the account. This metric does not
+ consider the response from the device, it includes only the responses to
+ the HTTP requests used to manage the device. This metric includes only messages
+ handled by the Connect service, it does not include any HTTP errors returned
+ by firewall as result of malformed messages. The number of failed [Connect
+ API](https://www.pelion.com/docs/device-management-api/connect/) requests
+ that have been performed using the account. This metric does not consider
+ the response from the device, it includes only the responses to the HTTP
+ requests used to manage the device. This metric includes only messages handled
+ by the Connect service, not any HTTP errors returned by the firewall as
+ a result of incorrect messages.
+ format: int64
+ type: integer
+ connect_rest_api_success:
+ description: The number of successful [Connect API](/docs/current/service-api-references/device-management-connect.html)
+ requests that have been performed using the account. This metric does not
+ consider the response from the device, it includes only the responses to
+ the HTTP requests used to manage the device. The number of successful [Connect
+ API](https://www.pelion.com/docs/device-management-api/connect/) requests
+ that have been performed using the account. This metric does not consider
+ the response from the device, only the responses to the HTTP requests used
+ to manage the device.
+ format: int64
+ type: integer
+ deleted_registrations:
+ description: The number of deleted registrations (deregistrations) linked
+ to the account. Deregistration is the process of removing the device registration
+ from the Device Management Connect registry. The deregistration is usually
+ initiated by the device. Device Management Connect no longer handles requests
+ for a deregistered device.
+ format: int64
+ type: integer
+ device_observations:
+ description: '**(Beta)** The number of notifications received by the Device
+ Management Connect service from the devices linked to the account. The device
+ pushes notifications to Device Management Connect when you have successfully
+ subscribed to the device resources using [Connect API](https://www.pelion.com/docs/device-management-api/connect/)
+ endpoints.
+
+ '
+ format: int64
+ type: integer
+ device_proxy_request_error:
+ description: '**(Beta)** The number of failed proxy requests from the Device
+ Management Connect service to devices linked to the account. Device Management
+ Connect makes proxy requests to devices when you try to read or write values
+ to device resources using [Connect API](https://www.pelion.com/docs/device-management-api/connect/)
+ endpoints.
+
+ '
+ format: int64
+ type: integer
+ device_proxy_request_success:
+ description: '**(Beta)** The number of successful proxy requests from the
+ Device Management Connect service to devices linked to the account. Device
+ Management Connect makes proxy requests to devices when you try to read
+ or write values to device resources using [Connect API](https://www.pelion.com/docs/device-management-api/connect/)
+ endpoints.
+
+ '
+ format: int64
+ type: integer
+ device_subscription_request_error:
+ description: '**(Beta)** The number of failed subscription requests from the
+ Device Management Connect service to devices linked to the account. Device
+ Management Connect makes subscription requests to devices when you try to
+ subscribe to a resource path using [Connect API](https://www.pelion.com/docs/device-management-api/connect/)
+ endpoints.
+
+ '
+ format: int64
+ type: integer
+ device_subscription_request_success:
+ description: '**(Beta)** The number of successful subscription requests from
+ the Device Management Connect service to devices linked to the account.
+ Device Management Connect makes subscription requests to devices when you
+ try to subscribe to a resource path using [Connect API](https://www.pelion.com/docs/device-management-api/connect/)
+ endpoints.
+
+ '
+ format: int64
+ type: integer
+ expired_registrations:
+ description: The number of expired registrations linked to the account. Device
+ Management Connect removes the device registrations when the devices cannot
+ update their registration before the expiry of the lifetime. Device Management
+ Connect no longer handles requests for a device whose registration has expired
+ already.
+ format: int64
+ type: integer
+ full_registrations:
+ description: The number of full registrations linked to the account. Full
+ registration is the process of registering a device with Device Management
+ Connect by providing its lifetime and capabilities such as the resource
+ structure.The registered status of the device does not guarantee that the
+ device is active and accessible from Device Management Connect at any point
+ of time.
+ format: int64
+ type: integer
+ handshakes_successful:
+ description: The number of successful TLS handshakes the account has performed.
+ The SSL or TLS handshake enables the SSL or TLS client and server to establish
+ the secret keys with which they communicate. A successful TLS handshake
+ is required for establishing a connection with Device Management Connect
+ for any operaton such as registration, registration update and deregistration.
+ format: int64
+ type: integer
+ id:
+ description: A unique metric ID.
+ type: string
+ registration_updates:
+ description: The number of registration updates linked to the account. Registration
+ update is the process of updating the registration status with Device Management
+ Connect to update or extend the lifetime of the device.
+ format: int64
+ type: integer
+ timestamp:
+ description: UTC time in RFC3339 format. The timestamp is the starting point
+ of the interval for which the data is aggregated. Each interval includes
+ data for the time greater than or equal to the timestamp and less than the
+ next interval's starting point.
+ format: date-time
+ type: string
+ transactions:
+ description: The number of transaction events from or to devices linked to
+ the account. A transaction is a 512-byte block of data processed by Device
+ Management. It can be either sent by the device (device --> Device Management)
+ or received by the device (Device Management --> device). A transaction
+ does not include IP, TCP or UDP, TLS or DTLS packet overhead. It only contains
+ the packet payload (full CoAP packet including CoAP headers).
+ format: int64
+ type: integer
+ type: object
+ successful-response:
+ properties:
+ after:
+ description: The metric ID included in the request or null.
+ type: string
+ data:
+ items:
+ $ref: '#/definitions/metric'
+ type: array
+ has_more:
+ description: Indicates whether there are more results for you to fetch in
+ the next page.
+ type: boolean
+ limit:
+ description: The limit used in the request to retrieve the results.
+ type: integer
+ object:
+ description: API resource name.
+ type: string
+ total_count:
+ description: The total number of records available.
+ type: integer
+ type: object
+host: api.us-east-1.mbedcloud.com
+info:
+ description: Pelion Device Management API build from the publicly defined API definitions.
+ title: Pelion Device Management API
+ version: '3'
+paths:
+ //ace-auth/token:
+ post:
+ description: "Generate a signed CWT (CBOR Web Token). The SDA Android SDK uses\
+ \ this API to gain access to perform actions on the devices specified in the\
+ \ audience (aud).\n
\nAuthorized for roles: Service, ServiceAdministrator\n\
+
\n**Usage example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/ace-auth/token\
+ \ \\\n-H 'Authorization: ' \\\n-H 'content-type: application/json;charset=UTF-8'\
+ \ \\\n-d '{\n \"grant_type\":\"client_credentials\",\n \"aud\":[\"id:f90b1017e52f4c70ad92684e802c9249\"\
+ ,\"ep:dev1\"],\n \"scope\":\"turn-led-on\",\n \"cnf\":\"-----BEGIN PUBLIC\
+ \ KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ...XwIDAQAB-----END PUBLIC KEY-----\"\
+ \n}'\n```\n"
+ operationId: createAceAuthToken
+ parameters:
+ - description: Create access token request.
+ in: body
+ name: body
+ required: true
+ schema:
+ $ref: '#/definitions/TokenRequest'
+ responses:
+ '200':
+ description: A signed CWT (CBOR Web Token) access token.
+ schema:
+ $ref: '#/definitions/TokenResponse'
+ '400':
+ description: 'Bad request. Returns the standard error object detailing the
+ error message and, optionally, the invalid fields.
+
+ '
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '401':
+ description: 'Authentication failure. The provided header is invalid or
+ missing.
+
+ Returns the standard error object detailing the error message and, optionally,
+ the invalid fields.
+
+ '
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Get an access token to use with a device.
+ tags:
+ - Security and identity - secure device access
+ x-origin: /home/circleci/project/sda-service/public/sda.yaml
+ //v3/trust-anchors:
+ get:
+ description: 'Get all trust anchors that match the account ID specified in the
+ JWT.
+
+
+
+ Authorized for roles: Service, ServiceAdministrator
+
+
+
+ **Usage example:**
+
+ ```
+
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/trust-anchors \
+
+ -H ''Authorization: ''
+
+ ```
+
+ '
+ operationId: getTrustAnchors
+ parameters:
+ - description: Indicates how many objects to retrieve in the page. The minimum
+ limit is 2 and the maximum is 1000. Limit values outside of this range are
+ set to the closest limit.
+ in: query
+ maximum: 1000
+ minimum: 2
+ name: limit
+ type: integer
+ - description: Indicates how to order the entries based on when they were created.
+ `ASC` by default.
+ enum:
+ - ASC
+ - DESC
+ in: query
+ name: order
+ type: string
+ - description: The ID of the item after which to retrieve the next page.
+ in: query
+ name: after
+ pattern: '[A-Fa-f0-9]{32}'
+ type: string
+ - description: 'Comma-separated list of data fields to return. Currently supported:
+ `total_count`.'
+ in: query
+ name: include
+ type: string
+ responses:
+ '200':
+ description: 'Returns the list of trust anchors associated to the account_id
+ specified in the access token.
+
+ '
+ schema:
+ $ref: '#/definitions/GetTrustAnchorsResponse'
+ '400':
+ description: 'Bad request. Returns the standard error object detailing the
+ error message and, optionally, the invalid fields.
+
+ '
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '401':
+ description: 'Authentication failure. The provided header is invalid or
+ missing.
+
+ Returns the standard error object detailing the error message and, optionally,
+ the invalid fields.
+
+ '
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Get the account's trust anchor used to sign the access token.
+ tags:
+ - Security and identity - secure device access
+ x-origin: /home/circleci/project/sda-service/public/sda.yaml
+ post:
+ description: "Create a trust anchor key pair and return the public key and creation\
+ \ time.\nEach account can have one trust anchor only. This API fails if a\
+ \ trust anchor already exists for the account.\n
\nAuthorized for roles:\
+ \ Service, ServiceAdministrator\n
\n**Usage example:**\n```\ncurl -X POST\
+ \ https://api.us-east-1.mbedcloud.com/v3/trust-anchors \\\n-H 'Authorization:\
+ \ ' \\\n-H 'content-type: application/json;charset=UTF-8' \\\n\
+ -d '{\n \"description\": \"Trust anchor for room lighting controller.\"\n\
+ }'\n```\n"
+ operationId: createTrustAnchor
+ parameters:
+ - description: Request a new trust anchor.
+ in: body
+ name: body
+ required: true
+ schema:
+ $ref: '#/definitions/CreateTrustAnchorRequest'
+ responses:
+ '201':
+ description: Trust anchor created.
+ schema:
+ $ref: '#/definitions/CreateTrustAnchorResponse'
+ '400':
+ description: 'Bad request. Returns the standard error object detailing the
+ error message and, optionally, the invalid fields.
+
+ '
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '401':
+ description: 'Authentication failure. The provided header is invalid or
+ missing.
+
+ Returns the standard error object detailing the error message and, optionally,
+ the invalid fields.
+
+ '
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: 'Account limit exceeded. There is already a trust anchor defined
+ for the account.
+
+ Returns the standard error object detailing the error message.
+
+ '
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Create a new trust anchor for the account.
+ tags:
+ - Security and identity - secure device access
+ x-origin: /home/circleci/project/sda-service/public/sda.yaml
+ //v3/trust-anchors/{trust_anchor_id}:
+ delete:
+ description: 'Delete the specified trust anchor. Unrecoverable.
+
+
+
+ Authorized for roles: Service, ServiceAdministrator
+
+
+
+ **Usage example:**
+
+ ```
+
+ curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/trust-anchors/8e0a9494cc95b750ec6c81464eb06725
+ \
+
+ -H ''Authorization: '' \
+
+ ```
+
+ '
+ operationId: deleteTrustAnchor
+ parameters:
+ - description: The id of the trust anchor to be deleted
+ in: path
+ name: trust_anchor_id
+ pattern: '[A-Fa-f0-9]{32}'
+ required: true
+ type: string
+ responses:
+ '204':
+ description: Trust anchor deleted.
+ '400':
+ description: 'Bad request. Returns the standard error object detailing the
+ error message and, optionally, the invalid fields.
+
+ '
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '401':
+ description: 'Authentication failure. The provided header is invalid or
+ missing.
+
+ Returns the standard error object detailing the error message and, optionally,
+ the invalid fields.
+
+ '
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: The trust anchor to be deleted was not found.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Delete a trust anchor.
+ tags:
+ - Security and identity - secure device access
+ x-origin: /home/circleci/project/sda-service/public/sda.yaml
+ put:
+ description: "Updates a trust anchor description attribute.\n
\nAuthorized\
+ \ for roles: Service, ServiceAdministrator\n
\n**Usage example:**\n```\n\
+ curl -X PUT https://api.us-east-1.mbedcloud.com/v3/trust-anchors/8e0a9494cc95b750ec6c81464eb06725\
+ \ \\\n-H 'Authorization: ' \\\n-H 'content-type: application/json;charset=UTF-8'\
+ \ \\\n-d '{\n \"description\": \"Trust anchor for ambient light module\"\n\
+ }'\n```\n"
+ operationId: updateTrustAnchor
+ parameters:
+ - description: The id of the trust anchor to be updated
+ in: path
+ name: trust_anchor_id
+ pattern: '[A-Fa-f0-9]{32}'
+ required: true
+ type: string
+ - description: Update trust anchor request.
+ in: body
+ name: body
+ required: true
+ schema:
+ $ref: '#/definitions/UpdateTrustAnchorRequest'
+ responses:
+ '200':
+ description: Trust anchor updated.
+ schema:
+ $ref: '#/definitions/UpdateTrustAnchorResponse'
+ '400':
+ description: 'Bad request. Returns the standard error object detailing the
+ error message and, optionally, the invalid fields.
+
+ '
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '401':
+ description: 'Authentication failure. The provided header is invalid or
+ missing.
+
+ Returns the standard error object detailing the error message and, optionally,
+ the invalid fields.
+
+ '
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: The trust anchor to be updated was not found.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Update trust anchor attributes (description).
+ tags:
+ - Security and identity - secure device access
+ x-origin: /home/circleci/project/sda-service/public/sda.yaml
+ /downloads/fcu/factory_configurator_utility.zip:
+ get:
+ description: 'Downloads the Factory Configurator Utility (FCU) archive .zip
+ file for the account ID associated with the access token.
+
+
+
+ **Example:**
+
+
+
+ ```
+
+ curl -X GET https://api.us-east-1.mbedcloud.com/downloads/fcu/factory_configurator_utility.zip
+ \
+
+ -H ''Authorization: Bearer ''
+
+ ```
+
+ '
+ operationId: downloadFactoryTool
+ produces:
+ - application/zip
+ responses:
+ '200':
+ description: The archive file was downloaded successfully.
+ '400':
+ description: Validation error or bad request.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Access denied.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '500':
+ description: Internal server error.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Download the Factory Configurator Utility archive.
+ tags:
+ - Manufacturing - Factory Configurator Utility (FCU)
+ x-origin: /home/circleci/project/factory-tool-download/public/swagger.yaml
+ /downloads/fcu/info:
+ get:
+ description: "Returns information about the Factory Configurator Utility (FCU)\
+ \ archive.\n
\n**Example:**\n
\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/downloads/fcu/inf\
+ \ \\\n-H 'Authorization: Bearer ' \n```\n"
+ operationId: getFactoryToolInfo
+ produces:
+ - application/json
+ responses:
+ '200':
+ description: Successful response of the archive information.
+ schema:
+ $ref: '#/definitions/ArchiveInfoResponse'
+ '400':
+ description: Validation error or bad request.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Access denied.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '500':
+ description: Internal server error.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Download information about the Factory Configurator Utility archive.
+ tags:
+ - Manufacturing - Factory Configurator Utility (FCU)
+ x-origin: /home/circleci/project/factory-tool-download/public/swagger.yaml
+ /downloads/fcu/release_notes:
+ get:
+ description: 'Downloads the Factory Configurator Utility (FCU) release notes.
+
+
+
+ **Example:**
+
+
+
+ ```
+
+ curl -X GET https://api.us-east-1.mbedcloud.com/downloads/fcu/release_notes
+ \
+
+ -H ''Authorization: Bearer ''
+
+ ```
+
+ '
+ operationId: getFactoryToolReleaseNotes
+ produces:
+ - text/markdown ; charset=UTF-8
+ - application/json
+ responses:
+ '200':
+ description: The release notes were downloaded successfully.
+ '400':
+ description: Validation error or bad request.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Access denied.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '500':
+ description: Internal server error.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Download Factory Configurator Utility release notes.
+ tags:
+ - Manufacturing - Factory Configurator Utility (FCU)
+ x-origin: /home/circleci/project/factory-tool-download/public/swagger.yaml
+ /v2/device-requests/{device-id}:
+ post:
+ consumes:
+ - application/json
+ description: "This API provides an interface to call CoAP (Constrained Application\
+ \ Protocol) methods on a device and send commands to device resources.\n\n\
+ As part of the request body, you must specify the CoAP method you want to\
+ \ call on the device:\n\n- Use the GET method to read resource values.\n\n\
+ \ For example, to read the value of resource `/3200/0/5501`, use:\n\n \
+ \ ```\n curl -X POST https://api.us-east-1.mbedcloud.com/v2/device-requests/{device_id}?async-id={async-response-id}\
+ \ \\\n -H 'Authorization: Bearer {access_key}' \\\n -H 'content-type:\
+ \ application/json' \\\n -d '{\"method\": \"GET\", \"uri\": \"/3200/0/5501\"\
+ }'\n ```\n\n> For `GET` methods, the API may fetch values from an internal\
+ \ cache, instead of contacting the device.\n> If the value is not in the cache,\
+ \ the read command goes all the way to the device.\n\n\n- Use the PUT method\
+ \ to write [notification rules](https://www.pelion.com/docs/device-management/current/resources/resource-change-webapp.html)\
+ \ or resource values for a resource.\n\n Example payload to write a notification\
+ \ rule:\n\n ```\n { \"method\": \"PUT\", \"uri\": \"/5/0/1?lt=10>=60&pmax=120\"\
+ \ }\n ```\n\n- Example payload to write a value to resource `/5/0/1`:\n\
+ \n ```\n { \"method\": \"PUT\", \"uri\": \"/5/0/1?k1=v1&k2=v2\", \"\
+ accept\": \"text/plain\", \"content-type\": \"text/plain\", \"payload-b64\"\
+ : \"dmFsdWUxCg==\" }\n ```\n\n- Use the POST method to execute or create\
+ \ a resource on a LWM2M supporting device.\n\n When you create a resource,\
+ \ `uri` must refer to an object, and `payload-b64` must be in LWM2M TLV format\
+ \ for example:\n\n ```\n { \"method\": \"POST\", \"uri\": \"/123\",\
+ \ \"content-type\": \"application/vnd.oma.lwm2m+tlv\", \"payload-b64\": \"\
+ BwHFAnZhbHVl\" }\n ```\n\n- Use the POST method to execute resource on\
+ \ a LWM2M supporting device.\n\n Example payload to execute LWM2M resource\
+ \ `/123/1/1`:\n\n ```\n { \"method\": \"POST\", \"uri\": \"/123/1/1\"\
+ \ }\n ```\n\n- Device Management sends responses through the currently\
+ \ configured notification channel as `AsyncIDResponse`.\n\n Example `AsyncIDResponse`\
+ \ delivered through the notification channel:\n\n ```\n { \"async-responses\"\
+ : [ { \"id\": \"123e4567-e89b-12d3-a456-426655440000\", \"status\": 200, \"\
+ payload\": \"dmFsdWUxCg==\", \"ct\": \"text/plain\", \"max-age\": 600 } ]\
+ \ }\n ```\n\n ```\n { \"async-responses\": [ { \"id\": \"123e4567-e89b-12d3-a456-426655440000\"\
+ , \"status\": 504, \"error\": \"TIMEOUT\" } ] }\n ```\n\n> If it cannot\
+ \ reach the device at the time of the request, Device Management puts the\
+ \ requests in a queue.\n\n**Queueing behavior**\n\nIf Device Management does\
+ \ not reach the device, or the device fails to respond, the server queues\
+ \ the request and retries the delivery, for the period of time defined by\
+ \ `expiry-seconds`, the next time the device contacts the server.\n\nThe queue\
+ \ is limited to 20 requests.\n\nDevice Management delivers requests from the\
+ \ queue in the order of insertion, one at a time, and not concurrently.\n\n\
+ Delivery attempts follow protocol-specific retransmission logic. There can\
+ \ be multiple transmissions, depending on the protocol. For CoAP, the retransmissions\
+ \ have an exponential backoff of 2, 4, 8, 16, and up to 64 seconds, taking\
+ \ in total over two minutes.\nIf the device does not respond within this two-minute\
+ \ period, the delivery fails, Device Management performs one retry and then\
+ \ puts the request back into the queue until the retry count reaches its limit.\n\
+ \nDevice Management attempts to redeliver the request when the device next\
+ \ contacts the server.\n\nWhen Device Management reaches the `retry` or `expiry-seconds`\
+ \ limit, the server discards the request and sends an error in `AsyncIDResponse`.\n\
+ \nFor example:\n\n- Retries could be exhausted if the device periodically\
+ \ contacts the server and receives the request from the queue, but then fails\
+ \ to respond to the server.\n\n- The device may lose its network connectivity,\
+ \ and the requests in the queue may expire and get discarded before the device\
+ \ regains connectivity. When Device Management delivers the request to the\
+ \ device, the status code in `AsyncIDResponse` is *2xx* or *4xx*, based on\
+ \ the device's response. If Device Management could not deliver the request,\
+ \ the server generates a status code of *429* or *5xx*."
+ operationId: createAsyncRequest
+ parameters:
+ - description: The device ID generated by Device Management.
+ format: uuid, 32 hexadecimal characters
+ in: path
+ name: device-id
+ required: true
+ type: string
+ - description: A client-generated ID that lets the REST client track the end-to-end
+ flow and prevents race conditions with the notification channel. The `async-id`
+ can be, for example, a UUID or the web application session ID along with
+ the device ID and the resource.
+ format: 1-40 alphanumeric characters and dashes.
+ in: query
+ name: async-id
+ pattern: ^[\w\-]{1,40}$
+ required: true
+ type: string
+ - description: The number of attempts to deliver the request to the device after
+ the first delivery attempt. For example, two retries sums up to the total
+ of three delivery attempts. When retries are exhausted, Device Management
+ discards the request and delivers an error in the AsyncIDResponse. The default
+ number of retries for a non-queue mode device is `0`. The default number
+ of retries for a queue-mode device is `2`.
+ in: query
+ maximum: 10
+ minimum: 0
+ name: retry
+ required: false
+ type: integer
+ - description: The time period during which the delivery is attempted, in seconds.
+ If the device is not reachable within this period, Device Management discards
+ the request and delivers an error in the AsyncIDResponse. The default time
+ period during which the delivery is attempted is two hours for a non-queue
+ mode device and three days for a queue-mode device.
+ in: query
+ maximum: 2592000
+ minimum: 60
+ name: expiry-seconds
+ required: false
+ type: integer
+ - description: 'Device request to send. The body element has `method`, `uri`,
+ `accept`, `content-type` and `payload-b64` fields.
+
+ - The `method` is one of `GET`, `PUT`, `POST`, `DELETE`.
+
+ - The `uri` field is the path to the LwM2M object and can include query
+ parameters. This can include key-value pairs, for example, `/5/0/1?key1=value1;key2=value2`.
+
+ - The `accept` field defines the content type that the requesting client
+ will accept.
+
+ - The `content-type` describes the content type of the base-64 encoded `payload-b64`
+ field.
+
+ - The `payload-b64` is the payload to send to the device in base-64 encoded
+ form.'
+ in: body
+ name: body
+ required: true
+ schema:
+ $ref: '#/definitions/DeviceRequest'
+ produces:
+ - application/json
+ responses:
+ 202:
+ description: Accepted.
+ 400:
+ description: 'Bad request. Contains one of the errors RESOURCE_NOT_FOUND,
+ DEVICE_NOT_CONNECTED, MALFORMED_JSON_CONTENT,
+
+ MALFORMED_ASYNC_ID and QUEUE_IS_FULL'
+ schema:
+ type: string
+ 401:
+ description: Authentication failure.
+ 404:
+ description: "Contains one of the following errors:\n\n \n\
+ \ \n | Error message | \n Description | \n\
+ \
\n \n \n \n | DEVICE_NOT_FOUND | \n\
+ \ The device is not in the device registry. It has either requested\
+ \ for register delete\n or it has not connected in time and is expired. | \n\
+ \
\n \n | URI_PATH_DOES_NOT_EXISTS | \n\
+ \ The device does not have requested resource. Check the resource\
+ \ path is correct. | \n
\n \n
"
+ schema:
+ type: string
+ summary: Send an asynchronous request to read, write or post to a device resource.
+ tags:
+ - Device data - requests
+ x-origin: /home/circleci/project/device-server/public/swagger.yaml
+ /v2/device-shared-keys:
+ get:
+ consumes:
+ - application/json
+ description: 'Retrieve pre-shared keys (PSKs) with pagination. Default page
+ size of 50 entries.
+
+
+ **Example:**
+
+
+ ```
+
+ curl -X GET https://api.us-east-1.mbedcloud.com/v2/device-shared-keys \
+
+ -H "Authorization: Bearer "
+
+ ```'
+ operationId: listPreSharedKeys
+ parameters:
+ - default: 50
+ description: The number of objects to retrieve on a page (2-1000). Values
+ outside the range are set to the closest limit.
+ in: query
+ maximum: 1000
+ minimum: 2
+ name: limit
+ required: false
+ type: integer
+ - description: An offset token for fetching a specific page. Provided by the
+ server.
+ in: query
+ name: after
+ required: false
+ type: string
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: List of PSKs.
+ schema:
+ $ref: '#/definitions/ListOfPreSharedKeysWithoutSecret'
+ 400:
+ description: Bad request. Contains the error as a string, either TOKEN_NOT_FOUND
+ or INVALID_LIMIT.
+ summary: List PSKs.
+ tags:
+ - Security and identity - pre-shared keys
+ x-origin: /home/circleci/project/connector-bootstrap/public/swagger.yaml
+ post:
+ consumes:
+ - application/json
+ description: "Upload a PSK for an endpoint to allow it to bootstrap. The existing\
+ \ key cannot be overwritten, but needs\nto be deleted first in the case of\
+ \ re-setting a PSK for an endpoint.\n\n**Note**: The PSK APIs are available\
+ \ only to accounts that have this feature enabled.\n\n**Example:**\n```\n\
+ curl -X POST https://api.us-east-1.mbedcloud.com/v2/device-shared-keys \\\n\
+ -H \"Authorization: Bearer \" \\\n-H \"content-type: application/json\"\
+ \ \\\n -d '{ \"endpoint_name\": \"my-endpoint-0001\", \"secret_hex\"\
+ : \"4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a\" }'\n```"
+ operationId: uploadPreSharedKey
+ parameters:
+ - description: PSK to upload.
+ in: body
+ name: body
+ required: true
+ schema:
+ $ref: '#/definitions/PreSharedKey'
+ produces:
+ - application/json
+ responses:
+ 201:
+ description: Successfully created.
+ 400:
+ description: Bad request. Contains comma-separated errors INVALID_ENDPOINT_NAME,
+ INVALID_SECRET_HEX, and MALFORMED_JSON_CONTENT.
+ schema:
+ type: string
+ 401:
+ description: Authentication failure.
+ 403:
+ description: Forbidden. You need to read and accept the PSK license in Device
+ Management Portal.
+ 409:
+ description: Conflict. The PSK for the endpoint already exists and cannot
+ be overwritten. Contains error KEY_ALREADY_EXISTS_FOR_ENDPOINT.
+ schema:
+ type: string
+ summary: Upload a PSK to Pelion Device Management.
+ tags:
+ - Security and identity - pre-shared keys
+ x-origin: /home/circleci/project/connector-bootstrap/public/swagger.yaml
+ /v2/device-shared-keys/{endpoint_name}:
+ delete:
+ description: 'Remove a PSK.
+
+
+ **Example:**
+
+
+ ```
+
+ curl -X DELETE https://api.us-east-1.mbedcloud.com/v2/device-shared-keys/my-endpoint-0001
+ \
+
+ -H "Authorization: Bearer "
+
+ ```'
+ operationId: deletePreSharedKey
+ parameters:
+ - description: The unique endpoint identifier that this PSK applies to. [Reserved
+ characters](https://en.wikipedia.org/wiki/Percent-encoding#Percent-encoding_reserved_characters)
+ must be percent-encoded.
+ in: path
+ name: endpoint_name
+ required: true
+ type: string
+ responses:
+ 204:
+ description: Successfully deleted. Responds even if the endpoint does not
+ have an associated PSK.
+ 400:
+ description: Bad request. Endpoint name validation failed. Contains error
+ INVALID_ENDPOINT_NAME.
+ schema:
+ type: string
+ 401:
+ description: Authentication failure.
+ summary: Remove a PSK.
+ tags:
+ - Security and identity - pre-shared keys
+ x-origin: /home/circleci/project/connector-bootstrap/public/swagger.yaml
+ get:
+ description: 'Check if a PSK for an endpoint exists or not. The response does
+ not contain the secret itself.
+
+
+ **Example:**
+
+
+ ```
+
+ curl -X GET https://api.us-east-1.mbedcloud.com/v2/device-shared-keys/my-endpoint-0001
+ \
+
+ -H "Authorization: Bearer "
+
+ ```'
+ operationId: getPreSharedKey
+ parameters:
+ - description: The unique endpoint identifier that this PSK applies to. [Reserved
+ characters](https://en.wikipedia.org/wiki/Percent-encoding#Percent-encoding_reserved_characters)
+ must be percent-encoded.
+ in: path
+ name: endpoint_name
+ required: true
+ type: string
+ responses:
+ 200:
+ description: Pre-shared key for the device (does not contain secret).
+ schema:
+ $ref: '#/definitions/PreSharedKeyWithoutSecret'
+ 400:
+ description: Bad request. Endpoint name validation failed. Contains error
+ INVALID_ENDPOINT_NAME.
+ schema:
+ type: string
+ 401:
+ description: Authentication failure.
+ 404:
+ description: The PSK does not exist.
+ summary: Get a PSK.
+ tags:
+ - Security and identity - pre-shared keys
+ x-origin: /home/circleci/project/connector-bootstrap/public/swagger.yaml
+ /v2/endpoints/{device-id}:
+ get:
+ description: 'Retrieves information about the resource structure for a device
+ from Device Management. This call does not reach the device.
+
+
+ **Example:**
+
+ ```
+
+ curl -X GET https://api.us-east-1.mbedcloud.com/v2/endpoints/{device-id} \
+
+ -H ''Authorization: Bearer ''
+
+ ```'
+ operationId: getEndpointResources
+ parameters:
+ - description: The device ID generated by Device Management. The ID must be
+ an exact match. Do not use wildcards.
+ in: path
+ name: device-id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: Successful response with an array of resources.
+ schema:
+ $ref: '#/definitions/ResourceArray'
+ 404:
+ description: Endpoint not found.
+ summary: List the resources on a device.
+ tags:
+ - Device data - resources
+ x-origin: /home/circleci/project/device-server/public/swagger.yaml
+ /v2/endpoints/{device-id}/{resourcePath}:
+ delete:
+ deprecated: true
+ description: '(DEPRECATED) A request to delete a resource path must be handled
+ by both Device Management Client and Device Management
+
+ Connect.
+
+
+ All resource APIs are asynchronous. These APIs respond only if the device
+ is on and connected to Device Management Connect, and there is an active notification
+ channel.
+
+
+ **Example:**
+
+ ```
+
+ curl -X DELETE https://api.us-east-1.mbedcloud.com/v2/endpoints/{device-id}/{resourcePath}
+ \
+
+ -H ''Authorization: Bearer ''
+
+ ```'
+ operationId: deleteResourcePath
+ parameters:
+ - description: The device ID generated by Device Management. The ID must be
+ an exact match. Do not use wildcards.
+ in: path
+ name: device-id
+ required: true
+ type: string
+ - description: The resource URL.
+ in: path
+ name: resourcePath
+ required: true
+ type: string
+ - description: 'If you make a request with `noResp=true`, Device Management
+ Connect makes a CoAP non-confirmable request to the device. Such requests
+ are not guaranteed to arrive at the device, and do not return an async-response-id.
+
+
+ When calls with this parameter enabled succeed, they return with the status
+ code `204 No Content`. If the underlying protocol does not support non-confirmable
+ requests, or if the endpoint is registered in queue mode, the response is
+ status code `409 Conflict`.'
+ in: query
+ name: noResp
+ required: false
+ type: boolean
+ responses:
+ 202:
+ description: Accepted. Returns an asynchronous response ID.
+ schema:
+ $ref: '#/definitions/AsyncID'
+ 400:
+ description: Bad request.
+ 404:
+ description: "Requested endpoint\u2019s resource is not found."
+ 409:
+ description: Conflict. If `noResp=true`, the non-confirmable request is
+ not supported by the used protocol.
+ 410:
+ description: Gone. Endpoint not found.
+ 429:
+ description: 'Cannot accept the request at the moment: the queue is full.'
+ 502:
+ description: TCP or TLS connection to endpoint cannot be established.
+ summary: (DEPRECATED) Delete a resource path.
+ tags:
+ - Device data - resources
+ x-deprecation:
+ comment: /v2/endpoints/{device-id}/{resourcePath} is replaced by /v2/device-requests/{device-id}.
+ end_of_life_at: '2020-05-17T00:00:00+00:00'
+ issued_at: '2019-05-17T15:23:00+00:00'
+ links:
+ - https://www.pelion.com/docs/device-management-api/connect/
+ x-origin: /home/circleci/project/device-server/public/swagger.yaml
+ get:
+ deprecated: true
+ description: '(DEPRECATED) Requests the resource value either from the device
+ or cache. If the value is not in the cache, the request goes all the
+
+ way to the device. When the response is available, an `AsyncIDResponse` JSON
+ object is received in the notification channel.
+
+ The resource values can also be in cache based on `max_age` defined by the
+ device. The value found from the cache is returned
+
+ immediately in the response.
+
+
+ The preferred way to get resource values is to use the **subscribe** and **callback**
+ methods.
+
+
+ All resource APIs are asynchronous. These APIs only respond if the device
+ is on and connected to Device Management.
+
+
+ See also how [resource caching](https://www.pelion.com/docs/device-management/current/connecting/device-guidelines.html#resource-cache)
+ works.
+
+
+ Please see the [Lightweight Machine to Machine Technical specification](http://www.openmobilealliance.org/release/LightweightM2M/V1_0-20170208-A/OMA-TS-LightweightM2M-V1_0-20170208-A.pdf)
+ for more information.
+
+
+ **Example:**
+
+ ```
+
+ curl -X GET https://api.us-east-1.mbedcloud.com/v2/endpoints/{device-id}/{resourcePath}
+ \
+
+ -H ''Authorization: Bearer ''
+
+ ```'
+ operationId: getResourceValue
+ parameters:
+ - description: Unique Device Management device ID for the endpoint. The ID must
+ be an exact match. Do not use wildcards.
+ in: path
+ name: device-id
+ required: true
+ type: string
+ - description: The resource URL.
+ in: path
+ name: resourcePath
+ required: true
+ type: string
+ - description: 'If true, the response comes only from the cache. Default: false.
+ Device Management Connect caches the received resource values for the time
+ of [max_age](https://www.pelion.com/docs/device-management/current/resources/working-with-the-resources.html)
+ defined in the client.'
+ in: query
+ name: cacheOnly
+ required: false
+ type: boolean
+ - description: 'If a request is made with `noResp=true`, Device Management Connect
+ makes a CoAP non-confirmable request to the device. Such requests are not
+ guaranteed to arrive on the device, and no `async-response-id` returns.
+
+
+ Successful calls return with the status code `204 No Content`. If the underlying
+ protocol does not support non-confirmable requests, or if the endpoint is
+ registered in queue mode, the response is status code `409 Conflict`.'
+ in: query
+ name: noResp
+ required: false
+ type: boolean
+ responses:
+ 200:
+ description: Resource value found in cache. Returns the string value of
+ the resource.
+ 202:
+ description: Accepted. Returns an asynchronous response ID.
+ schema:
+ $ref: '#/definitions/AsyncID'
+ 205:
+ description: No cache available for the resource.
+ 400:
+ description: Bad request.
+ 404:
+ description: "Requested endpoint\u2019s resource is not found."
+ 409:
+ description: Conflict. If `noResp=true`, the non-confirmable request is
+ not supported by the used protocol.
+ 410:
+ description: Gone. Endpoint not found.
+ 429:
+ description: 'Cannot accept the request at the moment: the queue is full.'
+ 502:
+ description: TCP or TLS connection to endpoint cannot be established.
+ summary: (DEPRECATED) Read from a resource.
+ tags:
+ - Device data - resources
+ x-deprecation:
+ comment: /v2/endpoints/{device-id}/{resourcePath} is replaced by /v2/device-requests/{device-id}.
+ The /v2/device-requests/{device-id} endpoint lets you use your own async-id,
+ and simplifies integration by returning all resource values, cached and
+ non-cached, through the event notification channel.
+ end_of_life_at: '2020-05-17T00:00:00+00:00'
+ issued_at: '2019-05-17T15:23:00+00:00'
+ links:
+ - https://www.pelion.com/docs/device-management-api/connect/
+ x-origin: /home/circleci/project/device-server/public/swagger.yaml
+ post:
+ consumes:
+ - text/plain
+ - application/xml
+ - application/octet-stream
+ - application/exi
+ - application/json
+ - application/link-format
+ - application/senml+json
+ - application/nanoservice-tlv
+ - application/vnd.oma.lwm2m+text
+ - application/vnd.oma.lwm2m+opaq
+ - application/vnd.oma.lwm2m+tlv
+ - application/vnd.oma.lwm2m+json
+ deprecated: true
+ description: '(DEPRECATED) [Execute a function](https://www.pelion.com/docs/device-management/current/resources/handle-resource-webapp.html#the-execute-operation)
+ on an existing resource and create a new Object instance on the device. The
+ resource path does not have to exist; you can set it with the call. The maximum
+ length of the resource path is 255 characters.
+
+
+ All resource APIs are asynchronous. These APIs respond only if the device
+ is on and connected to Device Management Connect, and there is an active notification
+ channel.
+
+
+ Supported content types depend on the device and its resource. Device Management
+ translates HTTP to the equivalent CoAP content type.
+
+
+ **Example:**
+
+
+ This example resets the min and max values of the [temperature sensor](http://www.openmobilealliance.org/tech/profiles/lwm2m/3303.xml)
+ instance 0 by executing Resource 5605 ''Reset Min and Max Measured Values''.
+
+
+ ```
+
+ curl -X POST https://api.us-east-1.mbedcloud.com/v2/endpoints/{device-id}/3303/0/5605
+ \
+
+ -H ''Authorization: Bearer ''
+
+ ```'
+ operationId: executeOrCreateResource
+ parameters:
+ - description: The device ID generated by Device Management. The ID must be
+ an exact match. Do not use wildcards.
+ in: path
+ name: device-id
+ required: true
+ type: string
+ - description: The resource URL.
+ in: path
+ name: resourcePath
+ required: true
+ type: string
+ - description: This value is not needed. Most of the time, resources do not
+ accept a function; they have their own functions predefined. You can use
+ this to trigger them. If a function is included, the body of this request
+ is passed as a char* to the function in Device Management Client.
+ in: body
+ name: resourceFunction
+ required: false
+ schema:
+ type: string
+ - description: 'If you make a request with `noResp=true`, Device Management
+ Connect makes a CoAP non-confirmable request to the device. Such requests
+ are not guaranteed to arrive in the device, and you do not get back an async-response-id.
+
+
+ When calls with this parameter enabled succeed, they return with the status
+ code `204 No Content`. If the underlying protocol does not support non-confirmable
+ requests, or if the endpoint is registered in queue mode, the response is
+ status code `409 Conflict`.'
+ in: query
+ name: noResp
+ required: false
+ type: boolean
+ responses:
+ 202:
+ description: Accepted. Returns an asynchronous response ID.
+ schema:
+ $ref: '#/definitions/AsyncID'
+ 400:
+ description: Bad request.
+ 404:
+ description: "Requested endpoint\u2019s resource not found."
+ 409:
+ description: Conflict. If `noResp=true`, the non-confirmable request is
+ not supported by the used protocol.
+ 410:
+ description: Gone. Endpoint not found.
+ 429:
+ description: 'Cannot accept the request at the moment: the queue is full.'
+ 502:
+ description: TCP or TLS connection to endpoint cannot be established.
+ summary: (DEPRECATED) Execute a function on a Resource or create new Object
+ instance.
+ tags:
+ - Device data - resources
+ x-deprecation:
+ comment: /v2/endpoints/{device-id}/{resourcePath} is replaced by /v2/device-requests/{device-id}.
+ end_of_life_at: '2020-05-17T00:00:00+00:00'
+ issued_at: '2019-05-17T15:23:00+00:00'
+ links:
+ - https://www.pelion.com/docs/device-management-api/connect/
+ x-origin: /home/circleci/project/device-server/public/swagger.yaml
+ put:
+ consumes:
+ - text/plain
+ - application/xml
+ - application/octet-stream
+ - application/exi
+ - application/json
+ - application/link-format
+ - application/senml+json
+ - application/nanoservice-tlv
+ - application/vnd.oma.lwm2m+text
+ - application/vnd.oma.lwm2m+opaq
+ - application/vnd.oma.lwm2m+tlv
+ - application/vnd.oma.lwm2m+json
+ deprecated: true
+ description: '(DEPRECATED) With this API, you can [write a new value to existing
+ Resources](https://www.pelion.com/docs/device-management/current/resources/handle-resource-webapp.html)
+ or use the **write** attribute to set [notification rules](https://www.pelion.com/docs/device-management/current/resources/resource-change-webapp.html)
+ for the Resources. The notification rules only work on the device client side
+ and may not be supported by all clients.
+
+
+ This API can also be used to transfer files to the device. Device Management
+ Connect LwM2M server implements Option 1 from RFC7959. The maximum block size
+ is 1024 bytes.
+
+ Note block size versus transferred file size in low-quality networks. The
+ customer application needs to know what type of file is transferred (for example,
+ TXT)
+
+ and the customer can encrypt the payload. The maximum payload size is 1048576
+ bytes.
+
+
+ All resource APIs are asynchronous. These APIs respond only if the device
+ is on and connected to Device Management Connect, and there is an active notification
+ channel.
+
+
+ Supported content types depend on the device and its resource. Device Management
+ translates HTTP to equivalent CoAP content type.
+
+
+ **Example:**
+
+
+ This example sets the alarm on a buzzer. The command writes the [Buzzer](http://www.openmobilealliance.org/tech/profiles/lwm2m/3338.xml)
+ instance 0, "On/Off" boolean resource to ''1''.
+
+
+ ```
+
+ curl -X PUT https://api.us-east-1.mbedcloud.com/v2/endpoints/{device-id}/3338/0/5850
+ \
+
+ -H "content-type: text/plain" \
+
+ -H ''Authorization: Bearer '' \
+
+ -d ''1''
+
+ ```'
+ operationId: updateResourceValue
+ parameters:
+ - description: The device ID generated by Device Management. The ID must be
+ an exact match. Do not use wildcards.
+ in: path
+ name: device-id
+ required: true
+ type: string
+ - description: Resource URL.
+ in: path
+ name: resourcePath
+ required: true
+ type: string
+ - description: The value to set to the resource.
+ in: body
+ name: resourceValue
+ required: true
+ schema:
+ type: string
+ - description: 'If you make a request with `noResp=true`, Device Management
+ Connect makes a CoAP non-confirmable request to the device. Such requests
+ are not guaranteed to arrive to the device, and do not return an `async_response_id`.
+
+
+ When a call with this parameter enabled succeeds, it return status code
+ `204 No Content`. If the underlying protocol does not support non-confirmable
+ requests, or if the endpoint is registered in queue mode, the response is
+ status code `409 Conflict`.'
+ in: query
+ name: noResp
+ required: false
+ type: boolean
+ responses:
+ 202:
+ description: Accepted. Returns an asynchronous response ID.
+ schema:
+ $ref: '#/definitions/AsyncID'
+ 400:
+ description: Bad request.
+ 409:
+ description: '''Conflict. If `noResp=true`, the non-confirmable request
+ is not supported by the used protocol.'''
+ 410:
+ description: Gone. Endpoint not found.
+ 429:
+ description: 'Cannot accept the request at the moment: the queue is full.'
+ 502:
+ description: TCP or TLS connection to endpoint cannot be established.
+ summary: (DEPRECATED) Write to a Resource or use write-attributes (notification
+ rules) for a Resource.
+ tags:
+ - Device data - resources
+ x-deprecation:
+ comment: /v2/endpoints/{device-id}/{resourcePath} is replaced by /v2/device-requests/{device-id}.
+ end_of_life_at: '2020-05-17T00:00:00+00:00'
+ issued_at: '2019-05-17T15:23:00+00:00'
+ links:
+ - https://www.pelion.com/docs/device-management-api/connect/
+ x-origin: /home/circleci/project/device-server/public/swagger.yaml
+ /v2/notification/callback:
+ delete:
+ description: 'Deletes the callback URL.
+
+
+ Deleting the callback URL also removes the channel''s notification queue.
+ Any unsent notifications are lost when the channel is deleted.
+
+
+ **Example:**
+
+ ```
+
+ curl -X DELETE https://api.us-east-1.mbedcloud.com/v2/notification/callback
+ \
+
+ -H ''Authorization: Bearer ''
+
+ ```'
+ operationId: deregisterWebhook
+ responses:
+ 204: &id025
+ description: Successfully deleted.
+ 401: &id023
+ description: Unauthorized.
+ 403: &id024
+ description: Forbidden. The authorization token used is not an access key.
+ 404:
+ description: Callback URL does not exist.
+ summary: Delete callback URL.
+ tags:
+ - Device data - notifications
+ x-origin: /home/circleci/project/notification-service/public/swagger.yaml
+ get:
+ description: 'Shows the current callback URL if it exists.
+
+
+ **Example:**
+
+ ```
+
+ curl -X GET https://api.us-east-1.mbedcloud.com/v2/notification/callback \
+
+ -H ''Authorization: Bearer ''
+
+ ```'
+ operationId: getWebhook
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: URL found.
+ schema:
+ $ref: '#/definitions/Webhook'
+ 401: *id023
+ 403: *id024
+ 404:
+ description: The callback URL does not exist.
+ summary: Check callback URL.
+ tags:
+ - Device data - notifications
+ x-origin: /home/circleci/project/notification-service/public/swagger.yaml
+ put:
+ consumes:
+ - application/json
+ description: "Register a URL to which the server delivers notifications of changes\
+ \ to the subscribed resource. To push notifications, you must first place\
+ \ subscriptions. The maximum length of the URL, header keys, and values, all\
+ \ combined, is 400 characters.\n\nNotifications are delivered as PUT requests\
+ \ to the HTTP server, which the client defines with a subscription server\
+ \ message. The given URL must be accessible, and respond to the PUT request\
+ \ with a response code of 200 or 204.\n\nDevice Management Connect tests the\
+ \ callback URL with an empty JSON payload `{}` when the URL is registered.\
+ \ Callback implementation does not support URL redirection. For more information\
+ \ on notification messages, see [NotificationMessage](#NotificationMessage).\n\
+ \n**Optional headers in a callback message:**\n\nYou can set optional headers\
+ \ to a callback in a **Webhook** object. Device Management Connect includes\
+ \ the header and key pairs in the notification messages send them to callback\
+ \ URL. The callback URLs and headers are application-specific.\n\nOne possible\
+ \ use for additional headers is checking the origin of a PUT request, as well\
+ \ as distinguishing the application to which the notification belongs.\n\n\
+ **Note**: Only one callback URL for each application can be active. If you\
+ \ register a new URL while another one is active, it replaces the active one.\
+ \ There can be only one notification channel at a time for each application.\
+ \ If another type of channel is already present, you need to delete it before\
+ \ setting the callback URL.\n\n**Expiration of a callback URL:**\n\nA callback\
+ \ can expire when Device Management cannot deliver a notification due to a\
+ \ connection timeout or error response (4xx or 5xx). After each delivery failure,\
+ \ Device Management sets an exponential back-off time and makes a retry attempt\
+ \ after that. The first retry delay is 1 second, then 2s, 4s, 8s, up to a\
+ \ maximum delay of two minutes. The retry delay is applied when the response\
+ \ is received, or in case of timeout, after the timeout expires. The request\
+ \ timeout is 20 seconds; in the case of timeout, the first retry happens 20\
+ \ + 1 seconds after the first delivery attempt, then 20 + 2 seconds, and so\
+ \ on. The callback URL is removed if all retries fail within 24 hours. More\
+ \ about [notification sending logic](https://www.pelion.com/docs/device-management/current/integrate-web-app/event-notification.html#notification-sending-logic)\
+ \ in the Device Management documentation.\n\n**Supported callback URL protocols:**\n\
+ \nCurrently, only HTTP and HTTPS protocols are supported.\n\n**HTTPS callback\
+ \ URLs:**\n\nWhen delivering a notification to an HTTPS-based callback URL,\
+ \ Device Management Connect identifies itself with a valid client certificate.\
+ \ The certificate is signed by a trusted certificate authority (GlobalSign),\
+ \ with a Common Name (CN) set to `notifications.mbedcloud.com`.\n\n**Configuration\
+ \ options:**\n\nThe event notification channel provides configurations options\
+ \ defined in [Serialization config](#SerializationConfigObjectV2).\n\n**Example:**\n\
+ \nThis example command shows how to set your callback URL. It also sets an\
+ \ optional header authorization. When Device Management Connect calls your\
+ \ callback URL, the call contains the authorization header with the defined\
+ \ value.\n\n```\ncurl -X PUT https://api.us-east-1.mbedcloud.com/v2/notification/callback\
+ \ \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json'\
+ \ \\\n-d '{\n \"url\": \"{callback-url}\",\n \"headers\": {\"authorization\"\
+ : \"f4b93d6e-4652-4874-82e4-41a3ced0cd56\"},\n \"serialization\": {\"type\"\
+ : \"v2\", \"max_chunk_size\": \"100\",\n \"cfg\": {\"deregistrations_as_object\"\
+ : \"true\", \"include_uid\": \"true\", \"include_timestamp\": \"true\", \"\
+ include_original_ep\": \"true\"\n }\n }\n}'\n```"
+ operationId: registerWebhook
+ parameters:
+ - description: A JSON object that contains the optional headers and URL where
+ notifications are sent.
+ in: body
+ name: webhook
+ required: true
+ schema:
+ $ref: '#/definitions/Webhook'
+ responses:
+ 204:
+ description: Successfully subscribed.
+ 400:
+ description: Given URL is not accessible, or other type of channel already
+ exists.
+ 401: *id023
+ 403: *id024
+ 415:
+ description: Unsupported Media Type.
+ summary: Register a callback URL.
+ tags:
+ - Device data - notifications
+ x-origin: /home/circleci/project/notification-service/public/swagger.yaml
+ /v2/notification/channel:
+ get:
+ description: "Get channel delivery mechanism.\n\n**Example:**\n\n curl -X\
+ \ GET https://api.us-east-1.mbedcloud.com/v2/notification/channel \\\n \
+ \ -H 'Authorization: Bearer '\n"
+ operationId: getChannelMetadata
+ responses:
+ 200:
+ description: Success.
+ schema:
+ $ref: '#/definitions/ChannelMetadata'
+ 404:
+ description: Channel was not found.
+ summary: Get channel metadata.
+ tags:
+ - Device data - notifications
+ x-origin: /home/circleci/project/notification-service/public/swagger.yaml
+ /v2/notification/pull:
+ delete:
+ deprecated: true
+ description: 'Delete a notification Long Poll channel. This is required to change
+ the channel from Long Poll to another type. Do not make a GET `/v2/notification/pull`
+ call for two minutes after deleting the channel, because it can implicitly
+ recreate the pull channel. You can also have some random responses with payload
+ or 410 GONE with "CHANNEL_DELETED" as a payload or 200/204 until the old channel
+ is purged.
+
+
+ **Example:**
+
+ ```
+
+ curl -X DELETE https://api.us-east-1.mbedcloud.com/v2/notification/pull \
+
+ -H ''Authorization: Bearer ''
+
+ ```'
+ operationId: deleteLongPollChannel
+ responses:
+ 200:
+ description: Success. The body can contain "REMOVED" if it was deleted with
+ this call or "ALREADY_DELETED" if it was deleted before and not purged
+ yet.
+ 401: *id023
+ summary: Delete notification Long Poll channel.
+ tags:
+ - Device data - notifications
+ x-deprecation:
+ comment: Long polling is deprecated and should be used for development purposes
+ only.
+ end_of_life_at: '2020-06-30T00:00:00+00:00'
+ issued_at: '2017-02-10T15:23:00+00:00'
+ links:
+ - https://www.pelion.com/docs/device-management/current/integrate-web-app/event-notification.html
+ x-origin: /home/circleci/project/notification-service/public/swagger.yaml
+ get:
+ deprecated: true
+ description: 'In this case, notifications are delivered through HTTP long poll
+ requests. The HTTP request is kept open until one or more event notifications
+ are delivered to the client, or the request times out (response code 204).
+ In both cases, the client should open a new polling connection after the previous
+ one closes. Only a single long polling connection per application can be ongoing
+ at any given time. We recommend using a persistent connection (Connection
+ keep-alive header in the request) to avoid excess TLS handshakes.
+
+
+ The pull channel is implicitly created by the first GET call to `/v2/notification/pull`.
+ It refreshes on each GET call. If the channel is not polled for a long time
+ (10 minutes), it expires and is deleted. This means that no notifications
+ will stay in the queue between polls. A channel can be also be deleted explicitly
+ with a DELETE call.
+
+
+ **Note:** If you cannot have a public-facing callback URL, for example, when
+ developing on your local machine, you can use long polling to check for new
+ messages. However, **long polling is deprecated** and will likely be replaced
+ in the future. It is meant only for experimentation, not commercial use. The
+ proper method to receive notifications is a **notification callback**.
+
+
+ There can only be one notification channel per application in Device Management
+ Connect. If a notification channel of other type already exists for the application,
+ delete it before creating a long poll notification channel.
+
+
+ **Example:**
+
+ ```
+
+ curl -X GET https://api.us-east-1.mbedcloud.com/v2/notification/pull \
+
+ -H ''Authorization: Bearer ''
+
+ ```'
+ operationId: longPollNotifications
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: Success.
+ schema:
+ $ref: '#/definitions/NotificationMessage'
+ 204:
+ description: No new notifications.
+ 400:
+ description: Other type of channel already exists.
+ 401: *id023
+ 409:
+ description: Conflict. Long poll request exists already.
+ 410:
+ description: Pull channel was deleted and waiting to be purged. This code
+ is a result of incorrect client behavior (delete channel and then pull),
+ which can prevent the creation of a callback channel after the pull channel
+ is deleted. The channel can be (randomly) recreated by this call when
+ deleted and not purged. This client behaviour can set the channel in an
+ undefined state for some time. The channel may respond with 410 GONE or
+ 200/204 codes randomly for some time. Finally, the channel enters a valid
+ "channel exists" state.
+ summary: Get notifications using Long Poll
+ tags:
+ - Device data - notifications
+ x-deprecation:
+ comment: Long polling is deprecated and should be used for development purposes
+ only.
+ end_of_life_at: '2020-06-30T00:00:00+00:00'
+ issued_at: '2017-02-10T15:23:00+00:00'
+ links:
+ - https://www.pelion.com/docs/device-management/current/integrate-web-app/event-notification.html
+ x-origin: /home/circleci/project/notification-service/public/swagger.yaml
+ /v2/notification/websocket:
+ delete:
+ description: 'Delete a notification websocket channel bound to the application.
+ This is required to change the channel from websocket to another type.
+
+
+ Deleting the websocket channel also removes the channel''s notification queue.
+ Any unsent notifications are lost when the channel is deleted.
+
+ **Example:**
+
+
+ ```
+
+ curl -X DELETE https://api.us-east-1.mbedcloud.com/v2/notification/websocket
+ \
+
+ -H ''Authorization: Bearer ''
+
+ ```'
+ operationId: deleteWebsocket
+ responses:
+ 204: *id025
+ 401: *id023
+ 403: *id024
+ 404:
+ description: Websocket channel doesn't exist.
+ summary: Delete websocket channel.
+ tags:
+ - Device data - notifications
+ x-origin: /home/circleci/project/notification-service/public/swagger.yaml
+ get:
+ description: 'Returns 200 with websocket connection status, if websocket channel
+ exists.
+
+
+ **Note**: The current version does not yet have the capability to determine
+ the channel status and will always return status ''unknown'' and queue size
+ ''-1''.
+
+
+ **Example:**
+
+
+ ```
+
+ curl -X GET https://api.us-east-1.mbedcloud.com/v2/notification/websocket
+ \
+
+ -H ''Authorization: Bearer ''
+
+ ```'
+ operationId: getWebsocket
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: Websocket found.
+ schema:
+ $ref: '#/definitions/WebsocketChannel'
+ 401: *id023
+ 403: *id024
+ 404:
+ description: No channel has been registered.
+ summary: Get websocket channel information.
+ tags:
+ - Device data - notifications
+ x-origin: /home/circleci/project/notification-service/public/swagger.yaml
+ put:
+ consumes:
+ - application/json
+ description: "Register (or update) a channel using websocket connection to deliver\
+ \ notifications. The websocket channel should be opened by client using `/v2/notification/websocket-connect`\
+ \ endpoint. To get notifications pushed, you must place subscriptions. For\
+ \ more information on notification messages, see [NotificationMessage](#NotificationMessage).\n\
+ \nA websocket channel can have only one active websocket connection at a time.\
+ \ If a websocket connection for a channel exists and a new connection to the\
+ \ same channel is made, the connection is accepted and the older connection\
+ \ is closed.\n\n**Note**: Only one websocket channel for each application\
+ \ can be active at a time. If you register a new websocket channel while another\
+ \ one is active, it replaces the previously active one. If another type of\
+ \ channel is already present, you need to delete it before registering a websocket\
+ \ channel.\n\n**Note**: The current version does not yet have the capability\
+ \ to determine the channel status and will always return status 'unknown'\
+ \ and queue size '-1'.\n\n**Expiration of a websocket:**\n\nA websocket channel\
+ \ is expired if the channel does not have an opened websocket connection for\
+ \ a 24-hour period. Channel expiration means the channel is deleted and any\
+ \ undelivered notifications stored in its internal queue is removed. As long\
+ \ as the channel has an opened websocket connection or time between successive\
+ \ websocket connections is less than 24 hours,\nthe channel is considered\
+ \ active, notifications are stored in its internal queue and delivered when\
+ \ a websocket connection is active. A channel can be also deleted explicitly\
+ \ with a DELETE call.\n\nMore about [notification sending logic](https://www.pelion.com/docs/device-management/current/integrate-web-app/event-notification.html#notification-sending-logic).\n\
+ \n**Configuration options:**\n\nThe event notification channel provides configurations\
+ \ options defined in [Serialization config](#SerializationConfigObjectV2)\n\
+ \n**Example:**\n```\ncurl -X PUT https://api.us-east-1.mbedcloud.com/v2/notification/websocket\
+ \ \\\n-H 'Authorization: Bearer ' \\\n-d '{\n \"serialization\"\
+ : {\"type\": \"v2\", \"max_chunk_size\": \"100\",\n \"cfg\": {\"deregistrations_as_object\"\
+ : \"true\", \"include_uid\": \"true\", \"include_timestamp\": \"true\", \"\
+ include_original_ep\": \"true\"\n }\n }\n}\n```"
+ operationId: registerWebsocket
+ responses:
+ 200:
+ description: Channel successfully updated. In the current v2 implementation
+ this operation has no effect, and any subsequent PUT call from a client
+ previously registered to a channel results in a 200 OK response.
+ schema:
+ $ref: '#/definitions/RegisterWebsocketChannel'
+ 201:
+ description: Channel succesfully registered.
+ schema:
+ $ref: '#/definitions/WebsocketChannel'
+ 400:
+ description: Other type of channel already exists.
+ 401: *id023
+ 403: *id024
+ summary: Register a websocket channel.
+ tags:
+ - Device data - notifications
+ x-origin: /home/circleci/project/notification-service/public/swagger.yaml
+ /v2/notification/websocket-connect:
+ get:
+ description: "\nA websocket channel can have only one active connection at a\
+ \ time. If a websocket connection for a channel exists and a new connection\
+ \ to the same channel is made, the connection is accepted and the older connection\
+ \ is closed.\n\nA websocket client library should be used when connecting\
+ \ to this endpoint.\n\nOnce the socket has been opened, the server may close\
+ \ it with one of the following status codes.\n\n\n \n \n\
+ \ | Code | \n Description | \n
\n \n\
+ \ \n \n | 1000 | \n Socket closed\
+ \ normally by the client, or by the server when the channel is deleted with\
+ \ a REST call. | \n
\n \n | 1001 | \n \
+ \ Going away. Set when another socket opens on the used channel. | \n\
+ \
\n \n | 1006 | \n Abnormal closure.\
+ \ The client should reconnect after receiving this status code. A short reconnect\
+ \ delay is recommended. | \n
\n \n | 1008 | \n\
+ \ Policy violation. Set if the access key is lost or invalidated\
+ \ after a successful WebSocket handshake. | \n
\n \n \
+ \ | 1011 | \n Unexpected condition. The socket is closed\
+ \ with this status in an attempt to open a socket to a nonexistent channel\
+ \ (without a prior PUT request). This code is also used to indicate a closing\
+ \ socket for any other unexpected condition in the server. | \n
\n\
+ \ \n | 1012 | \n Service restart. Set when\
+ \ the server restarts for update, maintenance, and so on. The client should\
+ \ reconnect after receiving this status code. A short reconnect delay is recommended. | \n\
+ \
\n \n
\n\n**Expected client behaviour:**\n\nIf the\
+ \ connection is closed with code 1006 or 1012, the client should try to reconnect\
+ \ to maintain the notification flow. The client might disconnect several times\
+ \ in a relatively short period, for example, during service updates. This\
+ \ is normal. The desired client behavior is to reconnect after each disconnect.\n\
+ \n**Example:**\n\nThe example is meant only for testing. For production devices,\
+ \ use a WebSocket client library. Websocat (https://github.com/vi/websocat)\
+ \ is a command-line client for WebSockets, like netcat or cURL. The example\
+ \ command opens a new WebSocket, waits for any data sent to the socket from\
+ \ the server, and prints it to `stdout`.\n\n```\nwebsocat wss://api.us-east-1.mbedcloud.com/v2/notification/websocket-connect\
+ \ \\\n-H \"Sec-WebSocket-Protocol:wss,pelion_ak_\"\n```"
+ operationId: connectWebsocket
+ parameters:
+ - default: Upgrade
+ in: header
+ name: Connection
+ required: true
+ type: string
+ - default: websocket
+ in: header
+ name: Upgrade
+ required: true
+ type: string
+ - description: 'Access key or user token must be present in the `Sec-WebSocket-Protocol`
+ header **if Authorization header cannot be provided**: `Sec-WebSocket-Protocol:"wss,pelion_ak_{access_key}"`.
+
+ Refer to the notification service documentation for examples.'
+ in: header
+ name: Sec-WebSocket-Protocol
+ required: false
+ type: string
+ - description: Originating host of the request.
+ in: header
+ name: Origin
+ required: true
+ type: string
+ - default: 13
+ description: WebSocket version. Must be 13.
+ in: header
+ name: Sec-WebSocket-Version
+ required: true
+ type: integer
+ - description: The value of this header field must be a nonce consisting of
+ a randomly selected 16-byte value that has been base64-encoded (see Section
+ 4 of [RFC4648]). The nonce must be selected randomly for each connection.
+ in: header
+ name: Sec-WebSocket-Key
+ required: true
+ type: string
+ responses:
+ 101:
+ description: Switching protocols.
+ 400:
+ description: Required header(s) missing.
+ 401: *id023
+ 426:
+ description: Upgrade required. Connect and/or Upgrade headers missing.
+ 429:
+ description: While a WebSocket handshake is still in progress, no new WebSocket
+ requests with the same authorization token will be accepted.
+ summary: Open the websocket.
+ tags:
+ - Device data - notifications
+ x-origin: /home/circleci/project/notification-service/public/swagger.yaml
+ /v2/subscriptions:
+ delete:
+ description: 'Remove presubscriptions.
+
+
+ **Example:**
+
+ ```
+
+ curl -X DELETE https://api.us-east-1.mbedcloud.com/v2/subscriptions \
+
+ -H ''Authorization: Bearer ''
+
+ ```'
+ operationId: deletePreSubscriptions
+ responses:
+ 204:
+ description: Successfully removed subscriptions.
+ 401:
+ description: Unauthorized.
+ 403:
+ description: 'Forbidden: the authorization token used is not an access key.'
+ summary: Remove presubscriptions.
+ tags:
+ - Device data - subscriptions
+ x-origin: /home/circleci/project/device-server/public/swagger.yaml
+ get:
+ description: 'Retrieve presubscription data. The server returns a JSON structure.
+ If there are no presubscribed resources, the server returns an empty array.
+
+
+ **Example:**
+
+ ```
+
+ curl -X GET https://api.us-east-1.mbedcloud.com/v2/subscriptions \
+
+ -H ''Authorization: Bearer ''
+
+ ```'
+ operationId: getPreSubscriptions
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK.
+ schema:
+ $ref: '#/definitions/PresubscriptionArray'
+ 401:
+ description: Unauthorized.
+ 403:
+ description: 'Forbidden: the authorization token used is not an access key.'
+ summary: View presubscriptions.
+ tags:
+ - Device data - subscriptions
+ x-origin: /home/circleci/project/device-server/public/swagger.yaml
+ put:
+ consumes:
+ - application/json
+ description: "A presubscription is a set of rules you define to subscribe to\
+ \ specific resources automatically when certain devices register or does a\
+ \ register update.\nYou can set subscription rules based on the endpoint ID\
+ \ (optionally having an `*` character at the end), endpoint type, a list of\
+ \ resources, or expressions with an `*` character at the end.\nWhen a device\
+ \ that meets the subscription rules registered, Device Management Connect\
+ \ automatically sends subscription requests to the device for the resources\
+ \ you specify.\nTo remove the presubscription data, put an empty array as\
+ \ a rule.\nTo place dynamic observation rules for individual object instances\
+ \ and resources and define when the device sends observations, set [notification\
+ \ rules](https://www.pelion.com/docs/device-management/current/resources/resource-change-webapp.html).\n\
+ \n**Note:** The subscription is bound to the application you are using. To\
+ \ get notifications of the resource value changes, you need to create an [event\
+ \ notification channel](https://www.pelion.com/docs/device-management/current/integrate-web-app/event-notification.html)\
+ \ with an access key of the same application.\n\n**Example request:**\n```\n\
+ curl -X PUT https://api.us-east-1.mbedcloud.com/v2/subscriptions \\\n-H 'Authorization:\
+ \ Bearer ' \\\n-H 'content-type: application/json' \\\n-d '[\n\
+ \ {\n \"endpoint-name\": \"node-001\",\n \"resource-path\"\
+ : [\"/dev\"]\n },\n {\n \"endpoint-type\": \"Light\",\n\
+ \ \"resource-path\": [\"/sen/*\"]\n },\n {\n \"\
+ endpoint-name\": \"node*\"\n },\n {\n \"endpoint-type\"\
+ : \"Sensor\"\n },\n {\n \"resource-path\": [\"/dev/temp\"\
+ ,\"/dev/hum\"]\n }\n ]'\n```\n\n- Subscribe to `/dev` resource of\
+ \ endpoint named `node-001`.\n- Subscribe to `Light` type of endpoints and\
+ \ their resources prefixed with `/sen/`.\n- Subscribe to all observable resources\
+ \ of endpoint names prefixed with `node`.\n- Subscribe to all observable resources\
+ \ of `Sensor` type endpoints.\n- Subscribe to `/dev/temp` and `/dev/hum` resources\
+ \ of all endpoints.\n\n**Limits**:\n\n- The maximum length of the endpoint\
+ \ name and endpoint type is 64 characters.\n- The maximum length of the resource\
+ \ path is 128 characters.\n- You can subscribe to 256 separate resource paths.\n\
+ - The maximum number of presubscription entries is 1024.\n\n**Note**: To save\
+ \ bandwidth and avoid unnecessary traffic, use resource path patterns to limit\
+ \ the matching resources in the presubscription data. This prevents your web\
+ \ application from receiving unwanted resource notifications. See [Subscribe\
+ \ only to what you need](https://www.pelion.com/docs/device-management/current/resources/resource-change-webapp.html)."
+ operationId: updatePreSubscriptions
+ parameters:
+ - description: Array of presubscriptions.
+ in: body
+ name: presubscription
+ required: true
+ schema:
+ $ref: '#/definitions/PresubscriptionArray'
+ produces:
+ - text/plain
+ responses:
+ 204:
+ description: Successfully created.
+ 400:
+ description: Bad request, malformed content.
+ 401:
+ description: Unauthorized.
+ 403:
+ description: 'Forbidden: the authorization token used is not an access key.'
+ summary: Set presubscriptions.
+ tags:
+ - Device data - subscriptions
+ x-origin: /home/circleci/project/device-server/public/swagger.yaml
+ /v2/subscriptions/{device-id}:
+ delete:
+ description: 'Delete all resource subscriptions in a single device.
+
+
+ **Example:**
+
+ ```
+
+ curl -X DELETE https://api.us-east-1.mbedcloud.com/v2/subscriptions/{device-id}
+ \
+
+ -H ''Authorization: Bearer ''
+
+ ```'
+ operationId: deleteEndpointSubscriptions
+ parameters:
+ - description: The device ID generated by Device Management. The ID must be
+ an exact match. Do not use wildcards.
+ in: path
+ name: device-id
+ required: true
+ type: string
+ responses:
+ 204:
+ description: Successfully removed.
+ summary: Delete all subscriptions on a device.
+ tags:
+ - Device data - subscriptions
+ x-origin: /home/circleci/project/device-server/public/swagger.yaml
+ get:
+ description: 'Retrieve a list of all subscribed resources on a single device.
+
+
+ **Example:**
+
+ ```
+
+ curl -X GET https://api.us-east-1.mbedcloud.com/v2/subscriptions/{device-id}
+ \
+
+ -H ''Authorization: Bearer ''
+
+ ```'
+ operationId: getEndpointSubscriptions
+ parameters:
+ - description: The device ID generated by Device Management. The ID must be
+ an exact match. Do not use wildcards.
+ in: path
+ name: device-id
+ required: true
+ type: string
+ produces:
+ - text/uri-list
+ responses:
+ 200:
+ description: List of subscribed resources.
+ schema:
+ description: A list of resource URIs, one per line.
+ example: /sen/light
+ type: string
+ 404:
+ description: Endpoint not found, or there are no subscriptions for that
+ endpoint.
+ summary: View all subscriptions on a device.
+ tags:
+ - Device data - subscriptions
+ x-origin: /home/circleci/project/device-server/public/swagger.yaml
+ /v2/subscriptions/{device-id}/{resourcePath}:
+ delete:
+ description: 'Remove an existing subscription to a resource.
+
+
+ **Example:**
+
+ ```
+
+ curl -X DELETE https://api.us-east-1.mbedcloud.com/v2/subscriptions/{device-id}/{resourcePath}
+ \
+
+ -H ''Authorization: Bearer ''
+
+ ```'
+ operationId: deleteResourceSubscription
+ parameters:
+ - description: The device ID generated by Device Management. The ID must be
+ an exact match. Do not use wildcards.
+ in: path
+ name: device-id
+ required: true
+ type: string
+ - description: 'The resource URL. This can be the path to:
+
+
+ - An object; for example, `3303`.
+
+ - An object instance; for example `3303/0`.
+
+ - A resource; for example `3303/0/5602`.
+
+
+ For more information about the Device Management resource model, please
+ see the [Device Management documentation](https://www.pelion.com/docs/device-management/current/resources/resource-model.html).'
+ in: path
+ name: resourcePath
+ required: true
+ type: string
+ responses:
+ 204:
+ description: Successfully removed subscription.
+ summary: Remove a subscription.
+ tags:
+ - Device data - subscriptions
+ x-origin: /home/circleci/project/device-server/public/swagger.yaml
+ get:
+ description: Check whether you are subscribed to receive resource content updates
+ for a specific resource.
+ operationId: checkResourceSubscription
+ parameters:
+ - description: The device ID generated by Device Management. The ID must be
+ an exact match. Do not use wildcards.
+ in: path
+ name: device-id
+ required: true
+ type: string
+ - description: 'The resource URL. This can be the path to:
+
+
+ - An object; for example, `3303`.
+
+ - An object instance; for example `3303/0`.
+
+ - A resource; for example `3303/0/5602`.
+
+
+ For more information about the Device Management resource model, please
+ see the [Device Management documentation](https://www.pelion.com/docs/device-management/current/resources/resource-model.html).'
+ in: path
+ name: resourcePath
+ required: true
+ type: string
+ responses:
+ 200:
+ description: Resource is subscribed.
+ 404:
+ description: Resource is not subscribed.
+ summary: Read the subscription status for a specific resource.
+ tags:
+ - Device data - subscriptions
+ x-origin: /home/circleci/project/device-server/public/swagger.yaml
+ put:
+ description: '
+
+ Subscribe to a resource to receive updated resource content, periodically
+ or based on a more sophisticated solution-dependent logic.
+
+
+ To place dynamic observation rules for individual object instances and resources
+ and define when the device sends observations, set [notification rules](https://www.pelion.com/docs/device-management/current/resources/resource-change-webapp.html).
+
+
+ **Note:** Device Management removes all manual subscriptions during a full
+ device registration, at which point applications must re-subscribe. To avoid
+ this, use `/subscriptions` to set a presubscription.
+
+
+ You can subscribe to resources, objects and object instances.
+
+
+ **Example:**
+
+ ```
+
+ curl -X PUT https://api.us-east-1.mbedcloud.com/v2/subscriptions/{device-id}/{resourcePath}
+ \
+
+ -H ''Authorization: Bearer ''
+
+ ```
+
+
+ **Important:** You must also call a [`/notification/callback`](https://www.pelion.com/docs/device-management-api/notifications/)
+ method for Device Management Connect to push resource change notifications.'
+ operationId: addResourceSubscription
+ parameters:
+ - description: The device ID generated by Device Management. The ID must be
+ an exact match. Do not use wildcards.
+ in: path
+ name: device-id
+ required: true
+ type: string
+ - description: 'The resource URL. This can be the path to:
+
+
+ - An object; for example, `3303`.
+
+ - An object instance; for example `3303/0`.
+
+ - A resource; for example `3303/0/5602`.
+
+
+ For more information about the Device Management resource model, please
+ see the [Device Management documentation](https://www.pelion.com/docs/device-management/current/resources/resource-model.html).'
+ in: path
+ name: resourcePath
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: Successfully subscribed.
+ 202:
+ description: Accepted. Returns an asynchronous response ID used to reference
+ the future asynchronous response.
+ schema:
+ $ref: '#/definitions/AsyncID'
+ 400:
+ description: Bad request, malformed content.
+ 404:
+ description: Endpoint or its resource not found.
+ 429:
+ description: 'Cannot accept the request at the moment: the queue is full.'
+ 502:
+ description: 'Subscription failed: endpoint not connected.'
+ summary: Subscribe to a resource to receive updates about resource changes.
+ tags:
+ - Device data - subscriptions
+ x-origin: /home/circleci/project/device-server/public/swagger.yaml
+ /v3/access-keys:
+ get:
+ description: 'Retrieve an array of access keys.
+
+ Note: This endpoint is restricted to administrators.
+
+
+ **Example:**
+
+ ```
+
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/access-keys \
+
+ -H ''Authorization: Bearer ''
+
+ ```'
+ operationId: getAllAccessKeys
+ parameters:
+ - default: 50
+ description: The number of results to return (2-1000). Default 50.
+ format: int32
+ in: query
+ name: limit
+ required: false
+ type: integer
+ - description: The entity ID to retrieve after the given one.
+ in: query
+ name: after
+ required: false
+ type: string
+ - default: ASC
+ description: 'Record order based on creation. Acceptable values: ASC, DESC.
+ Default: ASC.'
+ in: query
+ name: order
+ required: false
+ type: string
+ - description: 'Comma-separated additional data to return. Currently supported:
+ total_count.'
+ in: query
+ name: include
+ required: false
+ type: string
+ - description: Status filter.
+ in: query
+ name: status__eq
+ required: false
+ type: string
+ - description: Application filter.
+ in: query
+ name: application_id__eq
+ required: false
+ type: string
+ produces:
+ - application/json
+ responses:
+ '200':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/AccessKeyList'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Get all access keys.
+ tags:
+ - Account - access keys
+ x-filter:
+ application_id:
+ - eq
+ status:
+ - eq
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/access-keys/{access_key_id}:
+ get:
+ description: 'Retrieve details of an access key.
+
+ Note: This endpoint is restricted to administrators.
+
+
+ **Example:**
+
+ ```
+
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/access-keys/{access_key_id}
+ \
+
+ -H ''Authorization: Bearer ''
+
+ ```'
+ operationId: getAccessKey
+ parameters:
+ - description: The ID of the access key to retrieve.
+ in: path
+ name: access_key_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ '200':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/AccessKey'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: An access key with the specified ID does not exist.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Get access key.
+ tags:
+ - Account - access keys
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/accounts:
+ get:
+ description: 'Retrieve an array of tenant accounts, optionally filtered by status
+ and tier level.
+
+ Note: This endpoint is restricted to administrators.
+
+
+ **Example:**
+
+ ```
+
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts \
+
+ -H ''Authorization: Bearer ''
+
+ ```'
+ operationId: getAllAccounts
+ parameters:
+ - description: An optional filter for account status, ENROLLING, ACTIVE, RESTRICTED,
+ or SUSPENDED.
+ in: query
+ name: status__eq
+ required: false
+ type: string
+ - description: An optional filter to retrieve accounts with a specified set
+ of statuses.
+ in: query
+ name: status__in
+ required: false
+ type: string
+ - description: An optional filter to exclude accounts with a specified set of
+ statuses.
+ in: query
+ name: status__nin
+ required: false
+ type: string
+ - description: An optional filter for tier level. Must be 0, 1, 2, 98, 99, or
+ omitted.
+ in: query
+ name: tier__eq
+ required: false
+ type: string
+ - description: An optional filter for parent account ID.
+ in: query
+ name: parent__eq
+ required: false
+ type: string
+ - description: An optional filter for account end market.
+ in: query
+ name: end_market__eq
+ required: false
+ type: string
+ - description: 'An optional filter for account country. Finds all matches where
+ the filter value is a case-insensitive substring of the result. Example:
+ country__like=LAND matches Ireland.'
+ in: query
+ name: country__like
+ required: false
+ type: string
+ - default: 1000
+ description: The number of results to return (2-1000). Default 1000.
+ format: int32
+ in: query
+ name: limit
+ required: false
+ type: integer
+ - description: The entity ID to retrieve after the given one.
+ in: query
+ name: after
+ required: false
+ type: string
+ - default: ASC
+ description: 'Record order. Acceptable values: ASC, DESC. Default: ASC.'
+ in: query
+ name: order
+ required: false
+ type: string
+ - description: 'Comma-separated additional data to return. Currently supported:
+ limits, policies, sub_accounts, history.'
+ in: query
+ name: include
+ required: false
+ type: string
+ - description: 'Format information for the query response. Supported: format=breakdown.'
+ in: query
+ name: format
+ required: false
+ type: string
+ - description: Property name returned from account-specific properties.
+ in: query
+ name: properties
+ required: false
+ type: string
+ produces:
+ - application/json
+ responses:
+ '200':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/AccountInfoList'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Get all accounts.
+ tags:
+ - Tenant accounts - accounts
+ x-filter:
+ country:
+ - like
+ end_market:
+ - eq
+ parent:
+ - eq
+ status:
+ - eq
+ - in
+ - nin
+ tier:
+ - eq
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ post:
+ consumes:
+ - application/json
+ description: 'Create a new account.
+
+ Note: This endpoint is restricted to administrators.
+
+
+ **Example:**
+
+ ```
+
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts \
+
+ -H ''Authorization: Bearer '' \
+
+ -H ''content-type: application/json'' \
+
+ -d ''{"display_name": "MyAccount1", "aliases": [ "my-account" ], "admin_name":
+ "accountAdmin1", "email": "example_admin@myaccount.info", "country": "United
+ Kingdom", "end_market": "Smart City", "address_line1": "110 Fulbourn Rd",
+ "city": "Cambridge", "contact": "J. Doe", "company": "Arm"}''
+
+ ```'
+ operationId: createAccount
+ parameters:
+ - description: Details of the account to create.
+ in: body
+ name: body
+ required: true
+ schema:
+ $ref: '#/definitions/AccountCreationReq'
+ - default: create
+ description: 'Action, either `create` or `enroll`.
+
+
+
+ - `create` creates the account where its admin user has ACTIVE status
+ if `admin_password` was defined in the request, or RESET status if no `admin_password`
+ was defined. If the user already exists, its status is not modified.
+
+ - `enroll` creates the account where its admin user has ENROLLING status.
+ If the user already exists, its status is not modified. Email to finish
+ enrollment or notify the existing user about the new account is sent to
+ the `admin_email` defined in the request.
'
+ in: query
+ name: action
+ required: false
+ type: string
+ produces:
+ - application/json
+ responses:
+ '201':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/AccountCreationResp'
+ '400':
+ description: Error in input data, for example, invalid username.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '409':
+ description: Account with the specified alias exists already.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Create a new account.
+ tags:
+ - Tenant accounts - accounts
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/accounts/me:
+ get:
+ description: 'Retrieve information about the account.
+
+
+ **Example:**
+
+ ```
+
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/me?include=policies
+ \
+
+ -H ''Authorization: Bearer ''
+
+ ```'
+ operationId: getMyAccountInfo
+ parameters:
+ - description: 'Comma-separated additional data to return. Currently supported:
+ limits, policies, sub_accounts.'
+ in: query
+ name: include
+ required: false
+ type: string
+ - description: Property name to return from account-specific properties.
+ in: query
+ name: properties
+ required: false
+ type: string
+ produces:
+ - application/json
+ responses:
+ '200':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/AccountInfo'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Get account information.
+ tags:
+ - Account - profile
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ put:
+ consumes:
+ - application/json
+ description: 'Update the account.
+
+ Note: This endpoint is restricted to administrators.
+
+
+ **Example:**
+
+ ```
+
+ curl -X PUT https://api.us-east-1.mbedcloud.com/v3/accounts/me \
+
+ -H ''Authorization: Bearer '' \
+
+ -H ''content-type: application/json'' \
+
+ -d ''{"phone_number": "12345678"}''
+
+ ```'
+ operationId: updateMyAccount
+ parameters:
+ - description: Details of the account to update.
+ in: body
+ name: body
+ required: true
+ schema:
+ $ref: '#/definitions/AccountUpdateReq'
+ produces:
+ - application/json
+ responses:
+ '200':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/AccountInfo'
+ '400':
+ description: Error in input data format.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Updates attributes of the account.
+ tags:
+ - Account - profile
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/accounts/me/notifications:
+ get:
+ description: Retrieve an array of email notification logs.
+ operationId: getNofificationEntries
+ parameters:
+ - default: 50
+ description: The number of results to return (2-1000). Default 50.
+ format: int32
+ in: query
+ name: limit
+ required: false
+ type: integer
+ - description: The entity ID to retrieve after the given one.
+ in: query
+ name: after
+ required: false
+ type: string
+ - default: ASC
+ description: 'Record order based on creation. Acceptable values: ASC, DESC.
+ Default: ASC.'
+ in: query
+ name: order
+ required: false
+ type: string
+ produces:
+ - application/json
+ responses:
+ '200':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/NotificationEntryList'
+ '400':
+ description: Error in input data, or missing or invalid parameters.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Get logs of email notifications.
+ tags:
+ - Account - email notification logs
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/accounts/me/notifications/{notification_id}:
+ get:
+ description: Retrieve an email notification log entry.
+ operationId: getNofificationEntry
+ parameters:
+ - description: The ID of the log entry to be retrieved.
+ in: path
+ name: notification_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ '200':
+ description: successful operation
+ schema:
+ $ref: '#/definitions/NotificationEntry'
+ '400':
+ description: Error in input data, missing or invalid parameters.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: No entry found for the given ID.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Get an email notification.
+ tags:
+ - Account - email notification logs
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/accounts/{account_id}:
+ get:
+ description: 'Retrieve detailed information about an account.
+
+ Note: This endpoint is restricted to administrators.
+
+
+ **Example:**
+
+
+ ```
+
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id} \
+
+ -H ''Authorization: Bearer ''
+
+ ```'
+ operationId: getAccountInfo
+ parameters:
+ - description: The ID of the account to retrieve.
+ in: path
+ name: account_id
+ required: true
+ type: string
+ - description: 'Comma-separated additional data to return. Currently supported:
+ limits, policies, sub_accounts, history.'
+ in: query
+ name: include
+ required: false
+ type: string
+ - description: Property name to return from account-specific properties.
+ in: query
+ name: properties
+ required: false
+ type: string
+ produces:
+ - application/json
+ responses:
+ '200':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/AccountInfo'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: Account with the given ID not found.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Get account information.
+ tags:
+ - Tenant accounts - accounts
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ put:
+ consumes:
+ - application/json
+ description: 'Update an account.
+
+ Note: This endpoint is restricted to administrators.
+
+
+ **Example:**
+
+
+ ```
+
+ curl -X PUT https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id} \
+
+ -H ''Authorization: Bearer '' \
+
+ -H ''content-type: application/json'' \
+
+ -d ''{"phone_number": "12345678"}''
+
+ ```'
+ operationId: updateAccount
+ parameters:
+ - description: The ID of the account to update.
+ in: path
+ name: account_id
+ required: true
+ type: string
+ - description: Details of the account to update.
+ in: body
+ name: body
+ required: true
+ schema:
+ $ref: '#/definitions/AccountUpdateRootReq'
+ produces:
+ - application/json
+ responses:
+ '200':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/AccountInfo'
+ '400':
+ description: Error in input data format.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: Account with the given ID not found.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '409':
+ description: Account with the specified new alias exists already.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Update attributes of an existing account.
+ tags:
+ - Tenant accounts - accounts
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/accounts/{account_id}/access-keys:
+ get:
+ description: 'Retrieve an array of access keys.
+
+ Note: This endpoint is restricted to administrators.
+
+
+ **Example:**
+
+ ```
+
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/access-keys
+ \
+
+ -H ''Authorization: Bearer ''
+
+ ```'
+ operationId: getAllAccountAccessKeys
+ parameters:
+ - description: The ID of the account to retrieve.
+ in: path
+ name: account_id
+ required: true
+ type: string
+ - default: 50
+ description: The number of results to return (2-1000). Default 50.
+ format: int32
+ in: query
+ name: limit
+ required: false
+ type: integer
+ - description: The entity ID to retrieve after the given one.
+ in: query
+ name: after
+ required: false
+ type: string
+ - default: ASC
+ description: 'Record order based on creation. Acceptable values: ASC, DESC.
+ Default: ASC.'
+ in: query
+ name: order
+ required: false
+ type: string
+ - description: 'Comma-separated additional data to return. Currently supported:
+ total_count.'
+ in: query
+ name: include
+ required: false
+ type: string
+ - description: Status filter.
+ in: query
+ name: status__eq
+ required: false
+ type: string
+ - description: Application filter.
+ in: query
+ name: application_id__eq
+ required: false
+ type: string
+ produces:
+ - application/json
+ responses:
+ '200':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/AccessKeyList'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: An account with the specified ID does not exist.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Get all access keys.
+ tags:
+ - Tenant accounts - access keys
+ x-filter:
+ application_id:
+ - eq
+ status:
+ - eq
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/accounts/{account_id}/access-keys/{access_key_id}:
+ get:
+ description: 'Retrieve details of an access key.
+
+ Note: This endpoint is restricted to administrators.
+
+
+ **Example:**
+
+ ```
+
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/access-keys/{access_key_id}
+ \
+
+ -H ''Authorization: Bearer ''
+
+ ```'
+ operationId: getAccountAccessKey
+ parameters:
+ - description: The ID of the account to retrieve.
+ in: path
+ name: account_id
+ required: true
+ type: string
+ - description: The ID of the access key to retrieve.
+ in: path
+ name: access_key_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ '200':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/AccessKey'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: An account or access key with the specified ID does not exist.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Get access key.
+ tags:
+ - Tenant accounts - access keys
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/accounts/{account_id}/api-keys:
+ get:
+ deprecated: true
+ description: 'Retrieve an array of API keys, optionally filtered by the owner.
+
+ Note: This endpoint is restricted to administrators.
+
+
+ **Example:**
+
+ ```
+
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys
+ \
+
+ -H ''Authorization: Bearer ''
+
+ ```'
+ operationId: getAllAccountApiKeys
+ parameters:
+ - description: Account ID.
+ in: path
+ name: account_id
+ required: true
+ type: string
+ - default: 50
+ description: The number of results to return (2-1000). Default 50.
+ format: int32
+ in: query
+ name: limit
+ required: false
+ type: integer
+ - description: The entity ID to retrieve after the given one.
+ in: query
+ name: after
+ required: false
+ type: string
+ - default: ASC
+ description: 'Record order based on creation. Acceptable values: ASC, DESC.
+ Default: ASC.'
+ in: query
+ name: order
+ required: false
+ type: string
+ - description: 'Comma-separated additional data to return. Currently supported:
+ total_count.'
+ in: query
+ name: include
+ required: false
+ type: string
+ - description: API key filter. Do not include the private portion of the API
+ key (the last 32 characters).
+ in: query
+ name: key__eq
+ required: false
+ type: string
+ - description: Owner name filter.
+ in: query
+ name: owner__eq
+ required: false
+ type: string
+ produces:
+ - application/json
+ responses:
+ '200':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/ApiKeyInfoRespList'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: An account with the given ID does not exist.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Get all API keys.
+ tags:
+ - Tenant accounts - API keys
+ x-deprecation:
+ comment: This endpoint is deprecated. Use GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/applications/{application_id}/access-keys
+ end_of_life_at: '2021-08-01T00:00:00+00:00'
+ issued_at: '2020-08-01T00:00:00+00:00'
+ links: []
+ x-filter:
+ key:
+ - eq
+ owner:
+ - eq
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ post:
+ consumes:
+ - application/json
+ deprecated: true
+ description: 'Create a new API key. There is no default value for the owner
+ ID, and it must be from the same account where the new API key is created.
+
+ Note: This endpoint is restricted to administrators.
+
+
+ **Example:**
+
+ ```
+
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys
+ \
+
+ -H ''Authorization: Bearer '' \
+
+ -H ''content-type: application/json'' \
+
+ -d ''{"name": "MyKey1"}''
+
+ ```'
+ operationId: createAccountApiKey
+ parameters:
+ - description: Account ID.
+ in: path
+ name: account_id
+ required: true
+ type: string
+ - description: Details of the API key to create.
+ in: body
+ name: body
+ required: true
+ schema:
+ $ref: '#/definitions/ApiKeyInfoReq'
+ produces:
+ - application/json
+ responses:
+ '201':
+ description: New entity created.
+ schema:
+ $ref: '#/definitions/ApiKeyInfoResp'
+ '400':
+ description: Error in input data, for example, missing API key name.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: An account with the given ID does not exist.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Create a new API key.
+ tags:
+ - Tenant accounts - API keys
+ x-deprecation:
+ comment: This endpoint is deprecated. Use POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/applications/{application_id}/access-keys
+ end_of_life_at: '2021-08-01T00:00:00+00:00'
+ issued_at: '2020-08-01T00:00:00+00:00'
+ links: []
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/accounts/{account_id}/api-keys/{apikey_id}:
+ delete:
+ deprecated: true
+ description: 'Delete an API key.
+
+ Note: This endpoint is restricted to administrators.
+
+
+ **Example:**
+
+ ```
+
+ curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys/{apikey_id}
+ \
+
+ -H ''Authorization: Bearer ''
+
+ ```'
+ operationId: deleteAccountApiKey
+ parameters:
+ - description: Account ID.
+ in: path
+ name: account_id
+ required: true
+ type: string
+ - description: The ID of the API key to delete.
+ in: path
+ name: apikey_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ '204':
+ description: Deleted successfully.
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: An account or API key with the specified ID does not exist.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Delete the API key.
+ tags:
+ - Tenant accounts - API keys
+ x-deprecation:
+ comment: This endpoint is deprecated. Use DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/applications/{application_id}/access-keys/{access_key_id}
+ end_of_life_at: '2021-08-01T00:00:00+00:00'
+ issued_at: '2020-08-01T00:00:00+00:00'
+ links: []
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ get:
+ deprecated: true
+ description: "Retrieve details of an API key.\nNote: This endpoint is\
+ \ restricted to administrators.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys/{apikey_id}\
+ \ \\\n -H 'Authorization: Bearer '\n```"
+ operationId: getAccountApiKey
+ parameters:
+ - description: Account ID.
+ in: path
+ name: account_id
+ required: true
+ type: string
+ - description: The ID of the API key to retrieve.
+ in: path
+ name: apikey_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ '200':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/ApiKeyInfoResp'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: An account or API key with the specified ID does not exist.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Get API key details.
+ tags:
+ - Tenant accounts - API keys
+ x-deprecation:
+ comment: This endpoint is deprecated. Use GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/applications/{application_id}/access-keys/{access_key_id}
+ end_of_life_at: '2021-08-01T00:00:00+00:00'
+ issued_at: '2020-08-01T00:00:00+00:00'
+ links: []
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ put:
+ deprecated: true
+ description: 'Update API key details.
- the queue are delivered in the order of insertion, one at a time, and not
- concurrently.
+ Note: This endpoint is restricted to administrators.
- One delivery attempt consist from protocol specific retrasmission logic, where
- is multiple trasmissions. In case
+ **Example:**
- of CoAP, the retrasmissions exponential backoff 2, 4, 8, 16 to 64 seconds,
- taking total over 2 minutes.
+ ```
- If the device does not respond within this two-minute period, delivery fails,
- and the request is put back
+ curl -X PUT https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys/{apikey_id}
+ \
- in the queue so long as the retry count is less than its maximum.
+ -H ''Authorization: Bearer '' \
+ -H ''content-type: application/json'' \
- For a queue-mode device, the request delivery is not attempted immediately,
- but only when the device next time
+ -d ''{"name": "TestApiKey25"}''
- contacts the server.
+ ```'
+ operationId: updateAccountApiKey
+ parameters:
+ - description: Account ID.
+ in: path
+ name: account_id
+ required: true
+ type: string
+ - description: The ID of the API key to update.
+ in: path
+ name: apikey_id
+ required: true
+ type: string
+ - description: New API key attributes to be stored.
+ in: body
+ name: body
+ required: true
+ schema:
+ $ref: '#/definitions/ApiKeyUpdateReq'
+ produces:
+ - application/json
+ responses:
+ '200':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/ApiKeyInfoResp'
+ '400':
+ description: Error in input data, for example, invalid API key name.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: An account ID or API key with the specified ID does not exist.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Update API key details.
+ tags:
+ - Tenant accounts - API keys
+ x-deprecation:
+ comment: This endpoint is deprecated. Use PUT https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/applications/{application_id}/access-keys/{access_key_id}
+ end_of_life_at: '2021-08-01T00:00:00+00:00'
+ issued_at: '2020-08-01T00:00:00+00:00'
+ links: []
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/accounts/{account_id}/api-keys/{apikey_id}/groups:
+ delete:
+ consumes:
+ - application/json
+ deprecated: true
+ description: 'Remove API key from groups.
+ Note: This endpoint is restricted to administrators.
- If retries are exhausted or the expiry time has passed, then the server discards
- the request and sends an error
- in **AsyncIDResponse**. The retries could be exhausted, for example, if the
- device periodically contacts
+ **Example:**
- the server and receives the request from the queue, but then fails to respond
- back to the server.
+ ```
+ curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys/{apikey_id}/groups
+ \
- On the other hand, the device might lose its network connectivity, and the
- requests in the queue might expire
+ -H ''Authorization: Bearer '' \
- and get discarded before the device regains the connectivity.
+ -H ''content-type: application/json'' \
+ -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]''
- See also /v2/endpoints/{device-id}/{resourcePath}.
+ ```'
+ operationId: removeAccountApiKeyFromGroups
+ parameters:
+ - description: Account ID.
+ in: path
+ name: account_id
+ required: true
+ type: string
+ - description: The ID of the API key to remove from the group.
+ in: path
+ name: apikey_id
+ required: true
+ type: string
+ - description: A list of IDs of the groups to update.
+ in: body
+ name: body
+ required: true
+ schema:
+ items:
+ type: string
+ type: array
+ produces:
+ - application/json
+ responses:
+ '200':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/ApiKeyInfoResp'
+ '400':
+ description: Error in input data.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: An account or API key with the specified ID does not exist.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Remove API key from groups.
+ tags:
+ - Tenant accounts - API keys
+ x-deprecation:
+ comment: This endpoint is deprecated. Use POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys/{apikey_id}/groups/remove/
+ end_of_life_at: '2020-07-11T11:04:57+00:00'
+ issued_at: '2019-07-11T11:04:57+00:00'
+ links: []
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ get:
+ deprecated: true
+ description: 'Retrieve an array of policy groups associated with an API key.
+ Note: This endpoint is restricted to administrators.
- You can write [Notification Rules](../connecting/resource-change-webapp.html#notification-rules)
- for a
- resource with PUT command. Please see example of the payload below.
+ **Example:**
```
- { "method": "PUT", "uri": "/5/0/1?lt=10>=60&pmax=120" }
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys/{apikey_id}/groups
+ \
- ```
+ -H ''Authorization: Bearer ''
+ ```'
+ operationId: getGroupsOfAccountApikey
+ parameters:
+ - default: 50
+ description: The number of results to return (2-1000). Default 50.
+ format: int32
+ in: query
+ name: limit
+ required: false
+ type: integer
+ - description: The entity ID to retrieve after the given one.
+ in: query
+ name: after
+ required: false
+ type: string
+ - default: ASC
+ description: 'Record order based on creation. Acceptable values: ASC, DESC.
+ Default: ASC.'
+ in: query
+ name: order
+ required: false
+ type: string
+ - description: 'Comma-separated additional data to return. Currently supported:
+ total_count.'
+ in: query
+ name: include
+ required: false
+ type: string
+ - description: Account ID.
+ in: path
+ name: account_id
+ required: true
+ type: string
+ - description: The ID of the API key.
+ in: path
+ name: apikey_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ '200':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/GroupSummaryList'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: An account or API key with the specified ID does not exist.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Get policy groups of an API key.
+ tags:
+ - Tenant accounts - API keys
+ x-deprecation:
+ comment: This endpoint is deprecated. Use GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/applications/{application_id}/groups
+ end_of_life_at: '2021-08-01T00:00:00+00:00'
+ issued_at: '2020-08-01T00:00:00+00:00'
+ links: []
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ post:
+ consumes:
+ - application/json
+ deprecated: true
+ description: 'Add API key to groups.
- POST `method` can be used to either execute or create resource on a LWM2M
- supporting device. When creating
+ Note: This endpoint is restricted to administrators.
- a resource, `uri` must refer to an object, and `payload-b64` must be in LWM2M
- TLV format, as in
- the following example.
+ **Example:**
```
- { "method": "POST", "uri": "/123", "content-type": "application/vnd.oma.lwm2m+tlv",
- "payload-b64": "BwHFAnZhbHVl" }
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys/{apikey_id}/groups
+ \
- ```
+ -H ''Authorization: Bearer '' \
+ -H ''content-type: application/json'' \
- ```
+ -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]''
+
+ ```'
+ operationId: addAccountApiKeyToGroups
+ parameters:
+ - description: Account ID.
+ in: path
+ name: account_id
+ required: true
+ type: string
+ - description: The ID of the API key to add to the group.
+ in: path
+ name: apikey_id
+ required: true
+ type: string
+ - description: A list of IDs of groups to update.
+ in: body
+ name: body
+ required: true
+ schema:
+ items:
+ type: string
+ type: array
+ produces:
+ - application/json
+ responses:
+ '200':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/ApiKeyInfoResp'
+ '400':
+ description: Error in input data.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: An account or API key with the specified ID does not exist.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '409':
+ description: The API key is a member of the group already.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Add API key to a list of groups.
+ tags:
+ - Tenant accounts - API keys
+ x-deprecation:
+ comment: This endpoint is deprecated. Use POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys/{apikey_id}/groups/add/
+ end_of_life_at: '2020-07-11T11:04:57+00:00'
+ issued_at: '2019-07-11T11:04:57+00:00'
+ links: []
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/accounts/{account_id}/api-keys/{apikey_id}/groups/add:
+ post:
+ consumes:
+ - application/json
+ deprecated: true
+ description: 'Add an API key to groups.
- Example URIs:
+ Note: This endpoint is restricted to administrators.
- POST /v2/device-requests/015f2fa34d310000000000010030036c?async-id=123e4567-e89b-12d3-a456-426655440000
- POST /v2/device-requests/015f2fa34d310000000000010030036c?async-id=123e4567-e89b-12d3-a456-426655440000&retry=2&expiry-seconds=7200
+ **Example:**
+
+ ```
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys/{apikey_id}/groups/add
+ \
- Example payload to read value from resource /5/0/1:
+ -H ''Authorization: Bearer '' \
- { "method": "GET", "uri": "/5/0/1" }
+ -H ''content-type: application/json'' \
+ -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]''
- Example payload to set notification rules for resource /5/0/1:
+ ```'
+ operationId: addAccountApiKeyToListedGroups
+ parameters:
+ - description: The ID of the Account.
+ in: path
+ name: account_id
+ required: true
+ type: string
+ - description: The ID of the API key to add to the group.
+ in: path
+ name: apikey_id
+ required: true
+ type: string
+ - description: A list of IDs of groups to update.
+ in: body
+ name: body
+ required: true
+ schema:
+ $ref: '#/definitions/GroupIdList'
+ produces:
+ - application/json
+ responses:
+ '200':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/ApiKeyInfoResp'
+ '400':
+ description: Error in input data.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: An account or API key with the specified ID does not exist.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '409':
+ description: The API key is a member of the group already.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Add API key to a list of groups.
+ tags:
+ - Tenant accounts - API keys
+ x-deprecation:
+ comment: This endpoint is deprecated. Use GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/applications/{application_id}/access-keys/groups/add
+ end_of_life_at: '2021-08-01T00:00:00+00:00'
+ issued_at: '2020-08-01T00:00:00+00:00'
+ links: []
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/accounts/{account_id}/api-keys/{apikey_id}/groups/remove:
+ post:
+ consumes:
+ - application/json
+ deprecated: true
+ description: 'Remove an API key from groups.
- { "method": "PUT", "uri": "/5/0/1?lt=10>=60&pmax=120" }
+ Note: This endpoint is restricted to administrators.
- Example payload to write value "value1" to resource /5/0/1:
+ **Example:**
- { "method": "PUT", "uri": "/5/0/1%20?k1=v1&k2=v2%22", "accept": "text/plain",
- "content-type": "text/plain", "payload-b64": "dmFsdWUxCg==" }
+ ```
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys/{apikey_id}/groups/remove
+ \
- Example payload to execute LWM2M resource /123/1/1:
+ -H ''Authorization: Bearer '' \
- { "method": "POST", "uri": "/123/1/1" }
+ -H ''content-type: application/json'' \
+ -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]''
- Immediate response:
+ ```'
+ operationId: removeAccountApiKeyFromListedGroups
+ parameters:
+ - description: The ID of the account.
+ in: path
+ name: account_id
+ required: true
+ type: string
+ - description: The ID of the API key to remove from the group.
+ in: path
+ name: apikey_id
+ required: true
+ type: string
+ - description: A list of IDs of the groups to update.
+ in: body
+ name: body
+ required: true
+ schema:
+ $ref: '#/definitions/GroupIdList'
+ produces:
+ - application/json
+ responses:
+ '200':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/ApiKeyInfoResp'
+ '400':
+ description: Error in input data.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: An account or API key with the specified ID does not exist.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Remove API key from groups.
+ tags:
+ - Tenant accounts - API keys
+ x-deprecation:
+ comment: This endpoint is deprecated. Use GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/applications/{application_id}/groups/remove
+ end_of_life_at: '2021-08-01T00:00:00+00:00'
+ issued_at: '2020-08-01T00:00:00+00:00'
+ links: []
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/accounts/{account_id}/api-keys/{apikey_id}/reset-secret:
+ post:
+ deprecated: true
+ description: 'Reset the secret key of the API key.
- 202 Accepted
+ Note: This endpoint is restricted to administrators.
- Examples of AsyncIDResponse, delivered via the notification channel:
+ **Example:**
- { "async-responses": [ { "id": "123e4567-e89b-12d3-a456-426655440000", "status":
- 200, "payload": "dmFsdWUxCg==", "ct": "text/plain", "max-age": 600 } ] }
+ ```
- { "async-responses": [ { "id": "123e4567-e89b-12d3-a456-426655440000", "status":
- 504, "error": "TIMEOUT" } ] }
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys/{apikey_id}/reset-secret
+ \
- ```
+ -H ''Authorization: Bearer ''
- '
- operationId: createAsyncRequest
+ ```'
+ operationId: resetAccountApiKeySecret
parameters:
- - description: The device ID generated by Device Management.
- format: uuid, 32 hexadecimal characters
+ - description: Account ID.
in: path
- name: device-id
+ name: account_id
required: true
type: string
- - description: The client-generated ID for matching the correct response delivered
- by notification.
- format: 1-40 alphanumeric characters and dashes.
- in: query
- name: async-id
- pattern: ^[\w\-]{1,40}$
+ - description: The ID of the API key to reset.
+ in: path
+ name: apikey_id
required: true
type: string
- - description: The count of retry transmissions of the request to the device,
- after initial transmission. For example, retry of two means three delivery
- attempts in total. If retries are exhausted, the request is discarded and
- an error is delivered in the AsyncIDResponse. Default value of retry is
- 0 for a non-queue-mode device and 2 for a queue-mode device.
- in: query
- maximum: 10
- minimum: 0
- name: retry
- required: false
- type: integer
- - description: The time period during which the delivery is attempted, in seconds.
- If the device is not reachable within this period, the request is discarded
- and an error is delivered in the AsyncIDResponse. Default value of expiry-seconds
- is 2 hours for a non-queue-mode device and 3 days for a queue-mode device.
- in: query
- maximum: 2592000
- minimum: 60
- name: expiry-seconds
- required: false
- type: integer
- - description: Device request to send.
+ - description: New API key attributes to be stored.
in: body
name: body
- required: true
+ required: false
schema:
- $ref: '#/definitions/DeviceRequest'
+ $ref: '#/definitions/ApiKeyUpdateReq'
produces:
- application/json
responses:
- 202:
- description: Accepted.
- 400:
- description: Bad request. Contains one of the errors RESOURCE_NOT_FOUND,
- DEVICE_NOT_CONNECTED, MALFORMED_JSON_CONTENT, MALFORMED_ASYNC_ID and QUEUE_IS_FULL
+ '200':
+ description: Successful operation.
schema:
- type: string
- 401:
+ $ref: '#/definitions/ApiKeyInfoResp'
+ '400':
+ description: Error in input data format.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '401':
description: Authentication failure.
- 404:
- description: "Contains one of the following errors:\n\n \n\
- \ \n | Error message | \n Description | \n\
- \
\n \n \n \n | DEVICE_NOT_FOUND | \n\
- \ Device is not in Device reqistry. Either device has requestd\
- \ register delete or device has not connected in time and expired. | \n\
- \
\n \n | URI_PATH_DOES_NOT_EXISTS | \n\
- \ The device does not have requested resource. Check the resource\
- \ path is correct. | \n
\n \n
"
schema:
- type: string
- summary: Send an async request to device
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: An account or API key with the specified ID does not exist.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Reset the secret key.
tags:
- - DeviceRequests
- x-origin: /home/circleci/project/device-server/public/swagger.yaml
- /v2/device-shared-keys:
+ - Tenant accounts - API keys
+ x-deprecation:
+ comment: This endpoint is deprecated.
+ end_of_life_at: '2021-08-01T00:00:00+00:00'
+ issued_at: '2020-08-01T00:00:00+00:00'
+ links: []
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/accounts/{account_id}/applications:
get:
- consumes:
- - application/json
- description: 'Retrieve pre-shared keys (PSKs) with pagination. Default page
- size of 50 entries.
+ description: 'Retrieve an array of applications.
+ Note: This endpoint is restricted to administrators.
- **Example:**
+ **Example:**
```
- curl -X GET https://api.us-east-1.mbedcloud.com/v2/device-shared-keys \
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/applications
+ \
- -H "Authorization: Bearer "
+ -H ''Authorization: Bearer ''
```'
- operationId: listPreSharedKeys
+ operationId: getAllAccountApplications
parameters:
- - description: The number of entries per page.
+ - description: The ID of the account to retrieve.
+ in: path
+ name: account_id
+ required: true
+ type: string
+ - default: 50
+ description: The number of results to return (2-1000). Default 50.
+ format: int32
in: query
name: limit
required: false
type: integer
- - description: An offset token for fetching a specific page. Provided by the
- server.
+ - description: The entity ID to retrieve after the given one.
in: query
name: after
required: false
type: string
+ - default: ASC
+ description: 'Record order based on creation. Acceptable values: ASC, DESC.
+ Default: ASC.'
+ in: query
+ name: order
+ required: false
+ type: string
+ - description: 'Comma-separated additional data to return. Currently supported:
+ total_count.'
+ in: query
+ name: include
+ required: false
+ type: string
+ - description: Status filter.
+ in: query
+ name: status__eq
+ required: false
+ type: string
produces:
- application/json
responses:
- 200:
- description: List of PSKs.
+ '200':
+ description: Successful operation.
schema:
- $ref: '#/definitions/ListOfPreSharedKeysWithoutSecret'
- 400:
- description: Bad request. Contains the error as a string, either TOKEN_NOT_FOUND
- or INVALID_LIMIT.
- summary: List PSKs.
+ $ref: '#/definitions/ApplicationList'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: An account with the specified ID does not exist.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Get all applications.
tags:
- - PreSharedKeys
- x-origin: /home/circleci/project/connector-bootstrap/public/swagger.yaml
- post:
- consumes:
- - application/json
- description: "Upload a PSK for an endpoint to allow it to bootstrap. The existing\
- \ key cannot be overwritten, but needs\nto be deleted first in the case of\
- \ re-setting a PSK for an endpoint.\n\n**Note**: The PSK APIs are available\
- \ only to accounts that have this feature enabled.\n\n**Example:**\n```\n\
- curl -X POST https://api.us-east-1.mbedcloud.com/v2/device-shared-keys \\\n\
- -H \"Authorization: Bearer \" \\\n-H \"content-type: application/json\"\
- \ \\\n -d '{ \"endpoint_name\": \"my-endpoint-0001\", \"secret_hex\"\
- : \"4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a\" }'\n```"
- operationId: uploadPreSharedKey
+ - Tenant accounts - applications
+ x-filter:
+ status:
+ - eq
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ post:
+ consumes:
+ - application/json
+ description: 'Create a new application.
+
+ Note: This endpoint is restricted to administrators.
+
+
+ **Example:**
+
+ ```
+
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/applications
+ -d ''{"name": "MyApplication1"}'' \
+
+ -H ''Authorization: Bearer '' \
+
+ -H ''content-type: application/json''
+
+ ```'
+ operationId: createAccountApplication
parameters:
- - description: PSK to upload.
+ - description: The ID of the account to retrieve.
+ in: path
+ name: account_id
+ required: true
+ type: string
+ - description: The details of the application to create.
in: body
name: body
required: true
schema:
- $ref: '#/definitions/PreSharedKey'
+ $ref: '#/definitions/Application'
produces:
- application/json
responses:
- 201:
- description: Successfully created.
- 400:
- description: Bad request. Contains comma-separated errors INVALID_ENDPOINT_NAME,
- INVALID_SECRET_HEX, and MALFORMED_JSON_CONTENT.
+ '201':
+ description: New entity created.
schema:
- type: string
- 401:
+ $ref: '#/definitions/Application'
+ '400':
+ description: Error in input data, for example, missing name.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '401':
description: Authentication failure.
- 403:
- description: Forbidden. You need to read and accept the PSK license in Device
- Management Portal.
- 409:
- description: Conflict. The PSK for the endpoint already exists and cannot
- be overwritten. Contains error KEY_ALREADY_EXISTS_FOR_ENDPOINT.
schema:
- type: string
- summary: Upload a PSK to Pelion Device Management.
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: An account with the specified ID does not exist.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Create a new application.
tags:
- - PreSharedKeys
- x-origin: /home/circleci/project/connector-bootstrap/public/swagger.yaml
- /v2/device-shared-keys/{endpoint_name}:
+ - Tenant accounts - applications
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/accounts/{account_id}/applications/{application_id}:
delete:
- description: 'Remove a PSK.
+ description: 'Delete the application.
+ Note: This endpoint is restricted to administrators.
- **Example:**
+ **Example:**
```
- curl -X DELETE https://api.us-east-1.mbedcloud.com/v2/device-shared-keys/my-endpoint-0001
+ curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/applications/{application_id}
\
- -H "Authorization: Bearer "
+ -H ''Authorization: Bearer ''
```'
- operationId: deletePreSharedKey
+ operationId: deleteAccountApplication
parameters:
- - description: The unique endpoint identifier that this PSK applies to. [Reserved
- characters](https://en.wikipedia.org/wiki/Percent-encoding#Percent-encoding_reserved_characters)
- must be percent-encoded.
+ - description: The ID of the account to retrieve.
in: path
- name: endpoint_name
+ name: account_id
+ required: true
+ type: string
+ - description: The ID of the application to delete.
+ in: path
+ name: application_id
required: true
type: string
+ produces:
+ - application/json
responses:
- 204:
- description: Successfully deleted. Responds even if the endpoint does not
- have an associated PSK.
- 400:
- description: Bad request. Endpoint name validation failed. Contains error
- INVALID_ENDPOINT_NAME.
- schema:
- type: string
- 401:
+ '204':
+ description: Deleted successfully.
+ '401':
description: Authentication failure.
- summary: Remove a PSK.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: An account or application with the specified ID does not exist.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Delete application.
tags:
- - PreSharedKeys
- x-origin: /home/circleci/project/connector-bootstrap/public/swagger.yaml
+ - Tenant accounts - applications
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
get:
- description: 'Check if a PSK for an endpoint exists or not. The response does
- not contain the secret itself.
+ description: 'Retrieve details of an application.
+ Note: This endpoint is restricted to administrators.
- **Example:**
+ **Example:**
```
- curl -X GET https://api.us-east-1.mbedcloud.com/v2/device-shared-keys/my-endpoint-0001
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/applications/{application_id}
\
- -H "Authorization: Bearer "
+ -H ''Authorization: Bearer ''
```'
- operationId: getPreSharedKey
+ operationId: getAccountApplication
parameters:
- - description: The unique endpoint identifier that this PSK applies to. [Reserved
- characters](https://en.wikipedia.org/wiki/Percent-encoding#Percent-encoding_reserved_characters)
- must be percent-encoded.
+ - description: The ID of the account to retrieve.
in: path
- name: endpoint_name
+ name: account_id
+ required: true
+ type: string
+ - description: The ID of the application to retrieve.
+ in: path
+ name: application_id
required: true
type: string
+ produces:
+ - application/json
responses:
- 200:
- description: Pre-shared key for the device (does not contain secret).
- schema:
- $ref: '#/definitions/PreSharedKeyWithoutSecret'
- 400:
- description: Bad request. Endpoint name validation failed. Contains error
- INVALID_ENDPOINT_NAME.
+ '200':
+ description: Successful operation.
schema:
- type: string
- 401:
+ $ref: '#/definitions/Application'
+ '401':
description: Authentication failure.
- 404:
- description: The PSK does not exist.
- summary: Get a PSK.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: An account or application with the specified ID does not exist.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Get application.
tags:
- - PreSharedKeys
- x-origin: /home/circleci/project/connector-bootstrap/public/swagger.yaml
- /v2/endpoints/{device-id}:
- get:
- description: 'Retrieves resources cached by Device Management Connect. This
- call does not formulate a message to the device.
+ - Tenant accounts - applications
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ put:
+ description: 'Update application details.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
- ```
+ `curl -X PUT https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/applications/{application_id}
+ \
- curl -X GET https://api.us-east-1.mbedcloud.com/v2/endpoints/{device-id} \
+ -H ''Authorization: Bearer '' \
- -H ''Authorization: Bearer ''
+ -H ''content-type: application/json'' \
+
+ -d ''{"name": "TestApplication25"}''
```'
- operationId: getEndpointResources
+ operationId: updateAccountApplication
parameters:
- - description: A unique device ID for an endpoint. The ID must be an exact match.
- Do not use wildcards.
+ - description: The ID of the account to retrieve.
in: path
- name: device-id
+ name: account_id
+ required: true
+ type: string
+ - description: The ID of the application to update.
+ in: path
+ name: application_id
required: true
type: string
+ - description: New applicationattributes to store.
+ in: body
+ name: body
+ required: true
+ schema:
+ $ref: '#/definitions/Application'
produces:
- application/json
responses:
- 200:
- description: Successful response with an array of resources.
+ '200':
+ description: Successful operation.
schema:
- items:
- $ref: '#/definitions/Resource'
- type: array
- 404:
- description: Endpoint not found.
- summary: List the resources on an endpoint.
+ $ref: '#/definitions/ApiKeyInfoResp'
+ '400':
+ description: Error in input data, for example, invalid display name.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: An account or application with the specified ID does not exist.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Update application details.
tags:
- - Endpoints
- x-origin: /home/circleci/project/device-server/public/swagger.yaml
- /v2/endpoints/{device-id}/{resourcePath}:
- delete:
- description: 'A request to delete a resource path must be handled by both Device
- Management Client and Device Management
-
- Connect.
-
+ - Tenant accounts - applications
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/accounts/{account_id}/applications/{application_id}/access-keys:
+ get:
+ description: 'Retrieve an array of access keys associated with the application.
- All resource APIs are asynchronous. These APIs respond only if the device
- is on and connected to Device Management Connect, and there is an active notification
- channel.
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X DELETE https://api.us-east-1.mbedcloud.com/v2/endpoints/{device-id}/{resourcePath}
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/applications/{application_id}/access-keys
\
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer ''
```'
- operationId: deleteResourcePath
+ operationId: getAllAccountApplicationAccessKeys
parameters:
- - description: A unique Device Management device ID for the endpoint. The ID
- must be an exact match. Do not use wildcards.
+ - description: The ID of the account to retrieve.
in: path
- name: device-id
+ name: account_id
required: true
type: string
- - description: The resource URL.
+ - description: The ID of the application.
in: path
- name: resourcePath
+ name: application_id
required: true
type: string
- - description: 'If you make a request with `noResp=true`, Device Management
- Connect makes a CoAP non-confirmable request to the device. Such requests
- are not guaranteed to arrive at the device, and do not return an async-response-id.
-
-
- If calls with this parameter enabled succeed, they return with the status
- code `204 No Content`. If the underlying protocol does not support non-confirmable
- requests, or if the endpoint is registered in queue mode, the response is
- status code `409 Conflict`.'
+ - default: 50
+ description: The number of results to return (2-1000). Default 50.
+ format: int32
in: query
- name: noResp
+ name: limit
required: false
- type: boolean
+ type: integer
+ - description: The entity ID to retrieve after the given one.
+ in: query
+ name: after
+ required: false
+ type: string
+ - default: ASC
+ description: 'Record order based on creation. Acceptable values: ASC, DESC.
+ Default: ASC.'
+ in: query
+ name: order
+ required: false
+ type: string
+ - description: 'Comma-separated additional data to return. Currently supported:
+ total_count.'
+ in: query
+ name: include
+ required: false
+ type: string
+ - description: Status filter.
+ in: query
+ name: status__eq
+ required: false
+ type: string
+ produces:
+ - application/json
responses:
- 202:
- description: Accepted. Returns an asynchronous response ID.
+ '200':
+ description: Successful operation.
schema:
- $ref: '#/definitions/AsyncID'
- 400:
- description: Bad request.
- 404:
- description: "Requested endpoint\u2019s resource is not found."
- 409:
- description: Conflict. If `noResp=true`, the non-confirmable request is
- not supported by the used protocol.
- 410:
- description: Gone. Endpoint not found.
- 429:
- description: 'Cannot accept the request at the moment: the queue is full.'
- 502:
- description: TCP or TLS connection to endpoint cannot be established.
- summary: Delete a resource path.
+ $ref: '#/definitions/AccessKeyList'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: An account or application with the specified ID does not exist.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Get all access keys associated with the application.
tags:
- - Resources
- x-origin: /home/circleci/project/device-server/public/swagger.yaml
- get:
- description: 'Requests the resource value either from the device or cache. If
- the value is not in the cache, the request goes all the
-
- way to the device. When the response is available, an `AsyncIDResponse` JSON
- object is received in the notification channel.
-
- The resource values can be also in cache based on `max_age` defined by the
- device side. The value found from the cache is returned
+ - Tenant accounts - applications
+ x-filter:
+ status:
+ - eq
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ post:
+ consumes:
+ - application/json
+ description: 'Create a new access key for the application.
- immediately in the response.
+ Note: This endpoint is restricted to administrators.
- The preferred way to get resource values is to use the **subscribe** and **callback**
- methods.
+ **Example:**
+ ```
- All resource APIs are asynchronous. These APIs only respond if the device
- is on and connected to Device Management.
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/applications/{application_id}/access-keys
+ -d ''{"name": "MyKey1"}'' \
+ -H ''Authorization: Bearer '' \
- See also how [resource caching](../connecting/device-guidelines.html#resource-cache)
- works.
+ -H ''content-type: application/json''
+ ```'
+ operationId: createAccountApplicationAccessKey
+ parameters:
+ - description: The ID of the account to retrieve.
+ in: path
+ name: account_id
+ required: true
+ type: string
+ - description: The ID of the application.
+ in: path
+ name: application_id
+ required: true
+ type: string
+ - description: The details of the access key to create.
+ in: body
+ name: body
+ required: true
+ schema:
+ $ref: '#/definitions/AccessKey'
+ produces:
+ - application/json
+ responses:
+ '201':
+ description: New entity created.
+ schema:
+ $ref: '#/definitions/AccessKey'
+ '400':
+ description: Error in input data, for example, missing display name.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: An account or application with the specified ID does not exist.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Create a new application access key.
+ tags:
+ - Tenant accounts - applications
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/accounts/{account_id}/applications/{application_id}/access-keys/{access_key_id}:
+ delete:
+ description: 'Delete the access key associated with the application.
- Please refer to [Lightweight Machine to Machine Technical specification](http://www.openmobilealliance.org/release/LightweightM2M/V1_0-20170208-A/OMA-TS-LightweightM2M-V1_0-20170208-A.pdf)
- for more inforamtion.
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X GET https://api.us-east-1.mbedcloud.com/v2/endpoints/{device-id}/{resourcePath}
+ curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/applications/{application_id}/access-keys/{access_key_id}
\
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer ''
```'
- operationId: getResourceValue
+ operationId: deleteAccountApplicationAccessKey
parameters:
- - description: Unique Device Management device ID for the endpoint. The ID must
- be an exact match. Do not use wildcards.
+ - description: The ID of the account to retrieve.
in: path
- name: device-id
+ name: account_id
required: true
type: string
- - description: The resource URL.
+ - description: The ID of the application.
in: path
- name: resourcePath
+ name: application_id
required: true
type: string
- - description: 'If true, the response comes only from the cache. Default: false.
- Device Management Connect caches the received resource values for the time
- of [max_age](../connecting/working-with-the-resources.html) defined in the
- client side.'
- in: query
- name: cacheOnly
- required: false
- type: boolean
- - description: 'If a request is made with `noResp=true`, Device Management Connect
- makes a CoAP non-confirmable request to the device. Such requests are not
- guaranteed to arrive on the device, and no `async-response-id` returns.
-
-
- Successful calls return with the status code `204 No Content`. If the underlying
- protocol does not support non-confirmable requests, or if the endpoint is
- registered in queue mode, the response is status code `409 Conflict`.'
- in: query
- name: noResp
- required: false
- type: boolean
+ - description: The ID of the access key to delete.
+ in: path
+ name: access_key_id
+ required: true
+ type: string
+ produces:
+ - application/json
responses:
- 200:
- description: Resource value found in cache. Returns the string value of
- the resource.
- 202:
- description: Accepted. Returns an asynchronous response ID.
+ '204':
+ description: Deleted successfully.
+ '401':
+ description: Authentication failure.
schema:
- $ref: '#/definitions/AsyncID'
- 205:
- description: No cache available for resource.
- 400:
- description: Bad request.
- 404:
- description: "Requested endpoint\u2019s resource is not found."
- 409:
- description: Conflict. If `noResp=true`, the non-confirmable request is
- not supported by the used protocol.
- 410:
- description: Gone. Endpoint not found.
- 429:
- description: 'Cannot accept the request at the moment: the queue is full.'
- 502:
- description: TCP or TLS connection to endpoint cannot be established.
- summary: Read from a resource.
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: An account, application or access key with the specified ID
+ does not exist.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Delete access key associated with the application.
tags:
- - Resources
- x-origin: /home/circleci/project/device-server/public/swagger.yaml
- post:
- consumes:
- - text/plain
- - application/xml
- - application/octet-stream
- - application/exi
- - application/json
- - application/link-format
- - application/senml+json
- - application/nanoservice-tlv
- - application/vnd.oma.lwm2m+text
- - application/vnd.oma.lwm2m+opaq
- - application/vnd.oma.lwm2m+tlv
- - application/vnd.oma.lwm2m+json
- description: '[Execute a function](../connecting/handle-resource-webapp.html#the-execute-operation)
- on an existing resource and create a new Object instance on the device. The
- resource path does not have to exist; you can set it with the call. The maximum
- length of the resource path is 255 characters.
-
-
- All resource APIs are asynchronous. These APIs respond only if the device
- is on and connected to Device Management Connect, and there is an active notification
- channel.
-
+ - Tenant accounts - applications
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ get:
+ description: 'Retrieve details of an access key associated with the application.
- Supported content types depend on the device and its resource. Device Management
- translates HTTP to the equivalent CoAP content type.
+ Note: This endpoint is restricted to administrators.
**Example:**
-
- This example resets the min and max values of the [temperature sensor](http://www.openmobilealliance.org/tech/profiles/lwm2m/3303.xml)
- instance 0 by executing Resource 5605 ''Reset Min and Max Measured Values''.
-
-
```
- curl -X POST https://api.us-east-1.mbedcloud.com/v2/endpoints/{device-id}/3303/0/5605
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/applications/{application_id}/access-keys/{access_key_id}
\
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer ''
```'
- operationId: executeOrCreateResource
+ operationId: getAccountApplicationAccessKey
parameters:
- - description: A unique Device Management device ID for the endpoint. The ID
- must be an exact match. Do not use wildcards.
+ - description: The ID of the account to retrieve.
in: path
- name: device-id
+ name: account_id
required: true
type: string
- - description: The resource URL.
+ - description: The ID of the application.
in: path
- name: resourcePath
+ name: application_id
required: true
type: string
- - description: This value is not needed. Most of the time, resources do not
- accept a function but they have their own functions predefined. You can
- use this to trigger them. If a function is included, the body of this request
- is passed as a char* to the function in Device Management Client.
- in: body
- name: resourceFunction
- required: false
- schema:
- type: string
- - description: 'If you make a request with `noResp=true`, Device Management
- Connect makes a CoAP non-confirmable request to the device. Such requests
- are not guaranteed to arrive in the device, and you do not get back an async-response-id.
-
-
- If calls with this parameter enabled succeed, they return with the status
- code `204 No Content`. If the underlying protocol does not support non-confirmable
- requests, or if the endpoint is registered in queue mode, the response is
- status code `409 Conflict`.'
- in: query
- name: noResp
- required: false
- type: boolean
+ - description: The ID of the access key to retrieve.
+ in: path
+ name: access_key_id
+ required: true
+ type: string
+ produces:
+ - application/json
responses:
- 202:
- description: Accepted. Returns an asynchronous response ID.
+ '200':
+ description: Successful operation.
schema:
- $ref: '#/definitions/AsyncID'
- 400:
- description: Bad request.
- 404:
- description: "Requested endpoint\u2019s resource not found."
- 409:
- description: Conflict. If `noResp=true`, the non-confirmable request is
- not supported by the used protocol.
- 410:
- description: Gone. Endpoint not found.
- 429:
- description: 'Cannot accept the request at the moment: the queue is full.'
- 502:
- description: TCP or TLS connection to endpoint cannot be established.
- summary: Execute a function on a Resource or create new Object instance.
+ $ref: '#/definitions/AccessKey'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: An account, application or access key with the specified ID
+ does not exist.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Get access key.
tags:
- - Resources
- x-origin: /home/circleci/project/device-server/public/swagger.yaml
+ - Tenant accounts - applications
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
put:
- consumes:
- - text/plain
- - application/xml
- - application/octet-stream
- - application/exi
- - application/json
- - application/link-format
- - application/senml+json
- - application/nanoservice-tlv
- - application/vnd.oma.lwm2m+text
- - application/vnd.oma.lwm2m+opaq
- - application/vnd.oma.lwm2m+tlv
- - application/vnd.oma.lwm2m+json
- description: 'With this API, you can [write a new value to existing Resources](../connecting/handle-resource-webapp.html)
- or use the **write** attribute to set [notification rules](../connecting/resource-change-webapp.html#notification-rules)
- for the Resources. The notification rules only work on the device client side
- and may not be supported by all clients.
-
-
- This API can also be used to transfer files to the device. Device Management
- Connect LwM2M server implements Option 1 from RFC7959. The maximum block size
- is 1024 bytes.
-
- Note block size versus transferred file size in low-quality networks. The
- customer application needs to know what type of file is transferred (for example,
- TXT)
-
- and the customer can encrypt the payload. The maximum payload size is 1048576
- bytes.
-
-
- All resource APIs are asynchronous. These APIs respond only if the device
- is on and connected to Device Management Connect, and there is an active notification
- channel.
-
+ description: 'Update access key details.
- Supported content types depend on the device and its resource. Device Management
- translates HTTP to equivalent CoAP content type.
+ Note: This endpoint is restricted to administrators.
**Example:**
-
- This example sets the alarm on a buzzer. The command writes the [Buzzer](http://www.openmobilealliance.org/tech/profiles/lwm2m/3338.xml)
- instance 0, "On/Off" boolean resource to ''1''.
-
-
- ```
-
- curl -X PUT https://api.us-east-1.mbedcloud.com/v2/endpoints/{device-id}/3338/0/5850
+ `curl -X PUT https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/applications/{application_id}/access-keys/{access_key_id}
\
- -H "content-type: text/plain" \
+ -H ''Authorization: Bearer '' \
- -H ''Authorization: Bearer '' \
+ -H ''content-type: application/json'' \
- -d ''1''
+ -d ''{"name": "TestAccessKey"}''
```'
- operationId: updateResourceValue
+ operationId: updateAccountApplicationAccessKey
parameters:
- - description: A unique Device Management device ID for the endpoint. The ID
- must be an exact match. Do not use wildcards.
+ - description: The ID of the account to retrieve.
in: path
- name: device-id
+ name: account_id
required: true
type: string
- - description: Resource URL.
+ - description: The ID of the application.
in: path
- name: resourcePath
+ name: application_id
required: true
type: string
- - description: The value to set to the resource.
+ - description: The ID of the access key to update.
+ in: path
+ name: access_key_id
+ required: true
+ type: string
+ - description: New access key attributes to store.
in: body
- name: resourceValue
+ name: body
required: true
schema:
- type: string
- - description: 'If you make a request with `noResp=true`, Device Management
- Connect makes a CoAP non-confirmable request to the device. Such requests
- are not guaranteed to arrive to the device, and do not return an `async_response_id`.
-
-
- If a call with this parameter enabled succeeds, it return status code `204
- No Content`. If the underlying protocol does not support non-confirmable
- requests, or if the endpoint is registered in queue mode, the response is
- status code `409 Conflict`.'
- in: query
- name: noResp
- required: false
- type: boolean
+ $ref: '#/definitions/AccessKey'
+ produces:
+ - application/json
responses:
- 202:
- description: Accepted. Returns an asynchronous response ID.
+ '200':
+ description: Successful operation.
schema:
- $ref: '#/definitions/AsyncID'
- 400:
- description: Bad request.
- 409:
- description: '''Conflict. If `noResp=true`, the non-confirmable request
- is not supported by the used protocol.'''
- 410:
- description: Gone. Endpoint not found.
- 429:
- description: 'Cannot accept the request at the moment: the queue is full.'
- 502:
- description: TCP or TLS connection to endpoint cannot be established.
- summary: Write to a Resource or use write-attributes (notification rules) for
- a Resource.
+ $ref: '#/definitions/AccessKey'
+ '400':
+ description: Error in input data, for example, invalid display name.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: An account, application or access key with the specified ID
+ does not exist.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Update access key details.
tags:
- - Resources
- x-origin: /home/circleci/project/device-server/public/swagger.yaml
- /v2/notification/callback:
- delete:
- description: 'Deletes the callback URL.
+ - Tenant accounts - applications
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/accounts/{account_id}/applications/{application_id}/groups:
+ get:
+ description: 'Retrieve an array of policy groups associated with an application.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X DELETE https://api.us-east-1.mbedcloud.com/v2/notification/callback
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/applications/{application_id}/groups
\
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer ''
```'
- operationId: deregisterWebhook
+ operationId: getGroupsOfAccountApplication
+ parameters:
+ - description: The ID of the account to retrieve.
+ in: path
+ name: account_id
+ required: true
+ type: string
+ - description: The ID of the application.
+ in: path
+ name: application_id
+ required: true
+ type: string
+ - default: 50
+ description: The number of results to return (2-1000). Default 50.
+ format: int32
+ in: query
+ name: limit
+ required: false
+ type: integer
+ - description: The entity ID to retrieve after the given one.
+ in: query
+ name: after
+ required: false
+ type: string
+ - default: ASC
+ description: 'Record order based on creation. Acceptable values: ASC, DESC.
+ Default: ASC.'
+ in: query
+ name: order
+ required: false
+ type: string
+ - description: 'Comma-separated additional data to return. Currently supported:
+ total_count.'
+ in: query
+ name: include
+ required: false
+ type: string
+ produces:
+ - application/json
responses:
- 204: &id018
- description: Successfully deleted.
- 401: &id016
- description: Unauthorized.
- 403: &id017
- description: Forbidden. The authorization token used is not an API key.
- 404:
- description: Callback URL does not exist.
- summary: Delete callback URL.
+ '200':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/GroupSummaryList'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: An account or application with the given ID does not exist.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Get policy groups of an application.
tags:
- - Notifications
- x-origin: /home/circleci/project/device-server/public/swagger.yaml
- get:
- description: 'Shows the current callback URL if it exists.
+ - Tenant accounts - applications
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/accounts/{account_id}/applications/{application_id}/groups/add:
+ post:
+ consumes:
+ - application/json
+ description: 'Add application to groups.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X GET https://api.us-east-1.mbedcloud.com/v2/notification/callback \
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/applications/{application_id}/groups/add
+ \
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer '' \
+
+ -H ''content-type: application/json'' \
+
+ -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]''
```'
- operationId: getWebhook
+ operationId: addAccountApplicationToGroups
+ parameters:
+ - description: The ID of the account to retrieve.
+ in: path
+ name: account_id
+ required: true
+ type: string
+ - description: The ID of the application to add to the group.
+ in: path
+ name: application_id
+ required: true
+ type: string
+ - description: A list of IDs of the groups to update.
+ in: body
+ name: body
+ required: true
+ schema:
+ $ref: '#/definitions/GroupIdList'
produces:
- application/json
responses:
- 200:
- description: URL found.
+ '204':
+ description: Successful operation.
+ '400':
+ description: Error in input data.
schema:
- $ref: '#/definitions/Webhook'
- 401: *id016
- 403: *id017
- 404:
- description: The callback URL does not exist.
- summary: Check callback URL.
+ $ref: '#/definitions/ErrorResponse'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: An account, a group or application with that ID does not exist.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '409':
+ description: The application is a member of the group already.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Add application to a list of groups.
tags:
- - Notifications
- x-origin: /home/circleci/project/device-server/public/swagger.yaml
- put:
+ - Tenant accounts - applications
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/accounts/{account_id}/applications/{application_id}/groups/remove:
+ post:
consumes:
- application/json
- description: "Register a URL to which the server delivers notifications of changes\
- \ to the subscribed resource. To push notifications, you must first place\
- \ subscriptions. The maximum length of the URL, header keys, and values, all\
- \ combined, is 400 characters. \n\nNotifications are delivered as PUT requests\
- \ to the HTTP server, which the client defines with a subscription server\
- \ message. The given URL must be accessible, and respond to the PUT request\
- \ with a response code of 200 or 204. \n\nDevice Management Connect tests\
- \ the callback URL with an empty JSON payload `{}` when the URL is registered.\
- \ Callback implementation does not support URL redirection. For more information\
- \ on notification messages, see [NotificationMessage](#NotificationMessage).\n\
- \n**Optional headers in a callback message:**\n\nYou can set optional headers\
- \ to a callback in a **Webhook** object. Device Management Connect includes\
- \ the header and key pairs in the notification messages send them to callback\
- \ URL. The callback URLs and headers are API key-specific.\n\nOne possible\
- \ use for additional headers is checking the origin of a PUT request, as well\
- \ as distinguishing the application (API key) to which the notification belongs.\n\
- \n**Note**: Only one callback URL per API key can be active. If you register\
- \ a new URL while another one is active, it replaces the active one. There\
- \ can be only one notification channel at a time. If another type of channel\
- \ is already present, you need to delete it before setting the callback URL.\n\
- \n**Expiration of a callback URL:**\n\nA callback can expire when Device Management\
- \ cannot deliver a notification due to a connection timeout or an error response\
- \ (4xx or 5xx). After each delivery failure, Device Management sets an exponential\
- \ back off time and makes a retry attempt after that. The first retry delay\
- \ is 1 second, then 2s, 4s, 8s, up to maximum delay of two minutes. The callback\
- \ URL is removed if all retries fail within 24 hours. More about [notification\
- \ sending logic](../integrate-web-app/event-notification.html#notification-sending-logic).\n\
- \n**Supported callback URL protocols:**\n\nCurrently, only HTTP and HTTPS\
- \ protocols are supported.\n\n**HTTPS callback URLs:**\n\nWhen delivering\
- \ a notification to an HTTPS based callback URL, Device Management Connect\
- \ presents a valid client certificate to identify itself. The certificate\
- \ is signed by a trusted certificate authorithy (GlobalSign) with a Common\
- \ Name (CN) set to notifications.mbedcloud.com.\n\n**Example:**\n\nThis example\
- \ command shows how to set your callback URL and API key. It also sets an\
- \ optional header authorization. When Device Management Connect calls your\
- \ callback URL, the call contains the authorization header with the defined\
- \ value.\n\n```\ncurl -X PUT https://api.us-east-1.mbedcloud.com/v2/notification/callback\
- \ \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json'\
- \ \\\n-d '{\n\"url\": \"{callback-url}\",\n\"headers\": {\"authorization\"\
- \ : \"f4b93d6e-4652-4874-82e4-41a3ced0cd56\"}\n}'\n```"
- operationId: registerWebhook
+ description: 'Remove application from groups.
+
+ Note: This endpoint is restricted to administrators.
+
+
+ **Example:**
+
+ ```
+
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/applications/{application_id}/groups/remove
+ \
+
+ -H ''Authorization: Bearer '' \
+
+ -H ''content-type: application/json'' \
+
+ -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]''
+
+ ```'
+ operationId: removeAccountApplicationFromGroups
parameters:
- - description: A JSON object that contains the optional headers and URL where
- notifications are sent.
+ - description: The ID of the account to retrieve.
+ in: path
+ name: account_id
+ required: true
+ type: string
+ - description: The ID of the application to remove from the group.
+ in: path
+ name: application_id
+ required: true
+ type: string
+ - description: A list of IDs of the groups to update.
in: body
- name: webhook
+ name: body
required: true
schema:
- $ref: '#/definitions/Webhook'
- responses:
- 204:
- description: Successfully subscribed.
- 400:
- description: Given URL is not accessible, or other type of channel already
- exists.
- 401: *id016
- 403: *id017
- 415:
- description: Unsupported Media Type.
- summary: Register a callback URL.
- tags:
- - Notifications
- x-origin: /home/circleci/project/device-server/public/swagger.yaml
- /v2/notification/channel:
- get:
- description: "Get channel delivery mechanism.\n\n**Example:**\n\n curl -X\
- \ GET https://api.us-east-1.mbedcloud.com/v2/notification/channel \\\n \
- \ -H 'Authorization: Bearer ' \\\n"
- operationId: getChannelMetadata
+ $ref: '#/definitions/GroupIdList'
+ produces:
+ - application/json
responses:
- 200:
- description: Success.
+ '204':
+ description: Successful operation.
+ '400':
+ description: Error in input data, for example, invalid group ID.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '401':
+ description: Authentication failure.
schema:
- $ref: '#/definitions/ChannelMetadata'
- 404:
- description: Channel was not found.
- summary: Get channel metadata.
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: An account or application with that ID does not exist.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Remove application from groups.
tags:
- - Notifications
- x-origin: /home/circleci/project/device-server/public/swagger.yaml
- /v2/notification/pull:
+ - Tenant accounts - applications
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/accounts/{account_id}/branding-colors:
delete:
- deprecated: true
- description: 'Delete a notification Long Poll channel. This is required to change
- the channel from Long Poll to another type. Do not make a GET `/v2/notification/pull`
- call for two minutes after deleting the channel, because it can implicitly
- recreate the pull channel. You can also have some random responses with payload
- or 410 GONE with "CHANNEL_DELETED" as a payload or 200/204 until the old channel
- is purged.
-
-
- **Example:**
+ description: 'Delete account branding colors for all themes.
- ```
+ Note: This endpoint is restricted to administrators.
- curl -X DELETE https://api.us-east-1.mbedcloud.com/v2/notification/pull \
- -H ''Authorization: Bearer ''
+ **Example usage:**
- ```'
- operationId: deleteLongPollChannel
+ `curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors
+ -H ''Authorization: Bearer ''`'
+ operationId: deleteAllAccountColors
+ parameters:
+ - description: The ID of the account.
+ in: path
+ name: account_id
+ required: true
+ type: string
+ produces:
+ - application/json
responses:
- 200:
- description: Success. The body can contain "REMOVED" if it was deleted with
- this call or "ALREADY_DELETED" if it was deleted before and not purged
- yet.
- 401: *id016
- summary: Delete notification Long Poll channel.
+ '204':
+ description: Colors have been deleted successfully.
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: Account or branding colors not found.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Delete all colors.
tags:
- - Notifications
- x-deprecation:
- comment: Long polling is deprecated and should be used for development purposes
- only.
- end_of_life_at: '2019-11-01T00:00:00+00:00'
- issued_at: '2017-02-10T15:23:00+00:00'
- links:
- - cloud.mbed.com/integrate-web-app/event-notification.html
- x-origin: /home/circleci/project/device-server/public/swagger.yaml
- get:
- deprecated: true
- description: 'In this case, notifications are delivered through HTTP long poll
- requests. The HTTP request is kept open until one or more event notifications
- are delivered to the client, or the request times out (response code 204).
- In both cases, the client should open a new polling connection after the previous
- one closes. Only a single long polling connection per API key can be ongoing
- at any given time. We recommend using a persistent connection (Connection
- keep-alive header in the request) to avoid excess TLS handshakes.
-
+ - Tenant user interface configuration - colors
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/accounts/{account_id}/branding-colors/dark:
+ delete:
+ description: 'Delete account dark theme branding colors.
- The pull channel is implicitly created by the first GET call to `/v2/notification/pull`.
- It refreshes on each GET call. If the channel is not polled for a long time
- (10 minutes), it expires and is deleted. This means that no notifications
- will stay in the queue between polls. A channel can be also be deleted explicitly
- with a DELETE call.
+ Note: This endpoint is restricted to administrators.
- **Note:** If you cannot have a public-facing callback URL, for example, when
- developing on your local machine, you can use long polling to check for new
- messages. However, **long polling is deprecated** and will likely be replaced
- in the future. It is meant only for experimentation, not commercial use. The
- proper method to receive notifications is a **notification callback**.
+ **Example usage:**
+ `curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors/dark
+ -H ''Authorization: Bearer ''`'
+ operationId: deleteAllAccountDarkColors
+ parameters:
+ - description: The ID of the account.
+ in: path
+ name: account_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ '204':
+ description: Colors have been deleted successfully.
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: Account or branding colors not found.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Delete colors in the dark theme.
+ tags:
+ - Tenant user interface configuration - colors
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ get:
+ description: 'Retrieve dark theme branding colors for an account.
- There can only be one notification channel per API key in Device Management
- Connect. If a notification channel of other type already exists for the API
- key, delete it before creating a long poll notification channel.
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X GET https://api.us-east-1.mbedcloud.com/v2/notification/pull \
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors/dark
+ \
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer ''
```'
- operationId: longPollNotifications
+ operationId: getAccountDarkColors
+ parameters:
+ - description: The ID of the account.
+ in: path
+ name: account_id
+ required: true
+ type: string
produces:
- application/json
responses:
- 200:
- description: Success.
+ '200':
+ description: Successful operation.
schema:
- $ref: '#/definitions/NotificationMessage'
- 204:
- description: No new notifications.
- 400:
- description: Other type of channel already exists.
- 401: *id016
- 409:
- description: Conflict. Long poll request exists already.
- 410:
- description: Pull channel was deleted and waiting to be purged. This code
- is a result of incorrect client behavior (delete channel and then pull),
- which can prevent the creation of a callback channel after the pull channel
- is deleted. The channel can be (randomly) recreated by this call when
- deleted and not purged. This client behaviour can set the channel in an
- undefined state for some time. The channel may respond with 410 GONE or
- 200/204 codes randomly for some time. Finally, the channel enters a valid
- "channel exists" state.
- summary: Get notifications using Long Poll
+ $ref: '#/definitions/BrandingColorList'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: Account not found.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Get dark theme branding colors.
tags:
- - Notifications
- x-deprecation:
- comment: Long polling is deprecated and should be used for development purposes
- only.
- end_of_life_at: '2019-11-01T00:00:00+00:00'
- issued_at: '2017-02-10T15:23:00+00:00'
- links:
- - cloud.mbed.com/integrate-web-app/event-notification.html
- x-origin: /home/circleci/project/device-server/public/swagger.yaml
- /v2/notification/websocket:
+ - Tenant user interface configuration - colors
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ put:
+ consumes:
+ - application/json
+ description: "Update an array of dark theme branding colors.\nNote: This\
+ \ endpoint is restricted to administrators.\n\n**Example:**\n```\ncurl -X\
+ \ PUT https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id)/branding-colors/dark\
+ \ \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json'\
+ \ \\\n'[{ \"reference\": \"primary\",\n \"color\": \"#f3f93e\" }]'\n```"
+ operationId: bulkSetAccountDarkColors
+ parameters:
+ - description: The ID of the account.
+ in: path
+ name: account_id
+ required: true
+ type: string
+ - description: List of branding colors.
+ in: body
+ name: body
+ required: true
+ schema:
+ items:
+ $ref: '#/definitions/BrandingColorUpdate'
+ type: array
+ produces:
+ - application/json
+ responses:
+ '204':
+ description: Colors have been set successfully.
+ '400':
+ description: Error in input data format.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: Account not found.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Updates an array of dark theme branding colors.
+ tags:
+ - Tenant user interface configuration - colors
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/accounts/{account_id}/branding-colors/dark/{reference}:
delete:
- description: '(PREVIEW) Delete a notification websocket channel bound to the
- API key. This is required to change the channel from websocket to another
- type.
+ description: 'Resets the branding color to its dark theme default.
+ Note: This endpoint is restricted to administrators.
- **Example:**
+ **Example:**
```
- curl -X DELETE https://api.us-east-1.mbedcloud.com/v2/notification/websocket
+ curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors/dark/{reference}
\
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer ''
```'
- operationId: deleteWebsocket
+ operationId: resetAccountDarkColor
+ parameters:
+ - description: The ID of the account.
+ in: path
+ name: account_id
+ required: true
+ type: string
+ - description: The name of the branding color.
+ enum: *id001
+ in: path
+ name: reference
+ required: true
+ type: string
+ produces:
+ - application/json
responses:
- 204: *id018
- 401: *id016
- 403: *id017
- 404:
- description: Websocket channel doesn't exist.
- summary: (PREVIEW) Delete websocket channel.
+ '204':
+ description: Deleted successfully.
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: Color or account not found.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Reset branding color to default.
tags:
- - Notifications
- x-origin: /home/circleci/project/device-server/public/swagger.yaml
+ - Tenant user interface configuration - colors
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
get:
- description: '(PREVIEW) Returns 200 with websocket connection status, if websocket
- channel exists.
+ description: 'Retrieve the requested dark theme branding color.
+ Note: This endpoint is restricted to administrators.
- **Example:**
+ **Example:**
```
- curl -X GET https://api.us-east-1.mbedcloud.com/v2/notification/websocket
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors/dark/{reference}
\
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer ''
```'
- operationId: getWebsocket
+ operationId: getAccountDarkColor
+ parameters:
+ - description: The ID of the account.
+ in: path
+ name: account_id
+ required: true
+ type: string
+ - description: The name of the branding color.
+ enum: *id001
+ in: path
+ name: reference
+ required: true
+ type: string
produces:
- application/json
responses:
- 200:
- description: Websocket found.
+ '200':
+ description: Successful operation.
schema:
- $ref: '#/definitions/WebsocketChannel'
- 401: *id016
- 403: *id017
- 404:
- description: No channel has been registered.
- summary: (PREVIEW) Get websocket channel information.
+ $ref: '#/definitions/BrandingColor'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: Color or account not found.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Get dark theme branding color.
tags:
- - Notifications
- x-origin: /home/circleci/project/device-server/public/swagger.yaml
+ - Tenant user interface configuration - colors
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
put:
consumes:
- application/json
- description: '(PREVIEW) Register (or update) a channel using websocket connection
- to deliver notifications. The websocket channel should be opened by client
- using `/v2/notification/websocket-connect` endpoint. To get notifications
- pushed, you must place subscriptions. For more information on notification
- messages, see [NotificationMessage](#NotificationMessage).
-
-
- A websocket channel can have only one active websocket connection at a time.
- If a websocket connection for a channel exists and a new connection to the
- same channel is made, the connection is accepted and the older connection
- is closed.
-
-
- **Expiration of a websocket:**
-
-
- A websocket channel is expired if the channel does not have an opened websocket
- connection for a 24-hour period. Channel expiration means the channel is deleted
- and any undelivered notifications stored in its internal queue is removed.
- As long as the channel has an opened websocket connection or time between
- successive websocket connections is less than 24 hours,
-
- the channel is considered active, notifications are stored in its internal
- queue and delivered when a websocket connection is active. A channel can be
- also deleted explicitly with a DELETE call.
-
+ description: 'Update a dark theme branding color.
- More about [notification sending logic](../integrate-web-app/event-notification.html#notification-sending-logic).
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X PUT https://api.us-east-1.mbedcloud.com/v2/notification/websocket
+ curl -X PUT https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id)/branding-colors/dark/primary
\
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer '' \
+
+ -H ''content-type: application/json'' \
+
+ -d ''{ "color": "#f3f93e" }''
```'
- operationId: registerWebsocket
- responses:
- 200:
- description: Channel successfully updated. In the current v2 implementation
- this operation has no effect, and any subsequent PUT call from a client
- previously registered to a channel results in a 200 OK response.
- schema:
- $ref: '#/definitions/WebsocketChannel'
- 201:
- description: Channel succesfully registered.
- schema:
- $ref: '#/definitions/WebsocketChannel'
- 400:
- description: Other type of channel already exists.
- 401: *id016
- 403: *id017
- summary: (PREVIEW) Register a websocket channel.
- tags:
- - Notifications
- x-origin: /home/circleci/project/device-server/public/swagger.yaml
- /v2/notification/websocket-connect:
- get:
- description: "\n(PREVIEW) A websocket channel can have only one active connection\
- \ at a time. If a websocket connection for a channel exists and a new connection\
- \ to the same channel is made, the connection is accepted and the older connection\
- \ is closed.\n\nOnce the socket has been opened, it may be closed with one\
- \ of the following status codes.\n\n\n \n \n | Code | \n\
- \ Description | \n
\n \n \n \n\
- \ | 1000 | \n Socket closed by the client. | \n\
- \
\n \n | 1001 | \n Going away. Set\
- \ when another socket opens on the used channel, the channel is deleted with\
- \ a REST call, or the server is shutting down. | \n
\n \n\
- \ | 1008 | \n Policy violation. Set when the API\
- \ key is missing or invalid. | \n
\n \n | 1011 | \n\
- \ Unexpected condition. Socket is closed with this status at an attempt\
- \ to open a socket to a nonexistent channel (without a prior PUT request).\
- \ This code is also used to indicate closing socket for any other unexpected\
- \ condition in the server. | \n
\n \n
\n\n\n**Example:**\n\
- ```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v2/notification/websocket-connect\
- \ \\\n-H \"Authorization:Bearer {apikey}\" \\\n-H \"Connection:upgrade\" \\\
- \n-H \"Upgrade:websocket\" \\\n-H \"Sec-WebSocket-Version: 13\" \\\n-H \"\
- Sec-WebSocket-Key: {base64nonce}\" \\\n-N -I\n```"
- operationId: connectWebsocket
+ operationId: setAccountDarkColor
parameters:
- - default: Upgrade
- in: header
- name: Connection
- required: true
- type: string
- - default: websocket
- in: header
- name: Upgrade
+ - description: The ID of the account.
+ in: path
+ name: account_id
required: true
type: string
- - description: 'API key or user token must be present in the `Sec-WebSocket-Protocol`
- header **if Authorization header cannot be provided**: `Sec-WebSocket-Protocol:"wss,pelion_ak_{api_key}"`.
-
- Refer to the notification service documentation for examples.'
- in: header
- name: Sec-WebSocket-Protocol
- required: false
- type: string
- - description: Originating host of the request.
- in: header
- name: Origin
+ - description: The name of the branding color.
+ enum: *id001
+ in: path
+ name: reference
required: true
type: string
- - default: 13
- description: WebSocket version. Must be 13.
- in: header
- name: Sec-WebSocket-Version
- required: true
- type: integer
- - description: The value of this header field must be a nonce consisting of
- a randomly selected 16-byte value that has been base64-encoded (see Section
- 4 of [RFC4648]). The nonce must be selected randomly for each connection.
- in: header
- name: Sec-WebSocket-Key
+ - description: The branding color.
+ in: body
+ name: body
required: true
- type: string
+ schema:
+ $ref: '#/definitions/BrandingColor'
+ produces:
+ - application/json
responses:
- 101:
- description: Switching protocols.
- 400:
- description: Required header(s) missing.
- 401: *id016
- 426:
- description: Upgrade required. Connect and/or Upgrade headers missing.
- summary: (PREVIEW) Open the websocket.
+ '200':
+ description: Color has been set successfully.
+ schema:
+ $ref: '#/definitions/BrandingColor'
+ '400':
+ description: Error in input data format.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: Color or account not found.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Updates a dark theme branding color.
tags:
- - Notifications
- x-origin: /home/circleci/project/device-server/public/swagger.yaml
- /v2/subscriptions:
+ - Tenant user interface configuration - colors
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/accounts/{account_id}/branding-colors/light:
delete:
- description: 'Removes pre-subscriptions.
-
-
- **Example:**
+ description: 'Delete account light theme branding colors.
- ```
+ Note: This endpoint is restricted to administrators.
- curl -X DELETE https://api.us-east-1.mbedcloud.com/v2/subscriptions \
- -H ''Authorization: Bearer ''
+ **Example usage:**
- ```'
- operationId: deletePreSubscriptions
+ `curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors/light
+ -H ''Authorization: Bearer ''`'
+ operationId: deleteAllAccountLightColors
+ parameters:
+ - description: The ID of the account.
+ in: path
+ name: account_id
+ required: true
+ type: string
+ produces:
+ - application/json
responses:
- 204:
- description: Successfully removed subscriptions.
- 401:
- description: Unauthorized.
- 403:
- description: 'Forbidden: the authorization token used is not an API key.'
- summary: Remove pre-subscriptions.
+ '204':
+ description: Colors have been deleted successfully.
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: Account or branding colors not found.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Delete colors in the light theme.
tags:
- - Subscriptions
- x-origin: /home/circleci/project/device-server/public/swagger.yaml
+ - Tenant user interface configuration - colors
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
get:
- description: 'Retrieve pre-subscription data. The server returns a JSON structure.
- If there are no pre-subscribed resources, it returns an empty array.
+ description: 'Retrieve light theme branding colors for an account.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X GET https://api.us-east-1.mbedcloud.com/v2/subscriptions \
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors/light
+ \
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer ''
```'
- operationId: getPreSubscriptions
+ operationId: getAccountLightColors
+ parameters:
+ - description: The ID of the account.
+ in: path
+ name: account_id
+ required: true
+ type: string
produces:
- application/json
responses:
- 200:
- description: OK.
+ '200':
+ description: Successful operation.
schema:
- $ref: '#/definitions/PresubscriptionArray'
- 401:
- description: Unauthorized.
- 403:
- description: 'Forbidden: the authorization token used is not an API key.'
- summary: Get pre-subscriptions.
+ $ref: '#/definitions/BrandingColorList'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: Account not found.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Get light theme branding colors.
tags:
- - Subscriptions
- x-origin: /home/circleci/project/device-server/public/swagger.yaml
+ - Tenant user interface configuration - colors
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
put:
consumes:
- application/json
- description: "Pre-subscription is a set of rules and patterns established by\
- \ the application. When an endpoint registers and its ID, type, and registered\
- \ resources match the pre-subscription data, Device Management Connect automatically\
- \ sends subscription requests to the device. The pattern may include the endpoint\
- \ ID (optionally having an `*` character at the end), endpoint type, a list\
- \ of resources, or expressions with an `*` character at the end. Subscriptions\
- \ based on pre-subscriptions are done when device registers or does register\
- \ update. To remove the pre-subscription data, put an empty array as a rule.\n\
- \n**Notification rules**\n\nA web application can place dynamic observation\
- \ rules for individual Object Instances and Resources to define when the device\
- \ sends observations. More information in [Notification rules](../connecting/resource-change-webapp.html).\n\
- \n**Limits**:\n\n- The maximum length of the endpoint name and endpoint type\
- \ is 64 characters.\n- The maximum length of the resource path is 128 characters.\n\
- - You can listen to 256 separate resource paths.\n- The maximum number of\
- \ pre-subscription entries is 1024.\n\n**Example request:**\n```\ncurl -X\
- \ PUT https://api.us-east-1.mbedcloud.com/v2/subscriptions \\\n-H 'Authorization:\
- \ Bearer ' \\\n-H 'content-type: application/json' \\\n-d '[\n \
- \ {\n \"endpoint-name\": \"node-001\",\n \"resource-path\"\
- : [\"/dev\"]\n },\n {\n \"endpoint-type\": \"Light\",\n\
- \ \"resource-path\": [\"/sen/*\"]\n },\n {\n \"\
- endpoint-name\": \"node*\"\n },\n {\n \"endpoint-type\"\
- : \"Sensor\"\n },\n {\n \"resource-path\": [\"/dev/temp\"\
- ,\"/dev/hum\"]\n }\n ]'\n```\n\n- Subscribe to `/dev` resource of\
- \ endpoint named `node-001`.\n- Subscribe to `Light` type of endpoints and\
- \ their resources prefixed with `/sen/`.\n- Subscribe to all observable resources\
- \ of endpoint names prefixed with `node`.\n- Subscribe to all observable resources\
- \ of `Sensor` type endpoints.\n- Subscribe to `/dev/temp` and `/dev/hum` resources\
- \ of all endpoints.\n\n**Note**: For efficiency, you should use resource path\
- \ patterns in the pre-subscription data. This prevents notification flow from\
- \ unwanted resources."
- operationId: updatePreSubscriptions
+ description: "Update an array of light theme branding colors.\nNote:\
+ \ This endpoint is restricted to administrators.\n\n**Example:**\n```\ncurl\
+ \ -X PUT https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id)/branding-colors/light\
+ \ \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json'\
+ \ \\\n'[{ \"reference\": \"primary\",\n \"color\": \"purple\" }]'\n```"
+ operationId: bulkSetAccountLightColors
parameters:
- - description: Array of pre-subscriptions.
+ - description: The ID of the account.
+ in: path
+ name: account_id
+ required: true
+ type: string
+ - description: List of branding colors.
in: body
- name: presubsription
+ name: body
required: true
schema:
- $ref: '#/definitions/PresubscriptionArray'
+ items:
+ $ref: '#/definitions/BrandingColorUpdate'
+ type: array
produces:
- - text/plain
+ - application/json
responses:
- 204:
- description: Successfully created.
- 400:
- description: Bad request, malformed content.
- 401:
- description: Unauthorized.
- 403:
- description: 'Forbidden: the authorization token used is not an API key.'
- summary: Set pre-subscriptions
+ '204':
+ description: Colors have been set successfully.
+ '400':
+ description: Error in input data format.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: Account not found.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Updates an array of light theme branding colors.
tags:
- - Subscriptions
- x-origin: /home/circleci/project/device-server/public/swagger.yaml
- /v2/subscriptions/{device-id}:
+ - Tenant user interface configuration - colors
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/accounts/{account_id}/branding-colors/light/{reference}:
delete:
- description: 'Deletes all resource subscriptions in a single endpoint.
+ description: 'Resets the branding color to its light theme default.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X DELETE https://api.us-east-1.mbedcloud.com/v2/subscriptions/{device-id}
+ curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors/light/{reference}
\
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer ''
```'
- operationId: deleteEndpointSubscriptions
+ operationId: resetAccountLightColor
parameters:
- - description: A unique Device Management device ID for the endpoint. The ID
- must be an exact match. Do not use wildcards.
+ - description: The ID of the account.
in: path
- name: device-id
+ name: account_id
+ required: true
+ type: string
+ - description: The name of the branding color.
+ enum: *id001
+ in: path
+ name: reference
required: true
type: string
+ produces:
+ - application/json
responses:
- 204:
- description: Successfully removed.
- summary: Delete subscriptions from an endpoint.
+ '204':
+ description: Deleted successfully.
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: Color or account not found.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Reset branding color to default.
tags:
- - Subscriptions
- x-origin: /home/circleci/project/device-server/public/swagger.yaml
+ - Tenant user interface configuration - colors
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
get:
- description: 'Lists all subscribed resources from a single endpoint.
+ description: 'Retrieve the requested light theme branding color.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X GET https://api.us-east-1.mbedcloud.com/v2/subscriptions/{device-id}
- \
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors/light/{reference}
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer ''
```'
- operationId: getEndpointSubscriptions
+ operationId: getAccountLightColor
parameters:
- - description: A unique Device Management device ID for the endpoint. The ID
- must be an exact match. Do not use wildcards.
+ - description: The ID of the account.
in: path
- name: device-id
+ name: account_id
+ required: true
+ type: string
+ - description: The name of the branding color.
+ enum: *id001
+ in: path
+ name: reference
required: true
type: string
produces:
- - text/uri-list
+ - application/json
responses:
- 200:
- description: List of subscribed resources.
+ '200':
+ description: Successful operation.
schema:
- description: A list of resource URIs, one per line.
- example: /sen/light
- type: string
- 404:
- description: Endpoint not found, or there are no subscriptions for that
- endpoint.
- summary: Read endpoints subscriptions
+ $ref: '#/definitions/BrandingColor'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: Color or account not found.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Get light theme branding color.
tags:
- - Subscriptions
- x-origin: /home/circleci/project/device-server/public/swagger.yaml
- /v2/subscriptions/{device-id}/{resourcePath}:
- delete:
- description: 'Remove an existing subscription from a resource path.
+ - Tenant user interface configuration - colors
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ put:
+ consumes:
+ - application/json
+ description: 'Update a light theme branding color.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X DELETE https://api.us-east-1.mbedcloud.com/v2/subscriptions/{device-id}/{resourcePath}
+ curl -X PUT https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id)/branding-colors/light/primary
\
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer '' \
+
+ -H ''content-type: application/json'' \
+
+ -d ''{ "color": "purple" }''
```'
- operationId: deleteResourceSubscription
+ operationId: setAccountLightColor
parameters:
- - description: A unique Device Management device ID for the endpoint. The ID
- must be an exact match. Do not use wildcards.
+ - description: The ID of the account.
in: path
- name: device-id
+ name: account_id
required: true
type: string
- - description: The resource URL.
+ - description: The name of the branding color.
+ enum: *id001
in: path
- name: resourcePath
+ name: reference
required: true
type: string
+ - description: The branding color.
+ in: body
+ name: body
+ required: true
+ schema:
+ $ref: '#/definitions/BrandingColor'
+ produces:
+ - application/json
responses:
- 204:
- description: Successfully removed subscription.
- 404:
- description: Endpoint or resource not found.
- summary: Remove a subscription.
+ '200':
+ description: Color set successfully.
+ schema:
+ $ref: '#/definitions/BrandingColor'
+ '400':
+ description: Error in input data format.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: Color or account not found.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Updates light theme branding color.
tags:
- - Subscriptions
- x-origin: /home/circleci/project/device-server/public/swagger.yaml
- get:
- operationId: checkResourceSubscription
+ - Tenant user interface configuration - colors
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/accounts/{account_id}/branding-images:
+ delete:
+ description: 'Delete account branding images for all themes.
+
+ Note: This endpoint is restricted to administrators.
+
+
+ **Example usage:**
+
+ `curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images
+ -H ''Authorization: Bearer ''`'
+ operationId: deleteAllAccountImages
parameters:
- - description: A unique Device Management device ID for the endpoint. The ID
- must be an exact match. Do not use wildcards.
+ - description: The ID of the account.
in: path
- name: device-id
+ name: account_id
required: true
type: string
- - description: The resource URL.
+ produces:
+ - application/json
+ responses:
+ '204':
+ description: Images have been deleted successfully.
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: Account or branding images not found.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Delete all images.
+ tags:
+ - Tenant user interface configuration - images
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/accounts/{account_id}/branding-images/dark:
+ delete:
+ description: 'Delete account dark theme branding images.
+
+ Note: This endpoint is restricted to administrators.
+
+
+ **Example usage:**
+
+ `curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/dark
+ -H ''Authorization: Bearer ''`'
+ operationId: deleteAllAccountDarkImages
+ parameters:
+ - description: The ID of the account.
in: path
- name: resourcePath
+ name: account_id
required: true
type: string
+ produces:
+ - application/json
responses:
- 200:
- description: Resource is subscribed.
- 404:
- description: Resource is not subscribed.
- summary: Read subscription status
+ '204':
+ description: Images have been deleted successfully.
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: Account or branding images not found.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Delete images in the dark theme.
tags:
- - Subscriptions
- x-origin: /home/circleci/project/device-server/public/swagger.yaml
- put:
- description: 'The Device Management Connect eventing model consists of observable
- Resources.
-
-
- This means that endpoints can deliver updated resource content, periodically
- or with a more sophisticated solution-dependent logic. The OMA LwM2M resource
- model also supports including objects, object instances, resources, and resource
- instances.
+ - Tenant user interface configuration - images
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ get:
+ description: 'Retrieve the metadata of all dark theme branding images.
+ Note: This endpoint is restricted to administrators.
- Applications can subscribe to objects, object instances or individual resources
- to make the device provide value change notifications to Device Management
- Connect service. An application needs to call a `/notification/callback` method
- to get Device Management Connect to push notifications of the resource changes.
+ **Example:**
- **Notification rules**
+ ```
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/dark
+ \
- A web application can place dynamic observation rules for individual Object
- Instances and Resources to define when the device sends observations. More
- information in [Notification rules](../connecting/resource-change-webapp.html).
+ -H ''Authorization: Bearer ''
+ ```'
+ operationId: getAllAccountDarkImageData
+ parameters:
+ - description: The ID of the account.
+ in: path
+ name: account_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ '200':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/BrandingImageList'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: Account not found.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Get metadata of all dark theme images.
+ tags:
+ - Tenant user interface configuration - images
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/accounts/{account_id}/branding-images/dark/{reference}:
+ get:
+ description: 'Retrieve metadata of one account dark theme branding image.
- All manual subscriptions are removed during a full device registration, at
- which point applications must re-subscribe. To avoid this, you can use `/subscriptions`
- to set a pre-subscription.
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X PUT https://api.us-east-1.mbedcloud.com/v2/subscriptions/{device-id}/{resourcePath}
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/dark/{reference}
\
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer ''
```'
- operationId: addResourceSubscription
+ operationId: getAccountDarkImageData
parameters:
- - description: A unique Device Management device ID for the endpoint. The ID
- must be an exact match. Do not use wildcards.
+ - description: The ID of the account.
in: path
- name: device-id
+ name: account_id
required: true
type: string
- - description: The resource URL.
+ - description: Name of the branding images (icon or picture).
+ enum: *id026
in: path
- name: resourcePath
+ name: reference
required: true
type: string
produces:
- application/json
responses:
- 200:
- description: Successfully subscribed.
- 202:
- description: Accepted. Returns an asynchronous response ID used to reference
- the future asynchronous response.
+ '200':
+ description: Successful operation.
schema:
- $ref: '#/definitions/AsyncID'
- 400:
- description: Bad request, malformed content.
- 404:
- description: Endpoint or its resource not found.
- 429:
- description: 'Cannot accept the request at the moment: the queue is full.'
- 502:
- description: 'Subscription failed: endpoint not connected.'
- summary: Subscribe to a resource path.
+ $ref: '#/definitions/BrandingImage'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: Unknown image reference, or account not found.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Get metadata of a dark theme image.
tags:
- - Subscriptions
- x-origin: /home/circleci/project/device-server/public/swagger.yaml
- /v3/accounts:
- get:
- description: 'Returns an array of account objects, optionally filtered by status
- and tier level.
+ - Tenant user interface configuration - images
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/accounts/{account_id}/branding-images/dark/{reference}/clear:
+ post:
+ description: 'Revert an account branding image to dark theme default.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts \
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/dark/{reference}/clear
+ \
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer ''
```'
- operationId: getAllAccounts
+ operationId: clearAccountDarkImage
parameters:
- - description: An optional filter for account status, ENROLLING, ACTIVE, RESTRICTED,
- or SUSPENDED.
- in: query
- name: status__eq
- required: false
- type: string
- - description: An optional filter to retrieve accounts with a specified set
- of statuses.
- in: query
- name: status__in
- required: false
- type: string
- - description: An optional filter to exclude accounts with a specified set of
- statuses.
- in: query
- name: status__nin
- required: false
- type: string
- - description: An optional filter for tier level. Must be 0, 1, 2, 98, 99, or
- omitted.
- in: query
- name: tier__eq
- required: false
- type: string
- - description: An optional filter for parent account ID.
- in: query
- name: parent__eq
- required: false
- type: string
- - description: An optional filter for account end market.
- in: query
- name: end_market__eq
- required: false
- type: string
- - description: 'An optional filter for account country. Finds all matches where
- the filter value is a case-insensitive substring of the result. Example:
- country__like=LAND matches Ireland.'
- in: query
- name: country__like
- required: false
- type: string
- - default: 1000
- description: The number of results to return (2-1000). Default 1000.
- format: int32
- in: query
- name: limit
- required: false
- type: integer
- - description: The entity ID to fetch after the given one.
- in: query
- name: after
- required: false
- type: string
- - default: ASC
- description: 'Record order. Acceptable values: ASC, DESC. Default: ASC.'
- in: query
- name: order
- required: false
- type: string
- - description: 'Comma-separated additional data to return. Currently supported:
- limits, policies, sub_accounts.'
- in: query
- name: include
- required: false
- type: string
- - description: 'Format information for the query response. Supported: format=breakdown.'
- in: query
- name: format
- required: false
+ - description: The ID of the account.
+ in: path
+ name: account_id
+ required: true
type: string
- - description: Property name returned from account-specific properties.
- in: query
- name: properties
- required: false
+ - description: Name of the branding images (icon or picture).
+ enum: *id026
+ in: path
+ name: reference
+ required: true
type: string
produces:
- application/json
responses:
- '200':
- description: Successful operation.
- schema:
- $ref: '#/definitions/AccountInfoList'
+ '204':
+ description: Image reverted successfully.
'401':
description: Authentication failure.
schema:
@@ -8816,79 +14224,132 @@ paths:
description: Forbidden.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Get all accounts.
+ '404':
+ description: Unknown image reference, or account not found.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Revert an image to dark theme default.
tags:
- - Tenant accounts - accounts
- x-filter:
- country:
- - like
- end_market:
- - eq
- parent:
- - eq
- status:
- - eq
- - in
- - nin
- tier:
- - eq
+ - Tenant user interface configuration - images
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/accounts/{account_id}/branding-images/dark/{reference}/upload:
post:
consumes:
- - application/json
- description: 'Create a new account.
+ - image/png
+ - image/jpeg
+ description: 'Upload a new account dark theme branding image in PNG or JPEG
+ format.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts \
-
- -H ''Authorization: Bearer '' \
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/dark/{reference}/upload
+ \
- -H ''content-type: application/json'' \
+ -H ''Authorization: Bearer ''
- -d ''{"display_name": "MyAccount1", "admin_name": "accountAdmin1", "email":
- "example_admin@myaccount.info", "country": "United Kingdom", "end_market":
- "Smart City", "address_line1": "110 Fulbourn Rd", "city": "Cambridge", "contact":
- "J. Doe", "company": "Arm"}''
+ -H ''content-type: image/png'' --data-binary ''@myimage.png''
```'
- operationId: createAccount
+ operationId: uploadAccountDarkImage
parameters:
- - description: Details of the account to create.
+ - description: The ID of the account.
+ in: path
+ name: account_id
+ required: true
+ type: string
+ - description: Name of the branding images (icon or picture).
+ enum: *id026
+ in: path
+ name: reference
+ required: true
+ type: string
+ - description: The image in PNG or JPEG format.
in: body
name: body
required: true
schema:
- $ref: '#/definitions/AccountCreationReq'
- - default: create
- description: 'Action, either `create` or `enroll`.
-
-
-
- - `create` creates the account where its admin user has ACTIVE status
- if `admin_password` was defined in the request, or RESET status if no `admin_password`
- was defined. If the user already exists, its status is not modified.
+ $ref: '#/definitions/Image'
+ produces:
+ - application/json
+ responses:
+ '201':
+ description: Image uploaded successfully.
+ headers:
+ Content-Location:
+ description: Location of the image metadata.
+ type: string
+ Location:
+ description: Location of the image binary.
+ type: string
+ schema:
+ $ref: '#/definitions/BrandingImage'
+ '400':
+ description: Error in input data format, for example, image is too large.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: Unknown image reference, or account not found.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Upload a dark theme image.
+ tags:
+ - Tenant user interface configuration - images
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/accounts/{account_id}/branding-images/dark/{reference}/upload-multipart:
+ post:
+ consumes:
+ - multipart/form-data
+ description: 'Upload a new account dark theme branding image as form data in
+ PNG or JPEG format.
- - `enroll` creates the account where its admin user has ENROLLING status.
- If the user already exists, its status is not modified. Email to finish
- enrollment or notify the existing user about the new account is sent to
- the `admin_email` defined in the request.
'
- in: query
- name: action
- required: false
+ Note: This endpoint is restricted to administrators.'
+ operationId: uploadAccountDarkImageMultipart
+ parameters:
+ - description: The ID of the account.
+ in: path
+ name: account_id
+ required: true
+ type: string
+ - description: Name of the branding images (icon or picture).
+ enum: *id026
+ in: path
+ name: reference
+ required: true
type: string
+ - description: The image in PNG or JPEG format as multipart form data.
+ in: formData
+ name: image
+ required: true
+ type: file
produces:
- application/json
responses:
'201':
- description: Successful operation.
+ description: Image uploaded successfully.
+ headers:
+ Content-Location:
+ description: Location of the image metadata.
+ type: string
+ Location:
+ description: Location of the image binary.
+ type: string
schema:
- $ref: '#/definitions/AccountInfo'
+ $ref: '#/definitions/BrandingImage'
'400':
- description: Error in input data, for example, invalid username.
+ description: Error in input data format, for example, image is too large.
schema:
$ref: '#/definitions/ErrorResponse'
'401':
@@ -8899,45 +14360,37 @@ paths:
description: Forbidden.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Create a new account.
+ '404':
+ description: Unknown image reference.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Upload a dark theme image.
tags:
- - Tenant accounts - accounts
+ - Tenant user interface configuration - images
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/me:
- get:
- description: 'Retrieve detailed information about the account.
-
-
- **Example:**
+ /v3/accounts/{account_id}/branding-images/light:
+ delete:
+ description: 'Delete account light theme branding images.
- ```
+ Note: This endpoint is restricted to administrators.
- curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/me?include=policies
- \
- -H ''Authorization: Bearer ''
+ **Example usage:**
- ```'
- operationId: getMyAccountInfo
+ `curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/light
+ -H ''Authorization: Bearer ''`'
+ operationId: deleteAllAccountLightImages
parameters:
- - description: 'Comma-separated additional data to return. Currently supported:
- limits, policies, sub_accounts.'
- in: query
- name: include
- required: false
- type: string
- - description: Property name to return from account-specific properties.
- in: query
- name: properties
- required: false
+ - description: The ID of the account.
+ in: path
+ name: account_id
+ required: true
type: string
produces:
- application/json
responses:
- '200':
- description: Successful operation.
- schema:
- $ref: '#/definitions/AccountInfo'
+ '204':
+ description: Images have been deleted successfully.
'401':
description: Authentication failure.
schema:
@@ -8946,48 +14399,44 @@ paths:
description: Forbidden.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Get account info.
+ '404':
+ description: Account or branding images not found.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Delete images in the light theme.
tags:
- - Account - profile
+ - Tenant user interface configuration - images
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- put:
- consumes:
- - application/json
- description: 'Update the account.
+ get:
+ description: 'Retrieve the metadata of all light theme branding images.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X PUT https://api.us-east-1.mbedcloud.com/v3/accounts/me \
-
- -H ''Authorization: Bearer '' \
-
- -H ''content-type: application/json'' \
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/light
+ \
- -d ''{"phone_number": "12345678"}''
+ -H ''Authorization: Bearer ''
```'
- operationId: updateMyAccount
+ operationId: getAllAccountLightImageData
parameters:
- - description: Details of the account to update.
- in: body
- name: body
+ - description: The ID of the account.
+ in: path
+ name: account_id
required: true
- schema:
- $ref: '#/definitions/AccountUpdateReq'
+ type: string
produces:
- application/json
responses:
'200':
description: Successful operation.
schema:
- $ref: '#/definitions/AccountInfo'
- '400':
- description: Error in input data format.
- schema:
- $ref: '#/definitions/ErrorResponse'
+ $ref: '#/definitions/BrandingImageList'
'401':
description: Authentication failure.
schema:
@@ -8996,33 +14445,43 @@ paths:
description: Forbidden.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Updates attributes of the account.
+ '404':
+ description: Account not found.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Get metadata of all light theme images.
tags:
- - Account - profile
+ - Tenant user interface configuration - images
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/me/notifications:
+ /v3/accounts/{account_id}/branding-images/light/{reference}:
get:
- description: Retrieve notifications for an account.
- operationId: getNofificationEntries
+ description: 'Retrieve metadata for one account light theme branding image.
+
+ Note: This endpoint is restricted to administrators.
+
+
+ **Example:**
+
+ ```
+
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/light/{reference}
+ \
+
+ -H ''Authorization: Bearer ''
+
+ ```'
+ operationId: getAccountLightImageData
parameters:
- - default: 50
- description: The number of results to return (2-1000). Default 50.
- format: int32
- in: query
- name: limit
- required: false
- type: integer
- - description: The entity ID to fetch after the given one.
- in: query
- name: after
- required: false
+ - description: The ID of the account.
+ in: path
+ name: account_id
+ required: true
type: string
- - default: ASC
- description: 'Record order based on creation time. Acceptable values: ASC,
- DESC. Default: ASC.'
- in: query
- name: order
- required: false
+ - description: Name of the branding images (icon or picture).
+ enum: *id026
+ in: path
+ name: reference
+ required: true
type: string
produces:
- application/json
@@ -9030,100 +14489,132 @@ paths:
'200':
description: Successful operation.
schema:
- $ref: '#/definitions/NotificationEntryList'
- '400':
- description: Error in input data, or missing or invalid parameters.
- schema:
- $ref: '#/definitions/ErrorResponse'
+ $ref: '#/definitions/BrandingImage'
'401':
description: Authentication failure.
schema:
$ref: '#/definitions/ErrorResponse'
'403':
- description: Forbidden
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: Unknown image reference, or account not found.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Get notification events for an account.
+ summary: Get metadata of a light theme image.
tags:
- - Account - email notification logs
+ - Tenant user interface configuration - images
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/me/notifications/{notification_id}:
- get:
- description: An endpoint for retrieving notification event details.
- operationId: getNofificationEntry
+ /v3/accounts/{account_id}/branding-images/light/{reference}/clear:
+ post:
+ description: 'Revert an account branding image to light theme default.
+
+ Note: This endpoint is restricted to administrators.
+
+
+ **Example:**
+
+ ```curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/light/{reference}/clear
+ \
+
+ -H ''Authorization: Bearer ''
+
+ ```'
+ operationId: clearAccountLightImage
parameters:
- - description: The ID of the notification entry to be retrieved.
+ - description: The ID of the account.
in: path
- name: notification_id
+ name: account_id
+ required: true
+ type: string
+ - description: Name of the branding images (icon or picture).
+ enum: *id026
+ in: path
+ name: reference
required: true
type: string
produces:
- application/json
responses:
- '200':
- description: successful operation
- schema:
- $ref: '#/definitions/NotificationEntry'
- '400':
- description: Error in input data, missing or invalid parameters.
- schema:
- $ref: '#/definitions/ErrorResponse'
+ '204':
+ description: Image reverted successfully.
'401':
description: Authentication failure.
schema:
$ref: '#/definitions/ErrorResponse'
'403':
- description: Forbidden
+ description: Forbidden.
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: No entry found for the given ID.
+ description: Unknown image reference, or account not found.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Get notification event details.
+ summary: Revert an image to light theme default.
tags:
- - Account Admin
+ - Tenant user interface configuration - images
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}:
- get:
- description: 'Retrieve detailed information about an account.
+ /v3/accounts/{account_id}/branding-images/light/{reference}/upload:
+ post:
+ consumes:
+ - image/png
+ - image/jpeg
+ description: 'Upload a new account light theme branding image in PNG or JPEG
+ format.
+ Note: This endpoint is restricted to administrators.
- **Example:**
+ **Example:**
```
- curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id} \
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/light/{reference}/upload
+ \
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer '' \
+
+ -H ''content-type: image/png'' --data-binary ''@myimage.png''
```'
- operationId: getAccountInfo
+ operationId: uploadAccountLightImage
parameters:
- - description: The ID of the account to fetch.
+ - description: The ID of the account.
in: path
name: account_id
required: true
type: string
- - description: 'Comma-separated additional data to return. Currently supported:
- limits, policies, sub_accounts.'
- in: query
- name: include
- required: false
- type: string
- - description: Property name to return from account-specific properties.
- in: query
- name: properties
- required: false
+ - description: Name of the branding images (icon or picture).
+ enum: *id026
+ in: path
+ name: reference
+ required: true
type: string
+ - description: The image in PNG or JPEG format.
+ in: body
+ name: body
+ required: true
+ schema:
+ $ref: '#/definitions/Image'
produces:
- application/json
responses:
- '200':
- description: Successful operation.
+ '201':
+ description: Image uploaded successfully.
+ headers:
+ Content-Location:
+ description: Location of image metadata.
+ type: string
+ Location:
+ description: Location of the image binary.
+ type: string
+ schema:
+ $ref: '#/definitions/BrandingImage'
+ '400':
+ description: Error in input data format, for example, image is too large.
schema:
- $ref: '#/definitions/AccountInfo'
+ $ref: '#/definitions/ErrorResponse'
'401':
description: Authentication failure.
schema:
@@ -9133,55 +14624,55 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: Account with the given ID not found.
+ description: Unknown image reference, or account not found.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Get account info.
+ summary: Upload a light theme image.
tags:
- - Tenant accounts - accounts
+ - Tenant user interface configuration - images
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- put:
+ /v3/accounts/{account_id}/branding-images/light/{reference}/upload-multipart:
+ post:
consumes:
- - application/json
- description: 'Update an account.
-
-
- **Example:**
-
-
- ```
-
- curl -X PUT https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id} \
-
- -H ''Authorization: Bearer '' \
-
- -H ''content-type: application/json'' \
-
- -d ''{"phone_number": "12345678"}''
+ - multipart/form-data
+ description: 'Upload a new account branding image as form data in PNG or JPEG
+ format.
- ```'
- operationId: updateAccount
+ Note: This endpoint is restricted to administrators.'
+ operationId: uploadAccountLightImageMultipart
parameters:
- - description: The ID of the account to update.
+ - description: The ID of the account.
in: path
name: account_id
required: true
type: string
- - description: Details of the account to update.
- in: body
- name: body
+ - description: Name of the branding images (icon or picture).
+ enum: *id026
+ in: path
+ name: reference
required: true
- schema:
- $ref: '#/definitions/AccountUpdateRootReq'
+ type: string
+ - description: The image in PNG or JPEG format as multipart form data.
+ in: formData
+ name: image
+ required: true
+ type: file
produces:
- application/json
responses:
- '200':
- description: Successful operation.
+ '201':
+ description: Image uploaded successfully.
+ headers:
+ Content-Location:
+ description: Location of the image metadata.
+ type: string
+ Location:
+ description: Location of the image binary.
+ type: string
schema:
- $ref: '#/definitions/AccountInfo'
+ $ref: '#/definitions/BrandingImage'
'400':
- description: Error in input data format.
+ description: Error in input data format, for example, image is too large.
schema:
$ref: '#/definitions/ErrorResponse'
'401':
@@ -9193,31 +14684,23 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: Account with the given ID not found.
+ description: Unknown image reference.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Update attributes of an existing account.
+ summary: Upload a light theme image.
tags:
- - Tenant accounts - accounts
+ - Tenant user interface configuration - images
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/api-keys:
+ /v3/accounts/{account_id}/identity-providers:
get:
- description: 'Retrieve API keys in an array, optionally filtered by the owner.
-
-
- **Example:**
-
- ```
-
- curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys
- \
-
- -H ''Authorization: Bearer ''
+ consumes:
+ - application/json
+ description: 'Retrieve an array of identity providers.
- ```'
- operationId: getAllAccountApiKeys
+ Note: This endpoint is restricted to administrators.'
+ operationId: getAllAccountIdentityProviders
parameters:
- - description: Account ID.
+ - description: The ID of the account.
in: path
name: account_id
required: true
@@ -9229,14 +14712,14 @@ paths:
name: limit
required: false
type: integer
- - description: The entity ID to fetch after the given one.
+ - description: The entity ID to retrieve after the given one.
in: query
name: after
required: false
type: string
- default: ASC
- description: 'Record order based on creation time. Acceptable values: ASC,
- DESC. Default: ASC.'
+ description: 'Record order based on creation. Acceptable values: ASC, DESC.
+ Default: ASC.'
in: query
name: order
required: false
@@ -9247,24 +14730,13 @@ paths:
name: include
required: false
type: string
- - description: API key filter. Do not include the private portion of the API
- key (the last 32 characters).
- in: query
- name: key__eq
- required: false
- type: string
- - description: Owner name filter.
- in: query
- name: owner__eq
- required: false
- type: string
produces:
- application/json
responses:
'200':
description: Successful operation.
schema:
- $ref: '#/definitions/ApiKeyInfoRespList'
+ $ref: '#/definitions/IdentityProviderList'
'401':
description: Authentication failure.
schema:
@@ -9274,61 +14746,56 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: An account with the given ID does not exist.
+ description: Account not found.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Get all API keys.
+ summary: Get all identity providers.
tags:
- - Tenant accounts - API keys
- x-filter:
- key:
- - eq
- owner:
- - eq
+ - Tenant accounts - identity providers
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
post:
consumes:
- application/json
- description: 'Create a new API key. There is no default value for the owner
- ID, and it must be from the same account where the new API key is created.
-
-
- **Example:**
-
- ```
-
- curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys
- \
-
- -H ''Authorization: Bearer '' \
-
- -H ''content-type: application/json'' \
-
- -d ''{"name": "MyKey1"}''
+ description: 'Create a new identity provider.
- ```'
- operationId: createAccountApiKey
+ Note: This endpoint is restricted to administrators.'
+ operationId: createAccountIdentityProvider
parameters:
- description: Account ID.
in: path
name: account_id
required: true
type: string
- - description: Details of the API key to create.
+ - allowEmptyValue: true
+ description: 'Indicates that the OpenID Connect endpoints and keys should
+ be set using the OpenID Connect Discovery mechanism. The following parameters
+ are set automatically: * authorization_endpoint * token_endpoint * userinfo_endpoint
+ * revocation_endpoint * jwks_uri * keys'
+ in: query
+ name: discovery
+ type: boolean
+ - description: Details of the identity provider to create.
in: body
name: body
required: true
schema:
- $ref: '#/definitions/ApiKeyInfoReq'
+ $ref: '#/definitions/IdentityProviderCreationReq'
produces:
- application/json
responses:
'201':
description: New entity created.
+ headers:
+ Content-Location:
+ description: /v3/accounts/{account_id}/identity-providers/{identity_provider_id}
+ type: string
+ Location:
+ description: /v3/accounts/{account_id}/identity-providers/{identity_provider_id}
+ type: string
schema:
- $ref: '#/definitions/ApiKeyInfoResp'
+ $ref: '#/definitions/IdentityProviderInfo'
'400':
- description: Error in input data, for example, missing display name.
+ description: Error in input data, for example, too long name.
schema:
$ref: '#/definitions/ErrorResponse'
'401':
@@ -9340,45 +14807,133 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: An account with the given ID does not exist.
+ description: Account not found.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Create a new API key.
+ summary: Create a new identity provider.
tags:
- - Tenant accounts - API keys
+ - Tenant accounts - identity providers
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/api-keys/{apikey_id}:
+ /v3/accounts/{account_id}/identity-providers/{identity_provider_id}:
delete:
- description: 'Delete an API key.
-
-
- **Example:**
-
- ```
+ description: 'Delete an identity provider by ID.
- curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys/{apikey_id}
- \
+ Note: This endpoint is restricted to administrators.'
+ operationId: deleteAccountIdentityProvider
+ parameters:
+ - description: Account ID.
+ in: path
+ name: account_id
+ required: true
+ type: string
+ - description: The ID of the identity provider to delete.
+ in: path
+ name: identity_provider_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ '204':
+ description: Deleted successfully.
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden, or identity provider is in use.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: An account or identity provider not found.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Delete an identity provider by ID.
+ tags:
+ - Tenant accounts - identity providers
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ get:
+ description: 'Retrieve an identity provider.
- -H ''Authorization: Bearer ''
+ Note: This endpoint is restricted to administrators.'
+ operationId: getAccountIdentityProvider
+ parameters:
+ - description: Account ID.
+ in: path
+ name: account_id
+ required: true
+ type: string
+ - description: The ID of the identity provider to retrieve.
+ in: path
+ name: identity_provider_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ '200':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/IdentityProviderInfo'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: An account or identity provider not found.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Get an identity provider.
+ tags:
+ - Tenant accounts - identity providers
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ put:
+ consumes:
+ - application/json
+ description: 'Update an existing identity provider.
- ```'
- operationId: deleteAccountApiKey
+ Note: This endpoint is restricted to administrators.'
+ operationId: updateAccountIdentityProvider
parameters:
- description: Account ID.
in: path
name: account_id
required: true
type: string
- - description: The ID of the API key to delete.
+ - description: The ID of the identity provider to update.
in: path
- name: apikey_id
+ name: identity_provider_id
+ required: true
+ type: string
+ - allowEmptyValue: true
+ description: 'Indicates that the OpenID Connect endpoints and keys should
+ be set using the OpenID Connect Discovery mechanism. The following parameters
+ are set automatically: * authorization_endpoint * token_endpoint * userinfo_endpoint
+ * revocation_endpoint * jwks_uri * keys'
+ in: query
+ name: discovery
+ type: boolean
+ - description: Details of the identity provider to update.
+ in: body
+ name: body
required: true
- type: string
+ schema:
+ $ref: '#/definitions/IdentityProviderUpdateReq'
produces:
- application/json
responses:
- '204':
- description: Deleted successfully.
+ '200':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/IdentityProviderInfo'
+ '400':
+ description: Error in input data, for example, missing name.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
'401':
description: Authentication failure.
schema:
@@ -9388,26 +14943,30 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: An account or API key with the specified ID does not exist.
+ description: An account or identity provider not found.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Delete the API key.
+ summary: Update an existing identity provider.
tags:
- - Tenant accounts - API keys
+ - Tenant accounts - identity providers
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- get:
- description: "Retrieve API key details.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys/{apikey_id}\
- \ \\\n -H 'Authorization: Bearer '\n```"
- operationId: getAccountApiKey
+ /v3/accounts/{account_id}/identity-providers/{identity_provider_id}/delete-sp-certificate:
+ post:
+ consumes:
+ - application/json
+ description: 'Delete a service provider certificate.
+
+ Note: This endpoint is restricted to administrators.'
+ operationId: deleteAccountSpCertificate
parameters:
- description: Account ID.
in: path
name: account_id
required: true
type: string
- - description: The ID of the API key to retrieve.
+ - description: The ID of the identity provider whose certificate should be deleted.
in: path
- name: apikey_id
+ name: identity_provider_id
required: true
type: string
produces:
@@ -9415,8 +14974,12 @@ paths:
responses:
'200':
description: Successful operation.
+ headers:
+ Content-Location:
+ description: /v3/accounts/{account_id}/identity-providers/{identity_provider_id}
+ type: string
schema:
- $ref: '#/definitions/ApiKeyInfoResp'
+ $ref: '#/definitions/IdentityProviderInfo'
'401':
description: Authentication failure.
schema:
@@ -9426,58 +14989,52 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: An account or API key with the specified ID does not exist.
+ description: An account or identity provider not found.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Get API key details.
+ summary: Delete the service provider certificate.
tags:
- - Tenant accounts - API keys
+ - Tenant accounts - identity providers
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- put:
- description: 'Update API key details.
-
-
- **Example:**
-
- ```
-
- curl -X PUT https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys/{apikey_id}
- \
-
- -H ''Authorization: Bearer '' \
-
- -H ''content-type: application/json'' \
-
- -d ''{"name": "TestApiKey25"}''
+ /v3/accounts/{account_id}/identity-providers/{identity_provider_id}/generate-sp-certificate:
+ post:
+ consumes:
+ - application/json
+ description: 'Generate a new service provider certificate.
- ```'
- operationId: updateAccountApiKey
+ Note: This endpoint is restricted to administrators.'
+ operationId: generateAccountSpCertificate
parameters:
- description: Account ID.
in: path
name: account_id
required: true
type: string
- - description: The ID of the API key to update.
+ - description: The ID of the identity provider for which to generate a certificate.
in: path
- name: apikey_id
+ name: identity_provider_id
required: true
type: string
- - description: New API key attributes to be stored.
+ - description: Details of the service provider certificate to be generated.
in: body
name: body
required: true
schema:
- $ref: '#/definitions/ApiKeyUpdateReq'
+ $ref: '#/definitions/CertificateGenerationReq'
produces:
- application/json
responses:
'200':
description: Successful operation.
+ headers:
+ Content-Location:
+ description: /v3/accounts/{account_id}/identity-providers/{identity_provider_id}
+ type: string
schema:
- $ref: '#/definitions/ApiKeyInfoResp'
+ $ref: '#/definitions/IdentityProviderInfo'
'400':
- description: Error in input data, for example, missing display name.
+ description: Error in input data, for example, invalid certificate validity
+ value.
schema:
$ref: '#/definitions/ErrorResponse'
'401':
@@ -9489,63 +15046,46 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: An account ID or API key with the specified ID does not exist.
+ description: An account or identity provider not found.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Update API key details.
+ summary: Generate a new service provider certificate.
tags:
- - Tenant accounts - API keys
+ - Tenant accounts - identity providers
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/api-keys/{apikey_id}/groups:
- delete:
+ /v3/accounts/{account_id}/identity-providers/{identity_provider_id}/refresh-jwks:
+ post:
consumes:
- application/json
- description: 'Remove API key from groups.
+ description: 'Refresh an OIDC IdP''s signing keys.
-
- **Example:**
-
- ```
-
- curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys/{apikey_id}/groups
- \
-
- -H ''Authorization: Bearer '' \
-
- -H ''content-type: application/json'' \
-
- -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]''
-
- ```'
- operationId: removeAccountApiKeyFromGroups
+ Note: This endpoint is restricted to administrators.'
+ operationId: refreshAccountJwks
parameters:
- - description: Account ID.
+ - description: The ID of the account to be managed.
in: path
name: account_id
required: true
type: string
- - description: The ID of the API key to remove from the group.
+ - description: The ID of the identity provider for which to refresh the signing
+ keys.
in: path
- name: apikey_id
+ name: identity_provider_id
required: true
type: string
- - description: A list of IDs of the groups to update.
- in: body
- name: body
- required: true
- schema:
- items:
- type: string
- type: array
produces:
- application/json
responses:
'200':
description: Successful operation.
+ headers:
+ Content-Location:
+ description: /v3/accounts/{account_id}/identity-providers/{identity_provider_id}
+ type: string
schema:
- $ref: '#/definitions/UpdatedResponse'
+ $ref: '#/definitions/IdentityProviderInfo'
'400':
- description: Error in input data.
+ description: Not an OIDC IdP or JWKS URI is unspecified.
schema:
$ref: '#/definitions/ErrorResponse'
'401':
@@ -9557,71 +15097,81 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: An account or API key with the specified ID does not exist.
+ description: An account or identity provider not found.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Remove API key from groups.
+ summary: Refresh the OIDC signing keys.
tags:
- - Tenant accounts - API keys
+ - Tenant accounts - identity providers
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/accounts/{account_id}/limitations:
get:
- description: 'Retrieve groups associated with the API key.
-
-
- **Example:**
-
- ```
+ description: 'Retrieve an array of entitlement limitations.
- curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys/{apikey_id}/groups
- \
-
- -H ''Authorization: Bearer ''
-
- ```'
- operationId: getGroupsOfAccountApikey
+ Note: This endpoint is restricted to administrators.'
+ operationId: aggregatorGetAccountLimitations
parameters:
- - default: 50
- description: The number of results to return (2-1000). Default 50.
- format: int32
- in: query
- name: limit
- required: false
- type: integer
- - description: The entity ID to fetch after the given one.
- in: query
- name: after
- required: false
- type: string
- - default: ASC
- description: 'Record order based on creation time. Acceptable values: ASC,
- DESC. Default: ASC.'
- in: query
- name: order
- required: false
+ - description: The ID of the account.
+ in: path
+ name: account_id
+ required: true
type: string
- - description: 'Comma-separated additional data to return. Currently supported:
- total_count.'
+ - description: Filter for finding account limitations by inheritance. True returns
+ also inherited limitations. False returns only non-inherited ones.
in: query
- name: include
+ name: inherited__eq
required: false
type: string
- - description: Account ID.
+ produces:
+ - application/json
+ responses:
+ '200':
+ description: successful operation
+ schema:
+ $ref: '#/definitions/AccountLimitationList'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: An account with the given ID not found.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Get entitlement limitations.
+ tags:
+ - Tenant accounts - entitlement limitations
+ x-filter:
+ inherited:
+ - eq
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/accounts/{account_id}/limitations/{limitation_id}:
+ get:
+ description: 'Retrieve an entitlement limitation.
+
+ Note: This endpoint is restricted to administrators.'
+ operationId: aggregatorGetAccountLimitation
+ parameters:
+ - description: The ID of the account.
in: path
name: account_id
required: true
type: string
- - description: The ID of the API key.
+ - description: The ID of the limitation to be fetched.
in: path
- name: apikey_id
+ name: limitation_id
required: true
type: string
produces:
- application/json
responses:
'200':
- description: Successful operation.
+ description: successful operation
schema:
- $ref: '#/definitions/GroupSummaryList'
+ $ref: '#/definitions/AccountLimitation'
'401':
description: Authentication failure.
schema:
@@ -9631,62 +15181,53 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: An account or API key with the specified ID does not exist.
+ description: Limitation or account with the given ID not found.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Get groups associated with the API key.
+ summary: Get an entitlement limitation.
tags:
- - Tenant accounts - API keys
+ - Tenant accounts - entitlement limitations
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- post:
- consumes:
- - application/json
- description: 'Add API key to groups.
-
-
- **Example:**
-
- ```
-
- curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys/{apikey_id}/groups
- \
-
- -H ''Authorization: Bearer '' \
-
- -H ''content-type: application/json'' \
-
- -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]''
+ /v3/accounts/{account_id}/notifications:
+ get:
+ description: 'Retrieve an array of email notification logs.
- ```'
- operationId: addAccountApiKeyToGroups
+ Note: This endpoint is restricted to administrators.'
+ operationId: getAccountNofificationEntries
parameters:
- description: Account ID.
in: path
name: account_id
required: true
type: string
- - description: The ID of the API key to add to the group.
- in: path
- name: apikey_id
- required: true
+ - default: 50
+ description: The number of results to return (2-1000). Default 50.
+ format: int32
+ in: query
+ name: limit
+ required: false
+ type: integer
+ - description: The entity ID to retrieve after the given one.
+ in: query
+ name: after
+ required: false
+ type: string
+ - default: ASC
+ description: 'Record order based on creation. Acceptable values: ASC, DESC.
+ Default: ASC.'
+ in: query
+ name: order
+ required: false
type: string
- - description: A list of IDs of groups to update.
- in: body
- name: body
- required: true
- schema:
- items:
- type: string
- type: array
produces:
- application/json
responses:
'200':
description: Successful operation.
schema:
- $ref: '#/definitions/UpdatedResponse'
+ $ref: '#/definitions/NotificationEntryList'
'400':
- description: Error in input data.
+ description: Error in input data, or missing or invalid parameters.
schema:
$ref: '#/definitions/ErrorResponse'
'401':
@@ -9694,63 +15235,43 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'403':
- description: Forbidden.
+ description: Forbidden
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: An account or API key with the specified ID does not exist.
- schema:
- $ref: '#/definitions/ErrorResponse'
- '409':
- description: The API key is a member of the group already.
+ description: An account with the given ID not found.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Add API key to a list of groups.
+ summary: Get email notifications.
tags:
- - Tenant accounts - API keys
+ - Tenant accounts - email notification logs
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/api-keys/{apikey_id}/reset-secret:
- post:
- description: 'Reset the secret key of the API key.
-
-
- **Example:**
-
- ```
-
- curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys/{apikey_id}/reset-secret
- \
-
- -H ''Authorization: Bearer ''
+ /v3/accounts/{account_id}/notifications/{notification_id}:
+ get:
+ description: 'Retrieve an email notifications log entry.
- ```'
- operationId: resetAccountApiKeySecret
+ Note: This endpoint is restricted to administrators.'
+ operationId: getAccountNofificationEntry
parameters:
- - description: Account ID.
+ - description: The ID of the account for which this notification should be retrieved.
in: path
name: account_id
required: true
type: string
- - description: The ID of the API key to reset.
+ - description: The ID of the notification entry to be retrieved.
in: path
- name: apikey_id
+ name: notification_id
required: true
type: string
- - description: New API key attributes to be stored.
- in: body
- name: body
- required: false
- schema:
- $ref: '#/definitions/ApiKeyUpdateReq'
produces:
- application/json
responses:
'200':
- description: Successful operation.
+ description: successful operation
schema:
- $ref: '#/definitions/ApiKeyInfoResp'
+ $ref: '#/definitions/NotificationEntry'
'400':
- description: Error in input data format.
+ description: Error in input data, missing or invalid parameters.
schema:
$ref: '#/definitions/ErrorResponse'
'401':
@@ -9758,46 +15279,78 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'403':
- description: Forbidden.
+ description: Forbidden
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: An account or API key with the specified ID does not exist.
+ description: No entry found for the given ID.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Reset the secret key.
+ summary: Get an email notification.
tags:
- - Tenant accounts - API keys
+ - Tenant accounts - email notification logs
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/branding-colors/dark:
+ /v3/accounts/{account_id}/policy-groups:
get:
- description: 'Retrieve dark theme branding colors for an account.
+ description: 'Retrieve an array of policy groups.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors/dark
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups
\
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer ''
```'
- operationId: getAccountDarkColors
+ operationId: getAllAccountGroups
parameters:
- description: Account ID.
in: path
name: account_id
required: true
type: string
+ - default: 50
+ description: The number of results to return (2-1000). Default 50.
+ format: int32
+ in: query
+ name: limit
+ required: false
+ type: integer
+ - description: The entity ID to retrieve after the given one.
+ in: query
+ name: after
+ required: false
+ type: string
+ - default: ASC
+ description: 'Record order based on creation. Acceptable values: ASC, DESC.
+ Default: ASC.'
+ in: query
+ name: order
+ required: false
+ type: string
+ - description: 'Comma-separated additional data to return. Currently supported:
+ total_count.'
+ in: query
+ name: include
+ required: false
+ type: string
+ - description: Filter for group name.
+ in: query
+ name: name__eq
+ required: false
+ type: string
produces:
- application/json
responses:
'200':
description: Successful operation.
schema:
- $ref: '#/definitions/BrandingColorList'
+ $ref: '#/definitions/GroupSummaryList'
'401':
description: Authentication failure.
schema:
@@ -9807,42 +15360,60 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: Account not found.
+ description: An account with the specified ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Get dark theme branding colors.
+ summary: Get policy groups.
tags:
- - Tenant user interface configuration - colors
+ - Tenant accounts - policy groups
+ x-filter:
+ name:
+ - eq
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- put:
+ post:
consumes:
- application/json
- description: "Update an array of dark theme branding colors of a tenant account.\n\
- \n**Example:**\n```\ncurl -X PUT https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id)/branding-colors/dark\
- \ \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json'\
- \ \\\n'[{ \"reference\": \"primary\",\n \"color\": \"#f3f93e\" }]'\n```"
- operationId: bulkSetAccountDarkColors
+ description: 'Create a new group.
+
+ Note: This endpoint is restricted to administrators.
+
+
+ **Example:**
+
+ ```
+
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups
+ \
+
+ -H ''Authorization: Bearer '' \
+
+ -H ''content-type: application/json'' \
+
+ -d ''{"name": "MyGroup1"}''
+
+ ```'
+ operationId: createAccountGroup
parameters:
- description: Account ID.
in: path
name: account_id
required: true
type: string
- - description: List of branding colors.
+ - description: Details of the group to create.
in: body
name: body
required: true
schema:
- items:
- $ref: '#/definitions/BrandingColor'
- type: array
+ $ref: '#/definitions/GroupCreationInfo'
produces:
- application/json
responses:
- '204':
- description: Colors have been set successfully.
+ '201':
+ description: New entity created.
+ schema:
+ $ref: '#/definitions/GroupSummary'
'400':
- description: Error in input data format.
+ description: Error in input data, for example, invalid group name.
schema:
$ref: '#/definitions/ErrorResponse'
'401':
@@ -9854,40 +15425,44 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: Account not found.
+ description: An account with the specified ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Updates an array of dark theme branding colors.
+ '409':
+ description: A group with that name already exists.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Create a new group.
tags:
- - Tenant user interface configuration - colors
+ - Tenant accounts - policy groups
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/branding-colors/dark/{reference}:
+ /v3/accounts/{account_id}/policy-groups/{group_id}:
delete:
- description: 'Resets the branding color of a tenant account to its dark theme
- default.
+ description: 'Delete a group.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors/dark/{reference}
+ curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}
\
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer ''
```'
- operationId: resetAccountDarkColor
+ operationId: deleteAccountGroup
parameters:
- description: Account ID.
in: path
name: account_id
required: true
type: string
- - description: The name of the branding color.
- enum: *id019
+ - description: The ID of the group to delete.
in: path
- name: reference
+ name: group_id
required: true
type: string
produces:
@@ -9900,42 +15475,43 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'403':
- description: Forbidden.
+ description: Forbidden, or Administrators group cannot be removed.
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: Color or account not found.
+ description: An account or group with that ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Reset branding color to default.
+ summary: Delete a group.
tags:
- - Tenant user interface configuration - colors
+ - Tenant accounts - policy groups
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
get:
- description: 'Retrieve the requested dark theme branding color.
+ description: 'Retrieve policy group details.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors/dark/{reference}
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}
\
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer ''
```'
- operationId: getAccountDarkColor
+ operationId: getAccountGroupSummary
parameters:
- description: Account ID.
in: path
name: account_id
required: true
type: string
- - description: The name of the branding color.
- enum: *id019
+ - description: The ID of the group to retrieve.
in: path
- name: reference
+ name: group_id
required: true
type: string
produces:
@@ -9944,7 +15520,7 @@ paths:
'200':
description: Successful operation.
schema:
- $ref: '#/definitions/BrandingColor'
+ $ref: '#/definitions/GroupSummary'
'401':
description: Authentication failure.
schema:
@@ -9954,61 +15530,63 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: Color or account not found.
+ description: An account or group with that ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Get dark theme branding color.
+ summary: Get policy group.
tags:
- - Tenant user interface configuration - colors
+ - Tenant accounts - policy groups
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- put:
+ post:
consumes:
- application/json
- description: 'Update a dark theme branding color of a tenant account.
+ description: 'Add users and API keys to groups.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X PUT https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id)/branding-colors/dark/primary
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}
\
- -H ''Authorization: Bearer '' \
+ -H ''Authorization: Bearer '' \
-H ''content-type: application/json'' \
- -d ''{ "color": "#f3f93e" }''
+ -d ''{"users": ["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]}''
```'
- operationId: setAccountDarkColor
+ operationId: addSubjectsToAccountGroup
parameters:
- description: Account ID.
in: path
name: account_id
required: true
type: string
- - description: The name of the branding color.
- enum: *id019
+ - description: The ID of the group to update.
in: path
- name: reference
+ name: group_id
required: true
type: string
- - description: The branding color.
+ - description: A list of users and API keys to add to the group.
in: body
name: body
required: true
schema:
- $ref: '#/definitions/BrandingColor'
+ $ref: '#/definitions/SubjectList'
produces:
- application/json
responses:
'200':
- description: Color has been set successfully.
+ description: Successful operation.
schema:
- $ref: '#/definitions/BrandingColor'
+ $ref: '#/definitions/GroupSummary'
'400':
- description: Error in input data format.
+ description: Error in input data, for example, the user or API key does
+ not exist.
schema:
$ref: '#/definitions/ErrorResponse'
'401':
@@ -10020,87 +15598,66 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: Color or account not found.
- schema:
- $ref: '#/definitions/ErrorResponse'
- summary: Updates a dark theme branding color.
- tags:
- - Tenant user interface configuration - colors
- x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/branding-colors/light:
- get:
- description: 'Retrieve light theme branding colors for an account.
-
-
- **Example:**
-
- ```
-
- curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors/light
- \
-
- -H ''Authorization: Bearer ''
-
- ```'
- operationId: getAccountLightColors
- parameters:
- - description: Account ID.
- in: path
- name: account_id
- required: true
- type: string
- produces:
- - application/json
- responses:
- '200':
- description: Successful operation.
- schema:
- $ref: '#/definitions/BrandingColorList'
- '401':
- description: Authentication failure.
- schema:
- $ref: '#/definitions/ErrorResponse'
- '403':
- description: Forbidden.
+ description: An account or group with that ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- '404':
- description: Account not found.
+ '409':
+ description: The user of this API key is a member of the group already.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Get light theme branding colors.
+ summary: Add members to a group.
tags:
- - Tenant user interface configuration - colors
+ - Tenant accounts - policy groups
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
put:
consumes:
- application/json
- description: "Update an array of light theme branding colors of a tenant account.\n\
- \n**Example:**\n```\ncurl -X PUT https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id)/branding-colors/light\
- \ \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json'\
- \ \\\n'[{ \"reference\": \"primary\",\n \"color\": \"purple\" }]'\n```"
- operationId: bulkSetAccountLightColors
+ description: 'Update a group name.
+
+ Note: This endpoint is restricted to administrators.
+
+
+ **Example:**
+
+ ```
+
+ curl -X PUT https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/
+ \
+
+ -H ''Authorization: Bearer '' \
+
+ -H ''content-type: application/json'' \
+
+ -d ''{"name": "TestGroup2"}''
+
+ ```'
+ operationId: updateAccountGroupName
parameters:
- description: Account ID.
in: path
name: account_id
required: true
type: string
- - description: List of branding colors.
+ - description: The ID of the group to update.
+ in: path
+ name: group_id
+ required: true
+ type: string
+ - description: Details of the group to create.
in: body
name: body
required: true
schema:
- items:
- $ref: '#/definitions/BrandingColor'
- type: array
+ $ref: '#/definitions/GroupUpdateInfo'
produces:
- application/json
responses:
- '204':
- description: Colors have been set successfully.
+ '200':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/GroupSummary'
'400':
- description: Error in input data format.
+ description: Error in input data, for example, the group name is too long.
schema:
$ref: '#/definitions/ErrorResponse'
'401':
@@ -10112,47 +15669,67 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: Account not found.
+ description: A group with that ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Updates an array of light theme branding colors.
+ summary: Update the group name.
tags:
- - Tenant user interface configuration - colors
+ - Tenant accounts - policy groups
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/branding-colors/light/{reference}:
+ /v3/accounts/{account_id}/policy-groups/{group_id}/api-keys:
delete:
- description: 'Resets the branding color of a tenant account to its light theme
- default.
+ consumes:
+ - application/json
+ deprecated: true
+ description: 'Remove API keys from groups.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors/light/{reference}
+ curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/api-keys
\
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer '' \
+
+ -H ''content-type: application/json'' \
+
+ -d ''{"apikeys": ["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]}''
```'
- operationId: resetAccountLightColor
+ operationId: removeApiKeysFromAccountGroup
parameters:
- description: Account ID.
in: path
name: account_id
required: true
type: string
- - description: The name of the branding color.
- enum: *id019
+ - description: The ID of the group to remove API keys from.
in: path
- name: reference
+ name: group_id
required: true
type: string
+ - description: A list of API keys to remove from the group.
+ in: body
+ name: body
+ required: true
+ schema:
+ $ref: '#/definitions/SubjectList'
produces:
- application/json
responses:
- '204':
- description: Deleted successfully.
+ '200':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/GroupSummary'
+ '400':
+ description: Error in input data, for example, the array of API keys is
+ missing.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
'401':
description: Authentication failure.
schema:
@@ -10162,46 +15739,79 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: Color or account not found.
+ description: An account or group with that ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Reset branding color to default.
+ summary: Remove API keys from a group.
tags:
- - Tenant user interface configuration - colors
+ - Tenant accounts - policy groups
+ x-deprecation:
+ comment: This endpoint is deprecated. Use POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/api-keys/remove
+ end_of_life_at: '2020-07-11T11:04:57+00:00'
+ issued_at: '2019-07-11T11:04:57+00:00'
+ links: []
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
get:
- description: 'Retrieve the requested light theme branding color.
+ deprecated: true
+ description: 'Retrieve an array of API keys associated with a policy group.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors/light/{reference}
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/api-keys
+ \
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer ''
```'
- operationId: getAccountLightColor
+ operationId: getApiKeysOfAccountGroup
parameters:
- description: Account ID.
in: path
name: account_id
required: true
type: string
- - description: The name of the branding color.
- enum: *id019
+ - description: The ID of the group to retrieve API keys for.
in: path
- name: reference
+ name: group_id
required: true
type: string
+ - default: 50
+ description: The number of results to return (2-1000). Default 50.
+ format: int32
+ in: query
+ name: limit
+ required: false
+ type: integer
+ - description: The entity ID to retrieve after the given one.
+ in: query
+ name: after
+ required: false
+ type: string
+ - default: ASC
+ description: 'Record order based on creation. Acceptable values: ASC, DESC.
+ Default: ASC.'
+ in: query
+ name: order
+ required: false
+ type: string
+ - description: 'Comma-separated additional data to return. Currently supported:
+ total_count.'
+ in: query
+ name: include
+ required: false
+ type: string
produces:
- application/json
responses:
'200':
description: Successful operation.
schema:
- $ref: '#/definitions/BrandingColor'
+ $ref: '#/definitions/ApiKeyInfoRespList'
'401':
description: Authentication failure.
schema:
@@ -10211,61 +15821,62 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: Color or account not found.
+ description: An account or group with that ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Get light theme branding color.
+ summary: Get API keys in a group.
tags:
- - Tenant user interface configuration - colors
+ - Tenant accounts - policy groups
+ x-deprecation:
+ comment: This endpoint is deprecated. Use GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/applications
+ end_of_life_at: '2021-08-01T00:00:00+00:00'
+ issued_at: '2020-08-01T00:00:00+00:00'
+ links: []
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- put:
- consumes:
- - application/json
- description: 'Update a light theme branding color of a tenant account.
+ post:
+ deprecated: true
+ description: 'Add API keys to account groups.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X PUT https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id)/branding-colors/light/primary
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/api-keys
\
- -H ''Authorization: Bearer '' \
-
- -H ''content-type: application/json'' \
-
- -d ''{ "color": "purple" }''
+ -H ''Authorization: Bearer ''
```'
- operationId: setAccountLightColor
+ operationId: addApiKeysToAccountGroup
parameters:
- - description: Account ID.
+ - description: The ID of the account.
in: path
name: account_id
required: true
type: string
- - description: The name of the branding color.
- enum: *id019
+ - description: The ID of the group to retrieve API keys for.
in: path
- name: reference
+ name: group_id
required: true
type: string
- - description: The branding color.
+ - description: A list of API keys to add to the group.
in: body
name: body
required: true
schema:
- $ref: '#/definitions/BrandingColor'
+ $ref: '#/definitions/SubjectList'
produces:
- application/json
responses:
'200':
- description: Color set successfully.
+ description: Successful operation.
schema:
- $ref: '#/definitions/BrandingColor'
+ $ref: '#/definitions/GroupSummary'
'400':
- description: Error in input data format.
+ description: Successful operation.
schema:
$ref: '#/definitions/ErrorResponse'
'401':
@@ -10277,42 +15888,73 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: Color or account not found.
+ description: An account or group with that ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Updates light theme branding color.
+ '409':
+ description: The API Key is a member of the group or account already.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Add API keys to Account group.
tags:
- - Tenant user interface configuration - colors
+ - Tenant accounts - policy groups
+ x-deprecation:
+ comment: This endpoint is deprecated. use POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/api-keys/add/
+ end_of_life_at: '2020-07-11T11:04:57+00:00'
+ issued_at: '2019-07-11T11:04:57+00:00'
+ links: []
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/branding-images/dark:
- get:
- description: 'Retrieve the metadata of all dark theme branding images.
+ /v3/accounts/{account_id}/policy-groups/{group_id}/api-keys/add:
+ post:
+ deprecated: true
+ description: 'Add API keys to account groups.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/dark
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/api-keys/add
\
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer '' \
+
+ -H ''content-type: application/json'' \
+
+ -d ''{"apikeys": ["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]}''
```'
- operationId: getAllAccountDarkImageData
+ operationId: addListedApiKeysToAccountGroup
parameters:
- - description: Account ID.
+ - description: The ID of the account.
in: path
name: account_id
required: true
type: string
+ - description: The ID of the group to remove API keys from.
+ in: path
+ name: group_id
+ required: true
+ type: string
+ - description: A list of API keys to add to the group.
+ in: body
+ name: body
+ required: true
+ schema:
+ $ref: '#/definitions/SubjectList'
produces:
- application/json
responses:
'200':
description: Successful operation.
schema:
- $ref: '#/definitions/BrandingImageList'
+ $ref: '#/definitions/GroupSummary'
+ '400':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
'401':
description: Authentication failure.
schema:
@@ -10322,48 +15964,76 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: Account not found.
+ description: An account or group with that ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Get metadata of all dark theme images.
+ '409':
+ description: The API key is a member of the account group already.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Add API keys to account group.
tags:
- - Tenant user interface configuration - images
+ - Tenant accounts - policy groups
+ x-deprecation:
+ comment: This endpoint is deprecated. Use GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/applications/add
+ end_of_life_at: '2021-08-01T00:00:00+00:00'
+ issued_at: '2020-08-01T00:00:00+00:00'
+ links: []
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/branding-images/dark/{reference}:
- get:
- description: 'Retrieve metadata of one account dark theme branding image.
+ /v3/accounts/{account_id}/policy-groups/{group_id}/api-keys/remove:
+ post:
+ consumes:
+ - application/json
+ deprecated: true
+ description: 'Remove API keys from groups.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/dark/{reference}
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/api-keys/remove
\
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer '' \
+
+ -H ''content-type: application/json'' \
+
+ -d ''{"apikeys": ["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]}''
```'
- operationId: getAccountDarkImageData
+ operationId: removeListedApiKeysFromAccountGroup
parameters:
- - description: Account ID.
+ - description: The ID of the account.
in: path
name: account_id
required: true
type: string
- - description: Name of the branding images (icon or picture).
- enum: *id020
+ - description: The ID of the group to remove API keys from.
in: path
- name: reference
+ name: group_id
required: true
type: string
+ - description: A list of API keys to remove from the group.
+ in: body
+ name: body
+ required: true
+ schema:
+ $ref: '#/definitions/SubjectList'
produces:
- application/json
responses:
'200':
description: Successful operation.
schema:
- $ref: '#/definitions/BrandingImage'
+ $ref: '#/definitions/GroupSummary'
+ '400':
+ description: Error in input data, for example, the array of API keys is
+ missing.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
'401':
description: Authentication failure.
schema:
@@ -10373,46 +16043,77 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: Unknown image reference, or account not found.
+ description: An account or group with that ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Get metadata of a dark theme image.
+ summary: Remove API keys from a group.
tags:
- - Tenant user interface configuration - images
+ - Tenant accounts - policy groups
+ x-deprecation:
+ comment: This endpoint is deprecated. Use GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/applications/remove
+ end_of_life_at: '2021-08-01T00:00:00+00:00'
+ issued_at: '2020-08-01T00:00:00+00:00'
+ links: []
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/branding-images/dark/{reference}/clear:
- post:
- description: 'Revert an account branding image to dark theme default.
+ /v3/accounts/{account_id}/policy-groups/{group_id}/applications:
+ get:
+ description: 'Retrieve an array of applications associated with a policy group.
**Example:**
```
- curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/dark/{reference}/clear
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/applications
\
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer ''
```'
- operationId: clearAccountDarkImage
+ operationId: getApplicationsOfAccountGroup
parameters:
- - description: Account ID.
+ - description: The ID of the account.
in: path
name: account_id
required: true
type: string
- - description: Name of the branding images (icon or picture).
- enum: *id020
+ - description: The ID of the group to retrieve applications for.
in: path
- name: reference
+ name: group_id
required: true
type: string
+ - default: 50
+ description: The number of results to return (2-1000). Default 50.
+ format: int32
+ in: query
+ name: limit
+ required: false
+ type: integer
+ - description: The entity ID to retrieve after the given one.
+ in: query
+ name: after
+ required: false
+ type: string
+ - default: ASC
+ description: 'Record order based on creation. Acceptable values: ASC, DESC.
+ Default: ASC.'
+ in: query
+ name: order
+ required: false
+ type: string
+ - description: 'Comma-separated additional data to return. Currently supported:
+ total_count.'
+ in: query
+ name: include
+ required: false
+ type: string
produces:
- application/json
responses:
- '204':
- description: Image reverted successfully.
+ '200':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/ApplicationList'
'401':
description: Authentication failure.
schema:
@@ -10422,69 +16123,59 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: Unknown image reference, or account not found.
+ description: An account or group with that ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Revert an image to dark theme default.
+ summary: Get applications in a group.
tags:
- - Tenant user interface configuration - images
+ - Tenant accounts - policy groups
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/branding-images/dark/{reference}/upload:
+ /v3/accounts/{account_id}/policy-groups/{group_id}/applications/add:
post:
- consumes:
- - image/png
- - image/jpeg
- description: 'Upload a new account dark theme branding image in PNG or JPEG
- format.
+ description: 'Add applications to account groups.
**Example:**
```
- curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/dark/{reference}/upload
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/applications/add
\
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer '' \
- -H ''content-type: image/png'' --data-binary ''@myimage.png''
+ -H ''content-type: application/json'' \
+
+ -d ''{"applications": ["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]}''
```'
- operationId: uploadAccountDarkImage
+ operationId: addListedApplicationsToAccountGroup
parameters:
- - description: Account ID.
+ - description: The ID of the account.
in: path
name: account_id
required: true
type: string
- - description: Name of the branding images (icon or picture).
- enum: *id020
+ - description: The ID of the group to add applications to.
in: path
- name: reference
+ name: group_id
required: true
type: string
- - description: The image in PNG or JPEG format.
+ - description: A list of applications to add to the group.
in: body
name: body
required: true
schema:
- $ref: '#/definitions/Image'
+ $ref: '#/definitions/SubjectList'
produces:
- application/json
responses:
- '201':
- description: Image uploaded successfully.
- headers:
- Content-Location:
- description: Location of the image metadata.
- type: string
- Location:
- description: Location of the image binary.
- type: string
+ '200':
+ description: Successful operation.
schema:
- $ref: '#/definitions/BrandingImage'
+ $ref: '#/definitions/GroupSummary'
'400':
- description: Error in input data format, for example, image is too large.
+ description: Successful operation.
schema:
$ref: '#/definitions/ErrorResponse'
'401':
@@ -10496,53 +16187,66 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: Unknown image reference, or account not found.
+ description: An account or group with that ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Upload a dark theme image.
+ '409':
+ description: The application is a member of the group already.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Add applications to account group.
tags:
- - Tenant user interface configuration - images
+ - Tenant accounts - policy groups
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/branding-images/dark/{reference}/upload-multipart:
+ /v3/accounts/{account_id}/policy-groups/{group_id}/applications/remove:
post:
consumes:
- - multipart/form-data
- description: Upload a new account dark theme branding image as form data in
- PNG or JPEG format.
- operationId: uploadAccountDarkImageMultipart
+ - application/json
+ description: 'Remove applications from groups.
+
+
+ **Example:**
+
+ ```
+
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/applications/remove
+ \
+
+ -H ''Authorization: Bearer '' \
+
+ -H ''content-type: application/json'' \
+
+ -d ''{"applications": ["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]}''
+
+ ```'
+ operationId: removeListedApplicationsFromAccountGroup
parameters:
- - description: Account ID.
+ - description: The ID of the account.
in: path
name: account_id
required: true
type: string
- - description: Name of the branding images (icon or picture).
- enum: *id020
+ - description: The ID of the group to remove applications from.
in: path
- name: reference
+ name: group_id
required: true
type: string
- - description: The image in PNG or JPEG format as multipart form data.
- in: formData
- name: image
+ - description: A list of applications to remove from the group.
+ in: body
+ name: body
required: true
- type: file
+ schema:
+ $ref: '#/definitions/SubjectList'
produces:
- application/json
responses:
- '201':
- description: Image uploaded successfully.
- headers:
- Content-Location:
- description: Location of the image metadata.
- type: string
- Location:
- description: Location of the image binary.
- type: string
+ '200':
+ description: Successful operation.
schema:
- $ref: '#/definitions/BrandingImage'
+ $ref: '#/definitions/GroupSummary'
'400':
- description: Error in input data format, for example, image is too large.
+ description: Error in input data, for example, the array of applications
+ is missing.
schema:
$ref: '#/definitions/ErrorResponse'
'401':
@@ -10554,42 +16258,53 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: Unknown image reference.
+ description: An account or group with that ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Upload a dark theme image.
+ summary: Remove applications from a group.
tags:
- - Tenant user interface configuration - images
+ - Tenant accounts - policy groups
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/branding-images/light:
- get:
- description: 'Retrieve the metadata of all light theme branding images.
-
-
- **Example:**
-
- ```
-
- curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/light
- \
-
- -H ''Authorization: Bearer ''
-
- ```'
- operationId: getAllAccountLightImageData
+ /v3/accounts/{account_id}/policy-groups/{group_id}/users:
+ delete:
+ consumes:
+ - application/json
+ deprecated: true
+ description: "Remove users from groups.\nNote: This endpoint is restricted\
+ \ to administrators.\n\n**Example:**\n```\ncurl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/users\
+ \ \\\n-H 'Authorization: Bearer ' \\\n -H 'content-type: application/json'\
+ \ \\\n-d '{\"users\": [\"0162056a9a1586f30242590700000000\",\"0117056a9a1586f30242590700000000\"\
+ ]}'\n```"
+ operationId: removeUsersFromAccountGroup
parameters:
- description: Account ID.
in: path
name: account_id
required: true
type: string
+ - description: The ID of the group to remove users from.
+ in: path
+ name: group_id
+ required: true
+ type: string
+ - description: A list of users to remove from the group.
+ in: body
+ name: body
+ required: true
+ schema:
+ $ref: '#/definitions/SubjectList'
produces:
- application/json
responses:
'200':
description: Successful operation.
schema:
- $ref: '#/definitions/BrandingImageList'
+ $ref: '#/definitions/GroupSummary'
+ '400':
+ description: Error in input data, for example, the last user to remove from
+ Administrators group.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
'401':
description: Authentication failure.
schema:
@@ -10599,48 +16314,94 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: Account not found.
+ description: An account or group with that ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Get metadata of all light theme images.
+ summary: Remove users from a group.
tags:
- - Tenant user interface configuration - images
+ - Tenant accounts - policy groups
+ x-deprecation:
+ comment: This endpoint is deprecated. Use POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/users/remove/
+ end_of_life_at: '2020-07-11T11:04:57+00:00'
+ issued_at: '2019-07-11T11:04:57+00:00'
+ links: []
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/branding-images/light/{reference}:
get:
- description: 'Retrieve metadata for one account light theme branding image.
+ description: 'Retrieve an array of users associated with a policy group.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/light/{reference}
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/users
\
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer ''
```'
- operationId: getAccountLightImageData
+ operationId: getUsersOfAccountGroup
parameters:
- description: Account ID.
in: path
name: account_id
required: true
type: string
- - description: Name of the branding images (icon or picture).
- enum: *id020
+ - description: The ID of the group to retrieve users for.
in: path
- name: reference
+ name: group_id
required: true
type: string
+ - default: 50
+ description: The number of results to return (2-1000). Default 50.
+ format: int32
+ in: query
+ name: limit
+ required: false
+ type: integer
+ - description: The entity ID to retrieve after the given one.
+ in: query
+ name: after
+ required: false
+ type: string
+ - default: ASC
+ description: 'Record order based on creation. Acceptable values: ASC, DESC.
+ Default: ASC.'
+ in: query
+ name: order
+ required: false
+ type: string
+ - description: 'Comma-separated additional data to return. Currently supported:
+ total_count.'
+ in: query
+ name: include
+ required: false
+ type: string
+ - description: An optional filter to retrieve users by status.
+ in: query
+ name: status__eq
+ required: false
+ type: string
+ - description: An optional filter to retrieve users with a specified set of
+ statuses.
+ in: query
+ name: status__in
+ required: false
+ type: string
+ - description: An optional filter to exclude users with a specified set of statuses.
+ in: query
+ name: status__nin
+ required: false
+ type: string
produces:
- application/json
responses:
'200':
description: Successful operation.
schema:
- $ref: '#/definitions/BrandingImage'
+ $ref: '#/definitions/UserInfoRespList'
'401':
description: Authentication failure.
schema:
@@ -10650,44 +16411,64 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: Unknown image reference, or account not found.
+ description: An account or group with that ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Get metadata of a light theme image.
+ summary: Get users in a policy group.
tags:
- - Tenant user interface configuration - images
+ - Tenant accounts - policy groups
+ x-filter:
+ status:
+ - eq
+ - in
+ - nin
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/branding-images/light/{reference}/clear:
post:
- description: 'Revert an account branding image to light theme default.
+ deprecated: true
+ description: 'Add users to account group.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
- ```curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/light/{reference}/clear
+ ```
+
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/users
\
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer ''
```'
- operationId: clearAccountLightImage
+ operationId: addUsersToAccountGroup
parameters:
- - description: Account ID.
+ - description: The ID of the account.
in: path
name: account_id
required: true
type: string
- - description: Name of the branding images (icon or picture).
- enum: *id020
+ - description: The ID of the group to add users to.
in: path
- name: reference
+ name: group_id
required: true
type: string
+ - description: A list of user IDs to add to the group.
+ in: body
+ name: body
+ required: true
+ schema:
+ $ref: '#/definitions/SubjectList'
produces:
- application/json
responses:
- '204':
- description: Image reverted successfully.
+ '200':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/GroupSummary'
+ '400':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
'401':
description: Authentication failure.
schema:
@@ -10697,69 +16478,66 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: Unknown image reference, or account not found.
+ description: An account or group with that ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Revert an image to light theme default.
+ '409':
+ description: The user is a member of the account group already.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Add users to account group.
tags:
- - Tenant user interface configuration - images
+ - Tenant accounts - policy groups
+ x-deprecation:
+ comment: This endpoint is deprecated. Use POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/users/add/
+ end_of_life_at: '2020-07-11T11:04:57+00:00'
+ issued_at: '2019-07-11T11:04:57+00:00'
+ links: []
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/branding-images/light/{reference}/upload:
+ /v3/accounts/{account_id}/policy-groups/{group_id}/users/add:
post:
- consumes:
- - image/png
- - image/jpeg
- description: 'Upload a new account light theme branding image in PNG or JPEG
- format.
+ description: 'Add users to account group.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/light/{reference}/upload
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/users/add
\
- -H ''Authorization: Bearer '' \
-
- -H ''content-type: image/png'' --data-binary ''@myimage.png''
+ -H ''Authorization: Bearer ''
```'
- operationId: uploadAccountLightImage
+ operationId: addListedUsersToAccountGroup
parameters:
- - description: Account ID.
+ - description: The ID of the account.
in: path
name: account_id
required: true
type: string
- - description: Name of the branding images (icon or picture).
- enum: *id020
+ - description: The ID of the group to retrieve users for.
in: path
- name: reference
+ name: group_id
required: true
type: string
- - description: The image in PNG or JPEG format.
+ - description: A list of users to add to the group.
in: body
name: body
required: true
schema:
- $ref: '#/definitions/Image'
+ $ref: '#/definitions/SubjectList'
produces:
- application/json
responses:
- '201':
- description: Image uploaded successfully.
- headers:
- Content-Location:
- description: Location of image metadata.
- type: string
- Location:
- description: Location of the image binary.
- type: string
+ '200':
+ description: Successful operation.
schema:
- $ref: '#/definitions/BrandingImage'
+ $ref: '#/definitions/GroupSummary'
'400':
- description: Error in input data format, for example, image is too large.
+ description: Successful operation.
schema:
$ref: '#/definitions/ErrorResponse'
'401':
@@ -10771,53 +16549,54 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: Unknown image reference, or account not found.
+ description: An account or group with that ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Upload a light theme image.
+ '409':
+ description: The user is a member of the account group already.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Add users to account group.
tags:
- - Tenant user interface configuration - images
+ - Tenant accounts - policy groups
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/branding-images/light/{reference}/upload-multipart:
+ /v3/accounts/{account_id}/policy-groups/{group_id}/users/remove:
post:
consumes:
- - multipart/form-data
- description: Upload a new account branding image as form data in PNG or JPEG
- format.
- operationId: uploadAccountLightImageMultipart
+ - application/json
+ description: "Remove users from groups.\nNote: This endpoint is restricted\
+ \ to administrators.\n\n**Example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/users/remove\
+ \ \\\n-H 'Authorization: Bearer ' \\\n -H 'content-type: application/json'\
+ \ \\\n-d '{\"users\": [\"0162056a9a1586f30242590700000000\",\"0117056a9a1586f30242590700000000\"\
+ ]}'\n```"
+ operationId: removeListedUsersFromAccountGroup
parameters:
- - description: Account ID.
+ - description: The ID of the account.
in: path
name: account_id
required: true
type: string
- - description: Name of the branding images (icon or picture).
- enum: *id020
+ - description: The ID of the group to remove users from.
in: path
- name: reference
+ name: group_id
required: true
type: string
- - description: The image in PNG or JPEG format as multipart form data.
- in: formData
- name: image
+ - description: A list of users to remove from the group.
+ in: body
+ name: body
required: true
- type: file
+ schema:
+ $ref: '#/definitions/SubjectList'
produces:
- application/json
responses:
- '201':
- description: Image uploaded successfully.
- headers:
- Content-Location:
- description: Location of the image metadata.
- type: string
- Location:
- description: Location of the image binary.
- type: string
+ '200':
+ description: Successful operation.
schema:
- $ref: '#/definitions/BrandingImage'
+ $ref: '#/definitions/GroupSummary'
'400':
- description: Error in input data format, for example, image is too large.
+ description: Error in input data, for example, the last user to remove from
+ Administrators group.
schema:
$ref: '#/definitions/ErrorResponse'
'401':
@@ -10829,19 +16608,31 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: Unknown image reference.
+ description: An account or group with that ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Upload a light theme image.
+ summary: Remove users from a group.
tags:
- - Tenant user interface configuration - images
+ - Tenant accounts - policy groups
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/identity-providers:
+ /v3/accounts/{account_id}/trusted-certificates:
get:
- consumes:
- - application/json
- description: Retrieve identity providers in an array.
- operationId: getAllAccountIdentityProviders
+ description: 'Retrieve an array of trusted certificates.
+
+ Note: This endpoint is restricted to administrators.
+
+
+ **Example:**
+
+ ```
+
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/trusted-certificates
+ \
+
+ -H ''Authorization: Bearer ''
+
+ ```'
+ operationId: getAllAccountCertificates
parameters:
- description: Account ID.
in: path
@@ -10855,14 +16646,14 @@ paths:
name: limit
required: false
type: integer
- - description: The entity ID to fetch after the given one.
+ - description: The entity ID to retrieve after the given one.
in: query
name: after
required: false
type: string
- default: ASC
- description: 'Record order based on creation time. Acceptable values: ASC,
- DESC. Default: ASC.'
+ description: 'Record order based on creation. Acceptable values: ASC, DESC.
+ Default: ASC.'
in: query
name: order
required: false
@@ -10873,70 +16664,168 @@ paths:
name: include
required: false
type: string
+ - description: Filter for certificate name.
+ in: query
+ name: name__eq
+ required: false
+ type: string
+ - description: Filter for service.
+ in: query
+ name: service__eq
+ required: false
+ type: string
+ - description: Filter for expire.
+ format: int32
+ in: query
+ name: expire__eq
+ required: false
+ type: integer
+ - description: Filter for developer certificates.
+ format: int32
+ in: query
+ name: device_execution_mode__eq
+ required: false
+ type: integer
+ - description: Filter for not developer certificates.
+ format: int32
+ in: query
+ name: device_execution_mode__neq
+ required: false
+ type: integer
+ - description: Owner name filter.
+ in: query
+ name: owner__eq
+ required: false
+ type: string
+ - description: Enrollment mode filter.
+ in: query
+ name: enrollment_mode__eq
+ required: false
+ type: boolean
+ - description: Filter for certificate status.
+ in: query
+ name: status__eq
+ required: false
+ type: string
+ - description: 'Filter for issuer. Finds all matches where the filter value
+ is a case-insensitive substring of the result. Example: issuer__like=cn=iss
+ matches CN=issuer.'
+ in: query
+ name: issuer__like
+ required: false
+ type: string
+ - description: 'Filter for subject. Finds all matches where the filter value
+ is a case-insensitive substring of the result. Example: subject__like=cn=su
+ matches CN=subject.'
+ in: query
+ name: subject__like
+ required: false
+ type: string
+ - description: Filter for certificate fingerprint.
+ in: query
+ name: certificate_fingerprint__eq
+ required: false
+ type: string
+ - description: Filter for finding certificates by validity. True returns certificates
+ which are not yet expired. False returns certificates which have expired.
+ in: query
+ name: valid__eq
+ required: false
+ type: boolean
produces:
- application/json
responses:
'200':
description: Successful operation.
schema:
- $ref: '#/definitions/IdentityProviderList'
+ $ref: '#/definitions/TrustedCertificateRespList'
'401':
description: Authentication failure.
schema:
$ref: '#/definitions/ErrorResponse'
'403':
- description: Forbidden.
+ description: Forbidden, only available for administrators of commercial
+ accounts.
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: Account not found.
+ description: An account with the given ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Get all identity providers.
+ summary: Get trusted certificates.
tags:
- - Tenant accounts - identity providers
+ - Tenant security and identity - certificates
+ x-filter:
+ certificate_fingerprint:
+ - eq
+ device_execution_mode:
+ - eq
+ - neq
+ enrollment_mode:
+ - eq
+ expire:
+ - eq
+ issuer:
+ - like
+ name:
+ - eq
+ owner:
+ - eq
+ service:
+ - eq
+ status:
+ - eq
+ subject:
+ - like
+ valid:
+ - eq
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
post:
consumes:
- application/json
- description: Create a new identity provider.
- operationId: createAccountIdentityProvider
+ description: 'Upload new trusted certificate.
+
+ Note: This endpoint is restricted to administrators.
+
+
+ **Example:**
+
+ ```
+
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/trusted-certificates
+ \
+
+ -H ''Authorization: Bearer '' \
+
+ -H ''content-type: application/json'' \
+
+ -d {"name": "myCert1", "description": "very important cert", "certificate":
+ "certificate_data", "service": "lwm2m"}
+
+ ```'
+ operationId: addAccountCertificate
parameters:
- description: Account ID.
in: path
name: account_id
required: true
type: string
- - allowEmptyValue: true
- description: 'Indicates that the OpenID Connect endpoints and keys should
- be set using the OpenID Connect Discovery mechanism. The following parameters
- are set automatically: * authorization_endpoint * token_endpoint * userinfo_endpoint
- * revocation_endpoint * jwks_uri * keys'
- in: query
- name: discovery
- type: boolean
- - description: Details of the identity provider to create.
+ - description: A trusted certificate object with attributes. Signature is optional.
in: body
name: body
required: true
schema:
- $ref: '#/definitions/IdentityProviderCreationReq'
+ $ref: '#/definitions/TrustedCertificateReq'
produces:
- application/json
responses:
'201':
description: New entity created.
- headers:
- Content-Location:
- description: /v3/accounts/{account_id}/identity-providers/{identity_provider_id}
- type: string
- Location:
- description: /v3/accounts/{account_id}/identity-providers/{identity_provider_id}
- type: string
schema:
- $ref: '#/definitions/IdentityProviderInfo'
+ $ref: '#/definitions/TrustedCertificateResp'
'400':
- description: Error in input data, for example, too long name.
+ description: Invalid certificate data, certificate validation failed, certificate
+ already expired or certificate uses unsupported, or weak cipher.
schema:
$ref: '#/definitions/ErrorResponse'
'401':
@@ -10944,30 +16833,45 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'403':
- description: Forbidden.
+ description: Forbidden, only available for administrators of commercial
+ accounts.
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: Account not found.
+ description: An account with the given ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Create a new identity provider.
+ summary: Upload new trusted certificate.
tags:
- - Tenant accounts - identity providers
+ - Tenant security and identity - certificates
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/identity-providers/{identity_provider_id}:
+ /v3/accounts/{account_id}/trusted-certificates/{cert_id}:
delete:
- description: Delete an identity provider by ID.
- operationId: deleteAccountIdentityProvider
+ description: 'Delete a trusted certificate.
+
+ Note: This endpoint is restricted to administrators.
+
+
+ **Example:**
+
+ ```
+
+ curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/trusted-certificates/{cert_id}
+ \
+
+ -H ''Authorization: Bearer ''
+
+ ```'
+ operationId: deleteAccountCertificate
parameters:
- description: Account ID.
in: path
name: account_id
required: true
type: string
- - description: The ID of the identity provider to delete.
+ - description: The ID of the trusted certificate to delete.
in: path
- name: identity_provider_id
+ name: cert_id
required: true
type: string
produces:
@@ -10980,29 +16884,44 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'403':
- description: Forbidden, or identity provider is in use.
+ description: Forbidden, only available for administrators of commercial
+ accounts.
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: Account or identity provider not found.
+ description: An account or certificate with the given ID not found.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Delete an identity provider by ID.
+ summary: Delete a trusted certificate by ID.
tags:
- - Tenant accounts - identity providers
+ - Tenant security and identity - certificates
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
get:
- description: Manage identity providers of a tenant account.
- operationId: getAccountIdentityProvider
+ description: 'Retrieve a trusted certificate.
+
+ Note: This endpoint is restricted to administrators.
+
+
+ **Example:**
+
+ ```
+
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/trusted-certificates/{cert_id}
+ \
+
+ -H ''Authorization: Bearer ''
+
+ ```'
+ operationId: getAccountCertificate
parameters:
- description: Account ID.
in: path
name: account_id
required: true
type: string
- - description: The ID of the identity provider to retrieve.
+ - description: The ID of the trusted certificate to retrieve.
in: path
- name: identity_provider_id
+ name: cert_id
required: true
type: string
produces:
@@ -11011,62 +16930,59 @@ paths:
'200':
description: Successful operation.
schema:
- $ref: '#/definitions/IdentityProviderInfo'
+ $ref: '#/definitions/TrustedCertificateResp'
'401':
description: Authentication failure.
schema:
$ref: '#/definitions/ErrorResponse'
'403':
- description: Forbidden.
+ description: Forbidden, only available for administrators of commercial
+ accounts.
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: Account or identity provider not found.
+ description: An account or certificate with the given ID not found.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Retrieve identity provider by ID.
+ summary: Get a trusted certificate.
tags:
- - Tenant accounts - identity providers
+ - Tenant security and identity - certificates
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
put:
consumes:
- application/json
- description: Update an existing identity provider.
- operationId: updateAccountIdentityProvider
+ description: "Update a trusted certificate.\nNote: This endpoint is restricted\
+ \ to administrators.\n\n**Example:**\n```\ncurl -X PUT https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/trusted-certificates/{cert_id}\
+ \ \\\n -H 'Authorization: Bearer ' \\\n -H 'content-type: application/json'\
+ \ \\\n -d {\"description\": \"very important cert\"}\n ```"
+ operationId: updateAccountCertificate
parameters:
- description: Account ID.
in: path
name: account_id
required: true
type: string
- - description: The ID of the identity provider to update.
+ - description: The ID of the trusted certificate to update.
in: path
- name: identity_provider_id
+ name: cert_id
required: true
type: string
- - allowEmptyValue: true
- description: 'Indicates that the OpenID Connect endpoints and keys should
- be set using the OpenID Connect Discovery mechanism. The following parameters
- are set automatically: * authorization_endpoint * token_endpoint * userinfo_endpoint
- * revocation_endpoint * jwks_uri * keys'
- in: query
- name: discovery
- type: boolean
- - description: Details of the identity provider to update.
+ - description: A trusted certificate object with attributes.
in: body
name: body
required: true
schema:
- $ref: '#/definitions/IdentityProviderUpdateReq'
+ $ref: '#/definitions/TrustedCertificateUpdateReq'
produces:
- application/json
responses:
'200':
description: Successful operation.
schema:
- $ref: '#/definitions/IdentityProviderInfo'
+ $ref: '#/definitions/TrustedCertificateResp'
'400':
- description: Error in input data, for example, missing name.
+ description: Invalid certificate data, certificate validation failed, certificate
+ already expired or certificate uses unsupported, or weak cipher.
schema:
$ref: '#/definitions/ErrorResponse'
'401':
@@ -11074,45 +16990,73 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'403':
- description: Forbidden.
+ description: Forbidden, only available for administrators of commercial
+ accounts.
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: Account or identity provider not found.
+ description: An account or certificate with the given ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Update an existing identity provider.
+ summary: Update trusted certificate.
tags:
- - Tenant accounts - identity providers
+ - Tenant security and identity - certificates
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/identity-providers/{identity_provider_id}/delete-sp-certificate:
- post:
- consumes:
- - application/json
- description: Delete a service provider certificate.
- operationId: deleteAccountSpCertificate
+ /v3/accounts/{account_id}/user-invitations:
+ get:
+ description: 'Retrieve an array of active user invitations.
+
+ Note: This endpoint is restricted to administrators.
+
+
+ **Example:**
+
+ ```
+
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/user-invitations
+ \
+
+ -H ''Authorization: Bearer ''
+
+ ```'
+ operationId: getAllAccountInvitations
parameters:
- description: Account ID.
in: path
name: account_id
required: true
type: string
- - description: The ID of the identity provider whose certificate should be deleted.
- in: path
- name: identity_provider_id
- required: true
+ - default: 50
+ description: The number of results to return (2-1000). Default 50.
+ format: int32
+ in: query
+ name: limit
+ required: false
+ type: integer
+ - description: The entity ID to retrieve after the given one.
+ in: query
+ name: after
+ required: false
+ type: string
+ - default: ASC
+ description: 'Record order based on creation. Acceptable values: ASC, DESC.
+ Default: ASC.'
+ in: query
+ name: order
+ required: false
+ type: string
+ - description: Filter to retrieve user invitations by a specified login profile.
+ in: query
+ name: login_profiles__eq
+ required: false
type: string
produces:
- application/json
responses:
'200':
description: Successful operation.
- headers:
- Content-Location:
- description: /v3/accounts/{account_id}/identity-providers/{identity_provider_id}
- type: string
schema:
- $ref: '#/definitions/IdentityProviderInfo'
+ $ref: '#/definitions/UserInvitationRespList'
'401':
description: Authentication failure.
schema:
@@ -11122,99 +17066,60 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: Account or identity provider not found.
+ description: An account with the specified ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Delete the service provider certificate.
+ summary: Get user invitations.
tags:
- - Tenant accounts - identity providers
+ - Tenant accounts - user invitations
+ x-filter:
+ login_profiles:
+ - eq
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/identity-providers/{identity_provider_id}/generate-sp-certificate:
post:
consumes:
- application/json
- description: Generate a new service provider certificate.
- operationId: generateAccountSpCertificate
+ description: 'Invite a new or existing user.
+
+ Note: This endpoint is restricted to administrators.
+
+
+ **Example:**
+
+ ```
+
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/accouns/{account_id}/user-invitations
+ \
+
+ -H ''Authorization: Bearer '' \
+
+ -H ''content-type: application/json'' \
+
+ -d {"email": "myemail@company.com"}
+
+ ```'
+ operationId: createAccountInvitation
parameters:
- description: Account ID.
in: path
name: account_id
required: true
type: string
- - description: The ID of the identity provider for which to generate a certificate.
- in: path
- name: identity_provider_id
- required: true
- type: string
- - description: Details of the service provider certificate to be generated.
+ - description: A user invitation object with attributes.
in: body
name: body
required: true
schema:
- $ref: '#/definitions/CertificateGenerationReq'
- produces:
- - application/json
- responses:
- '200':
- description: Successful operation.
- headers:
- Content-Location:
- description: /v3/accounts/{account_id}/identity-providers/{identity_provider_id}
- type: string
- schema:
- $ref: '#/definitions/IdentityProviderInfo'
- '400':
- description: Error in input data, for example, invalid certificate validity
- value.
- schema:
- $ref: '#/definitions/ErrorResponse'
- '401':
- description: Authentication failure.
- schema:
- $ref: '#/definitions/ErrorResponse'
- '403':
- description: Forbidden.
- schema:
- $ref: '#/definitions/ErrorResponse'
- '404':
- description: Account or identity provider not found.
- schema:
- $ref: '#/definitions/ErrorResponse'
- summary: Generate a new service provider certificate.
- tags:
- - Tenant accounts - identity providers
- x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/identity-providers/{identity_provider_id}/refresh-jwks:
- post:
- consumes:
- - application/json
- description: Refreshes an OIDC IdP's signing keys.
- operationId: refreshAccountJwks
- parameters:
- - description: The ID of the account to be managed.
- in: path
- name: account_id
- required: true
- type: string
- - description: The ID of the identity provider for which to refresh the signing
- keys.
- in: path
- name: identity_provider_id
- required: true
- type: string
+ $ref: '#/definitions/UserInvitationReq'
produces:
- application/json
responses:
- '200':
- description: Successful operation.
- headers:
- Content-Location:
- description: /v3/accounts/{account_id}/identity-providers/{identity_provider_id}
- type: string
+ '201':
+ description: New entity created.
schema:
- $ref: '#/definitions/IdentityProviderInfo'
+ $ref: '#/definitions/UserInvitationResp'
'400':
- description: Not an OIDC IdP or JWKS URI is unspecified.
+ description: Error in input data, for example, invalid email address.
schema:
$ref: '#/definitions/ErrorResponse'
'401':
@@ -11225,128 +17130,130 @@ paths:
description: Forbidden.
schema:
$ref: '#/definitions/ErrorResponse'
- '404':
- description: Account or identity provider not found.
- schema:
- $ref: '#/definitions/ErrorResponse'
- summary: Refreshes the OIDC signing keys.
+ summary: Create a user invitation.
tags:
- - Tenant accounts - identity providers
+ - Tenant accounts - user invitations
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/notifications:
- get:
- description: Retrieve notifications.
- operationId: getAccountNofificationEntries
+ /v3/accounts/{account_id}/user-invitations/{invitation_id}:
+ delete:
+ description: 'Delete an active user invitation sent to a new or existing user.
+
+ Note: This endpoint is restricted to administrators.
+
+
+ **Example:**
+
+ ```
+
+ curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/user-invitations/{invitation_id}
+ \
+
+ -H ''Authorization: Bearer ''
+
+ ```'
+ operationId: deleteAccountInvitation
parameters:
- description: Account ID.
in: path
name: account_id
required: true
type: string
- - default: 50
- description: The number of results to return (2-1000). Default 50.
- format: int32
- in: query
- name: limit
- required: false
- type: integer
- - description: The entity ID to fetch after the given one.
- in: query
- name: after
- required: false
- type: string
- - default: ASC
- description: 'Record order based on creation time. Acceptable values: ASC,
- DESC. Default: ASC.'
- in: query
- name: order
- required: false
+ - description: The ID of the invitation to delete.
+ in: path
+ name: invitation_id
+ required: true
type: string
produces:
- application/json
responses:
- '200':
- description: Successful operation.
- schema:
- $ref: '#/definitions/NotificationEntryList'
- '400':
- description: Error in input data, or missing or invalid parameters.
- schema:
- $ref: '#/definitions/ErrorResponse'
+ '204':
+ description: Deleted successfully.
'401':
description: Authentication failure.
schema:
$ref: '#/definitions/ErrorResponse'
'403':
- description: Forbidden
+ description: Forbidden.
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: Account with the given ID not found.
+ description: An account or invitation with the specified ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Get the notification events of an account.
+ summary: Delete a user invitation.
tags:
- - Tenant accounts - email notification logs
+ - Tenant accounts - user invitations
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/notifications/{notification_id}:
get:
- description: An endpoint for retrieving notification event details of an account.
- operationId: getAccountNofificationEntry
+ description: 'Retrieve details of an active user invitation sent for a new or
+ existing user.
+
+ Note: This endpoint is restricted to administrators.
+
+
+ **Example:**
+
+ ```
+
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/user-invitations/{invitation_id}
+ \
+
+ -H ''Authorization: Bearer ''
+
+ ```'
+ operationId: getAccountInvitation
parameters:
- - description: The ID of the account for which this notification should be retrieved.
+ - description: Account ID.
in: path
name: account_id
required: true
type: string
- - description: The ID of the notification entry to be retrieved.
+ - description: The ID of the invitation to retrieve.
in: path
- name: notification_id
+ name: invitation_id
required: true
type: string
produces:
- application/json
responses:
'200':
- description: successful operation
- schema:
- $ref: '#/definitions/NotificationEntry'
- '400':
- description: Error in input data, missing or invalid parameters.
+ description: Successful operation.
schema:
- $ref: '#/definitions/ErrorResponse'
+ $ref: '#/definitions/UserInvitationResp'
'401':
description: Authentication failure.
schema:
$ref: '#/definitions/ErrorResponse'
'403':
- description: Forbidden
+ description: Forbidden.
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: No entry found for the given ID.
+ description: An account or invitation with the specified ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Get a notification event of an account.
+ summary: Details of a user invitation.
tags:
- - Aggregator Account Admin
+ - Tenant accounts - user invitations
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/policy-groups:
+ /v3/accounts/{account_id}/users:
get:
- description: 'Retrieve all group information.
+ description: 'Retrieve an array of users.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users
\
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer ''
```'
- operationId: getAllAccountGroups
+ operationId: getAllAccountUsers
parameters:
- description: Account ID.
in: path
@@ -11360,14 +17267,14 @@ paths:
name: limit
required: false
type: integer
- - description: The entity ID to fetch after the given one.
+ - description: The entity ID to retrieve after the given one.
in: query
name: after
required: false
type: string
- default: ASC
- description: 'Record order based on creation time. Acceptable values: ASC,
- DESC. Default: ASC.'
+ description: 'Record order based on creation. Acceptable values: ASC, DESC.
+ Default: ASC.'
in: query
name: order
required: false
@@ -11378,9 +17285,30 @@ paths:
name: include
required: false
type: string
- - description: Filter for group name.
+ - description: Filter for email address.
in: query
- name: name__eq
+ name: email__eq
+ required: false
+ type: string
+ - description: Filter for status.
+ in: query
+ name: status__eq
+ required: false
+ type: string
+ - description: An optional filter to retrieve users with a specified set of
+ statuses.
+ in: query
+ name: status__in
+ required: false
+ type: string
+ - description: An optional filter to exclude users with a specified set of statuses.
+ in: query
+ name: status__nin
+ required: false
+ type: string
+ - description: An optional filter to retrieve users with a specified login profile.
+ in: query
+ name: login_profiles__eq
required: false
type: string
produces:
@@ -11389,7 +17317,7 @@ paths:
'200':
description: Successful operation.
schema:
- $ref: '#/definitions/GroupSummaryList'
+ $ref: '#/definitions/UserInfoRespList'
'401':
description: Authentication failure.
schema:
@@ -11399,58 +17327,73 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: An account with the specified ID does not exist.
+ description: An account with the given ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Get all group information.
+ summary: Get users.
tags:
- - Tenant accounts - policy groups
+ - Tenant accounts - users
x-filter:
- name:
+ email:
+ - eq
+ login_profiles:
- eq
+ status:
+ - eq
+ - in
+ - nin
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
post:
consumes:
- application/json
- description: 'Create a new group.
+ description: 'Create or invite a new user to the account. Only email address
+ is used; other attributes are set in the second step.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users
\
- -H ''Authorization: Bearer '' \
+ -H ''Authorization: Bearer '' \
-H ''content-type: application/json'' \
- -d ''{"name": "MyGroup1"}''
+ -d {"email": "myemail@company.com"}
```'
- operationId: createAccountGroup
+ operationId: createAccountUser
parameters:
- description: Account ID.
in: path
name: account_id
required: true
type: string
- - description: Details of the group to create.
+ - description: A user object with attributes.
in: body
name: body
required: true
schema:
- $ref: '#/definitions/GroupCreationInfo'
+ $ref: '#/definitions/UserInfoReq'
+ - default: create
+ description: Create or invite user.
+ in: query
+ name: action
+ required: false
+ type: string
produces:
- application/json
responses:
'201':
description: New entity created.
schema:
- $ref: '#/definitions/GroupSummary'
+ $ref: '#/definitions/UserInfoResp'
'400':
- description: Error in input data, for example, invalid group name.
+ description: Error in input data, for example, an invalid email address.
schema:
$ref: '#/definitions/ErrorResponse'
'401':
@@ -11466,38 +17409,40 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'409':
- description: A group with that name already exists.
+ description: A user with the given username or email already exists.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Create a new group.
+ summary: Create a new user.
tags:
- - Tenant accounts - policy groups
+ - Tenant accounts - users
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/policy-groups/{group_id}:
+ /v3/accounts/{account_id}/users/{user_id}:
delete:
- description: 'Delete a group.
+ description: 'Delete a user.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}
+ curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users/{user_id}
\
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer ''
```'
- operationId: deleteAccountGroup
+ operationId: deleteAccountUser
parameters:
- description: Account ID.
in: path
name: account_id
required: true
type: string
- - description: The ID of the group to delete.
+ - description: The ID of the user to delete.
in: path
- name: group_id
+ name: user_id
required: true
type: string
produces:
@@ -11505,55 +17450,128 @@ paths:
responses:
'204':
description: Deleted successfully.
+ '400':
+ description: Bad request, for example, trying to delete an active user.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
'401':
description: Authentication failure.
schema:
$ref: '#/definitions/ErrorResponse'
'403':
- description: Forbidden, or Administrators group cannot be removed.
+ description: Forbidden.
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: An account or group with that ID does not exist.
+ description: An account or user with the specified ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Delete a group.
+ summary: Delete a user.
tags:
- - Tenant accounts - policy groups
+ - Tenant accounts - users
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
get:
- description: 'Retrieve general information about the group.
+ description: 'Retrieve user details.
+
+ Note: This endpoint is restricted to administrators.
+
+
+ **Example:**
+
+ ```
+
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users/{user_id}
+ \
+
+ -H ''Authorization: Bearer ''
+
+ ```'
+ operationId: getAccountUser
+ parameters:
+ - description: Account ID.
+ in: path
+ name: account_id
+ required: true
+ type: string
+ - description: The ID of the user to retrieve.
+ in: path
+ name: user_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ '200':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/UserInfoResp'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: An account or user with the specified ID does not exist.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Details of the user.
+ tags:
+ - Tenant accounts - users
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ put:
+ consumes:
+ - application/json
+ description: 'Update user details.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}
+ curl -X PUT https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users/{user_id}
\
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer '' \
+
+ -H ''content-type: application/json'' \
+
+ -d ''{"username": "myusername"}''
```'
- operationId: getAccountGroupSummary
+ operationId: updateAccountUser
parameters:
- description: Account ID.
in: path
name: account_id
required: true
type: string
- - description: The ID of the group to retrieve.
+ - description: The ID of the user to update.
in: path
- name: group_id
+ name: user_id
required: true
type: string
+ - description: A user object with attributes.
+ in: body
+ name: body
+ required: true
+ schema:
+ $ref: '#/definitions/UserUpdateReq'
produces:
- application/json
responses:
'200':
description: Successful operation.
schema:
- $ref: '#/definitions/GroupSummary'
+ $ref: '#/definitions/UserInfoResp'
+ '400':
+ description: Error in input data, for example, an invalid email address.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
'401':
description: Authentication failure.
schema:
@@ -11563,61 +17581,70 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: An account or group with that ID does not exist.
+ description: An account or user with the given ID does not exist.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '409':
+ description: A user with the given username or email already exists.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Get group information.
+ summary: Update user details.
tags:
- - Tenant accounts - policy groups
+ - Tenant accounts - users
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- post:
+ /v3/accounts/{account_id}/users/{user_id}/groups:
+ delete:
consumes:
- application/json
- description: 'Add users and API keys to groups.
+ deprecated: true
+ description: 'Remove user from groups.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}
+ curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users/{user_id}/groups
\
- -H ''Authorization: Bearer '' \
+ -H ''Authorization: Bearer '' \
-H ''content-type: application/json'' \
- -d ''{"users": ["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]}''
+ -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]''
```'
- operationId: addSubjectsToAccountGroup
+ operationId: removeAccountUserFromGroups
parameters:
- description: Account ID.
in: path
name: account_id
required: true
type: string
- - description: The ID of the group to update.
+ - description: The ID of the user to remove from the group.
in: path
- name: group_id
+ name: user_id
required: true
type: string
- - description: A list of users and API keys to add to the group.
+ - description: A list of IDs of the groups to update.
in: body
name: body
required: true
schema:
- $ref: '#/definitions/SubjectList'
+ items:
+ type: string
+ type: array
produces:
- application/json
responses:
'200':
description: Successful operation.
schema:
- $ref: '#/definitions/UpdatedResponse'
+ $ref: '#/definitions/UserInfoResp'
'400':
- description: Error in input data, for example, the user or API key does
- not exist.
+ description: Error in input data.
schema:
$ref: '#/definitions/ErrorResponse'
'401':
@@ -11629,66 +17656,78 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: An account or group with that ID does not exist.
- schema:
- $ref: '#/definitions/ErrorResponse'
- '409':
- description: The user of this API key is a member of the group already.
+ description: An account, user, or group with that ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Add members to a group.
+ summary: Remove user from groups.
tags:
- - Tenant accounts - policy groups
+ - Tenant accounts - users
+ x-deprecation:
+ comment: This endpoint is deprecated. Use POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users/{user_id}/groups/remove/
+ end_of_life_at: '2020-07-11T11:04:57+00:00'
+ issued_at: '2019-07-11T11:04:57+00:00'
+ links: []
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- put:
- consumes:
- - application/json
- description: 'Update a group name.
+ get:
+ description: 'Retrieve an array of policy groups associated with a user.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X PUT https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users/{user_id}/groups
\
- -H ''Authorization: Bearer '' \
-
- -H ''content-type: application/json'' \
-
- -d ''{"name": "TestGroup2"}''
+ -H ''Authorization: Bearer ''
```'
- operationId: updateAccountGroupName
+ operationId: getGroupsOfAccountUser
parameters:
+ - default: 50
+ description: The number of results to return (2-1000). Default 50.
+ format: int32
+ in: query
+ name: limit
+ required: false
+ type: integer
+ - description: The entity ID to retrieve after the given one.
+ in: query
+ name: after
+ required: false
+ type: string
+ - default: ASC
+ description: 'Record order based on creation. Acceptable values: ASC, DESC.
+ Default: ASC.'
+ in: query
+ name: order
+ required: false
+ type: string
+ - description: 'Comma-separated additional data to return. Currently supported:
+ total_count.'
+ in: query
+ name: include
+ required: false
+ type: string
- description: Account ID.
in: path
name: account_id
required: true
type: string
- - description: The ID of the group to update.
+ - description: The ID of the user.
in: path
- name: group_id
+ name: user_id
required: true
type: string
- - description: Details of the group to create.
- in: body
- name: body
- required: true
- schema:
- $ref: '#/definitions/GroupUpdateInfo'
produces:
- application/json
responses:
'200':
description: Successful operation.
schema:
- $ref: '#/definitions/UpdatedResponse'
- '400':
- description: Error in input data, for example, the group name is too long.
- schema:
- $ref: '#/definitions/ErrorResponse'
+ $ref: '#/definitions/GroupSummaryList'
'401':
description: Authentication failure.
schema:
@@ -11698,62 +17737,65 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: A group with that ID does not exist.
+ description: An account or user with the specified ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Update the group name.
+ summary: Get policy groups for a user.
tags:
- - Tenant accounts - policy groups
+ - Tenant accounts - users
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/policy-groups/{group_id}/api-keys:
- delete:
+ post:
consumes:
- application/json
- description: 'Remove API keys from groups.
+ deprecated: true
+ description: 'Add user to groups.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/api-keys
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users/{user_id}/groups
\
- -H ''Authorization: Bearer '' \
+ -H ''Authorization: Bearer '' \
-H ''content-type: application/json'' \
- -d ''{"apikeys": ["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]}''
+ -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]''
```'
- operationId: removeApiKeysFromAccountGroup
+ operationId: addAccountUserToGroups
parameters:
- description: Account ID.
in: path
name: account_id
required: true
type: string
- - description: The ID of the group to remove API keys from.
+ - description: The ID of the user to add to the group.
in: path
- name: group_id
+ name: user_id
required: true
type: string
- - description: A list of API keys to remove from the group.
+ - description: A list of IDs of the groups to update.
in: body
name: body
required: true
schema:
- $ref: '#/definitions/SubjectList'
+ items:
+ type: string
+ type: array
produces:
- application/json
responses:
'200':
description: Successful operation.
schema:
- $ref: '#/definitions/UpdatedResponse'
+ $ref: '#/definitions/UserInfoResp'
'400':
- description: Error in input data, for example, the array of API keys is
- missing.
+ description: Error in input data.
schema:
$ref: '#/definitions/ErrorResponse'
'401':
@@ -11765,71 +17807,74 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: An account or group with that ID does not exist.
+ description: An account, user, or group with that ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Remove API keys from a group.
+ '409':
+ description: The user is a member of the group already.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Add user to a list of groups.
tags:
- - Tenant accounts - policy groups
+ - Tenant accounts - users
+ x-deprecation:
+ comment: This endpoint is deprecated. Use POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users/{user_id}/groups/add/
+ end_of_life_at: '2020-07-11T11:04:57+00:00'
+ issued_at: '2019-07-11T11:04:57+00:00'
+ links: []
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- get:
- description: 'List the API keys of the group with details.
+ /v3/accounts/{account_id}/users/{user_id}/groups/add:
+ post:
+ consumes:
+ - application/json
+ description: 'Add a user to groups.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/api-keys
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users/{user_id}/groups/add
\
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer '' \
+
+ -H ''content-type: application/json'' \
+
+ -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]''
```'
- operationId: getApiKeysOfAccountGroup
+ operationId: addAccountUserToListedGroups
parameters:
- - description: Account ID.
+ - description: The ID of the account.
in: path
name: account_id
required: true
type: string
- - description: The ID of the group to retrieve API keys for.
+ - description: The ID of the user to add to the group.
in: path
- name: group_id
+ name: user_id
required: true
type: string
- - default: 50
- description: The number of results to return (2-1000). Default 50.
- format: int32
- in: query
- name: limit
- required: false
- type: integer
- - description: The entity ID to fetch after the given one.
- in: query
- name: after
- required: false
- type: string
- - default: ASC
- description: 'Record order based on creation time. Acceptable values: ASC,
- DESC. Default: ASC.'
- in: query
- name: order
- required: false
- type: string
- - description: 'Comma-separated additional data to return. Currently supported:
- total_count.'
- in: query
- name: include
- required: false
- type: string
+ - description: A list of IDs of the groups to update.
+ in: body
+ name: body
+ required: true
+ schema:
+ $ref: '#/definitions/GroupIdList'
produces:
- application/json
responses:
'200':
description: Successful operation.
schema:
- $ref: '#/definitions/ApiKeyInfoRespList'
+ $ref: '#/definitions/UserInfoResp'
+ '400':
+ description: Error in input data.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
'401':
description: Authentication failure.
schema:
@@ -11839,50 +17884,67 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: An account or group with that ID does not exist.
+ description: An account, user, or group with that ID does not exist.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '409':
+ description: The user is a member of the group already.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Get API keys of a group.
+ summary: Add user to a list of groups.
tags:
- - Tenant accounts - policy groups
+ - Tenant accounts - users
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/policy-groups/{group_id}/users:
- delete:
+ /v3/accounts/{account_id}/users/{user_id}/groups/remove:
+ post:
consumes:
- application/json
- description: "Remove users from groups.\n\n**Example:**\n```\ncurl -X DELETE\
- \ https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/users\
- \ \\\n-H 'Authorization: Bearer ' \\\n -H 'content-type: application/json'\
- \ \\\n-d '{\"users\": [\"0162056a9a1586f30242590700000000\",\"0117056a9a1586f30242590700000000\"\
- ]}'\n```"
- operationId: removeUsersFromAccountGroup
+ description: 'Remove a user from groups.
+
+ Note: This endpoint is restricted to administrators.
+
+
+ **Example:**
+
+ ```
+
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users/{user_id}/groups/remove
+ \
+
+ -H ''Authorization: Bearer '' \
+
+ -H ''content-type: application/json'' \
+
+ -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]''
+
+ ```'
+ operationId: removeAccountUserFromListedGroups
parameters:
- - description: Account ID.
+ - description: The ID of the account.
in: path
name: account_id
required: true
type: string
- - description: The ID of the group to remove users from.
+ - description: The ID of the user to remove from the group.
in: path
- name: group_id
+ name: user_id
required: true
type: string
- - description: A list of users to remove from the group.
+ - description: A list of IDs of the groups to update.
in: body
name: body
required: true
schema:
- $ref: '#/definitions/SubjectList'
+ $ref: '#/definitions/GroupIdList'
produces:
- application/json
responses:
'200':
description: Successful operation.
schema:
- $ref: '#/definitions/UpdatedResponse'
+ $ref: '#/definitions/UserInfoResp'
'400':
- description: Error in input data, for example, the last user to remove from
- Administrators group.
+ description: Error in input data.
schema:
$ref: '#/definitions/ErrorResponse'
'401':
@@ -11894,87 +17956,47 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: An account or group with that ID does not exist.
+ description: An account, user, or group with that ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Remove users from a group.
+ summary: Remove user from groups.
tags:
- - Tenant accounts - policy groups
+ - Tenant accounts - users
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- get:
- description: 'List users of the group with details.
+ /v3/accounts/{account_id}/users/{user_id}/validate-email:
+ post:
+ description: 'Validate user email.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/users
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users/{user_id}/validate-email
\
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer ''
```'
- operationId: getUsersOfAccountGroup
+ operationId: validateAccountUserEmail
parameters:
- description: Account ID.
in: path
name: account_id
required: true
type: string
- - description: The ID of the group to retrieve users for.
+ - description: The ID of the user.
in: path
- name: group_id
+ name: user_id
required: true
type: string
- - default: 50
- description: The number of results to return (2-1000). Default 50.
- format: int32
- in: query
- name: limit
- required: false
- type: integer
- - description: The entity ID to fetch after the given one.
- in: query
- name: after
- required: false
- type: string
- - default: ASC
- description: 'Record order based on creation time. Acceptable values: ASC,
- DESC. Default: ASC.'
- in: query
- name: order
- required: false
- type: string
- - description: 'Comma-separated additional data to return. Currently supported:
- total_count.'
- in: query
- name: include
- required: false
- type: string
- - description: An optional filter to retrieve users by status.
- in: query
- name: status__eq
- required: false
- type: string
- - description: An optional filter to retrieve users with a specified set of
- statuses.
- in: query
- name: status__in
- required: false
- type: string
- - description: An optional filter to exclude users with a specified set of statuses.
- in: query
- name: status__nin
- required: false
- type: string
produces:
- application/json
responses:
- '200':
- description: Successful operation.
- schema:
- $ref: '#/definitions/UserInfoRespList'
+ '204':
+ description: Email validation successfully requested.
'401':
description: Authentication failure.
schema:
@@ -11984,40 +18006,30 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: An account or group with that ID does not exist.
+ description: An account or user with the specified ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Get users of a group.
+ summary: Validate the user email.
tags:
- - Tenant accounts - policy groups
- x-filter:
- status:
- - eq
- - in
- - nin
+ - Tenant accounts - users
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/trusted-certificates:
+ /v3/api-keys:
get:
- description: 'Retrieve trusted certificates in an array.
+ deprecated: true
+ description: 'Retrieve an array of API keys, optionally filtered by the owner.
**Example:**
```
- curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/trusted-certificates
- \
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/api-keys \
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer ''
```'
- operationId: getAllAccountCertificates
+ operationId: getAllApiKeys
parameters:
- - description: Account ID.
- in: path
- name: account_id
- required: true
- type: string
- default: 50
description: The number of results to return (2-1000). Default 50.
format: int32
@@ -12025,14 +18037,14 @@ paths:
name: limit
required: false
type: integer
- - description: The entity ID to fetch after the given one.
+ - description: The entity ID to retrieve after the given one.
in: query
name: after
required: false
type: string
- default: ASC
- description: 'Record order based on creation time. Acceptable values: ASC,
- DESC. Default: ASC.'
+ description: 'Record order based on creation. Acceptable values: ASC, DESC.
+ Default: ASC.'
in: query
name: order
required: false
@@ -12043,380 +18055,181 @@ paths:
name: include
required: false
type: string
- - description: Filter for certificate name.
- in: query
- name: name__eq
- required: false
- type: string
- - description: Filter for service.
+ - description: API key filter. Do not include the private portion of the API
+ key (the last 32 characters).
in: query
- name: service__eq
+ name: key__eq
required: false
type: string
- - description: Filter for expire.
- format: int32
- in: query
- name: expire__eq
- required: false
- type: integer
- - description: Filter for developer certificates.
- format: int32
- in: query
- name: device_execution_mode__eq
- required: false
- type: integer
- - description: Filter for not developer certificates.
- format: int32
- in: query
- name: device_execution_mode__neq
- required: false
- type: integer
- - description: Owner name filter.
+ - description: 'Owner name filter.
+
+ Note: This parameter is restricted to administrators.'
in: query
name: owner__eq
required: false
type: string
- - description: Enrollment mode filter.
- in: query
- name: enrollment_mode__eq
- required: false
- type: boolean
- - description: Filter for certificate status.
- in: query
- name: status__eq
- required: false
- type: string
- - description: 'Filter for issuer. Finds all matches where the filter value
- is a case-insensitive substring of the result. Example: issuer__like=cn=iss
- matches CN=issuer.'
- in: query
- name: issuer__like
- required: false
- type: string
- - description: 'Filter for subject. Finds all matches where the filter value
- is a case-insensitive substring of the result. Example: subject__like=cn=su
- matches CN=subject.'
- in: query
- name: subject__like
- required: false
- type: string
- - description: Filter for finding certificates by validity. True returns certificates
- which are not yet expired. False returns certificates which have expired.
- in: query
- name: valid__eq
- required: false
- type: boolean
produces:
- application/json
responses:
'200':
description: Successful operation.
schema:
- $ref: '#/definitions/TrustedCertificateRespList'
+ $ref: '#/definitions/ApiKeyInfoRespList'
'401':
description: Authentication failure.
schema:
$ref: '#/definitions/ErrorResponse'
'403':
- description: Forbidden, only available for admins of commercial accounts.
- schema:
- $ref: '#/definitions/ErrorResponse'
- '404':
- description: An account with the given ID does not exist.
+ description: Forbidden.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Get all trusted certificates.
+ summary: Get all API keys.
tags:
- - Tenant device security - certificates
+ - Account - API keys
+ x-deprecation:
+ comment: This endpoint is deprecated. Use GET https://api.us-east-1.mbedcloud.com/v3/applications/{application_id}/access-keys
+ end_of_life_at: '2021-08-01T00:00:00+00:00'
+ issued_at: '2020-08-01T00:00:00+00:00'
+ links: []
x-filter:
- device_execution_mode:
- - eq
- - neq
- enrollment_mode:
- - eq
- expire:
- - eq
- issuer:
- - like
- name:
+ key:
- eq
owner:
- eq
- service:
- - eq
- status:
- - eq
- subject:
- - like
- valid:
- - eq
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
post:
consumes:
- application/json
- description: 'Upload new trusted certificates.
-
-
- **Example:**
-
- ```
-
- curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/trusted-certificates
- \
-
- -H ''Authorization: Bearer '' \
-
- -H ''content-type: application/json'' \
-
- -d {"name": "myCert1", "description": "very important cert", "certificate":
- "certificate_data", "service": "lwm2m"}
-
- ```'
- operationId: addAccountCertificate
- parameters:
- - description: Account ID.
- in: path
- name: account_id
- required: true
- type: string
- - description: A trusted certificate object with attributes. Signature is optional.
- in: body
- name: body
- required: true
- schema:
- $ref: '#/definitions/TrustedCertificateReq'
- produces:
- - application/json
- responses:
- '201':
- description: New entity created.
- schema:
- $ref: '#/definitions/TrustedCertificateResp'
- '400':
- description: Invalid certificate data, certificate validation failed, certificate
- already expired or certificate uses unsupported, or weak cipher.
- schema:
- $ref: '#/definitions/ErrorResponse'
- '401':
- description: Authentication failure.
- schema:
- $ref: '#/definitions/ErrorResponse'
- '403':
- description: Forbidden, only available for admins of commercial accounts.
- schema:
- $ref: '#/definitions/ErrorResponse'
- '404':
- description: An account with the given ID does not exist.
- schema:
- $ref: '#/definitions/ErrorResponse'
- summary: Upload new trusted certificate.
- tags:
- - Tenant device security - certificates
- x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/trusted-certificates/{cert_id}:
- delete:
- description: 'Delete the trusted certificate.
+ deprecated: true
+ description: 'Create a new API key.
**Example:**
```
- curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/trusted-certificates/{cert_id}
- \
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/api-keys -d ''{"name":
+ "MyKey1"}'' \
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer '' \
+
+ -H ''content-type: application/json''
```'
- operationId: deleteAccountCertificate
+ operationId: createApiKey
parameters:
- - description: Account ID.
- in: path
- name: account_id
- required: true
- type: string
- - description: The ID of the trusted certificate to delete.
- in: path
- name: cert_id
+ - description: The details of the API key to create.
+ in: body
+ name: body
required: true
- type: string
+ schema:
+ $ref: '#/definitions/ApiKeyInfoReq'
produces:
- application/json
responses:
- '204':
- description: Deleted successfully.
+ '201':
+ description: New entity created.
+ schema:
+ $ref: '#/definitions/ApiKeyInfoResp'
+ '400':
+ description: Error in input data, for example, missing API key name.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
'401':
description: Authentication failure.
schema:
$ref: '#/definitions/ErrorResponse'
'403':
- description: Forbidden, only available for admins of commercial accounts.
- schema:
- $ref: '#/definitions/ErrorResponse'
- '404':
- description: Account or certificate with the given ID not found.
+ description: Forbidden.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Delete trusted certificate by ID.
+ summary: Create a new API key.
tags:
- - Tenant device security - certificates
+ - Account - API keys
+ x-deprecation:
+ comment: This endpoint is deprecated. Use POST https://api.us-east-1.mbedcloud.com/v3/applications/{application_id}/access-keys
+ end_of_life_at: '2021-08-01T00:00:00+00:00'
+ issued_at: '2020-08-01T00:00:00+00:00'
+ links: []
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/api-keys/me:
get:
- description: 'Retrieve a trusted certificate by ID.
+ deprecated: true
+ description: 'Retrieve details of current API key.
**Example:**
```
- curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/trusted-certificates/{cert_id}
- \
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/api-keys/me \
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer ''
```'
- operationId: getAccountCertificate
- parameters:
- - description: Account ID.
- in: path
- name: account_id
- required: true
- type: string
- - description: The ID of the trusted certificate to retrieve.
- in: path
- name: cert_id
- required: true
- type: string
+ operationId: getMyApiKey
+ parameters: []
produces:
- application/json
responses:
'200':
description: Successful operation.
schema:
- $ref: '#/definitions/TrustedCertificateResp'
+ $ref: '#/definitions/ApiKeyInfoResp'
'401':
description: Authentication failure.
schema:
$ref: '#/definitions/ErrorResponse'
'403':
- description: Forbidden, only available for admins of commercial accounts.
- schema:
- $ref: '#/definitions/ErrorResponse'
- '404':
- description: Account or certificate with the given ID not found.
+ description: Forbidden.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Get trusted certificate by ID.
+ summary: Get current API key.
tags:
- - Tenant device security - certificates
+ - Account - API keys
+ x-deprecation:
+ comment: This endpoint is deprecated.
+ end_of_life_at: '2021-08-01T00:00:00+00:00'
+ issued_at: '2020-08-01T00:00:00+00:00'
+ links: []
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
put:
- consumes:
- - application/json
- description: "Update existing trusted certificates.\n\n**Example:**\n```\ncurl\
- \ -X PUT https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/trusted-certificates/{cert_id}\
- \ \\\n -H 'Authorization: Bearer ' \\\n -H 'content-type: application/json'\
- \ \\\n -d {\"description\": \"very important cert\"}\n ```"
- operationId: updateAccountCertificate
- parameters:
- - description: Account ID.
- in: path
- name: account_id
- required: true
- type: string
- - description: The ID of the trusted certificate to update.
- in: path
- name: cert_id
- required: true
- type: string
- - description: A trusted certificate object with attributes.
- in: body
- name: body
- required: true
- schema:
- $ref: '#/definitions/TrustedCertificateUpdateReq'
- produces:
- - application/json
- responses:
- '200':
- description: Successful operation.
- schema:
- $ref: '#/definitions/TrustedCertificateResp'
- '400':
- description: Invalid certificate data, certificate validation failed, certificate
- already expired or certificate uses unsupported, or weak cipher.
- schema:
- $ref: '#/definitions/ErrorResponse'
- '401':
- description: Authentication failure.
- schema:
- $ref: '#/definitions/ErrorResponse'
- '403':
- description: Forbidden, only available for admins of commercial accounts.
- schema:
- $ref: '#/definitions/ErrorResponse'
- '404':
- description: An account or certificate with the given ID does not exist.
- schema:
- $ref: '#/definitions/ErrorResponse'
- summary: Update trusted certificate.
- tags:
- - Tenant device security - certificates
- x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/user-invitations:
- get:
- description: 'Retrieve details of all active user invitations sent for new or
- existing users.
+ deprecated: true
+ description: 'Update API key details.
**Example:**
```
- curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/user-invitations
- \
+ curl -X PUT https://api.us-east-1.mbedcloud.com/v3/api-keys/me \
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer '' \
+
+ -H ''content-type: application/json'' \
+
+ -d ''{"name": "TestApiKey25"}''
```'
- operationId: getAllAccountInvitations
+ operationId: updateMyApiKey
parameters:
- - description: Account ID.
- in: path
- name: account_id
+ - description: New API key attributes to store.
+ in: body
+ name: body
required: true
- type: string
- - default: 50
- description: The number of results to return (2-1000). Default 50.
- format: int32
- in: query
- name: limit
- required: false
- type: integer
- - description: The entity ID to fetch after the given one.
- in: query
- name: after
- required: false
- type: string
- - default: ASC
- description: 'Record order based on creation time. Acceptable values: ASC,
- DESC. Default: ASC.'
- in: query
- name: order
- required: false
- type: string
- - description: Filter to retrieve user invitations by a specified login profile.
- in: query
- name: login_profiles__eq
- required: false
- type: string
+ schema:
+ $ref: '#/definitions/ApiKeyUpdateReq'
produces:
- application/json
responses:
'200':
description: Successful operation.
schema:
- $ref: '#/definitions/UserInvitationRespList'
+ $ref: '#/definitions/ApiKeyInfoResp'
+ '400':
+ description: Error in input data, for example, invalid API key name.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
'401':
description: Authentication failure.
schema:
@@ -12425,59 +18238,53 @@ paths:
description: Forbidden.
schema:
$ref: '#/definitions/ErrorResponse'
- '404':
- description: An account with the specified ID does not exist.
- schema:
- $ref: '#/definitions/ErrorResponse'
- summary: Get the details of all user invitations.
+ summary: Update API key details.
tags:
- - Tenant accounts - user invitations
- x-filter:
- login_profiles:
- - eq
+ - Account - API keys
+ x-deprecation:
+ comment: This endpoint is deprecated.
+ end_of_life_at: '2021-08-01T00:00:00+00:00'
+ issued_at: '2020-08-01T00:00:00+00:00'
+ links: []
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- post:
+ /v3/api-keys/me/groups:
+ delete:
consumes:
- application/json
- description: 'Invite a new or existing user.
+ deprecated: true
+ description: 'Remove API key from groups.
**Example:**
```
- curl -X POST https://api.us-east-1.mbedcloud.com/v3/accouns/{account_id}/user-invitations
- \
+ curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/api-keys/me/groups \
- -H ''Authorization: Bearer '' \
+ -H ''Authorization: Bearer '' \
-H ''content-type: application/json'' \
- -d {"email": "myemail@company.com"}
+ -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]''
```'
- operationId: createAccountInvitation
+ operationId: removeMyApiKeyListedGroups
parameters:
- - description: Account ID.
- in: path
- name: account_id
- required: true
- type: string
- - description: A user invitation object with attributes.
+ - description: A list of IDs of groups to update.
in: body
name: body
required: true
schema:
- $ref: '#/definitions/UserInvitationReq'
+ $ref: '#/definitions/GroupIdList'
produces:
- application/json
responses:
- '201':
- description: New entity created.
+ '200':
+ description: Successful operation.
schema:
- $ref: '#/definitions/UserInvitationResp'
+ $ref: '#/definitions/ApiKeyInfoResp'
'400':
- description: Error in input data, for example, invalid email address.
+ description: Error in input data.
schema:
$ref: '#/definitions/ErrorResponse'
'401':
@@ -12488,42 +18295,64 @@ paths:
description: Forbidden.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Create a user invitation.
+ summary: Remove API key from groups.
tags:
- - Tenant accounts - user invitations
+ - Account - API keys
+ x-deprecation:
+ comment: This endpoint is deprecated. Use POST https://api.us-east-1.mbedcloud.com/v3/api-keys/me/groups/remove/
+ end_of_life_at: '2020-07-11T11:04:57+00:00'
+ issued_at: '2019-07-11T11:04:57+00:00'
+ links: []
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/user-invitations/{invitation_id}:
- delete:
- description: 'Delete an active user invitation sent to a new or existing user.
+ get:
+ deprecated: true
+ description: 'Retrieve an array of policy groups associated with the current
+ API key.
**Example:**
```
- curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/user-invitations/{invitation_id}
- \
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/api-keys/me/groups \
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer ''
```'
- operationId: deleteAccountInvitation
+ operationId: getGroupsOfMyApiKey
parameters:
- - description: Account ID.
- in: path
- name: account_id
- required: true
+ - default: 50
+ description: The number of results to return (2-1000). Default 50.
+ format: int32
+ in: query
+ name: limit
+ required: false
+ type: integer
+ - description: The entity ID to retrieve after the given one.
+ in: query
+ name: after
+ required: false
type: string
- - description: The ID of the invitation to delete.
- in: path
- name: invitation_id
- required: true
+ - default: ASC
+ description: 'Record order based on creation. Acceptable values: ASC, DESC.
+ Default: ASC.'
+ in: query
+ name: order
+ required: false
+ type: string
+ - description: 'Comma-separated additional data to return. Currently supported:
+ total_count.'
+ in: query
+ name: include
+ required: false
type: string
produces:
- application/json
responses:
- '204':
- description: Deleted successfully.
+ '200':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/GroupSummaryList'
'401':
description: Authentication failure.
schema:
@@ -12532,218 +18361,180 @@ paths:
description: Forbidden.
schema:
$ref: '#/definitions/ErrorResponse'
- '404':
- description: An account or invitation with the specified ID does not exist.
- schema:
- $ref: '#/definitions/ErrorResponse'
- summary: Delete a user invitation.
+ summary: Get policy groups of the current API key.
tags:
- - Tenant accounts - user invitations
+ - Account - API keys
+ x-deprecation:
+ comment: This endpoint is deprecated.
+ end_of_life_at: '2021-08-01T00:00:00+00:00'
+ issued_at: '2020-08-01T00:00:00+00:00'
+ links: []
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- get:
- description: 'Retrieve details of an active user invitation sent for a new or
- existing user.
+ post:
+ consumes:
+ - application/json
+ deprecated: true
+ description: 'Add API key to groups.
**Example:**
```
- curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/user-invitations/{invitation_id}
- \
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/api-keys/me/groups \
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer '' \
+
+ -H ''content-type: application/json'' \
+
+ -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]''
```'
- operationId: getAccountInvitation
+ operationId: addMyApiKeyToGroups
parameters:
- - description: Account ID.
- in: path
- name: account_id
- required: true
- type: string
- - description: The ID of the invitation to retrieve.
- in: path
- name: invitation_id
+ - description: A list of IDs of the groups to update.
+ in: body
+ name: body
required: true
- type: string
+ schema:
+ items:
+ type: string
+ type: array
produces:
- application/json
responses:
'200':
description: Successful operation.
schema:
- $ref: '#/definitions/UserInvitationResp'
+ $ref: '#/definitions/ApiKeyInfoResp'
+ '400':
+ description: Error in input data.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
'401':
description: Authentication failure.
schema:
$ref: '#/definitions/ErrorResponse'
'403':
- description: Forbidden.
+ description: Forbidden. Adding API key to the 'Administrators' group is
+ restricted to administrators.
schema:
$ref: '#/definitions/ErrorResponse'
- '404':
- description: An account or invitation with the specified ID does not exist.
+ '409':
+ description: The API key is a member of the group already.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Details of a user invitation.
+ summary: Add API key to a list of groups.
tags:
- - Tenant accounts - user invitations
+ - Account - API keys
+ x-deprecation:
+ comment: This endpoint is deprecated. Use POST https://api.us-east-1.mbedcloud.com/v3/api-keys/me/groups/add/
+ end_of_life_at: '2020-07-11T11:04:57+00:00'
+ issued_at: '2019-07-11T11:04:57+00:00'
+ links: []
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/users:
- get:
- description: 'Retrieve details of all users.
+ /v3/api-keys/me/groups/add:
+ post:
+ consumes:
+ - application/json
+ deprecated: true
+ description: 'Add API key to groups.
**Example:**
```
- curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/api-keys/me/groups/add/
\
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer '' \
+
+ -H ''content-type: application/json'' \
+
+ -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]''
```'
- operationId: getAllAccountUsers
+ operationId: addMyApiKeyToListedGroups
parameters:
- - description: Account ID.
- in: path
- name: account_id
+ - description: A list of IDs of the groups to update.
+ in: body
+ name: body
required: true
- type: string
- - default: 50
- description: The number of results to return (2-1000). Default 50.
- format: int32
- in: query
- name: limit
- required: false
- type: integer
- - description: The entity ID to fetch after the given one.
- in: query
- name: after
- required: false
- type: string
- - default: ASC
- description: 'Record order based on creation time. Acceptable values: ASC,
- DESC. Default: ASC.'
- in: query
- name: order
- required: false
- type: string
- - description: 'Comma-separated additional data to return. Currently supported:
- total_count.'
- in: query
- name: include
- required: false
- type: string
- - description: Filter for email address.
- in: query
- name: email__eq
- required: false
- type: string
- - description: Filter for status.
- in: query
- name: status__eq
- required: false
- type: string
- - description: An optional filter to retrieve users with a specified set of
- statuses.
- in: query
- name: status__in
- required: false
- type: string
- - description: An optional filter to exclude users with a specified set of statuses.
- in: query
- name: status__nin
- required: false
- type: string
- - description: An optional filter to retrieve users with a specified login profile.
- in: query
- name: login_profiles__eq
- required: false
- type: string
+ schema:
+ $ref: '#/definitions/GroupIdList'
produces:
- application/json
responses:
'200':
description: Successful operation.
schema:
- $ref: '#/definitions/UserInfoRespList'
+ $ref: '#/definitions/ApiKeyInfoResp'
+ '400':
+ description: Error in input data.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
'401':
description: Authentication failure.
schema:
$ref: '#/definitions/ErrorResponse'
'403':
- description: Forbidden.
+ description: Forbidden. Adding API key to the 'Administrators' group is
+ restricted to administrators.
schema:
$ref: '#/definitions/ErrorResponse'
- '404':
- description: An account with the given ID does not exist.
+ '409':
+ description: The API key is a member of the group already.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Get the details of all users.
+ summary: Add API key to a list of groups.
tags:
- - Tenant accounts - users
- x-filter:
- email:
- - eq
- login_profiles:
- - eq
- status:
- - eq
- - in
- - nin
+ - Account - API keys
+ x-deprecation:
+ comment: This endpoint is deprecated. Use POST https://api.us-east-1.mbedcloud.com/v3/applications/{application_id}/groups/add
+ end_of_life_at: '2021-08-01T00:00:00+00:00'
+ issued_at: '2020-08-01T00:00:00+00:00'
+ links: []
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/api-keys/me/groups/remove:
post:
consumes:
- application/json
- description: 'Create or invite a new user to the account. Only email address
- is used; other attributes are set in the second step.
+ deprecated: true
+ description: 'Remove API key from groups.
**Example:**
```
- curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/api-keys/me/groups/remove
\
- -H ''Authorization: Bearer '' \
+ -H ''Authorization: Bearer '' \
-H ''content-type: application/json'' \
- -d {"email": "myemail@company.com"}
+ -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]''
```'
- operationId: createAccountUser
+ operationId: removeMyApiKeyFromListedGroups
parameters:
- - description: Account ID.
- in: path
- name: account_id
- required: true
- type: string
- - description: A user object with attributes.
+ - description: A list of IDs of groups to update.
in: body
name: body
required: true
schema:
- $ref: '#/definitions/UserInfoReq'
- - default: create
- description: Create or invite user.
- in: query
- name: action
- required: false
- type: string
+ $ref: '#/definitions/GroupIdList'
produces:
- application/json
responses:
- '201':
- description: New entity created.
+ '200':
+ description: Successful operation.
schema:
- $ref: '#/definitions/UserInfoResp'
+ $ref: '#/definitions/ApiKeyInfoResp'
'400':
- description: Error in input data, for example, an invalid email address.
+ description: Error in input data.
schema:
$ref: '#/definitions/ErrorResponse'
'401':
@@ -12754,43 +18545,36 @@ paths:
description: Forbidden.
schema:
$ref: '#/definitions/ErrorResponse'
- '404':
- description: An account with the specified ID does not exist.
- schema:
- $ref: '#/definitions/ErrorResponse'
- '409':
- description: A user with the given username or email already exists.
- schema:
- $ref: '#/definitions/ErrorResponse'
- summary: Create a new user.
+ summary: Remove API key from groups.
tags:
- - Tenant accounts - users
+ - Account - API keys
+ x-deprecation:
+ comment: This endpoint is deprecated. Use POST https://api.us-east-1.mbedcloud.com/v3/applications/{application_id}/groups/remove
+ end_of_life_at: '2021-08-01T00:00:00+00:00'
+ issued_at: '2020-08-01T00:00:00+00:00'
+ links: []
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/users/{user_id}:
+ /v3/api-keys/{apikey_id}:
delete:
- description: 'Delete a user.
+ deprecated: true
+ description: 'Delete the API key.
**Example:**
```
- curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users/{user_id}
+ curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id}
\
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer ''
```'
- operationId: deleteAccountUser
+ operationId: deleteApiKey
parameters:
- - description: Account ID.
- in: path
- name: account_id
- required: true
- type: string
- - description: The ID of the user to delete.
+ - description: The ID of the API key to delete.
in: path
- name: user_id
+ name: apikey_id
required: true
type: string
produces:
@@ -12798,50 +18582,47 @@ paths:
responses:
'204':
description: Deleted successfully.
- '400':
- description: Bad request, for example, trying to delete an active user.
- schema:
- $ref: '#/definitions/ErrorResponse'
'401':
description: Authentication failure.
schema:
$ref: '#/definitions/ErrorResponse'
'403':
- description: Forbidden.
+ description: Forbidden. Only the owner of the API key or an administrator
+ can delete an API key.
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: An account or user with the specified ID does not exist.
+ description: An API key with the specified ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Delete a user.
+ summary: Delete API key.
tags:
- - Tenant accounts - users
+ - Account - API keys
+ x-deprecation:
+ comment: This endpoint is deprecated. Use DELETE https://api.us-east-1.mbedcloud.com/v3/applications/{application_id}/access-keys/{access_key_id}
+ end_of_life_at: '2021-08-01T00:00:00+00:00'
+ issued_at: '2020-08-01T00:00:00+00:00'
+ links: []
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
get:
- description: 'Retrieve user details.
+ deprecated: true
+ description: 'Retrieve details of an API key.
**Example:**
```
- curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users/{user_id}
- \
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id} \
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer ''
```'
- operationId: getAccountUser
+ operationId: getApiKey
parameters:
- - description: Account ID.
- in: path
- name: account_id
- required: true
- type: string
- - description: The ID of the user to retrieve.
+ - description: The ID of the API key to retrieve.
in: path
- name: user_id
+ name: apikey_id
required: true
type: string
produces:
@@ -12850,7 +18631,7 @@ paths:
'200':
description: Successful operation.
schema:
- $ref: '#/definitions/UserInfoResp'
+ $ref: '#/definitions/ApiKeyInfoResp'
'401':
description: Authentication failure.
schema:
@@ -12860,60 +18641,56 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: An account or user with the specified ID does not exist.
+ description: An API key with the specified ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Details of the user.
+ summary: Get API key.
tags:
- - Tenant accounts - users
+ - Account - API keys
+ x-deprecation:
+ comment: This endpoint is deprecated. Use GET https://api.us-east-1.mbedcloud.com/v3/applications/{application_id}/access-keys/{access_key_id}
+ end_of_life_at: '2021-08-01T00:00:00+00:00'
+ issued_at: '2020-08-01T00:00:00+00:00'
+ links: []
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
put:
- consumes:
- - application/json
- description: 'Update user details.
+ deprecated: true
+ description: 'Update API key details.
**Example:**
- ```
-
- curl -X PUT https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users/{user_id}
- \
+ `curl -X PUT https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id} \
- -H ''Authorization: Bearer '' \
+ -H ''Authorization: Bearer '' \
-H ''content-type: application/json'' \
- -d ''{"username": "myusername"}''
+ -d ''{"name": "TestApiKey25"}''
```'
- operationId: updateAccountUser
+ operationId: updateApiKey
parameters:
- - description: Account ID.
- in: path
- name: account_id
- required: true
- type: string
- - description: The ID of the user to update.
+ - description: The ID of the API key to update.
in: path
- name: user_id
+ name: apikey_id
required: true
type: string
- - description: A user object with attributes.
+ - description: New API key attributes to store.
in: body
name: body
required: true
schema:
- $ref: '#/definitions/UserUpdateReq'
+ $ref: '#/definitions/ApiKeyUpdateReq'
produces:
- application/json
responses:
'200':
description: Successful operation.
schema:
- $ref: '#/definitions/UserInfoResp'
+ $ref: '#/definitions/ApiKeyInfoResp'
'400':
- description: Error in input data, for example, an invalid email address.
+ description: Error in input data, for example, invalid API key name.
schema:
$ref: '#/definitions/ErrorResponse'
'401':
@@ -12921,52 +18698,52 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'403':
- description: Forbidden.
+ description: Forbidden. Only the owner of the API key or an administrator
+ can update an API key.
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: An account or user with the given ID does not exist.
- schema:
- $ref: '#/definitions/ErrorResponse'
- '409':
- description: A user with the given username or email already exists.
+ description: An API key with the specified ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Update user details.
+ summary: Update API key details.
tags:
- - Tenant accounts - users
+ - Account - API keys
+ x-deprecation:
+ comment: This endpoint is deprecated. Use PUT https://api.us-east-1.mbedcloud.com/v3/applications/{application_id}/access-keys/{access_key_id}
+ end_of_life_at: '2021-08-01T00:00:00+00:00'
+ issued_at: '2020-08-01T00:00:00+00:00'
+ links: []
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/users/{user_id}/groups:
+ /v3/api-keys/{apikey_id}/groups:
delete:
consumes:
- application/json
- description: 'Remove user from groups.
+ deprecated: true
+ description: 'Remove API key from groups.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users/{user_id}/groups
+ curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id}/groups
\
- -H ''Authorization: Bearer '' \
+ -H ''Authorization: Bearer '' \
-H ''content-type: application/json'' \
-d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]''
```'
- operationId: removeAccountUserFromGroups
+ operationId: removeApiKeyFromGroups
parameters:
- - description: Account ID.
- in: path
- name: account_id
- required: true
- type: string
- - description: The ID of the user to remove from the group.
+ - description: The ID of the API key to remove from the group.
in: path
- name: user_id
+ name: apikey_id
required: true
type: string
- description: A list of IDs of the groups to update.
@@ -12983,7 +18760,7 @@ paths:
'200':
description: Successful operation.
schema:
- $ref: '#/definitions/UpdatedResponse'
+ $ref: '#/definitions/ApiKeyInfoResp'
'400':
description: Error in input data.
schema:
@@ -12997,28 +18774,36 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: An account, user, or group with that ID does not exist.
+ description: An API key with that ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Remove user from groups.
+ summary: Remove API key from groups.
tags:
- - Tenant accounts - users
+ - Account - API keys
+ x-deprecation:
+ comment: This endpoint is deprecated. Use POST https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id}/groups/remove/
+ end_of_life_at: '2020-07-11T11:04:57+00:00'
+ issued_at: '2019-07-11T11:04:57+00:00'
+ links: []
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
get:
- description: 'Retrieve user''s groups.
+ deprecated: true
+ description: 'Retrieve an array of policy groups associated with an API key.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users/{user_id}/groups
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id}/groups
\
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer ''
```'
- operationId: getGroupsOfAccountUser
+ operationId: getGroupsOfApikey
parameters:
- default: 50
description: The number of results to return (2-1000). Default 50.
@@ -13027,14 +18812,14 @@ paths:
name: limit
required: false
type: integer
- - description: The entity ID to fetch after the given one.
+ - description: The entity ID to retrieve after the given one.
in: query
name: after
required: false
type: string
- default: ASC
- description: 'Record order based on creation time. Acceptable values: ASC,
- DESC. Default: ASC.'
+ description: 'Record order based on creation. Acceptable values: ASC, DESC.
+ Default: ASC.'
in: query
name: order
required: false
@@ -13045,14 +18830,9 @@ paths:
name: include
required: false
type: string
- - description: Account ID.
- in: path
- name: account_id
- required: true
- type: string
- - description: The ID of the user.
+ - description: The ID of the API key.
in: path
- name: user_id
+ name: apikey_id
required: true
type: string
produces:
@@ -13071,43 +18851,46 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: An account or user with the specified ID does not exist.
+ description: An API key with the given ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Get user's groups.
+ summary: Get policy groups of an API key.
tags:
- - Tenant accounts - users
+ - Account - API keys
+ x-deprecation:
+ comment: This endpoint is deprecated. Use GET https://api.us-east-1.mbedcloud.com/v3/applications/{application_id}/groups
+ end_of_life_at: '2021-08-01T00:00:00+00:00'
+ issued_at: '2020-08-01T00:00:00+00:00'
+ links: []
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
post:
consumes:
- application/json
- description: 'Add user to groups.
+ deprecated: true
+ description: 'Add API key to groups.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users/{user_id}/groups
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id}/groups
\
- -H ''Authorization: Bearer '' \
+ -H ''Authorization: Bearer '' \
-H ''content-type: application/json'' \
-d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]''
```'
- operationId: addAccountUserToGroups
+ operationId: addApiKeyToGroups
parameters:
- - description: Account ID.
- in: path
- name: account_id
- required: true
- type: string
- - description: The ID of the user to add to the group.
+ - description: The ID of the API key to add to the group.
in: path
- name: user_id
+ name: apikey_id
required: true
type: string
- description: A list of IDs of the groups to update.
@@ -13124,7 +18907,80 @@ paths:
'200':
description: Successful operation.
schema:
- $ref: '#/definitions/UpdatedResponse'
+ $ref: '#/definitions/ApiKeyInfoResp'
+ '400':
+ description: Error in input data.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: A group or API key with that ID does not exist.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '409':
+ description: The API key is a member of the group already.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Add API key to a list of groups.
+ tags:
+ - Account - API keys
+ x-deprecation:
+ comment: This endpoint is deprecated. Use POST https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id}/groups/add/
+ end_of_life_at: '2020-07-11T11:04:57+00:00'
+ issued_at: '2019-07-11T11:04:57+00:00'
+ links: []
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/api-keys/{apikey_id}/groups/add:
+ post:
+ consumes:
+ - application/json
+ deprecated: true
+ description: 'Add API key to groups.
+
+ Note: This endpoint is restricted to administrators.
+
+
+ **Example:**
+
+ ```
+
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id}/groups/add
+ \
+
+ -H ''Authorization: Bearer '' \
+
+ -H ''content-type: application/json'' \
+
+ -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]''
+
+ ```'
+ operationId: addApiKeyToListedGroups
+ parameters:
+ - description: The ID of the API key to add to the group.
+ in: path
+ name: apikey_id
+ required: true
+ type: string
+ - description: A list of IDs of the groups to update.
+ in: body
+ name: body
+ required: true
+ schema:
+ $ref: '#/definitions/GroupIdList'
+ produces:
+ - application/json
+ responses:
+ '200':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/ApiKeyInfoResp'
'400':
description: Error in input data.
schema:
@@ -13138,49 +18994,131 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: An account, user, or group with that ID does not exist.
+ description: A group or API key with that ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
'409':
- description: The user is a member of the group already.
+ description: The API key is a member of the group already.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ summary: Add API key to a list of groups.
+ tags:
+ - Account - API keys
+ x-deprecation:
+ comment: This endpoint is deprecated. Use POST https://api.us-east-1.mbedcloud.com/v3/applications/{application_id}/groups/add
+ end_of_life_at: '2021-08-01T00:00:00+00:00'
+ issued_at: '2020-08-01T00:00:00+00:00'
+ links: []
+ x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
+ /v3/api-keys/{apikey_id}/groups/remove:
+ post:
+ consumes:
+ - application/json
+ deprecated: true
+ description: 'Remove API key from groups.
+
+ Note: This endpoint is restricted to administrators.
+
+
+ **Example:**
+
+ ```
+
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id}/groups/remove
+ \
+
+ -H ''Authorization: Bearer '' \
+
+ -H ''content-type: application/json'' \
+
+ -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]''
+
+ ```'
+ operationId: removeApiKeyFromListedGroups
+ parameters:
+ - description: The ID of the API key to remove from the group.
+ in: path
+ name: apikey_id
+ required: true
+ type: string
+ - description: A list of IDs of the groups to update.
+ in: body
+ name: body
+ required: true
+ schema:
+ $ref: '#/definitions/GroupIdList'
+ produces:
+ - application/json
+ responses:
+ '200':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/ApiKeyInfoResp'
+ '400':
+ description: Error in input data.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '401':
+ description: Authentication failure.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '403':
+ description: Forbidden.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
+ '404':
+ description: An API key with that ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Add user to a list of groups.
+ summary: Remove API key from groups.
tags:
- - Tenant accounts - users
+ - Account - API keys
+ x-deprecation:
+ comment: This endpoint is deprecated. Use POST https://api.us-east-1.mbedcloud.com/v3/applications/{application_id}/groups/remove
+ end_of_life_at: '2021-08-01T00:00:00+00:00'
+ issued_at: '2020-08-01T00:00:00+00:00'
+ links: []
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/accounts/{account_id}/users/{user_id}/validate-email:
+ /v3/api-keys/{apikey_id}/reset-secret:
post:
- description: 'Validate user email.
+ deprecated: true
+ description: 'Reset the secret key of the API key.
**Example:**
```
- curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users/{user_id}/validate-email
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id}/reset-secret
\
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer ''
```'
- operationId: validateAccountUserEmail
+ operationId: resetSecret
parameters:
- - description: Account ID.
- in: path
- name: account_id
- required: true
- type: string
- - description: The ID of the user.
+ - description: The ID of the API key to reset.
in: path
- name: user_id
+ name: apikey_id
required: true
type: string
+ - description: New API key attributes to be stored.
+ in: body
+ name: body
+ required: false
+ schema:
+ $ref: '#/definitions/ApiKeyUpdateReq'
produces:
- application/json
responses:
- '204':
- description: Email validation successfully requested.
+ '200':
+ description: Successful operation.
+ schema:
+ $ref: '#/definitions/ApiKeyInfoResp'
+ '400':
+ description: Error in input data format.
+ schema:
+ $ref: '#/definitions/ErrorResponse'
'401':
description: Authentication failure.
schema:
@@ -13190,28 +19128,35 @@ paths:
schema:
$ref: '#/definitions/ErrorResponse'
'404':
- description: An account or user with the specified ID does not exist.
+ description: An API key with the specified ID does not exist.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Validate the user email.
+ summary: Reset the secret key.
tags:
- - Tenant accounts - users
+ - Account - API keys
+ x-deprecation:
+ comment: This endpoint is deprecated.
+ end_of_life_at: '2021-08-01T00:00:00+00:00'
+ issued_at: '2020-08-01T00:00:00+00:00'
+ links: []
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/api-keys:
+ /v3/applications:
get:
- description: 'Retrieve API keys in an array, optionally filtered by the owner.
+ description: 'Retrieve an array of applications.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X GET https://api.us-east-1.mbedcloud.com/v3/api-keys \
+ curl -X GET https://api.us-east-1.mbedcloud.com/v3/applications \
- -H ''Authorization: Bearer ''
+ -H ''Authorization: Bearer ''
```'
- operationId: getAllApiKeys
+ operationId: getAllApplications
parameters:
- default: 50
description: The number of results to return (2-1000). Default 50.
@@ -13220,14 +19165,14 @@ paths:
name: limit
required: false
type: integer
- - description: The entity ID to fetch after the given one.
+ - description: The entity ID to retrieve after the given one.
in: query
name: after
required: false
type: string
- default: ASC
- description: 'Record order based on creation time. Acceptable values: ASC,
- DESC. Default: ASC.'
+ description: 'Record order based on creation. Acceptable values: ASC, DESC.
+ Default: ASC.'
in: query
name: order
required: false
@@ -13238,15 +19183,9 @@ paths:
name: include
required: false
type: string
- - description: API key filter. Do not include the private portion of the API
- key (the last 32 characters).
- in: query
- name: key__eq
- required: false
- type: string
- - description: Owner name filter.
+ - description: Status filter.
in: query
- name: owner__eq
+ name: status__eq
required: false
type: string
produces:
@@ -13255,7 +19194,7 @@ paths:
'200':
description: Successful operation.
schema:
- $ref: '#/definitions/ApiKeyInfoRespList'
+ $ref: '#/definitions/ApplicationList'
'401':
description: Authentication failure.
schema:
@@ -13264,50 +19203,50 @@ paths:
description: Forbidden.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Get all API keys.
+ summary: Get all applications.
tags:
- - Account - API keys
+ - Account - applications
x-filter:
- key:
- - eq
- owner:
+ status:
- eq
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
post:
consumes:
- application/json
- description: 'Create a new API key.
+ description: 'Create a new application.
+
+ Note: This endpoint is restricted to administrators.
**Example:**
```
- curl -X POST https://api.us-east-1.mbedcloud.com/v3/api-keys -d ''{"name":
- "MyKey1"}'' \
+ curl -X POST https://api.us-east-1.mbedcloud.com/v3/applications -d ''{"name":
+ "MyApplication1"}'' \
- -H ''Authorization: Bearer '' \
+ -H ''Authorization: Bearer '' \
-H ''content-type: application/json''
```'
- operationId: createApiKey
+ operationId: createApplication
parameters:
- - description: The details of the API key to create.
+ - description: The details of the application to create.
in: body
name: body
required: true
schema:
- $ref: '#/definitions/ApiKeyInfoReq'
+ $ref: '#/definitions/Application'
produces:
- application/json
responses:
'201':
description: New entity created.
schema:
- $ref: '#/definitions/ApiKeyInfoResp'
+ $ref: '#/definitions/Application'
'400':
- description: Error in input data, for example, missing display name.
+ description: Error in input data, for example, missing name.
schema:
$ref: '#/definitions/ErrorResponse'
'401':
@@ -13318,33 +19257,39 @@ paths:
description: Forbidden.
schema:
$ref: '#/definitions/ErrorResponse'
- summary: Create a new API key.
+ summary: Create a new application.
tags:
- - Account - API keys
+ - Account - applications
x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml
- /v3/api-keys/me:
- get:
- description: 'Retrieve API key details.
+ /v3/applications/{application_id}:
+ delete:
+ description: 'Delete the application.
+
+